999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于itchat的微信群簽到系統開發

2020-04-28 08:33:44林志偉王慶九馬超虹謝禮禮吳森洋
實驗室研究與探索 2020年1期
關鍵詞:程序微信信息

林志偉,王慶九,馬超虹,謝禮禮,吳森洋

(1.浙江大學 機械工程學院, 杭州 310027; 2.浙江大學 a.實驗室與設備管理處, b.工程訓練(金工)中心, 杭州 310058)

0 引 言

簽到就是簽到人將自己的姓名、編號或聯系方式等有效信息以各種方式進行登記記錄的過程,是考勤的一種重要方式。對任何簽到系統,其基本需求是能夠準確、公平地反映簽到者的出勤時間、出勤次數等信息。對簽到系統中涉及的相關媒介,它應該具有一定的普遍性和廣泛性,能被群體中的大部分人接受,且簽到人無需具備相關先驗知識或額外學習即可完成簽到。簽到系統最好能夠具備快速、高效、便捷、透明等特性。

高校實驗教學的目的在于培養學生自主思考和動手能力,關注更多的是學生平時實驗表現,平時成績的考核是實驗教學的重要組成部分[1]。而課堂簽到是評定學生平時成績的關鍵指標之一,是保障教學秩序良好運行的一種方式,也是教師考察學生學習態度的依據,對學生上課積極性和實驗教學質量有很大的影響。目前,對大都實驗課程,簽到分一般占到學生期末總成績的10%~20%,因此,無論是教師還是學生,都非常重視簽到環節。

1 簽到方式的發展和比較

1.1 傳統的簽到方式

除點到外,最為傳統的簽到方式依賴于紙和筆。教師事先根據選課名單及上課時間準備簽到單,上課時,學生逐一在簽到單上簽名。這種簽到方式的優點是實施方便,適用于各種簽到場合,缺點是簽到效率低,特別是在學生人數較多的情況下,往往會出現學生排長隊簽到的情況,而且容易出現個別學生幫他人代簽、一人多簽等作弊行為[2-3]。對教師而言,這種簽到方式的另一缺點是根據紙質簽到單統計學生出勤率費時費力。

隨著信息技術的發展,刷卡簽到逐漸代替了紙質簽到[4-5]。刷卡簽到系統主要由卡片、讀卡器、前端電腦、服務器、數據庫等組成。卡片一般是學生的校園卡(一卡通),配合讀卡器及后臺數據庫,可從中直接獲取學生學號、姓名等信息。相比于紙質簽到,刷卡簽到提高了簽到效率。學生無需埋頭在簽到單上尋找自己的名字,簽到完成后,教師可直接從系統拉取相應的簽到電子表單,無需再進行繁瑣的出勤統計。但是和紙質簽到一樣,刷卡簽到仍然屬于“串行”簽到方式,仍會出現學生排長隊等簽到的情況;而且,如果教師不注意,也會出現代人刷卡的作弊情況[6]。此外,上課之前,教師仍然需要將選課名單錄入簽到系統。

從實際應用來說,采用指紋簽到的方式可以杜絕簽到作弊行為[6-7]。指紋簽到和刷卡簽到的實現原理類似,只是將前端的讀卡器換成了指紋傳感器。因為指紋信息隨身攜帶,無法剝離,而制造假指紋專業性強、成本高,因此針對指紋簽到作弊的實際性價比不高、風險較大。指紋簽到的最大缺點主要體現在指紋錄入階段。一方面,指紋錄入過程需要專人陪同指導;另一方面,單個指紋錄入時間較長,少則10幾s,長則幾分鐘,當學生人數較多時,指紋錄入時間就可能以小時計算。對那些課時本來就較少實驗課來說,指紋簽到的缺點是難以接受的。

1.2 基于智能手機的簽到方式

隨著移動互聯技術的日益發展,智能手機已成為人們生活、工作、學習的必須品[8]。隨著智能手機的普及,對于簽到這一實際需求,不少公司、學者相繼開發了適應于相應人群的簽到管理軟件產品。利用手機簽到的最大優勢在于容易實現“并行”簽到,極大地提高簽到效率。

釘釘是阿里巴巴集團出品的免費智能移動辦公平臺,包含審批、公告、網盤、聊天、電話、簽到等功能模塊。截止2019年1月,全國有超過700萬家企業和組織正在使用釘釘進行移動辦公。目前,國內不少學校也開始將釘釘作為自己的扁平化管理平臺[9-11]。孫良斌[12]結合釘釘在重慶大學傳媒類開放實驗室管理中的應用和實踐,部署設備預約、設備領取簽到、實驗室預約等模塊,有效提升了溝通協同效率。徐華偉[13]在“互聯網+”理念的基礎上,借助釘釘開放平臺,搭建了包含課程安排、考勤簽到、資源共享等功能模塊的實驗教學管理系統,提升了實驗教學管理水平。

釘釘用于高校實驗課日常簽到管理最大的難題在于其軟件安裝和學習成本較大。釘釘能在企業員工中推行依靠的是企業由上到下的政策擔保。學校則不同,教師無法強制學生安裝釘釘,而且相對來說,釘釘已屬于大型軟件,其安裝包較大(目前最新版已超過100 MB),在沒有WiFi的情況下下載需要消耗不少流量,這使不少學生望而卻步。再者,釘釘軟件功能繁雜,軟件操作學習成本較大,短時間內不易上手。即便是學生硬著頭皮安裝了釘釘,除了實驗考勤之外,其利用率也不會太高。

作為移動聊天工具,微信經過多年發展推廣,已經擁有了超億級的用戶,在高校學生中也極為普及。將微信作為高校實驗課簽到工具,其本身已具備簽到媒介的普遍性和廣泛性特征。目前,大都基于微信的簽到系統都在微信公眾平臺[14-16]或微信小程序上[17-19]開發。如陳東偉等[20]基于微信公眾平臺開發了一套“點到了喂”掃碼簽到系統,學生只需使用微信公眾號掃一掃便可完成簽到,技術上,他們使用動態二維碼防止學生將二維碼拍照發送給場外人員進行簽到。郭鑫等[21]設計開發了一套微信考勤小程序,該程序將用戶角色分為教師和學生,可以完成教師上課考勤、學生主動簽到等功能,結合微信小程序提供的GPS接口及地圖組件,可規避學生遠程簽到作弊行為。此外,在微信上也有不少第3方開發的免費簽到小程序,如小小簽到、位置簽到、定位簽到等。

無論是基于微信公眾平臺還是微信小程序的簽到系統,學生首次使用都需要其頁面上進行注冊,輸入姓名、學號、班級等信息,然后才能登錄使用。這一設計范式無疑為代簽作弊埋下了伏筆。學生可以在自己完成簽到后登出,然后再用他人姓名登錄,為他人代簽。此外,上述簽到系統都需數據庫支持,用于保存學生信息。如果使用第3方公司或組織提供的微信公眾號或小程序,后臺數據庫由第3方掌握,則可能存在學生個人信息泄露的風險。

3人成群,微信近年來之所以這么流行,很大一部分應歸功于微信建群方便。不像QQ建群,存在賬戶等級限制,在微信里,任何人都可以隨意拉群,用于聊天、討論、學習等。事實上,微信群本身就是非常優質的簽到媒介,廣泛使用,無學習成本,且學生進群極為方便,教師學生可面對面建群進行簽到。遺憾的是,目前尚無直接使用微信群進行簽到的相關報道。這主要是因為:① 直接在微信界面上根據學生發送的消息手動統計出勤情況較為繁瑣;② 直接在微信群里難以獲取簽到學生的準確位置信息。

針對上述問題,本文開發了一套基于itchat的微信群移動簽到系統。該系統使用itchat實時監控目標微信群,結合微信小程序GPS定位分享功能,提取發言人GPS坐標、群昵稱、以及消息時間戳等信息,并將其納入統計,簽到結束后自動將統計信息保存為Excel表格文件,并將該文件分享到簽到群。基于該系統的簽到過程透明可見,操作簡單明了,且學生簽到學習成本幾乎為零,無需注冊、登錄等繁瑣的流程,只要進相應微信群,修改群昵稱,發送一條特定消息即可完成簽到。

2 itchat微信消息解析

itchat是一個開源的個人微信接口,使用Python編程語言編寫,原理是模擬微信網頁版環境,可實現微信好友或微信群的消息獲取和回復,包括文本、圖片、位置、語音、表情、分享、系統等消息。如圖1所示,使用itchat,只需6行Python代碼,便可實現最簡單的微信自動應答功能。

圖1 itchat實現微信自動應答功能

圖1中,第7、8行為程序入口,表示登錄和運行微信。程序啟動時,會自動生成一張二維碼圖片,用戶只要使用微信手機端掃碼即可登錄微信;在第7行中,如果hotReload參數設置為True,則下次可直接登錄而無需重新掃碼。由@itchat.msg_register引導的第3行代碼的作用是注冊微信消息處理函數,如果參數isGroupChat為True,則僅接收群消息,列表類型參數[‘Text’, ‘Sharing’]表示函數需要處理的消息類型,其中‘Text’表示文本消息,‘Sharing’表示分享消息。itchat共定義了12種消息類型,除以上2種消息外,還包括‘Map’(地圖)、‘Card’(名片)、‘Picture’(圖片)、‘Voice’(聲音)、‘Video’(視頻)等常見消息類型。第4行watch即為消息處理函數實體,參數msg為聊天時itchat和微信服務器通信獲得的消息。watch函數從msg中提取對方發過來的文本直接返回,實現了最簡單的微信應答功能。

事實上,msg包含了極為豐富的內容,可從中提取諸如消息類型、內容、創建時間,消息發送者Id、昵稱,消息接收者Id、昵稱等信息,如果是群消息,還可提取群Id、群名稱以及群內各成員信息。在Python調試器中,可發現msg為一字典(dict)對象,包含了一系列鍵(字段)、值對;其中,在有些值中,又嵌套了一層或多層字典或列表對象。下面以微信小程序在微信群中的分享消息為例,分析itchat消息結構及字段。其他消息類型也可通過Python調試器分析其結構及字段。

如圖2所示,在msg消息字典中,MsgId字段標識了當前消息的Id號,CreateTime字段標識了當前消息的創建時間,該時間使用從1970年開始至今的秒數表示。Type字段表示消息類型,如‘Text’‘Map’‘Picture’‘Voice’等,此處消息類型為‘Sharing’,表示該消息為分享類型的消息。Text字段為消息的文本內容,如果為‘Text’類型的消息,則Text字段直接保存了文本消息的內容;如果為‘Map’類型的消息,則Text字段保存了地址位置的名稱;如果為‘Sharing’類型的微信小程序分享,則Text字段保存了顯示在小程序分享界面的標題。FromUserName、ToUserName字段分別指示了消息發送者、接收者的微信唯一Id號,這些Id號以‘@’字符開頭,其中個人Id包含一個‘@’字符,群Id包含兩個‘@’字符,以此可對個人和群唯一Id做簡單區分。需要注意的是,這些唯一Id只是itchat下載到本地的微信服務器真實Id映射,每次itchat重新登錄微信后這些Id都會改變,微信借此機制保護用戶賬戶安全。ActualUserName字段指示了消息實際發送者,雖然在大部分情況下,該字段和上述FromUserName字段值一致,但仍然建議使用ActualUserName字段獲取消息發送者唯一Id。

圖2 itchat微信群消息解析

如圖2所示,在msg的User字段的值嵌套了一層字典,這層字典主要保存了當前微信群(chatroom)的相關信息。如Chatroom下的NickName字段保存了當前微信群名稱,UserName字段指示了當前微信群唯一Id。MemberList字段原則上應保存該群中的所有成員信息,但可能是由于網絡流量等因素考慮,itchat并非在每次獲取的消息msg中,都包含群成員的詳細信息,此處該字段只保存了空值。MemberCount字段指示了當前微信群成員數量。

如圖2所示,在User字段的Self字段值中,又嵌套了一層字典,這層字段主要保存當前群消息發送者的相關信息。如DisplayName字段保存了群消息發送者在當前群中的昵稱,用戶可在微信手機端相應群中修改自己的群昵稱。UserName字段為當前群消息發送者的唯一Id,NickName為發送者的全局昵稱,即在微信賬號下設置的昵稱,HeadImgUrl則指示了發送者頭像圖片的網絡地址(圖中省略)。

需要說明的是,圖2只截取了針對微信小程序群分享消息字典的部分重要字段。 結合圖1、2,如需獲取某一字段值,在Python中只需對消息字典取值即可,如msg[‘Type’]即可獲取消息類型,msg[‘Text’]即可獲取消息文本內容,而msg[‘User’][‘NickName’]即可獲取嵌套詞典中的當前微信群名稱。此外,值得一提的是,itchat對msg封裝了更為簡單的取值操作,如同樣是獲取消息類型或文本內容,也可直接調用msg.type或msg.text,即通過相應字段名小寫即可直接獲取msg相應屬性值,該方法同樣適用于上述嵌套詞典。

3 微信群簽到流程設計

根據以上分析,使用itchat可對感興趣的微信群消息進行實時監控。結合微信小程序GPS位置分享功能,可提取群消息中發言人發言時位置、發言時間、微信唯一Id、群昵稱等有用信息,并在程序中將這些信息納入統計,最后生成報表。由此可見,基于itchat,只需對相關流程及功能進行合理設計開發,就能將微信群用于簽到。

對任何簽到系統,簽到流程應盡量簡單且容易上手。基于itchat的微信群簽到流程極為簡單,學習成本幾乎為零。首先,相關課程責任教師在該門課首次上課時利用微信手機端和學生們面對面建群,并修改群名稱為相應課程名。微信面對面建群非常快捷,所有學生可在不到半分鐘內進群。隨后教師要求學生按“學號+姓名”格式修改自己的群昵稱。這一步關系到學生自己的切身利益,如果有學生不按要求修改群昵稱,那么即便他正確執行了接下來的操作,簽到系統也將無法統計到他的真實姓名,只能對他做曠課標記。因此,作為教師,不必擔心學生在這點上不聽話。

首次建群,在完成以上步驟后,便可正式進入簽到環節。教師首先在群內發送“簽到開始”指令,提醒學生準備簽到。但此時學生還不能簽到,必須等待教師分享微信GPS定位小程序后才能開始簽到。教師分享GPS定位小程序的作用是設定簽到點GPS坐標,學生簽到時的GPS坐標必須和教師設定的坐標吻合(距離小于設定值),否則認定學生簽到時位置作弊(如在寢室簽到)。此后學生開始簽到,過程十分簡單,每個學生只需直接點擊教師(或上一個學生)在群聊天窗口分享的GPS定位小程序,獲取自己的GPS坐標,然后將帶有坐標、時間及微信賬號信息小程序分享到群里,完成簽到。在所有學生完成簽到后,教師在群里發送“簽到結束”指令,簽到系統將自動生成Excel格式的簽到報表文件,并將該文件發送到群里公示。簽到結束后,學生無法再執行簽到操作。

需要提醒的是,如果不是首次建群,可直接按圖3“后續簽到”流程進行簽到。由于學生們在微信群里發送簽到消息時并發進行的,因此整個簽到過程速度非常快,理論上不到幾秒鐘便可完成全部簽到;且學生在整個簽到過程中不需要執行任何注冊、登錄操作。

4 微信群簽到系統實現

4.1 GPS定位分享微信小程序實現

在以上微信群簽到流程中,微信GPS定位小程序極為關鍵,它的作用就是防止學生在簽到位置上作弊。事實上,微信手機端自帶了位置分享功能,如圖4所示。遺憾的是,由功能發送的位置不能作為簽到位置的依據。這是因為該功能可以分享地圖上任意點的位置,而非僅僅是用戶當前位置。比如一個人在北京出差,他可以將他在杭州的公司地址分享在他的朋友。這不符合簽到系統的功能需求。

圖3 基于itchat的微信群簽到流程設計

圖4 微信手機端自帶的位置分享功能

微信小程序是微信上無需安裝即可運行的輕量級應用,它實現了應用“觸手可及”的夢想。相比于其他網頁應用,微信小程序可以調用手機本地硬件資源,如攝像頭、陀螺儀、磁場傳感器等。使用微信小程序,結合微信提供的GPS模塊接口,可以輕松獲取手機當前位置的GPS信息,并將信息顯示在小程序界面。此外,微信小程序自帶“轉發”功能,可以方便地將小程序分享到微信群。

但是,對微信小程序的分享消息,itchat端只能從Text、Content字段提取到小程序標題(title)以及圖標、源代碼等的鏈接,無法直接獲取小程序內存變量或界面上有關控件顯示的任何內容。如果不能將小程序運行時獲得的GPS信息附加到分享消息中,那么微信小程序也將無法用于微信簽到系統。

所幸,經調研發現,在小程序的“轉發”響應函數(onShareAppMessage)里,可對標題(title)以及圖標鏈接(imgUrl)等變量進行賦值。據此,可先在小程序里獲取手機當前所在位置的GPS信息,然后在“轉發”響應函數里將GPS信息按一定格式格式化后賦值給title變量。在itchat端,只需提取分享消息中的Text字段(參見圖2中的Text字段),便能獲取小程序中title變量的全部內容,從而獲得GPS信息。

根據以上思路,使用微信開發者工具開發得到的小程序界面如圖5(a)所示。小程序名稱為“GPS定位分享”,僅包含一個頁面,該頁面上僅顯示用戶頭像、昵稱、時間、經度、緯度5項信息,以及“重新獲取位置”“分享到簽到群”兩個按鈕。小程序運行或操作邏輯非常簡單,描述如下:小程序啟動時,會在其初始化響應函數(onLoad)里主動獲取用戶信息、手機當前時間以及GPS信息,并將這些信息顯示在界面上;小程序啟動后,點擊“重新獲取位置”按鈕,可刷新當前時間及GPS信息;點擊“分享到簽到群”按鈕,可將當前小程序分享給好友或微信群。圖5(b)展示了小程序在群中分享的界面,小程序標題(title)為“張三,30.26489,120.119189,20190114170307”,其中“張三”為用戶昵稱,30.26489、120.119189分別為緯度、經度信息,20190114170307為時間戳,這些信息可被itchat端提取。如圖5(b)所示,小程序標題下方的略縮圖即為用戶頭像。

圖5 GPS位置分享微信小程序及其在群內分享界面

目前,以上GPS定位分享小程序已通過微信審核,線上版也已發布,任何用戶可在微信手機端搜索“GPS定位分享”小程序免費使用該程序。需要說明的是,小程序首次啟動時,會提醒用戶是否同意小程序獲取用戶信息權限,用戶需點擊同意按鈕才能進行下一步操作。

4.2 itchat端微信群監控程序實現

根據圖3所示的微信群簽到流程,教師首先需要在簽到群發送文本指令開始簽到,而學生需要在群里分享小程序進行簽到,因此,itchat端需同時監控文本消息(‘Text’)和小程序分享消息(‘Sharing’)。itchat端監控程序使用Python語言編寫,程序框架和圖1類似,核心簽到功能在群消息處理函數(watch)中實現,圖6給出了該函數的主要流程示例。

圖6 itchat端簽到監控程序運行流程

如圖6所示,對消息msg,程序首先根據Type字段判斷消息類型。如果msg為文本消息,則通過isOwner函數判斷msg是否為當前微信群群主發送的消息。isOwner函數通過比對msg中消息發送人Id和群主Id是否吻合實現,該函數的作用是給微信群簽到添加使用權限,只有群主才能開啟微信群簽到功能。進一步地,如果msg攜帶的文本內容為“簽到開始”,則設置isSignInStart變量為True,表明簽到已開始,同時程序向簽到群發送“?請發送簽到位置”消息(符號“?”表示該消息為系統提示消息),提示群主發送簽到點地址。如果msg.text為“簽到結束”,且根據isSignInStart判斷簽到確實已經開始,則根據實際簽到情況生成簽到報表,并將報表發送至當前簽到群,同時向簽到群發送“?簽到結束”提示信息,設置isSignInStart為False。

如圖6所示,在發送“簽到開始”文本消息后,程序將等待教師發送簽到地址。此時教師打開圖5(a)中的微信小程序,并將小程序分享到簽到群。如果一切正常,程序將提取小程序標題(title)中GPS信息,作為簽到點坐標(teacherGps),并標記isTeacherGpsSend為True。簽到點坐標,也即簽到開始后的首個坐標必須由群主發送,這一點也是通過在流程中添加isOwner函數保證的,否則程序將提示“?請群主先發送簽到坐標”。

在isTeacherGpsSend為True的情況下,學生通過點擊、分享教師發在簽到群的小程序(如圖5(b))進行簽到。對學生的小程序分享消息,簽到程序首先從中提取小程序圖標鏈接(imgUrl),并檢測imgDic中是否已有該imgUrl。imgDic是用來存放簽到學生的圖標鏈接的字典對象。如果imgDic中已有當前imgUrl,表明該學生已經簽到,無需重復簽到。事實上,在程序中設置imgDic的目的主要是防止學生不點擊運行小程序,而直接轉發他人之前分享的小程序,構成簽到作弊。如果imgDic沒有當前imgUrl,則從msg提取學生的GPS信息(studentGps),并將當前imgUrl添加到imgDic中,同時進一步根據學生和教師的GPS坐標計算簽到距離。設教師、學生的經緯度分別為(JT,WT)、(JS,WS),地球半徑為R(6 371 km),則兩者距離d的計算公式為[22]:

d=R·arccos[sin(WT)·sin(WS)+cos(WT)·

cos(wS)·cos(JT-JS)]

如果d小于給定值(如100 m),則認定學生簽到有效,將學生群昵稱(學號+姓名)、簽到時間、簽到坐標添加到studentDic中,并在群中提示“?簽到成功”。studentDic是用于保存學生簽到信息的字典對象。如果教師和學生距離超出設定范圍,則認定學生簽到無效,程序在群中提示“?位置不對,簽到失敗”。

如上所述,教師在輸入“簽到結束”后,程序將根據studentDic自動生成簽到報表并將報表分享到微信群。報表中包含學生學號、姓名、簽到時間、簽到位置坐標信息、距離等信息。簡單起見,這些信息按csv格式保存,該格式以純文本形式存儲表格數據,可被Excel軟件直接打開和操作。

5 微信群簽到系統測試

本節對以上設計實現的微信群簽到系統進行了實際測試,設定有效簽到距離為100 m,測試過程如圖7所示。圖中張三為測試群群主,充當教師角色,itchat端程序使用張三微信賬戶登錄,因此系統提示消息也從張三發出;李四、王五、周九等6人為群成員,充當學生角色(為保護個人隱私,這些微信號設置了化名昵稱)。

圖7 微信群簽到測試過程

首先,張三在群中輸入“簽到開始”,系統提示“請發送簽到位置”;張三發送GPS定位小程序,系統提示簽到點GPS坐標。隨后李四點擊打開張三分享在群中的小程序,并將小程序分享在群中進行簽到,但是由于李四實際上距離張三4 km之遠,因此李四簽到失敗。與此同時,王五、周九、趙六等也在群中相繼分享了小程序,系統提示簽到成功。簽到結束后,張三在群中輸入“簽到結束”,系統提示簽到結束,并將csv格式的簽到報表分享到群中。簽到報表在個人電腦上用微軟Excel軟件打開后顯示簽到數據如表1所示。

表1 微信群簽到報表

由上測試結果可知,本文開發的基于itchat的微信群簽到系統完全能夠日常簽到需求,大量人員同時簽到的并發性可由微信服務器保證。

6 結 語

近年來,隨著智能手機的發展與普及,微信已逐漸取代了短信,成為人們生活中不可或缺的即時聊天工具。微信群使用人群廣、門檻低、建群方便,是用于簽到的優質媒介。為此,本文開發了一套基于itchat的微信群簽到系統,用于高校實驗課堂簽到。該系統包含兩部分軟件:GPS定位分享微信小程序和基于itchat的微信群監控程序,其中GPS定位分享微信小程序目前已通過微信審核上線。本文開發的微信群簽到系統具有如下特點:

無需安裝任何軟件,直接在微信群簽到,簽到學習成本幾乎為零,充分發揮微信群創建方便、使用范圍廣等優點;

簽到流程簡單明了,學生只需在自己手機上將GPS定位小程序分享至簽到群便可完成簽到;

簽到速度快,所有學生可同時在各自手機上并行簽到,簽到成功后在微信群立即返回簽到結果;

簽到結果真實可信,使用GPS定位、頭像Url全局唯一等機制防止簽到作弊行為發生,保證簽到結果可靠;

簽到報表自動生成,簽到結束后系統可立即將簽到報表分享反饋至相應簽到群,群內任何成員可查看簽到結果。

猜你喜歡
程序微信信息
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
“程序猿”的生活什么樣
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
微信
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
微信
微信
微信
展會信息
中外會展(2014年4期)2014-11-27 07:46:46
主站蜘蛛池模板: 黄片在线永久| 亚洲码在线中文在线观看| 欧美视频二区| 免费国产黄线在线观看| 亚洲人成电影在线播放| 3344在线观看无码| 高清精品美女在线播放| 亚洲综合亚洲国产尤物| 日韩精品专区免费无码aⅴ| 久久久久亚洲精品成人网| 无码人妻热线精品视频| 久久国产亚洲欧美日韩精品| 色妞www精品视频一级下载| 国产制服丝袜无码视频| 久久久成年黄色视频| 老司机久久99久久精品播放| 精品一区二区三区自慰喷水| 最新亚洲人成无码网站欣赏网| 亚洲色图综合在线| vvvv98国产成人综合青青| 国产精品99在线观看| 欧美日韩一区二区在线免费观看| 亚洲人成人伊人成综合网无码| 欧美精品另类| 久久影院一区二区h| 国产色爱av资源综合区| 日韩精品欧美国产在线| a级毛片免费看| 国产免费a级片| 国产成人精品高清不卡在线| 亚洲成人黄色在线观看| 麻豆国产原创视频在线播放 | 中文字幕无线码一区| 伊人激情久久综合中文字幕| 精品丝袜美腿国产一区| av尤物免费在线观看| 亚洲国产中文精品va在线播放 | 国产精品美女免费视频大全| 狠狠亚洲五月天| 在线毛片网站| 久久综合激情网| 日韩专区第一页| 国产精品原创不卡在线| 无码日韩精品91超碰| 茄子视频毛片免费观看| 色有码无码视频| 手机在线看片不卡中文字幕| 欧美一级特黄aaaaaa在线看片| 天天色综网| 中文字幕在线永久在线视频2020| 凹凸国产熟女精品视频| 人妻无码中文字幕一区二区三区| 欧美爱爱网| 精品欧美日韩国产日漫一区不卡| 亚洲二三区| 视频二区国产精品职场同事| 精品无码视频在线观看| 久久大香伊蕉在人线观看热2| 日本道中文字幕久久一区| 欧美日韩高清在线| 青青青视频蜜桃一区二区| 久操线在视频在线观看| 中文字幕无码电影| 国产亚洲精品无码专| 国内精品久久久久鸭| 99re在线观看视频| 国产va欧美va在线观看| 婷婷伊人久久| 欧美无专区| yjizz国产在线视频网| 国产97视频在线观看| 国产正在播放| 一级毛片在线播放免费观看| 熟妇无码人妻| AV不卡在线永久免费观看| 四虎影院国产| 91综合色区亚洲熟妇p| 精品国产网站| 色成人亚洲| 青青草国产精品久久久久| 欧美专区在线观看| 国产91在线|日本|