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
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:
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')
elif self.splitted_path[1]=="play":
channel=self.splitted_path[len(self.splitted_path)-1]
channel=urllib.unquote(channel).decode('utf-8')
- print channel
if len(self.splitted_path)<=4:
prefix="get"
elif len(self.splitted_path)==5:
for record in playlist:
if record.title.decode('utf-8').replace('/','')==channel:
url=record.path.decode('utf-8')
- print url
if url:
redirect='/'+prefix+'/'+url
- print redirect
connection.send_response(302)
connection.send_header('Location', redirect)
connection.end_headers()
exported = ""
for record in playlist:
- exported = exported + "" + record.title.decode('utf-8').replace('/','') + "\n"
+ if record.title:
+ exported = exported + "" + record.title.decode('utf-8').replace('/','') + "\n"
else:
playlistgen = PlaylistGenerator()
for record in playlist:
- channel=dict()
- channel['name']=record.title.decode('utf-8')
- channel['url']=record.path.decode('utf-8')
- playlistgen.addItem(channel)
+ if record.title:
+ 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)
-
+
exported = exported.encode('utf-8')
+
connection.wfile.write(exported)
def getparam(self, key):