diff --git a/build.bat b/build.bat new file mode 100644 index 0000000..05713f9 --- /dev/null +++ b/build.bat @@ -0,0 +1,13 @@ +pyinstaller --onefile ^ + --icon ./douyin.icon ^ + --add-data "E:/workspace/live-digital-avatar/live-digital-avatar-chat/venv/Lib/site-packages/py_mini_racer;py_mini_racer" ^ + --add-data "E:/workspace/live-digital-avatar/live-digital-avatar-chat/venv/Lib/site-packages/betterproto;betterproto" ^ + --add-data "E:/workspace/live-digital-avatar/live-digital-avatar-chat/venv/Lib/site-packages/betterproto-2.0.0b6.dist-info;betterproto-2.0.0b6.dist-info" ^ + --add-data "E:/workspace/live-digital-avatar/live-digital-avatar-chat/venv/Lib/site-packages/grpclib;grpclib" ^ + --add-data "E:/workspace/live-digital-avatar/live-digital-avatar-chat/sign.js;." ^ + --add-data "E:/workspace/live-digital-avatar/live_chat.db;." ^ + --add-binary "E:/workspace/live-digital-avatar/live-digital-avatar-chat/venv/Lib/site-packages/py_mini_racer/mini_racer.dll;." ^ + --add-binary "E:/workspace/live-digital-avatar/live-digital-avatar-chat/venv/Lib/site-packages/py_mini_racer/icudtl.dat;." ^ + --add-binary "E:/workspace/live-digital-avatar/live-digital-avatar-chat/venv/Lib/site-packages/py_mini_racer/snapshot_blob.bin;." ^ + --name chat ^ + main.py diff --git a/douyin.icon b/douyin.icon new file mode 100644 index 0000000..2dd9f7b Binary files /dev/null and b/douyin.icon differ diff --git a/helper.py b/helper.py index bde3439..4deed2a 100644 --- a/helper.py +++ b/helper.py @@ -1,12 +1,23 @@ +import os import sqlite3 +import sys from multiprocessing import Queue from settings import sqlite_file from queue import Empty +def resource_path(relative_path, base_dir='.'): + # PyInstaller打包后会把文件放到临时文件夹 _MEIPASS + try: + base_path = sys._MEIPASS + except AttributeError: + base_path = os.path.abspath(base_dir) + return os.path.join(base_path, relative_path) + + class LiveChatConfig: def __init__(self): - self.conn = sqlite3.connect(sqlite_file) + self.conn = sqlite3.connect(resource_path(sqlite_file, '..')) self.conn.execute("PRAGMA journal_mode=WAL;") def _query_config(self, key): diff --git a/liveMan.py b/liveMan.py index c30e5aa..386050d 100644 --- a/liveMan.py +++ b/liveMan.py @@ -20,7 +20,7 @@ from py_mini_racer import MiniRacer from protobuf.douyin import * from message_processor import * -from helper import PromptQueue +from helper import resource_path, PromptQueue from settings import live_talking_host, Backend @@ -201,7 +201,8 @@ class DouyinLiveWebFetcher: f"&user_unique_id=7319483754668557238&im_path=/webcast/im/fetch/&identity=audience" f"&need_persist_msg_count=15&insert_task_id=&live_reason=&room_id={self.room_id}&heartbeatDuration=0") - signature = generateSignature(wss) + script_file = resource_path('sign.js') + signature = generateSignature(wss, script_file) wss += f"&signature={signature}" headers = { @@ -382,7 +383,6 @@ class DouyinLiveWebReply: continue prompt_data = self.queue.get(False) - print(self.queue.qsize()) if prompt_data is not None: # live_chat: 弹幕 prompt, live_chat = prompt_data diff --git a/live_chat.db b/live_chat.db deleted file mode 100644 index accd128..0000000 Binary files a/live_chat.db and /dev/null differ diff --git a/live_chat.db-shm b/live_chat.db-shm deleted file mode 100644 index a3aef79..0000000 Binary files a/live_chat.db-shm and /dev/null differ diff --git a/live_chat.db-wal b/live_chat.db-wal deleted file mode 100644 index 83f224b..0000000 Binary files a/live_chat.db-wal and /dev/null differ diff --git a/main.py b/main.py index 61a220d..80f0209 100644 --- a/main.py +++ b/main.py @@ -1,7 +1,7 @@ from liveMan import DouyinLiveWebFetcher, DouyinLiveWebReply from argparse import ArgumentParser from helper import PromptQueue -from multiprocessing import Process, Event +from multiprocessing import Process, Event, freeze_support def parse_args(): @@ -22,6 +22,7 @@ def reply_user_chat_content(queue): if __name__ == '__main__': + freeze_support() args = parse_args() queue = PromptQueue(1000) diff --git a/settings.py b/settings.py index 18caad1..2dbdd88 100644 --- a/settings.py +++ b/settings.py @@ -1,6 +1,6 @@ sqlite_file = 'live_chat.db' -live_talking_host = 'http://192.168.10.96:8020' +live_talking_host = 'http://192.168.10.96:8010' class Backend: backend_host = 'http://192.168.10.25:9909'