Skip to content

Commit e657308

Browse files
committed
refactor: simplify tls_client dependency handling in KickViewerBOT.spec and update build process
1 parent bba32df commit e657308

File tree

2 files changed

+34
-60
lines changed

2 files changed

+34
-60
lines changed

.github/workflows/python-package.yml

Lines changed: 1 addition & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -40,56 +40,7 @@ jobs:
4040
- name: Build Windows Executable
4141
run: |
4242
.\venv\Scripts\activate
43-
pyinstaller --noconfirm --onefile --uac-admin --icon "frontend/public/favicon.ico" `
44-
--paths "venv/Lib/site-packages" `
45-
--add-data "backend;." `
46-
--collect-data fake_useragent `
47-
--collect-submodules streamlink `
48-
--collect-submodules websockets `
49-
--collect-submodules tls_client `
50-
--collect-submodules flask `
51-
--collect-submodules flask_cors `
52-
--collect-submodules flask_socketio `
53-
--collect-submodules gevent `
54-
--collect-submodules engineio `
55-
--hidden-import flask `
56-
--hidden-import flask_cors `
57-
--hidden-import flask_socketio `
58-
--hidden-import socketio `
59-
--hidden-import werkzeug `
60-
--hidden-import gevent `
61-
--hidden-import gevent.socket `
62-
--hidden-import gevent.select `
63-
--hidden-import gevent._socket3 `
64-
--hidden-import gevent.resolver.thread `
65-
--hidden-import gevent.resolver.ares `
66-
--hidden-import gevent.resolver.blocking `
67-
--hidden-import gevent.event `
68-
--hidden-import gevent.queue `
69-
--hidden-import dns `
70-
--hidden-import dns.resolver `
71-
--hidden-import requests `
72-
--hidden-import urllib3 `
73-
--hidden-import certifi `
74-
--hidden-import websockets `
75-
--hidden-import websockets.legacy `
76-
--hidden-import websockets.legacy.client `
77-
--hidden-import websockets.legacy.server `
78-
--hidden-import streamlink `
79-
--hidden-import streamlink.plugins `
80-
--hidden-import fake_useragent `
81-
--hidden-import tls_client `
82-
--hidden-import tls_client.dependencies `
83-
--hidden-import rich `
84-
--hidden-import rich.console `
85-
--hidden-import rich.progress `
86-
--hidden-import psutil `
87-
--hidden-import cffi `
88-
--hidden-import engineio `
89-
--hidden-import engineio.async_drivers `
90-
--hidden-import engineio.async_drivers.gevent `
91-
"backend/main.py" `
92-
--name "KickViewerBOT.exe"
43+
pyinstaller --noconfirm KickViewerBOT.spec
9344
9445
- name: Upload artifact
9546
uses: actions/upload-artifact@v4

KickViewerBOT.spec

Lines changed: 33 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,20 +6,33 @@ import os
66
import sys
77

88
# Try to get tls_client dependencies path
9+
tls_client_binaries = []
910
try:
1011
import tls_client
1112
tls_client_deps = os.path.join(os.path.dirname(tls_client.__file__), 'dependencies')
12-
tls_client_binaries = [
13-
(os.path.join(tls_client_deps, 'tls-client-32.dll'), 'tls_client/dependencies'),
14-
(os.path.join(tls_client_deps, 'tls-client-64.dll'), 'tls_client/dependencies'),
15-
(os.path.join(tls_client_deps, 'tls-client-amd64.so'), 'tls_client/dependencies'),
16-
(os.path.join(tls_client_deps, 'tls-client-arm64.dylib'), 'tls_client/dependencies'),
17-
(os.path.join(tls_client_deps, 'tls-client-arm64.so'), 'tls_client/dependencies'),
18-
(os.path.join(tls_client_deps, 'tls-client-x86.dylib'), 'tls_client/dependencies'),
19-
(os.path.join(tls_client_deps, 'tls-client-x86.so'), 'tls_client/dependencies'),
13+
14+
# Only add binaries that actually exist
15+
potential_binaries = [
16+
'tls-client-32.dll',
17+
'tls-client-64.dll',
18+
'tls-client-amd64.so',
19+
'tls-client-arm64.dylib',
20+
'tls-client-arm64.so',
21+
'tls-client-x86.dylib',
22+
'tls-client-x86.so',
2023
]
21-
except ImportError:
22-
tls_client_binaries = []
24+
25+
for binary in potential_binaries:
26+
binary_path = os.path.join(tls_client_deps, binary)
27+
if os.path.exists(binary_path):
28+
tls_client_binaries.append((binary_path, 'tls_client/dependencies'))
29+
print(f"Found tls_client binary: {binary}")
30+
31+
# Also include the entire dependencies folder as data
32+
if os.path.exists(tls_client_deps):
33+
print(f"Adding tls_client dependencies folder: {tls_client_deps}")
34+
except ImportError as e:
35+
print(f"Warning: Could not import tls_client: {e}")
2336

2437

2538
# Use the current Python environment's site-packages (works for venv and CI)
@@ -36,6 +49,16 @@ fake_useragent_data = os.path.join(site_packages, 'fake_useragent', 'data')
3649
if os.path.exists(fake_useragent_data):
3750
datas.append((fake_useragent_data, 'fake_useragent/data'))
3851

52+
# Add tls_client dependencies folder if it exists
53+
try:
54+
import tls_client
55+
tls_client_deps_dir = os.path.join(os.path.dirname(tls_client.__file__), 'dependencies')
56+
if os.path.exists(tls_client_deps_dir):
57+
datas.append((tls_client_deps_dir, 'tls_client/dependencies'))
58+
print(f"Added tls_client dependencies to datas: {tls_client_deps_dir}")
59+
except:
60+
pass
61+
3962
a = Analysis(
4063
['backend/main.py'],
4164
pathex=[],

0 commit comments

Comments
 (0)