The base64 string for 'lampa' was incorrectly encoded as 'bGFtcGEuc3RyZWFt'
when it should be 'bGFtcGE='. This change fixes the encoding across all
service configurations to ensure proper decoding and functionality.
The changes fix missing commas between base64-encoded strings in configuration arrays across multiple service modules. This ensures proper parsing of the configuration values during runtime.
Affected modules:
- Anihub
- AnimeON
- Bamboo
- CikavaIdeya
- StarLight
- UAKino
- UaTUT
- Uaflix
- Unimay
Adds a comprehensive host blocking system that prevents requests to specific disallowed hosts across all online streaming services. The implementation includes:
- New `NotAllowedHosts` HashSet containing base64-encoded blocked hostnames
- `IsNotAllowedHost()` method to validate URLs before making HTTP requests
- Integration in all service classes (Anihub, AnimeON, Bamboo, CikavaIdeya, StarLight, UAKino, UaTUT, Uaflix, Unimay)
- Checks applied to search, content fetching, and streaming URL resolution
- Consistent implementation pattern across both Invoke and Controller classes
This security enhancement prevents connections to potentially malicious or unauthorized streaming hosts while maintaining existing functionality for allowed sources.
Update SSL certificate validation approach to use SslClientAuthenticationOptions
with a custom validation callback. This modernizes the HTTP client implementation
while maintaining the same security behavior of accepting all certificates.
BREAKING CHANGE: The underlying HTTP handler implementation has changed from
HttpClientHandler to SocketsHttpHandler, which may affect behavior in edge cases
- Remove manual JSON and HTML building logic in Controller.cs
- Eliminate unused image handling and selection logic
- Remove redundant JsonSerializerOptions and helper methods
- Update Episode model to remove Image property
- Simplify image selection in StarLightInvoke.cs to use single source
- Extend episode item tuple to include image field
- Update BuildEpisodeHtml to render episode images when available
- Maintain backward compatibility for episodes without images
The Controller.cs file now uses a local HtmlEncode method instead of the external Shared.Models.Templates.UtilsTpl.HtmlEncode utility. This change improves encapsulation and reduces external dependencies while maintaining the same HTML encoding functionality for special characters.
The change updates the UtilsTpl.HtmlEncode call to use the fully qualified
namespace Shared.Models.Templates.UtilsTpl.HtmlEncode for consistency
with the project's namespace structure and to avoid potential ambiguity
- Replace EpisodeTpl with a new structured approach using List<(string name, object json)>
- Add BuildEpisodeJson and BuildEpisodeHtml methods for consistent output generation
- Implement proper JSON serialization with null value handling
- Add language check in OnlineApi to only process Ukrainian content
- Improve episode display with better title formatting and image handling
- Add Image property to Episode model
- Update episode template call to include image parameter
- Implement SelectImage helper method for flexible image source selection
- Enhance image selection logic for both main content and episodes
Add NormalizeUaflixVoiceNames method to standardize voice naming
by converting "Uaflix #2" or "Uaflix #3" to "Uaflix" when base name
is missing. This ensures consistent voice naming across the system.
The method checks for existing voice keys and renames them
appropriately to maintain a single canonical voice name.
The change adds a new 'streamlink' parameter to the call method in the Controller
to support direct playback functionality. This enhances the API by providing
a dedicated endpoint for streaming content with play=true query parameter.
Implement a new GetString method using HttpClient for better control over
HTTP requests including proxy handling, SSL validation, and timeout management.
This replaces the previous Http.Get calls throughout the UAKino module to
standardize request handling and improve reliability.
The Play endpoint now returns a JSON response containing the stream URL and title
instead of redirecting directly. This allows for better client-side handling and
provides additional metadata to the frontend.
The response format is:
{
"method": "play",
"url": "<stream_url>",
"title": "<anime_title>"
}
- Add BanderaBackend to .gitignore
- Fix LampaC directory name in .gitignore
- Update README with new modules (BambooUA, UAKino, StarLight)
- Mark AniHUB as [RIP] in README
- Fix formatting in README (newline at end of file)
Adds complete UAKino integration with:
- Controller for handling movie/series requests and playback
- ModInit for module configuration and initialization
- Models for search results, playlists, and player data
- OnlineApi for event registration
- UAKinoInvoke for core functionality (search, playlist parsing, player handling)
- Project configuration and manifest
The module supports:
- Search functionality with caching
- Series episode listing with voice selection
- Movie and series playback
- Proxy management and error handling
- HTML and JSON response formats
- Add Controller.cs for handling StarLight API endpoints
- Add ModInit.cs for module initialization and configuration
- Add StarLightModels.cs for data models (SearchResult, ProjectInfo, etc.)
- Add OnlineApi.cs for integrating with the online API system
- Add StarLight.csproj for project configuration
- Add StarLightInvoke.cs for core functionality including search, project retrieval, and stream resolution
- Add manifest.json for module metadata and initialization
The implementation includes:
- Search functionality with caching
- Project information retrieval with season and episode handling
- Stream resolution with multiple fallback options
- Proxy support and error handling
- Integration with the existing online module system
- Add project structure with csproj configuration
- Implement BambooInvoke class for search, series episodes, and movie streams
- Add Controller for handling HTTP requests and responses
- Include ModInit for module initialization and configuration
- Create data models for search results, episodes, and streams
- Add OnlineApi for event handling and integration
- Configure manifest.json for module metadata
This adds complete support for the BambooUA streaming service including:
- Content search functionality
- Series episode parsing with subtitles and dubbing options
- Movie stream extraction
- Proxy management and caching
- API endpoints for integration with the main application
- Add ParseAshdiPage method to extract video URLs from Ashdi pages
- Implement ResolveEpisodeStream to fetch streams via API endpoint
- Add ResolveVideoUrl method to handle different video URL types
- Update Controller to handle new player types and stream resolution
- Add episode_id parameter to play endpoint for direct episode streaming
BREAKING CHANGE: The play endpoint now accepts both url and episode_id parameters
The parameter name in the episode API endpoint was updated from fundubId to translationId to align with the recent API changes. This ensures consistency with the backend's new translation system.
BREAKING CHANGE: The fundubId parameter is now called translationId in the episode API endpoint. Any code using this parameter must be updated accordingly.
Unique voice names when duplicates exist (e.g., "Uaflix" and "Uaflix 2" instead of "[Ashdi] Uaflix" and "[Zetvideo] Uaflix")
Season numbers displayed without the word "Сезон" (e.g., "1" instead of "Сезон 1")