Commit Graph

605 Commits

Author SHA1 Message Date
guihkx
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
guihkx
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:

5943ed4e19

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
Patriot99
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
DevilXD
41430b5027 Enable ResourceWarning handling 2022-12-19 08:46:35 +01:00
DevilXD
b0077fb566 Fix spacing 2022-12-17 11:16:11 +01:00