All pastes #799902 Raw Edit

Xn

public python v1 · immutable
#799902 ·published 2007-11-27 22:55 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()### PHP Version, just for fun ^^# Action : Same ._.##<?php /*Name: WhatPulse StatsBy: XneMail: xn.exelsior@gmail.com*/   class GtkWhatpulse extends GtkWindow  {      private $Container;      private $ToolBar;      private $ToolBouton;      private $ListView;      private $Model;      private $Iter;      private $Select;      private $MyEdit;      private $UserID = '';      // 195719            function __construct()      {          parent::__construct();          $this->set_title('- WhatPulse Stats -');          $this->connect_simple('destroy', array('gtk', 'main_quit'));          $this->set_resizable(false);          $this->set_icon($this->render_icon(Gtk::STOCK_SELECT_COLOR, Gtk::ICON_SIZE_DIALOG));                    $this->Container = new GtkFixed();                    // ToolBar          $this->ToolBar = new GtkToolBar();          $this->ToolBar->set_show_arrow(false);          $this->ToolBar->set_border_width(0);          $this->ToolBouton = GtkToolButton::new_from_stock(Gtk::STOCK_REFRESH);          $this->ToolBouton->connect_simple('clicked',array($this,'LoadData'),'refresh');          $this->ToolBar->insert($this->ToolBouton,-1);                    // Edit a coté de la ToolBar, pour actualiser ;D          // ListView          $this->ListView = new GtkTreeView();           $this->Model = new GtkListStore(Gtk::TYPE_STRING, Gtk::TYPE_STRING);          $this->ListView->set_model($this->Model);          $this->ListView->set_border_width(10);          $this->ListView->set_size_request(400,200);                    // La séléction dans la liste - TEST -          //$this->ListView->connect_simple('row-activated', array($this,'ClickList'));                               // Une tite ScrollBar ? :P          $ScrollBar = new GtkScrolledWindow();          $ScrollBar->set_policy(Gtk::POLICY_NEVER, Gtk::POLICY_AUTOMATIC);          // Renderers          $RenderColumn1 = new GtkCellRendererText();          $RenderColumn1->set_property('width', 240);          $RenderColumn1->set_property('font','bold');          $RenderColumn1->set_property('background','#d2eef8');          $RenderColumn2 = new GtkCellRendererText();          $RenderColumn2->set_property('width', 150);          // Un edit pour l'userID          $this->MyEdit = new GtkEntry('195719');          $this->MyEdit->set_size_request(50,19);                    // Et un label avec          $ALabel = new GtkLabel('UserID :');                    // Colonnes de la treeview          $ListColumn1 = new GtkTreeViewColumn('Info',$RenderColumn1, 'text', 0);          $ListColumn2 = new GtkTreeViewColumn('Value',$RenderColumn2, 'text', 1);          $this->ListView->append_column($ListColumn1);          $this->ListView->append_column($ListColumn2);          $ScrollBar->add($this->ListView);                              $this->Container->put($ScrollBar,0,60);          $this->Container->put($this->MyEdit,60,30);           $this->Container->put($this->ToolBar,0,8);          $this->Container->put($ALabel,61,15);                    $this->add($this->Container);          $this->show_all();      }            /*public function ClickList()      {          $this->Select = $this->ListView->get_selection();          list($Model,$Iter) = $this->Select->get_selected();          echo $this->Model->get_string_from_iter($Iter);          $this->Model->remove($Iter);            }*/      public function LoadData()      {          $this->UserID = $this->MyEdit->get_text();          if (!empty($this->UserID))          {          if (preg_match('/^[0-9]+$/',$this->UserID))           {          $this->Model->clear();          $Check = file_get_contents('http://whatpulse.org/api/user.php?UserID='.$this->UserID);          if ($Check != 'Unknow UserID given!')          {          $xml = simplexml_load_file('http://whatpulse.org/api/user.php?UserID='.$this->UserID);          $this->Model->append(array('Date de génération',$xml->GeneratedTime));          $this->Model->append(array('ID Utilisateur',$xml->UserID));          $this->Model->append(array('Nom de compte',$xml->AccountName));          $this->Model->append(array('Pays',$xml->Country));          $this->Model->append(array('Date d\'inscription',$xml->DateJoined));          $this->Model->append(array('Site internet',($xml->Homepage == '') ? 'N/A' : $xml->Homepage));          $this->Model->append(array('Derniere Pulsation',$xml->LastPulse));          $this->Model->append(array('Nombre de Pulsation',$xml->Pulses));          $this->Model->append(array('Nombre de keys total',$xml->TotalKeyCount));          $this->Model->append(array('Nombre de click total',$xml->TotalMouseClicks));          $this->Model->append(array('Nombre de miles',$xml->TotalMiles));          $this->Model->append(array('Nombre de keys moyen par pulse',$xml->AvKeysPerPulse));          $this->Model->append(array('Nombre de clicks moyen par pulse',$xml->AvClicksPerPulse));          $this->Model->append(array('Nombre moyen de keys par seconde',$xml->AvKPS));          $this->Model->append(array('Nombre moyen de clicks par seconde',$xml->AvCPS));          $this->Model->append(array('Rang Personnel',$xml->Rank));          $this->Model->append(array('ID de l\'équipe',($xml->TeamID == '') ? 'N/A' : $xml->TeamID));          $this->Model->append(array('Nom de l\'équipe',($xml->TeamName == '') ? 'N/A' : $xml->TeamName));          $this->Model->append(array('Nombre de membres',($xml->TeamMembers == '') ? 'N/A' : $xml->TeamMembers));          $this->Model->append(array('Keys de l\'équipe',($xml->TeamKeys == '') ? 'N/A' : $xml->TeamKeys));          $this->Model->append(array('Clicks de l\'équipe',($xml->TeamClicks == '') ? 'N/A' : $xml->TeamClicks));          $this->Model->append(array('Miles de l\'équipe',($xml->TeamMiles == '') ? 'N/A' : $xml->TeamMiles));          $this->Model->append(array('Description de l\'équipe',($xml->TeamDescription == '') ? 'N/A' : $xml->TeamDescription));          $this->Model->append(array('Date de création de l\'équipe',($xml->TeamDateFormed == '') ? 'N/A' : $xml->TeamDateFormed));          $this->Model->append(array('Rang de l\'équipe',($xml->TeamRank == '') ? 'N/A' : $xml->TeamRank));          $this->Model->append(array('Rang dans l\'équipe',($xml->RankInTeam == '') ? 'N/A' : $xml->RankInTeam));                    } else {          $this->Model->append(array('ERROR','UserID Inconnue !!'));          }          } else {          $this->Model->append(array('ERROR','C\'est pas une UserID ça O_o'));          }           } else {          $this->Model->append(array('ERROR','Veuillez saisir votre UserID'));          }       }  }    new GtkWhatpulse();  Gtk::main();?>