-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi,

I added error handing to jpoker getPlayerPlacesByName/playerLookup:
http://jpoker.aminche.com/hg/jpoker/rev/db1cf46ed760
and to the corresponding poker-network server side code (see new patch
attached).

Feel free to review and apply my changes.

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: http://getfiregpg.org

iD4DBQFIvQ6XZmEdV9SHoe4RAjk6AJUTFHsGoEtr3uQdnZaXa3OItANOAJ9cuksw
3+VfXMIq1rI+kMk1wqqWMA==
=SP8A
-----END PGP SIGNATURE-----

On Tue, Sep 2, 2008 at 10:06 AM, Johan Euphrosine <[EMAIL PROTECTED]> wrote:
> 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 ^
>



-- 
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%
Index: pokernetwork/pokerservice.py
===================================================================
--- pokernetwork/pokerservice.py	(revision 4402)
+++ pokernetwork/pokerservice.py	(working copy)
@@ -1387,6 +1387,14 @@
         return PacketPokerPlayerPlaces(serial = serial,
                                        tables = tables,
                                        tourneys = tourneys)
+
+    def getPlayerPlacesByName(self, name):
+        cursor = self.db.cursor()
+        cursor.execute("SELECT serial FROM users WHERE name = %s", name)
+        serial = cursor.fetchone()
+        if serial == None:
+            return PacketError(other_type = PACKET_POKER_PLAYER_PLACES)
+        return self.getPlayerPlaces(serial)
     
     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,18 +2914,63 @@
         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 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 getPlayerPlacesNone(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([], packet.tables)
         return (client, packet)
+
+    def getPlayerPlacesFailed(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_ERROR, packet.type)
+        self.assertEquals(PACKET_POKER_PLAYER_PLACES, packet.other_type)
+        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.login, 0)
-        d.addCallback(self.getPlayerPlaces, 0)
-        return d
+        d1 = self.client_factory[0].established_deferred
+        d1.addCallback(self.sendExplain)
+        d1.addCallback(self.sendRolePlay)
+        d1.addCallback(self.login, 0)
+        d1.addCallback(self.joinTable, 0, 2, 'Table2', '2-4-limit')
+        d1.addCallback(self.seatTable, 0, 2)
+        d1.addCallback(self.getPlayerPlaces, 0, 1)
+        d1.addCallback(self.getPlayerPlacesByName, 0, 'user0')
+        d1.addCallback(self.getPlayerPlacesFailed, 0, 'user999')
 
+        d2 = self.client_factory[1].established_deferred
+        d2.addCallback(self.sendExplain)
+        d2.addCallback(self.sendRolePlay)
+        d2.addCallback(self.login, 1)
+        d2.addCallback(self.getPlayerPlacesNone, 1, 'user1')        
+        return defer.DeferredList([d1, d2])
+
     # ------------------------------------------------------------------------
     def poll(self, (client, packet), id ):
         avatar = self.service.avatars[id]
_______________________________________________
Pokersource-users mailing list
[email protected]
https://mail.gna.org/listinfo/pokersource-users

Reply via email to