代码碎片记录

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)


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值