您的位置:首页 > 编程语言

代码碎片记录

2016-12-29 12:10 190 查看
print('--------talkShowCNParse')
self.talkShowCNParse(QUrl(sourceUrl).adjusted(QUrl.RemoveQuery).toString())


@pyqtSlot()
def talkShowCNParse(self, url):
if url not in self.sourceUrl2DownloadItem.keys():
self.parseProgress.show()
self.trayIcon.showMessage('正在获取视频下载链接', '')

data = 'w#5A*q/}x% e5fe8bf6' + ' {} {}'.format(QDateTime.currentDateTime().toString('yyyy-MM-dd hh:mm'), url)
h = str(QCryptographicHash.hash(bytes(data, 'utf8'), QCryptographicHash.Md5).toHex(), 'utf8')

# if 'iqiyi.com' in url:
# queryUrl = 'http://www.apifree.net/iqiyi.jsp?id=apifree&{}&single='.format(urllib.parse.urlencode({'url' :url }))
# #'http://www.apifree.net/iqiyi.jsp?id=apifree&{}&single='.format(urllib.parse.urlencode({'url' :url }))
# else :
queryUrl = 'http://talkshowcn.sinaapp.com/api/play.php?user=63&verify={}&format=json&{}'.format(h, urllib.parse.urlencode({'url': url}))
# 解析内核切换
# queryUrl = 'http://114.215.156.204:5678/parse?user=iMath&verify={}&format=json&{}'.format(h,urllib.parse.urlencode({'url' :url }))

# queryUrl = 'http://123.57.189.110:3032/api/play.php?token=e5fe8bf6aaf6b5e728aff2660b509b75&format=json&{}'.format(urllib.parse.urlencode({'url' :url }))

# 用token
# if '56.com' in url:
# queryUrl = 'http://talkshowcn.duapp.com/api/play.php?token=e5fe8bf6aaf6b5e728aff2660b509b75&format=json&url=' + url
# else :
# queryUrl = 'http://talkshowcn.sinaapp.com/api/play.php?token=e5fe8bf6aaf6b5e728aff2660b509b75&format=json&url=' + url

request = QNetworkRequest(QUrl(queryUrl))
request.setRawHeader(b'User-Agent', bytes(userAgent, 'utf8'))
request.setRawHeader(b"referer", bytes(url, 'utf8'))
reply = self.manager.get(request)
reply.finished.connect(self.getWebPageSRC)

def processTalkShowCNResult(self, pageSrc, sourceUrl):
# 加入正在解析的,同时也加入KMUST下不断重试解析的,避免反复提示网络问题print('reply.error()--------------',reply.error())#KMUST下,这里结果同样是0
# print('-processTalkShowCNResult----------pageSrc',pageSrc)
if "success" not in pageSrc: # prevent KMUST下
print(''' "success" not in pageSrc----- talk---failed----ezvideoParse-begin --''', sourceUrl)
self.parseProgress.hide()
self.trayIcon.showMessage('不支持该页面', '可以再试一次或者向群主报告这个问题\n【点击本消息】即可加入QQ群272830154\n{}'.format(sourceUrl))
return

content = json.loads(pageSrc) # 只有"success"在里面了,才能json.loads
# print('content------------',content)
if content["success"] == False:
print(''' talk----content["success"]==False''')
self.parseProgress.hide()
self.trayIcon.showMessage('不支持该页面', '可以再试一次或者向群主报告这个问题\n【点击本消息】即可加入QQ群272830154\n{}'.format(sourceUrl))
return

try:
qualities = content["result"]
videoQualityDict = {}

for quality in qualities:
if quality["format"] != "m3u8":
videoQualityDict[quality["quality"].split('_')[1]] = quality["files"]

# print('videoQualityDict-------------------', videoQualityDict)

netFilesInfo = videoQualityDict.get('超清') or videoQualityDict.get('高清') or videoQualityDict.get('1080P') or videoQualityDict.get('720P')or videoQualityDict.get('标清') or videoQualityDict.get('低清') or videoQualityDict.popitem() # 从高清到低清晰的顺序

# print('netFilesInfo-------------------', netFilesInfo)

videoUrls = []
for fileInfo in netFilesInfo:
videoUrls.append(fileInfo["url"])
downloadInfo = (content["source"]["title"] + '.' + fileInfo["type"], videoUrls)
except Exception: # 可能会有keyerro he typeerror
print(''' talk----keyerro''')
self.parseProgress.hide()
self.trayIcon.showMessage('不支持该页面', '可以再试一次或者向群主报告这个问题\n【点击本消息】即可加入QQ群272830154\n{}'.format(sourceUrl))
else:
# print('--------downloadInfo--------------',downloadInfo)
self.prepareProcessing(downloadInfo, sourceUrl)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: