Commit Graph

2294 Commits

Author SHA1 Message Date
Ashik K 54154b032f Fix channel display on tvOS - use full screen instead of modal popup
Changed MediaCoordinator routing from .modal to .push for tvOS to match native library behavior. All channels (Xtream VOD, Xtream Series, Live TV, etc.) now display in full-screen grid layout instead of a small centered modal window.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-17 12:02:14 +02:00
Ashik K 76453fe0ab Update bundle identifier to org.ashik.jellypig and fix SwiftGen script
Changes:
- Update bundle identifier from org.jellyfin.swiftfin to org.ashik.jellypig
  - Updated in project.pbxproj (4 occurrences)
  - Updated in LogManager.swift (logger label)
  - Updated in DataCache.swift (cache paths)
- Fix SwiftGen build script to skip gracefully without error
  - Changed "error:" to "note:" to prevent Xcode build errors
  - Script now exits cleanly when SwiftGen not installed (English-only fork)

This allows the app to be signed with a personal Apple Developer account
and built successfully without SwiftGen dependency.
2025-10-17 11:38:51 +02:00
Ashik K 9a78115a93 Add channel support and debug logging for Xtream content display
- Add .channel to BaseItemKind.supportedCases for proper filtering
- Implement channel API routing in ItemLibraryViewModel
- Add comprehensive debug logging to track API calls and filtering
- Support channels in MediaViewModel library views
- Fix channel items not appearing in media libraries

This enables Xtream plugin channels (VOD/Series) to display correctly
in jellypig tvOS. Channels now use proper /Channels API endpoints
instead of falling back to regular /Items API.

Related to ongoing fix for Xtream content media display.
2025-10-17 10:49:20 +02:00
Ashik K ab3773e4cc Remove helper script - not needed in repository 2025-10-17 09:54:00 +02:00
Ashik K e3bcd8638a Implement channel navigation for Jellyfin plugin channels
- Modified ItemLibraryViewModel to detect channel/channelFolderItem types
- Added getChannelItems() method to use Paths.getChannelItems API for channels
- Channel folders now use channelID and folderID parameters correctly
- Modified PagingLibraryView to route .channelFolderItem to library grid view

This enables proper navigation for Jellyfin.Xtream plugin channels:
Channel → Grid of Categories → Grid of Content → Item Detail

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-17 09:53:23 +02:00
Ashik K f1615f9078 Change Jellyfin blob logo from blue to pink
Changed the jellyfin-blob.svg gradient from blue (#1F4EA7 to #00DDFF)
to bright pink (#C8197C to #FF1493) to match the jellypig branding.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-17 09:43:59 +02:00
Ashik K 9fbb2c6731 Add device icon assets and install SwiftGen
- Added DeviceIcons from upstream to tvOS assets catalog
- Built and installed SwiftGen 6.6.3 from source to /opt/homebrew/bin
- Build now succeeds with all ImageResource references resolved

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-17 09:42:13 +02:00
Ashik K c30a4e9c23 Rename all Swiftfin files to lowercase jellypig
- Renamed SwiftfinApp.swift to jellypigapp.swift
- Renamed SwiftfinStore/ to jellypigstore/
- Renamed all SwiftfinStore files to jellypigstore
- Renamed SwiftfinDefaults.swift to jellypigdefaults.swift
- Renamed VideoPlayerType+Swiftfin.swift to VideoPlayerType+jellypig.swift
- Updated all project.pbxproj file references to match new names

All file names now use lowercase jellypig for consistency.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-17 09:28:57 +02:00
Ashik K 86b6814f0a Fix file references and SwiftGen script
- Revert SwiftfinApp/SwiftfinStore file name changes (files weren't renamed, only refs)
- Change SwiftGen error to warning and exit 0 instead of return 1
- Allows build to continue without SwiftGen installed (English-only fork)
2025-10-17 09:23:00 +02:00
Ashik K 10895d1b8c Change app icons from blue to bright pink
- Converted all 14 tvOS icon PNG files from blue to hot pink
- Applied to app icons, top shelf images, and App Store icons
- Distinguishes jellypig from upstream Swiftfin visually
- Used Python script with Pillow for color transformation
2025-10-17 09:05:13 +02:00
Ashik K fe8e0487a9 Remove iOS code and target - tvOS only fork
- Removed entire jellypig iOS directory
- Removed jellypig iOS.xcscheme
- jellypig is now tvOS-only for Apple TV usage
- Focusing on Jellyfin.Xtream plugin compatibility
2025-10-17 08:51:26 +02:00
Ashik K 65d5a4b176 Rename Swiftfin to jellypig - personal fork for custom use cases
- Renamed Swiftfin.xcodeproj → jellypig.xcodeproj
- Renamed directories: Swiftfin tvOS → jellypig tvOS, Swiftfin → jellypig iOS
- Renamed schemes: Swiftfin tvOS → jellypig tvOS, Swiftfin → jellypig iOS
- Updated all references in project.pbxproj and scheme files
- tvOS-focused personal fork for Jellyfin.Xtream plugin usage

License: MPL-2.0 (allows forking and modifications)
2025-10-17 08:50:39 +02:00
Ethan Pippin d4412badc4 Update Fastlane runner (#1624) 2025-07-06 20:11:20 -06:00
Sam d9227deafe Fetch correct server when updating info (#1623) 2025-07-06 20:11:20 -06:00
Alexandre Perera 8fbc7fec3e Translated using Weblate (Catalan)
Currently translated at 59.0% (492 of 833 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/ca/
2025-06-09 07:01:35 +00:00
Pere 4798faa8a0 Translated using Weblate (Catalan)
Currently translated at 59.0% (492 of 833 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/ca/
2025-06-09 07:01:34 +00:00
aniara001 1f5bcfec6a Translated using Weblate (Swedish)
Currently translated at 54.6% (455 of 833 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/sv/
2025-06-09 07:01:34 +00:00
tobylibo 0feb7d0738 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 36.3% (303 of 833 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/zh_Hans/
2025-06-09 07:01:33 +00:00
Ethan Pippin 5d4eb640ee
Update release.yml (#1561) 2025-06-08 13:16:46 -06:00
Pere 7bf40ab7f3 Translated using Weblate (Catalan)
Currently translated at 41.6% (347 of 833 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/ca/
2025-06-08 02:01:34 +00:00
cicirubi 56de4f5414 Translated using Weblate (Turkish)
Currently translated at 31.5% (263 of 833 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/tr/
2025-06-08 02:01:33 +00:00
Alexander a0275a2431 Translated using Weblate (Russian)
Currently translated at 43.0% (359 of 833 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/ru/
2025-06-08 02:01:33 +00:00
tct123 97fc8b1360 Translated using Weblate (German)
Currently translated at 100.0% (833 of 833 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/de/
2025-06-06 17:04:08 +00:00
Kebbino c8dde0c156 Translated using Weblate (Italian)
Currently translated at 45.3% (378 of 833 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/it/
2025-06-06 10:48:42 +00:00
Fity Yang 027efe2185 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 36.0% (300 of 833 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/zh_Hans/
2025-06-06 04:02:41 +00:00
Fity Yang 4cef6f3e19 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 34.4% (287 of 833 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/zh_Hans/
2025-06-06 01:41:16 +00:00
Joe Kribs e43efdce04
Default to Recursive mirroring prior to #1495. Resolves: https://github.com/jellyfin/Swiftfin/issues/1557 (#1558) 2025-06-05 13:04:51 -06:00
Fity Yang d491417cfc Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 34.3% (286 of 833 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/zh_Hans/
2025-06-05 14:39:47 +00:00
Sander Scheijvens 96e1602750 Translated using Weblate (Dutch)
Currently translated at 100.0% (833 of 833 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/nl/
2025-06-05 02:03:06 +00:00
Joe Kribs 99011b5c92
Cinematic Episode Image (#1556) 2025-06-03 18:27:01 -06:00
Finn Drünert 4976c1fd70 Translated using Weblate (German)
Currently translated at 97.4% (812 of 833 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/de/
2025-06-03 22:29:49 +00:00
Quang c1563e52d3
Played/Unplayed status for "Collection" and "TV Shows" (#1495)
* off recursive

* pr feedback

* Cleanup

Instantiate the collectionType in the `if let` since failure to cast `as? BaseItemDto` should count as false as well. Only set `parameters.isRecursive` once in if/else opposed to if -> override.

* wip

* fix recursive and item kinds

* rename, fix folders

---------

Co-authored-by: Quang <quang.ha@a2:3c:68:56:26:8d.home>
Co-authored-by: Joe <jpkribs@outlook.com>
Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
Co-authored-by: Quang <quang.ha@QrM3P.local>
2025-06-03 15:42:11 -06:00
Nicolas DA SILVA a1cbc2a132
Reverting to VLCKit 3.5.0 | solving OPUS issue (#1552) 2025-06-03 15:41:58 -06:00
Tostoto 955cda86d7 Translated using Weblate (Russian)
Currently translated at 42.9% (358 of 833 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/ru/
2025-06-03 15:38:50 +00:00
scapade d733a94071 Translated using Weblate (Finnish)
Currently translated at 46.9% (391 of 833 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/fi/
2025-06-03 10:33:24 +00:00
scapade 11824cf828 Translated using Weblate (Finnish)
Currently translated at 45.6% (380 of 833 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/fi/
2025-06-02 14:41:31 +00:00
Kityn 75a6649e08 Translated using Weblate (Polish)
Currently translated at 100.0% (833 of 833 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/pl/
2025-06-02 14:41:30 +00:00
Henri De Plaen 75bd6a9cae Translated using Weblate (French)
Currently translated at 99.2% (827 of 833 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/fr/
2025-06-01 14:01:33 +00:00
bouhaa 5760ab0976 Translated using Weblate (Dutch)
Currently translated at 99.7% (831 of 833 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/nl/
2025-05-31 07:30:52 +00:00
Ethan Pippin df88054d95
Update fastlane (#1553)
* Update FastlaneRunner

* update
2025-05-30 09:24:51 -06:00
scapade 165b7a2c1c Translated using Weblate (Finnish)
Currently translated at 45.2% (377 of 833 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/fi/
2025-05-30 09:40:40 +00:00
Gabriel Souza 3e67b990a6 Translated using Weblate (Portuguese (Brazil))
Currently translated at 71.6% (597 of 833 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/pt_BR/
2025-05-29 11:30:21 +00:00
Jonatan 95466b8ff9 Translated using Weblate (Danish)
Currently translated at 35.7% (298 of 833 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/da/
2025-05-29 11:30:21 +00:00
lostb1t 413477ae22
optimize: Send media source id to playback info (#1546) 2025-05-26 20:20:00 -04:00
Gabriel Souza be791bca85 Translated using Weblate (Portuguese (Brazil))
Currently translated at 71.1% (593 of 833 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/pt_BR/
2025-05-26 10:32:17 +00:00
Gabriel Souza f4f46b9ee3 Translated using Weblate (Portuguese (Brazil))
Currently translated at 67.8% (565 of 833 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/pt_BR/
2025-05-25 02:03:40 +00:00
Gallyam Biktashev cefe91e0eb Translated using Weblate (Russian)
Currently translated at 38.2% (319 of 833 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/ru/
2025-05-25 02:03:40 +00:00
xsiviso f6c7136450 Translated using Weblate (German)
Currently translated at 97.4% (812 of 833 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/de/
2025-05-24 14:34:13 +00:00
xsiviso d2a0301725 Translated using Weblate (German)
Currently translated at 97.2% (810 of 833 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/de/
2025-05-24 08:27:14 +00:00
Gabriel Souza 3c2f344d52 Translated using Weblate (Portuguese (Brazil))
Currently translated at 64.2% (535 of 833 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/pt_BR/
2025-05-24 02:20:19 +00:00