Subversion Repositories SmartDukaan

Rev

Rev 14635 | Blame | Compare with Previous | Last modification | View Log | RSS feed

import xml.dom.minidom
import urllib2
from dtr.storage.MemCache import MemCache
mc = MemCache("127.0.0.1")

class CricbuzzParser():
    
    def __init__(self, matchId):
        self.matchId = matchId 
       
    def getXml(self):
        f = urllib2.urlopen("http://synd.cricbuzz.com/j2me/1.0/livematches.xml")
        doc = xml.dom.minidom.parse(f)
        node = doc.documentElement
        matches = node.getElementsByTagName("match")
        for match in matches:
            if self.matchId ==int(match.getAttribute('id')):
                self.getMatchDetails(match)
    
    def getMatchDetails(self,match):
        matchDesc = match.getAttribute("mchDesc")
        states = match.getElementsByTagName("state")
        for state in states:
            status = state.getAttribute("status")
            mstate = state.getAttribute('mchState')
        battingTeam = match.getElementsByTagName("btTm")
        for battingTeamDesc in battingTeam:
            battingTeamName = battingTeamDesc.getAttribute('sName')
        try:
            battingTeamInn = battingTeam[0].getElementsByTagName("Inngs")
            for battingTeamInnDesc in battingTeamInn: 
                battingTeamRuns = battingTeamInnDesc.getAttribute('r')
                battingTeamOvers =  battingTeamInnDesc.getAttribute('ovrs')
                battingTeamWickets =  battingTeamInnDesc.getAttribute('wkts')
            
            bowlingTeam = match.getElementsByTagName("blgTm")
            for bowlingTeamDesc in bowlingTeam:
                bowlingTeam = bowlingTeamDesc.getAttribute('sName')
            
            bowlingTeamInn = match.getElementsByTagName("blgTm")
            for bowlingTeamInnDesc in bowlingTeamInn:
                print bowlingTeamInnDesc.getAttribute('r')
                print bowlingTeamInnDesc.getAttribute('ovrs')
                print bowlingTeamInnDesc.getAttribute('wkts')
        except:
            battingTeamRuns = ""
            battingTeamOvers = ""  
            battingTeamWickets = ""
            battingTeamName = ""
        result = {'id':self.matchId,'matchDesc':matchDesc,'status':status,'mstate':mstate,'battingTeamName':battingTeamName,'battingTeamRuns':battingTeamRuns, \
         'battingTeamOvers':battingTeamOvers,'battingTeamWickets':battingTeamWickets}
        mc.set('liveScore', result)
        print result
        
if __name__ == '__main__':
    cric = CricbuzzParser(3)
    matches = cric.getXml()