Unused function removed
This commit is contained in:
@@ -160,108 +160,3 @@ func MakeInterfaceFromM3U(byteStream []byte) (allChannels []interface{}, err err
|
|||||||
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// MakeInterfaceFromM3U2 :
|
|
||||||
func MakeInterfaceFromM3U2(byteStream []byte) (allChannels []interface{}, err error) {
|
|
||||||
var content = string(byteStream)
|
|
||||||
//var allChannels = make([]interface{}, 0)
|
|
||||||
|
|
||||||
var channels = strings.Split(content, "#EXTINF")
|
|
||||||
|
|
||||||
var parseMetaData = func(metaData string) map[string]string {
|
|
||||||
var values string // Save all values in a key
|
|
||||||
var channel = make(map[string]string)
|
|
||||||
|
|
||||||
var exceptForParameter = `[a-z-A-Z=]*(".*?")`
|
|
||||||
//var exceptForChannelName = `(,[^.$\n]*|,[^.$\r]*)`
|
|
||||||
var exceptForChannelName = `(,[^\n]*|,[^\r]*)`
|
|
||||||
|
|
||||||
var exceptForStreamingURL = `(\n.*?\n|\r.*?\r|\n.*?\z|\r.*?\z)`
|
|
||||||
//var exceptForStreamingURL = `^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?`
|
|
||||||
|
|
||||||
// Parse all parameters
|
|
||||||
p := regexp.MustCompile(exceptForParameter)
|
|
||||||
var parameter = p.FindAllString(metaData, -1)
|
|
||||||
//fmt.Println(parameter)
|
|
||||||
for _, i := range parameter {
|
|
||||||
var remove = i
|
|
||||||
i = strings.Replace(i, `"`, "", -1)
|
|
||||||
if strings.Contains(i, "=") {
|
|
||||||
var item = strings.Split(i, "=")
|
|
||||||
switch strings.Contains(item[0], "tvg") {
|
|
||||||
case true:
|
|
||||||
channel[strings.ToLower(item[0])] = item[1]
|
|
||||||
case false:
|
|
||||||
channel[item[0]] = item[1]
|
|
||||||
}
|
|
||||||
|
|
||||||
switch strings.Contains(item[1], "://") {
|
|
||||||
case false:
|
|
||||||
values = values + item[1] + " "
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
metaData = strings.Replace(metaData, remove, "", 1)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Parse channel name (after the comma)
|
|
||||||
n := regexp.MustCompile(exceptForChannelName)
|
|
||||||
var name = n.FindAllString(metaData, 1)
|
|
||||||
//name[len(name) - 1] = strings.Replace(name[len(name) - 1], `\r`, "", -1)
|
|
||||||
|
|
||||||
var channelName string
|
|
||||||
if len(name) == 0 {
|
|
||||||
if v, ok := channel["tvg-name"]; ok {
|
|
||||||
channelName = v
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
channelName = name[len(name)-1][1:len(name[len(name)-1])]
|
|
||||||
}
|
|
||||||
|
|
||||||
channelName = strings.Replace(channelName, `"`, "", -1)
|
|
||||||
|
|
||||||
var replacer = strings.NewReplacer("\n", "", "\r", "")
|
|
||||||
channel["name"] = replacer.Replace(channelName)
|
|
||||||
|
|
||||||
values = values + channelName + " "
|
|
||||||
|
|
||||||
// Parse streaming URL
|
|
||||||
u := regexp.MustCompile(exceptForStreamingURL)
|
|
||||||
var streamingURL = u.FindAllString(metaData, -1)
|
|
||||||
var url = strings.Replace(streamingURL[0], "\n", "", -1)
|
|
||||||
url = strings.Replace(url, "\r", "", -1)
|
|
||||||
url = strings.Trim(url, "\r\n")
|
|
||||||
channel["url"] = url
|
|
||||||
|
|
||||||
channel["_values"] = values
|
|
||||||
|
|
||||||
// Search for a unique ID
|
|
||||||
|
|
||||||
for key, value := range channel {
|
|
||||||
if !strings.Contains(strings.ToLower(key), "tvg-id") {
|
|
||||||
if strings.Contains(strings.ToLower(key), "id") {
|
|
||||||
channel["_uuid.key"] = key
|
|
||||||
channel["_uuid.value"] = value
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return channel
|
|
||||||
}
|
|
||||||
|
|
||||||
if strings.Contains(channels[0], "#EXTM3U") {
|
|
||||||
|
|
||||||
for _, thisStream := range channels {
|
|
||||||
if !strings.Contains(thisStream, "#EXTM3U") {
|
|
||||||
var channel = parseMetaData(thisStream)
|
|
||||||
allChannels = append(allChannels, channel)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
} else {
|
|
||||||
err = errors.New("No valid m3u file")
|
|
||||||
}
|
|
||||||
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|||||||
Reference in New Issue
Block a user