#!/usr/bin/python

import xml.dom.minidom
import sys,os
from plugins.modules.PlaylistGenerator import PlaylistGenerator

tvguide_url="http://www.teleguide.info/download/new3/jtv.zip"

def parseXML(filename):
  datasource = open(filename)
  return xml.dom.minidom.parse(datasource)   # parse an open file

def getText(element):
  rc = []
  nodelist = element.childNodes
  for node in nodelist:
    if node.nodeType == node.TEXT_NODE:
      rc.append(node.data)
      return ''.join(rc)

def main(argv):
  if len(argv) < 2:
    sys.stderr.write("Usage: %s <xml-file>\n" % (argv[0],))
    return 1
                    
  if not os.path.exists(argv[1]):
    sys.stderr.write("ERROR: Channel file %r was not found!\n" % (argv[1],))
    return 1

  dom = parseXML(argv[1])
  tracklist = dom.getElementsByTagName('playlist')[0].getElementsByTagName('trackList')[0].getElementsByTagName('track')

  channels = PlaylistGenerator()
  
  for track in tracklist:
  
    channel = {}
  
    channel['name'] = getText(track.getElementsByTagName('title')[0])
    channel['url'] = getText(track.getElementsByTagName('location')[0])
    try:
      channel['logo'] = getText(track.getElementsByTagName('image')[0])
    except:
      None
    try:    
      channel['country'] = getText(track.getElementsByTagName('country')[0])
    except:
      None
    try:        
      channel['group'] = getText(track.getElementsByTagName('category')[0])
    except:
      None  

    channels.addItem(channel)  

  print channels.dumpm3u().encode('utf8')

if __name__ == "__main__":
   sys.exit(main(sys.argv))