python tkinterを使ってB駅の生放送用の弾幕ツールを開発しました。
プロジェクトのアドレス
https://github.com/jonssonyan...
開発ツールpython 3.7.9
pycharm 209.3.5コード
第三者パッケージを使用する:pyinstaller
コマンド
-F,-one fileは、単一の実行可能ファイルを生成します。
-w,--windowed,--noconsonic指定プログラムの実行時にコマンドラインウィンドウを表示しない(Windowsのみに有効)PyInstallerサポートの共通オプション
追加
命令を実行したらプロジェクトディレクトリの下にdistフォルダが多くなります。コンパイルしたファイルはこのフォルダの下にあります。pyinstallerはプラットフォームを越えてコンパイルできません。windowsプラットフォームの下ではwindowsの下の実行ファイル(.exe)にコンパイルするしかありません。同じmac linuxも同じです。
ここでは、python tkinterを使ってB駅で弾幕を生放送するツールを開発した記事を紹介します。これに関連して、python tkinterがB駅で弾幕を生放送するツールの内容を開発します。以前の文章を検索してください。または、下記の関連記事を引き続きご覧ください。これからもよろしくお願いします。
https://github.com/jonssonyan...
開発ツールpython 3.7.9
pycharm 209.3.5コード
import threading
import time
import tkinter.simpledialog
from tkinter import END, simpledialog, messagebox
import requests
class Danmu():
def __init__(self, room_id):
# url
self.url = 'https://api.live.bilibili.com/xlive/web-room/v1/dM/gethistory'
#
self.headers = {
'Host': 'api.live.bilibili.com',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Firefox/78.0',
}
# POST
self.data = {
'roomid': room_id,
'csrf_token': '',
'csrf': '',
'visit_id': '',
}
#
self.log_file_write = open('danmu.log', mode='a', encoding='utf-8')
#
log_file_read = open('danmu.log', mode='r', encoding='utf-8')
self.log = log_file_read.readlines()
def get_danmu(self):
# 0.5 cpu
time.sleep(1)
#
html = requests.post(url=self.url, headers=self.headers, data=self.data).json()
#
for content in html['data']['room']:
#
nickname = content['nickname']
#
text = content['text']
#
timeline = content['timeline']
#
msg = timeline + ' ' + nickname + ': ' + text
# ,
if msg + '
' not in self.log:
#
listb.insert(END, msg)
listb.see(END)
#
self.log_file_write.write(msg + '
')
#
self.log.append(msg + '
')
#
nickname = ''
text = ''
timeline = ''
msg = ''
def bilibili(delay, room_id):
# bDanmu
bDanmu = Danmu(room_id)
while True:
# cpu
time.sleep(delay)
#
bDanmu.get_danmu()
def author():
#
messagebox.showinfo(title=' ', message=' : Jonson
:2021 2 4
: ')
# tkinter GUI
window = tkinter.Tk()
window.title('BiliBli ')
window.minsize(300, 500)
window.geometry('400x600+250+100')
#
menubar = tkinter.Menu(window)
# Open ,
menubar.add_command(label=' ', command=author)
# , menubar
window.config(menu=menubar)
#
sc = tkinter.Scrollbar(window)
sc.pack(side=tkinter.RIGHT, fill=tkinter.Y)
# Listbox
listb = tkinter.Listbox(window, yscrollcommand=sc.set)
#
listb.pack(side=tkinter.LEFT, fill=tkinter.BOTH, expand=True)
# ,
sc.config(command=listb.yview)
# ( , , )
room_id = simpledialog.askstring(title=' ', prompt=' :'
, initialvalue='21089733')
if room_id is not None:
#
try:
t = threading.Thread(target=bilibili, args=(0.5, str(room_id),))
t.setDaemon(True)
t.start()
except:
print("Error: ! ")
#
window.mainloop()
コンパイル第三者パッケージを使用する:pyinstaller
コマンド
pyinstaller -F -w bilibli-danmu.py
パラメータ解釈-F,-one fileは、単一の実行可能ファイルを生成します。
-w,--windowed,--noconsonic指定プログラムの実行時にコマンドラインウィンドウを表示しない(Windowsのみに有効)PyInstallerサポートの共通オプション
追加
命令を実行したらプロジェクトディレクトリの下にdistフォルダが多くなります。コンパイルしたファイルはこのフォルダの下にあります。pyinstallerはプラットフォームを越えてコンパイルできません。windowsプラットフォームの下ではwindowsの下の実行ファイル(.exe)にコンパイルするしかありません。同じmac linuxも同じです。
ここでは、python tkinterを使ってB駅で弾幕を生放送するツールを開発した記事を紹介します。これに関連して、python tkinterがB駅で弾幕を生放送するツールの内容を開発します。以前の文章を検索してください。または、下記の関連記事を引き続きご覧ください。これからもよろしくお願いします。