diff --git a/plugins/Gameknot.py b/plugins/Gameknot.py
index 6acd9ce9b..3c5e4b350 100644
--- a/plugins/Gameknot.py
+++ b/plugins/Gameknot.py
@@ -115,7 +115,8 @@ class Gameknot(callbacks.PrivmsgCommandAndRegexp):
_gkPlayer = re.compile(r"popd\('(Rating[^']+)'\).*?>([^<]+)<")
_gkRating = re.compile(r": (\d+)[^:]+:
(\d+)[^,]+, (\d+)[^,]+, (\d+)")
_gkGameTitle = re.compile(r"
(.*?)\s* \s*\(started")
- _gkWon = re.compile(r'>(\S+)\s+won\s+\((\S+)\s+(\S+)\)')
+ _gkWon = re.compile(r'>(\S+)\s+won')
+ _gkReason = re.compile(r'won\s+\(\S+\s+(\S+)\)')
def gameknotSnarfer(self, irc, msg, match):
r"http://(?:www\.)?gameknot.com/chess.pl\?bd=\d+(&r=\d+)?"
#debug.printf('Got a GK URL from %s' % msg.prefix)
@@ -139,8 +140,12 @@ class Gameknot(callbacks.PrivmsgCommandAndRegexp):
else:
# Game is over.
m = self._gkWon.search(s)
- (winner, loser, reason) = m.groups()
- debug.printf((winner, loser, reason))
+ winner = m.group(1)
+ m = self._gkReason.match(s)
+ if m:
+ reason = m.group(1)
+ else:
+ reason = 'lost'
if winner == 'white':
toMove = '%s won, %s %s.' % (wName, bName, reason)
else:
diff --git a/test/test_Gameknot.py b/test/test_Gameknot.py
index 41e168d2b..0e7d4dd58 100644
--- a/test/test_Gameknot.py
+++ b/test/test_Gameknot.py
@@ -48,6 +48,8 @@ class GameknotTestCase(PluginTestCase):
def testSnarfer(self):
self.assertRegexp('http://gameknot.com/chess.pl?bd=907498',
'\x02ddipaolo\x02 won')
+ self.assertRegexp('http://gameknot.com/chess.pl?bd=955432',
+ '\x02ddipaolo\x02 lost')