[Python] 纯文本查看 复制代码import os
import base64
from kivy.app import App
from kivy.network.urlrequest import UrlRequest
from kivy.uix.floatlayout import FloatLayout
from kivy.resources import resource_add_path
from kivy.uix.textinput import TextInput
from kivy.core.text import LabelBase
from kivy.uix.button import Button
# 加载中文字体
resource_add_path(os.path.abspath('.'))
LabelBase.register('Roboto', 'DroidSansFallback.ttf')
# 设置按钮部件的事件
def cleanurl(arg):
urlinput.text = ""
def cleancookie(arg):
cookieinput.text = ""
def dorun(arg):
# 设置响应的回调方法
def success(requests, results):
if results['code'] == '0':
resultinput.text = '解析结果\n'
for video in results['video_list']:
resultinput.text += results['video_title']+' '+str(video['vwidth'])+'X'+str(video['vheight'])+' '+video['definition']+' '+str(int(video['size']/1024/1024))+'MB '+video['codec_type']+'\n'
resultinput.text += base64.b64decode(video['main_url'].encode()).decode()+'\n'
else:
resultinput.text = '解析结果 '+results['message']
def error(requests, errors):
resultinput.text = '解析结果 '+str(errors)
# 请求解析结果
url = urlinput.text
headers = {'cookie': cookieinput.text.replace('\n', '').strip()}
apiurl = 'http://106.55.157.247:80/geturl/?url=' + url
UrlRequest(url=apiurl, req_headers=headers, on_success=success, on_error=error)
def donext(arg):
pass
def doall(arg):
pass
def copytext(arg):
resultinput.copy(data=resultinput.text)
# 初始化部件
urlinput = TextInput(
text="",
size_hint=(1, 0.1),
pos_hint={'x': 0, 'y': 0.9},
hint_text="请输入链接地址"
)
cookieinput = TextInput(
text="",
size_hint=(1, 0.1),
pos_hint={'x': 0, 'y': 0.8},
hint_text="请输入cookie"
)
rundobutton = Button(
text="解析",
size_hint=(0.33, 0.08),
pos_hint={'x': 0, 'y': 0.72},
on_release=dorun
)
doemptyurlbutton = Button(
text="清空地址",
size_hint=(0.33, 0.08),
pos_hint={'x': 0.33, 'y': 0.72},
on_release=cleanurl
)
doemptycookiebutton = Button(
text="清空帐号",
size_hint=(0.34, 0.08),
pos_hint={'x': 0.66, 'y': 0.72},
on_release=cleancookie
)
nextdobutton = Button(
text="下一集",
size_hint=(0.33, 0.08),
pos_hint={'x': 0, 'y': 0.64},
on_release=donext
)
alldobutton = Button(
text="全集",
size_hint=(0.33, 0.08),
pos_hint={'x': 0.33, 'y': 0.64},
on_release=doall
)
copybutton = Button(
text="复制到剪切板",
size_hint=(0.34, 0.08),
pos_hint={'x': 0.66, 'y': 0.64},
on_release=copytext
)
resultinput = TextInput(
text="解析结果",
size_hint=(1, 0.64),
pos_hint={'x': 0, 'y': 0}
)
# 使用浮动布局
class IndexPage(FloatLayout):
def __init__(self, **kwargs):
super().__init__(**kwargs)
# 添加部件
self.add_widget(urlinput)
self.add_widget(cookieinput)
self.add_widget(rundobutton)
self.add_widget(doemptyurlbutton)
self.add_widget(doemptycookiebutton)
self.add_widget(nextdobutton)
self.add_widget(alldobutton)
self.add_widget(copybutton)
self.add_widget(resultinput)
class TestAPP(App):
# 重写build方法
def build(self):
# 返回一个布局实例
return IndexPage()
if __name__ == '__main__':
# 启动APP
TestAPP().run()