diff --git a/app/config/channels.json b/app/config/channels.json index 583900e..ea5b4d7 100644 --- a/app/config/channels.json +++ b/app/config/channels.json @@ -1,35 +1,24 @@ { - "orf1.at": { - "uuid": "58a965b21f48319d1a4051476667f5e2", - "name": "ORF 1", - "icon": "\/logos\/orf1.png.svg", - "country": "", - "language": "", - "enabled": true, - "favorite": true, - "number": 1, - "group": "Unknown" - }, - "orf2.at": { - "uuid": "4c9dba34a821b5b25c8e1e2b65abc4df", - "name": "ORF 2", - "icon": "\/logos\/orf2.png.svg", - "country": "", - "language": "", - "enabled": true, - "favorite": true, - "number": 2, - "group": "Unknown" - }, "Waidwerk.de": { "uuid": "7c39fb8df69e25922a78508df7688dd7", "name": "Waidwerk", "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 3, + "number": 10, + "group": "Unknown" + }, + "NickJr.de": { + "uuid": "c0858303a1917b7fc83f82bc9176e27e", + "name": "Nick Jr.", + "icon": "", + "country": "", + "language": "", + "enabled": false, + "favorite": false, + "number": 20, "group": "Unknown" }, "SonnenKlar.de": { @@ -38,9 +27,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 4, + "number": 30, "group": "Unknown" }, "LustPur.de": { @@ -51,18 +40,7 @@ "language": "", "enabled": false, "favorite": false, - "number": 5, - "group": "Unknown" - }, - "NickJr.de": { - "uuid": "c0858303a1917b7fc83f82bc9176e27e", - "name": "Nick Jr.", - "icon": "", - "country": "", - "language": "", - "enabled": true, - "favorite": false, - "number": 6, + "number": 40, "group": "Unknown" }, "Jukebox.de": { @@ -73,7 +51,7 @@ "language": "", "enabled": false, "favorite": false, - "number": 7, + "number": 50, "group": "Unknown" }, "Kinowelt.de": { @@ -84,7 +62,7 @@ "language": "", "enabled": false, "favorite": false, - "number": 8, + "number": 60, "group": "Unknown" }, "Heimatkanal.de": { @@ -95,18 +73,7 @@ "language": "", "enabled": false, "favorite": false, - "number": 9, - "group": "Unknown" - }, - "GoldstarTV.de": { - "uuid": "4c50c28383c4b4247d12d2aef810d9ce", - "name": "Goldstar TV", - "icon": "", - "country": "", - "language": "", - "enabled": false, - "favorite": false, - "number": 10, + "number": 70, "group": "Unknown" }, "MotorVision.de": { @@ -117,7 +84,18 @@ "language": "", "enabled": false, "favorite": false, - "number": 11, + "number": 80, + "group": "Unknown" + }, + "GoldstarTV.de": { + "uuid": "4c50c28383c4b4247d12d2aef810d9ce", + "name": "Goldstar TV", + "icon": "", + "country": "", + "language": "", + "enabled": false, + "favorite": false, + "number": 90, "group": "Unknown" }, "MorethanSportsTV.de": { @@ -128,7 +106,7 @@ "language": "", "enabled": false, "favorite": false, - "number": 12, + "number": 100, "group": "Unknown" }, "Silverline.de": { @@ -139,7 +117,7 @@ "language": "", "enabled": false, "favorite": false, - "number": 13, + "number": 110, "group": "Unknown" }, "Sat1Comedy.de": { @@ -150,7 +128,7 @@ "language": "", "enabled": false, "favorite": false, - "number": 14, + "number": 120, "group": "Unknown" }, "ProSiebenFun.de": { @@ -161,7 +139,7 @@ "language": "", "enabled": false, "favorite": false, - "number": 15, + "number": 130, "group": "Unknown" }, "GuteLauneTV.de": { @@ -172,7 +150,7 @@ "language": "", "enabled": false, "favorite": false, - "number": 16, + "number": 140, "group": "Unknown" }, "QVC.de": { @@ -183,7 +161,7 @@ "language": "", "enabled": false, "favorite": false, - "number": 17, + "number": 150, "group": "Unknown" }, "CartoonNetwork.de": { @@ -194,7 +172,7 @@ "language": "", "enabled": false, "favorite": false, - "number": 18, + "number": 160, "group": "Unknown" }, "WeltDerWunder.de": { @@ -205,7 +183,7 @@ "language": "", "enabled": false, "favorite": false, - "number": 19, + "number": 170, "group": "Unknown" }, "Cartoonito.de": { @@ -216,7 +194,7 @@ "language": "", "enabled": false, "favorite": false, - "number": 20, + "number": 180, "group": "Unknown" }, "SciFi.de": { @@ -227,7 +205,7 @@ "language": "", "enabled": false, "favorite": false, - "number": 21, + "number": 190, "group": "Unknown" }, "RTLLiving.de": { @@ -238,7 +216,7 @@ "language": "", "enabled": false, "favorite": false, - "number": 22, + "number": 200, "group": "Unknown" }, "RTLCrime.de": { @@ -247,9 +225,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 23, + "number": 210, "group": "Unknown" }, "Romance.de": { @@ -260,7 +238,7 @@ "language": "", "enabled": false, "favorite": false, - "number": 24, + "number": 220, "group": "Unknown" }, "RiC.de": { @@ -271,7 +249,7 @@ "language": "", "enabled": false, "favorite": false, - "number": 25, + "number": 230, "group": "Unknown" }, "HopeChannel.de": { @@ -282,7 +260,7 @@ "language": "", "enabled": false, "favorite": false, - "number": 26, + "number": 240, "group": "Unknown" }, "13thStreet.de": { @@ -291,9 +269,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 27, + "number": 250, "group": "Unknown" }, "MarcoPoloTV.de": { @@ -304,73 +282,7 @@ "language": "", "enabled": false, "favorite": false, - "number": 28, - "group": "Unknown" - }, - "FolxTV.de": { - "uuid": "abadddc0d1187015d8a5fcc81347ff73", - "name": "Folx.TV", - "icon": "", - "country": "", - "language": "", - "enabled": false, - "favorite": false, - "number": 29, - "group": "Unknown" - }, - "MelodieTV.at": { - "uuid": "0cf3bc1da3bc797da85b76d89f77ad36", - "name": "Melodie TV", - "icon": "", - "country": "", - "language": "", - "enabled": false, - "favorite": false, - "number": 30, - "group": "Unknown" - }, - "GEO.de": { - "uuid": "e8bb524597bb77e601ab62181e56b585", - "name": "GEO", - "icon": "", - "country": "", - "language": "", - "enabled": false, - "favorite": false, - "number": 31, - "group": "Unknown" - }, - "TeleclubZoom.de": { - "uuid": "9a39880a3ae50b8a7c61ffc1151726b8", - "name": "Teleclub Zoom D", - "icon": "", - "country": "", - "language": "", - "enabled": false, - "favorite": false, - "number": 32, - "group": "Unknown" - }, - "Universal.de": { - "uuid": "67652bba6c03b1cb8070efba8cc4d636", - "name": "Universal Channel", - "icon": "", - "country": "", - "language": "", - "enabled": false, - "favorite": false, - "number": 33, - "group": "Unknown" - }, - "StingrayDJAZZ.de": { - "uuid": "14632348cb1a6d0634edf3e3b2b1e15a", - "name": "Stingray DJAZZ", - "icon": "", - "country": "", - "language": "", - "enabled": false, - "favorite": false, - "number": 34, + "number": 260, "group": "Unknown" }, "Doxx.de": { @@ -381,7 +293,73 @@ "language": "", "enabled": false, "favorite": false, - "number": 35, + "number": 270, + "group": "Unknown" + }, + "FolxTV.de": { + "uuid": "abadddc0d1187015d8a5fcc81347ff73", + "name": "Folx.TV", + "icon": "", + "country": "", + "language": "", + "enabled": false, + "favorite": false, + "number": 280, + "group": "Unknown" + }, + "MelodieTV.at": { + "uuid": "0cf3bc1da3bc797da85b76d89f77ad36", + "name": "Melodie TV", + "icon": "", + "country": "", + "language": "", + "enabled": false, + "favorite": false, + "number": 290, + "group": "Unknown" + }, + "GEO.de": { + "uuid": "e8bb524597bb77e601ab62181e56b585", + "name": "GEO", + "icon": "", + "country": "", + "language": "", + "enabled": false, + "favorite": false, + "number": 300, + "group": "Unknown" + }, + "TeleclubZoom.de": { + "uuid": "9a39880a3ae50b8a7c61ffc1151726b8", + "name": "Teleclub Zoom D", + "icon": "", + "country": "", + "language": "", + "enabled": false, + "favorite": false, + "number": 310, + "group": "Unknown" + }, + "Universal.de": { + "uuid": "67652bba6c03b1cb8070efba8cc4d636", + "name": "Universal Channel", + "icon": "", + "country": "", + "language": "", + "enabled": false, + "favorite": false, + "number": 320, + "group": "Unknown" + }, + "StingrayDJAZZ.de": { + "uuid": "14632348cb1a6d0634edf3e3b2b1e15a", + "name": "Stingray DJAZZ", + "icon": "", + "country": "", + "language": "", + "enabled": false, + "favorite": false, + "number": 330, "group": "Unknown" }, "CuriosityChannel.de": { @@ -392,7 +370,7 @@ "language": "", "enabled": false, "favorite": false, - "number": 36, + "number": 340, "group": "Unknown" }, "SpiegelGeschichte.de": { @@ -403,7 +381,7 @@ "language": "", "enabled": false, "favorite": false, - "number": 37, + "number": 350, "group": "Unknown" }, "AXNBlack.de": { @@ -414,7 +392,7 @@ "language": "", "enabled": false, "favorite": false, - "number": 38, + "number": 360, "group": "Unknown" }, "RTLPassion.de": { @@ -425,7 +403,7 @@ "language": "", "enabled": false, "favorite": false, - "number": 39, + "number": 370, "group": "Unknown" }, "NatGeoWild.de": { @@ -436,7 +414,7 @@ "language": "", "enabled": false, "favorite": false, - "number": 40, + "number": 380, "group": "Unknown" }, "NatGeoHD.de": { @@ -447,7 +425,7 @@ "language": "", "enabled": false, "favorite": false, - "number": 41, + "number": 390, "group": "Unknown" }, "KTV.de": { @@ -458,7 +436,7 @@ "language": "", "enabled": false, "favorite": false, - "number": 42, + "number": 400, "group": "Unknown" }, "Dokusat.de": { @@ -469,7 +447,7 @@ "language": "", "enabled": false, "favorite": false, - "number": 43, + "number": 410, "group": "Unknown" }, "HSE24.de": { @@ -480,7 +458,7 @@ "language": "", "enabled": false, "favorite": false, - "number": 44, + "number": 420, "group": "Unknown" }, "StimmungsgartenTV.at": { @@ -491,7 +469,7 @@ "language": "", "enabled": false, "favorite": false, - "number": 45, + "number": 430, "group": "Unknown" }, "OneTerra.de": { @@ -502,7 +480,7 @@ "language": "", "enabled": false, "favorite": false, - "number": 46, + "number": 440, "group": "Unknown" }, "JustCooking.de": { @@ -513,7 +491,7 @@ "language": "", "enabled": false, "favorite": false, - "number": 47, + "number": 450, "group": "Unknown" }, "CrimeTime.de": { @@ -524,7 +502,7 @@ "language": "", "enabled": false, "favorite": false, - "number": 48, + "number": 460, "group": "Unknown" }, "XPLORE.de": { @@ -535,7 +513,7 @@ "language": "", "enabled": false, "favorite": false, - "number": 49, + "number": 470, "group": "Unknown" }, "HistoryChannel.de": { @@ -544,9 +522,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 50, + "number": 480, "group": "Unknown" }, "AnimalPlanet.de": { @@ -557,7 +535,7 @@ "language": "", "enabled": false, "favorite": false, - "number": 51, + "number": 490, "group": "Unknown" }, "SchlagerparadiesTV.de": { @@ -568,7 +546,7 @@ "language": "", "enabled": false, "favorite": false, - "number": 52, + "number": 500, "group": "Unknown" }, "SkyNature.de": { @@ -579,7 +557,7 @@ "language": "", "enabled": false, "favorite": false, - "number": 53, + "number": 510, "group": "Unknown" }, "SkyDocumentaries.de": { @@ -590,7 +568,7 @@ "language": "", "enabled": false, "favorite": false, - "number": 54, + "number": 520, "group": "Unknown" }, "Sky1.de": { @@ -601,7 +579,7 @@ "language": "", "enabled": false, "favorite": false, - "number": 55, + "number": 530, "group": "Unknown" }, "FixFoxi.de": { @@ -612,7 +590,7 @@ "language": "", "enabled": false, "favorite": false, - "number": 56, + "number": 540, "group": "Unknown" }, "ZweiMusicTelevision.de": { @@ -623,7 +601,7 @@ "language": "", "enabled": false, "favorite": false, - "number": 57, + "number": 550, "group": "Unknown" }, "OneMusicTelevision.de": { @@ -634,7 +612,7 @@ "language": "", "enabled": false, "favorite": false, - "number": 58, + "number": 560, "group": "Unknown" }, "Volksmusik.TV.de": { @@ -645,7 +623,7 @@ "language": "", "enabled": false, "favorite": false, - "number": 59, + "number": 570, "group": "Unknown" }, "AutoMotorSport.de": { @@ -656,7 +634,7 @@ "language": "", "enabled": false, "favorite": false, - "number": 60, + "number": 580, "group": "Unknown" }, "Nicktoons.de": { @@ -667,7 +645,7 @@ "language": "", "enabled": false, "favorite": false, - "number": 61, + "number": 590, "group": "Unknown" }, "BonGusto.de": { @@ -678,7 +656,7 @@ "language": "", "enabled": false, "favorite": false, - "number": 62, + "number": 600, "group": "Unknown" }, "sportdigital.de": { @@ -689,7 +667,7 @@ "language": "", "enabled": false, "favorite": false, - "number": 63, + "number": 610, "group": "Unknown" }, "eSports1.de": { @@ -700,7 +678,7 @@ "language": "", "enabled": false, "favorite": false, - "number": 64, + "number": 620, "group": "Unknown" }, "DMAX.ch": { @@ -711,7 +689,7 @@ "language": "", "enabled": false, "favorite": false, - "number": 65, + "number": 630, "group": "Unknown" }, "CrimeInvestigation.de": { @@ -722,7 +700,7 @@ "language": "", "enabled": false, "favorite": false, - "number": 66, + "number": 640, "group": "Unknown" }, "DiscoveryChannel.de": { @@ -731,9 +709,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 67, + "number": 650, "group": "Unknown" }, "AXNWhite.de": { @@ -744,7 +722,7 @@ "language": "", "enabled": false, "favorite": false, - "number": 68, + "number": 660, "group": "Unknown" }, "TraceSportStars.de": { @@ -755,7 +733,7 @@ "language": "", "enabled": false, "favorite": false, - "number": 69, + "number": 670, "group": "Unknown" }, "SPIEGEL_TV_Konflikt.de": { @@ -766,7 +744,7 @@ "language": "", "enabled": false, "favorite": false, - "number": 70, + "number": 680, "group": "Unknown" }, "TopTrueCrime.de": { @@ -777,7 +755,7 @@ "language": "", "enabled": false, "favorite": false, - "number": 71, + "number": 690, "group": "Unknown" }, "StarkeFrauen.de": { @@ -788,7 +766,7 @@ "language": "", "enabled": false, "favorite": false, - "number": 72, + "number": 700, "group": "Unknown" }, "HSETrend.de": { @@ -799,7 +777,7 @@ "language": "", "enabled": false, "favorite": false, - "number": 73, + "number": 710, "group": "Unknown" }, "JuweloTV.de": { @@ -810,7 +788,7 @@ "language": "", "enabled": false, "favorite": false, - "number": 74, + "number": 720, "group": "Unknown" }, "QwestTV.de": { @@ -821,7 +799,7 @@ "language": "", "enabled": false, "favorite": false, - "number": 75, + "number": 730, "group": "Unknown" }, "Tierwelt.de": { @@ -832,7 +810,7 @@ "language": "", "enabled": false, "favorite": false, - "number": 76, + "number": 740, "group": "Unknown" }, "JustFishing.de": { @@ -843,7 +821,7 @@ "language": "", "enabled": false, "favorite": false, - "number": 77, + "number": 750, "group": "Unknown" }, "Bronco.de": { @@ -854,7 +832,7 @@ "language": "", "enabled": false, "favorite": false, - "number": 78, + "number": 760, "group": "Unknown" }, "Hohenrausch.de": { @@ -865,7 +843,7 @@ "language": "", "enabled": false, "favorite": false, - "number": 79, + "number": 770, "group": "Unknown" }, "Rockland.de": { @@ -876,7 +854,7 @@ "language": "", "enabled": false, "favorite": false, - "number": 80, + "number": 780, "group": "Unknown" }, "DuckTV.day": { @@ -887,7 +865,7 @@ "language": "", "enabled": false, "favorite": false, - "number": 81, + "number": 790, "group": "Unknown" }, "EWTN.de": { @@ -898,7 +876,7 @@ "language": "", "enabled": false, "favorite": false, - "number": 82, + "number": 800, "group": "Unknown" }, "DeluxeLounge.de": { @@ -909,7 +887,7 @@ "language": "", "enabled": false, "favorite": false, - "number": 83, + "number": 810, "group": "Unknown" }, "DeluxeRock.de": { @@ -920,7 +898,7 @@ "language": "", "enabled": false, "favorite": false, - "number": 84, + "number": 820, "group": "Unknown" }, "DeluxeDance.de": { @@ -931,7 +909,7 @@ "language": "", "enabled": false, "favorite": false, - "number": 85, + "number": 830, "group": "Unknown" }, "DeluxeFlashback.de": { @@ -942,7 +920,7 @@ "language": "", "enabled": false, "favorite": false, - "number": 86, + "number": 840, "group": "Unknown" }, "DeluxeRap.de": { @@ -953,7 +931,7 @@ "language": "", "enabled": false, "favorite": false, - "number": 87, + "number": 850, "group": "Unknown" }, "CANAL+Golf.at": { @@ -962,9 +940,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 88, + "number": 860, "group": "Unknown" }, "ORF2europe.at": { @@ -975,7 +953,7 @@ "language": "", "enabled": true, "favorite": false, - "number": 89, + "number": 870, "group": "Unknown" }, "krone.tv.at": { @@ -984,9 +962,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 90, + "number": 880, "group": "Unknown" }, "Golf-live.at": { @@ -995,9 +973,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 91, + "number": 890, "group": "Unknown" }, "KURIER_TV.at": { @@ -1006,9 +984,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 92, + "number": 900, "group": "Unknown" }, "Tele5.at": { @@ -1017,9 +995,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 93, + "number": 910, "group": "Unknown" }, "SixxAustria.at": { @@ -1028,9 +1006,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 94, + "number": 920, "group": "Unknown" }, "ServusTV.at": { @@ -1039,9 +1017,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 95, + "number": 930, "group": "Unknown" }, "Sat1.at": { @@ -1050,9 +1028,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 96, + "number": 940, "group": "Unknown" }, "Puls4.at": { @@ -1061,9 +1039,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 97, + "number": 950, "group": "Unknown" }, "Pro7.at": { @@ -1072,9 +1050,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 98, + "number": 960, "group": "Unknown" }, "ORF3.at": { @@ -1085,7 +1063,7 @@ "language": "", "enabled": true, "favorite": false, - "number": 99, + "number": 970, "group": "Unknown" }, "ORF2.at": { @@ -1096,7 +1074,7 @@ "language": "", "enabled": true, "favorite": false, - "number": 100, + "number": 980, "group": "Unknown" }, "ORF1.at": { @@ -1107,7 +1085,7 @@ "language": "", "enabled": true, "favorite": false, - "number": 101, + "number": 990, "group": "Unknown" }, "OE24TV.at": { @@ -1116,9 +1094,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 102, + "number": 1000, "group": "Unknown" }, "Nickelodeon.at": { @@ -1127,9 +1105,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 103, + "number": 1010, "group": "Unknown" }, "ATV2.at": { @@ -1138,9 +1116,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 104, + "number": 1020, "group": "Unknown" }, "ATV.de": { @@ -1149,9 +1127,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 105, + "number": 1030, "group": "Unknown" }, "ORFSport.at": { @@ -1162,7 +1140,7 @@ "language": "", "enabled": true, "favorite": false, - "number": 106, + "number": 1040, "group": "Unknown" }, "ORFKids.at": { @@ -1173,7 +1151,7 @@ "language": "", "enabled": true, "favorite": false, - "number": 107, + "number": 1050, "group": "Unknown" }, "R9Osterreich.at": { @@ -1182,9 +1160,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 108, + "number": 1060, "group": "Unknown" }, "ARCADIAWorld.at": { @@ -1193,9 +1171,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 109, + "number": 1070, "group": "Unknown" }, "SchauTV.at": { @@ -1204,9 +1182,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 110, + "number": 1080, "group": "Unknown" }, "TirolTV.at": { @@ -1215,9 +1193,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 111, + "number": 1090, "group": "Unknown" }, "Puls24.at": { @@ -1226,9 +1204,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 112, + "number": 1100, "group": "Unknown" }, "OKTO.at": { @@ -1237,9 +1215,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 113, + "number": 1110, "group": "Unknown" }, "LT1.at": { @@ -1248,9 +1226,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 114, + "number": 1120, "group": "Unknown" }, "LandleTV.at": { @@ -1259,9 +1237,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 115, + "number": 1130, "group": "Unknown" }, "Kabel1.at": { @@ -1270,9 +1248,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 116, + "number": 1140, "group": "Unknown" }, "Eurosport1.at": { @@ -1281,9 +1259,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 117, + "number": 1150, "group": "Unknown" }, "HitradioOE3.at": { @@ -1292,9 +1270,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 118, + "number": 1160, "group": "Unknown" }, "KroneHit.at": { @@ -1303,9 +1281,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 119, + "number": 1170, "group": "Unknown" }, "Laola1.at": { @@ -1314,9 +1292,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 120, + "number": 1180, "group": "Unknown" }, "W24.at": { @@ -1325,9 +1303,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 121, + "number": 1190, "group": "Unknown" }, "exxpresstv.at": { @@ -1336,9 +1314,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 122, + "number": 1200, "group": "Unknown" }, "C+Action.at": { @@ -1347,9 +1325,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 123, + "number": 1210, "group": "Unknown" }, "SkySportTopEvent.de": { @@ -1358,9 +1336,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 124, + "number": 1220, "group": "Unknown" }, "SkySportTennis.de": { @@ -1369,9 +1347,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 125, + "number": 1230, "group": "Unknown" }, "SkySportPremierLeague.de": { @@ -1380,9 +1358,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 126, + "number": 1240, "group": "Unknown" }, "SkySportMix.de": { @@ -1391,9 +1369,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 127, + "number": 1250, "group": "Unknown" }, "SkyShowcase.de": { @@ -1402,9 +1380,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 128, + "number": 1260, "group": "Unknown" }, "SkySportGolf.de": { @@ -1413,9 +1391,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 129, + "number": 1270, "group": "Unknown" }, "SkySportF1.de": { @@ -1424,9 +1402,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 130, + "number": 1280, "group": "Unknown" }, "SkyCinemaHighlights.de": { @@ -1435,9 +1413,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 131, + "number": 1290, "group": "Unknown" }, "SkyCinemaFamily.de": { @@ -1446,9 +1424,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 132, + "number": 1300, "group": "Unknown" }, "SkyAtlanticHD.de": { @@ -1457,9 +1435,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 133, + "number": 1310, "group": "Unknown" }, "SkyCinemaClassics.de": { @@ -1468,9 +1446,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 134, + "number": 1320, "group": "Unknown" }, "SkyKrimi.de": { @@ -1479,9 +1457,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 135, + "number": 1330, "group": "Unknown" }, "SkyCrime.de": { @@ -1490,9 +1468,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 136, + "number": 1340, "group": "Unknown" }, "SkyAction.de": { @@ -1501,9 +1479,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 137, + "number": 1350, "group": "Unknown" }, "Sat1Emotions.de": { @@ -1512,9 +1490,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 138, + "number": 1360, "group": "Unknown" }, "SPORT1plus.de": { @@ -1523,9 +1501,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 139, + "number": 1370, "group": "Unknown" }, "NowUS.de": { @@ -1534,9 +1512,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 140, + "number": 1380, "group": "Unknown" }, "SkyCinemaPremieren.de": { @@ -1545,9 +1523,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 141, + "number": 1390, "group": "Unknown" }, "SkySportBundesliga.de": { @@ -1556,9 +1534,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 142, + "number": 1400, "group": "Unknown" }, "Prime.de": { @@ -1567,9 +1545,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 143, + "number": 1410, "group": "Unknown" }, "SkySportAustria.de": { @@ -1578,9 +1556,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 144, + "number": 1420, "group": "Unknown" }, "DAZN2.de": { @@ -1589,9 +1567,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 145, + "number": 1430, "group": "Unknown" }, "DAZN1.de": { @@ -1600,9 +1578,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 146, + "number": 1440, "group": "Unknown" }, "WarnerTVSerie.de": { @@ -1611,9 +1589,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 147, + "number": 1450, "group": "Unknown" }, "WarnerTVComedy.de": { @@ -1622,9 +1600,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 148, + "number": 1460, "group": "Unknown" }, "WarnerTVFilm.de": { @@ -1633,9 +1611,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 149, + "number": 1470, "group": "Unknown" }, "blueSport1Live.ch": { @@ -1644,9 +1622,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 150, + "number": 1480, "group": "Unknown" }, "blueStars.ch": { @@ -1655,9 +1633,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 151, + "number": 1490, "group": "Unknown" }, "blueSport7Live.ch": { @@ -1666,9 +1644,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 152, + "number": 1500, "group": "Unknown" }, "blueSport6Live.ch": { @@ -1677,9 +1655,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 153, + "number": 1510, "group": "Unknown" }, "blueSport5Live.ch": { @@ -1688,9 +1666,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 154, + "number": 1520, "group": "Unknown" }, "blueSport4Live.ch": { @@ -1699,9 +1677,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 155, + "number": 1530, "group": "Unknown" }, "blueSport3Live.ch": { @@ -1710,9 +1688,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 156, + "number": 1540, "group": "Unknown" }, "blueSport2Live.ch": { @@ -1721,9 +1699,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 157, + "number": 1550, "group": "Unknown" }, "blueSport25Live.ch": { @@ -1732,9 +1710,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 158, + "number": 1560, "group": "Unknown" }, "blueSport24Live.ch": { @@ -1743,9 +1721,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 159, + "number": 1570, "group": "Unknown" }, "blueSport23Live.ch": { @@ -1754,9 +1732,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 160, + "number": 1580, "group": "Unknown" }, "blueSport22Live.ch": { @@ -1765,9 +1743,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 161, + "number": 1590, "group": "Unknown" }, "blueSport21Live.ch": { @@ -1776,9 +1754,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 162, + "number": 1600, "group": "Unknown" }, "blueSport20Live.ch": { @@ -1787,9 +1765,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 163, + "number": 1610, "group": "Unknown" }, "blueSport19Live.ch": { @@ -1798,9 +1776,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 164, + "number": 1620, "group": "Unknown" }, "blueSport18Live.ch": { @@ -1809,9 +1787,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 165, + "number": 1630, "group": "Unknown" }, "blueSport2.ch": { @@ -1820,9 +1798,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 166, + "number": 1640, "group": "Unknown" }, "blueSport17Live.ch": { @@ -1831,9 +1809,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 167, + "number": 1650, "group": "Unknown" }, "blueSport16Live.ch": { @@ -1842,9 +1820,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 168, + "number": 1660, "group": "Unknown" }, "blueSport15Live.ch": { @@ -1853,9 +1831,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 169, + "number": 1670, "group": "Unknown" }, "blueSport14Live.ch": { @@ -1864,9 +1842,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 170, + "number": 1680, "group": "Unknown" }, "blueSport13Live.ch": { @@ -1875,9 +1853,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 171, + "number": 1690, "group": "Unknown" }, "blueSport12Live.ch": { @@ -1886,9 +1864,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 172, + "number": 1700, "group": "Unknown" }, "blueSport11Live.ch": { @@ -1897,9 +1875,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 173, + "number": 1710, "group": "Unknown" }, "blueSport10Live.ch": { @@ -1908,9 +1886,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 174, + "number": 1720, "group": "Unknown" }, "blueSport9Live.ch": { @@ -1919,9 +1897,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 175, + "number": 1730, "group": "Unknown" }, "blueSport8Live.ch": { @@ -1930,9 +1908,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 176, + "number": 1740, "group": "Unknown" }, "blueSport1.ch": { @@ -1941,9 +1919,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 177, + "number": 1750, "group": "Unknown" }, "MySports10D.ch": { @@ -1952,9 +1930,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 178, + "number": 1760, "group": "Unknown" }, "MYSPORTS9D.ch": { @@ -1963,9 +1941,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 179, + "number": 1770, "group": "Unknown" }, "MYSPORTS8D.ch": { @@ -1974,9 +1952,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 180, + "number": 1780, "group": "Unknown" }, "MYSPORTS7D.ch": { @@ -1985,9 +1963,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 181, + "number": 1790, "group": "Unknown" }, "MYSPORTS6D.ch": { @@ -1996,9 +1974,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 182, + "number": 1800, "group": "Unknown" }, "MYSPORTS5D.ch": { @@ -2007,9 +1985,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 183, + "number": 1810, "group": "Unknown" }, "MYSPORTS4D.ch": { @@ -2018,9 +1996,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 184, + "number": 1820, "group": "Unknown" }, "MYSPORTS3D.ch": { @@ -2029,9 +2007,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 185, + "number": 1830, "group": "Unknown" }, "MYSPORTS2D.ch": { @@ -2040,9 +2018,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 186, + "number": 1840, "group": "Unknown" }, "MYSPORTSD.ch": { @@ -2051,9 +2029,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 187, + "number": 1850, "group": "Unknown" }, "MYSPORTS1D.ch": { @@ -2062,9 +2040,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 188, + "number": 1860, "group": "Unknown" }, "WedoMovies.de": { @@ -2073,9 +2051,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 189, + "number": 1870, "group": "Unknown" }, "SportdigitalFussball2.de": { @@ -2084,9 +2062,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 190, + "number": 1880, "group": "Unknown" }, "SportdigitalFussball.de": { @@ -2095,9 +2073,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 191, + "number": 1890, "group": "Unknown" }, "Sportdigitalscooore.de": { @@ -2106,9 +2084,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 192, + "number": 1900, "group": "Unknown" }, "EdgeSport.de": { @@ -2117,9 +2095,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 193, + "number": 1910, "group": "Unknown" }, "SkySport2.de": { @@ -2128,9 +2106,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 194, + "number": 1920, "group": "Unknown" }, "SkySport1.de": { @@ -2139,9 +2117,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 195, + "number": 1930, "group": "Unknown" }, "SkyBundesliga1.de": { @@ -2150,9 +2128,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 196, + "number": 1940, "group": "Unknown" }, "SkyBundesliga10.de": { @@ -2161,9 +2139,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 197, + "number": 1950, "group": "Unknown" }, "SkyBundesliga9.de": { @@ -2172,9 +2150,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 198, + "number": 1960, "group": "Unknown" }, "SkyBundesliga8.de": { @@ -2183,9 +2161,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 199, + "number": 1970, "group": "Unknown" }, "SkyBundesliga7.de": { @@ -2194,9 +2172,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 200, + "number": 1980, "group": "Unknown" }, "SkyBundesliga6.de": { @@ -2205,9 +2183,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 201, + "number": 1990, "group": "Unknown" }, "SkyBundesliga5.de": { @@ -2216,9 +2194,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 202, + "number": 2000, "group": "Unknown" }, "SkyBundesliga4.de": { @@ -2227,9 +2205,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 203, + "number": 2010, "group": "Unknown" }, "SkyBundesliga3.de": { @@ -2238,9 +2216,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 204, + "number": 2020, "group": "Unknown" }, "SkyBundesliga2.de": { @@ -2249,9 +2227,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 205, + "number": 2030, "group": "Unknown" }, "SkySportBundesligaUHD.de": { @@ -2260,9 +2238,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 206, + "number": 2040, "group": "Unknown" }, "SkySportUHD.de": { @@ -2271,9 +2249,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 207, + "number": 2050, "group": "Unknown" }, "DFB.TV.de": { @@ -2282,9 +2260,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 208, + "number": 2060, "group": "Unknown" }, "SkySport10.de": { @@ -2293,9 +2271,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 209, + "number": 2070, "group": "Unknown" }, "SkySport9.de": { @@ -2304,9 +2282,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 210, + "number": 2080, "group": "Unknown" }, "SkySport8.de": { @@ -2315,9 +2293,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 211, + "number": 2090, "group": "Unknown" }, "SkySport7.de": { @@ -2326,9 +2304,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 212, + "number": 2100, "group": "Unknown" }, "SkySport6.de": { @@ -2337,9 +2315,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 213, + "number": 2110, "group": "Unknown" }, "SkySport5.de": { @@ -2348,9 +2326,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 214, + "number": 2120, "group": "Unknown" }, "SkySport4.de": { @@ -2359,9 +2337,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 215, + "number": 2130, "group": "Unknown" }, "SkySport3.de": { @@ -2370,9 +2348,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 216, + "number": 2140, "group": "Unknown" }, "ClipMyHorseTV.de": { @@ -2381,9 +2359,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 217, + "number": 2150, "group": "Unknown" }, "SkyCinemaPremieren+1.de": { @@ -2392,9 +2370,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 218, + "number": 2160, "group": "Unknown" }, "SkyAtlanticPlus1.de": { @@ -2403,9 +2381,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 219, + "number": 2170, "group": "Unknown" }, "FUSSBALL.TV1.de": { @@ -2414,9 +2392,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 220, + "number": 2180, "group": "Unknown" }, "FUSSBALL.TV2.de": { @@ -2425,9 +2403,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 221, + "number": 2190, "group": "Unknown" }, "FUSSBALL.TV3.de": { @@ -2436,9 +2414,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 222, + "number": 2200, "group": "Unknown" }, "MS_Golf_1.de": { @@ -2447,9 +2425,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 223, + "number": 2210, "group": "Unknown" }, "Thriller.de": { @@ -2458,9 +2436,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 224, + "number": 2220, "group": "Unknown" }, "SpiegelTVKonflikte.de": { @@ -2469,9 +2447,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 225, + "number": 2230, "group": "Unknown" }, "RomantischeFilme.de": { @@ -2480,9 +2458,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 226, + "number": 2240, "group": "Unknown" }, "Netzkino.de": { @@ -2491,9 +2469,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 227, + "number": 2250, "group": "Unknown" }, "MyTimeMovieNetwork.de": { @@ -2502,9 +2480,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 228, + "number": 2260, "group": "Unknown" }, "Grjngo.de": { @@ -2513,9 +2491,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 229, + "number": 2270, "group": "Unknown" }, "FilmRiseSerien.de": { @@ -2524,9 +2502,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 230, + "number": 2280, "group": "Unknown" }, "FilmRiseBingeWatch.de": { @@ -2535,9 +2513,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 231, + "number": 2290, "group": "Unknown" }, "FilmGold.de": { @@ -2546,9 +2524,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 232, + "number": 2300, "group": "Unknown" }, "Fantasja.de": { @@ -2557,9 +2535,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 233, + "number": 2310, "group": "Unknown" }, "Fabella.de": { @@ -2568,9 +2546,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 234, + "number": 2320, "group": "Unknown" }, "DeutschesKino.de": { @@ -2579,9 +2557,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 235, + "number": 2330, "group": "Unknown" }, "DEFA_TV.de": { @@ -2590,9 +2568,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 236, + "number": 2340, "group": "Unknown" }, "DDR_TV-Archiv.de": { @@ -2601,9 +2579,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 237, + "number": 2350, "group": "Unknown" }, "CrimeSerien.de": { @@ -2612,9 +2590,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 238, + "number": 2360, "group": "Unknown" }, "Artflix.de": { @@ -2623,9 +2601,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 239, + "number": 2370, "group": "Unknown" }, "Komodien.de": { @@ -2634,9 +2612,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 240, + "number": 2380, "group": "Unknown" }, "Actionfilme.de": { @@ -2645,9 +2623,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 241, + "number": 2390, "group": "Unknown" }, "DramaFilme.de": { @@ -2656,9 +2634,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 242, + "number": 2400, "group": "Unknown" }, "TopFilme.de": { @@ -2667,9 +2645,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 243, + "number": 2410, "group": "Unknown" }, "Amasia.de": { @@ -2678,9 +2656,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 244, + "number": 2420, "group": "Unknown" }, "RedBullTV.de": { @@ -2689,9 +2667,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 245, + "number": 2430, "group": "Unknown" }, "ServusTVMotorsport.de": { @@ -2700,9 +2678,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 246, + "number": 2440, "group": "Unknown" }, "MS_Golf_2.de": { @@ -2711,9 +2689,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 247, + "number": 2450, "group": "Unknown" }, "Weihnachtskino.ch": { @@ -2722,9 +2700,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 248, + "number": 2460, "group": "Unknown" }, "DAZNRise.de": { @@ -2733,9 +2711,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 249, + "number": 2470, "group": "Unknown" }, "DAZNFast.de": { @@ -2744,9 +2722,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 250, + "number": 2480, "group": "Unknown" }, "Sport Digital": { @@ -2755,9 +2733,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 251, + "number": 2490, "group": "Unknown" }, "blueSport4LiveUHD.ch": { @@ -2766,9 +2744,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 252, + "number": 2500, "group": "Unknown" }, "blueSport3LiveUHD.ch": { @@ -2777,9 +2755,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 253, + "number": 2510, "group": "Unknown" }, "blueSport2LiveUHD.ch": { @@ -2788,9 +2766,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 254, + "number": 2520, "group": "Unknown" }, "blueSport1LiveUHD.ch": { @@ -2799,9 +2777,9 @@ "icon": "", "country": "", "language": "", - "enabled": true, + "enabled": false, "favorite": false, - "number": 255, + "number": 2530, "group": "Unknown" } } \ No newline at end of file diff --git a/app/public/assets/css/main.css b/app/public/assets/css/main.css index 017828e..370c627 100644 --- a/app/public/assets/css/main.css +++ b/app/public/assets/css/main.css @@ -7,3 +7,96 @@ @import url("./timeline.css"); @import url("./modal.css"); @import url("./search.css"); + +.channels-sticky-header { + position: sticky; + top: 0; + z-index: 20; + background: var(--bg); + padding-top: 0.75rem; + padding-bottom: 0.75rem; +} + +.channel-toolbar { + position: sticky; + top: 5.5rem; + z-index: 19; + display: flex; + flex-wrap: wrap; + gap: 0.75rem; + align-items: center; + background: var(--bg); + padding: 0.75rem 0; +} + +.channel-toolbar input[type="search"] { + min-width: 260px; + flex: 1; +} + +.channel-filter-buttons, +.channel-actions { + display: flex; + flex-wrap: wrap; + gap: 0.5rem; +} + +.channel-filter-buttons button.active { + background: var(--accent); + color: white; +} + +.channel-count { + margin: 0.75rem 0 1rem; + color: var(--muted); +} + +.channel-settings-card.is-changed { + border-color: var(--accent); + box-shadow: 0 0 0 1px var(--accent-soft); +} + +.number-input.has-duplicate { + border-color: #ef4444; + background: rgba(239, 68, 68, 0.12); +} + +.duplicate-warning { + margin-left: 1rem; + color: #f87171; + font-weight: 700; +} + +@media (max-width: 800px) { + .channels-sticky-header, + .channel-toolbar { + position: static; + } +} + +.drag-handle { + cursor: grab; + color: var(--muted); + font-size: 1.2rem; + padding-right: 0.75rem; + user-select: none; +} + +.channel-settings-main { + display: flex; + align-items: center; + gap: 0.5rem; +} + +.channel-settings-card.is-dragging { + opacity: 0.45; + border-color: var(--accent); +} + +.drag-handle { + cursor: grab; +} + +.drag-handle:active { + cursor: grabbing; +} diff --git a/app/src/Controllers/HomeController.php b/app/src/Controllers/HomeController.php index 33d09f7..a516b37 100644 --- a/app/src/Controllers/HomeController.php +++ b/app/src/Controllers/HomeController.php @@ -70,7 +70,7 @@ class HomeController 'programmes' => $programmes, 'contentTemplate' => $contentTemplate, 'view' => $view, - 'channelConfig' => $this->config->getChannels(), + 'channelConfig' => $this->channelService->getSortedChannels($this->config), 'saved' => isset($get['saved']), 'currentProgrammes' => $currentProgrammes, 'selectedDate' => $selectedDate, diff --git a/app/src/Services/ChannelService.php b/app/src/Services/ChannelService.php index 3512fd0..6478337 100644 --- a/app/src/Services/ChannelService.php +++ b/app/src/Services/ChannelService.php @@ -4,34 +4,8 @@ class ChannelService { public function synchronizeChannels(array $cachedChannels, Config $config): void { - $storedChannels = $config->getChannels(); - - $maxNumber = 0; - foreach ($storedChannels as $stored) { - $maxNumber = max($maxNumber, (int)($stored['number'] ?? 0)); - } - - foreach ($cachedChannels as $id => $channel) { - if (!isset($storedChannels[$id])) { - $maxNumber++; - - $storedChannels[$id] = [ - 'uuid' => bin2hex(random_bytes(16)), - 'name' => $channel['name'] ?? $id, - 'icon' => $channel['icon'] ?? '', - 'country' => '', - 'language' => '', - 'enabled' => true, - 'favorite' => false, - 'number' => $maxNumber, - 'group' => 'Unknown', - ]; - } else { - $storedChannels[$id]['name'] = $channel['name'] ?? $storedChannels[$id]['name']; - } - } - - $config->saveChannels($this->sortChannels($storedChannels)); + // Alt-Methode bleibt absichtlich harmlos. + // Neue Sender werden jetzt vom SenderSyncService im XmlTvCacheService ergänzt. } public function saveChannelsFromPost(Config $config, array $post): void @@ -48,12 +22,26 @@ class ChannelService unset($channel); $config->saveChannels($this->sortChannels($savedChannels)); + + @unlink('/var/www/cache/guide.json'); + @unlink('/var/www/cache/guide.version'); + } + + public function getSortedChannels(Config $config): array + { + return $this->sortChannels($config->getChannels()); } private function sortChannels(array $channels): array { uasort($channels, function ($a, $b) { - return ((int)($a['number'] ?? 999999)) <=> ((int)($b['number'] ?? 999999)); + return [ + (int)($a['number'] ?? 999999), + strtolower($a['name'] ?? '') + ] <=> [ + (int)($b['number'] ?? 999999), + strtolower($b['name'] ?? '') + ]; }); return $channels; diff --git a/app/src/Services/SenderSyncService.php b/app/src/Services/SenderSyncService.php new file mode 100644 index 0000000..f5164e1 --- /dev/null +++ b/app/src/Services/SenderSyncService.php @@ -0,0 +1,48 @@ +channelsJsonPath)) { + $existing = json_decode(file_get_contents($this->channelsJsonPath), true) ?: []; + } + + foreach ($xmltvChannels as $channel) { + $id = $channel['id'] ?? null; + + if (!$id) { + continue; + } + + if (isset($existing[$id])) { + continue; // niemals überschreiben + } + + $existing[$id] = [ + 'id' => $id, + 'name' => $channel['name'] ?? $id, + 'enabled' => false, + 'favorite' => false, + 'number' => 999999, + ]; + } + + uasort($existing, function ($a, $b) { + return [$a['number'], $a['name']] <=> [$b['number'], $b['name']]; + }); + + file_put_contents( + $this->channelsJsonPath, + json_encode($existing, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE) + ); + + return $existing; + } +} diff --git a/app/src/Services/XmlTvCacheService.php b/app/src/Services/XmlTvCacheService.php index 851d3b2..78ff221 100644 --- a/app/src/Services/XmlTvCacheService.php +++ b/app/src/Services/XmlTvCacheService.php @@ -1,19 +1,24 @@ file = $file; $this->timezone = $timezone; $this->cacheFile = $cacheFile; + $this->channelsFile = $channelsFile; } public function getCachedData(): array @@ -54,15 +59,41 @@ class XmlTvCacheService $xml = simplexml_load_file($this->file); $metadataParser = new MetadataParser(); - + $xmltvChannels = []; foreach ($xml->channel as $channel) { $id = (string)$channel['id']; - $data['channels'][$id] = [ + $xmltvChannels[] = [ 'id' => $id, 'name' => (string)$channel->{'display-name'}, + ]; + } + + $senderSync = new SenderSyncService($this->channelsFile); + $channelsConfig = $senderSync->sync($xmltvChannels); + + $enabledChannelIds = []; + + foreach ($channelsConfig as $id => $channel) { + if (!empty($channel['enabled'])) { + $enabledChannelIds[$id] = true; + } + } + + foreach ($xml->channel as $channel) { + $id = (string)$channel['id']; + + if (!isset($enabledChannelIds[$id])) { + continue; + } + + $data['channels'][$id] = [ + 'id' => $id, + 'name' => $channelsConfig[$id]['name'] ?? (string)$channel->{'display-name'}, 'icon' => isset($channel->icon) ? (string)$channel->icon['src'] : '', + 'number' => $channelsConfig[$id]['number'] ?? 999999, + 'favorite' => !empty($channelsConfig[$id]['favorite']), 'programmes' => [], ]; } @@ -70,6 +101,10 @@ class XmlTvCacheService foreach ($xml->programme as $programme) { $channelId = (string)$programme['channel']; + if (!isset($enabledChannelIds[$channelId])) { + continue; + } + if (!isset($data['channels'][$channelId])) { continue; } @@ -82,18 +117,18 @@ class XmlTvCacheService } $item = [ - 'title' => (string)$programme->title, - 'subtitle' => (string)$programme->{'sub-title'}, - 'description' => (string)$programme->desc, - 'category' => (string)$programme->category, - 'start' => $start->getTimestamp(), - 'stop' => $stop->getTimestamp(), - 'duration' => $stop->getTimestamp() - $start->getTimestamp(), - 'year' => (string)$programme->date, - 'rating' => isset($programme->rating->value) ? (string)$programme->rating->value : '', - 'episode' => isset($programme->{'episode-num'}) ? (string)$programme->{'episode-num'} : '', - 'icon' => isset($programme->icon) ? (string)$programme->icon['src'] : '', - 'country' => (string)$programme->country, + 'title' => (string)$programme->title, + 'subtitle' => (string)$programme->{'sub-title'}, + 'description' => (string)$programme->desc, + 'category' => (string)$programme->category, + 'start' => $start->getTimestamp(), + 'stop' => $stop->getTimestamp(), + 'duration' => $stop->getTimestamp() - $start->getTimestamp(), + 'year' => (string)$programme->date, + 'rating' => isset($programme->rating->value) ? (string)$programme->rating->value : '', + 'episode' => isset($programme->{'episode-num'}) ? (string)$programme->{'episode-num'} : '', + 'icon' => isset($programme->icon) ? (string)$programme->icon['src'] : '', + 'country' => (string)$programme->country, ]; $item['metadata'] = $metadataParser->parse($item)->toArray(); @@ -102,13 +137,15 @@ class XmlTvCacheService } foreach ($data['channels'] as &$channel) { - usort($channel['programmes'], function ($a, $b) { - return $a['start'] <=> $b['start']; - }); + usort($channel['programmes'], fn($a, $b) => $a['start'] <=> $b['start']); } unset($channel); + uasort($data['channels'], function ($a, $b) { + return [$a['number'], $a['name']] <=> [$b['number'], $b['name']]; + }); + $this->writeCache($data); return $data; } diff --git a/app/templates/channels.php b/app/templates/channels.php index b277e9b..c50831b 100644 --- a/app/templates/channels.php +++ b/app/templates/channels.php @@ -1,9 +1,9 @@ -
Sender gespeichert.
+
Sender gespeichert. EPG wird beim nächsten Laden neu aufgebaut.
-
-
+ +

Senderverwaltung

Aktiviere Sender, markiere Favoriten und ändere die Reihenfolge.

@@ -11,13 +11,54 @@
+
+ + +
+ + + + + +
+ +
+ + +
+
+ +
+ 0 von Sendern sichtbar + +
+
$channel): ?> -
+ + +
+
@@ -26,16 +67,16 @@
@@ -43,3 +84,211 @@
+ +