#$Id: tickurl.py,v 1.1 2002/12/08 04:50:33 vanous Exp $

import sys,codecs,os,urllib
from xml.parsers import expat
#import modulů použitých funkcí 

moje=[]
#vynulování globální proměnné, která se naplní daty z xml


class RSS2HTML:
#konvertor samotný

    def __init__(self):
#        self._out = []
        
        # nastavení proměnných
        self._data = ""
        self._first_item = 1

        self._title = None
        self._link = None
        self._descr = None
        
    def start_tag(self, name, attrs):
        self._data = ""

        if name == "item":
            self._descr = None # vynulování
            if self._first_item:
              self._first_item = 0
            
    def end_tag(self, name):
    # rosparsování položek rss
        if name == "title":
            self._title = self._data

        elif name == "link":
            self._link = self._data

        elif name == "description":
            self._descr = self._data

        elif name == "language":
            self._out=([self._link, self._title,self._descr or ""])
            global moje
            moje.append(self._out)
            #připojení do globálního pole   
        elif name == "item":
            self._out=([self._link,self._title,self._descr or ""])
            global moje
            moje.append(self._out)
#        print self._out

    def data_handler(self, data):
        self._data = self._data + data


# --- The driver

def convert(url,koding):
    sysid = urllib.urlopen(url)
#    sysid = urllib.urlopen('http://www.root.cz/rss/')
    app = RSS2HTML()
    p = expat.ParserCreate(koding)
    p.StartElementHandler = app.start_tag
    p.EndElementHandler = app.end_tag
    p.CharacterDataHandler = app.data_handler

    error = 0
    inf = sysid
    buf = inf.read(16384)
    while buf != "":
        if p.Parse(buf, 0) != 1:
            error = 1
            break
        buf = inf.read(16384)
        print buf

    inf.close()
    global moje
    return moje
   

    if error or p.Parse("", 1) != 1:
        print "ERROR: %s in %s:%s:%s" % (expat.ErrorString(p.ErrorCode),
                                         sysid, p.ErrorLineNumber,
                                         p.ErrorColumnNumber)
# --- The main program

#servery=['http://penguin.cz/cgi-bin/toISO-8859-2.en/rss.php3','http://www.root.cz/rss/']
#servery=['http://penguin.cz/cgi-bin/toISO-8859-2.en/rss.php3']

#out   = codecs.open(sys.argv[1], "w", "iso-8859-2")

#for i in servery:
#	sysid = urllib.urlopen(i)
#	convert(sysid)
	
#print len(moje)

#convert(sysid, out)

#out.close()
#os.system("dillo file:" + sys.argv[1] + "&")
