В парсер M3U добавлена поддержка дополнительных тегов (группы, страны и т.д.)
[vpproxy.git] / plugins / m3u_plugin.py
index 2ea921adff6cda2da39a63cde251a7fa6df6718e..1bb6483b34866e0aee5823625d94a22166cd7c9f 100644 (file)
@@ -38,7 +38,7 @@ import os
 
 class M3u(VPProxyPlugin):
 
-    handlers = ('m3u', 'm3ut', 'm3uw', 'list', 'play', 'index')
+    handlers = ('m3u', 'm3ut', 'm3uw', 'm3uo', 'list', 'play', 'index')
 
     logger = logging.getLogger('plugin_m3u')
     playlist = None
@@ -55,6 +55,8 @@ class M3u(VPProxyPlugin):
           prefix='ogg'  
         elif self.splitted_path[1]=='m3ut':
           prefix='mp4'  
+        elif self.splitted_path[1]=='m3uo':
+          prefix='ogv'  
         elif self.splitted_path[1] in ("list","play","index"):
           None  
         else:
@@ -66,9 +68,12 @@ class M3u(VPProxyPlugin):
 
         if self.splitted_path[1]=='index':
 
+            text=""
             for dir in os.walk(config.m3u_directory):
                 if dir[0]==config.m3u_directory:
-                    text='\n'.join(dir[2])
+                    for dirname in dir[2]:
+                        if dirname.endswith('.m3u'):
+                            text=text+'\n'+dirname
 
             connection.send_response(200)
             connection.send_header('Content-Type', 'text/plain; charset=utf-8')
@@ -156,6 +161,23 @@ class M3u(VPProxyPlugin):
                     channel=dict()
                     channel['name']=record.title.decode('utf-8')
                     channel['url']=record.path.decode('utf-8')            
+                    try:
+                      channel['tvg']=record.attrs['tvg-name'].decode('utf-8')
+                    except:
+                      None
+                    try: 
+                      if record.attrs['group-title'] != 'None':   
+                        channel['group']=record.attrs['group-title'].decode('utf-8')
+                    except:
+                      None
+                    try:    
+                      channel['country']=record.attrs['country'].decode('utf-8')
+                    except:
+                      None
+                    try:    
+                      channel['logo']=record.attrs['tvg-logo'].decode('utf-8')
+                    except:
+                      None
                     playlistgen.addItem(channel)
 
             exported = playlistgen.exportm3u(hostport,prefix)