Kanäle automatisch zuordnen und das Mapping überprüfen
()
| 943 | |
| 944 | // Kanäle automatisch zuordnen und das Mapping überprüfen |
| 945 | func mapping() (err error) { |
| 946 | // Protect against concurrent access to XEPG data structures |
| 947 | xepgMutex.Lock() |
| 948 | defer xepgMutex.Unlock() |
| 949 | |
| 950 | showInfo("XEPG:" + "Map channels") |
| 951 | |
| 952 | for xepg, dxc := range Data.XEPG.Channels { |
| 953 | |
| 954 | var xepgChannel XEPGChannelStruct |
| 955 | err = json.Unmarshal([]byte(mapToJSON(dxc)), &xepgChannel) |
| 956 | if err != nil { |
| 957 | return |
| 958 | } |
| 959 | |
| 960 | if xepgChannel.TvgName == "" { |
| 961 | xepgChannel.TvgName = xepgChannel.Name |
| 962 | } |
| 963 | |
| 964 | if (xepgChannel.XBackupChannel1 != "" && xepgChannel.XBackupChannel1 != "-") || (xepgChannel.XBackupChannel2 != "" && xepgChannel.XBackupChannel2 != "-") || (xepgChannel.XBackupChannel3 != "" && xepgChannel.XBackupChannel3 != "-") { |
| 965 | for _, stream := range Data.Streams.Active { |
| 966 | var m3uChannel M3UChannelStructXEPG |
| 967 | |
| 968 | err = json.Unmarshal([]byte(mapToJSON(stream)), &m3uChannel) |
| 969 | if err != nil { |
| 970 | return err |
| 971 | } |
| 972 | |
| 973 | if m3uChannel.TvgName == "" { |
| 974 | m3uChannel.TvgName = m3uChannel.Name |
| 975 | } |
| 976 | |
| 977 | backup_channel1 := strings.Trim(xepgChannel.XBackupChannel1, " ") |
| 978 | if m3uChannel.TvgName == backup_channel1 { |
| 979 | xepgChannel.BackupChannel1 = &BackupStream{PlaylistID: m3uChannel.FileM3UID, URL: m3uChannel.URL} |
| 980 | } |
| 981 | |
| 982 | backup_channel2 := strings.Trim(xepgChannel.XBackupChannel2, " ") |
| 983 | if m3uChannel.TvgName == backup_channel2 { |
| 984 | xepgChannel.BackupChannel2 = &BackupStream{PlaylistID: m3uChannel.FileM3UID, URL: m3uChannel.URL} |
| 985 | } |
| 986 | |
| 987 | backup_channel3 := strings.Trim(xepgChannel.XBackupChannel3, " ") |
| 988 | if m3uChannel.TvgName == backup_channel3 { |
| 989 | xepgChannel.BackupChannel3 = &BackupStream{PlaylistID: m3uChannel.FileM3UID, URL: m3uChannel.URL} |
| 990 | } |
| 991 | } |
| 992 | } |
| 993 | |
| 994 | // Automatische Mapping für neue Kanäle. Wird nur ausgeführt, wenn der Kanal deaktiviert ist und keine XMLTV Datei und kein XMLTV Kanal zugeordnet ist. |
| 995 | if !xepgChannel.XActive { |
| 996 | // Werte kann "-" sein, deswegen len < 1 |
| 997 | if len(xepgChannel.XmltvFile) < 1 { |
| 998 | |
| 999 | var tvgID = xepgChannel.TvgID |
| 1000 | |
| 1001 | xepgChannel.XmltvFile = "-" |
| 1002 | xepgChannel.XMapping = "-" |
no test coverage detected