Initial commit: Twitch VOD Manager v3.5.3
- Main application with auto-update functionality - PyInstaller spec for building standalone EXE - Inno Setup installer script with silent update support - Server version.json for update checking Features: - Download Twitch VODs - Auto-update with silent installation - Settings stored in ProgramData Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
commit
b29e50afa1
21
.gitignore
vendored
Normal file
21
.gitignore
vendored
Normal file
@ -0,0 +1,21 @@
|
||||
# Build artifacts
|
||||
build/
|
||||
dist/
|
||||
installer_output/
|
||||
__pycache__/
|
||||
*.pyc
|
||||
|
||||
# Config with credentials
|
||||
config.json
|
||||
|
||||
# Temp files
|
||||
*.log
|
||||
nul
|
||||
download_queue.json
|
||||
|
||||
# IDE
|
||||
.vscode/
|
||||
.idea/
|
||||
|
||||
# Old exe
|
||||
Twitch_VOD_Manager.exe
|
||||
49
Twitch_VOD_Manager.spec
Normal file
49
Twitch_VOD_Manager.spec
Normal file
@ -0,0 +1,49 @@
|
||||
# -*- mode: python ; coding: utf-8 -*-
|
||||
from PyInstaller.utils.hooks import collect_all
|
||||
|
||||
datas = []
|
||||
binaries = []
|
||||
hiddenimports = []
|
||||
tmp_ret = collect_all('customtkinter')
|
||||
datas += tmp_ret[0]; binaries += tmp_ret[1]; hiddenimports += tmp_ret[2]
|
||||
tmp_ret = collect_all('cv2')
|
||||
datas += tmp_ret[0]; binaries += tmp_ret[1]; hiddenimports += tmp_ret[2]
|
||||
tmp_ret = collect_all('imageio_ffmpeg')
|
||||
datas += tmp_ret[0]; binaries += tmp_ret[1]; hiddenimports += tmp_ret[2]
|
||||
|
||||
|
||||
a = Analysis(
|
||||
['Twitch_VOD_Manager_V_3.5.3.pyw'],
|
||||
pathex=[],
|
||||
binaries=binaries,
|
||||
datas=datas,
|
||||
hiddenimports=hiddenimports,
|
||||
hookspath=[],
|
||||
hooksconfig={},
|
||||
runtime_hooks=[],
|
||||
excludes=[],
|
||||
noarchive=False,
|
||||
optimize=0,
|
||||
)
|
||||
pyz = PYZ(a.pure)
|
||||
|
||||
exe = EXE(
|
||||
pyz,
|
||||
a.scripts,
|
||||
a.binaries,
|
||||
a.datas,
|
||||
[],
|
||||
name='Twitch_VOD_Manager',
|
||||
debug=False,
|
||||
bootloader_ignore_signals=False,
|
||||
strip=False,
|
||||
upx=True,
|
||||
upx_exclude=[],
|
||||
runtime_tmpdir=None,
|
||||
console=False,
|
||||
disable_windowed_traceback=False,
|
||||
argv_emulation=False,
|
||||
target_arch=None,
|
||||
codesign_identity=None,
|
||||
entitlements_file=None,
|
||||
)
|
||||
2535
Twitch_VOD_Manager_V_3.5.3.pyw
Normal file
2535
Twitch_VOD_Manager_V_3.5.3.pyw
Normal file
File diff suppressed because it is too large
Load Diff
70
installer.iss
Normal file
70
installer.iss
Normal file
@ -0,0 +1,70 @@
|
||||
; Inno Setup Script for Twitch VOD Manager
|
||||
; Version 3.3.5
|
||||
|
||||
#define MyAppName "Twitch VOD Manager"
|
||||
#define MyAppVersion "3.5.3"
|
||||
#define MyAppPublisher "Twitch VOD Manager"
|
||||
#define MyAppExeName "Twitch_VOD_Manager.exe"
|
||||
|
||||
[Setup]
|
||||
AppId={{8A7B9C0D-1E2F-3A4B-5C6D-7E8F9A0B1C2D}
|
||||
AppName={#MyAppName}
|
||||
AppVersion={#MyAppVersion}
|
||||
AppPublisher={#MyAppPublisher}
|
||||
DefaultDirName={autopf}\{#MyAppName}
|
||||
DefaultGroupName={#MyAppName}
|
||||
DisableProgramGroupPage=yes
|
||||
OutputDir=installer_output
|
||||
OutputBaseFilename=Twitch_VOD_Manager_Setup_{#MyAppVersion}
|
||||
Compression=lzma2/ultra64
|
||||
SolidCompression=yes
|
||||
WizardStyle=modern
|
||||
PrivilegesRequired=admin
|
||||
|
||||
[Languages]
|
||||
Name: "german"; MessagesFile: "compiler:Languages\German.isl"
|
||||
Name: "english"; MessagesFile: "compiler:Default.isl"
|
||||
|
||||
[Tasks]
|
||||
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
|
||||
|
||||
[Files]
|
||||
Source: "dist\{#MyAppExeName}"; DestDir: "{app}"; Flags: ignoreversion
|
||||
|
||||
[Icons]
|
||||
Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
|
||||
Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}"
|
||||
Name: "{autodesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon
|
||||
|
||||
[Run]
|
||||
; Bei normaler Installation: Checkbox "Programm starten"
|
||||
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent runasoriginaluser
|
||||
|
||||
[Code]
|
||||
procedure CurStepChanged(CurStep: TSetupStep);
|
||||
var
|
||||
DataDir: String;
|
||||
TempDir: String;
|
||||
ResultCode: Integer;
|
||||
begin
|
||||
if CurStep = ssPostInstall then
|
||||
begin
|
||||
// Erstelle ProgramData Ordner fuer Settings
|
||||
DataDir := ExpandConstant('{commonappdata}\Twitch_VOD_Manager');
|
||||
if not DirExists(DataDir) then
|
||||
CreateDir(DataDir);
|
||||
|
||||
// Bei Silent Install: Alte _MEI Ordner loeschen und App starten
|
||||
if WizardSilent then
|
||||
begin
|
||||
Sleep(5000); // 5 Sekunden warten bis alte Prozesse beendet
|
||||
|
||||
// Alte PyInstaller _MEI Ordner loeschen
|
||||
TempDir := ExpandConstant('{tmp}\..');
|
||||
Exec('cmd.exe', '/c "for /d %i in ("' + TempDir + '\_MEI*") do rd /s /q "%i"" 2>nul', '', SW_HIDE, ewWaitUntilTerminated, ResultCode);
|
||||
|
||||
Sleep(1000); // Kurz warten nach Cleanup
|
||||
Exec(ExpandConstant('{app}\{#MyAppExeName}'), '', '', SW_SHOW, ewNoWait, ResultCode);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
5
server_files/version.json
Normal file
5
server_files/version.json
Normal file
@ -0,0 +1,5 @@
|
||||
{
|
||||
"version": "3.5.3",
|
||||
"download_url": "http://24-music.de/Twitch_VOD_Manager_Setup.exe",
|
||||
"changelog": "Silent Update (kein CMD-Fenster)"
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user