В парсер M3U добавлена поддержка дополнительных тегов (группы, страны и т.д.)
[vpproxy.git] / plugins / modules / M3uParser.py
index 9e2fce64aeb79ffdb7d69bcb84c0ed2d5a256bb5..e946ec27bfa86689b4eb8f5b675986e7f2bbb39e 100644 (file)
@@ -6,10 +6,11 @@ import hexdump
 import codecs
 
 class track():
-    def __init__(self, length, title, path):
+    def __init__(self, length, title, path, attrs=None):
         self.length = length
         self.title = title
         self.path = path
+        self.attrs = attrs
 
 
 # # # song info lines are formatted like:
@@ -41,9 +42,22 @@ def parseM3U(infile):
         line = line.strip()
         if line.startswith('#EXTINF:'):
             # pull length and title from #EXTINF line
-            length,title=line.split('#EXTINF:')[1].split(',',1)
+            prefix,title=line.split('#EXTINF:')[1].split(',',1)
+            title=title.strip()
+            length,attrstr=prefix.split(' ',1)
+            attrs={}
+
+            while attrstr:
+
+              attrstr=attrstr.strip()
+              key,tail=attrstr.split('=',1)
+              tail=tail[1:]
+              value,attrstr=tail.split('"',1)
+              attrstr=attrstr.strip()
+              attrs[key]=value 
+            
             title=title.decode('string_escape')
-            song=track(length,title,None)
+            song=track(length,title,None,attrs)
         elif (len(line) != 0):
             # pull song path from all other, non-blank lines
             song.path=line