Commit Graph
557 Commits
Author SHA1 Message Date
guihkx 332c8c4ea2 ci: provide development builds for Linux 2023-06-11 16:58:18 +02:00
guihkxandDevilXD ed8c598180 pyinstaller: avoid bundling icon and themes on Linux
This greatly reduces the final size of the UPX-compressed binary, from
78.7 MiB to 54.9 MiB (a 23.8 MiB difference)!

Co-authored-by: DevilXD <bartosz.peszek@gmail.com>
2023-06-11 16:58:18 +02:00
guihkxandDevilXD 5162e5c553 linux: fix URLs not opening in PyInstaller package
Because PyInstaller modifies the LD_LIBRARY_PATH environment variable
to make things work correctly on Linux, when we try to launch any
subprocess (such as the web browser), that modified variable gets
picked up as well, causing things to go south.

To work around this Linux-only problem, we have to:

1. Save the current value of LD_LIBRARY_PATH
2. Move the value of LD_LIBRARY_PATH_ORIG to LD_LIBRARY_PATH
3. Launch subprocess
4. Restore the saved LD_LIBRARY_PATH again

Reference:

https://pyinstaller.org/en/stable/runtime-information.html#ld-library-path-libpath-considerations

Co-authored-by: DevilXD <bartosz.peszek@gmail.com>
2023-06-11 16:58:18 +02:00
guihkx e31dcd85b4 linux: add truststore as a dependency
Because Linux distributions don't have an 'universal' path for the
system certificate store, bundling libssl built on distro A might not
work on distro B, because distros tend to change path to the
certificate store at build time.

This means that creating a PyInstaller package on Ubuntu will include
the libssl built there, and if you try to run this package on a
different distro (e.g. Arch Linux), any attempt to create an SSL
connection will fail, because Arch Linux has a different path for the
certificate store than Ubuntu.

This issue is usually worked around by bundling certificates with the
app (usually using certifi), and then pointing the SSL_CERT_FILE
environment to it.

However, truststore seems to be a better alternative, since it tries to
use the certificate store from the system instead.

The list of benefits are listed on the project's page on GitHub:

https://github.com/sethmlarson/truststore
2023-06-11 16:58:18 +02:00
guihkx 7c1e7b0af1 linux: add PyGObject as a dependency
This dependency is required for proper support of the AppIndicator
backend from pystray:

https://github.com/moses-palmer/pystray/blob/v0.19.4/docs/faq.rst#how-do-i-use-pystray-in-a-virtualenv-on-linux
2023-06-11 16:58:18 +02:00
guihkx 82653fcc20 tk: also hook into WM_DELETE_WINDOW to quit the app
Makes the app exit correctly on Linux when the main window is closed.
2023-06-11 16:58:18 +02:00
guihkx 726082a157 tk: set classPath upon instantiation
This fixes an issue on Linux (more specifically, on GNOME Shell 44),
where the window would be identified as "Tk".
2023-06-11 16:58:18 +02:00
guihkxandDevilXD f8c0dba1ee Use icon.visible to show or hide the tray icon on all systems
On Linux, pystray's icon.stop() currently doesn't work well with the
AppIndicator backend.

So, instead of destroying the icon when the user restores from tray
(only to later re-create it when the user minimizes to tray again), we
have the option to control the icon's visibility instead! Luckily, that
works on Windows too!

Note that for this change to work properly on Linux, we need to switch
to the master version of pystray, because we need this specific fix:

https://github.com/moses-palmer/pystray/commit/5943ed4e19be48224cf39b70444de8ffe22c23ce

After pystray releases a version newer than 0.19.4, we can switch back.

Co-authored-by: DevilXD <bartosz.peszek@gmail.com>
2023-06-11 16:58:18 +02:00
DevilXD 7a07e1a9e4 Use run_in_executor for the tray icon thread 2023-06-11 16:58:18 +02:00
DevilXD 489c45af11 Implement autostart via desktop file on Linux 2023-06-11 16:58:18 +02:00
DevilXD 4664a9d7da Implement starts_at and ends_at label display change for drops 2023-06-03 23:51:38 +02:00
DevilXD 2d1dfe007c Handle most cases of cookie and image cache loading errors 2023-06-03 23:03:52 +02:00
DevilXD 5b8b6c7fdd Update operation hash 2023-05-20 10:23:02 +02:00
guihkx 9b5d3d8a76 Provide development builds via GitHub Actions
Makes it easier for people to test bug fixes or new features.
2023-05-20 09:19:13 +02:00
DevilXD 1df916f91e TEMPFIX: Disable the drops_enabled check 2023-05-17 10:04:13 +02:00
Patriot99 9c8e9a6bd2 Update Polski.json (#185) 2023-05-07 10:18:00 +02:00
DevilXD ea049b65e6 Fix spacing 2023-04-26 22:47:17 +02:00
DevilXD d3da7a9dd2 Fix bullet points 2023-04-26 22:46:51 +02:00
DevilXD e913458fa8 Added more credits and project goals 2023-04-26 22:45:59 +02:00
DevilXD f74f7c8be7 Redesign root icon setting system 2023-04-26 18:48:04 +02:00
DevilXD 9dc7a1d65f Fix ResourceWarning on unclosed icon file 2023-04-26 17:57:51 +02:00
DevilXD ab9b155250 Exclude upx.exe from tracking 2023-04-26 17:56:30 +02:00
DevilXD c5bf130e4e Fix leftover selenium cert files;
Sys-dependent handling of the site-packages path
2023-04-26 08:15:11 +02:00
DevilXD 330eb4f184 Remove undetected-chromedriver from dependencies 2023-04-23 10:06:07 +02:00
Patriot99andDevilXD 2579301e52 Added Polish translation (#178)
Co-authored-by: DevilXD <DevilXD@users.noreply.github.com>
2023-04-23 08:40:56 +02:00
Ricky103403 a19ecebd7b Added Traditional Chinese translation (#120) 2023-04-16 09:58:30 +02:00
DevilXD 93cd57007a Dev version bump 2023-03-07 07:50:26 +01:00
DevilXD 14b02591c6 Fix an issue with specific campaigns causing mining to get stuck until reload 2023-02-28 17:07:27 +01:00
DevilXD dbc99376a5 Fix an issue with tray notifications option not saving 2023-02-27 22:31:56 +01:00
DevilXD e511932339 Handle GQL service error too 2023-02-27 17:06:25 +01:00
DevilXD 466a3aa8f2 Update drop claim GQL hash 2023-02-24 22:01:21 +01:00
Konstantin Nikulin 6e15ff60ab Russian translation improvements (#144) 2023-02-21 23:22:34 +01:00
Joof ffcfd7bf1c Added translation for tray notifications option (#142) 2023-02-21 07:17:28 +01:00
别烦 33d521dffd Update Chinese translation (#141) 2023-02-20 16:59:45 +01:00
sfisc da9a6ea28f Fixed a typo in the German translation 2023-02-19 21:34:26 +01:00
DevilXD 793fb5ccaf Assume directory streams always have the tag 2023-02-19 16:23:06 +01:00
DevilXD 4100ae5661 Add an option to disable tray notifications 2023-02-19 13:16:27 +01:00
DevilXD bfd3893921 Update GQL operation hashes 2023-02-19 11:39:06 +01:00
Sergo1217 21763ecc52 Added Russian Translation (#131) 2023-02-13 22:19:09 +01:00
Joof f48a7e273c Added Spanish credits (#123) 2023-01-31 16:48:47 +01:00
Hamza Roobini 5ecf330ee4 Added French Translation (#122) 2023-01-30 16:50:55 +01:00
Ali 563b86c9de Added Turkish translation 2023-01-19 16:43:49 +01:00
ManInDark 32ad48ff83 Change android app to SmartTV login description (#117) 2023-01-07 19:31:34 +01:00
DevilXD 7102bce4eb Stable v15 2022-12-25 11:12:12 +01:00
DevilXD acbd45beda Fix GQL requests not sending the proper user agent 2022-12-24 10:46:21 +01:00
DevilXD 348d039b28 Prevent others from mismatching their authentication token with the current, different client ID 2022-12-24 10:10:07 +01:00
DevilXD 3892dfe59e Implement SmartTV OAuth2 login flow 2022-12-23 13:18:23 +01:00
DevilXD 7dc474286f Minor cleanup of comments, typing and gitignore 2022-12-23 13:17:47 +01:00
DevilXD 28c0f8b75e Streamline user agent and client ID access 2022-12-22 13:14:44 +01:00
DevilXD d100c4b7ff Ensure all possible time triggers are included 2022-12-19 08:50:10 +01:00