Commit Graph
217 Commits
Author SHA1 Message Date
Leonid Pershin d6bc2b15ac Enhance Telegram bot functionality with message management and new API methods
ci / tests (push) Successful in 4m0s
ci / build-backend (push) Successful in 3m27s
ci / build-frontend (push) Successful in 1m5s
ci / sonar (push) Successful in 8m22s
Updated the ITelegramApi interface to include a method for deleting messages and modified SendMessageAsync to return the message ID. Enhanced the TelegramBotService to manage message visibility by replacing previous messages with new ones, ensuring a cleaner user experience. Introduced properties in TelegramSubscriber to track the latest menu and notice message IDs. Updated related tests to verify the new message management behavior and adjusted documentation to reflect these changes.
2026-07-31 08:24:42 +03:00
Leonid Pershin 8a439f1351 Enhance TelegramBotService with schedule handling and subscription toggling
ci / build-backend (push) Successful in 2m38s
ci / build-frontend (push) Successful in 58s
ci / tests (push) Successful in 4m27s
ci / sonar (push) Successful in 9m26s
Updated the TelegramBotService to support new actions for managing subscriptions and retrieving channel schedules. Introduced constants for action types and improved the callback data structure for better clarity. Added a method to send channel schedules, consolidating upcoming program information into a user-friendly format. Updated related tests to ensure proper functionality of the new features and adjusted documentation to reflect changes in button actions.
2026-07-31 08:16:37 +03:00
Leonid Pershin 99821d3c76 Add hidden username input to TelegramPanel for accessibility and password manager compatibility
ci / build-backend (push) Successful in 2m39s
ci / build-frontend (push) Successful in 59s
ci / sonar (push) Successful in 8m9s
ci / tests (push) Successful in 2m44s
Introduced a hidden input field for the bot's username in the TelegramPanel component. This change ensures compatibility with password managers and improves accessibility for screen readers by providing a meaningful value for the bot's credentials. The input is read-only and hidden from the user interface, maintaining a clean design while enhancing functionality.
2026-07-31 08:10:14 +03:00
Leonid Pershin 54cc4862b2 Refactor Telegram API and enhance TelegramPanel form handling
ci / build-backend (push) Successful in 1m56s
ci / build-frontend (push) Successful in 59s
ci / tests (push) Successful in 2m39s
ci / sonar (push) Successful in 8m58s
Updated the TelegramApi class to improve URL construction for API calls by introducing a new MethodUrl method, ensuring proper handling of bot tokens. Refactored the TelegramPanel component to use a form for input fields, allowing for better user experience and submission handling. Adjusted password input fields to use 'new-password' for improved security. These changes aim to enhance the functionality and usability of the Telegram integration.
2026-07-31 08:07:49 +03:00
Leonid Pershin ec957fe55c Update TelegramEndpoints to require admin role for access
ci / tests (push) Successful in 2m35s
ci / build-backend (push) Successful in 2m28s
ci / build-frontend (push) Successful in 58s
ci / sonar (push) Successful in 6m10s
Modified the TelegramEndpoints to enforce authorization by requiring the "admin" role for the admin group. This change enhances security by ensuring that only users with the appropriate role can access Telegram settings and related functionalities.
2026-07-31 08:03:23 +03:00
Leonid Pershin 2b03e43a83 Add Telegram bot integration and related features
ci / build-backend (push) Successful in 2m38s
ci / build-frontend (push) Successful in 1m16s
ci / tests (push) Successful in 2m33s
ci / sonar (push) Successful in 3m48s
Implemented Telegram bot functionality, including settings management, subscriber tracking, and link generation for user interaction. Updated the backend to support new Telegram-related services and database entities. Enhanced the frontend to display Telegram options and allow users to open a chat with the bot. Localization strings were added for both English and Russian to support the new features. This integration aims to improve user engagement through Telegram notifications and interactions.
2026-07-31 07:58:18 +03:00
Leonid Pershin bd3ced3637 Enhance ChannelDebugCollector and LibraryDebugCollector for improved data handling
ci / build-backend (push) Successful in 1m51s
ci / build-frontend (push) Successful in 50s
ci / tests (push) Successful in 1m33s
ci / sonar (push) Successful in 4m29s
Refactored the ChannelDebugCollector to introduce a new RunScope record, consolidating channel, template, and time horizon data for better readability and maintainability. Updated methods to utilize the new RunScope structure, enhancing the clarity of debug file generation. In the LibraryDebugCollector, added AsSplitQuery to optimize database queries and improve performance. Cleaned up unused parameters and ensured consistent handling of asset statuses. These changes aim to streamline debug data collection and improve overall efficiency.
2026-07-31 04:27:06 +03:00
Leonid Pershin 375e0a810b Refactor group mode switching logic to ensure proper list management
ci / build-backend (push) Successful in 1m36s
ci / build-frontend (push) Successful in 52s
ci / tests (push) Successful in 2m3s
ci / sonar (push) Successful in 6m21s
Updated the Group and UpdateGroupCommandHandler classes to clarify the behavior of group mode switching. The transition to dynamic mode now clears the existing item list to prevent old items from interfering with the new rule-based composition. Enhanced documentation and comments to explain the implications of mode changes. Updated tests to reflect the new behavior, ensuring that the group correctly handles item lists during mode transitions. Localization strings were also updated to inform users about the changes in item management during mode switching.
2026-07-31 04:22:36 +03:00
Leonid Pershin 7163a0b937 Implement media retry functionality and enhance error handling
ci / build-backend (push) Successful in 1m18s
ci / build-frontend (push) Failing after 15s
ci / tests (push) Skipped
ci / sonar (push) Skipped
Added endpoints for retrying failed media processing, allowing users to requeue media assets that encountered errors. Introduced error messages for scenarios where a media asset cannot be retried due to its status. Updated the MaintenanceBackgroundService to remove orphaned episodes and recompute group statistics, ensuring data integrity. Enhanced the frontend to support retry actions, including bulk retry options for failed media. Updated localization strings to reflect new features in both English and Russian.
2026-07-31 03:58:01 +03:00
Leonid Pershin 789357481d Add LibraryDebugCollector and enhance ChannelDebugCollector for drift analysis
ci / tests (push) Successful in 1m25s
ci / sonar (push) Successful in 3m47s
ci / build-backend (push) Successful in 1m18s
ci / build-frontend (push) Successful in 50s
Introduced the LibraryDebugCollector to gather library-related data for channel exports. Updated the ChannelDebugCollector to calculate and include drift information, comparing scheduled and actual slot times. Enhanced the ExportChannelDebugCommandHandler to integrate library data into the export process. Added tests to verify the correct functionality of the new drift analysis and library export features, ensuring comprehensive debug data for channel analysis.
2026-07-31 03:18:24 +03:00
Leonid Pershin 9cd364b174 Add debug export functionality for channel analysis
ci / build-backend (push) Successful in 1m16s
ci / build-frontend (push) Successful in 42s
ci / tests (push) Successful in 1m24s
ci / sonar (push) Successful in 5m9s
Implemented a new endpoint for exporting debug data related to channel scheduling, allowing users to download an archive containing channel settings, slot states, and trace information. Updated the frontend to include a button for triggering the export, along with necessary API adjustments for handling the download. Enhanced localization strings to support the new debug export feature in both English and Russian. Updated .gitignore to include debug export files while ensuring the directory structure is maintained for development.
2026-07-31 02:58:17 +03:00
Leonid Pershin 01ba48e163 Refactor GroupCatalog and enhance media preview functionality in ShowDetail and AddEpisodesDialog
ci / build-backend (push) Successful in 1m17s
ci / build-frontend (push) Successful in 39s
ci / tests (push) Successful in 3m41s
ci / sonar (push) Successful in 3m33s
Updated the GroupCatalog class to streamline the determination of the dominant show kind by introducing a new method, DominantKindOf, which improves code clarity. Enhanced the AddEpisodesDialog and ShowDetail components to integrate a media preview feature, allowing users to preview media assets directly within the dialog. This includes the addition of a preview state and corresponding UI elements for a better user experience. Updated localization strings to support the new preview functionality.
2026-07-30 23:30:34 +03:00
Leonid Pershin bee655ec1c Refactor media preview functionality and update localization strings
ci / tests (push) Successful in 1m22s
ci / sonar (push) Successful in 3m43s
ci / build-backend (push) Successful in 1m23s
ci / build-frontend (push) Successful in 39s
Moved the mediaPreviewUrl function to the media API for better organization and clarity. Updated the MediaPanel component to include a preview feature for media assets, allowing users to view processed clips. Enhanced the UI to include a dialog for media previews and added corresponding localization strings in both English and Russian for the new preview functionality.
2026-07-30 23:24:35 +03:00
Leonid Pershin b9d96c915c Enhance GridScheduleGenerator to prevent reopening aired slots during rebuilds
ci / build-backend (push) Successful in 1m31s
ci / build-frontend (push) Successful in 39s
ci / tests (push) Successful in 1m26s
ci / sonar (push) Successful in 3m57s
Updated the GridScheduleGenerator to include logic that checks if a slot has already aired before planning it again, preventing duplicate scheduling of programs. Introduced a new method, LoadAiredSlotWindowsAsync, to retrieve aired time windows and updated the planning logic accordingly. Added integration tests to verify that slots that have already aired are not reopened during rebuilds, ensuring accurate scheduling behavior. Updated documentation to reflect these changes.
2026-07-30 23:09:39 +03:00
Leonid Pershin e983374dec Implement hide breaks feature in AirSchedule component
ci / build-backend (push) Successful in 3m38s
ci / build-frontend (push) Successful in 38s
ci / tests (push) Successful in 1m27s
ci / sonar (push) Successful in 5m58s
Added a new state to manage the visibility of breaks in the AirSchedule component, allowing users to toggle the display of interstitials and advertisements. Updated the filtering logic to account for this new state, ensuring that the schedule reflects user preferences. Enhanced localization files to include new strings for the hide breaks functionality in both English and Russian.
2026-07-30 22:18:09 +03:00
Leonid Pershin de48317f7d Refactor JunctionFiller logic to improve eligibility and rolling mechanics
ci / sonar (push) Successful in 4m6s
ci / build-backend (push) Successful in 1m21s
ci / build-frontend (push) Successful in 40s
ci / tests (push) Successful in 1m27s
Updated the JunctionFiller class to adjust the eligibility criteria for junction elements, ensuring that the roll for chance is determined after the selection of a variant. Enhanced the Passes method to exclude the rolling logic, which now occurs in a separate Rolls method. This change clarifies the flow of decision-making in junctions and ensures that the chance of the selected variant is accurately represented. Additionally, introduced new tests to validate the updated rolling behavior and its impact on junction processing.
2026-07-30 22:12:46 +03:00
Leonid Pershin 926a20020f Add InterstitialGroups service and enhance SlotWriter and related components for interstitial handling
ci / build-backend (push) Successful in 1m18s
ci / build-frontend (push) Successful in 43s
ci / sonar (push) Successful in 3m38s
ci / tests (push) Successful in 3m38s
Introduced the InterstitialGroups service to manage interstitial group logic, preventing their inclusion in slots and fallback groups. Updated the SlotWriter class to utilize this service, ensuring proper validation during slot creation and updates. Enhanced error handling for interstitial groups in the ImportGridCommandHandler and UpdateTemplateCommandHandler, providing warnings instead of failures when interstitials are detected. Updated related tests to verify the correct behavior of these changes, ensuring robust handling of interstitials in the scheduling process.
2026-07-30 12:48:51 +03:00
Leonid Pershin 398b60facc Refactor GridScheduleGenerator and related components to improve cursor management and group handling
ci / build-backend (push) Successful in 1m17s
ci / build-frontend (push) Successful in 56s
ci / tests (push) Successful in 1m29s
ci / sonar (push) Successful in 3m34s
Updated the GridScheduleGenerator to reset cursors for slots with no aired positions, ensuring proper state management during rebuilds. Introduced a new method, ResetUnairedCursorsAsync, to handle cursor resets effectively. Enhanced the handling of interstitial groups in the scheduling process, preventing them from being included in slots or fallback groups. Updated related tests to verify the correct behavior of these changes, ensuring robust scheduling logic and accurate group categorization.
2026-07-30 09:55:14 +03:00
Leonid Pershin 5032614773 Enhance logging in RefreshShowEpisodesMetadataCommandHandler and TmdbMetadataProvider for image retrieval failures
ci / build-backend (push) Successful in 5m2s
ci / build-frontend (push) Successful in 55s
ci / tests (push) Successful in 1m44s
ci / sonar (push) Successful in 4m31s
Updated the RefreshShowEpisodesMetadataCommandHandler to include logging for scenarios where episode still images are not retrieved successfully. Introduced warning logs for missing still URLs and download failures, improving traceability. Additionally, modified the TmdbMetadataProvider to implement a fallback mechanism for episode still images, ensuring that appropriate imagery is displayed even when localized images are unavailable. Updated related tests to verify the correct behavior of these logging enhancements and fallback logic.
2026-07-30 02:08:50 +03:00
Leonid Pershin 3fecd81333 Enhance ShowMetadataApplier with logging for poster retrieval failures
ci / tests (push) Successful in 1m46s
ci / build-backend (push) Successful in 1m37s
ci / build-frontend (push) Successful in 53s
ci / sonar (push) Successful in 4m38s
Updated the ShowMetadataApplier class to include logging for scenarios where show posters are not retrieved successfully. Introduced logging statements to capture warnings when poster URLs are empty or when downloads fail, improving traceability and debugging capabilities. Additionally, updated related tests to ensure proper logging behavior during poster processing.
2026-07-30 02:00:07 +03:00
Leonid Pershin 1758a93011 Enhance TmdbMetadataProvider to support fallback for localized poster retrieval
ci / build-backend (push) Successful in 1m40s
ci / build-frontend (push) Successful in 54s
ci / tests (push) Successful in 1m44s
ci / sonar (push) Successful in 4m57s
Updated the TmdbMetadataProvider class to implement a fallback mechanism for obtaining show posters when localized images are unavailable. Introduced a new method, NeutralPosterPathAsync, which retrieves a language-neutral poster if the localized one is missing. Additionally, updated related tests to verify the correct behavior of this fallback logic, ensuring that shows without localized posters still display appropriate imagery.
2026-07-30 01:54:16 +03:00
Leonid Pershin 10e05b8689 Enhance ImageDownloader to improve error handling and logging
ci / build-backend (push) Successful in 1m33s
ci / build-frontend (push) Successful in 57s
ci / tests (push) Failing after 15s
ci / sonar (push) Skipped
Updated the ImageDownloader class to include detailed logging for various failure scenarios during image download attempts. Added checks for invalid URLs, unsuccessful HTTP responses, and empty content responses, ensuring that all failures are logged with appropriate warnings. This enhancement improves the robustness of the image downloading process and provides better insights into potential issues.
2026-07-30 01:48:07 +03:00
Leonid Pershin bd89abf24b Refactor IPTV endpoint logic for improved readability and maintainability
ci / sonar (push) Successful in 4m38s
ci / build-backend (push) Successful in 1m34s
ci / build-frontend (push) Successful in 55s
ci / tests (push) Successful in 1m43s
Consolidated channel and programme XML writing into dedicated methods, WriteChannel and WriteProgramme, enhancing code clarity and reducing duplication. Introduced a WriteIcon method to streamline icon handling for both channels and programmes. Updated GetChannelScheduleQueryHandler to utilize a new FranchisePosition record for better representation of franchise details in schedule entries, improving the overall structure and readability of the code.
2026-07-30 01:37:20 +03:00
Leonid Pershin 8119305c36 Enhance ScheduleEntryDto and related components to support franchise collection details
ci / tests (push) Successful in 1m46s
ci / build-backend (push) Successful in 3m19s
ci / build-frontend (push) Successful in 1m6s
ci / sonar (push) Successful in 4m50s
Updated ScheduleEntryDto to include properties for collection part, total parts, and collection name, allowing for better representation of franchise information. Modified GetChannelScheduleQueryHandler to populate these new fields based on collection data. Adjusted SchedulePreview component to prioritize collection part display over episode information. Enhanced localization strings to support new collection-related terms in both English and Russian.
2026-07-30 01:01:24 +03:00
Leonid Pershin 6be373476c Implement background clip functionality for bumpers
ci / build-frontend (push) Successful in 49s
ci / tests (push) Successful in 2m7s
ci / build-backend (push) Successful in 2m14s
ci / sonar (push) Successful in 7m39s
Enhanced the bumper system to support a new background type, 'Clip', allowing text to be overlaid on existing video clips. This update includes the addition of a BackgroundClipShowId property in various records and classes, ensuring that the clip's duration dictates the bumper length. Updated validation rules, mapping, and rendering logic to accommodate this new feature. Localization strings were also updated to reflect the new background option and its implications for audio handling.
2026-07-29 23:54:11 +03:00
Leonid Pershin 35cb4b09dc Enhance GroupDetail component to display show types on badges
ci / build-backend (push) Successful in 2m4s
ci / build-frontend (push) Successful in 42s
ci / tests (push) Successful in 2m23s
ci / sonar (push) Successful in 5m33s
Updated the GroupDetail component to include a new function, elementLabelKey, which determines the appropriate label for badges based on the element kind and show kind. This change improves the clarity of displayed information by showing specific show types (e.g., "Film", "Series") instead of generic labels. Adjusted badge rendering to utilize the new function, enhancing the user interface for better understanding of group elements.
2026-07-29 23:35:45 +03:00
Leonid Pershin 6f74e66f0c Enhance GroupFilterMatcher to handle interstitial shows and update related tests and documentation
ci / build-backend (push) Successful in 2m15s
ci / build-frontend (push) Successful in 54s
ci / tests (push) Successful in 2m7s
ci / sonar (push) Successful in 5m29s
Updated the GroupFilterMatcher to exclude interstitial shows by default unless explicitly specified in the filter. Added new tests to verify the behavior of the filter with and without interstitial shows. Updated localization strings to clarify the handling of show types in the user interface and documentation, ensuring users understand the distinction between films, series, and clips.
2026-07-29 23:32:30 +03:00
Leonid Pershin 281d081e6b Refactor admin panels to utilize CreateNameDialog for creating new entities
ci / tests (push) Successful in 2m18s
ci / sonar (push) Successful in 5m51s
ci / build-backend (push) Successful in 2m23s
ci / build-frontend (push) Successful in 54s
Updated the BumpersPanel, ChannelsPanel, CollectionsPanel, GroupsPanel, ClipGroupPanel, and ShowsPanel components to replace direct input fields with a CreateNameDialog for creating new items. This change enhances user experience by centralizing the creation process and improving UI consistency. Localization strings were also updated to reflect new dialog titles and labels in both English and Russian.
2026-07-29 23:26:32 +03:00
Leonid Pershin c4a94443f7 Add IPTV playlist functionality and enhance streaming endpoints
ci / sonar (push) Successful in 4m26s
ci / build-backend (push) Successful in 1m47s
ci / build-frontend (push) Successful in 52s
ci / tests (push) Successful in 1m36s
Implemented a new endpoint for downloading the IPTV playlist, allowing users to access a comprehensive M3U file containing all channels and program guides. Updated the StreamingEndpoints to support token validation for both cookie and query parameters, ensuring secure access for external IPTV players. Enhanced the AirPage component to include a download button for the IPTV playlist, with appropriate user feedback on success or failure. Updated localization strings to reflect new features and instructions for users.
2026-07-29 18:14:01 +03:00
Leonid Pershin 775f287c29 Refactor RunPlayHistory to optimize play retrieval logic and enhance StoragePanelSkeleton accessibility
ci / build-backend (push) Successful in 2m28s
ci / build-frontend (push) Successful in 51s
ci / tests (push) Successful in 2m47s
ci / sonar (push) Successful in 5m40s
Updated the RunPlayHistory class to improve the logic for retrieving the latest play by using LINQ's Max method, ensuring that empty play lists are handled correctly. Additionally, modified the StoragePanelSkeleton component to replace the div with an output element for better accessibility, allowing screen readers to recognize the loading status more effectively.
2026-07-29 10:22:37 +03:00
Leonid Pershin 5952ba4536 Update localization strings to include new group-related terms in English and Russian
ci / sonar (push) Successful in 6m17s
ci / build-backend (push) Successful in 1m22s
ci / build-frontend (push) Successful in 39s
ci / tests (push) Successful in 1m22s
Added translations for 'Group' and 'Pick a group' in both the English and Russian locale files, enhancing the user interface for group selection features.
2026-07-29 09:07:38 +03:00
Leonid Pershin fbfc6e677e Enhance GridScheduleGenerator and related components for improved slot handling and cursor management
ci / tests (push) Successful in 1m40s
ci / sonar (push) Successful in 3m46s
ci / build-backend (push) Successful in 1m21s
ci / build-frontend (push) Successful in 51s
Updated the GridScheduleGenerator to support rebuilding future schedules while correctly managing aired positions. Introduced a new AiredPosition record to track the last aired state of slots, ensuring that the cursor rewinds to the correct position during rebuilds. Refactored the BuildInputAsync method to accept aired positions, and modified the LoadAiredPositionsAsync method for accurate retrieval of past entries. Enhanced the SchedulePlanner to utilize shared cursor states between main and background loops, preventing duplicate series plays. Updated documentation to reflect these changes and added integration tests to verify the correct behavior of the new functionality.
2026-07-29 08:57:46 +03:00
Leonid Pershin c67d1f7752 Refactor GridScheduleGenerator and related models for improved repeat slot handling
ci / build-backend (push) Successful in 1m17s
ci / build-frontend (push) Successful in 37s
ci / tests (push) Successful in 1m38s
ci / sonar (push) Successful in 3m44s
Updated the GridScheduleGenerator to utilize a new PlanningRepeatWindow structure for managing repeat slots, enhancing the logic for loading repeat units. The LoadRepeatUnitsAsync method was modified to accept a channel ID and repeat window, ensuring accurate retrieval of past entries. Additionally, the PlanningSlot record was updated to include the new RepeatWindow property, and the SchedulePlanner was adjusted to collect repeat units based on the updated logic. Enhanced unit tests to verify the correct behavior of repeat slot functionality, ensuring that overlaps and elastic start times are handled appropriately.
2026-07-29 08:34:03 +03:00
Leonid Pershin 46c0169dea Enhance channel management with apply report feature
ci / build-backend (push) Successful in 1m37s
ci / build-frontend (push) Successful in 57s
ci / tests (push) Successful in 1m59s
ci / sonar (push) Successful in 4m37s
Added functionality to display a consolidated apply report for warnings after applying channel templates, improving user experience by reducing clutter from individual warning notifications. Updated the ChannelDetail component to manage the new report state and integrated the ApplyReportDialog for displaying the report. Refactored the Problems component to utilize a new PlanningWarnings component for better organization of warning messages. Localization strings were updated to include new report-related texts in both English and Russian.
2026-07-29 08:15:45 +03:00
Leonid Pershin 3601404383 add skeleton
ci / build-backend (push) Successful in 1m32s
ci / build-frontend (push) Successful in 1m4s
ci / tests (push) Successful in 1m45s
ci / sonar (push) Successful in 4m48s
2026-07-29 07:45:10 +03:00
Leonid Pershin ac41111fa0 Implement functionality to add shows to existing collections from suggestions
ci / tests (push) Successful in 1m46s
ci / sonar (push) Successful in 6m47s
ci / build-backend (push) Successful in 1m40s
ci / build-frontend (push) Successful in 53s
Added a new endpoint for adding shows to already assembled franchises based on the same suggestion key. Updated the CollectionSuggestion and CollectionSuggestionDto records to include a CollectionId for tracking existing collections. Enhanced the CollectionSuggestions component in the frontend to support this new functionality, allowing users to add missing parts to existing collections. Updated localization strings to reflect the new addition feature in both English and Russian, ensuring clarity for users. Adjusted tests to verify the correct behavior of the addition process and its integration with existing collection logic.
2026-07-28 14:49:27 +03:00
Leonid Pershin 6c85db2d60 Add reset template functionality to channel management
ci / sonar (push) Successful in 4m21s
ci / build-backend (push) Successful in 1m35s
ci / build-frontend (push) Successful in 53s
ci / tests (push) Successful in 1m36s
Implemented a new endpoint for resetting the channel template, which clears the grid and removes future scheduled entries while preserving past and current recordings. Updated the frontend to include a reset button in the channel management interface, along with corresponding localization strings in English and Russian. Enhanced integration tests to verify the reset functionality, ensuring that the expected number of slots, layers, and entries are accurately reported after the reset operation.
2026-07-28 14:19:35 +03:00
Leonid Pershin 3908b6e722 Refactor group deletion logic to handle fallback group references
ci / sonar (push) Successful in 4m29s
ci / build-backend (push) Successful in 1m35s
ci / build-frontend (push) Successful in 1m6s
ci / tests (push) Successful in 2m2s
Updated the DeleteGroupCommandHandler to release fallback group references during group deletion, ensuring that groups can be removed even when used as fallback in templates. Adjusted related tests to verify the correct behavior of the deletion process, confirming that fallback references are cleared appropriately. Enhanced localization strings to provide clearer context for fallback group functionality in both English and Russian.
2026-07-28 14:01:05 +03:00
Leonid Pershin f924891f3b Refactor error handling in Bumper, Media, Group, and Junction components to include contextual information
ci / sonar (push) Successful in 4m43s
ci / build-backend (push) Successful in 1m35s
ci / build-frontend (push) Successful in 51s
ci / tests (push) Successful in 1m46s
Updated error definitions in BumperErrors, MediaErrors, GroupErrors, and TemplateErrors to accept a parameter for contextual information, enhancing the clarity of error messages. Refactored related command handlers to utilize these updated error messages, ensuring that users receive specific details about the usage context when attempting to delete resources. Adjusted unit tests to verify the correctness of the new error handling logic.
2026-07-28 13:19:30 +03:00
Leonid Pershin f895e1ddbc Refactor GridScheduleGenerator for improved channel handling and entry writing
ci / build-backend (push) Successful in 1m32s
ci / build-frontend (push) Successful in 53s
ci / tests (push) Successful in 1m48s
ci / sonar (push) Successful in 5m17s
Simplified the logic for handling disabled channels by introducing the SilentChannelAsync method, which manages future entry deletions more efficiently. Refactored the entry writing process into a separate WriteEntries method to enhance code clarity and maintainability. These changes streamline the scheduling process and improve overall functionality in the GridScheduleGenerator class.
2026-07-28 12:57:14 +03:00
Leonid Pershin 30a38d163c Update TransactionIntegrationTests to use unique channel identifiers for deletion tests
ci / build-backend (push) Successful in 1m27s
ci / build-frontend (push) Successful in 54s
ci / tests (push) Successful in 1m39s
ci / sonar (push) Successful in 4m36s
Modified the channel creation in the DeleteShow tests to generate unique identifiers using GUIDs, ensuring test isolation and preventing potential conflicts. This change enhances the reliability of the integration tests related to show deletion functionality.
2026-07-28 12:26:12 +03:00
Leonid Pershin 4a500583e7 Add bulk poster filling endpoint and enhance show deletion options
ci / tests (push) Failing after 2m27s
ci / sonar (push) Skipped
ci / build-backend (push) Successful in 2m2s
ci / build-frontend (push) Successful in 57s
Introduced a new endpoint for bulk filling collection posters, allowing for automatic assignment of posters to collections without existing images. Updated the DeleteShowCommand to include an option for cutting shows from future airings, enhancing the deletion process. Refactored related components and API calls to support these features, ensuring a seamless user experience. Additionally, updated localization strings to reflect the new functionalities and adjusted tests to verify correct behavior.
2026-07-28 12:07:00 +03:00
Leonid Pershin 9db54a4625 Refactor media import components for improved user experience and layout consistency
ci / build-frontend (push) Successful in 57s
ci / build-backend (push) Successful in 2m30s
ci / sonar (push) Successful in 6m53s
ci / tests (push) Successful in 1m41s
Updated the ManualInboxPanel, MediaImportDialog, MovieImportPanel, and UploadToShowPanel to enhance their layout and responsiveness. Adjusted flex properties for consistent sizing and overflow handling. Simplified the MediaImportDialog by removing unnecessary file handling logic and improved localization strings for clarity. These changes aim to streamline user interactions and maintain a cohesive design across the media import interface.
2026-07-28 11:23:04 +03:00
Leonid Pershin 2e76fa1452 Enhance show deletion functionality to support media removal option
ci / build-backend (push) Successful in 1m32s
ci / build-frontend (push) Successful in 1m7s
ci / tests (push) Successful in 1m45s
ci / sonar (push) Failing after 31s
Updated the DeleteShowCommand and its handler to include an optional parameter for media deletion, allowing users to remove associated media files when deleting a show. Refactored related components and API calls to accommodate this new feature, ensuring a seamless user experience. Additionally, updated localization strings to reflect the new functionality and adjusted tests to verify the correct behavior of the deletion process with and without media.
2026-07-28 11:06:52 +03:00
Leonid Pershin 6ca629c13a Refactor media import handlers to utilize ManualInboxTaker for improved functionality
ci / tests (push) Successful in 1m36s
ci / sonar (push) Successful in 4m40s
ci / build-backend (push) Successful in 1m36s
ci / build-frontend (push) Successful in 57s
Updated the ImportManualInboxCommandHandler and ImportMoviesCommandHandler to replace direct storage interactions with the ManualInboxTaker, streamlining the import process. This change enhances code clarity and maintains consistency across media import functionalities. Additionally, refactored related tests to accommodate the new handler structure, ensuring robust testing of the import logic.
2026-07-28 10:46:21 +03:00
Leonid Pershin 287ed5aa12 Refactor ChannelDetail and MediaImportDialog components for improved functionality and clarity
ci / build-backend (push) Successful in 1m32s
ci / build-frontend (push) Successful in 1m6s
ci / tests (push) Successful in 1m42s
ci / sonar (push) Successful in 4m39s
Consolidated imports in ChannelDetail and replaced the SchedulePreview component with AirSchedule for enhanced scheduling display. Updated the MediaImportDialog to prioritize the manual tab and adjusted localization strings for clarity in both English and Russian. These changes aim to streamline user interactions and improve the overall user experience in managing channels and media imports.
2026-07-28 10:37:11 +03:00
Leonid Pershin ef5c56f04b Add kind filter to ShowsPanel and update localization strings
ci / tests (push) Successful in 1m51s
ci / sonar (push) Successful in 4m24s
ci / build-backend (push) Successful in 1m40s
ci / build-frontend (push) Successful in 52s
Introduced a new client-side filter for show types in the ShowsPanel, allowing users to filter shows by their kind. Updated the sorting logic to accommodate this new filter. Additionally, added corresponding localization strings for both English and Russian to support the new filter options. These changes enhance the user experience by providing more granular control over show listings.
2026-07-28 03:33:07 +03:00
Leonid Pershin 05e9919a7b Refactor media import components for improved layout and functionality
ci / build-backend (push) Successful in 1m31s
ci / build-frontend (push) Successful in 1m8s
ci / sonar (push) Successful in 4m34s
ci / tests (push) Successful in 1m40s
Updated the ManualInboxPanel, MediaImportDialog, MovieImportPanel, and UploadToShowPanel to enhance their layout and responsiveness. Adjusted flex properties to ensure consistent sizing and overflow handling across components. Simplified the MediaImportDialog by removing unnecessary file handling logic, and improved localization strings for clarity. These changes aim to enhance user experience and maintain a cohesive design across the media import interface.
2026-07-28 03:21:18 +03:00
Leonid Pershin f15b2fefcd Refactor movie matching logic to improve clarity and accuracy
ci / build-backend (push) Successful in 1m32s
ci / build-frontend (push) Successful in 56s
ci / tests (push) Successful in 1m40s
ci / sonar (push) Successful in 6m20s
Updated the MovieMatcher class to streamline the status determination for movie matches. Introduced a new method, StatusOf, to encapsulate the logic for assessing whether a movie is already in the library or if a confident match exists. This refactor enhances code readability and maintains the integrity of the movie import process. Adjusted related logic to ensure consistent handling of movie matching statuses.
2026-07-28 03:17:16 +03:00
Leonid Pershin d0bc0465e7 Enhance movie import process and metadata handling
ci / tests (push) Successful in 3m27s
ci / build-backend (push) Successful in 1m33s
ci / build-frontend (push) Successful in 55s
ci / sonar (push) Successful in 6m55s
Refactored the movie import functionality to ensure that the title from the source is used for the show name, while the file name is retained as the original title. Improved the handling of metadata during the import process, allowing for better integration of original titles from various sources. Updated related classes and methods to streamline the import workflow and enhance user experience. Added tests to verify the correct assignment of titles and original names during the import process. Updated documentation to reflect these changes.
2026-07-28 03:14:19 +03:00