diff options
| -rw-r--r-- | Emby.Server.Implementations/ApplicationHost.cs | 9 | ||||
| -rw-r--r-- | Emby.Server.Implementations/Emby.Server.Implementations.csproj | 1 | ||||
| -rw-r--r-- | Emby.Server.Implementations/Library/MediaSourceManager.cs | 35 | ||||
| -rw-r--r-- | Jellyfin.Server/CoreAppHost.cs | 13 | ||||
| -rw-r--r-- | Jellyfin.Server/Jellyfin.Server.csproj | 1 | ||||
| -rw-r--r-- | Jellyfin.sln | 14 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Library/IMediaSourceManager.cs | 9 | ||||
| -rw-r--r-- | src/Jellyfin.LiveTv/Channels/ChannelDynamicMediaSourceProvider.cs (renamed from Emby.Server.Implementations/Channels/ChannelDynamicMediaSourceProvider.cs) | 2 | ||||
| -rw-r--r-- | src/Jellyfin.LiveTv/Channels/ChannelImageProvider.cs (renamed from Emby.Server.Implementations/Channels/ChannelImageProvider.cs) | 2 | ||||
| -rw-r--r-- | src/Jellyfin.LiveTv/Channels/ChannelManager.cs (renamed from Emby.Server.Implementations/Channels/ChannelManager.cs) | 2 | ||||
| -rw-r--r-- | src/Jellyfin.LiveTv/Channels/ChannelPostScanTask.cs (renamed from Emby.Server.Implementations/Channels/ChannelPostScanTask.cs) | 2 | ||||
| -rw-r--r-- | src/Jellyfin.LiveTv/Channels/RefreshChannelsScheduledTask.cs (renamed from Emby.Server.Implementations/Channels/RefreshChannelsScheduledTask.cs) | 2 | ||||
| -rw-r--r-- | src/Jellyfin.LiveTv/EmbyTV/DirectRecorder.cs (renamed from Emby.Server.Implementations/LiveTv/EmbyTV/DirectRecorder.cs) | 3 | ||||
| -rw-r--r-- | src/Jellyfin.LiveTv/EmbyTV/EmbyTV.cs (renamed from Emby.Server.Implementations/LiveTv/EmbyTV/EmbyTV.cs) | 36 | ||||
| -rw-r--r-- | src/Jellyfin.LiveTv/EmbyTV/EncodedRecorder.cs (renamed from Emby.Server.Implementations/LiveTv/EmbyTV/EncodedRecorder.cs) | 2 | ||||
| -rw-r--r-- | src/Jellyfin.LiveTv/EmbyTV/EntryPoint.cs (renamed from Emby.Server.Implementations/LiveTv/EmbyTV/EntryPoint.cs) | 2 | ||||
| -rw-r--r-- | src/Jellyfin.LiveTv/EmbyTV/EpgChannelData.cs (renamed from Emby.Server.Implementations/LiveTv/EmbyTV/EpgChannelData.cs) | 2 | ||||
| -rw-r--r-- | src/Jellyfin.LiveTv/EmbyTV/IRecorder.cs (renamed from Emby.Server.Implementations/LiveTv/EmbyTV/IRecorder.cs) | 2 | ||||
| -rw-r--r-- | src/Jellyfin.LiveTv/EmbyTV/ItemDataProvider.cs (renamed from Emby.Server.Implementations/LiveTv/EmbyTV/ItemDataProvider.cs) | 2 | ||||
| -rw-r--r-- | src/Jellyfin.LiveTv/EmbyTV/NfoConfigurationExtensions.cs (renamed from Emby.Server.Implementations/LiveTv/EmbyTV/NfoConfigurationExtensions.cs) | 2 | ||||
| -rw-r--r-- | src/Jellyfin.LiveTv/EmbyTV/RecordingHelper.cs (renamed from Emby.Server.Implementations/LiveTv/EmbyTV/RecordingHelper.cs) | 2 | ||||
| -rw-r--r-- | src/Jellyfin.LiveTv/EmbyTV/SeriesTimerManager.cs (renamed from Emby.Server.Implementations/LiveTv/EmbyTV/SeriesTimerManager.cs) | 2 | ||||
| -rw-r--r-- | src/Jellyfin.LiveTv/EmbyTV/TimerManager.cs (renamed from Emby.Server.Implementations/LiveTv/EmbyTV/TimerManager.cs) | 2 | ||||
| -rw-r--r-- | src/Jellyfin.LiveTv/ExclusiveLiveStream.cs (renamed from Emby.Server.Implementations/Library/ExclusiveLiveStream.cs) | 3 | ||||
| -rw-r--r-- | src/Jellyfin.LiveTv/Jellyfin.LiveTv.csproj | 23 | ||||
| -rw-r--r-- | src/Jellyfin.LiveTv/Listings/SchedulesDirect.cs (renamed from Emby.Server.Implementations/LiveTv/Listings/SchedulesDirect.cs) | 6 | ||||
| -rw-r--r-- | src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/BroadcasterDto.cs (renamed from Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/BroadcasterDto.cs) | 2 | ||||
| -rw-r--r-- | src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/CaptionDto.cs (renamed from Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/CaptionDto.cs) | 2 | ||||
| -rw-r--r-- | src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/CastDto.cs (renamed from Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/CastDto.cs) | 2 | ||||
| -rw-r--r-- | src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/ChannelDto.cs (renamed from Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/ChannelDto.cs) | 2 | ||||
| -rw-r--r-- | src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/ContentRatingDto.cs (renamed from Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/ContentRatingDto.cs) | 2 | ||||
| -rw-r--r-- | src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/CrewDto.cs (renamed from Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/CrewDto.cs) | 2 | ||||
| -rw-r--r-- | src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/DayDto.cs (renamed from Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/DayDto.cs) | 2 | ||||
| -rw-r--r-- | src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/Description1000Dto.cs (renamed from Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/Description1000Dto.cs) | 2 | ||||
| -rw-r--r-- | src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/Description100Dto.cs (renamed from Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/Description100Dto.cs) | 2 | ||||
| -rw-r--r-- | src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/DescriptionsProgramDto.cs (renamed from Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/DescriptionsProgramDto.cs) | 2 | ||||
| -rw-r--r-- | src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/EventDetailsDto.cs (renamed from Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/EventDetailsDto.cs) | 2 | ||||
| -rw-r--r-- | src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/GracenoteDto.cs (renamed from Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/GracenoteDto.cs) | 2 | ||||
| -rw-r--r-- | src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/HeadendsDto.cs (renamed from Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/HeadendsDto.cs) | 2 | ||||
| -rw-r--r-- | src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/ImageDataDto.cs (renamed from Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/ImageDataDto.cs) | 2 | ||||
| -rw-r--r-- | src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/LineupDto.cs (renamed from Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/LineupDto.cs) | 2 | ||||
| -rw-r--r-- | src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/LineupsDto.cs (renamed from Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/LineupsDto.cs) | 2 | ||||
| -rw-r--r-- | src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/LogoDto.cs (renamed from Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/LogoDto.cs) | 2 | ||||
| -rw-r--r-- | src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/MapDto.cs (renamed from Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/MapDto.cs) | 2 | ||||
| -rw-r--r-- | src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/MetadataDto.cs (renamed from Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/MetadataDto.cs) | 2 | ||||
| -rw-r--r-- | src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/MetadataProgramsDto.cs (renamed from Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/MetadataProgramsDto.cs) | 2 | ||||
| -rw-r--r-- | src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/MetadataScheduleDto.cs (renamed from Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/MetadataScheduleDto.cs) | 2 | ||||
| -rw-r--r-- | src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/MovieDto.cs (renamed from Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/MovieDto.cs) | 2 | ||||
| -rw-r--r-- | src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/MultipartDto.cs (renamed from Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/MultipartDto.cs) | 2 | ||||
| -rw-r--r-- | src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/ProgramDetailsDto.cs (renamed from Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/ProgramDetailsDto.cs) | 2 | ||||
| -rw-r--r-- | src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/ProgramDto.cs (renamed from Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/ProgramDto.cs) | 2 | ||||
| -rw-r--r-- | src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/QualityRatingDto.cs (renamed from Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/QualityRatingDto.cs) | 2 | ||||
| -rw-r--r-- | src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/RatingDto.cs (renamed from Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/RatingDto.cs) | 2 | ||||
| -rw-r--r-- | src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/RecommendationDto.cs (renamed from Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/RecommendationDto.cs) | 2 | ||||
| -rw-r--r-- | src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/RequestScheduleForChannelDto.cs (renamed from Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/RequestScheduleForChannelDto.cs) | 2 | ||||
| -rw-r--r-- | src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/ShowImagesDto.cs (renamed from Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/ShowImagesDto.cs) | 2 | ||||
| -rw-r--r-- | src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/StationDto.cs (renamed from Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/StationDto.cs) | 2 | ||||
| -rw-r--r-- | src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/TitleDto.cs (renamed from Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/TitleDto.cs) | 2 | ||||
| -rw-r--r-- | src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/TokenDto.cs (renamed from Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/TokenDto.cs) | 2 | ||||
| -rw-r--r-- | src/Jellyfin.LiveTv/Listings/XmlTvListingsProvider.cs (renamed from Emby.Server.Implementations/LiveTv/Listings/XmlTvListingsProvider.cs) | 2 | ||||
| -rw-r--r-- | src/Jellyfin.LiveTv/LiveTvConfigurationFactory.cs (renamed from Emby.Server.Implementations/LiveTv/LiveTvConfigurationFactory.cs) | 2 | ||||
| -rw-r--r-- | src/Jellyfin.LiveTv/LiveTvDtoService.cs (renamed from Emby.Server.Implementations/LiveTv/LiveTvDtoService.cs) | 2 | ||||
| -rw-r--r-- | src/Jellyfin.LiveTv/LiveTvManager.cs (renamed from Emby.Server.Implementations/LiveTv/LiveTvManager.cs) | 5 | ||||
| -rw-r--r-- | src/Jellyfin.LiveTv/LiveTvMediaSourceProvider.cs (renamed from Emby.Server.Implementations/LiveTv/LiveTvMediaSourceProvider.cs) | 4 | ||||
| -rw-r--r-- | src/Jellyfin.LiveTv/RecordingNotifier.cs (renamed from Emby.Server.Implementations/EntryPoints/RecordingNotifier.cs) | 2 | ||||
| -rw-r--r-- | src/Jellyfin.LiveTv/RefreshGuideScheduledTask.cs (renamed from Emby.Server.Implementations/LiveTv/RefreshGuideScheduledTask.cs) | 2 | ||||
| -rw-r--r-- | src/Jellyfin.LiveTv/StreamHelper.cs (renamed from Emby.Server.Implementations/IO/StreamHelper.cs) | 2 | ||||
| -rw-r--r-- | src/Jellyfin.LiveTv/TunerHosts/BaseTunerHost.cs (renamed from Emby.Server.Implementations/LiveTv/TunerHosts/BaseTunerHost.cs) | 2 | ||||
| -rw-r--r-- | src/Jellyfin.LiveTv/TunerHosts/HdHomerun/Channels.cs (renamed from Emby.Server.Implementations/LiveTv/TunerHosts/HdHomerun/Channels.cs) | 2 | ||||
| -rw-r--r-- | src/Jellyfin.LiveTv/TunerHosts/HdHomerun/DiscoverResponse.cs (renamed from Emby.Server.Implementations/LiveTv/TunerHosts/HdHomerun/DiscoverResponse.cs) | 2 | ||||
| -rw-r--r-- | src/Jellyfin.LiveTv/TunerHosts/HdHomerun/HdHomerunChannelCommands.cs (renamed from Emby.Server.Implementations/LiveTv/TunerHosts/HdHomerun/HdHomerunChannelCommands.cs) | 2 | ||||
| -rw-r--r-- | src/Jellyfin.LiveTv/TunerHosts/HdHomerun/HdHomerunHost.cs (renamed from Emby.Server.Implementations/LiveTv/TunerHosts/HdHomerun/HdHomerunHost.cs) | 8 | ||||
| -rw-r--r-- | src/Jellyfin.LiveTv/TunerHosts/HdHomerun/HdHomerunManager.cs (renamed from Emby.Server.Implementations/LiveTv/TunerHosts/HdHomerun/HdHomerunManager.cs) | 2 | ||||
| -rw-r--r-- | src/Jellyfin.LiveTv/TunerHosts/HdHomerun/HdHomerunUdpStream.cs (renamed from Emby.Server.Implementations/LiveTv/TunerHosts/HdHomerun/HdHomerunUdpStream.cs) | 3 | ||||
| -rw-r--r-- | src/Jellyfin.LiveTv/TunerHosts/HdHomerun/IHdHomerunChannelCommands.cs (renamed from Emby.Server.Implementations/LiveTv/TunerHosts/HdHomerun/IHdHomerunChannelCommands.cs) | 2 | ||||
| -rw-r--r-- | src/Jellyfin.LiveTv/TunerHosts/HdHomerun/LegacyHdHomerunChannelCommands.cs (renamed from Emby.Server.Implementations/LiveTv/TunerHosts/HdHomerun/LegacyHdHomerunChannelCommands.cs) | 2 | ||||
| -rw-r--r-- | src/Jellyfin.LiveTv/TunerHosts/LiveStream.cs (renamed from Emby.Server.Implementations/LiveTv/TunerHosts/LiveStream.cs) | 3 | ||||
| -rw-r--r-- | src/Jellyfin.LiveTv/TunerHosts/M3UTunerHost.cs (renamed from Emby.Server.Implementations/LiveTv/TunerHosts/M3UTunerHost.cs) | 2 | ||||
| -rw-r--r-- | src/Jellyfin.LiveTv/TunerHosts/M3uParser.cs (renamed from Emby.Server.Implementations/LiveTv/TunerHosts/M3uParser.cs) | 2 | ||||
| -rw-r--r-- | src/Jellyfin.LiveTv/TunerHosts/SharedHttpStream.cs (renamed from Emby.Server.Implementations/LiveTv/TunerHosts/SharedHttpStream.cs) | 3 | ||||
| -rw-r--r-- | tests/Jellyfin.LiveTv.Tests/HdHomerunHostTests.cs (renamed from tests/Jellyfin.Server.Implementations.Tests/LiveTv/HdHomerunHostTests.cs) | 4 | ||||
| -rw-r--r-- | tests/Jellyfin.LiveTv.Tests/HdHomerunManagerTests.cs (renamed from tests/Jellyfin.Server.Implementations.Tests/LiveTv/HdHomerunManagerTests.cs) | 4 | ||||
| -rw-r--r-- | tests/Jellyfin.LiveTv.Tests/Jellyfin.LiveTv.Tests.csproj | 29 | ||||
| -rw-r--r-- | tests/Jellyfin.LiveTv.Tests/Listings/XmlTvListingsProviderTests.cs (renamed from tests/Jellyfin.Server.Implementations.Tests/LiveTv/Listings/XmlTvListingsProviderTests.cs) | 4 | ||||
| -rw-r--r-- | tests/Jellyfin.LiveTv.Tests/RecordingHelperTests.cs (renamed from tests/Jellyfin.Server.Implementations.Tests/LiveTv/RecordingHelperTests.cs) | 4 | ||||
| -rw-r--r-- | tests/Jellyfin.LiveTv.Tests/SchedulesDirect/SchedulesDirectDeserializeTests.cs (renamed from tests/Jellyfin.Server.Implementations.Tests/LiveTv/SchedulesDirect/SchedulesDirectDeserializeTests.cs) | 4 | ||||
| -rw-r--r-- | tests/Jellyfin.LiveTv.Tests/Test Data/LiveTv/10.10.10.100/discover.json (renamed from tests/Jellyfin.Server.Implementations.Tests/Test Data/LiveTv/10.10.10.100/discover.json) | 0 | ||||
| -rw-r--r-- | tests/Jellyfin.LiveTv.Tests/Test Data/LiveTv/10.10.10.100/lineup.json (renamed from tests/Jellyfin.Server.Implementations.Tests/Test Data/LiveTv/10.10.10.100/lineup.json) | 0 | ||||
| -rw-r--r-- | tests/Jellyfin.LiveTv.Tests/Test Data/LiveTv/192.168.1.182/discover.json (renamed from tests/Jellyfin.Server.Implementations.Tests/Test Data/LiveTv/192.168.1.182/discover.json) | 0 | ||||
| -rw-r--r-- | tests/Jellyfin.LiveTv.Tests/Test Data/LiveTv/192.168.1.182/lineup.json (renamed from tests/Jellyfin.Server.Implementations.Tests/Test Data/LiveTv/192.168.1.182/lineup.json) | 0 | ||||
| -rw-r--r-- | tests/Jellyfin.LiveTv.Tests/Test Data/LiveTv/Listings/XmlTv/emptycategory.xml (renamed from tests/Jellyfin.Server.Implementations.Tests/Test Data/LiveTv/Listings/XmlTv/emptycategory.xml) | 0 | ||||
| -rw-r--r-- | tests/Jellyfin.LiveTv.Tests/Test Data/LiveTv/Listings/XmlTv/notitle.xml (renamed from tests/Jellyfin.Server.Implementations.Tests/Test Data/LiveTv/Listings/XmlTv/notitle.xml) | 0 | ||||
| -rw-r--r-- | tests/Jellyfin.LiveTv.Tests/Test Data/SchedulesDirect/headends_response.json (renamed from tests/Jellyfin.Server.Implementations.Tests/Test Data/SchedulesDirect/headends_response.json) | 0 | ||||
| -rw-r--r-- | tests/Jellyfin.LiveTv.Tests/Test Data/SchedulesDirect/lineup_response.json (renamed from tests/Jellyfin.Server.Implementations.Tests/Test Data/SchedulesDirect/lineup_response.json) | 0 | ||||
| -rw-r--r-- | tests/Jellyfin.LiveTv.Tests/Test Data/SchedulesDirect/lineups_response.json (renamed from tests/Jellyfin.Server.Implementations.Tests/Test Data/SchedulesDirect/lineups_response.json) | 0 | ||||
| -rw-r--r-- | tests/Jellyfin.LiveTv.Tests/Test Data/SchedulesDirect/metadata_programs_response.json (renamed from tests/Jellyfin.Server.Implementations.Tests/Test Data/SchedulesDirect/metadata_programs_response.json) | 0 | ||||
| -rw-r--r-- | tests/Jellyfin.LiveTv.Tests/Test Data/SchedulesDirect/programs_response.json (renamed from tests/Jellyfin.Server.Implementations.Tests/Test Data/SchedulesDirect/programs_response.json) | 0 | ||||
| -rw-r--r-- | tests/Jellyfin.LiveTv.Tests/Test Data/SchedulesDirect/schedules_request.json (renamed from tests/Jellyfin.Server.Implementations.Tests/Test Data/SchedulesDirect/schedules_request.json) | 0 | ||||
| -rw-r--r-- | tests/Jellyfin.LiveTv.Tests/Test Data/SchedulesDirect/schedules_response.json (renamed from tests/Jellyfin.Server.Implementations.Tests/Test Data/SchedulesDirect/schedules_response.json) | 0 | ||||
| -rw-r--r-- | tests/Jellyfin.LiveTv.Tests/Test Data/SchedulesDirect/token_live_response.json (renamed from tests/Jellyfin.Server.Implementations.Tests/Test Data/SchedulesDirect/token_live_response.json) | 0 | ||||
| -rw-r--r-- | tests/Jellyfin.LiveTv.Tests/Test Data/SchedulesDirect/token_offline_response.json (renamed from tests/Jellyfin.Server.Implementations.Tests/Test Data/SchedulesDirect/token_offline_response.json) | 0 |
101 files changed, 218 insertions, 134 deletions
diff --git a/Emby.Server.Implementations/ApplicationHost.cs b/Emby.Server.Implementations/ApplicationHost.cs index f385f6a51..48d5d8c6a 100644 --- a/Emby.Server.Implementations/ApplicationHost.cs +++ b/Emby.Server.Implementations/ApplicationHost.cs @@ -15,7 +15,6 @@ using System.Security.Cryptography.X509Certificates; using System.Threading.Tasks; using Emby.Naming.Common; using Emby.Photos; -using Emby.Server.Implementations.Channels; using Emby.Server.Implementations.Collections; using Emby.Server.Implementations.Configuration; using Emby.Server.Implementations.Cryptography; @@ -25,7 +24,6 @@ using Emby.Server.Implementations.Dto; using Emby.Server.Implementations.HttpServer.Security; using Emby.Server.Implementations.IO; using Emby.Server.Implementations.Library; -using Emby.Server.Implementations.LiveTv; using Emby.Server.Implementations.Localization; using Emby.Server.Implementations.Playlists; using Emby.Server.Implementations.Plugins; @@ -504,8 +502,6 @@ namespace Emby.Server.Implementations serviceCollection.AddSingleton(_xmlSerializer); - serviceCollection.AddSingleton<IStreamHelper, StreamHelper>(); - serviceCollection.AddSingleton<ICryptoProvider, CryptographyProvider>(); serviceCollection.AddSingleton<ISocketFactory, SocketFactory>(); @@ -557,8 +553,6 @@ namespace Emby.Server.Implementations serviceCollection.AddTransient(provider => new Lazy<ILiveTvManager>(provider.GetRequiredService<ILiveTvManager>)); serviceCollection.AddSingleton<IDtoService, DtoService>(); - serviceCollection.AddSingleton<IChannelManager, ChannelManager>(); - serviceCollection.AddSingleton<ISessionManager, SessionManager>(); serviceCollection.AddSingleton<ICollectionManager, CollectionManager>(); @@ -567,9 +561,6 @@ namespace Emby.Server.Implementations serviceCollection.AddSingleton<ISyncPlayManager, SyncPlayManager>(); - serviceCollection.AddSingleton<LiveTvDtoService>(); - serviceCollection.AddSingleton<ILiveTvManager, LiveTvManager>(); - serviceCollection.AddSingleton<IUserViewManager, UserViewManager>(); serviceCollection.AddSingleton<IChapterManager, ChapterManager>(); diff --git a/Emby.Server.Implementations/Emby.Server.Implementations.csproj b/Emby.Server.Implementations/Emby.Server.Implementations.csproj index b3344bb9f..34276355a 100644 --- a/Emby.Server.Implementations/Emby.Server.Implementations.csproj +++ b/Emby.Server.Implementations/Emby.Server.Implementations.csproj @@ -22,7 +22,6 @@ <ItemGroup> <PackageReference Include="DiscUtils.Udf" /> - <PackageReference Include="Jellyfin.XmlTv" /> <PackageReference Include="Microsoft.Data.Sqlite" /> <PackageReference Include="Microsoft.Extensions.DependencyInjection" /> <PackageReference Include="Microsoft.Extensions.Caching.Memory" /> diff --git a/Emby.Server.Implementations/Library/MediaSourceManager.cs b/Emby.Server.Implementations/Library/MediaSourceManager.cs index 96fad9bca..68eccf311 100644 --- a/Emby.Server.Implementations/Library/MediaSourceManager.cs +++ b/Emby.Server.Implementations/Library/MediaSourceManager.cs @@ -11,14 +11,15 @@ using System.Linq; using System.Text.Json; using System.Threading; using System.Threading.Tasks; -using EasyCaching.Core.Configurations; using Jellyfin.Data.Entities; using Jellyfin.Data.Enums; using Jellyfin.Extensions.Json; using MediaBrowser.Common.Configuration; using MediaBrowser.Common.Extensions; +using MediaBrowser.Controller; using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Library; +using MediaBrowser.Controller.LiveTv; using MediaBrowser.Controller.MediaEncoding; using MediaBrowser.Controller.Persistence; using MediaBrowser.Controller.Providers; @@ -37,6 +38,7 @@ namespace Emby.Server.Implementations.Library // Do not use a pipe here because Roku http requests to the server will fail, without any explicit error message. private const char LiveStreamIdDelimeter = '_'; + private readonly IServerApplicationHost _appHost; private readonly IItemRepository _itemRepo; private readonly IUserManager _userManager; private readonly ILibraryManager _libraryManager; @@ -55,6 +57,7 @@ namespace Emby.Server.Implementations.Library private IMediaSourceProvider[] _providers; public MediaSourceManager( + IServerApplicationHost appHost, IItemRepository itemRepo, IApplicationPaths applicationPaths, ILocalizationManager localizationManager, @@ -66,6 +69,7 @@ namespace Emby.Server.Implementations.Library IMediaEncoder mediaEncoder, IDirectoryService directoryService) { + _appHost = appHost; _itemRepo = itemRepo; _userManager = userManager; _libraryManager = libraryManager; @@ -799,6 +803,35 @@ namespace Emby.Server.Implementations.Library return result.Item1; } + public async Task<List<MediaSourceInfo>> GetRecordingStreamMediaSources(ActiveRecordingInfo info, CancellationToken cancellationToken) + { + var stream = new MediaSourceInfo + { + EncoderPath = _appHost.GetApiUrlForLocalAccess() + "/LiveTv/LiveRecordings/" + info.Id + "/stream", + EncoderProtocol = MediaProtocol.Http, + Path = info.Path, + Protocol = MediaProtocol.File, + Id = info.Id, + SupportsDirectPlay = false, + SupportsDirectStream = true, + SupportsTranscoding = true, + IsInfiniteStream = true, + RequiresOpening = false, + RequiresClosing = false, + BufferMs = 0, + IgnoreDts = true, + IgnoreIndex = true + }; + + await new LiveStreamHelper(_mediaEncoder, _logger, _appPaths) + .AddMediaInfoWithProbe(stream, false, false, cancellationToken).ConfigureAwait(false); + + return new List<MediaSourceInfo> + { + stream + }; + } + public async Task CloseLiveStream(string id) { ArgumentException.ThrowIfNullOrEmpty(id); diff --git a/Jellyfin.Server/CoreAppHost.cs b/Jellyfin.Server/CoreAppHost.cs index 93277a981..5192b9e21 100644 --- a/Jellyfin.Server/CoreAppHost.cs +++ b/Jellyfin.Server/CoreAppHost.cs @@ -6,6 +6,8 @@ using Emby.Server.Implementations.Session; using Jellyfin.Api.WebSocketListeners; using Jellyfin.Drawing; using Jellyfin.Drawing.Skia; +using Jellyfin.LiveTv; +using Jellyfin.LiveTv.Channels; using Jellyfin.Server.Implementations; using Jellyfin.Server.Implementations.Activity; using Jellyfin.Server.Implementations.Devices; @@ -16,15 +18,18 @@ using Jellyfin.Server.Implementations.Users; using MediaBrowser.Controller; using MediaBrowser.Controller.Authentication; using MediaBrowser.Controller.BaseItemManager; +using MediaBrowser.Controller.Channels; using MediaBrowser.Controller.Devices; using MediaBrowser.Controller.Drawing; using MediaBrowser.Controller.Events; using MediaBrowser.Controller.Library; +using MediaBrowser.Controller.LiveTv; using MediaBrowser.Controller.Lyrics; using MediaBrowser.Controller.Net; using MediaBrowser.Controller.Security; using MediaBrowser.Controller.Trickplay; using MediaBrowser.Model.Activity; +using MediaBrowser.Model.IO; using MediaBrowser.Providers.Lyric; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; @@ -96,6 +101,11 @@ namespace Jellyfin.Server serviceCollection.AddScoped<IAuthenticationManager, AuthenticationManager>(); + serviceCollection.AddSingleton<LiveTvDtoService>(); + serviceCollection.AddSingleton<ILiveTvManager, LiveTvManager>(); + serviceCollection.AddSingleton<IChannelManager, ChannelManager>(); + serviceCollection.AddSingleton<IStreamHelper, StreamHelper>(); + foreach (var type in GetExportTypes<ILyricProvider>()) { serviceCollection.AddSingleton(typeof(ILyricProvider), type); @@ -117,6 +127,9 @@ namespace Jellyfin.Server // Jellyfin.Server.Implementations yield return typeof(JellyfinDbContext).Assembly; + + // Jellyfin.LiveTv + yield return typeof(LiveTvManager).Assembly; } } } diff --git a/Jellyfin.Server/Jellyfin.Server.csproj b/Jellyfin.Server/Jellyfin.Server.csproj index 1d4d97551..21c6e6f01 100644 --- a/Jellyfin.Server/Jellyfin.Server.csproj +++ b/Jellyfin.Server/Jellyfin.Server.csproj @@ -58,6 +58,7 @@ <ProjectReference Include="..\src\Jellyfin.Drawing\Jellyfin.Drawing.csproj" /> <ProjectReference Include="..\Emby.Server.Implementations\Emby.Server.Implementations.csproj" /> <ProjectReference Include="..\src\Jellyfin.Drawing.Skia\Jellyfin.Drawing.Skia.csproj" /> + <ProjectReference Include="..\src\Jellyfin.LiveTv\Jellyfin.LiveTv.csproj" /> <ProjectReference Include="..\Jellyfin.Server.Implementations\Jellyfin.Server.Implementations.csproj" /> <ProjectReference Include="..\src\Jellyfin.MediaEncoding.Hls\Jellyfin.MediaEncoding.Hls.csproj" /> </ItemGroup> diff --git a/Jellyfin.sln b/Jellyfin.sln index 4385ac241..30eab6cc2 100644 --- a/Jellyfin.sln +++ b/Jellyfin.sln @@ -87,6 +87,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Jellyfin.MediaEncoding.Hls. EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Jellyfin.MediaEncoding.Keyframes.Tests", "tests\Jellyfin.MediaEncoding.Keyframes.Tests\Jellyfin.MediaEncoding.Keyframes.Tests.csproj", "{24960660-DE6C-47BF-AEEF-CEE8F19FE6C2}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Jellyfin.LiveTv.Tests", "tests\Jellyfin.LiveTv.Tests\Jellyfin.LiveTv.Tests.csproj", "{C4F71272-C6BE-4C30-BE0D-4E6ED651D6D3}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Jellyfin.LiveTv", "src\Jellyfin.LiveTv\Jellyfin.LiveTv.csproj", "{8C6B2B13-58A4-4506-9DAB-1F882A093FE0}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -233,6 +237,14 @@ Global {24960660-DE6C-47BF-AEEF-CEE8F19FE6C2}.Debug|Any CPU.Build.0 = Debug|Any CPU {24960660-DE6C-47BF-AEEF-CEE8F19FE6C2}.Release|Any CPU.ActiveCfg = Release|Any CPU {24960660-DE6C-47BF-AEEF-CEE8F19FE6C2}.Release|Any CPU.Build.0 = Release|Any CPU + {C4F71272-C6BE-4C30-BE0D-4E6ED651D6D3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C4F71272-C6BE-4C30-BE0D-4E6ED651D6D3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C4F71272-C6BE-4C30-BE0D-4E6ED651D6D3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C4F71272-C6BE-4C30-BE0D-4E6ED651D6D3}.Release|Any CPU.Build.0 = Release|Any CPU + {8C6B2B13-58A4-4506-9DAB-1F882A093FE0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8C6B2B13-58A4-4506-9DAB-1F882A093FE0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8C6B2B13-58A4-4506-9DAB-1F882A093FE0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8C6B2B13-58A4-4506-9DAB-1F882A093FE0}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -259,6 +271,8 @@ Global {08FFF49B-F175-4807-A2B5-73B0EBD9F716} = {C9F0AB5D-F4D7-40C8-A353-3305C86D6D4C} {154872D9-6C12-4007-96E3-8F70A58386CE} = {C9F0AB5D-F4D7-40C8-A353-3305C86D6D4C} {0A3FCC4D-C714-4072-B90F-E374A15F9FF9} = {C9F0AB5D-F4D7-40C8-A353-3305C86D6D4C} + {C4F71272-C6BE-4C30-BE0D-4E6ED651D6D3} = {FBBB5129-006E-4AD7-BAD5-8B7CA1D10ED6} + {8C6B2B13-58A4-4506-9DAB-1F882A093FE0} = {C9F0AB5D-F4D7-40C8-A353-3305C86D6D4C} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {3448830C-EBDC-426C-85CD-7BBB9651A7FE} diff --git a/MediaBrowser.Controller/Library/IMediaSourceManager.cs b/MediaBrowser.Controller/Library/IMediaSourceManager.cs index f1758a9d8..bace703ad 100644 --- a/MediaBrowser.Controller/Library/IMediaSourceManager.cs +++ b/MediaBrowser.Controller/Library/IMediaSourceManager.cs @@ -8,6 +8,7 @@ using System.Threading; using System.Threading.Tasks; using Jellyfin.Data.Entities; using MediaBrowser.Controller.Entities; +using MediaBrowser.Controller.LiveTv; using MediaBrowser.Controller.Persistence; using MediaBrowser.Model.Dto; using MediaBrowser.Model.Entities; @@ -117,6 +118,14 @@ namespace MediaBrowser.Controller.Library public ILiveStream GetLiveStreamInfoByUniqueId(string uniqueId); /// <summary> + /// Gets the media sources for an active recording. + /// </summary> + /// <param name="info">The <see cref="ActiveRecordingInfo"/>.</param> + /// <param name="cancellationToken">The <see cref="CancellationToken"/>.</param> + /// <returns>A task containing the <see cref="MediaSourceInfo"/>'s for the recording.</returns> + Task<List<MediaSourceInfo>> GetRecordingStreamMediaSources(ActiveRecordingInfo info, CancellationToken cancellationToken); + + /// <summary> /// Closes the media source. /// </summary> /// <param name="id">The live stream identifier.</param> diff --git a/Emby.Server.Implementations/Channels/ChannelDynamicMediaSourceProvider.cs b/src/Jellyfin.LiveTv/Channels/ChannelDynamicMediaSourceProvider.cs index 3e149cc82..839549ed6 100644 --- a/Emby.Server.Implementations/Channels/ChannelDynamicMediaSourceProvider.cs +++ b/src/Jellyfin.LiveTv/Channels/ChannelDynamicMediaSourceProvider.cs @@ -8,7 +8,7 @@ using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Library; using MediaBrowser.Model.Dto; -namespace Emby.Server.Implementations.Channels +namespace Jellyfin.LiveTv.Channels { /// <summary> /// A media source provider for channels. diff --git a/Emby.Server.Implementations/Channels/ChannelImageProvider.cs b/src/Jellyfin.LiveTv/Channels/ChannelImageProvider.cs index 25cbfcf14..32e224550 100644 --- a/Emby.Server.Implementations/Channels/ChannelImageProvider.cs +++ b/src/Jellyfin.LiveTv/Channels/ChannelImageProvider.cs @@ -7,7 +7,7 @@ using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Providers; using MediaBrowser.Model.Entities; -namespace Emby.Server.Implementations.Channels +namespace Jellyfin.LiveTv.Channels { /// <summary> /// An image provider for channels. diff --git a/Emby.Server.Implementations/Channels/ChannelManager.cs b/src/Jellyfin.LiveTv/Channels/ChannelManager.cs index c505e8fe1..f5ce75ff4 100644 --- a/Emby.Server.Implementations/Channels/ChannelManager.cs +++ b/src/Jellyfin.LiveTv/Channels/ChannelManager.cs @@ -34,7 +34,7 @@ using MusicAlbum = MediaBrowser.Controller.Entities.Audio.MusicAlbum; using Season = MediaBrowser.Controller.Entities.TV.Season; using Series = MediaBrowser.Controller.Entities.TV.Series; -namespace Emby.Server.Implementations.Channels +namespace Jellyfin.LiveTv.Channels { /// <summary> /// The LiveTV channel manager. diff --git a/Emby.Server.Implementations/Channels/ChannelPostScanTask.cs b/src/Jellyfin.LiveTv/Channels/ChannelPostScanTask.cs index b358ba4d5..b4f6cf731 100644 --- a/Emby.Server.Implementations/Channels/ChannelPostScanTask.cs +++ b/src/Jellyfin.LiveTv/Channels/ChannelPostScanTask.cs @@ -8,7 +8,7 @@ using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Library; using Microsoft.Extensions.Logging; -namespace Emby.Server.Implementations.Channels +namespace Jellyfin.LiveTv.Channels { /// <summary> /// A task to remove all non-installed channels from the database. diff --git a/Emby.Server.Implementations/Channels/RefreshChannelsScheduledTask.cs b/src/Jellyfin.LiveTv/Channels/RefreshChannelsScheduledTask.cs index cfd08e653..556e052d4 100644 --- a/Emby.Server.Implementations/Channels/RefreshChannelsScheduledTask.cs +++ b/src/Jellyfin.LiveTv/Channels/RefreshChannelsScheduledTask.cs @@ -9,7 +9,7 @@ using MediaBrowser.Model.Globalization; using MediaBrowser.Model.Tasks; using Microsoft.Extensions.Logging; -namespace Emby.Server.Implementations.Channels +namespace Jellyfin.LiveTv.Channels { /// <summary> /// The "Refresh Channels" scheduled task. diff --git a/Emby.Server.Implementations/LiveTv/EmbyTV/DirectRecorder.cs b/src/Jellyfin.LiveTv/EmbyTV/DirectRecorder.cs index 7df66d358..2a25218b6 100644 --- a/Emby.Server.Implementations/LiveTv/EmbyTV/DirectRecorder.cs +++ b/src/Jellyfin.LiveTv/EmbyTV/DirectRecorder.cs @@ -5,7 +5,6 @@ using System.IO; using System.Net.Http; using System.Threading; using System.Threading.Tasks; -using Jellyfin.Api.Helpers; using MediaBrowser.Common.Net; using MediaBrowser.Controller.Library; using MediaBrowser.Controller.Streaming; @@ -13,7 +12,7 @@ using MediaBrowser.Model.Dto; using MediaBrowser.Model.IO; using Microsoft.Extensions.Logging; -namespace Emby.Server.Implementations.LiveTv.EmbyTV +namespace Jellyfin.LiveTv.EmbyTV { public sealed class DirectRecorder : IRecorder { diff --git a/Emby.Server.Implementations/LiveTv/EmbyTV/EmbyTV.cs b/src/Jellyfin.LiveTv/EmbyTV/EmbyTV.cs index abe3ff349..439ed965b 100644 --- a/Emby.Server.Implementations/LiveTv/EmbyTV/EmbyTV.cs +++ b/src/Jellyfin.LiveTv/EmbyTV/EmbyTV.cs @@ -14,14 +14,12 @@ using System.Text; using System.Threading; using System.Threading.Tasks; using System.Xml; -using Emby.Server.Implementations.Library; using Jellyfin.Data.Enums; using Jellyfin.Data.Events; using Jellyfin.Extensions; using MediaBrowser.Common.Configuration; using MediaBrowser.Common.Extensions; using MediaBrowser.Common.Progress; -using MediaBrowser.Controller; using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.Dto; using MediaBrowser.Controller.Entities; @@ -39,7 +37,7 @@ using MediaBrowser.Model.MediaInfo; using MediaBrowser.Model.Providers; using Microsoft.Extensions.Logging; -namespace Emby.Server.Implementations.LiveTv.EmbyTV +namespace Jellyfin.LiveTv.EmbyTV { public sealed class EmbyTV : ILiveTvService, ISupportsDirectStreamProvider, ISupportsNewTimerIds, IDisposable { @@ -47,7 +45,6 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV private const int TunerDiscoveryDurationMs = 3000; - private readonly IServerApplicationHost _appHost; private readonly ILogger<EmbyTV> _logger; private readonly IHttpClientFactory _httpClientFactory; private readonly IServerConfigurationManager _config; @@ -76,7 +73,6 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV private bool _disposed; public EmbyTV( - IServerApplicationHost appHost, IStreamHelper streamHelper, IMediaSourceManager mediaSourceManager, ILogger<EmbyTV> logger, @@ -91,7 +87,6 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV { Current = this; - _appHost = appHost; _logger = logger; _httpClientFactory = httpClientFactory; _config = config; @@ -1021,35 +1016,6 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV throw new NotImplementedException(); } - public async Task<List<MediaSourceInfo>> GetRecordingStreamMediaSources(ActiveRecordingInfo info, CancellationToken cancellationToken) - { - var stream = new MediaSourceInfo - { - EncoderPath = _appHost.GetApiUrlForLocalAccess() + "/LiveTv/LiveRecordings/" + info.Id + "/stream", - EncoderProtocol = MediaProtocol.Http, - Path = info.Path, - Protocol = MediaProtocol.File, - Id = info.Id, - SupportsDirectPlay = false, - SupportsDirectStream = true, - SupportsTranscoding = true, - IsInfiniteStream = true, - RequiresOpening = false, - RequiresClosing = false, - BufferMs = 0, - IgnoreDts = true, - IgnoreIndex = true - }; - - await new LiveStreamHelper(_mediaEncoder, _logger, _config.CommonApplicationPaths) - .AddMediaInfoWithProbe(stream, false, false, cancellationToken).ConfigureAwait(false); - - return new List<MediaSourceInfo> - { - stream - }; - } - public Task CloseLiveStream(string id, CancellationToken cancellationToken) { return Task.CompletedTask; diff --git a/Emby.Server.Implementations/LiveTv/EmbyTV/EncodedRecorder.cs b/src/Jellyfin.LiveTv/EmbyTV/EncodedRecorder.cs index 9a9fd0273..132a5fc51 100644 --- a/Emby.Server.Implementations/LiveTv/EmbyTV/EncodedRecorder.cs +++ b/src/Jellyfin.LiveTv/EmbyTV/EncodedRecorder.cs @@ -23,7 +23,7 @@ using MediaBrowser.Model.Dto; using MediaBrowser.Model.IO; using Microsoft.Extensions.Logging; -namespace Emby.Server.Implementations.LiveTv.EmbyTV +namespace Jellyfin.LiveTv.EmbyTV { public class EncodedRecorder : IRecorder { diff --git a/Emby.Server.Implementations/LiveTv/EmbyTV/EntryPoint.cs b/src/Jellyfin.LiveTv/EmbyTV/EntryPoint.cs index a2ec2df37..e750c05ac 100644 --- a/Emby.Server.Implementations/LiveTv/EmbyTV/EntryPoint.cs +++ b/src/Jellyfin.LiveTv/EmbyTV/EntryPoint.cs @@ -3,7 +3,7 @@ using System.Threading.Tasks; using MediaBrowser.Controller.Plugins; -namespace Emby.Server.Implementations.LiveTv.EmbyTV +namespace Jellyfin.LiveTv.EmbyTV { public sealed class EntryPoint : IServerEntryPoint { diff --git a/Emby.Server.Implementations/LiveTv/EmbyTV/EpgChannelData.cs b/src/Jellyfin.LiveTv/EmbyTV/EpgChannelData.cs index 20a8213a7..43d308c43 100644 --- a/Emby.Server.Implementations/LiveTv/EmbyTV/EpgChannelData.cs +++ b/src/Jellyfin.LiveTv/EmbyTV/EpgChannelData.cs @@ -4,7 +4,7 @@ using System; using System.Collections.Generic; using MediaBrowser.Controller.LiveTv; -namespace Emby.Server.Implementations.LiveTv.EmbyTV +namespace Jellyfin.LiveTv.EmbyTV { internal class EpgChannelData { diff --git a/Emby.Server.Implementations/LiveTv/EmbyTV/IRecorder.cs b/src/Jellyfin.LiveTv/EmbyTV/IRecorder.cs index de14d6d08..7ed42e263 100644 --- a/Emby.Server.Implementations/LiveTv/EmbyTV/IRecorder.cs +++ b/src/Jellyfin.LiveTv/EmbyTV/IRecorder.cs @@ -6,7 +6,7 @@ using System.Threading.Tasks; using MediaBrowser.Controller.Library; using MediaBrowser.Model.Dto; -namespace Emby.Server.Implementations.LiveTv.EmbyTV +namespace Jellyfin.LiveTv.EmbyTV { public interface IRecorder : IDisposable { diff --git a/Emby.Server.Implementations/LiveTv/EmbyTV/ItemDataProvider.cs b/src/Jellyfin.LiveTv/EmbyTV/ItemDataProvider.cs index d5a6feb47..547ffeb66 100644 --- a/Emby.Server.Implementations/LiveTv/EmbyTV/ItemDataProvider.cs +++ b/src/Jellyfin.LiveTv/EmbyTV/ItemDataProvider.cs @@ -9,7 +9,7 @@ using System.Text.Json; using Jellyfin.Extensions.Json; using Microsoft.Extensions.Logging; -namespace Emby.Server.Implementations.LiveTv.EmbyTV +namespace Jellyfin.LiveTv.EmbyTV { public class ItemDataProvider<T> where T : class diff --git a/Emby.Server.Implementations/LiveTv/EmbyTV/NfoConfigurationExtensions.cs b/src/Jellyfin.LiveTv/EmbyTV/NfoConfigurationExtensions.cs index 83f5e8413..e8570f0e0 100644 --- a/Emby.Server.Implementations/LiveTv/EmbyTV/NfoConfigurationExtensions.cs +++ b/src/Jellyfin.LiveTv/EmbyTV/NfoConfigurationExtensions.cs @@ -1,7 +1,7 @@ using MediaBrowser.Common.Configuration; using MediaBrowser.Model.Configuration; -namespace Emby.Server.Implementations.LiveTv.EmbyTV +namespace Jellyfin.LiveTv.EmbyTV { /// <summary> /// Class containing extension methods for working with the nfo configuration. diff --git a/Emby.Server.Implementations/LiveTv/EmbyTV/RecordingHelper.cs b/src/Jellyfin.LiveTv/EmbyTV/RecordingHelper.cs index 7bbeae866..6bda231b2 100644 --- a/Emby.Server.Implementations/LiveTv/EmbyTV/RecordingHelper.cs +++ b/src/Jellyfin.LiveTv/EmbyTV/RecordingHelper.cs @@ -5,7 +5,7 @@ using System.Globalization; using System.Text; using MediaBrowser.Controller.LiveTv; -namespace Emby.Server.Implementations.LiveTv.EmbyTV +namespace Jellyfin.LiveTv.EmbyTV { internal static class RecordingHelper { diff --git a/Emby.Server.Implementations/LiveTv/EmbyTV/SeriesTimerManager.cs b/src/Jellyfin.LiveTv/EmbyTV/SeriesTimerManager.cs index bf28f3b67..2ebe60b29 100644 --- a/Emby.Server.Implementations/LiveTv/EmbyTV/SeriesTimerManager.cs +++ b/src/Jellyfin.LiveTv/EmbyTV/SeriesTimerManager.cs @@ -4,7 +4,7 @@ using System; using MediaBrowser.Controller.LiveTv; using Microsoft.Extensions.Logging; -namespace Emby.Server.Implementations.LiveTv.EmbyTV +namespace Jellyfin.LiveTv.EmbyTV { public class SeriesTimerManager : ItemDataProvider<SeriesTimerInfo> { diff --git a/Emby.Server.Implementations/LiveTv/EmbyTV/TimerManager.cs b/src/Jellyfin.LiveTv/EmbyTV/TimerManager.cs index 9f8441fa4..37b1fa14c 100644 --- a/Emby.Server.Implementations/LiveTv/EmbyTV/TimerManager.cs +++ b/src/Jellyfin.LiveTv/EmbyTV/TimerManager.cs @@ -10,7 +10,7 @@ using MediaBrowser.Controller.LiveTv; using MediaBrowser.Model.LiveTv; using Microsoft.Extensions.Logging; -namespace Emby.Server.Implementations.LiveTv.EmbyTV +namespace Jellyfin.LiveTv.EmbyTV { public class TimerManager : ItemDataProvider<TimerInfo> { diff --git a/Emby.Server.Implementations/Library/ExclusiveLiveStream.cs b/src/Jellyfin.LiveTv/ExclusiveLiveStream.cs index b1649afad..9d442e20c 100644 --- a/Emby.Server.Implementations/Library/ExclusiveLiveStream.cs +++ b/src/Jellyfin.LiveTv/ExclusiveLiveStream.cs @@ -1,5 +1,6 @@ #nullable disable +#pragma warning disable CA1711 #pragma warning disable CS1591 using System; @@ -10,7 +11,7 @@ using System.Threading.Tasks; using MediaBrowser.Controller.Library; using MediaBrowser.Model.Dto; -namespace Emby.Server.Implementations.Library +namespace Jellyfin.LiveTv { public sealed class ExclusiveLiveStream : ILiveStream { diff --git a/src/Jellyfin.LiveTv/Jellyfin.LiveTv.csproj b/src/Jellyfin.LiveTv/Jellyfin.LiveTv.csproj new file mode 100644 index 000000000..5a826a1da --- /dev/null +++ b/src/Jellyfin.LiveTv/Jellyfin.LiveTv.csproj @@ -0,0 +1,23 @@ +<Project Sdk="Microsoft.NET.Sdk"> + <PropertyGroup> + <TargetFramework>net8.0</TargetFramework> + <GenerateDocumentationFile>true</GenerateDocumentationFile> + </PropertyGroup> + + <ItemGroup> + <AssemblyAttribute Include="System.Runtime.CompilerServices.InternalsVisibleToAttribute"> + <_Parameter1>Jellyfin.LiveTv.Tests</_Parameter1> + </AssemblyAttribute> + </ItemGroup> + + <ItemGroup> + <PackageReference Include="Jellyfin.XmlTv" /> + <PackageReference Include="System.Linq.Async" /> + </ItemGroup> + + <ItemGroup> + <ProjectReference Include="..\..\MediaBrowser.Model\MediaBrowser.Model.csproj" /> + <ProjectReference Include="..\..\MediaBrowser.Controller\MediaBrowser.Controller.csproj" /> + <ProjectReference Include="..\..\MediaBrowser.Common\MediaBrowser.Common.csproj" /> + </ItemGroup> +</Project> diff --git a/Emby.Server.Implementations/LiveTv/Listings/SchedulesDirect.cs b/src/Jellyfin.LiveTv/Listings/SchedulesDirect.cs index 5be3a7488..3b20cd160 100644 --- a/Emby.Server.Implementations/LiveTv/Listings/SchedulesDirect.cs +++ b/src/Jellyfin.LiveTv/Listings/SchedulesDirect.cs @@ -16,9 +16,9 @@ using System.Text; using System.Text.Json; using System.Threading; using System.Threading.Tasks; -using Emby.Server.Implementations.LiveTv.Listings.SchedulesDirectDtos; using Jellyfin.Extensions; using Jellyfin.Extensions.Json; +using Jellyfin.LiveTv.Listings.SchedulesDirectDtos; using MediaBrowser.Common.Net; using MediaBrowser.Controller.Authentication; using MediaBrowser.Controller.LiveTv; @@ -27,7 +27,7 @@ using MediaBrowser.Model.Entities; using MediaBrowser.Model.LiveTv; using Microsoft.Extensions.Logging; -namespace Emby.Server.Implementations.LiveTv.Listings +namespace Jellyfin.LiveTv.Listings { public class SchedulesDirect : IListingsProvider, IDisposable { @@ -613,6 +613,7 @@ namespace Emby.Server.Implementations.LiveTv.Listings // Response is automatically disposed in the calling function, // so dispose manually if not returning. +#pragma warning disable IDISP016, IDISP017 response.Dispose(); if (!enableRetry || (int)response.StatusCode >= 500) { @@ -621,6 +622,7 @@ namespace Emby.Server.Implementations.LiveTv.Listings null, response.StatusCode); } +#pragma warning restore IDISP016, IDISP017 _tokens.Clear(); options.Headers.TryAddWithoutValidation("token", await GetToken(providerInfo, cancellationToken).ConfigureAwait(false)); diff --git a/Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/BroadcasterDto.cs b/src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/BroadcasterDto.cs index 95ac996e0..c1a502fd5 100644 --- a/Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/BroadcasterDto.cs +++ b/src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/BroadcasterDto.cs @@ -1,6 +1,6 @@ using System.Text.Json.Serialization; -namespace Emby.Server.Implementations.LiveTv.Listings.SchedulesDirectDtos +namespace Jellyfin.LiveTv.Listings.SchedulesDirectDtos { /// <summary> /// Broadcaster dto. diff --git a/Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/CaptionDto.cs b/src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/CaptionDto.cs index f6251b9ad..0cc39f3bb 100644 --- a/Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/CaptionDto.cs +++ b/src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/CaptionDto.cs @@ -1,6 +1,6 @@ using System.Text.Json.Serialization; -namespace Emby.Server.Implementations.LiveTv.Listings.SchedulesDirectDtos +namespace Jellyfin.LiveTv.Listings.SchedulesDirectDtos { /// <summary> /// Caption dto. diff --git a/Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/CastDto.cs b/src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/CastDto.cs index 0b7a2c63a..bdcf87fda 100644 --- a/Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/CastDto.cs +++ b/src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/CastDto.cs @@ -1,6 +1,6 @@ using System.Text.Json.Serialization; -namespace Emby.Server.Implementations.LiveTv.Listings.SchedulesDirectDtos +namespace Jellyfin.LiveTv.Listings.SchedulesDirectDtos { /// <summary> /// Cast dto. diff --git a/Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/ChannelDto.cs b/src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/ChannelDto.cs index 87c327ed8..4e0d74078 100644 --- a/Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/ChannelDto.cs +++ b/src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/ChannelDto.cs @@ -2,7 +2,7 @@ using System; using System.Collections.Generic; using System.Text.Json.Serialization; -namespace Emby.Server.Implementations.LiveTv.Listings.SchedulesDirectDtos +namespace Jellyfin.LiveTv.Listings.SchedulesDirectDtos { /// <summary> /// Channel dto. diff --git a/Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/ContentRatingDto.cs b/src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/ContentRatingDto.cs index c19cd2e48..5c624c288 100644 --- a/Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/ContentRatingDto.cs +++ b/src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/ContentRatingDto.cs @@ -1,6 +1,6 @@ using System.Text.Json.Serialization; -namespace Emby.Server.Implementations.LiveTv.Listings.SchedulesDirectDtos +namespace Jellyfin.LiveTv.Listings.SchedulesDirectDtos { /// <summary> /// Content rating dto. diff --git a/Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/CrewDto.cs b/src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/CrewDto.cs index f00c9accd..6d3c79c18 100644 --- a/Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/CrewDto.cs +++ b/src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/CrewDto.cs @@ -1,6 +1,6 @@ using System.Text.Json.Serialization; -namespace Emby.Server.Implementations.LiveTv.Listings.SchedulesDirectDtos +namespace Jellyfin.LiveTv.Listings.SchedulesDirectDtos { /// <summary> /// Crew dto. diff --git a/Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/DayDto.cs b/src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/DayDto.cs index 1a371965c..094f9a319 100644 --- a/Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/DayDto.cs +++ b/src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/DayDto.cs @@ -2,7 +2,7 @@ using System; using System.Collections.Generic; using System.Text.Json.Serialization; -namespace Emby.Server.Implementations.LiveTv.Listings.SchedulesDirectDtos +namespace Jellyfin.LiveTv.Listings.SchedulesDirectDtos { /// <summary> /// Day dto. diff --git a/Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/Description1000Dto.cs b/src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/Description1000Dto.cs index ca6ae7fb1..0063f4cc3 100644 --- a/Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/Description1000Dto.cs +++ b/src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/Description1000Dto.cs @@ -1,6 +1,6 @@ using System.Text.Json.Serialization; -namespace Emby.Server.Implementations.LiveTv.Listings.SchedulesDirectDtos +namespace Jellyfin.LiveTv.Listings.SchedulesDirectDtos { /// <summary> /// Description 1_000 dto. diff --git a/Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/Description100Dto.cs b/src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/Description100Dto.cs index 1577219ed..1d9a18cc7 100644 --- a/Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/Description100Dto.cs +++ b/src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/Description100Dto.cs @@ -1,6 +1,6 @@ using System.Text.Json.Serialization; -namespace Emby.Server.Implementations.LiveTv.Listings.SchedulesDirectDtos +namespace Jellyfin.LiveTv.Listings.SchedulesDirectDtos { /// <summary> /// Description 100 dto. diff --git a/Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/DescriptionsProgramDto.cs b/src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/DescriptionsProgramDto.cs index eaf4a340b..75e91547b 100644 --- a/Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/DescriptionsProgramDto.cs +++ b/src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/DescriptionsProgramDto.cs @@ -2,7 +2,7 @@ using System; using System.Collections.Generic; using System.Text.Json.Serialization; -namespace Emby.Server.Implementations.LiveTv.Listings.SchedulesDirectDtos +namespace Jellyfin.LiveTv.Listings.SchedulesDirectDtos { /// <summary> /// Descriptions program dto. diff --git a/Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/EventDetailsDto.cs b/src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/EventDetailsDto.cs index fbdfb1f71..28abe094e 100644 --- a/Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/EventDetailsDto.cs +++ b/src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/EventDetailsDto.cs @@ -1,6 +1,6 @@ using System.Text.Json.Serialization; -namespace Emby.Server.Implementations.LiveTv.Listings.SchedulesDirectDtos +namespace Jellyfin.LiveTv.Listings.SchedulesDirectDtos { /// <summary> /// Event details dto. diff --git a/Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/GracenoteDto.cs b/src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/GracenoteDto.cs index 6852d89d7..6eefc1744 100644 --- a/Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/GracenoteDto.cs +++ b/src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/GracenoteDto.cs @@ -1,6 +1,6 @@ using System.Text.Json.Serialization; -namespace Emby.Server.Implementations.LiveTv.Listings.SchedulesDirectDtos +namespace Jellyfin.LiveTv.Listings.SchedulesDirectDtos { /// <summary> /// Gracenote dto. diff --git a/Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/HeadendsDto.cs b/src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/HeadendsDto.cs index b9844562f..a62ae61f9 100644 --- a/Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/HeadendsDto.cs +++ b/src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/HeadendsDto.cs @@ -2,7 +2,7 @@ using System; using System.Collections.Generic; using System.Text.Json.Serialization; -namespace Emby.Server.Implementations.LiveTv.Listings.SchedulesDirectDtos +namespace Jellyfin.LiveTv.Listings.SchedulesDirectDtos { /// <summary> /// Headends dto. diff --git a/Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/ImageDataDto.cs b/src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/ImageDataDto.cs index a1ae3ca6d..21b595f24 100644 --- a/Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/ImageDataDto.cs +++ b/src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/ImageDataDto.cs @@ -1,6 +1,6 @@ using System.Text.Json.Serialization; -namespace Emby.Server.Implementations.LiveTv.Listings.SchedulesDirectDtos +namespace Jellyfin.LiveTv.Listings.SchedulesDirectDtos { /// <summary> /// Image data dto. diff --git a/Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/LineupDto.cs b/src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/LineupDto.cs index 3dc64e5d8..856b7a89b 100644 --- a/Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/LineupDto.cs +++ b/src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/LineupDto.cs @@ -1,6 +1,6 @@ using System.Text.Json.Serialization; -namespace Emby.Server.Implementations.LiveTv.Listings.SchedulesDirectDtos +namespace Jellyfin.LiveTv.Listings.SchedulesDirectDtos { /// <summary> /// The lineup dto. diff --git a/Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/LineupsDto.cs b/src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/LineupsDto.cs index f19081781..99f80ce8a 100644 --- a/Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/LineupsDto.cs +++ b/src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/LineupsDto.cs @@ -2,7 +2,7 @@ using System; using System.Collections.Generic; using System.Text.Json.Serialization; -namespace Emby.Server.Implementations.LiveTv.Listings.SchedulesDirectDtos +namespace Jellyfin.LiveTv.Listings.SchedulesDirectDtos { /// <summary> /// Lineups dto. diff --git a/Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/LogoDto.cs b/src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/LogoDto.cs index fecc55e03..d7836384e 100644 --- a/Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/LogoDto.cs +++ b/src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/LogoDto.cs @@ -1,6 +1,6 @@ using System.Text.Json.Serialization; -namespace Emby.Server.Implementations.LiveTv.Listings.SchedulesDirectDtos +namespace Jellyfin.LiveTv.Listings.SchedulesDirectDtos { /// <summary> /// Logo dto. diff --git a/Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/MapDto.cs b/src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/MapDto.cs index ffd02d474..ea583a1ce 100644 --- a/Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/MapDto.cs +++ b/src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/MapDto.cs @@ -1,6 +1,6 @@ using System.Text.Json.Serialization; -namespace Emby.Server.Implementations.LiveTv.Listings.SchedulesDirectDtos +namespace Jellyfin.LiveTv.Listings.SchedulesDirectDtos { /// <summary> /// Map dto. diff --git a/Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/MetadataDto.cs b/src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/MetadataDto.cs index 40faa493c..cafc8e273 100644 --- a/Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/MetadataDto.cs +++ b/src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/MetadataDto.cs @@ -1,6 +1,6 @@ using System.Text.Json.Serialization; -namespace Emby.Server.Implementations.LiveTv.Listings.SchedulesDirectDtos +namespace Jellyfin.LiveTv.Listings.SchedulesDirectDtos { /// <summary> /// Metadata dto. diff --git a/Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/MetadataProgramsDto.cs b/src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/MetadataProgramsDto.cs index 43f290156..243ccff5c 100644 --- a/Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/MetadataProgramsDto.cs +++ b/src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/MetadataProgramsDto.cs @@ -1,6 +1,6 @@ using System.Text.Json.Serialization; -namespace Emby.Server.Implementations.LiveTv.Listings.SchedulesDirectDtos +namespace Jellyfin.LiveTv.Listings.SchedulesDirectDtos { /// <summary> /// Metadata programs dto. diff --git a/Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/MetadataScheduleDto.cs b/src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/MetadataScheduleDto.cs index 04560ab55..1c5c5333c 100644 --- a/Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/MetadataScheduleDto.cs +++ b/src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/MetadataScheduleDto.cs @@ -1,7 +1,7 @@ using System; using System.Text.Json.Serialization; -namespace Emby.Server.Implementations.LiveTv.Listings.SchedulesDirectDtos +namespace Jellyfin.LiveTv.Listings.SchedulesDirectDtos { /// <summary> /// Metadata schedule dto. diff --git a/Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/MovieDto.cs b/src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/MovieDto.cs index 31bef423b..aea740833 100644 --- a/Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/MovieDto.cs +++ b/src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/MovieDto.cs @@ -2,7 +2,7 @@ using System; using System.Collections.Generic; using System.Text.Json.Serialization; -namespace Emby.Server.Implementations.LiveTv.Listings.SchedulesDirectDtos +namespace Jellyfin.LiveTv.Listings.SchedulesDirectDtos { /// <summary> /// Movie dto. diff --git a/Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/MultipartDto.cs b/src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/MultipartDto.cs index e8b15dc07..328cefadc 100644 --- a/Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/MultipartDto.cs +++ b/src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/MultipartDto.cs @@ -1,6 +1,6 @@ using System.Text.Json.Serialization; -namespace Emby.Server.Implementations.LiveTv.Listings.SchedulesDirectDtos +namespace Jellyfin.LiveTv.Listings.SchedulesDirectDtos { /// <summary> /// Multipart dto. diff --git a/Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/ProgramDetailsDto.cs b/src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/ProgramDetailsDto.cs index 84c48f67f..8c3906f86 100644 --- a/Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/ProgramDetailsDto.cs +++ b/src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/ProgramDetailsDto.cs @@ -2,7 +2,7 @@ using System; using System.Collections.Generic; using System.Text.Json.Serialization; -namespace Emby.Server.Implementations.LiveTv.Listings.SchedulesDirectDtos +namespace Jellyfin.LiveTv.Listings.SchedulesDirectDtos { /// <summary> /// Program details dto. diff --git a/Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/ProgramDto.cs b/src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/ProgramDto.cs index 60389b45b..527a6f8a1 100644 --- a/Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/ProgramDto.cs +++ b/src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/ProgramDto.cs @@ -2,7 +2,7 @@ using System; using System.Collections.Generic; using System.Text.Json.Serialization; -namespace Emby.Server.Implementations.LiveTv.Listings.SchedulesDirectDtos +namespace Jellyfin.LiveTv.Listings.SchedulesDirectDtos { /// <summary> /// Program dto. diff --git a/Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/QualityRatingDto.cs b/src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/QualityRatingDto.cs index c5ddcf7c5..61496155a 100644 --- a/Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/QualityRatingDto.cs +++ b/src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/QualityRatingDto.cs @@ -1,6 +1,6 @@ using System.Text.Json.Serialization; -namespace Emby.Server.Implementations.LiveTv.Listings.SchedulesDirectDtos +namespace Jellyfin.LiveTv.Listings.SchedulesDirectDtos { /// <summary> /// Quality rating dto. diff --git a/Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/RatingDto.cs b/src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/RatingDto.cs index e04b619a4..287cd4ed5 100644 --- a/Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/RatingDto.cs +++ b/src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/RatingDto.cs @@ -1,6 +1,6 @@ using System.Text.Json.Serialization; -namespace Emby.Server.Implementations.LiveTv.Listings.SchedulesDirectDtos +namespace Jellyfin.LiveTv.Listings.SchedulesDirectDtos { /// <summary> /// Rating dto. diff --git a/Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/RecommendationDto.cs b/src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/RecommendationDto.cs index c8f79fd1c..d380ec7ae 100644 --- a/Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/RecommendationDto.cs +++ b/src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/RecommendationDto.cs @@ -1,6 +1,6 @@ using System.Text.Json.Serialization; -namespace Emby.Server.Implementations.LiveTv.Listings.SchedulesDirectDtos +namespace Jellyfin.LiveTv.Listings.SchedulesDirectDtos { /// <summary> /// Recommendation dto. diff --git a/Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/RequestScheduleForChannelDto.cs b/src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/RequestScheduleForChannelDto.cs index 0cd05709b..6fc695a39 100644 --- a/Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/RequestScheduleForChannelDto.cs +++ b/src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/RequestScheduleForChannelDto.cs @@ -2,7 +2,7 @@ using System; using System.Collections.Generic; using System.Text.Json.Serialization; -namespace Emby.Server.Implementations.LiveTv.Listings.SchedulesDirectDtos +namespace Jellyfin.LiveTv.Listings.SchedulesDirectDtos { /// <summary> /// Request schedule for channel dto. diff --git a/Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/ShowImagesDto.cs b/src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/ShowImagesDto.cs index 84e224b71..523900a96 100644 --- a/Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/ShowImagesDto.cs +++ b/src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/ShowImagesDto.cs @@ -2,7 +2,7 @@ using System; using System.Collections.Generic; using System.Text.Json.Serialization; -namespace Emby.Server.Implementations.LiveTv.Listings.SchedulesDirectDtos +namespace Jellyfin.LiveTv.Listings.SchedulesDirectDtos { /// <summary> /// Show image dto. diff --git a/Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/StationDto.cs b/src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/StationDto.cs index d797fd49b..dbde1e117 100644 --- a/Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/StationDto.cs +++ b/src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/StationDto.cs @@ -2,7 +2,7 @@ using System; using System.Collections.Generic; using System.Text.Json.Serialization; -namespace Emby.Server.Implementations.LiveTv.Listings.SchedulesDirectDtos +namespace Jellyfin.LiveTv.Listings.SchedulesDirectDtos { /// <summary> /// Station dto. diff --git a/Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/TitleDto.cs b/src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/TitleDto.cs index 61cd4a9b0..146124f98 100644 --- a/Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/TitleDto.cs +++ b/src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/TitleDto.cs @@ -1,6 +1,6 @@ using System.Text.Json.Serialization; -namespace Emby.Server.Implementations.LiveTv.Listings.SchedulesDirectDtos +namespace Jellyfin.LiveTv.Listings.SchedulesDirectDtos { /// <summary> /// Title dto. diff --git a/Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/TokenDto.cs b/src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/TokenDto.cs index afb999486..b3bc61837 100644 --- a/Emby.Server.Implementations/LiveTv/Listings/SchedulesDirectDtos/TokenDto.cs +++ b/src/Jellyfin.LiveTv/Listings/SchedulesDirectDtos/TokenDto.cs @@ -1,7 +1,7 @@ using System; using System.Text.Json.Serialization; -namespace Emby.Server.Implementations.LiveTv.Listings.SchedulesDirectDtos +namespace Jellyfin.LiveTv.Listings.SchedulesDirectDtos { /// <summary> /// The token dto. diff --git a/Emby.Server.Implementations/LiveTv/Listings/XmlTvListingsProvider.cs b/src/Jellyfin.LiveTv/Listings/XmlTvListingsProvider.cs index e60e9dcc1..cecc363f0 100644 --- a/Emby.Server.Implementations/LiveTv/Listings/XmlTvListingsProvider.cs +++ b/src/Jellyfin.LiveTv/Listings/XmlTvListingsProvider.cs @@ -23,7 +23,7 @@ using MediaBrowser.Model.IO; using MediaBrowser.Model.LiveTv; using Microsoft.Extensions.Logging; -namespace Emby.Server.Implementations.LiveTv.Listings +namespace Jellyfin.LiveTv.Listings { public class XmlTvListingsProvider : IListingsProvider { diff --git a/Emby.Server.Implementations/LiveTv/LiveTvConfigurationFactory.cs b/src/Jellyfin.LiveTv/LiveTvConfigurationFactory.cs index 098f193fb..ddbf6345c 100644 --- a/Emby.Server.Implementations/LiveTv/LiveTvConfigurationFactory.cs +++ b/src/Jellyfin.LiveTv/LiveTvConfigurationFactory.cs @@ -2,7 +2,7 @@ using System.Collections.Generic; using MediaBrowser.Common.Configuration; using MediaBrowser.Model.LiveTv; -namespace Emby.Server.Implementations.LiveTv +namespace Jellyfin.LiveTv { /// <summary> /// <see cref="IConfigurationFactory" /> implementation for <see cref="LiveTvOptions" />. diff --git a/Emby.Server.Implementations/LiveTv/LiveTvDtoService.cs b/src/Jellyfin.LiveTv/LiveTvDtoService.cs index 9326fbd5c..7c7c26eb4 100644 --- a/Emby.Server.Implementations/LiveTv/LiveTvDtoService.cs +++ b/src/Jellyfin.LiveTv/LiveTvDtoService.cs @@ -20,7 +20,7 @@ using MediaBrowser.Model.Entities; using MediaBrowser.Model.LiveTv; using Microsoft.Extensions.Logging; -namespace Emby.Server.Implementations.LiveTv +namespace Jellyfin.LiveTv { public class LiveTvDtoService { diff --git a/Emby.Server.Implementations/LiveTv/LiveTvManager.cs b/src/Jellyfin.LiveTv/LiveTvManager.cs index 426165de6..4fc995653 100644 --- a/Emby.Server.Implementations/LiveTv/LiveTvManager.cs +++ b/src/Jellyfin.LiveTv/LiveTvManager.cs @@ -9,7 +9,6 @@ using System.Linq; using System.Text.Json; using System.Threading; using System.Threading.Tasks; -using Emby.Server.Implementations.Library; using Jellyfin.Data.Entities; using Jellyfin.Data.Enums; using Jellyfin.Data.Events; @@ -34,7 +33,7 @@ using MediaBrowser.Model.Querying; using MediaBrowser.Model.Tasks; using Microsoft.Extensions.Logging; -namespace Emby.Server.Implementations.LiveTv +namespace Jellyfin.LiveTv { /// <summary> /// Class LiveTvManager. @@ -231,7 +230,9 @@ namespace Emby.Server.Implementations.LiveTv _logger.LogInformation("Opening channel stream from {0}, external channel Id: {1}", service.Name, channel.ExternalId); MediaSourceInfo info; +#pragma warning disable CA1859 // TODO: Analyzer bug? ILiveStream liveStream; +#pragma warning restore CA1859 if (service is ISupportsDirectStreamProvider supportsManagedStream) { liveStream = await supportsManagedStream.GetChannelStreamWithDirectStreamProvider(channel.ExternalId, mediaSourceId, currentLiveStreams, cancellationToken).ConfigureAwait(false); diff --git a/Emby.Server.Implementations/LiveTv/LiveTvMediaSourceProvider.cs b/src/Jellyfin.LiveTv/LiveTvMediaSourceProvider.cs index 6a92fc599..ce9361089 100644 --- a/Emby.Server.Implementations/LiveTv/LiveTvMediaSourceProvider.cs +++ b/src/Jellyfin.LiveTv/LiveTvMediaSourceProvider.cs @@ -16,7 +16,7 @@ using MediaBrowser.Model.Dto; using MediaBrowser.Model.MediaInfo; using Microsoft.Extensions.Logging; -namespace Emby.Server.Implementations.LiveTv +namespace Jellyfin.LiveTv { public class LiveTvMediaSourceProvider : IMediaSourceProvider { @@ -61,7 +61,7 @@ namespace Emby.Server.Implementations.LiveTv { if (activeRecordingInfo is not null) { - sources = await EmbyTV.EmbyTV.Current.GetRecordingStreamMediaSources(activeRecordingInfo, cancellationToken) + sources = await _mediaSourceManager.GetRecordingStreamMediaSources(activeRecordingInfo, cancellationToken) .ConfigureAwait(false); } else diff --git a/Emby.Server.Implementations/EntryPoints/RecordingNotifier.cs b/src/Jellyfin.LiveTv/RecordingNotifier.cs index e0ca02d98..2923948eb 100644 --- a/Emby.Server.Implementations/EntryPoints/RecordingNotifier.cs +++ b/src/Jellyfin.LiveTv/RecordingNotifier.cs @@ -15,7 +15,7 @@ using MediaBrowser.Controller.Session; using MediaBrowser.Model.Session; using Microsoft.Extensions.Logging; -namespace Emby.Server.Implementations.EntryPoints +namespace Jellyfin.LiveTv { public sealed class RecordingNotifier : IServerEntryPoint { diff --git a/Emby.Server.Implementations/LiveTv/RefreshGuideScheduledTask.cs b/src/Jellyfin.LiveTv/RefreshGuideScheduledTask.cs index 72bbdd14a..e58296a70 100644 --- a/Emby.Server.Implementations/LiveTv/RefreshGuideScheduledTask.cs +++ b/src/Jellyfin.LiveTv/RefreshGuideScheduledTask.cs @@ -7,7 +7,7 @@ using MediaBrowser.Controller.LiveTv; using MediaBrowser.Model.LiveTv; using MediaBrowser.Model.Tasks; -namespace Emby.Server.Implementations.LiveTv +namespace Jellyfin.LiveTv { /// <summary> /// The "Refresh Guide" scheduled task. diff --git a/Emby.Server.Implementations/IO/StreamHelper.cs b/src/Jellyfin.LiveTv/StreamHelper.cs index 6eaf22ce4..ab4b6e9b1 100644 --- a/Emby.Server.Implementations/IO/StreamHelper.cs +++ b/src/Jellyfin.LiveTv/StreamHelper.cs @@ -7,7 +7,7 @@ using System.Threading; using System.Threading.Tasks; using MediaBrowser.Model.IO; -namespace Emby.Server.Implementations.IO +namespace Jellyfin.LiveTv { public class StreamHelper : IStreamHelper { diff --git a/Emby.Server.Implementations/LiveTv/TunerHosts/BaseTunerHost.cs b/src/Jellyfin.LiveTv/TunerHosts/BaseTunerHost.cs index da597056a..769f196bd 100644 --- a/Emby.Server.Implementations/LiveTv/TunerHosts/BaseTunerHost.cs +++ b/src/Jellyfin.LiveTv/TunerHosts/BaseTunerHost.cs @@ -19,7 +19,7 @@ using MediaBrowser.Model.IO; using MediaBrowser.Model.LiveTv; using Microsoft.Extensions.Logging; -namespace Emby.Server.Implementations.LiveTv.TunerHosts +namespace Jellyfin.LiveTv.TunerHosts { public abstract class BaseTunerHost { diff --git a/Emby.Server.Implementations/LiveTv/TunerHosts/HdHomerun/Channels.cs b/src/Jellyfin.LiveTv/TunerHosts/HdHomerun/Channels.cs index 0f0453189..311a71d13 100644 --- a/Emby.Server.Implementations/LiveTv/TunerHosts/HdHomerun/Channels.cs +++ b/src/Jellyfin.LiveTv/TunerHosts/HdHomerun/Channels.cs @@ -1,6 +1,6 @@ #nullable disable -namespace Emby.Server.Implementations.LiveTv.TunerHosts.HdHomerun +namespace Jellyfin.LiveTv.TunerHosts.HdHomerun { internal class Channels { diff --git a/Emby.Server.Implementations/LiveTv/TunerHosts/HdHomerun/DiscoverResponse.cs b/src/Jellyfin.LiveTv/TunerHosts/HdHomerun/DiscoverResponse.cs index 39b357142..3ece181f2 100644 --- a/Emby.Server.Implementations/LiveTv/TunerHosts/HdHomerun/DiscoverResponse.cs +++ b/src/Jellyfin.LiveTv/TunerHosts/HdHomerun/DiscoverResponse.cs @@ -2,7 +2,7 @@ using System; -namespace Emby.Server.Implementations.LiveTv.TunerHosts.HdHomerun +namespace Jellyfin.LiveTv.TunerHosts.HdHomerun { internal class DiscoverResponse { diff --git a/Emby.Server.Implementations/LiveTv/TunerHosts/HdHomerun/HdHomerunChannelCommands.cs b/src/Jellyfin.LiveTv/TunerHosts/HdHomerun/HdHomerunChannelCommands.cs index aae33503f..50a887826 100644 --- a/Emby.Server.Implementations/LiveTv/TunerHosts/HdHomerun/HdHomerunChannelCommands.cs +++ b/src/Jellyfin.LiveTv/TunerHosts/HdHomerun/HdHomerunChannelCommands.cs @@ -3,7 +3,7 @@ using System; using System.Collections.Generic; -namespace Emby.Server.Implementations.LiveTv.TunerHosts.HdHomerun +namespace Jellyfin.LiveTv.TunerHosts.HdHomerun { public class HdHomerunChannelCommands : IHdHomerunChannelCommands { diff --git a/Emby.Server.Implementations/LiveTv/TunerHosts/HdHomerun/HdHomerunHost.cs b/src/Jellyfin.LiveTv/TunerHosts/HdHomerun/HdHomerunHost.cs index 79e15a82e..b1b08e992 100644 --- a/Emby.Server.Implementations/LiveTv/TunerHosts/HdHomerun/HdHomerunHost.cs +++ b/src/Jellyfin.LiveTv/TunerHosts/HdHomerun/HdHomerunHost.cs @@ -30,7 +30,7 @@ using MediaBrowser.Model.MediaInfo; using MediaBrowser.Model.Net; using Microsoft.Extensions.Logging; -namespace Emby.Server.Implementations.LiveTv.TunerHosts.HdHomerun +namespace Jellyfin.LiveTv.TunerHosts.HdHomerun { public class HdHomerunHost : BaseTunerHost, ITunerHost, IConfigurableTunerHost { @@ -143,7 +143,7 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts.HdHomerun if (!throwAllExceptions && ex.StatusCode.HasValue && ex.StatusCode.Value == HttpStatusCode.NotFound) { const string DefaultValue = "HDHR"; - var response = new DiscoverResponse + var discoverResponse = new DiscoverResponse { ModelNumber = DefaultValue }; @@ -152,11 +152,11 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts.HdHomerun // HDHR4 doesn't have this api lock (_modelCache) { - _modelCache[cacheKey] = response; + _modelCache[cacheKey] = discoverResponse; } } - return response; + return discoverResponse; } throw; diff --git a/Emby.Server.Implementations/LiveTv/TunerHosts/HdHomerun/HdHomerunManager.cs b/src/Jellyfin.LiveTv/TunerHosts/HdHomerun/HdHomerunManager.cs index 68383a554..861338727 100644 --- a/Emby.Server.Implementations/LiveTv/TunerHosts/HdHomerun/HdHomerunManager.cs +++ b/src/Jellyfin.LiveTv/TunerHosts/HdHomerun/HdHomerunManager.cs @@ -14,7 +14,7 @@ using System.Threading.Tasks; using MediaBrowser.Common; using MediaBrowser.Controller.LiveTv; -namespace Emby.Server.Implementations.LiveTv.TunerHosts.HdHomerun +namespace Jellyfin.LiveTv.TunerHosts.HdHomerun { public sealed class HdHomerunManager : IDisposable { diff --git a/Emby.Server.Implementations/LiveTv/TunerHosts/HdHomerun/HdHomerunUdpStream.cs b/src/Jellyfin.LiveTv/TunerHosts/HdHomerun/HdHomerunUdpStream.cs index 6195c7648..6c8cde62c 100644 --- a/Emby.Server.Implementations/LiveTv/TunerHosts/HdHomerun/HdHomerunUdpStream.cs +++ b/src/Jellyfin.LiveTv/TunerHosts/HdHomerun/HdHomerunUdpStream.cs @@ -1,5 +1,6 @@ #nullable disable +#pragma warning disable CA1711 #pragma warning disable CS1591 using System; @@ -19,7 +20,7 @@ using MediaBrowser.Model.LiveTv; using MediaBrowser.Model.MediaInfo; using Microsoft.Extensions.Logging; -namespace Emby.Server.Implementations.LiveTv.TunerHosts.HdHomerun +namespace Jellyfin.LiveTv.TunerHosts.HdHomerun { public class HdHomerunUdpStream : LiveStream, IDirectStreamProvider { diff --git a/Emby.Server.Implementations/LiveTv/TunerHosts/HdHomerun/IHdHomerunChannelCommands.cs b/src/Jellyfin.LiveTv/TunerHosts/HdHomerun/IHdHomerunChannelCommands.cs index 11bd40ab1..9fcf386f9 100644 --- a/Emby.Server.Implementations/LiveTv/TunerHosts/HdHomerun/IHdHomerunChannelCommands.cs +++ b/src/Jellyfin.LiveTv/TunerHosts/HdHomerun/IHdHomerunChannelCommands.cs @@ -2,7 +2,7 @@ using System.Collections.Generic; -namespace Emby.Server.Implementations.LiveTv.TunerHosts.HdHomerun +namespace Jellyfin.LiveTv.TunerHosts.HdHomerun { public interface IHdHomerunChannelCommands { diff --git a/Emby.Server.Implementations/LiveTv/TunerHosts/HdHomerun/LegacyHdHomerunChannelCommands.cs b/src/Jellyfin.LiveTv/TunerHosts/HdHomerun/LegacyHdHomerunChannelCommands.cs index 654474e97..6dc9c885f 100644 --- a/Emby.Server.Implementations/LiveTv/TunerHosts/HdHomerun/LegacyHdHomerunChannelCommands.cs +++ b/src/Jellyfin.LiveTv/TunerHosts/HdHomerun/LegacyHdHomerunChannelCommands.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; using System.Text.RegularExpressions; -namespace Emby.Server.Implementations.LiveTv.TunerHosts.HdHomerun +namespace Jellyfin.LiveTv.TunerHosts.HdHomerun { public partial class LegacyHdHomerunChannelCommands : IHdHomerunChannelCommands { diff --git a/Emby.Server.Implementations/LiveTv/TunerHosts/LiveStream.cs b/src/Jellyfin.LiveTv/TunerHosts/LiveStream.cs index c18594a29..70d8afc5d 100644 --- a/Emby.Server.Implementations/LiveTv/TunerHosts/LiveStream.cs +++ b/src/Jellyfin.LiveTv/TunerHosts/LiveStream.cs @@ -1,5 +1,6 @@ #nullable disable +#pragma warning disable CA1711 #pragma warning disable CS1591 using System; @@ -14,7 +15,7 @@ using MediaBrowser.Model.IO; using MediaBrowser.Model.LiveTv; using Microsoft.Extensions.Logging; -namespace Emby.Server.Implementations.LiveTv.TunerHosts +namespace Jellyfin.LiveTv.TunerHosts { public class LiveStream : ILiveStream { diff --git a/Emby.Server.Implementations/LiveTv/TunerHosts/M3UTunerHost.cs b/src/Jellyfin.LiveTv/TunerHosts/M3UTunerHost.cs index 11bf03b18..7235e65b6 100644 --- a/Emby.Server.Implementations/LiveTv/TunerHosts/M3UTunerHost.cs +++ b/src/Jellyfin.LiveTv/TunerHosts/M3UTunerHost.cs @@ -24,7 +24,7 @@ using MediaBrowser.Model.MediaInfo; using Microsoft.Extensions.Logging; using Microsoft.Net.Http.Headers; -namespace Emby.Server.Implementations.LiveTv.TunerHosts +namespace Jellyfin.LiveTv.TunerHosts { public class M3UTunerHost : BaseTunerHost, ITunerHost, IConfigurableTunerHost { diff --git a/Emby.Server.Implementations/LiveTv/TunerHosts/M3uParser.cs b/src/Jellyfin.LiveTv/TunerHosts/M3uParser.cs index 0b5575b99..5900d1c5b 100644 --- a/Emby.Server.Implementations/LiveTv/TunerHosts/M3uParser.cs +++ b/src/Jellyfin.LiveTv/TunerHosts/M3uParser.cs @@ -18,7 +18,7 @@ using MediaBrowser.Model.IO; using MediaBrowser.Model.LiveTv; using Microsoft.Extensions.Logging; -namespace Emby.Server.Implementations.LiveTv.TunerHosts +namespace Jellyfin.LiveTv.TunerHosts { public partial class M3uParser { diff --git a/Emby.Server.Implementations/LiveTv/TunerHosts/SharedHttpStream.cs b/src/Jellyfin.LiveTv/TunerHosts/SharedHttpStream.cs index efb84a515..5ef04ad9e 100644 --- a/Emby.Server.Implementations/LiveTv/TunerHosts/SharedHttpStream.cs +++ b/src/Jellyfin.LiveTv/TunerHosts/SharedHttpStream.cs @@ -1,3 +1,4 @@ +#pragma warning disable CA1711 #pragma warning disable CS1591 using System; @@ -16,7 +17,7 @@ using MediaBrowser.Model.LiveTv; using MediaBrowser.Model.MediaInfo; using Microsoft.Extensions.Logging; -namespace Emby.Server.Implementations.LiveTv.TunerHosts +namespace Jellyfin.LiveTv.TunerHosts { public class SharedHttpStream : LiveStream, IDirectStreamProvider { diff --git a/tests/Jellyfin.Server.Implementations.Tests/LiveTv/HdHomerunHostTests.cs b/tests/Jellyfin.LiveTv.Tests/HdHomerunHostTests.cs index 13ac3ddb0..cb6eb9184 100644 --- a/tests/Jellyfin.Server.Implementations.Tests/LiveTv/HdHomerunHostTests.cs +++ b/tests/Jellyfin.LiveTv.Tests/HdHomerunHostTests.cs @@ -6,13 +6,13 @@ using System.Threading; using System.Threading.Tasks; using AutoFixture; using AutoFixture.AutoMoq; -using Emby.Server.Implementations.LiveTv.TunerHosts.HdHomerun; +using Jellyfin.LiveTv.TunerHosts.HdHomerun; using MediaBrowser.Model.LiveTv; using Moq; using Moq.Protected; using Xunit; -namespace Jellyfin.Server.Implementations.Tests.LiveTv +namespace Jellyfin.LiveTv.Tests { public class HdHomerunHostTests { diff --git a/tests/Jellyfin.Server.Implementations.Tests/LiveTv/HdHomerunManagerTests.cs b/tests/Jellyfin.LiveTv.Tests/HdHomerunManagerTests.cs index fd499d9cf..4ab0bd723 100644 --- a/tests/Jellyfin.Server.Implementations.Tests/LiveTv/HdHomerunManagerTests.cs +++ b/tests/Jellyfin.LiveTv.Tests/HdHomerunManagerTests.cs @@ -1,9 +1,9 @@ using System; using System.Text; -using Emby.Server.Implementations.LiveTv.TunerHosts.HdHomerun; +using Jellyfin.LiveTv.TunerHosts.HdHomerun; using Xunit; -namespace Jellyfin.Server.Implementations.Tests.LiveTv +namespace Jellyfin.LiveTv.Tests { public class HdHomerunManagerTests { diff --git a/tests/Jellyfin.LiveTv.Tests/Jellyfin.LiveTv.Tests.csproj b/tests/Jellyfin.LiveTv.Tests/Jellyfin.LiveTv.Tests.csproj new file mode 100644 index 000000000..f645f38c4 --- /dev/null +++ b/tests/Jellyfin.LiveTv.Tests/Jellyfin.LiveTv.Tests.csproj @@ -0,0 +1,29 @@ +<Project Sdk="Microsoft.NET.Sdk"> + <PropertyGroup> + <TargetFramework>net8.0</TargetFramework> + </PropertyGroup> + + <ItemGroup> + <None Include="Test Data\**\*.*"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> + </ItemGroup> + + <ItemGroup> + <PackageReference Include="AutoFixture" /> + <PackageReference Include="AutoFixture.AutoMoq" /> + <PackageReference Include="Microsoft.NET.Test.Sdk" /> + <PackageReference Include="Moq" /> + <PackageReference Include="xunit" /> + <PackageReference Include="xunit.runner.visualstudio"> + <PrivateAssets>all</PrivateAssets> + <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> + </PackageReference> + <PackageReference Include="Xunit.SkippableFact" /> + <PackageReference Include="coverlet.collector" /> + </ItemGroup> + + <ItemGroup> + <ProjectReference Include="..\..\src\Jellyfin.LiveTv\Jellyfin.LiveTv.csproj" /> + </ItemGroup> +</Project> diff --git a/tests/Jellyfin.Server.Implementations.Tests/LiveTv/Listings/XmlTvListingsProviderTests.cs b/tests/Jellyfin.LiveTv.Tests/Listings/XmlTvListingsProviderTests.cs index 92b4178fd..0fb7894e5 100644 --- a/tests/Jellyfin.Server.Implementations.Tests/LiveTv/Listings/XmlTvListingsProviderTests.cs +++ b/tests/Jellyfin.LiveTv.Tests/Listings/XmlTvListingsProviderTests.cs @@ -6,13 +6,13 @@ using System.Threading; using System.Threading.Tasks; using AutoFixture; using AutoFixture.AutoMoq; -using Emby.Server.Implementations.LiveTv.Listings; +using Jellyfin.LiveTv.Listings; using MediaBrowser.Model.LiveTv; using Moq; using Moq.Protected; using Xunit; -namespace Jellyfin.Server.Implementations.Tests.LiveTv.Listings; +namespace Jellyfin.LiveTv.Tests.Listings; public class XmlTvListingsProviderTests { diff --git a/tests/Jellyfin.Server.Implementations.Tests/LiveTv/RecordingHelperTests.cs b/tests/Jellyfin.LiveTv.Tests/RecordingHelperTests.cs index f107b1ef9..b4960dc0b 100644 --- a/tests/Jellyfin.Server.Implementations.Tests/LiveTv/RecordingHelperTests.cs +++ b/tests/Jellyfin.LiveTv.Tests/RecordingHelperTests.cs @@ -1,9 +1,9 @@ using System; -using Emby.Server.Implementations.LiveTv.EmbyTV; +using Jellyfin.LiveTv.EmbyTV; using MediaBrowser.Controller.LiveTv; using Xunit; -namespace Jellyfin.Server.Implementations.Tests.LiveTv +namespace Jellyfin.LiveTv.Tests { public static class RecordingHelperTests { diff --git a/tests/Jellyfin.Server.Implementations.Tests/LiveTv/SchedulesDirect/SchedulesDirectDeserializeTests.cs b/tests/Jellyfin.LiveTv.Tests/SchedulesDirect/SchedulesDirectDeserializeTests.cs index d4f28f327..6975d56d9 100644 --- a/tests/Jellyfin.Server.Implementations.Tests/LiveTv/SchedulesDirect/SchedulesDirectDeserializeTests.cs +++ b/tests/Jellyfin.LiveTv.Tests/SchedulesDirect/SchedulesDirectDeserializeTests.cs @@ -2,11 +2,11 @@ using System; using System.Collections.Generic; using System.IO; using System.Text.Json; -using Emby.Server.Implementations.LiveTv.Listings.SchedulesDirectDtos; using Jellyfin.Extensions.Json; +using Jellyfin.LiveTv.Listings.SchedulesDirectDtos; using Xunit; -namespace Jellyfin.Server.Implementations.Tests.LiveTv.SchedulesDirect +namespace Jellyfin.LiveTv.Tests.SchedulesDirect { public class SchedulesDirectDeserializeTests { diff --git a/tests/Jellyfin.Server.Implementations.Tests/Test Data/LiveTv/10.10.10.100/discover.json b/tests/Jellyfin.LiveTv.Tests/Test Data/LiveTv/10.10.10.100/discover.json index a4ad4ed44..a4ad4ed44 100644 --- a/tests/Jellyfin.Server.Implementations.Tests/Test Data/LiveTv/10.10.10.100/discover.json +++ b/tests/Jellyfin.LiveTv.Tests/Test Data/LiveTv/10.10.10.100/discover.json diff --git a/tests/Jellyfin.Server.Implementations.Tests/Test Data/LiveTv/10.10.10.100/lineup.json b/tests/Jellyfin.LiveTv.Tests/Test Data/LiveTv/10.10.10.100/lineup.json index 0967ef424..0967ef424 100644 --- a/tests/Jellyfin.Server.Implementations.Tests/Test Data/LiveTv/10.10.10.100/lineup.json +++ b/tests/Jellyfin.LiveTv.Tests/Test Data/LiveTv/10.10.10.100/lineup.json diff --git a/tests/Jellyfin.Server.Implementations.Tests/Test Data/LiveTv/192.168.1.182/discover.json b/tests/Jellyfin.LiveTv.Tests/Test Data/LiveTv/192.168.1.182/discover.json index 851f17bb2..851f17bb2 100644 --- a/tests/Jellyfin.Server.Implementations.Tests/Test Data/LiveTv/192.168.1.182/discover.json +++ b/tests/Jellyfin.LiveTv.Tests/Test Data/LiveTv/192.168.1.182/discover.json diff --git a/tests/Jellyfin.Server.Implementations.Tests/Test Data/LiveTv/192.168.1.182/lineup.json b/tests/Jellyfin.LiveTv.Tests/Test Data/LiveTv/192.168.1.182/lineup.json index 4cb5ebc8e..4cb5ebc8e 100644 --- a/tests/Jellyfin.Server.Implementations.Tests/Test Data/LiveTv/192.168.1.182/lineup.json +++ b/tests/Jellyfin.LiveTv.Tests/Test Data/LiveTv/192.168.1.182/lineup.json diff --git a/tests/Jellyfin.Server.Implementations.Tests/Test Data/LiveTv/Listings/XmlTv/emptycategory.xml b/tests/Jellyfin.LiveTv.Tests/Test Data/LiveTv/Listings/XmlTv/emptycategory.xml index dd4aa8977..dd4aa8977 100644 --- a/tests/Jellyfin.Server.Implementations.Tests/Test Data/LiveTv/Listings/XmlTv/emptycategory.xml +++ b/tests/Jellyfin.LiveTv.Tests/Test Data/LiveTv/Listings/XmlTv/emptycategory.xml diff --git a/tests/Jellyfin.Server.Implementations.Tests/Test Data/LiveTv/Listings/XmlTv/notitle.xml b/tests/Jellyfin.LiveTv.Tests/Test Data/LiveTv/Listings/XmlTv/notitle.xml index 5a5be7997..5a5be7997 100644 --- a/tests/Jellyfin.Server.Implementations.Tests/Test Data/LiveTv/Listings/XmlTv/notitle.xml +++ b/tests/Jellyfin.LiveTv.Tests/Test Data/LiveTv/Listings/XmlTv/notitle.xml diff --git a/tests/Jellyfin.Server.Implementations.Tests/Test Data/SchedulesDirect/headends_response.json b/tests/Jellyfin.LiveTv.Tests/Test Data/SchedulesDirect/headends_response.json index 015afeecc..015afeecc 100644 --- a/tests/Jellyfin.Server.Implementations.Tests/Test Data/SchedulesDirect/headends_response.json +++ b/tests/Jellyfin.LiveTv.Tests/Test Data/SchedulesDirect/headends_response.json diff --git a/tests/Jellyfin.Server.Implementations.Tests/Test Data/SchedulesDirect/lineup_response.json b/tests/Jellyfin.LiveTv.Tests/Test Data/SchedulesDirect/lineup_response.json index 072089470..072089470 100644 --- a/tests/Jellyfin.Server.Implementations.Tests/Test Data/SchedulesDirect/lineup_response.json +++ b/tests/Jellyfin.LiveTv.Tests/Test Data/SchedulesDirect/lineup_response.json diff --git a/tests/Jellyfin.Server.Implementations.Tests/Test Data/SchedulesDirect/lineups_response.json b/tests/Jellyfin.LiveTv.Tests/Test Data/SchedulesDirect/lineups_response.json index 032a84e59..032a84e59 100644 --- a/tests/Jellyfin.Server.Implementations.Tests/Test Data/SchedulesDirect/lineups_response.json +++ b/tests/Jellyfin.LiveTv.Tests/Test Data/SchedulesDirect/lineups_response.json diff --git a/tests/Jellyfin.Server.Implementations.Tests/Test Data/SchedulesDirect/metadata_programs_response.json b/tests/Jellyfin.LiveTv.Tests/Test Data/SchedulesDirect/metadata_programs_response.json index 78166f09a..78166f09a 100644 --- a/tests/Jellyfin.Server.Implementations.Tests/Test Data/SchedulesDirect/metadata_programs_response.json +++ b/tests/Jellyfin.LiveTv.Tests/Test Data/SchedulesDirect/metadata_programs_response.json diff --git a/tests/Jellyfin.Server.Implementations.Tests/Test Data/SchedulesDirect/programs_response.json b/tests/Jellyfin.LiveTv.Tests/Test Data/SchedulesDirect/programs_response.json index fe2a94436..fe2a94436 100644 --- a/tests/Jellyfin.Server.Implementations.Tests/Test Data/SchedulesDirect/programs_response.json +++ b/tests/Jellyfin.LiveTv.Tests/Test Data/SchedulesDirect/programs_response.json diff --git a/tests/Jellyfin.Server.Implementations.Tests/Test Data/SchedulesDirect/schedules_request.json b/tests/Jellyfin.LiveTv.Tests/Test Data/SchedulesDirect/schedules_request.json index 5ef1bfb1c..5ef1bfb1c 100644 --- a/tests/Jellyfin.Server.Implementations.Tests/Test Data/SchedulesDirect/schedules_request.json +++ b/tests/Jellyfin.LiveTv.Tests/Test Data/SchedulesDirect/schedules_request.json diff --git a/tests/Jellyfin.Server.Implementations.Tests/Test Data/SchedulesDirect/schedules_response.json b/tests/Jellyfin.LiveTv.Tests/Test Data/SchedulesDirect/schedules_response.json index 4a97e5517..4a97e5517 100644 --- a/tests/Jellyfin.Server.Implementations.Tests/Test Data/SchedulesDirect/schedules_response.json +++ b/tests/Jellyfin.LiveTv.Tests/Test Data/SchedulesDirect/schedules_response.json diff --git a/tests/Jellyfin.Server.Implementations.Tests/Test Data/SchedulesDirect/token_live_response.json b/tests/Jellyfin.LiveTv.Tests/Test Data/SchedulesDirect/token_live_response.json index e5fb64a6f..e5fb64a6f 100644 --- a/tests/Jellyfin.Server.Implementations.Tests/Test Data/SchedulesDirect/token_live_response.json +++ b/tests/Jellyfin.LiveTv.Tests/Test Data/SchedulesDirect/token_live_response.json diff --git a/tests/Jellyfin.Server.Implementations.Tests/Test Data/SchedulesDirect/token_offline_response.json b/tests/Jellyfin.LiveTv.Tests/Test Data/SchedulesDirect/token_offline_response.json index b66a4ed0c..b66a4ed0c 100644 --- a/tests/Jellyfin.Server.Implementations.Tests/Test Data/SchedulesDirect/token_offline_response.json +++ b/tests/Jellyfin.LiveTv.Tests/Test Data/SchedulesDirect/token_offline_response.json |
