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()