No description
  • Python 93.8%
  • Shell 5.3%
  • Meson 0.9%
Find a file
Anton Palgunov 1e5c7fd1a3
Implement isolated testing script and enhance macOS media key integration
- Added `test-isolated.sh` script to verify that Kitsune.app runs without Homebrew or system Python, including checks for Homebrew path leaks, bundle structure, Python imports, and app launch.
- Refactored token storage in `token_store.py` to use `keyring` instead of `Secret`, simplifying token management.
- Enhanced `GstPlayer` to initialize GStreamer if not already done and added a method to reset the pipeline after end-of-stream.
- Introduced `macos_media_keys.py` for handling media key events on macOS, integrating with `MPRemoteCommandCenter` for playback controls.
- Updated `image_cache.py` to generate square thumbnails for macOS Now Playing widget.
- Modified `player_view.py` to set up media key handlers and update Now Playing info based on playback state.
- Adjusted `main.py` to handle locale binding for non-GNU builds.
- Updated tests in `test_token_store.py` to reflect changes in token storage implementation and ensure robustness against deletion errors.
2026-05-11 22:04:07 +01:00
build-aux/flatpak flatpak: add manifest for local testing 2026-03-17 23:31:28 +03:00
data feat(tags): sync badge on builtin tags, delete badge on custom 2026-05-11 12:25:27 +03:00
po i18n(ru): complete translations and fix POTFILES gaps 2026-05-11 13:15:02 +03:00
scripts Implement isolated testing script and enhance macOS media key integration 2026-05-11 22:04:07 +01:00
src Implement isolated testing script and enhance macOS media key integration 2026-05-11 22:04:07 +01:00
tests Implement isolated testing script and enhance macOS media key integration 2026-05-11 22:04:07 +01:00
.gitignore Implement isolated testing script and enhance macOS media key integration 2026-05-11 22:04:07 +01:00
changelog.md docs: update README features and changelog for 0.7.0 2026-03-12 20:22:23 +03:00
CLAUDE.md fix(sync): observability, correctness fixes, Adw.Banner migration 2026-04-18 01:58:36 +03:00
LICENSE feat: add Meson build system scaffolding 2026-03-07 10:12:00 +03:00
meson.build release: 0.8.5 2026-03-26 21:46:59 +03:00
README.md docs: clarify that API content is in Russian 2026-03-18 11:24:02 +03:00
README.ru.md docs: clarify that API content is in Russian 2026-03-18 11:24:02 +03:00
TODO.md feat(catalog): viewport-sized loading with resize prefetch, review hardening 2026-05-11 05:30:02 +03:00

Kitsune

Kitsune

Libadwaita client for watching anime from AniLiberty

License

Kitsune is an unofficial client. All content (catalog, descriptions, and subtitles) is provided in Russian by the AniLiberty team through their public API.

Features

  • Release catalog with filters by genre, year, season, and type
  • Search by title with instant results
  • Release page with details, episode list, voice cast, and torrents
  • Built-in video player with HLS playback and quality control
  • Browse by genres and franchises
  • Tags and favorites for organizing your library
  • Episode watch progress tracking
  • Customizable navigation — tab order and visibility
  • Watch position saving
  • Poster and release data caching for offline access
  • Adaptive interface for desktop and mobile devices
  • Russian and English language support

Screenshots

Kitsune

Installation

From ALT Linux repository

apt-get update
apt-get install kitsune-adw

From ALS (ALT Linux Space)

apt-repo add rpm https://altlinux.space/api/packages/armatik/alt/group/sisyphus.repo noarch classic
apt-get update
apt-get install kitsune

Building from source

Dependencies:

  • Python 3.12+
  • GTK 4
  • Libadwaita >= 1.6
  • GStreamer >= 1.24 (with gtk4paintablesink and hlsdemux plugins)
  • Libsoup 3
  • Meson 1.0+
  • Blueprint Compiler

Build and install:

meson setup _build
meson compile -C _build
sudo meson install -C _build

Runtime dependencies:

For proper video playback you also need:

  • gst-plugin-gtk4
  • libwebp-pixbuf-loader

Community

Contributing

Contributions in the form of fixes and improvements are welcome.

Translation

Translations are managed through Meson:

meson compile -C _build kitsune-pot          # Update translation template
meson compile -C _build kitsune-update-po    # Update translation files

AniLiberty

Kitsune is powered by content from the AniLiberty team — a non-commercial project dedicated to translating and dubbing anime.

License

Kitsune is licensed under GPL-3.0-or-later.


AI tools were used during the development of this project.