黄色草逼视频_久久夜夜视频_亚洲国产成人久久午夜_三级在线播放

網(wǎng)站改版|WAP網(wǎng)站制作|域名注冊|虛擬主機(jī)|服務(wù)器|海微商|海微信|海微通| 無障礙| 24小時服務(wù)電話:13807590485
海南網(wǎng)站建設(shè)海南網(wǎng)站制作海口網(wǎng)站建設(shè)三亞網(wǎng)站建設(shè)儋州網(wǎng)站建設(shè)五指山網(wǎng)站建設(shè)文昌網(wǎng)站建設(shè)瓊海網(wǎng)站建設(shè)萬寧網(wǎng)站建設(shè)東方網(wǎng)站建設(shè)定安網(wǎng)站建設(shè) 網(wǎng)站首頁網(wǎng)站首頁 網(wǎng)站建設(shè)網(wǎng)站建設(shè) 微信開發(fā)微信開發(fā) 網(wǎng)站推廣網(wǎng)站推廣 海南網(wǎng)站建設(shè)公司,海南網(wǎng)站開發(fā)制作公司,海南網(wǎng)頁設(shè)計(jì)公司,海南小程序開發(fā)公司,海南微信公眾號開發(fā)公司,海南網(wǎng)絡(luò)公司,海南世紀(jì)華聯(lián)海南世紀(jì)華聯(lián) 網(wǎng)站超市網(wǎng)站超市 客戶案例客戶案例 網(wǎng)站模板網(wǎng)站模板 關(guān)于我們關(guān)于我們
  • 微信開發(fā)
  • 持之以恒
  • 網(wǎng)站設(shè)計(jì)制作
  • 中立五年回報客戶
無障礙
微信開發(fā)
微信系統(tǒng)開發(fā) 微信開發(fā)功能 公眾號基礎(chǔ)教程 開發(fā)技術(shù)資訊 公眾號推廣營銷 客戶案例
聯(lián)系我們
QQ服務(wù)群:28519571 工作時間:86-0898-31568080 傳真號碼:86-0898-31568085 24小時服務(wù):0138-07590485
 您現(xiàn)在的位置: 首頁 >> 微信開發(fā) >> 開發(fā)技術(shù)資訊 開發(fā)技術(shù)資訊
微信機(jī)器人:有道翻譯小助手——Django + SAE + 微信公眾帳號自動回復(fù)開放接口
世紀(jì)華聯(lián) | 2018-01-26 23:32:14 | 閱讀:14491
Sina App Engine

  首先作為一個屌絲開發(fā)者要解決服務(wù)器的問題。去SAE的官網(wǎng)上用新浪微博的帳號注冊一個帳號,成功后會贈給你500云豆,可供一個開發(fā)者試用大概5天。SAE非常優(yōu)秀,如果以后我們想在上面寫點(diǎn)應(yīng)用什么的,可以去申請實(shí)名認(rèn)證和開發(fā)者認(rèn)證,那樣每個月都會給你一定數(shù)量的云豆,應(yīng)該能滿足日常需求。由于現(xiàn)在SAE上部署Python還處于公測階段,因此我們要去申請開通可以在上面部署Python程序的權(quán)限,現(xiàn)在很好申請的,不一會就會收到已經(jīng)為你開放了部署Python應(yīng)用權(quán)限的郵件,網(wǎng)上搜到的啥啥還需要排隊(duì)都是過去了(不排除當(dāng)你看到這篇文章時SAE已經(jīng)可以允許所有開發(fā)者部署Python的應(yīng)用了)。
 

  OK,完成這些后,就可以到SAE的文檔中心讀文檔來照著文檔里面的樣例創(chuàng)建一個應(yīng)用了。

  有道API

  然后,去有道API申請一個key,申請的時候網(wǎng)站地址隨便填就行。有道API非常簡單,直接以GET的形式把要翻譯的文本發(fā)送到指定的url,然后它會給我們回復(fù)翻譯結(jié)果,我們可以選擇xml、json等返回格式,我選得是xml,接著,在瀏覽器里面按著指定的格式輸入url,就可以看到返回結(jié)果啦:
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <youdao-fanyi>  
  3.     <errorCode>0</errorCode>  
  4.     <query><![CDATA[這里是有道翻譯API]]></query>  
  5.     <!-- 有道翻譯 -->  
  6.     <translation>  
  7.             <paragraph><![CDATA[Here is the youdao translation API]]></paragraph>  
  8.         </translation>  
  9. </youdao-fanyi>  
復(fù)制代碼

  注意,如果是對詞進(jìn)行翻譯的話有的詞還會返回一些啥網(wǎng)絡(luò)釋義,基本釋義啥的,具體對這個xml解析的方法請看下面的代碼。

  微信公眾帳號

  接著,我們要去微信的公眾帳號平臺去申請一個公眾帳號,不能用現(xiàn)有的已綁定私人微信帳號的QQ號申請,我用的是一個平時不用的QQ號申請的,申請成功后,可以大致看看微信公眾帳號的管理平臺(現(xiàn)在你知道那些公眾帳號,比如王力宏的帳號啥的是怎么運(yùn)作的了吧),接著去這里仔細(xì)閱讀微信公眾帳號自動回復(fù)開放接口的文檔,你要從這里學(xué)一種如何讓用戶認(rèn)證的思想(就是如果用戶做了XX,給我返回了XX結(jié)果,那么我就能確定,用戶是“合法”的),或者認(rèn)證的方法。大致有一個認(rèn)識后,趕緊下載他給的樣例php源碼,也是唯一的可以參考的源碼,仔細(xì)閱讀,如下:
  1. <?php  
  2. /** 
  3.   * wechat php test 
  4.   */  
  5.   
  6. //define your token  
  7. define("TOKEN", "weixin");  
  8. $wechatObj = new wechatCallbackapiTest();  
  9. $wechatObj->valid();  
  10.   
  11. class wechatCallbackapiTest  
  12. {  
  13.     public function valid()  
  14.     {  
  15.         $echoStr = $_GET["echostr"];  
  16.   
  17.         //valid signature , option  
  18.         if($this->checkSignature()){  
  19.             echo $echoStr;  
  20.             exit;  
  21.         }  
  22.     }  
  23.   
  24.     public function responseMsg()  
  25.     {  
  26.         //get post data, May be due to the different environments  
  27.         $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];  
  28.   
  29.         //extract post data  
  30.         if (!empty($postStr)){  
  31.        echoStr           
  32.                 $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);  
  33.                 $fromUsername = $postObj->FromUserName;  
  34.                 $toUsername = $postObj->ToUserName;  
  35.                 $keyword = trim($postObj->Content);  
  36.                 $time = time();  
  37.                 $textTpl = "<xml>  
  38.                             <ToUserName><![CDATA[%s]]></ToUserName>  
  39.                             <FromUserName><![CDATA[%s]]></FromUserName>  
  40.                             <CreateTime>%s</CreateTime>  
  41.                             <MsgType><![CDATA[%s]]></MsgType>  
  42.                             <Content><![CDATA[%s]]></Content>  
  43.                             <FuncFlag>0</FuncFlag>  
  44.                             </xml>";               
  45.                 if(!empty( $keyword ))  
  46.                 {  
  47.                     $msgType = "text";  
  48.                     $contentStr = "Welcome to wechat world!";  
  49.                     $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);  
  50.                     echo $resultStr;  
  51.                 }else{  
  52.                     echo "Input something...";  
  53.                 }  
  54.   
  55.         }else {  
  56.             echo "";  
  57.             exit;  
  58.         }  
  59.     }  
  60.           
  61.     private function checkSignature()  
  62.     {  
  63.         $signature = $_GET["signature"];  
  64.         $timestamp = $_GET["timestamp"];  
  65.         $nonce = $_GET["nonce"];      
  66.                   
  67.         $token = TOKEN;  
  68.         $tmpArr = array($token, $timestamp, $nonce);  
  69.         sort($tmpArr);  
  70.         $tmpStr = implode( $tmpArr );  
  71.         $tmpStr = sha1( $tmpStr );  
  72.           
  73.         if( $tmpStr == $signature ){  
  74.             return true;  
  75.         }else{  
  76.             return false;  
  77.         }  
  78.     }  
  79. }  
  80.   
  81. ?>  
復(fù)制代碼

  很簡單吧,以至于被一些人說寫的很水,但是我覺得,這份php源碼還是很有含金量的;網(wǎng)上一些哥們還抱怨啥啥的直接部署樣例php不能運(yùn)行啥的,拜托,有點(diǎn)職業(yè)精神好不好,連我這個之前完全不會php的人都能看出來要調(diào)用里面的responseMsg( )方法才能實(shí)現(xiàn)自動回復(fù),樣例里面的只是調(diào)用了微信接入的認(rèn)證功能的函數(shù)。
上面的代碼寫的很好,不需要我多解釋,相信大家能看出來它是怎么工作的。
設(shè)計(jì)與實(shí)現(xiàn)
  接著就可以實(shí)現(xiàn)我們自己的應(yīng)用了,首先把我們在SAE上創(chuàng)建的應(yīng)用通過SVN檢出到本地,然后切換到檢出的目錄,用Django的命令創(chuàng)建一個應(yīng)用,目錄結(jié)構(gòu)如下:
 

  其中,index.wsgi和config.yaml是SAE規(guī)定的文件,具體請仔細(xì)閱讀SAE的文檔。
  之后就可以編寫我們自己的服務(wù)端代碼了,大致思想就是:用戶A向公眾帳號發(fā)送一條消息,微信平臺會按著公眾帳號預(yù)先的設(shè)置,把用戶A的消息內(nèi)容和一些其他信息(如創(chuàng)建時間等)以xml的形式post到我們預(yù)先設(shè)置好的url上(這個url的服務(wù)端就是我們要寫的在SAE上的應(yīng)用),我們要做的就是每當(dāng)接受到微信post請求,我們解析微信平臺post過來的xml,得到用戶A的消息內(nèi)容,把消息內(nèi)容以get的形式發(fā)送到有道API,獲取有道API返回的xml(或json等),解析,之后按微信平臺規(guī)定的格式構(gòu)造成一個xml,作為微信平臺post請求的結(jié)果給其返回,微信平臺收到結(jié)果后,會把消息自動回復(fù)給用戶,用戶就能收到翻譯結(jié)果了。
  用一個圖表示上述過程如下:
 

源碼
  下面貼出邏輯處理部分代碼如下(Views.py),各函數(shù)功能不言而喻:
  1. [python] view plaincopy
  2. # -*- coding: utf-8 -*-  
  3. from django.http import HttpResponse  
  4. from django.template import RequestContext, Template  
  5. from django.views.decorators.csrf import csrf_exempt  
  6. from django.utils.encoding import smart_str, smart_unicode  
  7.   
  8. import xml.etree.ElementTree as ET  
  9. import urllib,urllib2,time,hashlib  
  10.   
  11. TOKEN = "你設(shè)置的Token"  
  12.   
  13. YOUDAO_KEY = 你申請到的有道的Key  
  14. YOUDAO_KEY_FROM = "有道的key-from"  
  15. YOUDAO_DOC_TYPE = "xml"  

  16. @csrf_exempt  
  17. def handleRequest(request):  
  18.     if request.method == 'GET':  
  19.         #response = HttpResponse(request.GET['echostr'],content_type="text/plain")  
  20.         response = HttpResponse(checkSignature(request),content_type="text/plain")  
  21.         return response  
  22.     elif request.method == 'POST':  
  23.         #c = RequestContext(request,{'result':responseMsg(request)})  
  24.         #t = Template('{{result}}')  
  25.         #response = HttpResponse(t.render(c),content_type="application/xml")  
  26.         response = HttpResponse(responseMsg(request),content_type="application/xml")  
  27.         return response  
  28.     else:  
  29.         return None  
  30.   
  31. def checkSignature(request):  
  32.     global TOKEN  
  33.     signature = request.GET.get("signature", None)  
  34.     timestamp = request.GET.get("timestamp", None)  
  35.     nonce = request.GET.get("nonce", None)  
  36.     echoStr = request.GET.get("echostr",None)  
  37.   
  38.     token = TOKEN  
  39.     tmpList = [token,timestamp,nonce]  
  40.     tmpList.sort()  
  41.     tmpstr = "%s%s%s" % tuple(tmpList)  
  42.     tmpstr = hashlib.sha1(tmpstr).hexdigest()  
  43.     if tmpstr == signature:  
  44.         return echoStr  
  45.     else:  
  46.         return None  
  47.   
  48. def responseMsg(request):  
  49.     rawStr = smart_str(request.raw_post_data)  
  50.     #rawStr = smart_str(request.POST['XML'])  
  51.     msg = paraseMsgXml(ET.fromstring(rawStr))  
  52.       
  53.     queryStr = msg.get('Content','You have input nothing~')  
  54.   
  55.     raw_youdaoURL = "http://fanyi.youdao.com/openapi.do?keyfrom=%s&key=%s&type=data&doctype=%s&version=1.1&q=" % (YOUDAO_KEY_FROM,YOUDAO_KEY,YOUDAO_DOC_TYPE)     
  56.     youdaoURL = "%s%s" % (raw_youdaoURL,urllib2.quote(queryStr))  
  57.   
  58.     req = urllib2.Request(url=youdaoURL)  
  59.     result = urllib2.urlopen(req).read()  
  60.   
  61.     replyContent = paraseYouDaoXml(ET.fromstring(result))  
  62.   
  63.     return getReplyXml(msg,replyContent)  
  64.   
  65. def paraseMsgXml(rootElem):  
  66.     msg = {}  
  67.     if rootElem.tag == 'xml':  
  68.         for child in rootElem:  
  69.             msg[child.tag] = smart_str(child.text)  
  70.     return msg  
  71.   
  72. def paraseYouDaoXml(rootElem):  
  73.     replyContent = ''  
  74.     if rootElem.tag == 'youdao-fanyi':  
  75.         for child in rootElem:  
  76.             # 錯誤碼  
  77.             if child.tag == 'errorCode':  
  78.                 if child.text == '20':  
  79.                     return 'too long to translate\n'  
  80.                 elif child.text == '30':  
  81.                     return 'can not be able to translate with effect\n'  
  82.                 elif child.text == '40':  
  83.                     return 'can not be able to support this language\n'  
  84.                 elif child.text == '50':  
  85.                     return 'invalid key\n'  
  86.   
  87.             # 查詢字符串  
  88.             elif child.tag == 'query':  
  89.                 replyContent = "%s%s\n" % (replyContent, child.text)  
  90.   
  91.             # 有道翻譯  
  92.             elif child.tag == 'translation':   
  93.                 replyContent = '%s%s\n%s\n' % (replyContent, '-' * 3 + u'有道翻譯' + '-' * 3, child[0].text)  
  94.   
  95.             # 有道詞典-基本詞典  
  96.             elif child.tag == 'basic':   
  97.                 replyContent = "%s%s\n" % (replyContent, '-' * 3 + u'基本詞典' + '-' * 3)  
  98.                 for c in child:  
  99.                     if c.tag == 'phonetic':  
  100.                         replyContent = '%s%s\n' % (replyContent, c.text)  
  101.                     elif c.tag == 'explains':  
  102.                         for ex in c.findall('ex'):  
  103.                             replyContent = '%s%s\n' % (replyContent, ex.text)  
  104.   
  105.             # 有道詞典-網(wǎng)絡(luò)釋義  
  106.             elif child.tag == 'web':   
  107.                 replyContent = "%s%s\n" % (replyContent, '-' * 3 + u'網(wǎng)絡(luò)釋義' + '-' * 3)  
  108.                 for explain in child.findall('explain'):  
  109.                     for key in explain.findall('key'):  
  110.                         replyContent = '%s%s\n' % (replyContent, key.text)  
  111.                     for value in explain.findall('value'):  
  112.                         for ex in value.findall('ex'):  
  113.                             replyContent = '%s%s\n' % (replyContent, ex.text)  
  114.                     replyContent = '%s%s\n' % (replyContent,'--')  
  115.     return replyContent  
  116.   
  117. def getReplyXml(msg,replyContent):  
  118.     extTpl = "<xml><ToUserName><![CDATA[%s]]></ToUserName><FromUserName><![CDATA[%s]]></FromUserName><CreateTime>%s</CreateTime><MsgType><![CDATA[%s]]></MsgType><Content><![CDATA[%s]]></Content><FuncFlag>0</FuncFlag></xml>";  
  119.     extTpl = extTpl % (msg['FromUserName'],msg['ToUserName'],str(int(time.time())),'text',replyContent)  
  120.     return extTpl  
復(fù)制代碼

  之后通過SVN把項(xiàng)目部署到SAE上,就OK啦~
遇到的問題
  現(xiàn)在網(wǎng)上這種參考的代碼還很少,在SAE上部署調(diào)試也非常困難,無奈下我自己寫了個腳本,模仿微信平臺給自己部署在SAE上的服務(wù)端POST消息,看返回的結(jié)果。如果出現(xiàn)錯誤,Django都會產(chǎn)生一個優(yōu)美的錯誤頁面,獲取這個錯誤頁面把它寫到本地的一個html里面,用瀏覽器打開就可以知道是什么錯誤了。
寫的過程中還是遇到不少問題的:
1.Django的CSRF錯誤:
我用的Django 1.4,我嘗試了大家說的很多解決辦法都會出現(xiàn)403錯誤,無奈下只能暫時通過修飾符把Django的CSRF暫時禁掉,這個還要以后學(xué)Django的深入調(diào)研一下;
2.Django的編碼錯誤:
我也嘗試了很多方法,但是都不行,主要是中文處理上,遇到了很多麻煩,最終在這里找到了完美的解決方案,用可愛的Django自帶的可愛的方法:smart_str、smart_unicode,就能完美處理中文了。
海南網(wǎng)站建設(shè)|海南網(wǎng)站制作|?诰W(wǎng)站建設(shè)|三亞網(wǎng)站建設(shè)|儋州網(wǎng)站建設(shè)|五指山網(wǎng)站建設(shè)|文昌網(wǎng)站建設(shè)|瓊海網(wǎng)站建設(shè)|萬寧網(wǎng)站建設(shè)|東方網(wǎng)站建設(shè)|定安網(wǎng)站建設(shè)|屯昌網(wǎng)站建設(shè)|澄邁網(wǎng)站建設(shè)|臨高網(wǎng)站建設(shè)|白沙網(wǎng)站建設(shè)|昌江網(wǎng)站建設(shè)|樂東網(wǎng)站建設(shè)|陵水網(wǎng)站建設(shè)|保亭網(wǎng)站建設(shè)|瓊中網(wǎng)站建設(shè)|?诰⒕W(wǎng)|三亞精英網(wǎng)|文昌精英網(wǎng)|瓊海精英網(wǎng)|陵水精英網(wǎng)|儋州精英網(wǎng)|萬寧精英網(wǎng)|澄邁精英網(wǎng)|海微通
合作伙伴 企業(yè)發(fā)展 企業(yè)文化 聯(lián)系我們 在線訂購 網(wǎng)站地圖 返回首頁手機(jī)版
海口世紀(jì)華聯(lián)科技有限公司2025版權(quán)所有 24小時服務(wù)熱線:13807590485   歡迎來電咨詢
地址:海南省.?谑.海甸二東路環(huán)惠大廈6樓(南寶路明都大廈107#) 公司電話:0898-31568080 31568060 QQ:85398489
全國合作聯(lián)盟分布:海南海口 四川成都 湖北武漢 湖南長沙 安徽合肥 廣東深圳 山西太原 西藏拉薩
技術(shù)服務(wù): E_mail:server@m.0118yy.com 服務(wù)訂購:E_mail:server@m.0118yy.com 在線客服邀請 瓊ICP備10201086號-15
推廣關(guān)鍵字:海南網(wǎng)站建設(shè)公司,海南網(wǎng)站制作公司,海南網(wǎng)站開發(fā)公司,海南微信開發(fā)公司,海南微信公眾號開發(fā)公司,海南微信公眾號代運(yùn)營公司,海南模板網(wǎng)站制作公司,海南網(wǎng)頁設(shè)計(jì)公司,海南網(wǎng)絡(luò)公司
黄色草逼视频_久久夜夜视频_亚洲国产成人久久午夜_三级在线播放
99re热这里只有精品免费视频| 天涯成人国产亚洲精品一区av| 日韩在线a电影| 丰满岳乱妇一区二区三区| 欧美一级xxx| 一区二区三区精品在线| 丁香五精品蜜臀久久久久99网站| 欧美一区二区三区四区在线观看| 亚洲精品五月天| 成人做爰69片免费看网站| 日韩欧美一区二区免费| 亚洲狠狠爱一区二区三区| 99精品偷自拍| 日本一区二区视频在线| 久久99最新地址| 欧美一区二区在线看| 亚洲国产中文字幕| 色欲综合视频天天天| 国产精品久久久久婷婷| 国产成人综合在线| 久久久久久久久久久久电影 | 欧美日韩一区视频| 亚洲欧美偷拍卡通变态| www.视频一区| 国产精品久久久久久久岛一牛影视| 黄网站免费久久| 精品999在线播放| 蜜桃传媒麻豆第一区在线观看| 欧美日韩国产一区| 亚洲高清视频中文字幕| 欧美午夜电影在线播放| 亚洲资源中文字幕| 在线观看日韩高清av| 亚洲黄色av一区| 色拍拍在线精品视频8848| 中文字幕一区二区三区视频| 成人黄色电影在线| 中文字幕在线观看不卡视频| 成人av综合一区| 中文字幕一区二区三区色视频| 成人avav在线| 亚洲三级在线观看| 色老汉一区二区三区| 亚洲综合在线观看视频| 欧美色图片你懂的| 视频一区视频二区中文字幕| 777色狠狠一区二区三区| 日本不卡的三区四区五区| 日韩一区二区三区免费观看| 麻豆精品国产91久久久久久| 精品国产免费久久| 国产成人亚洲综合a∨婷婷图片| 国产亚洲婷婷免费| www.一区二区| 亚洲一区二区三区视频在线 | 成人在线综合网| 国产精品久久久久婷婷| 91丨九色丨尤物| 亚洲成人福利片| 日韩你懂的在线观看| 国产精品自在在线| 最近日韩中文字幕| 欧美日韩一级二级| 精品亚洲porn| 国产精品久久久爽爽爽麻豆色哟哟| 91麻豆.com| 天堂在线亚洲视频| 久久午夜免费电影| 91蜜桃免费观看视频| 婷婷丁香久久五月婷婷| 日韩精品最新网址| www.亚洲精品| 天天色 色综合| 久久久久久麻豆| 色婷婷国产精品综合在线观看| 婷婷一区二区三区| 久久精品欧美日韩精品 | 国内外成人在线| 国产精品久久久久久久裸模| 欧美亚洲日本国产| 国产在线精品视频| 亚洲乱码国产乱码精品精小说 | 欧美色电影在线| 久久99国产精品麻豆| 自拍偷拍亚洲激情| 欧美一级黄色录像| 99久久久精品免费观看国产蜜| 亚洲成人777| 国产欧美一区二区精品秋霞影院| 91浏览器在线视频| 六月丁香婷婷久久| 自拍偷拍亚洲欧美日韩| 日韩久久久久久| 色天天综合久久久久综合片| 蜜桃精品视频在线| 亚洲老司机在线| 精品国产乱码久久久久久牛牛| 99re8在线精品视频免费播放| 日本美女视频一区二区| 国产精品免费观看视频| 日韩一区二区三区免费看| 91在线视频播放地址| 激情久久久久久久久久久久久久久久| 亚洲久本草在线中文字幕| 亚洲精品在线观看网站| 欧美性一二三区| 成人免费va视频| 久久99国内精品| 亚洲国产成人porn| 中文字幕在线视频一区| 精品日韩在线观看| 色婷婷久久综合| 国产精品一线二线三线精华| 天天操天天色综合| 尤物视频一区二区| 中文字幕精品一区二区精品绿巨人| 欧美丰满少妇xxxxx高潮对白| aa级大片欧美| 国产一区二区精品久久91| 丝袜a∨在线一区二区三区不卡| ...中文天堂在线一区| 久久久精品国产免费观看同学| 欧美丰满少妇xxxbbb| 在线免费观看视频一区| av在线这里只有精品| 国产精品综合视频| 久久精品免费观看| 天天综合日日夜夜精品| 亚洲黄色小说网站| 日韩美女视频一区二区| 中文字幕欧美国产| 久久―日本道色综合久久| 日韩欧美色综合| 欧美一区二区三区四区高清| 欧美系列在线观看| 色婷婷av久久久久久久| 91在线观看成人| 99免费精品在线| 菠萝蜜视频在线观看一区| 国产成人精品在线看| 韩国三级中文字幕hd久久精品| 免费观看在线综合色| 三级亚洲高清视频| 日韩中文字幕1| 丝袜亚洲精品中文字幕一区| 亚洲大型综合色站| 亚洲第一久久影院| 亚洲国产sm捆绑调教视频| 一区二区日韩av| 亚洲国产色一区| 午夜不卡av在线| 日韩av一级片| 美女国产一区二区三区| 蜜臀va亚洲va欧美va天堂 | 亚洲免费av高清| 一区二区三区日韩欧美| 亚洲在线免费播放| 亚洲成人动漫在线免费观看| 亚洲成人动漫在线观看| 婷婷丁香久久五月婷婷| 日韩国产高清影视| 久热成人在线视频| 国产一区二区三区综合| 国产一区二区不卡在线| 国产高清在线精品| 成人短视频下载| 色婷婷av一区二区| 欧美福利视频导航| 精品久久久久av影院| 久久精品人人做人人综合| 国产精品视频一二三| 亚洲免费在线视频一区 二区| 夜夜精品浪潮av一区二区三区| 天天综合天天综合色| 久久国产精品无码网站| 国产精品性做久久久久久| 99久久99久久精品免费看蜜桃| 91福利国产成人精品照片| 欧美日韩国产高清一区| 日韩欧美激情四射| 日本一区二区视频在线| 亚洲精品久久7777| 免费观看在线色综合| 国产福利视频一区二区三区| 成人午夜激情在线| 成人aa视频在线观看| 亚洲伦理在线精品| 一区二区三区在线视频观看| 欧美日韩精品三区| 成人av网在线| 久久成人免费电影| ㊣最新国产の精品bt伙计久久| 欧美日韩综合不卡| voyeur盗摄精品| 久久精品99国产精品| 亚洲一区二区三区四区五区黄| 久久免费电影网| 欧美人妇做爰xxxⅹ性高电影| 日本电影欧美片| 成人av片在线观看|