Re-sending it to the list since it seems to have been ignored.

---------- Forwarded message ----------
From: Johan Euphrosine <[EMAIL PROTECTED]>
Date: Mon, Sep 1, 2008 at 4:46 PM
Subject: jpoker player lookup
To: Pokersource Users <[email protected]>


Hi,

I implemented player lookup plugin for jpoker, that allow searching for
tables & tournaments, a given user is currently playing on:
http://jspoker.pokersource.info/ideas.html#[[places%20should%20allow%
20player%20lookup]]

I also added player_lookup element in skin.html

Feel free to review and pull changes from:
http://jpoker.aminche.com/hg/jpoker

Please note that it also requires the attached modifications, server
side.
--
Johan Euphrosine <[EMAIL PROTECTED]>



-- 
bou ^
Index: pokernetwork/pokerpackets.py
===================================================================
--- pokernetwork/pokerpackets.py	(revision 4402)
+++ pokernetwork/pokerpackets.py	(working copy)
@@ -4022,6 +4022,7 @@
     
     info = Packet.info + (
         ('serial', 0, 'I'),
+        ('name', '', 's'),
         )
 
 Packet.infoDeclare(globals(), PacketPokerGetPlayerPlaces, Packet, "POKER_GET_PLAYER_PLACES", 151) # 151 # 0x97 # %SEQ%
@@ -4033,6 +4034,7 @@
     
     info = Packet.info + (
         ('serial', 0, 'I'),
+        ('name', '', 's'),
         ('tables', [], 'Il'),
         ('tourneys', [], 'Il'),
         )
Index: pokernetwork/pokerservice.py
===================================================================
--- pokernetwork/pokerservice.py	(revision 4402)
+++ pokernetwork/pokerservice.py	(working copy)
@@ -1387,6 +1387,17 @@
         return PacketPokerPlayerPlaces(serial = serial,
                                        tables = tables,
                                        tourneys = tourneys)
+
+    def getPlayerPlacesByName(self, name):
+        cursor = self.db.cursor()
+        cursor.execute("SELECT table_serial FROM user2table, users WHERE user2table.user_serial = users.serial AND users.name = %s", name)
+        tables = map(lambda x: x[0], cursor.fetchall())
+        cursor.execute("SELECT tourney_serial FROM user2tourney, users WHERE user2tourney.user_serial = users.serial AND users.name = %s", name)
+        tourneys = map(lambda x: x[0], cursor.fetchall())
+        cursor.close()
+        return PacketPokerPlayerPlaces(name = name,
+                                       tables = tables,
+                                       tourneys = tourneys)
     
     def getUserInfo(self, serial):
         cursor = self.db.cursor(DictCursor)
Index: pokernetwork/pokeravatar.py
===================================================================
--- pokernetwork/pokeravatar.py	(revision 4402)
+++ pokernetwork/pokeravatar.py	(working copy)
@@ -347,7 +347,10 @@
             return
 
         if packet.type == PACKET_POKER_GET_PLAYER_PLACES:
-            self.sendPacketVerbose(self.service.getPlayerPlaces(packet.serial))
+            if packet.serial != 0:
+                self.sendPacketVerbose(self.service.getPlayerPlaces(packet.serial))
+            else:
+                self.sendPacketVerbose(self.service.getPlayerPlacesByName(packet.name))
             return
 
         if packet.type == PACKET_POKER_GET_PLAYER_INFO:
Index: tests/test-pokeravatar.py.in
===================================================================
--- tests/test-pokeravatar.py.in	(revision 4402)
+++ tests/test-pokeravatar.py.in	(working copy)
@@ -2914,16 +2914,32 @@
         self.assertEquals(1, len(packets))
         packet = packets[0]
         self.assertEquals(PACKET_POKER_PLAYER_PLACES, packet.type)
-        self.assertEquals([], packet.tables)
+        self.assertEquals([2], packet.tables)
         return (client, packet)
+
+    # ------------------------------------------------------------------------
+    def getPlayerPlacesByName(self, (client, packet), id, name):
+        avatar = self.service.avatars[id]
+        avatar.queuePackets()
+        avatar.handlePacketLogic(PacketPokerGetPlayerPlaces(name = name))
+        packets = avatar.resetPacketsQueue()
+        self.assertEquals(1, len(packets))
+        packet = packets[0]
+        self.assertEquals(PACKET_POKER_PLAYER_PLACES, packet.type)
+        self.assertEquals([2], packet.tables)
+        return (client, packet)
     
     # ------------------------------------------------------------------------
     def test69_getPlayerPlaces(self):
         """Test lookup of where the player is playing."""
         d = self.client_factory[0].established_deferred
         d.addCallback(self.sendExplain)
+        d.addCallback(self.sendRolePlay)
         d.addCallback(self.login, 0)
+        d.addCallback(self.joinTable, 0, 2, 'Table2', '2-4-limit')
+        d.addCallback(self.seatTable, 0, 2)
         d.addCallback(self.getPlayerPlaces, 0)
+        d.addCallback(self.getPlayerPlacesByName, 0, 'user0')
         return d
 
     # ------------------------------------------------------------------------
_______________________________________________
Pokersource-users mailing list
[email protected]
https://mail.gna.org/listinfo/pokersource-users

Reply via email to