All pastes #799900 Raw Edit

Xn

public python v1 · immutable
#799900 ·published 2007-11-27 22:54 UTC
rendered paste body
### File : core.py # Action : Grab Whatpulse infos### -*- coding: iso-8859-1 -*-import urllibfrom xml.dom import minidomclass Whatpulse:        myPage = ""    myXML = ""    myXMLParse = ""    UserStats = ""    def main ( self, userID ):        self.myPage = urllib.urlopen("http://whatpulse.org/api/user.php?UserID=" + userID)        self.myXML = self.myPage.read()        if (self.myXML == "Unknow UserID given!"):            return 2        elif (self.myXML == "No UserID given!"):            return 3        else:                  self.xml2 = minidom.parseString(self.myXML)            self.UserStats = self.xml2.firstChild                                    def GetGeneratedDate ( self ):        GeneratedStats = self.UserStats.childNodes[1]        return GeneratedStats.firstChild.data        def GetUserID ( self ):        UserID = self.UserStats.childNodes[3]        return UserID.firstChild.data            def GetAccount ( self ):        Account = self.UserStats.childNodes[5]        return Account.firstChild.data        def GetCountry ( self ):        Country = self.UserStats.childNodes[7]        return Country.firstChild.data               def GetJoined ( self ):        DateJoined = self.UserStats.childNodes[9]        return DateJoined.firstChild.data             def GetHomePage ( self ):        Homepage = self.UserStats.childNodes[11]        try:            return Homepage.firstChild.data        except:            return "None"                def GetLastPulse ( self ):        LastPulse = self.UserStats.childNodes[13]        return LastPulse.firstChild.data        def GetPulses ( self ):        NPulses = self.UserStats.childNodes[15]        return NPulses.firstChild.data        def GetTotalKeys ( self ):        KeysTotal = self.UserStats.childNodes[17]        return KeysTotal.firstChild.data            def GetTotalClick ( self ):        ClicksTotal = self.UserStats.childNodes[19]        return ClicksTotal.firstChild.data        def GetMiles ( self ):        Miles = self.UserStats.childNodes[21]        return Miles.firstChild.data            def AvgKeyPulse ( self ):          AvgKey = self.UserStats.childNodes[23]        return AvgKey.firstChild.data        def AvgClicksPulse ( self ):        AvgClick = self.UserStats.childNodes[25]        return AvgClick.firstChild.data        def AvgKPS ( self ):        AvgKPS = self.UserStats.childNodes[27]        return AvgKPS.firstChild.data        def AvgCPS ( self ):        AvgCPS = self.UserStats.childNodes[29]        return AvgCPS.firstChild.data         def GetRank ( self ):        Rank = self.UserStats.childNodes[31]        return Rank.firstChild.data        def CheckTeam ( self ):        TeamID = self.UserStats.childNodes[33]        try:            isTeamID = TeamID.firstChild.data            return 1        except:            return 0           def GetTeamID ( self ):        if (self.CheckTeam()):            TeamID = self.UserStats.childNodes[33]            return TeamID.firstChild.data    def GetTeamName ( self ):        if (self.CheckTeam()):            TeamName = self.UserStats.childNodes[35]            return TeamName.firstChild.data        def GetTeamMem ( self ):        if (self.CheckTeam()):            TeamMem = self.UserStats.childNodes[37]            return TeamMem.firstChild.data        def GetTeamKeys ( self ):        if (self.CheckTeam()):            TeamKeys = self.UserStats.childNodes[39]            return TeamKeys.firstChild.data        def GetTeamClicks ( self ):        if (self.CheckTeam()):            TeamClicks = self.UserStats.childNodes[41]            return TeamClicks.firstChild.data        def GetTeamMiles ( self ):        if (self.CheckTeam()):            TeamMiles = self.UserStats.childNodes[43]            return TeamMiles.firstChild.data    def GetTeamDescription ( self ):        if (self.CheckTeam()):            Teamdesc = self.UserStats.childNodes[45]            try:                return Teamdesc.firstChild.data            except:                return "None"    def GetTeamDateFormed ( self ):        if (self.CheckTeam()):            Teamdate = self.UserStats.childNodes[47]            try:                return Teamdate.firstChild.data            except:                return "None"                    def GetTeamRank ( self ):        if (self.CheckTeam()):            TeamRank = self.UserStats.childNodes[49]            try:                return TeamRank.firstChild.data            except:                return "None"                    def GetRankInTeam ( self ):        if (self.CheckTeam()):            RankIn = self.UserStats.childNodes[51]            try:                return RankIn.firstChild.data            except:                return "None"                        ### File : main.py# Action : GUI### -*- coding: iso-8859-1 -*-import pygtkimport arrayimport gtk, gobjectfrom core import Whatpulseclass WPInterface:        def __init__(self):        self.MyGUI = gtk.Window(gtk.WINDOW_TOPLEVEL)        self.MyGUI.set_title('- WhatPulse Stats - Xn')        self.MyGUI.set_border_width(10)        self.MyGUI.set_resizable(False)        self.MyGUI.set_size_request(400,305)                # Button        self.MyButton = gtk.Button('Refresh')        self.MyButton2 = gtk.Button('Test')         # Fixed Container        self.Container = gtk.Fixed()        self.MyGUI.add(self.Container)        # Edit        self.MyEntry = gtk.Entry()        self.MyEntry.set_text('195719')        self.MyEntry.set_size_request(50,20)        # Scrollbar        self.MyScrollbar = gtk.ScrolledWindow()        self.MyScrollbar.set_policy(gtk.POLICY_NEVER,gtk.POLICY_AUTOMATIC)        # Treeview        self.MyTreeStore = gtk.TreeView()        self.MyModel= gtk.ListStore( gobject.TYPE_STRING, gobject.TYPE_STRING )        self.MyTreeStore.set_model(self.MyModel)        self.MyTreeStore.set_size_request(375,245)        self.MyTreeStore.set_border_width(10)                self.MyRenderer1 = gtk.CellRendererText()        self.MyRenderer1.set_property('width',190)        self.MyRenderer1.set_property('font','bold')        self.MyRenderer1.set_property('background','#d2eef8')        self.MyRenderer2 = gtk.CellRendererText()        self.MyRenderer2.set_property('width',150)        self.MyColumn1 = gtk.TreeViewColumn('Info',self.MyRenderer1,text=0)        self.MyColumn2 = gtk.TreeViewColumn('Data',self.MyRenderer2,text=1)                 self.MyTreeStore.append_column(self.MyColumn1)        self.MyTreeStore.append_column(self.MyColumn2)                 # Events        self.MyGUI.connect('destroy',self.WPDestroy)        self.MyButton.connect('clicked',self.WPRefreshClicked)        # Place them        self.MyScrollbar.add(self.MyTreeStore)        self.Container.put(self.MyButton,1,1)        self.Container.put(self.MyEntry,50,3)        self.Container.put(self.MyScrollbar,1,35)        # Show ^^        self.MyEntry.grab_focus()        self.MyGUI.show_all()            def WPMain(self):        gtk.main()            def WPDestroy(self,data=None):        gtk.main_quit()            def WPRefreshClicked(self,widget):        self.MyReq = self.MyEntry.get_text()        if (self.MyReq <> ""):            self.MyModel.clear()            self.MyStats = Whatpulse()            MyRes = self.MyStats.main(self.MyReq)            if (MyRes == 2):                self.MyModel.append(['Error','Unknow User ID'])            elif (MyRes == 3):                self.MyModel.append(['Error','Bad User ID'])            else:                self.MyModel.append(['Derniere Generation',self.MyStats.GetGeneratedDate()])                self.MyModel.append(['User ID',self.MyStats.GetUserID()])                self.MyModel.append(['Account Name',self.MyStats.GetAccount()])                self.MyModel.append(['Country',self.MyStats.GetCountry()])                self.MyModel.append(['Joined',self.MyStats.GetJoined()])                self.MyModel.append(['HomePage',self.MyStats.GetHomePage()])                self.MyModel.append(['Last Pulse',self.MyStats.GetLastPulse()])                self.MyModel.append(['Pulses',self.MyStats.GetPulses()])                self.MyModel.append(['Total Keys',self.MyStats.GetTotalKeys()])                self.MyModel.append(['Total Clicks',self.MyStats.GetTotalClick()])                self.MyModel.append(['Miles',self.MyStats.GetMiles()])                self.MyModel.append(['Average Key Per Pulse',self.MyStats.AvgKeyPulse()])                self.MyModel.append(['Average Click Per Pulse',self.MyStats.AvgClicksPulse()])                self.MyModel.append(['Average Keys Per Second',self.MyStats.AvgKPS()])                self.MyModel.append(['Average Clicks Per Second',self.MyStats.AvgCPS()])                self.MyModel.append(['Rank',self.MyStats.GetRank()])                if (self.MyStats.CheckTeam()):                    self.MyModel.append(['Team ID',self.MyStats.GetTeamID()])                    self.MyModel.append(['Team Name',self.MyStats.GetTeamName()])                    self.MyModel.append(['Team Members',self.MyStats.GetTeamMem()])                    self.MyModel.append(['Team Keys',self.MyStats.GetTeamKeys()])                    self.MyModel.append(['Team Clicks',self.MyStats.GetTeamClicks()])                    self.MyModel.append(['Team Miles',self.MyStats.GetTeamMiles()])                    self.MyModel.append(['Team Description',self.MyStats.GetTeamDescription()])                    self.MyModel.append(['Team formed on',self.MyStats.GetTeamDateFormed()])                    self.MyModel.append(['Team rank',self.MyStats.GetTeamRank()])                    self.MyModel.append(['Rank in team',self.MyStats.GetRankInTeam()])                            if (__name__=="__main__"):    MyWP = WPInterface()    MyWP.WPMain()