浏览代码

Add ability to remove a ChannelMapping (#12970)

* Add ability to remove a ChannelMapping

Remove a ChannelMapping by selecting the same mapping again.
This should be an intuitive way to de-select a mapping which currently requires the manual editing of a config file:
https://forum.jellyfin.org/t-how-to-unmap-livetv-channels

---------

Co-authored-by: Bond-009 <bond.009@outlook.com>
Sven Giermann 6 月之前
父节点
当前提交
2624021d67
共有 1 个文件被更改,包括 6 次插入1 次删除
  1. 6 1
      src/Jellyfin.LiveTv/Listings/ListingsManager.cs

+ 6 - 1
src/Jellyfin.LiveTv/Listings/ListingsManager.cs

@@ -230,10 +230,15 @@ public class ListingsManager : IListingsManager
         var listingsProviderInfo = config.ListingProviders
             .First(info => string.Equals(providerId, info.Id, StringComparison.OrdinalIgnoreCase));
 
+        var channelMappingExists = listingsProviderInfo.ChannelMappings
+            .Any(pair => string.Equals(pair.Name, tunerChannelNumber, StringComparison.OrdinalIgnoreCase)
+                        && string.Equals(pair.Value, providerChannelNumber, StringComparison.OrdinalIgnoreCase));
+
         listingsProviderInfo.ChannelMappings = listingsProviderInfo.ChannelMappings
             .Where(pair => !string.Equals(pair.Name, tunerChannelNumber, StringComparison.OrdinalIgnoreCase)).ToArray();
 
-        if (!string.Equals(tunerChannelNumber, providerChannelNumber, StringComparison.OrdinalIgnoreCase))
+        if (!string.Equals(tunerChannelNumber, providerChannelNumber, StringComparison.OrdinalIgnoreCase)
+            && !channelMappingExists)
         {
             var newItem = new NameValuePair
             {