Commit Graph

991 Commits

Author SHA1 Message Date
DevilXD
9329e52643 Fix priority mode names not being translated 2025-08-22 19:04:01 +02:00
DevilXD
1b17dd6784 Fix GUI debug code 2025-08-22 18:58:05 +02:00
DevilXD
cb9b6ab42f Implement force-expired campaign invalidation 2025-08-22 15:33:51 +02:00
DevilXD
69b861d1ba Upgrade UPX version 2025-08-20 20:36:38 +02:00
DevilXD
826fe95f9c Reimplement the old mining method (ref b47b208) 2025-08-17 22:05:44 +02:00
DevilXD
87a30201e4 Minor code leftover to use while resolving issues with unclosed/unreleased resources 2025-08-17 21:58:28 +02:00
DevilXD
6626f94015 Minor typing fix 2025-07-27 11:14:42 +02:00
guihkx
eab58cd5f2 ci/linux: provide PyInstaller package for aarch64 2025-07-27 10:58:01 +02:00
guihkx
d209e0e9e0 ci/linux: provide AppImage package for aarch64 2025-07-27 10:58:01 +02:00
guihkx
7116cbc759 linux/appimage: recursively remove ELF debug symbols
This reduces the AppImage's AppDir from 100,5 MiB to 90,3 MiB.
2025-07-26 23:40:01 +02:00
guihkx
42e7e88f30 linux/appimage: remove more unneeded files
This reduces the AppImage's AppDir from 110,6 MiB to 100,5 MiB.
2025-07-26 23:40:01 +02:00
guihkx
67eb7d0966 linux/appimage: remove x86_64 hardcoding from build recipe
Now the target CPU architecture should be set by the 'ARCH' environment
variable before invoking appimage-builder.

This makes it easier to build the AppImage for other CPU architectures.
2025-07-26 23:40:01 +02:00
guihkx
4a990ad981 linux/appimage: remove "universe" and "backports" repos
We don't need packages from these repositories.
2025-07-26 23:40:01 +02:00
guihkx
4e23b1c8ba linux/appimage: remove GDK_BACKEND=x11 workaround
This environment variable was necessary back then to work around a bug
in the libgtk3 version we include in the AppImage.

However, since commit 3897a8bccf
("ci/linux: build AppImage on Ubuntu 22.04 (Python 3.10)"), that's not
needed anymore, because Ubuntu 22.04 has a newer version of libgtk3,
which fixes the problem.

I made sure to verify the app runs as expected on Wayland sessions of
two major desktop environments:

- GNOME: 42.9 (Ubuntu 22.04.05) and 48.3 (Arch Linux)
- KDE Plasma: 5.27.5 (Debian 12) and 6.4.3 (Arch Linux)
2025-07-26 23:40:01 +02:00
guihkx
3724ab9b05 linux/appimage: update libXft from 2.3.8 to 2.3.9
An up to date version of libXft is still needed because Ubuntu 22.04
still has 2.3.4, which can cause the app not to launch if an emoji font
is installed on the host.
2025-07-26 23:40:01 +02:00
guihkx
9238c4d133 linux/appimage: fix "pip install" commands
Unfortunately, sourcing the Python venv Bash script to activate the
virtual environment doesn't work while we're building the AppImage, so
this just manually invokes Pip from within the venv to install updated
versions of meson and ninja (for building PyGObject next), and then we
prepend the venv's "bin" directory to the 'PATH' environment variable
to make meson and ninja discoverable on the next "pip install" step.

This also removes "certifi" from being manually installed, because
"truststore" has been usable since commit
3897a8bccf ("ci/linux: build AppImage on
Ubuntu 22.04 (Python 3.10)").
2025-07-26 23:40:01 +02:00
guihkx
1fa20d3634 ci/linux: don't install python3-testresources
If I remember correctly, this was required by the tool that makes our
AppImage, which doesn't seem to require it anymore.
2025-07-26 23:40:01 +02:00
guihkx
9e9ac04b7f ci/linux: use git version of appimage-builder
appimage-builder is a tool that is not officially part of the AppImage
ecosystem, and lately its maintainer hasn't been able to keep up with
the latest AppImage ideas, most notably:

- The move to a new statically-linked runtime: Before this, all AppImages
using the old runtime, would depend on libfuse2 to be installed on the
host system just to be able to run out of the box. This wasn't much of
a problem back then, because libfuse2 was ubiquitous. However, nowadays,
some have distros don't even have it in their official repositories.
- The removal of the xz compression algorithm (used by default), and the
addition of Zstd.

Luckily, the problems above have been fixed in the git version of
appimage-builder, but a stable release is yet to be made, so we'll have
to use the git version, because other AppImage-making tools are not as
nice and convenient as appimage-builder.
2025-07-26 23:40:01 +02:00
guihkx
f33486aac6 linux/appimage: manually download the runtime to fix build error
This manually downloads the old AppImage runtime (now marked as
obsolete), to prevent appimage-builder v1.1.0 from failing to make the
AppImage.

The download URL appimage-builder v1.1.0 uses for the AppImage runtime
is hardcoded into the tool, and unfortunately it's been recently
removed, so this is merely a workaround, until hopefully a future
appimage-builder release fixes this.

See: https://redirect.github.com/AppImageCrafters/appimage-builder/issues/375
2025-07-24 07:26:16 +02:00
DevilXD
01706cdd4e User agent update 2025-07-23 21:41:12 +02:00
Calvineries
822107ffde Update French translation (#729)
Co-authored-by: DevilXD <4180725+DevilXD@users.noreply.github.com>
2025-07-17 17:26:29 +02:00
DevilXD
3969f75537 Update inventory GQL hash 2025-07-16 08:02:27 +02:00
DevilXD
1ef91adb51 Fix failing linux build (#723) 2025-07-04 14:08:27 +02:00
DevilXD
411160a6eb Support Fedora 42 builds (#723) 2025-07-04 11:38:45 +02:00
DevilXD
0d990094c2 Make get_active_drop take channel game into account 2025-06-21 20:00:48 +02:00
DevilXD
eb1dc1356b Use a less invasive method for grabbing user attention 2025-06-21 19:00:09 +02:00
DevilXD
cd4eeeeab2 Mostly ignore instances of "server error" 2025-06-21 18:44:38 +02:00
DevilXD
44e6e09119 Fix missing new line in the credits section 2025-06-21 18:43:50 +02:00
DevilXD
a26b359687 Image cache now ignores corrupted image files 2025-06-01 08:27:50 +02:00
DevilXD
8d2ede89ca Fix an issue with the miner trying to mine excluded games 2025-05-01 17:42:38 +02:00
DevilXD
ceb9959abd Fix an issue with the drop claim operation having no notifications 2025-05-01 17:41:38 +02:00
DevilXD
240ba23b0c Remove channel points handling 2025-05-01 17:06:18 +02:00
DevilXD
9fbbbee5ef User agent update 2025-05-01 14:40:53 +02:00
DevilXD
c3bf41e513 Fix send_watch process errors for offline streams;
Improve geo-blocked streams detection
2025-04-22 23:57:25 +02:00
guihkx
714558965f ci/linux: update PyInstaller builder to run on Ubuntu 22.04
The Ubuntu 20.04 runner image is expected to be removed from GitHub
Actions on April 1st, 2025.

Source: https://github.com/actions/runner-images/issues/11101
2025-03-24 07:41:34 +01:00
guihkx
5d11b67ad2 pyinstaller: use wildcard matching when excluding binaries 2025-03-24 07:41:34 +01:00
guihkx
01b26cf7b4 linux: pin PyGObject version to <3.51
PyGObject 3.51 (and newer) now requires girepository-2.0 as a build
dependency [1], which is a version we cannot easily install in the
Ubuntu version we use in CI/CD, so the build fails:

=======

$ python3 -m pip install -r requirements.txt
[ ... ]
Collecting PyGObject (from -r requirements.txt (line 4))
  Downloading pygobject-3.52.3.tar.gz (1.2 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.2/1.2 MB 45.4 MB/s eta 0:00:00
  Installing build dependencies: started
  Installing build dependencies: finished with status 'done'
  Getting requirements to build wheel: started
  Getting requirements to build wheel: finished with status 'done'
  Preparing metadata (pyproject.toml): started
  Preparing metadata (pyproject.toml): finished with status 'error'
  error: subprocess-exited-with-error

  × Preparing metadata (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [216 lines of output]
      + meson setup /tmp/pip-install-nayte7bo/pygobject_097c5326983b4ca690e238e49ba4b29c /tmp/pip-install-nayte7bo/pygobject_097c5326983b4ca690e238e49ba4b29c/.mesonpy-sp71efmg -Dbuildtype=release -Db_ndebug=if-release -Db_vscrt=md -Dtests=false -Dwheel=true --wrap-mode=nofallback --native-file=/tmp/pip-install-nayte7bo/pygobject_097c5326983b4ca690e238e49ba4b29c/.mesonpy-sp71efmg/meson-python-native-file.ini
      The Meson build system
      Version: 1.7.0
      Source dir: /tmp/pip-install-nayte7bo/pygobject_097c5326983b4ca690e238e49ba4b29c
      Build dir: /tmp/pip-install-nayte7bo/pygobject_097c5326983b4ca690e238e49ba4b29c/.mesonpy-sp71efmg
      Build type: native build
      Project name: pygobject
      Project version: 3.52.3
      C compiler for the host machine: cc (gcc 9.4.0 "cc (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0")
      C linker for the host machine: cc ld.bfd 2.34
      Host machine cpu family: x86_64
      Host machine cpu: x86_64
      Program python3 found: YES (/opt/hostedtoolcache/Python/3.10.16/x64/bin/python3)
      Found pkg-config: YES (/usr/bin/pkg-config) 1.6.3
      Run-time dependency python found: YES 3.10
      Found CMake: /usr/local/bin/cmake (3.31.6)
      Run-time dependency girepository-2.0 found: NO (tried pkgconfig and cmake)
      Not looking for a fallback subproject for the dependency girepository-2.0 because:
      Use of fallback dependencies is disabled.

      ../meson.build:31:9: ERROR: Dependency 'girepository-2.0' is required but not found.

=======

Unfortunately, girepository-2.0 is only available in Ubuntu 24.10, a
version we can't easily use in GitHub Actions. But even if could, doing
so would also needlessly bump the minimum glibc version requirement for
Linux users, making TDM much less portable.

So, for now, let's pin PyGObject to <3.51.

[1]: d29f4e65fa/NEWS (L4-5)
2025-03-23 23:24:49 +01:00
DragoPrime
1047a8d781 Added Romanian translation (#679) 2025-03-02 23:11:15 +01:00
DevilXD
b46b77d20c Fix inventory view display issues with campaigns having both timed and sub-based drops 2025-03-02 10:26:12 +01:00
DevilXD
6d803978a3 Improve consistency by using campaign eligibility instead of linking status in all places 2025-03-01 12:42:15 +01:00
DevilXD
0804a75c2c Relax 'can_watch' restrictions to allow progressing BADGE campaigns;
Also removes game match requirements from 'get_active_drop'
2025-03-01 11:42:20 +01:00
DevilXD
334291d1b2 Fix BenefitType being assigned incorrectly 2025-03-01 11:05:43 +01:00
DevilXD
58aa421932 Treat eligible campaigns as "linked" for the Inventory view filter 2025-03-01 11:05:28 +01:00
DevilXD
3048159f37 Minor typing fixes 2025-03-01 10:50:25 +01:00
DevilXD
cbc8482b53 Add support for "badge or emote" Twitch campaigns 2025-02-28 18:29:12 +01:00
DevilXD
b6a183b1e7 Add a warning about watching streams in the browser during mining;
Turn source code information into a note instead
2025-02-09 23:49:04 +01:00
DevilXD
1997a517e6 Remove outdated information (invalidated by 70035cde36) 2025-02-03 21:48:52 +01:00
DevilXD
f5527c9011 Remove all scopes from the OAuth flow 2025-02-03 21:31:47 +01:00
DevilXD
c4cfa5372f Login flow now uses the returned verification_uri;
to prefill the user_code on the activation page
2025-02-03 21:31:06 +01:00
DevilXD
689afdddbe Single-retry PersistedQueryNotFound as well 2025-01-05 13:26:17 +01:00