Mercurial > codedump
annotate qbittorrent_update.py @ 83:05803e046878
Create ken_source_downloader.c
committer: GitHub <noreply@github.com>
author | Paper <37962225+mrpapersonic@users.noreply.github.com> |
---|---|
date | Wed, 27 Jul 2022 21:14:12 -0400 |
parents | 8be9281d7ade |
children |
rev | line source |
---|---|
62
8be9281d7ade
Add `qbittorrent_update.py`
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
1 """ |
8be9281d7ade
Add `qbittorrent_update.py`
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
2 qBittorrent Updater for Windows (x64) |
8be9281d7ade
Add `qbittorrent_update.py`
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
3 by Paper |
8be9281d7ade
Add `qbittorrent_update.py`
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
4 |
8be9281d7ade
Add `qbittorrent_update.py`
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
5 This could be easily ported to macOS/Linux, but for the former it |
8be9281d7ade
Add `qbittorrent_update.py`
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
6 would just be easier to do it in AppleScript, and for the latter |
8be9281d7ade
Add `qbittorrent_update.py`
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
7 you should already be using a package manager to do this for you. |
8be9281d7ade
Add `qbittorrent_update.py`
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
8 """ |
8be9281d7ade
Add `qbittorrent_update.py`
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
9 import urllib.request |
8be9281d7ade
Add `qbittorrent_update.py`
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
10 import re |
8be9281d7ade
Add `qbittorrent_update.py`
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
11 import psutil |
8be9281d7ade
Add `qbittorrent_update.py`
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
12 import os |
8be9281d7ade
Add `qbittorrent_update.py`
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
13 import platform |
8be9281d7ade
Add `qbittorrent_update.py`
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
14 import time |
8be9281d7ade
Add `qbittorrent_update.py`
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
15 |
8be9281d7ade
Add `qbittorrent_update.py`
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
16 |
8be9281d7ade
Add `qbittorrent_update.py`
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
17 def _check_running(exename): |
8be9281d7ade
Add `qbittorrent_update.py`
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
18 for proc in psutil.process_iter(): |
8be9281d7ade
Add `qbittorrent_update.py`
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
19 try: |
8be9281d7ade
Add `qbittorrent_update.py`
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
20 if proc.name() == exename: |
8be9281d7ade
Add `qbittorrent_update.py`
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
21 return True |
8be9281d7ade
Add `qbittorrent_update.py`
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
22 except psutil.NoSuchProcess as err: |
8be9281d7ade
Add `qbittorrent_update.py`
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
23 return False |
8be9281d7ade
Add `qbittorrent_update.py`
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
24 except psutil.AccessDenied: |
8be9281d7ade
Add `qbittorrent_update.py`
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
25 return False |
8be9281d7ade
Add `qbittorrent_update.py`
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
26 |
8be9281d7ade
Add `qbittorrent_update.py`
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
27 |
8be9281d7ade
Add `qbittorrent_update.py`
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
28 QBITTORRENT_DIRECTORY = "C:\\Program Files\\qBittorrent" |
8be9281d7ade
Add `qbittorrent_update.py`
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
29 TEMP_DIRECTORY = os.getenv("TEMP") |
8be9281d7ade
Add `qbittorrent_update.py`
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
30 BIT_STR = "_x64" if platform.machine().endswith('64') else "" |
8be9281d7ade
Add `qbittorrent_update.py`
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
31 |
8be9281d7ade
Add `qbittorrent_update.py`
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
32 if _check_running("qbittorrent.exe"): |
8be9281d7ade
Add `qbittorrent_update.py`
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
33 print("qBittorrent is currently running! Please exit it and try again.") |
8be9281d7ade
Add `qbittorrent_update.py`
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
34 quit(1) |
8be9281d7ade
Add `qbittorrent_update.py`
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
35 |
8be9281d7ade
Add `qbittorrent_update.py`
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
36 # Get the link for the latest version, courtesy of SourceForge |
8be9281d7ade
Add `qbittorrent_update.py`
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
37 urllib.request.urlretrieve(re.search("\<a href=\"(https:\/\/sourceforge\.net\/projects\/qbittorrent\/files\/qbittorrent-win32\/qbittorrent-[0-9\.]+\/qbittorrent_[0-9\.]+" + BIT_STR + "_setup\.exe\/download)\"\>", urllib.request.urlopen("https://www.qbittorrent.org/download.php").read().decode("utf-8")).group(1), os.path.join(TEMP_DIRECTORY, "qbittorrent_setup.exe")) |
8be9281d7ade
Add `qbittorrent_update.py`
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
38 |
8be9281d7ade
Add `qbittorrent_update.py`
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
39 # Run the installer and wait for it to finish |
8be9281d7ade
Add `qbittorrent_update.py`
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
40 os.system(os.path.join(TEMP_DIRECTORY, "qbittorrent_setup.exe") + " /S") |
8be9281d7ade
Add `qbittorrent_update.py`
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
41 while _check_running("qbittorrent_setup.exe"): |
8be9281d7ade
Add `qbittorrent_update.py`
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
42 time.sleep(5) |
8be9281d7ade
Add `qbittorrent_update.py`
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
43 |
8be9281d7ade
Add `qbittorrent_update.py`
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
44 # Cleanup |
8be9281d7ade
Add `qbittorrent_update.py`
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
45 os.remove(os.path.join(TEMP_DIRECTORY, "qbittorrent_setup.exe")) |