Merge branch 'master' of git://git.assembla.com/fpdb-eric into eric
This commit is contained in:
commit
90a2f59803
2
Makefile
2
Makefile
|
@ -1,4 +1,4 @@
|
||||||
#Copyright 2009-2010 Carl Gherardi
|
#Copyright 2009-2011 Carl Gherardi
|
||||||
#This program is free software: you can redistribute it and/or modify
|
#This program is free software: you can redistribute it and/or modify
|
||||||
#it under the terms of the GNU Affero General Public License as published by
|
#it under the terms of the GNU Affero General Public License as published by
|
||||||
#the Free Software Foundation, version 3 of the License.
|
#the Free Software Foundation, version 3 of the License.
|
||||||
|
|
|
@ -4,4 +4,4 @@ Upstream authors: ...
|
||||||
|
|
||||||
License: AGPL3; partially GPL2 or higher
|
License: AGPL3; partially GPL2 or higher
|
||||||
|
|
||||||
Copyright (C) 2008-2010 The FPDB developers
|
Copyright (C) 2008-2011 The FPDB developers
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# Copyright 1999-2010 Gentoo Foundation
|
# Copyright 1999-2011 Gentoo Foundation
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
# created by Steffen Schaumburg, steffen@schaumburger.info
|
# created by Steffen Schaumburg, steffen@schaumburger.info
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,9 @@
|
||||||
# Copyright 1999-2010 Gentoo Foundation
|
# Copyright 1999-2011 Gentoo Foundation
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
# $Header: $
|
# $Header: $
|
||||||
|
|
||||||
|
#TODO: Header, add cdecimal
|
||||||
|
|
||||||
EAPI="2"
|
EAPI="2"
|
||||||
|
|
||||||
inherit eutils games
|
inherit eutils games
|
||||||
|
|
|
@ -1,7 +1,9 @@
|
||||||
# Copyright 1999-2010 Gentoo Foundation
|
# Copyright 1999-2011 Gentoo Foundation
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
# $Header: $
|
# $Header: $
|
||||||
|
|
||||||
|
#TODO: Header, add cdecimal
|
||||||
|
|
||||||
EAPI="2"
|
EAPI="2"
|
||||||
|
|
||||||
inherit eutils games
|
inherit eutils games
|
||||||
|
|
|
@ -1,7 +1,9 @@
|
||||||
# Copyright 1999-2010 Gentoo Foundation
|
# Copyright 1999-2011 Gentoo Foundation
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
# $Header: $
|
# $Header: $
|
||||||
|
|
||||||
|
#TODO: Header, add cdecimal
|
||||||
|
|
||||||
EAPI="2"
|
EAPI="2"
|
||||||
|
|
||||||
inherit eutils games git
|
inherit eutils games git
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
; Copyright 2008-2010 Michael
|
; Copyright 2008-2011 Michael
|
||||||
; This program is free software: you can redistribute it and/or modify
|
; This program is free software: you can redistribute it and/or modify
|
||||||
; it under the terms of the GNU Affero General Public License as published by
|
; it under the terms of the GNU Affero General Public License as published by
|
||||||
; the Free Software Foundation, version 3 of the License.
|
; the Free Software Foundation, version 3 of the License.
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
Py2exe script for fpdb.
|
Py2exe script for fpdb.
|
||||||
"""
|
"""
|
||||||
# Copyright 2009-2010, Ray E. Barker
|
# Copyright 2009-2011, Ray E. Barker
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
#
|
#
|
||||||
# Copyright 2008-2010, Carl Gherardi
|
# Copyright 2008-2011, Carl Gherardi
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
@ -136,7 +136,7 @@ class Absolute(HandHistoryConverter):
|
||||||
m = self.re_GameInfo.search(handText)
|
m = self.re_GameInfo.search(handText)
|
||||||
if not m:
|
if not m:
|
||||||
tmp = handText[0:100]
|
tmp = handText[0:100]
|
||||||
log.error(_("determineGameType: Unable to recognise gametype from: '%s'") % tmp)
|
log.error(_("Unable to recognise gametype from: '%s'") % tmp)
|
||||||
log.error(_("determineGameType: Raising FpdbParseError"))
|
log.error(_("determineGameType: Raising FpdbParseError"))
|
||||||
raise FpdbParseError(_("Unable to recognise gametype from: '%s'") % tmp)
|
raise FpdbParseError(_("Unable to recognise gametype from: '%s'") % tmp)
|
||||||
|
|
||||||
|
@ -201,12 +201,12 @@ class Absolute(HandHistoryConverter):
|
||||||
if m is None or fname_info is None:
|
if m is None or fname_info is None:
|
||||||
if m is None:
|
if m is None:
|
||||||
tmp = hand.handText[0:100]
|
tmp = hand.handText[0:100]
|
||||||
logging.error(_("readHandInfo: Didn't match: '%s'") % tmp)
|
logging.error(_("Didn't match re_HandInfo: '%s'") % tmp)
|
||||||
raise FpdbParseError(_("Absolute: Didn't match re_HandInfo: '%s'") % tmp)
|
raise FpdbParseError("Absolute: " + _("Didn't match re_HandInfo: '%s'") % tmp)
|
||||||
elif fname_info is None:
|
elif fname_info is None:
|
||||||
logging.error(_("readHandInfo: File name didn't match re_*InfoFromFilename"))
|
logging.error(_("readHandInfo: File name didn't match re_*InfoFromFilename"))
|
||||||
logging.error(_("File name: %s") % self.in_path)
|
logging.error(_("File name: %s") % self.in_path)
|
||||||
raise FpdbParseError(_("Absolute: Didn't match re_*InfoFromFilename: '%s'") % self.in_path)
|
raise FpdbParseError("Absolute: " + _("Didn't match re_*InfoFromFilename: '%s'") % self.in_path)
|
||||||
|
|
||||||
logging.debug("HID %s, Table %s" % (m.group('HID'), m.group('TABLE')))
|
logging.debug("HID %s, Table %s" % (m.group('HID'), m.group('TABLE')))
|
||||||
hand.handid = m.group('HID')
|
hand.handid = m.group('HID')
|
||||||
|
@ -284,7 +284,7 @@ class Absolute(HandHistoryConverter):
|
||||||
def readBringIn(self, hand):
|
def readBringIn(self, hand):
|
||||||
m = self.re_BringIn.search(hand.handText,re.DOTALL)
|
m = self.re_BringIn.search(hand.handText,re.DOTALL)
|
||||||
if m:
|
if m:
|
||||||
logging.debug(_("Player bringing in: %s for %s" %(m.group('PNAME'), m.group('BRINGIN'))))
|
logging.debug(_("Player bringing in: %s for %s") % (m.group('PNAME'), m.group('BRINGIN')))
|
||||||
hand.addBringIn(m.group('PNAME'), m.group('BRINGIN'))
|
hand.addBringIn(m.group('PNAME'), m.group('BRINGIN'))
|
||||||
else:
|
else:
|
||||||
logging.warning(_("No bringin found."))
|
logging.warning(_("No bringin found."))
|
||||||
|
@ -348,7 +348,7 @@ class Absolute(HandHistoryConverter):
|
||||||
bet = action.group('BET').replace(',', '')
|
bet = action.group('BET').replace(',', '')
|
||||||
hand.addComplete( street, action.group('PNAME'), bet)
|
hand.addComplete( street, action.group('PNAME'), bet)
|
||||||
else:
|
else:
|
||||||
logging.debug(_("Unimplemented readAction: %s %s" %(action.group('PNAME'),action.group('ATYPE'),)))
|
logging.debug(_("Unimplemented readAction: %s %s") % (action.group('PNAME'),action.group('ATYPE')))
|
||||||
|
|
||||||
|
|
||||||
def readShowdownActions(self, hand):
|
def readShowdownActions(self, hand):
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
#Copyright 2009-2010 Grigorij Indigirkin
|
#Copyright 2009-2011 Grigorij Indigirkin
|
||||||
#This program is free software: you can redistribute it and/or modify
|
#This program is free software: you can redistribute it and/or modify
|
||||||
#it under the terms of the GNU Affero General Public License as published by
|
#it under the terms of the GNU Affero General Public License as published by
|
||||||
#the Free Software Foundation, version 3 of the License.
|
#the Free Software Foundation, version 3 of the License.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
#Copyright 2009-2010 Grigorij Indigirkin
|
#Copyright 2009-2011 Grigorij Indigirkin
|
||||||
#This program is free software: you can redistribute it and/or modify
|
#This program is free software: you can redistribute it and/or modify
|
||||||
#it under the terms of the GNU Affero General Public License as published by
|
#it under the terms of the GNU Affero General Public License as published by
|
||||||
#the Free Software Foundation, version 3 of the License.
|
#the Free Software Foundation, version 3 of the License.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
#Copyright 2009-2010 Grigorij Indigirkin
|
#Copyright 2009-2011 Grigorij Indigirkin
|
||||||
#This program is free software: you can redistribute it and/or modify
|
#This program is free software: you can redistribute it and/or modify
|
||||||
#it under the terms of the GNU Affero General Public License as published by
|
#it under the terms of the GNU Affero General Public License as published by
|
||||||
#the Free Software Foundation, version 3 of the License.
|
#the Free Software Foundation, version 3 of the License.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
#Copyright 2009-2010 Carl Gherardi
|
#Copyright 2009-2011 Carl Gherardi
|
||||||
#This program is free software: you can redistribute it and/or modify
|
#This program is free software: you can redistribute it and/or modify
|
||||||
#it under the terms of the GNU Affero General Public License as published by
|
#it under the terms of the GNU Affero General Public License as published by
|
||||||
#the Free Software Foundation, version 3 of the License.
|
#the Free Software Foundation, version 3 of the License.
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
|
|
||||||
Mucked cards display for FreePokerTools HUD.
|
Mucked cards display for FreePokerTools HUD.
|
||||||
"""
|
"""
|
||||||
# Copyright 2008-2010, Ray E. Barker
|
# Copyright 2008-2011, Ray E. Barker
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
#
|
#
|
||||||
# Copyright 2008-2010, Carl Gherardi
|
# Copyright 2008-2011, Carl Gherardi
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
@ -73,7 +73,7 @@ class Betfair(HandHistoryConverter):
|
||||||
m = self.re_GameInfo.search(handText)
|
m = self.re_GameInfo.search(handText)
|
||||||
if not m:
|
if not m:
|
||||||
tmp = handText[0:100]
|
tmp = handText[0:100]
|
||||||
log.error(_("determineGameType: Unable to recognise gametype from: '%s'") % tmp)
|
log.error(_("Unable to recognise gametype from: '%s'") % tmp)
|
||||||
log.error(_("determineGameType: Raising FpdbParseError"))
|
log.error(_("determineGameType: Raising FpdbParseError"))
|
||||||
raise FpdbParseError(_("Unable to recognise gametype from: '%s'") % tmp)
|
raise FpdbParseError(_("Unable to recognise gametype from: '%s'") % tmp)
|
||||||
|
|
||||||
|
@ -157,7 +157,7 @@ class Betfair(HandHistoryConverter):
|
||||||
def readBringIn(self, hand):
|
def readBringIn(self, hand):
|
||||||
m = self.re_BringIn.search(hand.handText,re.DOTALL)
|
m = self.re_BringIn.search(hand.handText,re.DOTALL)
|
||||||
if m:
|
if m:
|
||||||
logging.debug(_("Player bringing in: %s for %s" %(m.group('PNAME'), m.group('BRINGIN'))))
|
logging.debug(_("Player bringing in: %s for %s") % (m.group('PNAME'), m.group('BRINGIN')))
|
||||||
hand.addBringIn(m.group('PNAME'), m.group('BRINGIN'))
|
hand.addBringIn(m.group('PNAME'), m.group('BRINGIN'))
|
||||||
else:
|
else:
|
||||||
logging.warning(_("No bringin found"))
|
logging.warning(_("No bringin found"))
|
||||||
|
@ -196,7 +196,7 @@ class Betfair(HandHistoryConverter):
|
||||||
elif action.group('ATYPE') == 'checks':
|
elif action.group('ATYPE') == 'checks':
|
||||||
hand.addCheck( street, action.group('PNAME'))
|
hand.addCheck( street, action.group('PNAME'))
|
||||||
else:
|
else:
|
||||||
sys.stderr.write( _("DEBUG: unimplemented readAction: '%s' '%s'") %(action.group('PNAME'),action.group('ATYPE'),))
|
sys.stderr.write(_("DEBUG: ") + _("unimplemented readAction: '%s' '%s'") % (action.group('PNAME'),action.group('ATYPE')))
|
||||||
|
|
||||||
|
|
||||||
def readShowdownActions(self, hand):
|
def readShowdownActions(self, hand):
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
#
|
#
|
||||||
# Copyright 2010, Matthew Boss
|
# Copyright 2010-2011, Matthew Boss
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
@ -127,7 +127,7 @@ or None if we fail to get the info """
|
||||||
return self.info
|
return self.info
|
||||||
except AttributeError:
|
except AttributeError:
|
||||||
tmp = handText[0:100]
|
tmp = handText[0:100]
|
||||||
log.error(_("determineGameType: Unable to recognise gametype from: '%s'") % tmp)
|
log.error(_("Unable to recognise gametype from: '%s'") % tmp)
|
||||||
log.error(_("determineGameType: Raising FpdbParseError"))
|
log.error(_("determineGameType: Raising FpdbParseError"))
|
||||||
raise FpdbParseError(_("Unable to recognise gametype from: '%s'") % tmp)
|
raise FpdbParseError(_("Unable to recognise gametype from: '%s'") % tmp)
|
||||||
|
|
||||||
|
@ -264,8 +264,8 @@ or None if we fail to get the info """
|
||||||
elif action.group('ATYPE') == 'ALL_IN':
|
elif action.group('ATYPE') == 'ALL_IN':
|
||||||
hand.addAllIn(street, player, action.group('BET'))
|
hand.addAllIn(street, player, action.group('BET'))
|
||||||
else:
|
else:
|
||||||
logging.debug(_("Unimplemented readAction: %s %s"
|
logging.debug(_("Unimplemented readAction: %s %s")
|
||||||
% (action.group('PSEAT'),action.group('ATYPE'),)))
|
% (action.group('PSEAT'),action.group('ATYPE')))
|
||||||
|
|
||||||
def readShowdownActions(self, hand):
|
def readShowdownActions(self, hand):
|
||||||
for shows in self.re_ShowdownAction.finditer(hand.handText):
|
for shows in self.re_ShowdownAction.finditer(hand.handText):
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
#Copyright 2008-2010 Carl Gherardi
|
#Copyright 2008-2011 Carl Gherardi
|
||||||
#This program is free software: you can redistribute it and/or modify
|
#This program is free software: you can redistribute it and/or modify
|
||||||
#it under the terms of the GNU Affero General Public License as published by
|
#it under the terms of the GNU Affero General Public License as published by
|
||||||
#the Free Software Foundation, version 3 of the License.
|
#the Free Software Foundation, version 3 of the License.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
#Copyright 2010 Mika Bostrom
|
#Copyright 2010-2011 Mika Bostrom
|
||||||
#This program is free software: you can redistribute it and/or modify
|
#This program is free software: you can redistribute it and/or modify
|
||||||
#it under the terms of the GNU Affero General Public License as published by
|
#it under the terms of the GNU Affero General Public License as published by
|
||||||
#the Free Software Foundation, version 3 of the License.
|
#the Free Software Foundation, version 3 of the License.
|
||||||
|
|
|
@ -2,9 +2,9 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
"""Configuration.py
|
"""Configuration.py
|
||||||
|
|
||||||
Handles HUD configuration files.
|
Handles fpdb/fpdb-hud configuration files.
|
||||||
"""
|
"""
|
||||||
# Copyright 2008-2010, Ray E. Barker
|
# Copyright 2008-2011, Ray E. Barker
|
||||||
|
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
|
|
||||||
Create and manage the database objects.
|
Create and manage the database objects.
|
||||||
"""
|
"""
|
||||||
# Copyright 2008-2010, Ray E. Barker
|
# Copyright 2008-2011, Ray E. Barker
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
@ -1116,7 +1116,7 @@ class Database:
|
||||||
self.connection.set_isolation_level(1) # go back to normal isolation level
|
self.connection.set_isolation_level(1) # go back to normal isolation level
|
||||||
self.commit() # seems to clear up errors if there were any in postgres
|
self.commit() # seems to clear up errors if there were any in postgres
|
||||||
ptime = time() - stime
|
ptime = time() - stime
|
||||||
print _("prepare import took %s seconds" % ptime)
|
print (_("prepare import took %s seconds") % ptime)
|
||||||
#end def prepareBulkImport
|
#end def prepareBulkImport
|
||||||
|
|
||||||
def afterBulkImport(self):
|
def afterBulkImport(self):
|
||||||
|
@ -1191,7 +1191,7 @@ class Database:
|
||||||
self.connection.set_isolation_level(1) # go back to normal isolation level
|
self.connection.set_isolation_level(1) # go back to normal isolation level
|
||||||
self.commit() # seems to clear up errors if there were any in postgres
|
self.commit() # seems to clear up errors if there were any in postgres
|
||||||
atime = time() - stime
|
atime = time() - stime
|
||||||
print (_("After import took %s seconds" % atime))
|
print (_("After import took %s seconds") % atime)
|
||||||
#end def afterBulkImport
|
#end def afterBulkImport
|
||||||
|
|
||||||
def drop_referential_integrity(self):
|
def drop_referential_integrity(self):
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
#Copyright 2008-2010 Carl Gherardi
|
#Copyright 2008-2011 Carl Gherardi
|
||||||
#This program is free software: you can redistribute it and/or modify
|
#This program is free software: you can redistribute it and/or modify
|
||||||
#it under the terms of the GNU Affero General Public License as published by
|
#it under the terms of the GNU Affero General Public License as published by
|
||||||
#the Free Software Foundation, version 3 of the License.
|
#the Free Software Foundation, version 3 of the License.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
#
|
#
|
||||||
# Copyright 2011, Carl Gherardi
|
# Copyright 2010-2011, Carl Gherardi
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
@ -98,12 +98,13 @@ class Everest(HandHistoryConverter):
|
||||||
return self.info
|
return self.info
|
||||||
except AttributeError:
|
except AttributeError:
|
||||||
tmp = handText[0:100]
|
tmp = handText[0:100]
|
||||||
log.error(_("determineGameType: Unable to recognise gametype from: '%s'") % tmp)
|
log.error(_("Unable to recognise gametype from: '%s'") % tmp)
|
||||||
log.error(_("determineGameType: Raising FpdbParseError"))
|
log.error(_("determineGameType: Raising FpdbParseError"))
|
||||||
raise FpdbParseError(_("Unable to recognise gametype from: '%s'") % tmp)
|
raise FpdbParseError(_("Unable to recognise gametype from: '%s'") % tmp)
|
||||||
|
|
||||||
if not m2:
|
if not m2:
|
||||||
tmp = handText[0:100]
|
tmp = handText[0:100]
|
||||||
|
log.error(_("determineGameType: Raising FpdbParseError"))
|
||||||
raise FpdbParseError(_("Unable to recognise handinfo from: '%s'") % tmp)
|
raise FpdbParseError(_("Unable to recognise handinfo from: '%s'") % tmp)
|
||||||
|
|
||||||
self.info = {}
|
self.info = {}
|
||||||
|
@ -230,9 +231,9 @@ class Everest(HandHistoryConverter):
|
||||||
elif action.group('ATYPE') in ('FOLD', 'SIT_OUT'):
|
elif action.group('ATYPE') in ('FOLD', 'SIT_OUT'):
|
||||||
hand.addFold(street, player)
|
hand.addFold(street, player)
|
||||||
else:
|
else:
|
||||||
print (_("Unimplemented readAction: %s %s" % (action.group('PSEAT'),action.group('ATYPE'),)))
|
print (_("Unimplemented readAction: %s %s") % (action.group('PSEAT'),action.group('ATYPE')))
|
||||||
logging.debug(_("Unimplemented readAction: %s %s"
|
logging.debug(_("Unimplemented readAction: %s %s")
|
||||||
% (action.group('PSEAT'),action.group('ATYPE'),)))
|
% (action.group('PSEAT'),action.group('ATYPE')))
|
||||||
|
|
||||||
def readShowdownActions(self, hand):
|
def readShowdownActions(self, hand):
|
||||||
for shows in self.re_ShowdownAction.finditer(hand.handText):
|
for shows in self.re_ShowdownAction.finditer(hand.handText):
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
#
|
#
|
||||||
# Copyright 2008-2010, Carl Gherardi
|
# Copyright 2008-2011, Carl Gherardi
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
@ -107,7 +107,7 @@ or None if we fail to get the info """
|
||||||
m = self.re_GameInfo.search(handText)
|
m = self.re_GameInfo.search(handText)
|
||||||
if not m:
|
if not m:
|
||||||
tmp = handText[0:100]
|
tmp = handText[0:100]
|
||||||
log.error(_("determineGameType: Unable to recognise gametype from: '%s'") % tmp)
|
log.error(_("Unable to recognise gametype from: '%s'") % tmp)
|
||||||
log.error(_("determineGameType: Raising FpdbParseError"))
|
log.error(_("determineGameType: Raising FpdbParseError"))
|
||||||
raise FpdbParseError(_("Unable to recognise gametype from: '%s'") % tmp)
|
raise FpdbParseError(_("Unable to recognise gametype from: '%s'") % tmp)
|
||||||
|
|
||||||
|
@ -285,7 +285,7 @@ or None if we fail to get the info """
|
||||||
elif action.group('ATYPE') == ' complete to':
|
elif action.group('ATYPE') == ' complete to':
|
||||||
hand.addComplete( street, action.group('PNAME'), action.group('BET'))
|
hand.addComplete( street, action.group('PNAME'), action.group('BET'))
|
||||||
else:
|
else:
|
||||||
logging.debug(_("Unimplemented readAction: %s %s" %(action.group('PNAME'),action.group('ATYPE'),)))
|
logging.debug(_("Unimplemented readAction: %s %s") % (action.group('PNAME'),action.group('ATYPE')))
|
||||||
|
|
||||||
|
|
||||||
def readShowdownActions(self, hand):
|
def readShowdownActions(self, hand):
|
||||||
|
@ -294,7 +294,7 @@ or None if we fail to get the info """
|
||||||
for shows in self.re_ShowdownAction.finditer(hand.handText):
|
for shows in self.re_ShowdownAction.finditer(hand.handText):
|
||||||
cards = shows.group('CARDS')
|
cards = shows.group('CARDS')
|
||||||
cards = cards.split(', ')
|
cards = cards.split(', ')
|
||||||
logging.debug(_("readShowdownActions %s %s" %(cards, shows.group('PNAME'))))
|
logging.debug(_("readShowdownActions %s %s") % (cards, shows.group('PNAME')))
|
||||||
hand.addShownCards(cards, shows.group('PNAME'))
|
hand.addShownCards(cards, shows.group('PNAME'))
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
#Copyright 2009-2010 Matt Turnbull
|
#Copyright 2009-2011 Matt Turnbull
|
||||||
#This program is free software: you can redistribute it and/or modify
|
#This program is free software: you can redistribute it and/or modify
|
||||||
#it under the terms of the GNU Affero General Public License as published by
|
#it under the terms of the GNU Affero General Public License as published by
|
||||||
#the Free Software Foundation, version 3 of the License.
|
#the Free Software Foundation, version 3 of the License.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
#Copyright 2008-2010 Steffen Schaumburg
|
#Copyright 2008-2011 Steffen Schaumburg
|
||||||
#This program is free software: you can redistribute it and/or modify
|
#This program is free software: you can redistribute it and/or modify
|
||||||
#it under the terms of the GNU Affero General Public License as published by
|
#it under the terms of the GNU Affero General Public License as published by
|
||||||
#the Free Software Foundation, version 3 of the License.
|
#the Free Software Foundation, version 3 of the License.
|
||||||
|
@ -77,7 +77,7 @@ class Filters(threading.Thread):
|
||||||
self.mainVBox = gtk.VBox(False, 0)
|
self.mainVBox = gtk.VBox(False, 0)
|
||||||
self.sw.add_with_viewport(self.mainVBox)
|
self.sw.add_with_viewport(self.mainVBox)
|
||||||
self.sw.show()
|
self.sw.show()
|
||||||
print _("DEBUG: New packing box created!")
|
print(_("DEBUG: ") + _("New packing box created!"))
|
||||||
|
|
||||||
self.found = {'nl':False, 'fl':False, 'pl':False, 'cn':False, 'ring':False, 'tour':False}
|
self.found = {'nl':False, 'fl':False, 'pl':False, 'cn':False, 'ring':False, 'tour':False}
|
||||||
self.label = {}
|
self.label = {}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
#Copyright 2008-2010 Steffen Schaumburg
|
#Copyright 2008-2011 Steffen Schaumburg
|
||||||
#This program is free software: you can redistribute it and/or modify
|
#This program is free software: you can redistribute it and/or modify
|
||||||
#it under the terms of the GNU Affero General Public License as published by
|
#it under the terms of the GNU Affero General Public License as published by
|
||||||
#the Free Software Foundation, version 3 of the License.
|
#the Free Software Foundation, version 3 of the License.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
#
|
#
|
||||||
# Copyright 2008-2010, Carl Gherardi
|
# Copyright 2008-2011, Carl Gherardi
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
@ -208,8 +208,8 @@ class Fulltilt(HandHistoryConverter):
|
||||||
m = self.re_GameInfo.search(handText)
|
m = self.re_GameInfo.search(handText)
|
||||||
if not m:
|
if not m:
|
||||||
tmp = handText[0:100]
|
tmp = handText[0:100]
|
||||||
|
log.error(_("Unable to recognise gametype from: '%s'") % tmp)
|
||||||
log.error(_("determineGameType: Raising FpdbParseError for file '%s'") % self.in_path)
|
log.error(_("determineGameType: Raising FpdbParseError for file '%s'") % self.in_path)
|
||||||
log.error(_("determineGameType: Unable to recognise gametype from: '%s'") % tmp)
|
|
||||||
raise FpdbParseError(_("Unable to recognise gametype from: '%s'") % tmp)
|
raise FpdbParseError(_("Unable to recognise gametype from: '%s'") % tmp)
|
||||||
mg = m.groupdict()
|
mg = m.groupdict()
|
||||||
|
|
||||||
|
@ -248,7 +248,7 @@ class Fulltilt(HandHistoryConverter):
|
||||||
info['sb'] = self.Lim_Blinds[mg['BB']][0]
|
info['sb'] = self.Lim_Blinds[mg['BB']][0]
|
||||||
info['bb'] = self.Lim_Blinds[mg['BB']][1]
|
info['bb'] = self.Lim_Blinds[mg['BB']][1]
|
||||||
except KeyError:
|
except KeyError:
|
||||||
log.error(_("determineGameType: Lim_Blinds has no lookup for '%s'" % mg['BB']))
|
log.error(_("Lim_Blinds has no lookup for '%s'") % mg['BB'])
|
||||||
log.error(_("determineGameType: Raising FpdbParseError"))
|
log.error(_("determineGameType: Raising FpdbParseError"))
|
||||||
raise FpdbParseError(_("Lim_Blinds has no lookup for '%s'") % mg['BB'])
|
raise FpdbParseError(_("Lim_Blinds has no lookup for '%s'") % mg['BB'])
|
||||||
|
|
||||||
|
@ -263,8 +263,9 @@ class Fulltilt(HandHistoryConverter):
|
||||||
m = self.re_HandInfo.search(hand.handText)
|
m = self.re_HandInfo.search(hand.handText)
|
||||||
if m is None:
|
if m is None:
|
||||||
tmp = hand.handText[0:100]
|
tmp = hand.handText[0:100]
|
||||||
log.error(_("readHandInfo: Unable to recognise handinfo from: '%s'") % tmp)
|
log.error(_("Unable to recognise handinfo from: '%s'") % tmp)
|
||||||
raise FpdbParseError(_("No match in readHandInfo."))
|
log.error(_("readHandInfo: Raising FpdbParseError"))
|
||||||
|
raise FpdbParseError(_("Unable to recognise handinfo from: '%s'"))
|
||||||
|
|
||||||
#print "DEBUG: m.groupdict: %s" % m.groupdict()
|
#print "DEBUG: m.groupdict: %s" % m.groupdict()
|
||||||
hand.handid = m.group('HID')
|
hand.handid = m.group('HID')
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
#Copyright 2008-2010 Steffen Schaumburg
|
#Copyright 2008-2011 Steffen Schaumburg
|
||||||
#This program is free software: you can redistribute it and/or modify
|
#This program is free software: you can redistribute it and/or modify
|
||||||
#it under the terms of the GNU Affero General Public License as published by
|
#it under the terms of the GNU Affero General Public License as published by
|
||||||
#the Free Software Foundation, version 3 of the License.
|
#the Free Software Foundation, version 3 of the License.
|
||||||
|
@ -200,7 +200,7 @@ class GuiAutoImport (threading.Thread):
|
||||||
for site in the_sites:
|
for site in the_sites:
|
||||||
params = self.config.get_site_parameters(site)
|
params = self.config.get_site_parameters(site)
|
||||||
if params['enabled'] == True:
|
if params['enabled'] == True:
|
||||||
print "DEBUG: Detecting hh directory for site: '%s'" % site
|
print (_("DEBUG: ") + _("Detecting hh directory for site: '%s'") % site)
|
||||||
if os.name == 'posix':
|
if os.name == 'posix':
|
||||||
if self.posix_detect_hh_dirs(site):
|
if self.posix_detect_hh_dirs(site):
|
||||||
#data[1].set_text(dia_chooser.get_filename())
|
#data[1].set_text(dia_chooser.get_filename())
|
||||||
|
@ -313,7 +313,7 @@ class GuiAutoImport (threading.Thread):
|
||||||
#enabling and disabling sites from this interface not possible
|
#enabling and disabling sites from this interface not possible
|
||||||
#expects a box to layout the line horizontally
|
#expects a box to layout the line horizontally
|
||||||
def createSiteLine(self, hbox1, hbox2, site, iconpath, hhpath, filter_name, active = True):
|
def createSiteLine(self, hbox1, hbox2, site, iconpath, hhpath, filter_name, active = True):
|
||||||
label = gtk.Label("%s auto-import:" % site)
|
label = gtk.Label(_("%s auto-import:") % site)
|
||||||
hbox1.pack_start(label, False, False, 3)
|
hbox1.pack_start(label, False, False, 3)
|
||||||
label.show()
|
label.show()
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
#Copyright 2008-2010 Steffen Schaumburg
|
#Copyright 2008-2011 Steffen Schaumburg
|
||||||
#This program is free software: you can redistribute it and/or modify
|
#This program is free software: you can redistribute it and/or modify
|
||||||
#it under the terms of the GNU Affero General Public License as published by
|
#it under the terms of the GNU Affero General Public License as published by
|
||||||
#the Free Software Foundation, version 3 of the License.
|
#the Free Software Foundation, version 3 of the License.
|
||||||
|
@ -203,7 +203,7 @@ class GuiBulkImport():
|
||||||
if not self.allowThreads:
|
if not self.allowThreads:
|
||||||
self.spin_threads.set_sensitive(False)
|
self.spin_threads.set_sensitive(False)
|
||||||
|
|
||||||
# checkbox - fail on error?
|
# checkbox - archive file?
|
||||||
self.is_archive = gtk.CheckButton(_('Archive File'))
|
self.is_archive = gtk.CheckButton(_('Archive File'))
|
||||||
self.table.attach(self.is_archive, 0, 1, 1, 2, xpadding=10, ypadding=0, yoptions=gtk.SHRINK)
|
self.table.attach(self.is_archive, 0, 1, 1, 2, xpadding=10, ypadding=0, yoptions=gtk.SHRINK)
|
||||||
self.is_archive.show()
|
self.is_archive.show()
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
#Copyright 2008-2010 Carl Gherardi
|
#Copyright 2008-2011 Carl Gherardi
|
||||||
#This program is free software: you can redistribute it and/or modify
|
#This program is free software: you can redistribute it and/or modify
|
||||||
#it under the terms of the GNU Affero General Public License as published by
|
#it under the terms of the GNU Affero General Public License as published by
|
||||||
#the Free Software Foundation, version 3 of the License.
|
#the Free Software Foundation, version 3 of the License.
|
||||||
|
@ -478,7 +478,7 @@ class AddDB(gtk.Dialog):
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
response = super(AddDB,self).run()
|
response = super(AddDB,self).run()
|
||||||
log.debug(_("addDB.run: response is %s accept is %s" % (str(response), str(int(gtk.RESPONSE_ACCEPT)))))
|
log.debug(_("addDB.run: response is %s accept is %s") % (str(response), str(int(gtk.RESPONSE_ACCEPT))))
|
||||||
|
|
||||||
ok,retry = False,True
|
ok,retry = False,True
|
||||||
while response == gtk.RESPONSE_ACCEPT:
|
while response == gtk.RESPONSE_ACCEPT:
|
||||||
|
@ -579,7 +579,7 @@ class AddDB(gtk.Dialog):
|
||||||
dia.vbox.add(l)
|
dia.vbox.add(l)
|
||||||
dia.show_all()
|
dia.show_all()
|
||||||
ret = dia.run()
|
ret = dia.run()
|
||||||
log.debug(_("check_fields: ret is %s cancel is %s" % (str(ret), str(int(gtk.RESPONSE_CANCEL)))))
|
log.debug(_("check_fields: ret is %s cancel is %s") % (str(ret), str(int(gtk.RESPONSE_CANCEL))))
|
||||||
if ret == gtk.RESPONSE_YES:
|
if ret == gtk.RESPONSE_YES:
|
||||||
try_again = True
|
try_again = True
|
||||||
log.debug(_("check_fields: destroy dialog"))
|
log.debug(_("check_fields: destroy dialog"))
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
#Copyright 2008-2010 Steffen Schaumburg
|
#Copyright 2008-2011 Steffen Schaumburg
|
||||||
#This program is free software: you can redistribute it and/or modify
|
#This program is free software: you can redistribute it and/or modify
|
||||||
#it under the terms of the GNU Affero General Public License as published by
|
#it under the terms of the GNU Affero General Public License as published by
|
||||||
#the Free Software Foundation, version 3 of the License.
|
#the Free Software Foundation, version 3 of the License.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
#Copyright 2010 Steffen Schaumburg
|
#Copyright 2010-2011 Steffen Schaumburg
|
||||||
#This program is free software: you can redistribute it and/or modify
|
#This program is free software: you can redistribute it and/or modify
|
||||||
#it under the terms of the GNU Affero General Public License as published by
|
#it under the terms of the GNU Affero General Public License as published by
|
||||||
#the Free Software Foundation, version 3 of the License.
|
#the Free Software Foundation, version 3 of the License.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
#Copyright 2008-2010 Carl Gherardi
|
#Copyright 2008-2011 Carl Gherardi
|
||||||
#This program is free software: you can redistribute it and/or modify
|
#This program is free software: you can redistribute it and/or modify
|
||||||
#it under the terms of the GNU Affero General Public License as published by
|
#it under the terms of the GNU Affero General Public License as published by
|
||||||
#the Free Software Foundation, version 3 of the License.
|
#the Free Software Foundation, version 3 of the License.
|
||||||
|
@ -35,10 +35,10 @@ log = logging.getLogger("logview")
|
||||||
|
|
||||||
MAX_LINES = 100000 # max lines to display in window
|
MAX_LINES = 100000 # max lines to display in window
|
||||||
EST_CHARS_PER_LINE = 150 # used to guesstimate number of lines in log file
|
EST_CHARS_PER_LINE = 150 # used to guesstimate number of lines in log file
|
||||||
LOGFILES = [ [ 'Fpdb Errors', 'fpdb-errors.txt', False ] # label, filename, start value
|
LOGFILES = [ [ _('Fpdb Errors'), 'fpdb-errors.txt', False ] # label, filename, start value
|
||||||
, [ 'Fpdb Log', 'fpdb-log.txt', True ]
|
, [ _('Fpdb Log'), 'fpdb-log.txt', True ]
|
||||||
, [ 'HUD Errors', 'HUD-errors.txt', False ]
|
, [ _('HUD Errors'), 'HUD-errors.txt', False ]
|
||||||
, [ 'HUD Log', 'HUD-log.txt', False ]
|
, [ _('HUD Log'), 'HUD-log.txt', False ]
|
||||||
]
|
]
|
||||||
|
|
||||||
class GuiLogView:
|
class GuiLogView:
|
||||||
|
@ -95,10 +95,10 @@ class GuiLogView:
|
||||||
self.vbox.show()
|
self.vbox.show()
|
||||||
self.dia.set_focus(self.listview)
|
self.dia.set_focus(self.listview)
|
||||||
|
|
||||||
col = self.addColumn("Date/Time", 0)
|
col = self.addColumn(_("Date/Time"), 0)
|
||||||
col = self.addColumn("Module", 1)
|
col = self.addColumn(_("Module"), 1)
|
||||||
col = self.addColumn("Level", 2)
|
col = self.addColumn(_("Level"), 2)
|
||||||
col = self.addColumn("Text", 3)
|
col = self.addColumn(_("Text"), 3)
|
||||||
|
|
||||||
self.loadLog()
|
self.loadLog()
|
||||||
self.vbox.show_all()
|
self.vbox.show_all()
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
#Copyright 2010 Steffen Schaumburg
|
#Copyright 2010-2011 Steffen Schaumburg
|
||||||
#This program is free software: you can redistribute it and/or modify
|
#This program is free software: you can redistribute it and/or modify
|
||||||
#it under the terms of the GNU Affero General Public License as published by
|
#it under the terms of the GNU Affero General Public License as published by
|
||||||
#the Free Software Foundation, version 3 of the License.
|
#the Free Software Foundation, version 3 of the License.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
#Copyright 2008-2010 Steffen Schaumburg
|
#Copyright 2008-2011 Steffen Schaumburg
|
||||||
#This program is free software: you can redistribute it and/or modify
|
#This program is free software: you can redistribute it and/or modify
|
||||||
#it under the terms of the GNU Affero General Public License as published by
|
#it under the terms of the GNU Affero General Public License as published by
|
||||||
#the Free Software Foundation, version 3 of the License.
|
#the Free Software Foundation, version 3 of the License.
|
||||||
|
@ -60,7 +60,7 @@ class GuiPositionalStats (threading.Thread):
|
||||||
}
|
}
|
||||||
|
|
||||||
self.filters = Filters.Filters(self.db, self.conf, self.sql, display = filters_display)
|
self.filters = Filters.Filters(self.db, self.conf, self.sql, display = filters_display)
|
||||||
self.filters.registerButton1Name("Refresh")
|
self.filters.registerButton1Name(_("Refresh"))
|
||||||
self.filters.registerButton1Callback(self.refreshStats)
|
self.filters.registerButton1Callback(self.refreshStats)
|
||||||
|
|
||||||
# ToDo: store in config
|
# ToDo: store in config
|
||||||
|
@ -134,7 +134,7 @@ class GuiPositionalStats (threading.Thread):
|
||||||
def toggleCallback(self, widget, data=None):
|
def toggleCallback(self, widget, data=None):
|
||||||
# print "%s was toggled %s" % (data, ("OFF", "ON")[widget.get_active()])
|
# print "%s was toggled %s" % (data, ("OFF", "ON")[widget.get_active()])
|
||||||
self.activesite = data
|
self.activesite = data
|
||||||
print _("DEBUG: activesite set to %s") %(self.activesite)
|
print (_("DEBUG: ") + _("activesite set to %s") % (self.activesite))
|
||||||
|
|
||||||
def refreshStats(self, widget, data):
|
def refreshStats(self, widget, data):
|
||||||
try: self.stats_vbox.destroy()
|
try: self.stats_vbox.destroy()
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
#Copyright 2008-2010 Carl Gherardi
|
#Copyright 2008-2011 Carl Gherardi
|
||||||
#This program is free software: you can redistribute it and/or modify
|
#This program is free software: you can redistribute it and/or modify
|
||||||
#it under the terms of the GNU Affero General Public License as published by
|
#it under the terms of the GNU Affero General Public License as published by
|
||||||
#the Free Software Foundation, version 3 of the License.
|
#the Free Software Foundation, version 3 of the License.
|
||||||
|
@ -28,18 +28,18 @@ import gobject
|
||||||
|
|
||||||
import Configuration
|
import Configuration
|
||||||
|
|
||||||
rewrite = { 'general' : 'General', 'supported_databases' : 'Databases'
|
rewrite = { 'general' : _('General'), 'supported_databases' : _('Databases')
|
||||||
, 'import' : 'Import', 'hud_ui' : 'HUD'
|
, 'import' : _('Import'), 'hud_ui' : _('HUD')
|
||||||
, 'supported_sites' : 'Sites', 'supported_games' : 'Games'
|
, 'supported_sites' : _('Sites'), 'supported_games' : _('Games')
|
||||||
, 'popup_windows' : 'Popup Windows', 'pu' : 'Window'
|
, 'popup_windows' : _('Popup Windows'), 'pu' : _('Window')
|
||||||
, 'pu_name' : 'Popup Name', 'pu_stat' : 'Stat'
|
, 'pu_name' : _('Popup Name'), 'pu_stat' : _('Stat')
|
||||||
, 'pu_stat_name' : 'Stat Name'
|
, 'pu_stat_name' : _('Stat Name')
|
||||||
, 'aux_windows' : 'Auxiliary Windows', 'aw stud_mucked' : 'stud_mucked'
|
, 'aux_windows' : _('Auxiliary Windows'), 'aw stud_mucked' : _('stud_mucked')
|
||||||
, 'aw mucked' : 'mucked', 'hhcs' : 'Hand History Converters'
|
, 'aw mucked' : _('mucked'), 'hhcs' : _('Hand History Converters')
|
||||||
, 'gui_cash_stats' : 'Ring Player Stats', 'field_type' : 'Field Type'
|
, 'gui_cash_stats' : _('Ring Player Stats'), 'field_type' : _('Field Type')
|
||||||
, 'col_title' : 'Column Heading', 'xalignment' : 'Left/Right Align'
|
, 'col_title' : _('Column Heading'), 'xalignment' : _('Left/Right Align')
|
||||||
, 'disp_all' : 'Show in Summaries', 'disp_posn' : 'Show in Position Stats'
|
, 'disp_all' : _('Show in Summaries'), 'disp_posn' : _('Show in Position Stats')
|
||||||
, 'col_name' : 'Stat Name', 'field_format' : 'Format'
|
, 'col_name' : _('Stat Name'), 'field_format' : _('Format')
|
||||||
}
|
}
|
||||||
|
|
||||||
class GuiPrefs:
|
class GuiPrefs:
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
#Copyright 2010 Maxime Grandchamp
|
#Copyright 2010-2011 Maxime Grandchamp
|
||||||
#This program is free software: you can redistribute it and/or modify
|
#This program is free software: you can redistribute it and/or modify
|
||||||
#it under the terms of the GNU Affero General Public License as published by
|
#it under the terms of the GNU Affero General Public License as published by
|
||||||
#the Free Software Foundation, version 3 of the License.
|
#the Free Software Foundation, version 3 of the License.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
#Copyright 2008-2010 Steffen Schaumburg
|
#Copyright 2008-2011 Steffen Schaumburg
|
||||||
#This program is free software: you can redistribute it and/or modify
|
#This program is free software: you can redistribute it and/or modify
|
||||||
#it under the terms of the GNU Affero General Public License as published by
|
#it under the terms of the GNU Affero General Public License as published by
|
||||||
#the Free Software Foundation, version 3 of the License.
|
#the Free Software Foundation, version 3 of the License.
|
||||||
|
@ -120,7 +120,7 @@ class GuiRingPlayerStats (GuiPlayerStats.GuiPlayerStats):
|
||||||
settings.update(self.conf.get_default_paths())
|
settings.update(self.conf.get_default_paths())
|
||||||
|
|
||||||
# text used on screen stored here so that it can be configured
|
# text used on screen stored here so that it can be configured
|
||||||
self.filterText = {'handhead':'Hand Breakdown for all levels listed above'
|
self.filterText = {'handhead':_('Hand Breakdown for all levels listed above')
|
||||||
}
|
}
|
||||||
|
|
||||||
filters_display = { "Heroes" : True,
|
filters_display = { "Heroes" : True,
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
#Copyright 2008-2010 Steffen Schaumburg
|
#Copyright 2008-2011 Steffen Schaumburg
|
||||||
#This program is free software: you can redistribute it and/or modify
|
#This program is free software: you can redistribute it and/or modify
|
||||||
#it under the terms of the GNU Affero General Public License as published by
|
#it under the terms of the GNU Affero General Public License as published by
|
||||||
#the Free Software Foundation, version 3 of the License.
|
#the Free Software Foundation, version 3 of the License.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
#Copyright 2008-2010 Steffen Schaumburg
|
#Copyright 2008-2011 Steffen Schaumburg
|
||||||
#This program is free software: you can redistribute it and/or modify
|
#This program is free software: you can redistribute it and/or modify
|
||||||
#it under the terms of the GNU Affero General Public License as published by
|
#it under the terms of the GNU Affero General Public License as published by
|
||||||
#the Free Software Foundation, version 3 of the License.
|
#the Free Software Foundation, version 3 of the License.
|
||||||
|
@ -94,14 +94,14 @@ class GuiStove():
|
||||||
return combobox
|
return combobox
|
||||||
|
|
||||||
def createDrawTab(self):
|
def createDrawTab(self):
|
||||||
tab_title = "Draw"
|
tab_title = _("Draw")
|
||||||
label = gtk.Label(tab_title)
|
label = gtk.Label(tab_title)
|
||||||
|
|
||||||
ddbox = gtk.VBox(False, 0)
|
ddbox = gtk.VBox(False, 0)
|
||||||
self.notebook.append_page(ddbox, label)
|
self.notebook.append_page(ddbox, label)
|
||||||
|
|
||||||
def createStudTab(self):
|
def createStudTab(self):
|
||||||
tab_title = "Stud"
|
tab_title = _("Stud")
|
||||||
label = gtk.Label(tab_title)
|
label = gtk.Label(tab_title)
|
||||||
|
|
||||||
ddbox = gtk.VBox(False, 0)
|
ddbox = gtk.VBox(False, 0)
|
||||||
|
@ -112,7 +112,7 @@ class GuiStove():
|
||||||
# / gamehbox / in_frame / table /
|
# / gamehbox / in_frame / table /
|
||||||
# / out_frame
|
# / out_frame
|
||||||
|
|
||||||
tab_title = "Flop"
|
tab_title = _("Flop")
|
||||||
label = gtk.Label(tab_title)
|
label = gtk.Label(tab_title)
|
||||||
|
|
||||||
ddbox = gtk.VBox(False, 0)
|
ddbox = gtk.VBox(False, 0)
|
||||||
|
@ -131,17 +131,17 @@ class GuiStove():
|
||||||
flop_games_cb = self.create_combo_box(games)
|
flop_games_cb = self.create_combo_box(games)
|
||||||
players_cb = self.create_combo_box(players)
|
players_cb = self.create_combo_box(players)
|
||||||
|
|
||||||
label = gtk.Label("Gametype:")
|
label = gtk.Label(_("Gametype:"))
|
||||||
ddhbox.add(label)
|
ddhbox.add(label)
|
||||||
ddhbox.add(flop_games_cb)
|
ddhbox.add(flop_games_cb)
|
||||||
label = gtk.Label("Players:")
|
label = gtk.Label(_("Players:"))
|
||||||
ddhbox.add(label)
|
ddhbox.add(label)
|
||||||
ddhbox.add(players_cb)
|
ddhbox.add(players_cb)
|
||||||
|
|
||||||
# Frames for Stove input and output
|
# Frames for Stove input and output
|
||||||
|
|
||||||
in_frame = gtk.Frame("Input:")
|
in_frame = gtk.Frame(_("Input:"))
|
||||||
out_frame = gtk.Frame("Output:")
|
out_frame = gtk.Frame(_("Output:"))
|
||||||
|
|
||||||
gamehbox.add(in_frame)
|
gamehbox.add(in_frame)
|
||||||
gamehbox.add(out_frame)
|
gamehbox.add(out_frame)
|
||||||
|
@ -167,7 +167,7 @@ Against the range: {
|
||||||
|
|
||||||
# Input Frame
|
# Input Frame
|
||||||
table = gtk.Table(4, 5, True)
|
table = gtk.Table(4, 5, True)
|
||||||
label = gtk.Label("Board:")
|
label = gtk.Label(_("Board:"))
|
||||||
board = gtk.Entry()
|
board = gtk.Entry()
|
||||||
board.connect("changed", self.set_board_flop, board)
|
board.connect("changed", self.set_board_flop, board)
|
||||||
|
|
||||||
|
@ -179,7 +179,7 @@ Against the range: {
|
||||||
table.attach(btn1, 2, 3, 0, 1, xoptions=gtk.SHRINK, yoptions=gtk.SHRINK)
|
table.attach(btn1, 2, 3, 0, 1, xoptions=gtk.SHRINK, yoptions=gtk.SHRINK)
|
||||||
|
|
||||||
|
|
||||||
label = gtk.Label("Player1:")
|
label = gtk.Label(_("Player1:"))
|
||||||
board = gtk.Entry()
|
board = gtk.Entry()
|
||||||
board.connect("changed", self.set_hero_cards_flop, board)
|
board.connect("changed", self.set_hero_cards_flop, board)
|
||||||
btn2 = gtk.Button()
|
btn2 = gtk.Button()
|
||||||
|
@ -194,7 +194,7 @@ Against the range: {
|
||||||
table.attach(btn3, 3, 4, 1, 2, xoptions=gtk.SHRINK, yoptions=gtk.SHRINK)
|
table.attach(btn3, 3, 4, 1, 2, xoptions=gtk.SHRINK, yoptions=gtk.SHRINK)
|
||||||
|
|
||||||
|
|
||||||
label = gtk.Label("Player2:")
|
label = gtk.Label(_("Player2:"))
|
||||||
board = gtk.Entry()
|
board = gtk.Entry()
|
||||||
board.connect("changed", self.set_villain_cards_flop, board)
|
board.connect("changed", self.set_villain_cards_flop, board)
|
||||||
btn4 = gtk.Button()
|
btn4 = gtk.Button()
|
||||||
|
@ -208,7 +208,7 @@ Against the range: {
|
||||||
table.attach(btn4, 2, 3, 2, 3, xoptions=gtk.SHRINK, yoptions=gtk.SHRINK)
|
table.attach(btn4, 2, 3, 2, 3, xoptions=gtk.SHRINK, yoptions=gtk.SHRINK)
|
||||||
table.attach(btn5, 3, 4, 2, 3, xoptions=gtk.SHRINK, yoptions=gtk.SHRINK)
|
table.attach(btn5, 3, 4, 2, 3, xoptions=gtk.SHRINK, yoptions=gtk.SHRINK)
|
||||||
|
|
||||||
btn6 = gtk.Button("Results")
|
btn6 = gtk.Button(_("Results"))
|
||||||
btn6.connect("pressed", self.update_flop_output_pane, btn6)
|
btn6.connect("pressed", self.update_flop_output_pane, btn6)
|
||||||
table.attach(btn6, 0, 1, 3, 4, xoptions=gtk.SHRINK, yoptions=gtk.SHRINK)
|
table.attach(btn6, 0, 1, 3, 4, xoptions=gtk.SHRINK, yoptions=gtk.SHRINK)
|
||||||
|
|
||||||
|
@ -218,25 +218,25 @@ Against the range: {
|
||||||
self.outputlabel.set_text(string)
|
self.outputlabel.set_text(string)
|
||||||
|
|
||||||
def set_board_flop(self, caller, widget):
|
def set_board_flop(self, caller, widget):
|
||||||
print "DEBUG: called set_board_flop: '%s' '%s'" %(caller ,widget)
|
print (_("DEBUG: ") + _("called set_board_flop: '%s' '%s'") % (caller ,widget))
|
||||||
self.boardtext = widget.get_text()
|
self.boardtext = widget.get_text()
|
||||||
|
|
||||||
def set_hero_cards_flop(self, caller, widget):
|
def set_hero_cards_flop(self, caller, widget):
|
||||||
print "DEBUG: called set_hero_cards_flop"
|
print (_("DEBUG: ") + _("called set_hero_cards_flop"))
|
||||||
self.herorange = widget.get_text()
|
self.herorange = widget.get_text()
|
||||||
|
|
||||||
def set_villain_cards_flop(self, caller, widget):
|
def set_villain_cards_flop(self, caller, widget):
|
||||||
print "DEBUG: called set_villain_cards_flop"
|
print (_("DEBUG: ") + _("called set_villain_cards_flop"))
|
||||||
self.villainrange = widget.get_text()
|
self.villainrange = widget.get_text()
|
||||||
|
|
||||||
def update_flop_output_pane(self, caller, widget):
|
def update_flop_output_pane(self, caller, widget):
|
||||||
print "DEBUG: called update_flop_output_pane"
|
print (_("DEBUG: ") + _("called update_flop_output_pane"))
|
||||||
self.stove.set_board_string(self.boardtext)
|
self.stove.set_board_string(self.boardtext)
|
||||||
self.stove.set_hero_cards_string(self.herorange)
|
self.stove.set_hero_cards_string(self.herorange)
|
||||||
self.stove.set_villain_range_string(self.villainrange)
|
self.stove.set_villain_range_string(self.villainrange)
|
||||||
print "DEBUG: odds_for_range"
|
print (_("DEBUG: ") + ("odds_for_range"))
|
||||||
self.ev = Stove.odds_for_range(self.stove)
|
self.ev = Stove.odds_for_range(self.stove)
|
||||||
print "DEBUG: set_output_label"
|
print (_("DEBUG: ") + ("set_output_label"))
|
||||||
self.set_output_label(self.ev.output)
|
self.set_output_label(self.ev.output)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
#Copyright 2008-2010 Carl Gherardi
|
#Copyright 2008-2011 Carl Gherardi
|
||||||
#This program is free software: you can redistribute it and/or modify
|
#This program is free software: you can redistribute it and/or modify
|
||||||
#it under the terms of the GNU Affero General Public License as published by
|
#it under the terms of the GNU Affero General Public License as published by
|
||||||
#the Free Software Foundation, version 3 of the License.
|
#the Free Software Foundation, version 3 of the License.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
#Copyright 2008-2010 Carl Gherardi
|
#Copyright 2008-2011 Carl Gherardi
|
||||||
#This program is free software: you can redistribute it and/or modify
|
#This program is free software: you can redistribute it and/or modify
|
||||||
#it under the terms of the GNU Affero General Public License as published by
|
#it under the terms of the GNU Affero General Public License as published by
|
||||||
#the Free Software Foundation, version 3 of the License.
|
#the Free Software Foundation, version 3 of the License.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
#Copyright 2010 Steffen Schaumburg
|
#Copyright 2010-2011 Steffen Schaumburg
|
||||||
#This program is free software: you can redistribute it and/or modify
|
#This program is free software: you can redistribute it and/or modify
|
||||||
#it under the terms of the GNU Affero General Public License as published by
|
#it under the terms of the GNU Affero General Public License as published by
|
||||||
#the Free Software Foundation, version 3 of the License.
|
#the Free Software Foundation, version 3 of the License.
|
||||||
|
@ -70,7 +70,7 @@ class GuiTourneyPlayerStats (GuiPlayerStats.GuiPlayerStats):
|
||||||
self.main_hbox = gtk.HPaned()
|
self.main_hbox = gtk.HPaned()
|
||||||
|
|
||||||
self.filters = TourneyFilters.TourneyFilters(self.db, self.conf, self.sql, display = filters_display)
|
self.filters = TourneyFilters.TourneyFilters(self.db, self.conf, self.sql, display = filters_display)
|
||||||
#self.filters.registerButton1Name("_Filters")
|
#self.filters.registerButton1Name(_("_Filters"))
|
||||||
#self.filters.registerButton1Callback(self.showDetailFilter)
|
#self.filters.registerButton1Callback(self.showDetailFilter)
|
||||||
self.filters.registerButton2Name(_("_Refresh Stats"))
|
self.filters.registerButton2Name(_("_Refresh Stats"))
|
||||||
self.filters.registerButton2Callback(self.refreshStats)
|
self.filters.registerButton2Callback(self.refreshStats)
|
||||||
|
@ -79,24 +79,24 @@ class GuiTourneyPlayerStats (GuiPlayerStats.GuiPlayerStats):
|
||||||
# ToDo: create popup to adjust column config
|
# ToDo: create popup to adjust column config
|
||||||
# columns to display, keys match column name returned by sql, values in tuple are:
|
# columns to display, keys match column name returned by sql, values in tuple are:
|
||||||
# is column displayed, column heading, xalignment, formatting, celltype
|
# is column displayed, column heading, xalignment, formatting, celltype
|
||||||
self.columns = [ ["siteName", True, "Site", 0.0, "%s", "str"]
|
self.columns = [ ["siteName", True, _("Site"), 0.0, "%s", "str"]
|
||||||
#,["tourney", False, "Tourney", 0.0, "%s", "str"] # true not allowed for this line
|
#,["tourney", False, _("Tourney"), 0.0, "%s", "str"] # true not allowed for this line
|
||||||
, ["category", True, "Cat.", 0.0, "%s", "str"]
|
, ["category", True, _("Cat."), 0.0, "%s", "str"]
|
||||||
, ["limitType", True, "Limit", 0.0, "%s", "str"]
|
, ["limitType", True, _("Limit"), 0.0, "%s", "str"]
|
||||||
, ["currency", True, "Curr.", 0.0, "%s", "str"]
|
, ["currency", True, _("Curr."), 0.0, "%s", "str"]
|
||||||
, ["buyIn", True, "BuyIn", 1.0, "%3.2f", "str"]
|
, ["buyIn", True, _("BuyIn"), 1.0, "%3.2f", "str"]
|
||||||
, ["fee", True, "Fee", 1.0, "%3.2f", "str"]
|
, ["fee", True, _("Fee"), 1.0, "%3.2f", "str"]
|
||||||
, ["playerName", False, "Name", 0.0, "%s", "str"] # true not allowed for this line (set in code)
|
, ["playerName", False, _("Name"), 0.0, "%s", "str"] # true not allowed for this line (set in code)
|
||||||
, ["tourneyCount", True, "#", 1.0, "%1.0f", "str"]
|
, ["tourneyCount", True, _("#"), 1.0, "%1.0f", "str"]
|
||||||
, ["itm", True, "ITM%", 1.0, "%3.2f", "str"]
|
, ["itm", True, _("ITM%"), 1.0, "%3.2f", "str"]
|
||||||
, ["_1st", False, "1st", 1.0, "%1.0f", "str"]
|
, ["_1st", False, _("1st"), 1.0, "%1.0f", "str"]
|
||||||
, ["_2nd", True, "2nd", 1.0, "%1.0f", "str"]
|
, ["_2nd", True, _("2nd"), 1.0, "%1.0f", "str"]
|
||||||
, ["_3rd", True, "3rd", 1.0, "%1.0f", "str"]
|
, ["_3rd", True, _("3rd"), 1.0, "%1.0f", "str"]
|
||||||
, ["unknownRank", True, "Rank?", 1.0, "%1.0f", "str"]
|
, ["unknownRank", True, _("Rank?"), 1.0, "%1.0f", "str"]
|
||||||
, ["spent", True, "Spent", 1.0, "%3.2f", "str"]
|
, ["spent", True, _("Spent"), 1.0, "%3.2f", "str"]
|
||||||
, ["won", True, "Won", 1.0, "%3.2f", "str"]
|
, ["won", True, _("Won"), 1.0, "%3.2f", "str"]
|
||||||
, ["roi", True, "ROI%", 1.0, "%3.0f", "str"]
|
, ["roi", True, _("ROI%"), 1.0, "%3.0f", "str"]
|
||||||
, ["profitPerTourney", True,"$/Tour", 1.0, "%3.2f", "str"]]
|
, ["profitPerTourney", True,_("$/Tour"), 1.0, "%3.2f", "str"]]
|
||||||
|
|
||||||
self.stats_frame = gtk.Frame()
|
self.stats_frame = gtk.Frame()
|
||||||
self.stats_frame.show()
|
self.stats_frame.show()
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
#Copyright 2010 Steffen Schaumburg
|
#Copyright 2010-2011 Steffen Schaumburg
|
||||||
#This program is free software: you can redistribute it and/or modify
|
#This program is free software: you can redistribute it and/or modify
|
||||||
#it under the terms of the GNU Affero General Public License as published by
|
#it under the terms of the GNU Affero General Public License as published by
|
||||||
#the Free Software Foundation, version 3 of the License.
|
#the Free Software Foundation, version 3 of the License.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
#Copyright 2008-2010 Carl Gherardi
|
#Copyright 2008-2011 Carl Gherardi
|
||||||
#This program is free software: you can redistribute it and/or modify
|
#This program is free software: you can redistribute it and/or modify
|
||||||
#it under the terms of the GNU Affero General Public License as published by
|
#it under the terms of the GNU Affero General Public License as published by
|
||||||
#the Free Software Foundation, version 3 of the License.
|
#the Free Software Foundation, version 3 of the License.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2008-2010, Ray E. Barker
|
# Copyright 2008-2011, Ray E. Barker
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
@ -66,16 +66,16 @@ class HUD_main(object):
|
||||||
def __init__(self, db_name='fpdb'):
|
def __init__(self, db_name='fpdb'):
|
||||||
self.db_name = db_name
|
self.db_name = db_name
|
||||||
self.config = c
|
self.config = c
|
||||||
log.info("HUD_main starting: using db name = %s" % (db_name))
|
log.info(_("HUD_main starting: using db name = %s") % (db_name))
|
||||||
|
|
||||||
try:
|
try:
|
||||||
if not options.errorsToConsole:
|
if not options.errorsToConsole:
|
||||||
fileName = os.path.join(self.config.dir_log, 'HUD-errors.txt')
|
fileName = os.path.join(self.config.dir_log, 'HUD-errors.txt')
|
||||||
log.info("Note: error output is being diverted to:" + fileName)
|
log.info(_("Note: error output is being diverted to:") + fileName)
|
||||||
log.info("Any major error will be reported there _only_.")
|
log.info(_("Any major error will be reported there _only_."))
|
||||||
errorFile = open(fileName, 'w', 0)
|
errorFile = open(fileName, 'w', 0)
|
||||||
sys.stderr = errorFile
|
sys.stderr = errorFile
|
||||||
sys.stderr.write("HUD_main: starting ...\n")
|
log.info(_("HUD_main: starting ...\n"))
|
||||||
|
|
||||||
self.hud_dict = {}
|
self.hud_dict = {}
|
||||||
self.hud_params = self.config.get_hud_ui_parameters()
|
self.hud_params = self.config.get_hud_ui_parameters()
|
||||||
|
@ -104,7 +104,7 @@ class HUD_main(object):
|
||||||
self.main_window.connect("table_changed", self.table_changed)
|
self.main_window.connect("table_changed", self.table_changed)
|
||||||
self.main_window.connect("destroy", self.destroy)
|
self.main_window.connect("destroy", self.destroy)
|
||||||
self.vb = gtk.VBox()
|
self.vb = gtk.VBox()
|
||||||
self.label = gtk.Label('Closing this window will exit from the HUD.')
|
self.label = gtk.Label(_('Closing this window will exit from the HUD.'))
|
||||||
self.vb.add(self.label)
|
self.vb.add(self.label)
|
||||||
self.main_window.add(self.vb)
|
self.main_window.add(self.vb)
|
||||||
self.main_window.set_title("HUD Main Window")
|
self.main_window.set_title("HUD Main Window")
|
||||||
|
@ -135,13 +135,13 @@ class HUD_main(object):
|
||||||
self.kill_hud(None, hud.table.key)
|
self.kill_hud(None, hud.table.key)
|
||||||
|
|
||||||
def game_changed(self, widget, hud):
|
def game_changed(self, widget, hud):
|
||||||
print "hud_main: Game changed."
|
print _("hud_main: Game changed.")
|
||||||
|
|
||||||
def table_changed(self, widget, hud):
|
def table_changed(self, widget, hud):
|
||||||
self.kill_hud(None, hud.table.key)
|
self.kill_hud(None, hud.table.key)
|
||||||
|
|
||||||
def destroy(self, *args): # call back for terminating the main eventloop
|
def destroy(self, *args): # call back for terminating the main eventloop
|
||||||
log.info("Terminating normally.")
|
log.info(_("Terminating normally."))
|
||||||
gtk.main_quit()
|
gtk.main_quit()
|
||||||
|
|
||||||
def kill_hud(self, event, table):
|
def kill_hud(self, event, table):
|
||||||
|
@ -202,7 +202,7 @@ class HUD_main(object):
|
||||||
while 1: # wait for a new hand number on stdin
|
while 1: # wait for a new hand number on stdin
|
||||||
new_hand_id = sys.stdin.readline()
|
new_hand_id = sys.stdin.readline()
|
||||||
new_hand_id = string.rstrip(new_hand_id)
|
new_hand_id = string.rstrip(new_hand_id)
|
||||||
log.debug("Received hand no %s" % new_hand_id)
|
log.debug(_("Received hand no %s") % new_hand_id)
|
||||||
if new_hand_id == "": # blank line means quit
|
if new_hand_id == "": # blank line means quit
|
||||||
self.destroy()
|
self.destroy()
|
||||||
break # this thread is not always killed immediately with gtk.main_quit()
|
break # this thread is not always killed immediately with gtk.main_quit()
|
||||||
|
@ -226,12 +226,12 @@ class HUD_main(object):
|
||||||
|
|
||||||
# get basic info about the new hand from the db
|
# get basic info about the new hand from the db
|
||||||
# if there is a db error, complain, skip hand, and proceed
|
# if there is a db error, complain, skip hand, and proceed
|
||||||
log.info("HUD_main.read_stdin: hand processing starting ...")
|
log.info(_("HUD_main.read_stdin: hand processing starting ..."))
|
||||||
try:
|
try:
|
||||||
(table_name, max, poker_game, type, site_id, site_name, num_seats, tour_number, tab_number) = \
|
(table_name, max, poker_game, type, site_id, site_name, num_seats, tour_number, tab_number) = \
|
||||||
self.db_connection.get_table_info(new_hand_id)
|
self.db_connection.get_table_info(new_hand_id)
|
||||||
except Exception:
|
except Exception:
|
||||||
log.exception("db error: skipping %s" % new_hand_id)
|
log.exception(_("db error: skipping %s") % new_hand_id)
|
||||||
continue
|
continue
|
||||||
|
|
||||||
if type == "tour": # hand is from a tournament
|
if type == "tour": # hand is from a tournament
|
||||||
|
@ -250,8 +250,8 @@ class HUD_main(object):
|
||||||
try:
|
try:
|
||||||
self.hud_dict[temp_key].stat_dict = stat_dict
|
self.hud_dict[temp_key].stat_dict = stat_dict
|
||||||
except KeyError: # HUD instance has been killed off, key is stale
|
except KeyError: # HUD instance has been killed off, key is stale
|
||||||
log.error('hud_dict[%s] was not found\n' % temp_key)
|
log.error(_('hud_dict[%s] was not found\n') % temp_key)
|
||||||
log.error('will not send hand\n')
|
log.error(_('will not send hand\n'))
|
||||||
# Unlocks table, copied from end of function
|
# Unlocks table, copied from end of function
|
||||||
self.db_connection.connection.rollback()
|
self.db_connection.connection.rollback()
|
||||||
return
|
return
|
||||||
|
@ -273,7 +273,7 @@ class HUD_main(object):
|
||||||
# If no client window is found on the screen, complain and continue
|
# If no client window is found on the screen, complain and continue
|
||||||
if type == "tour":
|
if type == "tour":
|
||||||
table_name = "%s %s" % (tour_number, tab_number)
|
table_name = "%s %s" % (tour_number, tab_number)
|
||||||
log.error("HUD create: table name %s not found, skipping." % table_name)
|
log.error(_("HUD create: table name %s not found, skipping.") % table_name)
|
||||||
else:
|
else:
|
||||||
tablewindow.key = temp_key
|
tablewindow.key = temp_key
|
||||||
tablewindow.max = max
|
tablewindow.max = max
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
#Copyright 2009-2010 Eric Blade
|
#Copyright 2009-2011 Eric Blade
|
||||||
#This program is free software: you can redistribute it and/or modify
|
#This program is free software: you can redistribute it and/or modify
|
||||||
#it under the terms of the GNU Affero General Public License as published by
|
#it under the terms of the GNU Affero General Public License as published by
|
||||||
#the Free Software Foundation, version 3 of the License.
|
#the Free Software Foundation, version 3 of the License.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
#Copyright 2008-2010 Carl Gherardi
|
#Copyright 2008-2011 Carl Gherardi
|
||||||
#This program is free software: you can redistribute it and/or modify
|
#This program is free software: you can redistribute it and/or modify
|
||||||
#it under the terms of the GNU Affero General Public License as published by
|
#it under the terms of the GNU Affero General Public License as published by
|
||||||
#the Free Software Foundation, version 3 of the License.
|
#the Free Software Foundation, version 3 of the License.
|
||||||
|
@ -475,12 +475,12 @@ If a player has None chips he won't be added."""
|
||||||
tmp = self.handText[0:100]
|
tmp = self.handText[0:100]
|
||||||
log.error(_("markstreets didn't match - Assuming hand %s was cancelled") % self.handid)
|
log.error(_("markstreets didn't match - Assuming hand %s was cancelled") % self.handid)
|
||||||
self.cancelled = True
|
self.cancelled = True
|
||||||
raise FpdbParseError(_("FpdbParseError: markStreets appeared to fail: First 100 chars: '%s'") % tmp)
|
raise FpdbParseError(_("markStreets appeared to fail: First 100 chars: '%s'") % tmp)
|
||||||
|
|
||||||
def checkPlayerExists(self,player):
|
def checkPlayerExists(self,player):
|
||||||
if player not in [p[1] for p in self.players]:
|
if player not in [p[1] for p in self.players]:
|
||||||
print (_("DEBUG: checkPlayerExists %s fail on hand number %s") % (player, self.handid))
|
print (_("DEBUG: ") + _("checkPlayerExists: %s fail on hand number %s") % (player, self.handid))
|
||||||
raise FpdbParseError(_("checkPlayerExists: '%s fail on hand number %s") % (player, self.handid))
|
raise FpdbParseError(_("checkPlayerExists: %s fail on hand number %s") % (player, self.handid))
|
||||||
|
|
||||||
def setCommunityCards(self, street, cards):
|
def setCommunityCards(self, street, cards):
|
||||||
log.debug("setCommunityCards %s %s" %(street, cards))
|
log.debug("setCommunityCards %s %s" %(street, cards))
|
||||||
|
@ -1167,7 +1167,7 @@ class DrawHand(Hand):
|
||||||
hhc.markStreets(self)
|
hhc.markStreets(self)
|
||||||
# markStreets in Draw may match without dealing cards
|
# markStreets in Draw may match without dealing cards
|
||||||
if self.streets['DEAL'] == None:
|
if self.streets['DEAL'] == None:
|
||||||
raise FpdbParseError(_("DrawHand.__init__: street 'DEAL' is empty. Hand cancelled? HandID: '%s'" % self.handid))
|
raise FpdbParseError(_("DrawHand.__init__: street 'DEAL' is empty. Hand cancelled? HandID: '%s'") % self.handid)
|
||||||
hhc.readBlinds(self)
|
hhc.readBlinds(self)
|
||||||
hhc.readAntes(self)
|
hhc.readAntes(self)
|
||||||
hhc.readButton(self)
|
hhc.readButton(self)
|
||||||
|
@ -1239,60 +1239,61 @@ class DrawHand(Hand):
|
||||||
|
|
||||||
def writeHand(self, fh=sys.__stdout__):
|
def writeHand(self, fh=sys.__stdout__):
|
||||||
# PokerStars format.
|
# PokerStars format.
|
||||||
|
# HH output should not be translated
|
||||||
super(DrawHand, self).writeHand(fh)
|
super(DrawHand, self).writeHand(fh)
|
||||||
|
|
||||||
players_who_act_ondeal = set(([x[0] for x in self.actions['DEAL']]+[x[0] for x in self.actions['BLINDSANTES']]))
|
players_who_act_ondeal = set(([x[0] for x in self.actions['DEAL']]+[x[0] for x in self.actions['BLINDSANTES']]))
|
||||||
|
|
||||||
for player in [x for x in self.players if x[1] in players_who_act_ondeal]:
|
for player in [x for x in self.players if x[1] in players_who_act_ondeal]:
|
||||||
#Only print stacks of players who do something on deal
|
#Only print stacks of players who do something on deal
|
||||||
print >>fh, _("Seat %s: %s (%s%s in chips) " %(player[0], player[1], self.sym, player[2]))
|
print >>fh, (("Seat %s: %s (%s%s in chips) ") % (player[0], player[1], self.sym, player[2]))
|
||||||
|
|
||||||
if 'BLINDSANTES' in self.actions:
|
if 'BLINDSANTES' in self.actions:
|
||||||
for act in self.actions['BLINDSANTES']:
|
for act in self.actions['BLINDSANTES']:
|
||||||
print >>fh, _("%s: %s %s %s%s" %(act[0], act[1], act[2], self.sym, act[3]))
|
print >>fh, ("%s: %s %s %s%s" % (act[0], act[1], act[2], self.sym, act[3]))
|
||||||
|
|
||||||
if 'DEAL' in self.actions:
|
if 'DEAL' in self.actions:
|
||||||
print >>fh, _("*** DEALING HANDS ***")
|
print >>fh, ("*** DEALING HANDS ***")
|
||||||
for player in [x[1] for x in self.players if x[1] in players_who_act_ondeal]:
|
for player in [x[1] for x in self.players if x[1] in players_who_act_ondeal]:
|
||||||
if 'DEAL' in self.holecards:
|
if 'DEAL' in self.holecards:
|
||||||
if self.holecards['DEAL'].has_key(player):
|
if self.holecards['DEAL'].has_key(player):
|
||||||
(nc,oc) = self.holecards['DEAL'][player]
|
(nc,oc) = self.holecards['DEAL'][player]
|
||||||
print >>fh, _("Dealt to %s: [%s]") % (player, " ".join(nc))
|
print >>fh, ("Dealt to %s: [%s]") % (player, " ".join(nc))
|
||||||
for act in self.actions['DEAL']:
|
for act in self.actions['DEAL']:
|
||||||
print >>fh, self.actionString(act, 'DEAL')
|
print >>fh, self.actionString(act, 'DEAL')
|
||||||
|
|
||||||
if 'DRAWONE' in self.actions:
|
if 'DRAWONE' in self.actions:
|
||||||
print >>fh, _("*** FIRST DRAW ***")
|
print >>fh, ("*** FIRST DRAW ***")
|
||||||
for act in self.actions['DRAWONE']:
|
for act in self.actions['DRAWONE']:
|
||||||
print >>fh, self.actionString(act, 'DRAWONE')
|
print >>fh, self.actionString(act, 'DRAWONE')
|
||||||
if act[0] == self.hero and act[1] == 'discards':
|
if act[0] == self.hero and act[1] == 'discards':
|
||||||
(nc,oc) = self.holecardsAsSet('DRAWONE', act[0])
|
(nc,oc) = self.holecardsAsSet('DRAWONE', act[0])
|
||||||
dc = self.discards['DRAWONE'][act[0]]
|
dc = self.discards['DRAWONE'][act[0]]
|
||||||
kc = oc - dc
|
kc = oc - dc
|
||||||
print >>fh, _("Dealt to %s [%s] [%s]" % (act[0], " ".join(kc), " ".join(nc)))
|
print >>fh, (("Dealt to %s [%s] [%s]") % (act[0], " ".join(kc), " ".join(nc)))
|
||||||
|
|
||||||
if 'DRAWTWO' in self.actions:
|
if 'DRAWTWO' in self.actions:
|
||||||
print >>fh, _("*** SECOND DRAW ***")
|
print >>fh, ("*** SECOND DRAW ***")
|
||||||
for act in self.actions['DRAWTWO']:
|
for act in self.actions['DRAWTWO']:
|
||||||
print >>fh, self.actionString(act, 'DRAWTWO')
|
print >>fh, self.actionString(act, 'DRAWTWO')
|
||||||
if act[0] == self.hero and act[1] == 'discards':
|
if act[0] == self.hero and act[1] == 'discards':
|
||||||
(nc,oc) = self.holecardsAsSet('DRAWONE', act[0])
|
(nc,oc) = self.holecardsAsSet('DRAWONE', act[0])
|
||||||
dc = self.discards['DRAWTWO'][act[0]]
|
dc = self.discards['DRAWTWO'][act[0]]
|
||||||
kc = oc - dc
|
kc = oc - dc
|
||||||
print >>fh, _("Dealt to %s [%s] [%s]" % (act[0], " ".join(kc), " ".join(nc)))
|
print >>fh, (("Dealt to %s [%s] [%s]") % (act[0], " ".join(kc), " ".join(nc)))
|
||||||
|
|
||||||
if 'DRAWTHREE' in self.actions:
|
if 'DRAWTHREE' in self.actions:
|
||||||
print >>fh, _("*** THIRD DRAW ***")
|
print >>fh, ("*** THIRD DRAW ***")
|
||||||
for act in self.actions['DRAWTHREE']:
|
for act in self.actions['DRAWTHREE']:
|
||||||
print >>fh, self.actionString(act, 'DRAWTHREE')
|
print >>fh, self.actionString(act, 'DRAWTHREE')
|
||||||
if act[0] == self.hero and act[1] == 'discards':
|
if act[0] == self.hero and act[1] == 'discards':
|
||||||
(nc,oc) = self.holecardsAsSet('DRAWONE', act[0])
|
(nc,oc) = self.holecardsAsSet('DRAWONE', act[0])
|
||||||
dc = self.discards['DRAWTHREE'][act[0]]
|
dc = self.discards['DRAWTHREE'][act[0]]
|
||||||
kc = oc - dc
|
kc = oc - dc
|
||||||
print >>fh, _("Dealt to %s [%s] [%s]" % (act[0], " ".join(kc), " ".join(nc)))
|
print >>fh, (("Dealt to %s [%s] [%s]") % (act[0], " ".join(kc), " ".join(nc)))
|
||||||
|
|
||||||
if 'SHOWDOWN' in self.actions:
|
if 'SHOWDOWN' in self.actions:
|
||||||
print >>fh, _("*** SHOW DOWN ***")
|
print >>fh, ("*** SHOW DOWN ***")
|
||||||
#TODO: Complete SHOWDOWN
|
#TODO: Complete SHOWDOWN
|
||||||
|
|
||||||
# Current PS format has the lines:
|
# Current PS format has the lines:
|
||||||
|
@ -1303,11 +1304,11 @@ class DrawHand(Hand):
|
||||||
# Immediately before the summary.
|
# Immediately before the summary.
|
||||||
# The current importer uses those lines for importing winning rather than the summary
|
# The current importer uses those lines for importing winning rather than the summary
|
||||||
for name in self.pot.returned:
|
for name in self.pot.returned:
|
||||||
print >>fh, _("Uncalled bet (%s%s) returned to %s" %(self.sym, self.pot.returned[name],name))
|
print >>fh, ("Uncalled bet (%s%s) returned to %s" % (self.sym, self.pot.returned[name],name))
|
||||||
for entry in self.collected:
|
for entry in self.collected:
|
||||||
print >>fh, _("%s collected %s%s from x pot" %(entry[0], self.sym, entry[1]))
|
print >>fh, ("%s collected %s%s from x pot" % (entry[0], self.sym, entry[1]))
|
||||||
|
|
||||||
print >>fh, _("*** SUMMARY ***")
|
print >>fh, ("*** SUMMARY ***")
|
||||||
print >>fh, "%s | Rake %s%.2f" % (self.pot, self.sym, self.rake)
|
print >>fh, "%s | Rake %s%.2f" % (self.pot, self.sym, self.rake)
|
||||||
print >>fh, "\n\n"
|
print >>fh, "\n\n"
|
||||||
|
|
||||||
|
@ -1432,29 +1433,29 @@ Add a complete on [street] by [player] to [amountTo]
|
||||||
|
|
||||||
def writeHand(self, fh=sys.__stdout__):
|
def writeHand(self, fh=sys.__stdout__):
|
||||||
# PokerStars format.
|
# PokerStars format.
|
||||||
|
# HH output should not be translated
|
||||||
super(StudHand, self).writeHand(fh)
|
super(StudHand, self).writeHand(fh)
|
||||||
|
|
||||||
players_who_post_antes = set([x[0] for x in self.actions['BLINDSANTES']])
|
players_who_post_antes = set([x[0] for x in self.actions['BLINDSANTES']])
|
||||||
|
|
||||||
for player in [x for x in self.players if x[1] in players_who_post_antes]:
|
for player in [x for x in self.players if x[1] in players_who_post_antes]:
|
||||||
#Only print stacks of players who do something preflop
|
#Only print stacks of players who do something preflop
|
||||||
print >>fh, _("Seat %s: %s (%s%s in chips)" %(player[0], player[1], self.sym, player[2]))
|
print >>fh, ("Seat %s: %s (%s%s in chips)" %(player[0], player[1], self.sym, player[2]))
|
||||||
|
|
||||||
if 'BLINDSANTES' in self.actions:
|
if 'BLINDSANTES' in self.actions:
|
||||||
for act in self.actions['BLINDSANTES']:
|
for act in self.actions['BLINDSANTES']:
|
||||||
print >>fh, _("%s: posts the ante %s%s" %(act[0], self.sym, act[3]))
|
print >>fh, ("%s: posts the ante %s%s" %(act[0], self.sym, act[3]))
|
||||||
|
|
||||||
if 'THIRD' in self.actions:
|
if 'THIRD' in self.actions:
|
||||||
dealt = 0
|
dealt = 0
|
||||||
#~ print >>fh, _("*** 3RD STREET ***")
|
#~ print >>fh, ("*** 3RD STREET ***")
|
||||||
for player in [x[1] for x in self.players if x[1] in players_who_post_antes]:
|
for player in [x[1] for x in self.players if x[1] in players_who_post_antes]:
|
||||||
if self.holecards['THIRD'].has_key(player):
|
if self.holecards['THIRD'].has_key(player):
|
||||||
(open, closed) = self.holecards['THIRD'][player]
|
(open, closed) = self.holecards['THIRD'][player]
|
||||||
dealt+=1
|
dealt+=1
|
||||||
if dealt==1:
|
if dealt==1:
|
||||||
print >>fh, _("*** 3RD STREET ***")
|
print >>fh, ("*** 3RD STREET ***")
|
||||||
# print >>fh, _("Dealt to %s:%s%s") % (player, " [" + " ".join(closed) + "] " if closed else " ", "[" + " ".join(open) + "]" if open else "")
|
# print >>fh, ("Dealt to %s:%s%s") % (player, " [" + " ".join(closed) + "] " if closed else " ", "[" + " ".join(open) + "]" if open else "")
|
||||||
print >>fh, self.writeHoleCards('THIRD', player)
|
print >>fh, self.writeHoleCards('THIRD', player)
|
||||||
for act in self.actions['THIRD']:
|
for act in self.actions['THIRD']:
|
||||||
#FIXME: Need some logic here for bringin vs completes
|
#FIXME: Need some logic here for bringin vs completes
|
||||||
|
@ -1462,36 +1463,36 @@ Add a complete on [street] by [player] to [amountTo]
|
||||||
|
|
||||||
if 'FOURTH' in self.actions:
|
if 'FOURTH' in self.actions:
|
||||||
dealt = 0
|
dealt = 0
|
||||||
#~ print >>fh, _("*** 4TH STREET ***")
|
#~ print >>fh, ("*** 4TH STREET ***")
|
||||||
for player in [x[1] for x in self.players if x[1] in players_who_post_antes]:
|
for player in [x[1] for x in self.players if x[1] in players_who_post_antes]:
|
||||||
if player in self.holecards['FOURTH']:
|
if player in self.holecards['FOURTH']:
|
||||||
dealt+=1
|
dealt+=1
|
||||||
if dealt==1:
|
if dealt==1:
|
||||||
print >>fh, _("*** 4TH STREET ***")
|
print >>fh, ("*** 4TH STREET ***")
|
||||||
print >>fh, self.writeHoleCards('FOURTH', player)
|
print >>fh, self.writeHoleCards('FOURTH', player)
|
||||||
for act in self.actions['FOURTH']:
|
for act in self.actions['FOURTH']:
|
||||||
print >>fh, self.actionString(act)
|
print >>fh, self.actionString(act)
|
||||||
|
|
||||||
if 'FIFTH' in self.actions:
|
if 'FIFTH' in self.actions:
|
||||||
dealt = 0
|
dealt = 0
|
||||||
#~ print >>fh, _("*** 5TH STREET ***")
|
#~ print >>fh, ("*** 5TH STREET ***")
|
||||||
for player in [x[1] for x in self.players if x[1] in players_who_post_antes]:
|
for player in [x[1] for x in self.players if x[1] in players_who_post_antes]:
|
||||||
if self.holecards['FIFTH'].has_key(player):
|
if self.holecards['FIFTH'].has_key(player):
|
||||||
dealt+=1
|
dealt+=1
|
||||||
if dealt==1:
|
if dealt==1:
|
||||||
print >>fh, _("*** 5TH STREET ***")
|
print >>fh, ("*** 5TH STREET ***")
|
||||||
print >>fh, self.writeHoleCards('FIFTH', player)
|
print >>fh, self.writeHoleCards('FIFTH', player)
|
||||||
for act in self.actions['FIFTH']:
|
for act in self.actions['FIFTH']:
|
||||||
print >>fh, self.actionString(act)
|
print >>fh, self.actionString(act)
|
||||||
|
|
||||||
if 'SIXTH' in self.actions:
|
if 'SIXTH' in self.actions:
|
||||||
dealt = 0
|
dealt = 0
|
||||||
#~ print >>fh, _("*** 6TH STREET ***")
|
#~ print >>fh, ("*** 6TH STREET ***")
|
||||||
for player in [x[1] for x in self.players if x[1] in players_who_post_antes]:
|
for player in [x[1] for x in self.players if x[1] in players_who_post_antes]:
|
||||||
if self.holecards['SIXTH'].has_key(player):
|
if self.holecards['SIXTH'].has_key(player):
|
||||||
dealt += 1
|
dealt += 1
|
||||||
if dealt == 1:
|
if dealt == 1:
|
||||||
print >>fh, _("*** 6TH STREET ***")
|
print >>fh, ("*** 6TH STREET ***")
|
||||||
print >>fh, self.writeHoleCards('SIXTH', player)
|
print >>fh, self.writeHoleCards('SIXTH', player)
|
||||||
for act in self.actions['SIXTH']:
|
for act in self.actions['SIXTH']:
|
||||||
print >>fh, self.actionString(act)
|
print >>fh, self.actionString(act)
|
||||||
|
@ -1501,7 +1502,7 @@ Add a complete on [street] by [player] to [amountTo]
|
||||||
# Then we have no 'dealt to' lines, no action lines, but still 7th street should appear.
|
# Then we have no 'dealt to' lines, no action lines, but still 7th street should appear.
|
||||||
# The only way I can see to know whether to print this line is by knowing the state of the hand
|
# The only way I can see to know whether to print this line is by knowing the state of the hand
|
||||||
# i.e. are all but one players folded; is there an allin showdown; and all that.
|
# i.e. are all but one players folded; is there an allin showdown; and all that.
|
||||||
print >>fh, _("*** RIVER ***")
|
print >>fh, ("*** RIVER ***")
|
||||||
for player in [x[1] for x in self.players if x[1] in players_who_post_antes]:
|
for player in [x[1] for x in self.players if x[1] in players_who_post_antes]:
|
||||||
if self.holecards['SEVENTH'].has_key(player):
|
if self.holecards['SEVENTH'].has_key(player):
|
||||||
if self.writeHoleCards('SEVENTH', player):
|
if self.writeHoleCards('SEVENTH', player):
|
||||||
|
@ -1513,7 +1514,7 @@ Add a complete on [street] by [player] to [amountTo]
|
||||||
# The logic for a showdown is: at the end of river action there are at least two players in the hand
|
# The logic for a showdown is: at the end of river action there are at least two players in the hand
|
||||||
# we probably don't need a showdown section in pseudo stars format for our filtering purposes
|
# we probably don't need a showdown section in pseudo stars format for our filtering purposes
|
||||||
if 'SHOWDOWN' in self.actions:
|
if 'SHOWDOWN' in self.actions:
|
||||||
print >>fh, _("*** SHOW DOWN ***")
|
print >>fh, ("*** SHOW DOWN ***")
|
||||||
# TODO: print showdown lines.
|
# TODO: print showdown lines.
|
||||||
|
|
||||||
# Current PS format has the lines:
|
# Current PS format has the lines:
|
||||||
|
@ -1524,11 +1525,11 @@ Add a complete on [street] by [player] to [amountTo]
|
||||||
# Immediately before the summary.
|
# Immediately before the summary.
|
||||||
# The current importer uses those lines for importing winning rather than the summary
|
# The current importer uses those lines for importing winning rather than the summary
|
||||||
for name in self.pot.returned:
|
for name in self.pot.returned:
|
||||||
print >>fh, _("Uncalled bet (%s%s) returned to %s" %(self.sym, self.pot.returned[name],name))
|
print >>fh, ("Uncalled bet (%s%s) returned to %s" %(self.sym, self.pot.returned[name],name))
|
||||||
for entry in self.collected:
|
for entry in self.collected:
|
||||||
print >>fh, _("%s collected %s%s from x pot" %(entry[0], self.sym, entry[1]))
|
print >>fh, ("%s collected %s%s from x pot" %(entry[0], self.sym, entry[1]))
|
||||||
|
|
||||||
print >>fh, _("*** SUMMARY ***")
|
print >>fh, ("*** SUMMARY ***")
|
||||||
print >>fh, "%s | Rake %s%.2f" % (self.pot, self.sym, self.rake)
|
print >>fh, "%s | Rake %s%.2f" % (self.pot, self.sym, self.rake)
|
||||||
# TODO: side pots
|
# TODO: side pots
|
||||||
|
|
||||||
|
@ -1536,23 +1537,23 @@ Add a complete on [street] by [player] to [amountTo]
|
||||||
for s in self.board.values():
|
for s in self.board.values():
|
||||||
board += s
|
board += s
|
||||||
if board: # sometimes hand ends preflop without a board
|
if board: # sometimes hand ends preflop without a board
|
||||||
print >>fh, _("Board [%s]" % (" ".join(board)))
|
print >>fh, ("Board [%s]" % (" ".join(board)))
|
||||||
|
|
||||||
for player in [x for x in self.players if x[1] in players_who_post_antes]:
|
for player in [x for x in self.players if x[1] in players_who_post_antes]:
|
||||||
seatnum = player[0]
|
seatnum = player[0]
|
||||||
name = player[1]
|
name = player[1]
|
||||||
if name in self.collectees and name in self.shown:
|
if name in self.collectees and name in self.shown:
|
||||||
print >>fh, _("Seat %d: %s showed [%s] and won (%s%s)" % (seatnum, name, self.join_holecards(name), self.sym, self.collectees[name]))
|
print >>fh, ("Seat %d: %s showed [%s] and won (%s%s)" % (seatnum, name, self.join_holecards(name), self.sym, self.collectees[name]))
|
||||||
elif name in self.collectees:
|
elif name in self.collectees:
|
||||||
print >>fh, _("Seat %d: %s collected (%s%s)" % (seatnum, name, self.sym, self.collectees[name]))
|
print >>fh, ("Seat %d: %s collected (%s%s)" % (seatnum, name, self.sym, self.collectees[name]))
|
||||||
elif name in self.shown:
|
elif name in self.shown:
|
||||||
print >>fh, _("Seat %d: %s showed [%s]" % (seatnum, name, self.join_holecards(name)))
|
print >>fh, ("Seat %d: %s showed [%s]" % (seatnum, name, self.join_holecards(name)))
|
||||||
elif name in self.mucked:
|
elif name in self.mucked:
|
||||||
print >>fh, _("Seat %d: %s mucked [%s]" % (seatnum, name, self.join_holecards(name)))
|
print >>fh, ("Seat %d: %s mucked [%s]" % (seatnum, name, self.join_holecards(name)))
|
||||||
elif name in self.folded:
|
elif name in self.folded:
|
||||||
print >>fh, _("Seat %d: %s folded" % (seatnum, name))
|
print >>fh, ("Seat %d: %s folded" % (seatnum, name))
|
||||||
else:
|
else:
|
||||||
print >>fh, _("Seat %d: %s mucked" % (seatnum, name))
|
print >>fh, ("Seat %d: %s mucked" % (seatnum, name))
|
||||||
|
|
||||||
print >>fh, "\n\n"
|
print >>fh, "\n\n"
|
||||||
|
|
||||||
|
@ -1672,8 +1673,8 @@ class Pot(object):
|
||||||
self.pots += [sum([min(v,v1) for (v,k) in commitsall])]
|
self.pots += [sum([min(v,v1) for (v,k) in commitsall])]
|
||||||
commitsall = [((v-v1),k) for (v,k) in commitsall if v-v1 >0]
|
commitsall = [((v-v1),k) for (v,k) in commitsall if v-v1 >0]
|
||||||
except IndexError, e:
|
except IndexError, e:
|
||||||
log.error(_("Pot.end(): Major failure while calculating pot: '%s'" % e))
|
log.error(_("Pot.end(): Major failure while calculating pot: '%s'") % e)
|
||||||
raise FpdbParseError(_("Pot.end(): Major failure while calculating pot: '%s'" % e))
|
raise FpdbParseError(_("Pot.end(): Major failure while calculating pot: '%s'") % e)
|
||||||
|
|
||||||
# TODO: I think rake gets taken out of the pots.
|
# TODO: I think rake gets taken out of the pots.
|
||||||
# so it goes:
|
# so it goes:
|
||||||
|
@ -1686,9 +1687,9 @@ class Pot(object):
|
||||||
if self.sym is None:
|
if self.sym is None:
|
||||||
self.sym = "C"
|
self.sym = "C"
|
||||||
if self.total is None:
|
if self.total is None:
|
||||||
print _("DEBUG: call Pot.end() before printing pot total")
|
print (_("DEBUG: ") + _("call Pot.end() before printing pot total"))
|
||||||
# NB if I'm sure end() is idempotent, call it here.
|
# NB if I'm sure end() is idempotent, call it here.
|
||||||
raise FpdbParseError(_("FpdbError in printing Hand object"))
|
raise FpdbParseError(_("Error in printing Hand object"))
|
||||||
|
|
||||||
ret = "Total pot %s%.2f" % (self.sym, self.total)
|
ret = "Total pot %s%.2f" % (self.sym, self.total)
|
||||||
if len(self.pots) < 2:
|
if len(self.pots) < 2:
|
||||||
|
@ -1696,5 +1697,3 @@ class Pot(object):
|
||||||
ret += " Main pot %s%.2f" % (self.sym, self.pots[0])
|
ret += " Main pot %s%.2f" % (self.sym, self.pots[0])
|
||||||
|
|
||||||
return ret + ''.join([ (" Side pot %s%.2f." % (self.sym, self.pots[x]) ) for x in xrange(1, len(self.pots)) ])
|
return ret + ''.join([ (" Side pot %s%.2f." % (self.sym, self.pots[x]) ) for x in xrange(1, len(self.pots)) ])
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
|
|
||||||
Parses HandHistory xml files and returns requested objects.
|
Parses HandHistory xml files and returns requested objects.
|
||||||
"""
|
"""
|
||||||
# Copyright 2008-2010, Ray E. Barker
|
# Copyright 2008-2011, Ray E. Barker
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
#Copyright 2008-2010 Carl Gherardi
|
#Copyright 2008-2011 Carl Gherardi
|
||||||
#This program is free software: you can redistribute it and/or modify
|
#This program is free software: you can redistribute it and/or modify
|
||||||
#it under the terms of the GNU Affero General Public License as published by
|
#it under the terms of the GNU Affero General Public License as published by
|
||||||
#the Free Software Foundation, version 3 of the License.
|
#the Free Software Foundation, version 3 of the License.
|
||||||
|
@ -304,14 +304,14 @@ which it expects to find at self.re_TailSplitHands -- see for e.g. Everleaf.py.
|
||||||
elif gametype['base'] == 'draw':
|
elif gametype['base'] == 'draw':
|
||||||
hand = Hand.DrawHand(self.config, self, self.sitename, gametype, handText)
|
hand = Hand.DrawHand(self.config, self, self.sitename, gametype, handText)
|
||||||
else:
|
else:
|
||||||
log.error(_("Unsupported game type: %s" % gametype))
|
log.error(_("Unsupported game type: %s") % gametype)
|
||||||
raise FpdbParseError(_("Unsupported game type: %s" % gametype))
|
raise FpdbParseError(_("Unsupported game type: %s") % gametype)
|
||||||
|
|
||||||
if hand:
|
if hand:
|
||||||
#hand.writeHand(self.out_fh)
|
#hand.writeHand(self.out_fh)
|
||||||
return hand
|
return hand
|
||||||
else:
|
else:
|
||||||
log.error(_("Unsupported game type: %s" % gametype))
|
log.error(_("Unsupported game type: %s") % gametype)
|
||||||
# TODO: pity we don't know the HID at this stage. Log the entire hand?
|
# TODO: pity we don't know the HID at this stage. Log the entire hand?
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
|
|
||||||
Hello World demostration for Aux_Window.
|
Hello World demostration for Aux_Window.
|
||||||
"""
|
"""
|
||||||
# Copyright 2009-2010, Ray E. Barker
|
# Copyright 2009-2011, Ray E. Barker
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
|
|
||||||
Create and manage the hud overlays.
|
Create and manage the hud overlays.
|
||||||
"""
|
"""
|
||||||
# Copyright 2008-2010 Ray E. Barker
|
# Copyright 2008-2011 Ray E. Barker
|
||||||
|
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
#Copyright 2010 Chaz Littlejohn
|
#Copyright 2010-2011 Chaz Littlejohn
|
||||||
#This program is free software: you can redistribute it and/or modify
|
#This program is free software: you can redistribute it and/or modify
|
||||||
#it under the terms of the GNU Affero General Public License as published by
|
#it under the terms of the GNU Affero General Public License as published by
|
||||||
#the Free Software Foundation, version 3 of the License.
|
#the Free Software Foundation, version 3 of the License.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
#Copyright 2010 Steffen Schaumburg
|
#Copyright 2010-2011 Steffen Schaumburg
|
||||||
#This program is free software: you can redistribute it and/or modify
|
#This program is free software: you can redistribute it and/or modify
|
||||||
#it under the terms of the GNU Affero General Public License as published by
|
#it under the terms of the GNU Affero General Public License as published by
|
||||||
#the Free Software Foundation, version 3 of the License.
|
#the Free Software Foundation, version 3 of the License.
|
||||||
|
@ -41,7 +41,7 @@ def splitPokerStarsSummaries(summaryText): #TODO: this needs to go to PSS.py
|
||||||
splitSummaries = re.split(re_SplitTourneys, summaryText)
|
splitSummaries = re.split(re_SplitTourneys, summaryText)
|
||||||
|
|
||||||
if len(splitSummaries) <= 1:
|
if len(splitSummaries) <= 1:
|
||||||
print _("DEBUG: re_SplitTourneys isn't matching")
|
print (_("DEBUG: ") + _("re_SplitTourneys isn't matching"))
|
||||||
|
|
||||||
return splitSummaries
|
return splitSummaries
|
||||||
|
|
||||||
|
@ -50,7 +50,7 @@ def splitFullTiltSummaries(summaryText):#TODO: this needs to go to FTPS.py
|
||||||
splitSummaries = re.split(re_SplitTourneys, summaryText)
|
splitSummaries = re.split(re_SplitTourneys, summaryText)
|
||||||
|
|
||||||
if len(splitSummaries) <= 1:
|
if len(splitSummaries) <= 1:
|
||||||
print _("DEBUG: re_SplitTourneys isn't matching")
|
print(_("DEBUG: ") + _("re_SplitTourneys isn't matching"))
|
||||||
|
|
||||||
return splitSummaries
|
return splitSummaries
|
||||||
|
|
||||||
|
@ -64,7 +64,7 @@ def run(config, db):
|
||||||
else:
|
else:
|
||||||
server = IMAP4(config.host)
|
server = IMAP4(config.host)
|
||||||
response = server.login(config.username, config.password) #TODO catch authentication error
|
response = server.login(config.username, config.password) #TODO catch authentication error
|
||||||
print _("response to logging in:"),response
|
print(_("response to logging in: "), response)
|
||||||
#print "server.list():",server.list() #prints list of folders
|
#print "server.list():",server.list() #prints list of folders
|
||||||
|
|
||||||
response = server.select(config.folder)
|
response = server.select(config.folder)
|
||||||
|
@ -108,7 +108,7 @@ def run(config, db):
|
||||||
else:
|
else:
|
||||||
print _("No Tournament summaries found.")
|
print _("No Tournament summaries found.")
|
||||||
|
|
||||||
print _("Errors: %s" % errors)
|
print (_("Errors: %s") % errors)
|
||||||
|
|
||||||
def readFile(filename, options):
|
def readFile(filename, options):
|
||||||
codepage = ["utf8"]
|
codepage = ["utf8"]
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
#Copyright 2010 Steffen Schaumburg
|
#Copyright 2010-2011 Steffen Schaumburg
|
||||||
#This program is free software: you can redistribute it and/or modify
|
#This program is free software: you can redistribute it and/or modify
|
||||||
#it under the terms of the GNU Affero General Public License as published by
|
#it under the terms of the GNU Affero General Public License as published by
|
||||||
#the Free Software Foundation, version 3 of the License.
|
#the Free Software Foundation, version 3 of the License.
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
|
|
||||||
Mucked cards display for FreePokerTools HUD.
|
Mucked cards display for FreePokerTools HUD.
|
||||||
"""
|
"""
|
||||||
# Copyright 2008-2010, Ray E. Barker
|
# Copyright 2008-2011, Ray E. Barker
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
"""XWindows specific methods for TableWindows Class.
|
"""XWindows specific methods for TableWindows Class.
|
||||||
"""
|
"""
|
||||||
# Copyright 2008 - 2010, Ray E. Barker
|
# Copyright 2008 - 2011, Ray E. Barker
|
||||||
|
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2008-2010, Carl Gherardi
|
# Copyright 2008-2011, Carl Gherardi
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
@ -156,7 +156,7 @@ class OnGame(HandHistoryConverter):
|
||||||
m = self.re_HandInfo.search(handText)
|
m = self.re_HandInfo.search(handText)
|
||||||
if not m:
|
if not m:
|
||||||
tmp = handText[0:100]
|
tmp = handText[0:100]
|
||||||
log.error(_("determineGameType: Unable to recognise gametype from: '%s'") % tmp)
|
log.error(_("Unable to recognise gametype from: '%s'") % tmp)
|
||||||
log.error(_("determineGameType: Raising FpdbParseError"))
|
log.error(_("determineGameType: Raising FpdbParseError"))
|
||||||
raise FpdbParseError(_("Unable to recognise gametype from: '%s'") % tmp)
|
raise FpdbParseError(_("Unable to recognise gametype from: '%s'") % tmp)
|
||||||
|
|
||||||
|
@ -172,7 +172,7 @@ class OnGame(HandHistoryConverter):
|
||||||
info['limitType'] = self.limits[mg['LIMIT']]
|
info['limitType'] = self.limits[mg['LIMIT']]
|
||||||
else:
|
else:
|
||||||
tmp = handText[0:100]
|
tmp = handText[0:100]
|
||||||
log.error(_("determineGameType: limit not found in self.limits(%s). hand: '%s'") % (str(mg),tmp))
|
log.error(_("limit not found in self.limits(%s). hand: '%s'") % (str(mg),tmp))
|
||||||
log.error(_("determineGameType: Raising FpdbParseError"))
|
log.error(_("determineGameType: Raising FpdbParseError"))
|
||||||
raise FpdbParseError(_("limit not found in self.limits(%s). hand: '%s'") % (str(mg),tmp))
|
raise FpdbParseError(_("limit not found in self.limits(%s). hand: '%s'") % (str(mg),tmp))
|
||||||
if 'GAME' in mg:
|
if 'GAME' in mg:
|
||||||
|
@ -206,8 +206,8 @@ class OnGame(HandHistoryConverter):
|
||||||
tzoffset = a.group('OFFSET')
|
tzoffset = a.group('OFFSET')
|
||||||
else:
|
else:
|
||||||
datetimestr = "2010/Jan/01 01:01:01"
|
datetimestr = "2010/Jan/01 01:01:01"
|
||||||
log.error(_("readHandInfo: DATETIME not matched: '%s'" % info[key]))
|
log.error(_("readHandInfo: DATETIME not matched: '%s'") % info[key])
|
||||||
print "DEBUG: readHandInfo: DATETIME not matched: '%s'" % info[key]
|
print (_("DEBUG: ") + _("readHandInfo: DATETIME not matched: '%s'") % info[key])
|
||||||
# TODO: Manually adjust time against OFFSET
|
# TODO: Manually adjust time against OFFSET
|
||||||
hand.startTime = datetime.datetime.strptime(datetimestr, "%Y/%b/%d %H:%M:%S") # also timezone at end, e.g. " ET"
|
hand.startTime = datetime.datetime.strptime(datetimestr, "%Y/%b/%d %H:%M:%S") # also timezone at end, e.g. " ET"
|
||||||
hand.startTime = HandHistoryConverter.changeTimezone(hand.startTime, tzoffset, "UTC")
|
hand.startTime = HandHistoryConverter.changeTimezone(hand.startTime, tzoffset, "UTC")
|
||||||
|
@ -334,7 +334,7 @@ class OnGame(HandHistoryConverter):
|
||||||
elif action.group('ATYPE') == ' stands pat':
|
elif action.group('ATYPE') == ' stands pat':
|
||||||
hand.addStandsPat( street, action.group('PNAME'))
|
hand.addStandsPat( street, action.group('PNAME'))
|
||||||
else:
|
else:
|
||||||
print _("DEBUG: unimplemented readAction: '%s' '%s'") %(action.group('PNAME'),action.group('ATYPE'),)
|
print (_("DEBUG: ") + _("unimplemented readAction: '%s' '%s'") % (action.group('PNAME'), action.group('ATYPE')))
|
||||||
|
|
||||||
def readShowdownActions(self, hand):
|
def readShowdownActions(self, hand):
|
||||||
for shows in self.re_ShowdownAction.finditer(hand.handText):
|
for shows in self.re_ShowdownAction.finditer(hand.handText):
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
#Copyright 2008-2010 Ray E. Barker
|
#Copyright 2008-2011 Ray E. Barker
|
||||||
#This program is free software: you can redistribute it and/or modify
|
#This program is free software: you can redistribute it and/or modify
|
||||||
#it under the terms of the GNU Affero General Public License as published by
|
#it under the terms of the GNU Affero General Public License as published by
|
||||||
#the Free Software Foundation, version 3 of the License.
|
#the Free Software Foundation, version 3 of the License.
|
||||||
|
@ -106,7 +106,7 @@ def site_alias(alias):
|
||||||
tmp = aliases[alias]
|
tmp = aliases[alias]
|
||||||
except KeyError, e:
|
except KeyError, e:
|
||||||
tmp = False
|
tmp = False
|
||||||
print _("Alias '%s' unknown" % alias)
|
print (_("Alias '%s' unknown") % alias)
|
||||||
|
|
||||||
return tmp
|
return tmp
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
#
|
#
|
||||||
# Copyright 2009-2010, Grigorij Indigirkin
|
# Copyright 2009-2011, Grigorij Indigirkin
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
@ -194,10 +194,9 @@ class PartyPoker(HandHistoryConverter):
|
||||||
m_20BBmin = self.re_20BBmin.search(handText)
|
m_20BBmin = self.re_20BBmin.search(handText)
|
||||||
if m is None:
|
if m is None:
|
||||||
tmp = handText[0:100]
|
tmp = handText[0:100]
|
||||||
log.error(_("determineGameType: Unable to recognise gametype from: '%s'") % tmp)
|
log.error(_("Unable to recognise gametype from: '%s'") % tmp)
|
||||||
log.error(_("determineGameType: Raising FpdbParseError"))
|
log.error(_("determineGameType: Raising FpdbParseError"))
|
||||||
raise FpdbParseError(_("Unable to recognise gametype from: '%s'") % tmp)
|
raise FpdbParseError(_("Unable to recognise gametype from: '%s'") % tmp)
|
||||||
return None
|
|
||||||
|
|
||||||
mg = m.groupdict()
|
mg = m.groupdict()
|
||||||
# translations from captured groups to fpdb info strings
|
# translations from captured groups to fpdb info strings
|
||||||
|
@ -253,7 +252,7 @@ class PartyPoker(HandHistoryConverter):
|
||||||
try:
|
try:
|
||||||
info.update(self.re_Hid.search(hand.handText).groupdict())
|
info.update(self.re_Hid.search(hand.handText).groupdict())
|
||||||
except AttributeError, e:
|
except AttributeError, e:
|
||||||
raise FpdbParseError(_("Cannot read HID for current hand: %s" % e))
|
raise FpdbParseError(_("Cannot read HID for current hand: %s") % e)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
info.update(self.re_HandInfo.search(hand.handText,re.DOTALL).groupdict())
|
info.update(self.re_HandInfo.search(hand.handText,re.DOTALL).groupdict())
|
||||||
|
@ -346,7 +345,7 @@ class PartyPoker(HandHistoryConverter):
|
||||||
elif info[key].find(u"€")!=-1:
|
elif info[key].find(u"€")!=-1:
|
||||||
hand.buyinCurrency="EUR"
|
hand.buyinCurrency="EUR"
|
||||||
else:
|
else:
|
||||||
raise FpdbParseError(_("Failed to detect currency. HID: %s: '%s'" % (hand.handid, info[key])))
|
raise FpdbParseError(_("Failed to detect currency. HID: %s: '%s'") % (hand.handid, info[key]))
|
||||||
info[key] = info[key].strip(u'$€')
|
info[key] = info[key].strip(u'$€')
|
||||||
hand.buyin = int(100*Decimal(info[key]))
|
hand.buyin = int(100*Decimal(info[key]))
|
||||||
if key == 'LEVEL':
|
if key == 'LEVEL':
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
#
|
#
|
||||||
# Copyright 2010, Carl Gherardi
|
# Copyright 2010-2011, Carl Gherardi
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
@ -125,7 +125,7 @@ class Pkr(HandHistoryConverter):
|
||||||
m = self.re_GameInfo.search(handText)
|
m = self.re_GameInfo.search(handText)
|
||||||
if not m:
|
if not m:
|
||||||
tmp = handText[0:100]
|
tmp = handText[0:100]
|
||||||
log.error(_("determineGameType: Unable to recognise gametype from: '%s'") % tmp)
|
log.error(_("Unable to recognise gametype from: '%s'") % tmp)
|
||||||
log.error(_("determineGameType: Raising FpdbParseError"))
|
log.error(_("determineGameType: Raising FpdbParseError"))
|
||||||
raise FpdbParseError(_("Unable to recognise gametype from: '%s'") % tmp)
|
raise FpdbParseError(_("Unable to recognise gametype from: '%s'") % tmp)
|
||||||
|
|
||||||
|
@ -150,7 +150,7 @@ class Pkr(HandHistoryConverter):
|
||||||
info['sb'] = self.Lim_Blinds[mg['BB']][0]
|
info['sb'] = self.Lim_Blinds[mg['BB']][0]
|
||||||
info['bb'] = self.Lim_Blinds[mg['BB']][1]
|
info['bb'] = self.Lim_Blinds[mg['BB']][1]
|
||||||
except KeyError:
|
except KeyError:
|
||||||
log.error(_("determineGameType: Lim_Blinds has no lookup for '%s'" % mg['BB']))
|
log.error(_("Lim_Blinds has no lookup for '%s'") % mg['BB'])
|
||||||
log.error(_("determineGameType: Raising FpdbParseError"))
|
log.error(_("determineGameType: Raising FpdbParseError"))
|
||||||
raise FpdbParseError(_("Lim_Blinds has no lookup for '%s'") % mg['BB'])
|
raise FpdbParseError(_("Lim_Blinds has no lookup for '%s'") % mg['BB'])
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
#Copyright 2008-2010 Steffen Schaumburg
|
#Copyright 2008-2011 Steffen Schaumburg
|
||||||
#This program is free software: you can redistribute it and/or modify
|
#This program is free software: you can redistribute it and/or modify
|
||||||
#it under the terms of the GNU Affero General Public License as published by
|
#it under the terms of the GNU Affero General Public License as published by
|
||||||
#the Free Software Foundation, version 3 of the License.
|
#the Free Software Foundation, version 3 of the License.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
#
|
#
|
||||||
# Copyright 2008-2010, Carl Gherardi
|
# Copyright 2008-2011, Carl Gherardi
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
@ -182,7 +182,7 @@ class PokerStars(HandHistoryConverter):
|
||||||
m = self.re_GameInfo.search(handText)
|
m = self.re_GameInfo.search(handText)
|
||||||
if not m:
|
if not m:
|
||||||
tmp = handText[0:100]
|
tmp = handText[0:100]
|
||||||
log.error(_("determineGameType: Unable to recognise gametype from: '%s'") % tmp)
|
log.error(_("Unable to recognise gametype from: '%s'") % tmp)
|
||||||
log.error(_("determineGameType: Raising FpdbParseError"))
|
log.error(_("determineGameType: Raising FpdbParseError"))
|
||||||
raise FpdbParseError(_("Unable to recognise gametype from: '%s'") % tmp)
|
raise FpdbParseError(_("Unable to recognise gametype from: '%s'") % tmp)
|
||||||
|
|
||||||
|
@ -208,7 +208,7 @@ class PokerStars(HandHistoryConverter):
|
||||||
info['sb'] = self.Lim_Blinds[mg['BB']][0]
|
info['sb'] = self.Lim_Blinds[mg['BB']][0]
|
||||||
info['bb'] = self.Lim_Blinds[mg['BB']][1]
|
info['bb'] = self.Lim_Blinds[mg['BB']][1]
|
||||||
except KeyError:
|
except KeyError:
|
||||||
log.error(_("determineGameType: Lim_Blinds has no lookup for '%s'" % mg['BB']))
|
log.error(_("Lim_Blinds has no lookup for '%s'") % mg['BB'])
|
||||||
log.error(_("determineGameType: Raising FpdbParseError"))
|
log.error(_("determineGameType: Raising FpdbParseError"))
|
||||||
raise FpdbParseError(_("Lim_Blinds has no lookup for '%s'") % mg['BB'])
|
raise FpdbParseError(_("Lim_Blinds has no lookup for '%s'") % mg['BB'])
|
||||||
|
|
||||||
|
@ -261,8 +261,8 @@ class PokerStars(HandHistoryConverter):
|
||||||
elif info[key].find("FPP")!=-1:
|
elif info[key].find("FPP")!=-1:
|
||||||
hand.buyinCurrency="PSFP"
|
hand.buyinCurrency="PSFP"
|
||||||
else:
|
else:
|
||||||
#FIXME: handle other currencies, FPP, play money
|
#FIXME: handle other currencies, play money
|
||||||
raise FpdbParseError(_("Failed to detect currency: '%s'" % info[key]))
|
raise FpdbParseError(_("Failed to detect currency: '%s'") % info[key])
|
||||||
|
|
||||||
info['BIAMT'] = info['BIAMT'].strip(u'$€FPP')
|
info['BIAMT'] = info['BIAMT'].strip(u'$€FPP')
|
||||||
|
|
||||||
|
@ -436,7 +436,7 @@ class PokerStars(HandHistoryConverter):
|
||||||
elif action.group('ATYPE') == ' stands pat':
|
elif action.group('ATYPE') == ' stands pat':
|
||||||
hand.addStandsPat( street, action.group('PNAME'))
|
hand.addStandsPat( street, action.group('PNAME'))
|
||||||
else:
|
else:
|
||||||
print _("DEBUG: unimplemented readAction: '%s' '%s'") %(action.group('PNAME'),action.group('ATYPE'),)
|
print (_("DEBUG: ") + _("unimplemented readAction: '%s' '%s'") % (action.group('PNAME'),action.group('ATYPE')))
|
||||||
|
|
||||||
|
|
||||||
def readShowdownActions(self, hand):
|
def readShowdownActions(self, hand):
|
||||||
|
|
|
@ -9,7 +9,7 @@ This will allow a rudimentary "HUD" in rush games
|
||||||
|
|
||||||
The existing notes file will be altered by this function
|
The existing notes file will be altered by this function
|
||||||
"""
|
"""
|
||||||
# Copyright 2010, "Gimick" of the FPDB project fpdb.sourceforge.net
|
# Copyright 2010-2011, "Gimick" of the FPDB project fpdb.sourceforge.net
|
||||||
#
|
#
|
||||||
#This program is free software: you can redistribute it and/or modify
|
#This program is free software: you can redistribute it and/or modify
|
||||||
#it under the terms of the GNU Affero General Public License as published by
|
#it under the terms of the GNU Affero General Public License as published by
|
||||||
|
|
|
@ -13,7 +13,7 @@ The generated file can then replace heroname.xml (if all is well).
|
||||||
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
# Copyright 2010, "Gimick" of the FPDB project fpdb.sourceforge.net
|
# Copyright 2010-2011, "Gimick" of the FPDB project fpdb.sourceforge.net
|
||||||
#
|
#
|
||||||
#This program is free software: you can redistribute it and/or modify
|
#This program is free software: you can redistribute it and/or modify
|
||||||
#it under the terms of the GNU Affero General Public License as published by
|
#it under the terms of the GNU Affero General Public License as published by
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
"""Returns a dict of SQL statements used in fpdb.
|
"""Returns a dict of SQL statements used in fpdb.
|
||||||
"""
|
"""
|
||||||
# Copyright 2008-2010, Ray E. Barker
|
# Copyright 2008-2011, Ray E. Barker
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
#Copyright 2008-2010 Steffen Schaumburg
|
#Copyright 2008-2011 Steffen Schaumburg
|
||||||
#This program is free software: you can redistribute it and/or modify
|
#This program is free software: you can redistribute it and/or modify
|
||||||
#it under the terms of the GNU Affero General Public License as published by
|
#it under the terms of the GNU Affero General Public License as published by
|
||||||
#the Free Software Foundation, version 3 of the License.
|
#the Free Software Foundation, version 3 of the License.
|
||||||
|
@ -15,7 +15,7 @@
|
||||||
#along with this program. If not, see <http://www.gnu.org/licenses/>.
|
#along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#In the "official" distribution you can find the license in agpl-3.0.txt.
|
#In the "official" distribution you can find the license in agpl-3.0.txt.
|
||||||
|
|
||||||
"""A site template for tounrey summary parsing"""
|
"""A site template for tourney summary parsing"""
|
||||||
|
|
||||||
import L10n
|
import L10n
|
||||||
_ = L10n.get_translation()
|
_ = L10n.get_translation()
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
#Copyright 2010 Chaz Littlejohn
|
#Copyright 2010-2011 Chaz Littlejohn
|
||||||
#This program is free software: you can redistribute it and/or modify
|
#This program is free software: you can redistribute it and/or modify
|
||||||
#it under the terms of the GNU Affero General Public License as published by
|
#it under the terms of the GNU Affero General Public License as published by
|
||||||
#the Free Software Foundation, version 3 of the License.
|
#the Free Software Foundation, version 3 of the License.
|
||||||
|
@ -73,7 +73,7 @@ class SplitHandHistory:
|
||||||
try:
|
try:
|
||||||
infile = codecs.open(self.in_path, 'r', kodec)
|
infile = codecs.open(self.in_path, 'r', kodec)
|
||||||
except IOError:
|
except IOError:
|
||||||
print _('File not found')
|
print (_('File not found'))
|
||||||
sys.exit(2)
|
sys.exit(2)
|
||||||
|
|
||||||
#Split with do_hands_per_file if archive and paragraphs if a regular hh
|
#Split with do_hands_per_file if archive and paragraphs if a regular hh
|
||||||
|
@ -83,7 +83,7 @@ class SplitHandHistory:
|
||||||
nn += 1
|
nn += 1
|
||||||
check = self.do_hands_per_file(infile, nn)
|
check = self.do_hands_per_file(infile, nn)
|
||||||
if check is None:
|
if check is None:
|
||||||
print _('%s processed' % self.in_path)
|
print (_('%s processed') % self.in_path)
|
||||||
break
|
break
|
||||||
else:
|
else:
|
||||||
filenum = 0
|
filenum = 0
|
||||||
|
@ -102,11 +102,11 @@ class SplitHandHistory:
|
||||||
|
|
||||||
def new_file(self, fileno=-1):
|
def new_file(self, fileno=-1):
|
||||||
if fileno < 1:
|
if fileno < 1:
|
||||||
print _('Nope, will not work (fileno=%d)' % fileno)
|
print (_('Nope, will not work (fileno=%d)') % fileno)
|
||||||
sys.exit(2)
|
sys.exit(2)
|
||||||
basename = os.path.splitext(os.path.basename(self.in_path))[0]
|
basename = os.path.splitext(os.path.basename(self.in_path))[0]
|
||||||
name = os.path.join(self.out_path, basename+'-%06d.txt' % fileno)
|
name = os.path.join(self.out_path, basename+'-%06d.txt' % fileno)
|
||||||
print '-> %s' % name
|
print ('-> %s' % name)
|
||||||
newfile = file(name, 'w')
|
newfile = file(name, 'w')
|
||||||
return newfile
|
return newfile
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
|
|
||||||
"""Manage collecting and formatting of stats and tooltips.
|
"""Manage collecting and formatting of stats and tooltips.
|
||||||
"""
|
"""
|
||||||
# Copyright 2008-2010, Ray E. Barker
|
# Copyright 2008-2011, Ray E. Barker
|
||||||
|
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
# stove.py
|
# stove.py
|
||||||
# Simple Hold'em equity calculator
|
# Simple Hold'em equity calculator
|
||||||
# Copyright (C) 2007-2008 Mika Boström <bostik@iki.fi>
|
# Copyright (C) 2007-2011 Mika Boström <bostik@iki.fi>
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# This program is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
#Copyright 2008-2010 Steffen Schaumburg
|
#Copyright 2008-2011 Steffen Schaumburg
|
||||||
#This program is free software: you can redistribute it and/or modify
|
#This program is free software: you can redistribute it and/or modify
|
||||||
#it under the terms of the GNU Affero General Public License as published by
|
#it under the terms of the GNU Affero General Public License as published by
|
||||||
#the Free Software Foundation, version 3 of the License.
|
#the Free Software Foundation, version 3 of the License.
|
||||||
|
@ -47,7 +47,7 @@ for messageNumber in searchData[0].split(" "):
|
||||||
if response!="OK":
|
if response!="OK":
|
||||||
raise error #TODO: show error message
|
raise error #TODO: show error message
|
||||||
if headerData[1].find("Subject: PokerStars Tournament History Request - Last x")!=1:
|
if headerData[1].find("Subject: PokerStars Tournament History Request - Last x")!=1:
|
||||||
neededMessages.append((messageNumber, "PS")
|
neededMessages.append(messageNumber, "PS")
|
||||||
|
|
||||||
tourneys=[]
|
tourneys=[]
|
||||||
if len(neededMessages)==0:
|
if len(neededMessages)==0:
|
||||||
|
@ -57,7 +57,7 @@ for messageData in neededMessages:
|
||||||
if response!="OK":
|
if response!="OK":
|
||||||
raise error #TODO: show error message
|
raise error #TODO: show error message
|
||||||
if messageData[0]=="PS":
|
if messageData[0]=="PS":
|
||||||
tourneys.append(PokerStarsSummaries.PokerStarsSummaries(bodyData)
|
tourneys.append(PokerStarsSummaries.PokerStarsSummaries(bodyData))
|
||||||
|
|
||||||
for tourney in tourneys:
|
for tourney in tourneys:
|
||||||
print "tourney:",tourney
|
print "tourney:",tourney
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright (c) 2009-2010 Eric Blade, and the FPDB team.
|
# Copyright (c) 2009-2011 Eric Blade, and the FPDB team.
|
||||||
|
|
||||||
#This program is free software: you can redistribute it and/or modify
|
#This program is free software: you can redistribute it and/or modify
|
||||||
#it under the terms of the GNU Affero General Public License as published by
|
#it under the terms of the GNU Affero General Public License as published by
|
||||||
|
|
|
@ -8,7 +8,7 @@ The class queries the poker client window for data of interest, such as
|
||||||
size and location. It also controls the signals to alert the HUD when the
|
size and location. It also controls the signals to alert the HUD when the
|
||||||
client has been resized, destroyed, etc.
|
client has been resized, destroyed, etc.
|
||||||
"""
|
"""
|
||||||
# Copyright 2008 - 2010, Ray E. Barker
|
# Copyright 2008 - 2011, Ray E. Barker
|
||||||
|
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
|
|
||||||
Main program module to test/demo the Tables subclasses.
|
Main program module to test/demo the Tables subclasses.
|
||||||
"""
|
"""
|
||||||
# Copyright 2008-2010, Ray E. Barker
|
# Copyright 2008-2011, Ray E. Barker
|
||||||
|
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
|
2
pyfpdb/TestHandsPlayers.py
Normal file → Executable file
2
pyfpdb/TestHandsPlayers.py
Normal file → Executable file
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
#
|
#
|
||||||
# Copyright 2010, Carl Gherardi
|
# Copyright 2010-2011, Carl Gherardi
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
#
|
#
|
||||||
# Copyright 2010, Carl Gherardi
|
# Copyright 2010-2011, Carl Gherardi
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
"""TourneyTracker.py
|
"""TourneyTracker.py
|
||||||
Based on HUD_main .. who knows if we want to actually use this or not
|
Based on HUD_main .. who knows if we want to actually use this or not
|
||||||
"""
|
"""
|
||||||
# Copyright (c) 2009-2010 Eric Blade, and the FPDB team.
|
# Copyright (c) 2009-2011 Eric Blade, and the FPDB team.
|
||||||
|
|
||||||
#This program is free software: you can redistribute it and/or modify
|
#This program is free software: you can redistribute it and/or modify
|
||||||
#it under the terms of the GNU Affero General Public License as published by
|
#it under the terms of the GNU Affero General Public License as published by
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
#Copyright 2010 Steffen Schaumburg
|
#Copyright 2010-2011 Steffen Schaumburg
|
||||||
#This program is free software: you can redistribute it and/or modify
|
#This program is free software: you can redistribute it and/or modify
|
||||||
#it under the terms of the GNU Affero General Public License as published by
|
#it under the terms of the GNU Affero General Public License as published by
|
||||||
#the Free Software Foundation, version 3 of the License.
|
#the Free Software Foundation, version 3 of the License.
|
||||||
|
@ -15,6 +15,8 @@
|
||||||
#along with this program. If not, see <http://www.gnu.org/licenses/>.
|
#along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#In the "official" distribution you can find the license in agpl-3.0.txt.
|
#In the "official" distribution you can find the license in agpl-3.0.txt.
|
||||||
|
|
||||||
|
#TODO: migrate all of this into Filters.py
|
||||||
|
|
||||||
import L10n
|
import L10n
|
||||||
_ = L10n.get_translation()
|
_ = L10n.get_translation()
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
#Copyright 2009-2010 Stephane Alessio
|
#Copyright 2009-2011 Stephane Alessio
|
||||||
#This program is free software: you can redistribute it and/or modify
|
#This program is free software: you can redistribute it and/or modify
|
||||||
#it under the terms of the GNU Affero General Public License as published by
|
#it under the terms of the GNU Affero General Public License as published by
|
||||||
#the Free Software Foundation, version 3 of the License.
|
#the Free Software Foundation, version 3 of the License.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
#
|
#
|
||||||
# Copyright 2008-2010, Carl Gherardi
|
# Copyright 2008-2011, Carl Gherardi
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
@ -92,7 +92,7 @@ class Win2day(HandHistoryConverter):
|
||||||
m = self.re_GameInfo.search(handText)
|
m = self.re_GameInfo.search(handText)
|
||||||
if not m:
|
if not m:
|
||||||
tmp = handText[0:100]
|
tmp = handText[0:100]
|
||||||
log.error(_("determineGameType: Unable to recognise gametype from: '%s'") % tmp)
|
log.error(_("Unable to recognise gametype from: '%s'") % tmp)
|
||||||
log.error(_("determineGameType: Raising FpdbParseError"))
|
log.error(_("determineGameType: Raising FpdbParseError"))
|
||||||
raise FpdbParseError(_("Unable to recognise gametype from: '%s'") % tmp)
|
raise FpdbParseError(_("Unable to recognise gametype from: '%s'") % tmp)
|
||||||
|
|
||||||
|
@ -338,7 +338,7 @@ class Win2day(HandHistoryConverter):
|
||||||
elif action.group('ATYPE') == 'ACTION_STAND':
|
elif action.group('ATYPE') == 'ACTION_STAND':
|
||||||
hand.addStandsPat( street, action.group('PNAME'))
|
hand.addStandsPat( street, action.group('PNAME'))
|
||||||
else:
|
else:
|
||||||
print _("DEBUG: unimplemented readAction: '%s' '%s'" %(action.group('PNAME'),action.group('ATYPE'),))
|
print (_("DEBUG: ") + _("unimplemented readAction: '%s' '%s'") % (action.group('PNAME'), action.group('ATYPE')))
|
||||||
|
|
||||||
|
|
||||||
def readShowdownActions(self, hand):
|
def readShowdownActions(self, hand):
|
||||||
|
|
|
@ -62,9 +62,11 @@ class Table(Table_Window):
|
||||||
if re.search(self.search_string, titles[hwnd], re.I):
|
if re.search(self.search_string, titles[hwnd], re.I):
|
||||||
if self.check_bad_words(titles[hwnd]):
|
if self.check_bad_words(titles[hwnd]):
|
||||||
continue
|
continue
|
||||||
if not win32gui.IsWindowVisible(hwnd): # if window not visible, probably not a table
|
# if window not visible, probably not a table
|
||||||
|
if not win32gui.IsWindowVisible(hwnd):
|
||||||
continue
|
continue
|
||||||
if win32gui.GetParent(hwnd) != 0: # if window is a child of another window, probably not a table
|
# if window is a child of another window, probably not a table
|
||||||
|
if win32gui.GetParent(hwnd) != 0:
|
||||||
continue
|
continue
|
||||||
HasNoOwner = win32gui.GetWindow(hwnd, win32con.GW_OWNER) == 0
|
HasNoOwner = win32gui.GetWindow(hwnd, win32con.GW_OWNER) == 0
|
||||||
WindowStyle = win32gui.GetWindowLong(hwnd, win32con.GWL_EXSTYLE)
|
WindowStyle = win32gui.GetWindowLong(hwnd, win32con.GWL_EXSTYLE)
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2008-2010, Carl Gherardi
|
# Copyright 2008-2011, Carl Gherardi
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
@ -169,7 +169,7 @@ class Winamax(HandHistoryConverter):
|
||||||
m = self.re_HandInfo.search(handText)
|
m = self.re_HandInfo.search(handText)
|
||||||
if not m:
|
if not m:
|
||||||
tmp = handText[0:100]
|
tmp = handText[0:100]
|
||||||
log.error(_("determineGameType: Unable to recognise gametype from: '%s'") % tmp)
|
log.error(_("Unable to recognise gametype from: '%s'") % tmp)
|
||||||
log.error(_("determineGameType: Raising FpdbParseError"))
|
log.error(_("determineGameType: Raising FpdbParseError"))
|
||||||
raise FpdbParseError(_("Unable to recognise gametype from: '%s'") % tmp)
|
raise FpdbParseError(_("Unable to recognise gametype from: '%s'") % tmp)
|
||||||
|
|
||||||
|
@ -187,7 +187,7 @@ class Winamax(HandHistoryConverter):
|
||||||
info['limitType'] = self.limits[mg['LIMIT']]
|
info['limitType'] = self.limits[mg['LIMIT']]
|
||||||
else:
|
else:
|
||||||
tmp = handText[0:100]
|
tmp = handText[0:100]
|
||||||
log.error(_("determineGameType: limit not found in self.limits(%s). hand: '%s'") % (str(mg),tmp))
|
log.error(_("limit not found in self.limits(%s). hand: '%s'") % (str(mg),tmp))
|
||||||
log.error(_("determineGameType: Raising FpdbParseError"))
|
log.error(_("determineGameType: Raising FpdbParseError"))
|
||||||
raise FpdbParseError(_("limit not found in self.limits(%s). hand: '%s'") % (str(mg),tmp))
|
raise FpdbParseError(_("limit not found in self.limits(%s). hand: '%s'") % (str(mg),tmp))
|
||||||
if 'GAME' in mg:
|
if 'GAME' in mg:
|
||||||
|
@ -214,7 +214,7 @@ class Winamax(HandHistoryConverter):
|
||||||
datetimestr = "%s/%s/%s %s:%s:%s" % (a.group('Y'),a.group('M'), a.group('D'), a.group('H'),a.group('MIN'),a.group('S'))
|
datetimestr = "%s/%s/%s %s:%s:%s" % (a.group('Y'),a.group('M'), a.group('D'), a.group('H'),a.group('MIN'),a.group('S'))
|
||||||
else:
|
else:
|
||||||
datetimestr = "2010/Jan/01 01:01:01"
|
datetimestr = "2010/Jan/01 01:01:01"
|
||||||
log.error(_("readHandInfo: DATETIME not matched: '%s'" % info[key]))
|
log.error(_("readHandInfo: DATETIME not matched: '%s'") % info[key])
|
||||||
#print "DEBUG: readHandInfo: DATETIME not matched: '%s'" % info[key]
|
#print "DEBUG: readHandInfo: DATETIME not matched: '%s'" % info[key]
|
||||||
hand.startTime = datetime.datetime.strptime(datetimestr, "%Y/%m/%d %H:%M:%S")
|
hand.startTime = datetime.datetime.strptime(datetimestr, "%Y/%m/%d %H:%M:%S")
|
||||||
hand.startTime = HandHistoryConverter.changeTimezone(hand.startTime, "CET", "UTC")
|
hand.startTime = HandHistoryConverter.changeTimezone(hand.startTime, "CET", "UTC")
|
||||||
|
@ -297,7 +297,7 @@ class Winamax(HandHistoryConverter):
|
||||||
hand.mixed = None
|
hand.mixed = None
|
||||||
|
|
||||||
def readPlayerStacks(self, hand):
|
def readPlayerStacks(self, hand):
|
||||||
log.debug(_("readplayerstacks: re is '%s'" % self.re_PlayerInfo))
|
log.debug(_("readplayerstacks: re is '%s'") % self.re_PlayerInfo)
|
||||||
m = self.re_PlayerInfo.finditer(hand.handText)
|
m = self.re_PlayerInfo.finditer(hand.handText)
|
||||||
for a in m:
|
for a in m:
|
||||||
hand.addPlayer(int(a.group('SEAT')), a.group('PNAME'), a.group('CASH'))
|
hand.addPlayer(int(a.group('SEAT')), a.group('PNAME'), a.group('CASH'))
|
||||||
|
@ -324,7 +324,7 @@ class Winamax(HandHistoryConverter):
|
||||||
m = self.re_Button.search(hand.handText)
|
m = self.re_Button.search(hand.handText)
|
||||||
if m:
|
if m:
|
||||||
hand.buttonpos = int(m.group('BUTTON'))
|
hand.buttonpos = int(m.group('BUTTON'))
|
||||||
log.debug(_('readButton: button on pos %d'%hand.buttonpos))
|
log.debug(_('readButton: button on pos %d') % hand.buttonpos)
|
||||||
else:
|
else:
|
||||||
log.warning(_('readButton: not found'))
|
log.warning(_('readButton: not found'))
|
||||||
|
|
||||||
|
@ -376,13 +376,13 @@ class Winamax(HandHistoryConverter):
|
||||||
if street in hand.streets.keys():
|
if street in hand.streets.keys():
|
||||||
m = self.re_HeroCards.finditer(hand.streets[street])
|
m = self.re_HeroCards.finditer(hand.streets[street])
|
||||||
if m == []:
|
if m == []:
|
||||||
log.debug(_("No hole cards found for %s"%street))
|
log.debug(_("No hole cards found for %s") % street)
|
||||||
for found in m:
|
for found in m:
|
||||||
hand.hero = found.group('PNAME')
|
hand.hero = found.group('PNAME')
|
||||||
newcards = found.group('CARDS').split(' ')
|
newcards = found.group('CARDS').split(' ')
|
||||||
# print "DEBUG: addHoleCards(%s, %s, %s)" %(street, hand.hero, newcards)
|
# print "DEBUG: addHoleCards(%s, %s, %s)" %(street, hand.hero, newcards)
|
||||||
hand.addHoleCards(street, hand.hero, closed=newcards, shown=False, mucked=False, dealt=True)
|
hand.addHoleCards(street, hand.hero, closed=newcards, shown=False, mucked=False, dealt=True)
|
||||||
log.debug(_("Hero cards %s: %s"%(hand.hero, newcards)))
|
log.debug(_("Hero cards %s: %s") % (hand.hero, newcards))
|
||||||
|
|
||||||
def readAction(self, hand, street):
|
def readAction(self, hand, street):
|
||||||
m = self.re_Action.finditer(hand.streets[street])
|
m = self.re_Action.finditer(hand.streets[street])
|
||||||
|
@ -403,13 +403,13 @@ class Winamax(HandHistoryConverter):
|
||||||
elif action.group('ATYPE') == ' stands pat':
|
elif action.group('ATYPE') == ' stands pat':
|
||||||
hand.addStandsPat( street, action.group('PNAME'))
|
hand.addStandsPat( street, action.group('PNAME'))
|
||||||
else:
|
else:
|
||||||
log.fatal(_("DEBUG: unimplemented readAction: '%s' '%s'")) %(action.group('PNAME'),action.group('ATYPE'),)
|
log.fatal(_("DEBUG: ") + _("unimplemented readAction: '%s' '%s'") % (action.group('PNAME'),action.group('ATYPE')))
|
||||||
# print "Processed %s"%acts
|
# print "Processed %s"%acts
|
||||||
# print "committed=",hand.pot.committed
|
# print "committed=",hand.pot.committed
|
||||||
|
|
||||||
def readShowdownActions(self, hand):
|
def readShowdownActions(self, hand):
|
||||||
for shows in self.re_ShowdownAction.finditer(hand.handText):
|
for shows in self.re_ShowdownAction.finditer(hand.handText):
|
||||||
log.debug(_("add show actions %s"%shows))
|
log.debug(_("add show actions %s") % shows)
|
||||||
cards = shows.group('CARDS')
|
cards = shows.group('CARDS')
|
||||||
cards = cards.split(' ')
|
cards = cards.split(' ')
|
||||||
# print "DEBUG: addShownCards(%s, %s)" %(cards, shows.group('PNAME'))
|
# print "DEBUG: addShownCards(%s, %s)" %(cards, shows.group('PNAME'))
|
||||||
|
@ -466,7 +466,7 @@ class Winamax(HandHistoryConverter):
|
||||||
|
|
||||||
def readShownCards(self,hand):
|
def readShownCards(self,hand):
|
||||||
for m in self.re_ShownCards.finditer(hand.handText):
|
for m in self.re_ShownCards.finditer(hand.handText):
|
||||||
log.debug(_("Read shown cards: %s"%m.group(0)))
|
log.debug(_("Read shown cards: %s") % m.group(0))
|
||||||
cards = m.group('CARDS')
|
cards = m.group('CARDS')
|
||||||
cards = cards.split(' ') # needs to be a list, not a set--stud needs the order
|
cards = cards.split(' ') # needs to be a list, not a set--stud needs the order
|
||||||
(shown, mucked) = (False, False)
|
(shown, mucked) = (False, False)
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
"""XWindows specific methods for TableWindows Class.
|
"""XWindows specific methods for TableWindows Class.
|
||||||
"""
|
"""
|
||||||
# Copyright 2008 - 2010, Ray E. Barker
|
# Copyright 2008 - 2011, Ray E. Barker
|
||||||
|
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
|
238
pyfpdb/fpdb.pyw
Executable file → Normal file
238
pyfpdb/fpdb.pyw
Executable file → Normal file
|
@ -28,7 +28,7 @@ if os.name == 'nt' and sys.version[0:3] not in ('2.5', '2.6', '2.7') and '-r' no
|
||||||
#print "old path =", os.environ['PATH']
|
#print "old path =", os.environ['PATH']
|
||||||
dirs = re.split(os.pathsep, os.environ['PATH'])
|
dirs = re.split(os.pathsep, os.environ['PATH'])
|
||||||
# remove any trailing / or \ chars from dirs:
|
# remove any trailing / or \ chars from dirs:
|
||||||
dirs = [re.sub('[\\/]$','',p) for p in dirs]
|
dirs = [re.sub('[\\/]$', '', p) for p in dirs]
|
||||||
# remove any dirs containing 'python' apart from those ending in 'python25', 'python26' or 'python':
|
# remove any dirs containing 'python' apart from those ending in 'python25', 'python26' or 'python':
|
||||||
dirs = [p for p in dirs if not re.search('python', p, re.I) or re.search('python25$', p, re.I) or re.search('python26$', p, re.I) or re.search('python27$', p, re.I)]
|
dirs = [p for p in dirs if not re.search('python', p, re.I) or re.search('python25$', p, re.I) or re.search('python26$', p, re.I) or re.search('python27$', p, re.I)]
|
||||||
tmppath = ";".join(dirs)
|
tmppath = ";".join(dirs)
|
||||||
|
@ -37,10 +37,10 @@ if os.name == 'nt' and sys.version[0:3] not in ('2.5', '2.6', '2.7') and '-r' no
|
||||||
os.environ['PATH'] = tmppath
|
os.environ['PATH'] = tmppath
|
||||||
print "Python " + sys.version[0:3] + _(' - press return to continue\n')
|
print "Python " + sys.version[0:3] + _(' - press return to continue\n')
|
||||||
sys.stdin.readline()
|
sys.stdin.readline()
|
||||||
if os.name=='nt':
|
if os.name == 'nt':
|
||||||
os.execvpe('pythonw.exe', ('pythonw.exe', 'fpdb.pyw', '-r'), os.environ) # first arg is ignored (name of program being run)
|
os.execvpe('pythonw.exe', ('pythonw.exe', 'fpdb.pyw', '-r'), os.environ)
|
||||||
else:
|
else:
|
||||||
os.execvpe('python', ('python', 'fpdb.pyw', '-r'), os.environ) # first arg is ignored (name of program being run)
|
os.execvpe('python', ('python', 'fpdb.pyw', '-r'), os.environ)
|
||||||
else:
|
else:
|
||||||
print _("\npython 2.5-2.7 not found, please install python 2.5, 2.6 or 2.7 for fpdb\n")
|
print _("\npython 2.5-2.7 not found, please install python 2.5, 2.6 or 2.7 for fpdb\n")
|
||||||
raw_input(_("Press ENTER to continue."))
|
raw_input(_("Press ENTER to continue."))
|
||||||
|
@ -67,7 +67,8 @@ import string
|
||||||
cl_options = string.join(sys.argv[1:])
|
cl_options = string.join(sys.argv[1:])
|
||||||
(options, argv) = Options.fpdb_options()
|
(options, argv) = Options.fpdb_options()
|
||||||
|
|
||||||
import logging, logging.config
|
import logging
|
||||||
|
import logging.config
|
||||||
log = logging.getLogger("fpdb")
|
log = logging.getLogger("fpdb")
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
@ -141,7 +142,7 @@ class fpdb:
|
||||||
|
|
||||||
def add_tab(self, new_page, new_tab_name):
|
def add_tab(self, new_page, new_tab_name):
|
||||||
"""adds a tab, namely creates the button and displays it and appends all the relevant arrays"""
|
"""adds a tab, namely creates the button and displays it and appends all the relevant arrays"""
|
||||||
for name in self.nb_tab_names: #todo: check this is valid
|
for name in self.nb_tab_names: # todo: check this is valid
|
||||||
if name == new_tab_name:
|
if name == new_tab_name:
|
||||||
return # if tab already exists, just go to it
|
return # if tab already exists, just go to it
|
||||||
|
|
||||||
|
@ -205,9 +206,9 @@ class fpdb:
|
||||||
image = gtk.Image()
|
image = gtk.Image()
|
||||||
image.set_from_stock(gtk.STOCK_CLOSE, gtk.ICON_SIZE_SMALL_TOOLBAR)
|
image.set_from_stock(gtk.STOCK_CLOSE, gtk.ICON_SIZE_SMALL_TOOLBAR)
|
||||||
gtk.Button.set_relief(button, gtk.RELIEF_NONE)
|
gtk.Button.set_relief(button, gtk.RELIEF_NONE)
|
||||||
settings = gtk.Widget.get_settings(button);
|
settings = gtk.Widget.get_settings(button)
|
||||||
(w,h) = gtk.icon_size_lookup_for_settings(settings, gtk.ICON_SIZE_SMALL_TOOLBAR);
|
(w, h) = gtk.icon_size_lookup_for_settings(settings, gtk.ICON_SIZE_SMALL_TOOLBAR)
|
||||||
gtk.Widget.set_size_request(button, w + 4, h + 4);
|
gtk.Widget.set_size_request(button, w + 4, h + 4)
|
||||||
image.show()
|
image.show()
|
||||||
iconBox.pack_start(image, True, False, 0)
|
iconBox.pack_start(image, True, False, 0)
|
||||||
button.add(iconBox)
|
button.add(iconBox)
|
||||||
|
@ -253,19 +254,19 @@ class fpdb:
|
||||||
db_version = ""
|
db_version = ""
|
||||||
#if self.db is not None:
|
#if self.db is not None:
|
||||||
# db_version = self.db.get_version()
|
# db_version = self.db.get_version()
|
||||||
nums = [ (_('Operating System'), os.name)
|
nums = [(_('Operating System'), os.name),
|
||||||
, ('Python', sys.version[0:3])
|
('Python', sys.version[0:3]),
|
||||||
, ('GTK+', '.'.join([str(x) for x in gtk.gtk_version]))
|
('GTK+', '.'.join([str(x) for x in gtk.gtk_version])),
|
||||||
, ('PyGTK', '.'.join([str(x) for x in gtk.pygtk_version]))
|
('PyGTK', '.'.join([str(x) for x in gtk.pygtk_version])),
|
||||||
, ('matplotlib', matplotlib_version)
|
('matplotlib', matplotlib_version),
|
||||||
, ('numpy', numpy_version)
|
('numpy', numpy_version),
|
||||||
, ('sqlite', sqlite_version)
|
('sqlite', sqlite_version),
|
||||||
, ('fpdb version', VERSION)
|
('fpdb version', VERSION),
|
||||||
, ('database used', self.settings['db-server'])
|
('database used', self.settings['db-server'])
|
||||||
]
|
]
|
||||||
versions = gtk.TextBuffer()
|
versions = gtk.TextBuffer()
|
||||||
w = 20 # width used for module names and version numbers
|
w = 20 # width used for module names and version numbers
|
||||||
versions.set_text( '\n'.join( [x[0].rjust(w)+' '+ x[1].ljust(w) for x in nums] ) )
|
versions.set_text('\n'.join([x[0].rjust(w) + ' ' + x[1].ljust(w) for x in nums]))
|
||||||
view = gtk.TextView(versions)
|
view = gtk.TextView(versions)
|
||||||
view.set_editable(False)
|
view.set_editable(False)
|
||||||
view.set_justification(gtk.JUSTIFY_CENTER)
|
view.set_justification(gtk.JUSTIFY_CENTER)
|
||||||
|
@ -273,7 +274,7 @@ class fpdb:
|
||||||
view.show()
|
view.show()
|
||||||
dia.vbox.pack_end(view, True, True, 2)
|
dia.vbox.pack_end(view, True, True, 2)
|
||||||
|
|
||||||
l = gtk.Label(_("Your config file is: ")+self.config.file)
|
l = gtk.Label(_("Your config file is: ") + self.config.file)
|
||||||
l.set_alignment(0.5, 0.5)
|
l.set_alignment(0.5, 0.5)
|
||||||
l.show()
|
l.show()
|
||||||
dia.vbox.pack_end(l, True, True, 2)
|
dia.vbox.pack_end(l, True, True, 2)
|
||||||
|
@ -332,10 +333,10 @@ class fpdb:
|
||||||
# save updated config
|
# save updated config
|
||||||
self.config.save()
|
self.config.save()
|
||||||
self.load_profile()
|
self.load_profile()
|
||||||
for name in self.config.supported_databases: #db_ip/db_user/db_pass/db_server
|
for name in self.config.supported_databases: # db_ip/db_user/db_pass/db_server
|
||||||
log.info('fpdb: name,desc='+name+','+self.config.supported_databases[name].db_desc)
|
log.info('fpdb: name,desc=' + name + ',' + self.config.supported_databases[name].db_desc)
|
||||||
else:
|
else:
|
||||||
log.info(_('guidb response was ')+str(response))
|
log.info(_('guidb response was ') + str(response))
|
||||||
|
|
||||||
self.release_global_lock()
|
self.release_global_lock()
|
||||||
|
|
||||||
|
@ -344,17 +345,17 @@ class fpdb:
|
||||||
self.warning_box(_("Cannot open Database Maintenance window because other windows have been opened. Re-start fpdb to use this option."))
|
self.warning_box(_("Cannot open Database Maintenance window because other windows have been opened. Re-start fpdb to use this option."))
|
||||||
|
|
||||||
def dia_database_stats(self, widget, data=None):
|
def dia_database_stats(self, widget, data=None):
|
||||||
self.warning_box(str=_("Number of Hands: ")+str(self.db.getHandCount())+
|
self.warning_box(str=_("Number of Hands: ") + str(self.db.getHandCount()) +
|
||||||
_("\nNumber of Tourneys: ")+str(self.db.getTourneyCount())+
|
_("\nNumber of Tourneys: ") + str(self.db.getTourneyCount()) +
|
||||||
_("\nNumber of TourneyTypes: ")+str(self.db.getTourneyTypeCount()),
|
_("\nNumber of TourneyTypes: ") + str(self.db.getTourneyTypeCount()),
|
||||||
diatitle=_("Database Statistics"))
|
diatitle=_("Database Statistics"))
|
||||||
#end def dia_database_stats
|
#end def dia_database_stats
|
||||||
|
|
||||||
def diaHudConfigurator(self, widget, data=None):
|
def diaHudConfigurator(self, widget, data=None):
|
||||||
"""Opens dialog to set parameters (game category, row count, column count for HUD stat configurator"""
|
"""Opens dialog to set parameters (game category, row count, column count for HUD stat configurator"""
|
||||||
self.hudConfiguratorRows=None
|
self.hudConfiguratorRows = None
|
||||||
self.hudConfiguratorColumns=None
|
self.hudConfiguratorColumns = None
|
||||||
self.hudConfiguratorGame=None
|
self.hudConfiguratorGame = None
|
||||||
|
|
||||||
diaSelections = gtk.Dialog(_("HUD Configurator - choose category"),
|
diaSelections = gtk.Dialog(_("HUD Configurator - choose category"),
|
||||||
self.window,
|
self.window,
|
||||||
|
@ -362,14 +363,14 @@ class fpdb:
|
||||||
(gtk.STOCK_OK, gtk.RESPONSE_ACCEPT,
|
(gtk.STOCK_OK, gtk.RESPONSE_ACCEPT,
|
||||||
gtk.STOCK_CANCEL, gtk.RESPONSE_REJECT))
|
gtk.STOCK_CANCEL, gtk.RESPONSE_REJECT))
|
||||||
|
|
||||||
label=gtk.Label(_("Please select the game category for which you want to configure HUD stats:"))
|
label = gtk.Label(_("Please select the game category for which you want to configure HUD stats:"))
|
||||||
diaSelections.vbox.add(label)
|
diaSelections.vbox.add(label)
|
||||||
label.show()
|
label.show()
|
||||||
|
|
||||||
comboGame = gtk.combo_box_new_text()
|
comboGame = gtk.combo_box_new_text()
|
||||||
comboGame.connect("changed", self.hudConfiguratorComboSelection)
|
comboGame.connect("changed", self.hudConfiguratorComboSelection)
|
||||||
diaSelections.vbox.add(comboGame)
|
diaSelections.vbox.add(comboGame)
|
||||||
games=self.config.get_supported_games()
|
games = self.config.get_supported_games()
|
||||||
for game in games:
|
for game in games:
|
||||||
comboGame.append_text(game)
|
comboGame.append_text(game)
|
||||||
comboGame.set_active(0)
|
comboGame.set_active(0)
|
||||||
|
@ -378,36 +379,39 @@ class fpdb:
|
||||||
comboRows = gtk.combo_box_new_text()
|
comboRows = gtk.combo_box_new_text()
|
||||||
comboRows.connect("changed", self.hudConfiguratorComboSelection)
|
comboRows.connect("changed", self.hudConfiguratorComboSelection)
|
||||||
diaSelections.vbox.add(comboRows)
|
diaSelections.vbox.add(comboRows)
|
||||||
for i in range(1,8):
|
for i in range(1, 8):
|
||||||
comboRows.append_text(str(i)+" rows")
|
comboRows.append_text(str(i) + " rows")
|
||||||
comboRows.set_active(0)
|
comboRows.set_active(0)
|
||||||
comboRows.show()
|
comboRows.show()
|
||||||
|
|
||||||
comboColumns = gtk.combo_box_new_text()
|
comboColumns = gtk.combo_box_new_text()
|
||||||
comboColumns.connect("changed", self.hudConfiguratorComboSelection)
|
comboColumns.connect("changed", self.hudConfiguratorComboSelection)
|
||||||
diaSelections.vbox.add(comboColumns)
|
diaSelections.vbox.add(comboColumns)
|
||||||
for i in range(1,8):
|
for i in range(1, 8):
|
||||||
comboColumns.append_text(str(i)+" columns")
|
comboColumns.append_text(str(i) + " columns")
|
||||||
comboColumns.set_active(0)
|
comboColumns.set_active(0)
|
||||||
comboColumns.show()
|
comboColumns.show()
|
||||||
|
|
||||||
response=diaSelections.run()
|
response = diaSelections.run()
|
||||||
diaSelections.destroy()
|
diaSelections.destroy()
|
||||||
|
|
||||||
if response == gtk.RESPONSE_ACCEPT and self.hudConfiguratorRows!=None and self.hudConfiguratorColumns!=None and self.hudConfiguratorGame!=None:
|
if (response == gtk.RESPONSE_ACCEPT and
|
||||||
|
self.hudConfiguratorRows != None and
|
||||||
|
self.hudConfiguratorColumns != None and
|
||||||
|
self.hudConfiguratorGame != None):
|
||||||
#print "clicked ok and selected:", self.hudConfiguratorGame,"with", str(self.hudConfiguratorRows), "rows and", str(self.hudConfiguratorColumns), "columns"
|
#print "clicked ok and selected:", self.hudConfiguratorGame,"with", str(self.hudConfiguratorRows), "rows and", str(self.hudConfiguratorColumns), "columns"
|
||||||
self.diaHudConfiguratorTable()
|
self.diaHudConfiguratorTable()
|
||||||
#end def diaHudConfigurator
|
#end def diaHudConfigurator
|
||||||
|
|
||||||
def hudConfiguratorComboSelection(self, widget):
|
def hudConfiguratorComboSelection(self, widget):
|
||||||
#TODO: remove this and handle it directly in diaHudConfigurator
|
#TODO: remove this and handle it directly in diaHudConfigurator
|
||||||
result=widget.get_active_text()
|
result = widget.get_active_text()
|
||||||
if result.endswith(" rows"):
|
if result.endswith(" rows"):
|
||||||
self.hudConfiguratorRows=int(result[0])
|
self.hudConfiguratorRows = int(result[0])
|
||||||
elif result.endswith(" columns"):
|
elif result.endswith(" columns"):
|
||||||
self.hudConfiguratorColumns=int(result[0])
|
self.hudConfiguratorColumns = int(result[0])
|
||||||
else:
|
else:
|
||||||
self.hudConfiguratorGame=result
|
self.hudConfiguratorGame = result
|
||||||
#end def hudConfiguratorComboSelection
|
#end def hudConfiguratorComboSelection
|
||||||
|
|
||||||
def diaHudConfiguratorTable(self):
|
def diaHudConfiguratorTable(self):
|
||||||
|
@ -420,47 +424,55 @@ class fpdb:
|
||||||
(gtk.STOCK_SAVE, gtk.RESPONSE_ACCEPT,
|
(gtk.STOCK_SAVE, gtk.RESPONSE_ACCEPT,
|
||||||
gtk.STOCK_CANCEL, gtk.RESPONSE_REJECT))
|
gtk.STOCK_CANCEL, gtk.RESPONSE_REJECT))
|
||||||
|
|
||||||
label=gtk.Label(_("Please choose the stats you wish to use in the below table."))
|
label = gtk.Label(_("Please choose the stats you wish to use in the below table."))
|
||||||
diaHudTable.vbox.add(label)
|
diaHudTable.vbox.add(label)
|
||||||
label.show()
|
label.show()
|
||||||
|
|
||||||
label=gtk.Label(_("Note that you may not select any stat more than once or it will crash."))
|
label = gtk.Label(_("Note that you may not select any stat more than once or it will crash."))
|
||||||
diaHudTable.vbox.add(label)
|
diaHudTable.vbox.add(label)
|
||||||
label.show()
|
label.show()
|
||||||
|
|
||||||
label=gtk.Label(_("It is not currently possible to select \"empty\" or anything else to that end."))
|
label = gtk.Label(_("It is not currently possible to select \"empty\" or anything else to that end."))
|
||||||
diaHudTable.vbox.add(label)
|
diaHudTable.vbox.add(label)
|
||||||
label.show()
|
label.show()
|
||||||
|
|
||||||
label=gtk.Label(_("To configure things like colouring you will still have to use the Preferences dialogue or manually edit your HUD_config.xml."))
|
label = gtk.Label(_("To configure things like colouring you will still have to use the Preferences dialogue or manually edit your HUD_config.xml."))
|
||||||
diaHudTable.vbox.add(label)
|
diaHudTable.vbox.add(label)
|
||||||
label.show()
|
label.show()
|
||||||
|
|
||||||
self.hudConfiguratorTableContents=[]
|
self.hudConfiguratorTableContents = []
|
||||||
table= gtk.Table(rows=self.hudConfiguratorRows+1, columns=self.hudConfiguratorColumns+1, homogeneous=True)
|
table = gtk.Table(rows=self.hudConfiguratorRows + 1, columns=self.hudConfiguratorColumns + 1, homogeneous=True)
|
||||||
|
|
||||||
statDir=dir(Stats)
|
statDir = dir(Stats)
|
||||||
statDict={}
|
statDict = {}
|
||||||
for attr in statDir:
|
for attr in statDir:
|
||||||
if attr.startswith('__'): continue
|
if attr.startswith('__'):
|
||||||
|
continue
|
||||||
if attr in ("Charset", "Configuration", "Database", "GInitiallyUnowned", "gtk", "pygtk",
|
if attr in ("Charset", "Configuration", "Database", "GInitiallyUnowned", "gtk", "pygtk",
|
||||||
"player", "c", "db_connection", "do_stat", "do_tip", "stat_dict",
|
"player", "c", "db_connection", "do_stat", "do_tip", "stat_dict",
|
||||||
"h", "re", "re_Percent", "re_Places", ): continue
|
"h", "re", "re_Percent", "re_Places", ):
|
||||||
statDict[attr]=eval("Stats.%s.__doc__" % (attr))
|
continue
|
||||||
|
statDict[attr] = eval("Stats.%s.__doc__" % (attr))
|
||||||
|
|
||||||
for rowNumber in range(self.hudConfiguratorRows+1):
|
for rowNumber in range(self.hudConfiguratorRows + 1):
|
||||||
newRow=[]
|
newRow = []
|
||||||
for columnNumber in range(self.hudConfiguratorColumns+1):
|
for columnNumber in range(self.hudConfiguratorColumns + 1):
|
||||||
if rowNumber==0:
|
if rowNumber == 0:
|
||||||
if columnNumber==0:
|
if columnNumber == 0:
|
||||||
pass
|
pass
|
||||||
else:
|
else:
|
||||||
label=gtk.Label("column "+str(columnNumber))
|
label = gtk.Label("column " + str(columnNumber))
|
||||||
table.attach(child=label, left_attach=columnNumber, right_attach=columnNumber+1, top_attach=rowNumber, bottom_attach=rowNumber+1)
|
table.attach(child=label, left_attach=columnNumber,
|
||||||
|
right_attach=columnNumber + 1,
|
||||||
|
top_attach=rowNumber,
|
||||||
|
bottom_attach=rowNumber + 1)
|
||||||
label.show()
|
label.show()
|
||||||
elif columnNumber==0:
|
elif columnNumber == 0:
|
||||||
label=gtk.Label("row "+str(rowNumber))
|
label = gtk.Label("row " + str(rowNumber))
|
||||||
table.attach(child=label, left_attach=columnNumber, right_attach=columnNumber+1, top_attach=rowNumber, bottom_attach=rowNumber+1)
|
table.attach(child=label, left_attach=columnNumber,
|
||||||
|
right_attach=columnNumber + 1,
|
||||||
|
top_attach=rowNumber,
|
||||||
|
bottom_attach=rowNumber + 1)
|
||||||
label.show()
|
label.show()
|
||||||
else:
|
else:
|
||||||
comboBox = gtk.combo_box_new_text()
|
comboBox = gtk.combo_box_new_text()
|
||||||
|
@ -470,15 +482,18 @@ class fpdb:
|
||||||
comboBox.set_active(0)
|
comboBox.set_active(0)
|
||||||
|
|
||||||
newRow.append(comboBox)
|
newRow.append(comboBox)
|
||||||
table.attach(child=comboBox, left_attach=columnNumber, right_attach=columnNumber+1, top_attach=rowNumber, bottom_attach=rowNumber+1)
|
table.attach(child=comboBox, left_attach=columnNumber,
|
||||||
|
right_attach=columnNumber + 1,
|
||||||
|
top_attach=rowNumber,
|
||||||
|
bottom_attach=rowNumber + 1)
|
||||||
|
|
||||||
comboBox.show()
|
comboBox.show()
|
||||||
if rowNumber!=0:
|
if rowNumber != 0:
|
||||||
self.hudConfiguratorTableContents.append(newRow)
|
self.hudConfiguratorTableContents.append(newRow)
|
||||||
diaHudTable.vbox.add(table)
|
diaHudTable.vbox.add(table)
|
||||||
table.show()
|
table.show()
|
||||||
|
|
||||||
response=diaHudTable.run()
|
response = diaHudTable.run()
|
||||||
diaHudTable.destroy()
|
diaHudTable.destroy()
|
||||||
|
|
||||||
if response == gtk.RESPONSE_ACCEPT:
|
if response == gtk.RESPONSE_ACCEPT:
|
||||||
|
@ -488,16 +503,16 @@ class fpdb:
|
||||||
def storeNewHudStatConfig(self):
|
def storeNewHudStatConfig(self):
|
||||||
"""stores selections made in diaHudConfiguratorTable"""
|
"""stores selections made in diaHudConfiguratorTable"""
|
||||||
self.obtain_global_lock("diaHudConfiguratorTable")
|
self.obtain_global_lock("diaHudConfiguratorTable")
|
||||||
statTable=[]
|
statTable = []
|
||||||
for row in self.hudConfiguratorTableContents:
|
for row in self.hudConfiguratorTableContents:
|
||||||
newRow=[]
|
newRow = []
|
||||||
for column in row:
|
for column in row:
|
||||||
newField = column.get_active_text()
|
newField = column.get_active_text()
|
||||||
newRow.append(newField)
|
newRow.append(newField)
|
||||||
statTable.append(newRow)
|
statTable.append(newRow)
|
||||||
|
|
||||||
self.config.editStats(self.hudConfiguratorGame,statTable)
|
self.config.editStats(self.hudConfiguratorGame, statTable)
|
||||||
self.config.save() #TODO: make it not store in horrible formatting
|
self.config.save() # TODO: make it not store in horrible formatting
|
||||||
self.release_global_lock()
|
self.release_global_lock()
|
||||||
#end def storeNewHudStatConfig
|
#end def storeNewHudStatConfig
|
||||||
|
|
||||||
|
@ -543,7 +558,7 @@ class fpdb:
|
||||||
diastring = _("Please confirm that you want to (re-)create the tables.") \
|
diastring = _("Please confirm that you want to (re-)create the tables.") \
|
||||||
+ (_(" If there already are tables in the database %s on %s they will be deleted and you will have to re-import your histories.\n") % (self.db.database, self.db.host)) \
|
+ (_(" If there already are tables in the database %s on %s they will be deleted and you will have to re-import your histories.\n") % (self.db.database, self.db.host)) \
|
||||||
+ _("This may take a while.")
|
+ _("This may take a while.")
|
||||||
dia_confirm.format_secondary_text(diastring)#todo: make above string with bold for db, host and deleted
|
dia_confirm.format_secondary_text(diastring) # todo: make above string with bold for db, host and deleted
|
||||||
# disable windowclose, do not want the the underlying processing interrupted mid-process
|
# disable windowclose, do not want the the underlying processing interrupted mid-process
|
||||||
dia_confirm.set_deletable(False)
|
dia_confirm.set_deletable(False)
|
||||||
|
|
||||||
|
@ -581,7 +596,7 @@ class fpdb:
|
||||||
|
|
||||||
hb1 = gtk.HBox(True, 1)
|
hb1 = gtk.HBox(True, 1)
|
||||||
self.h_start_date = gtk.Entry(max=12)
|
self.h_start_date = gtk.Entry(max=12)
|
||||||
self.h_start_date.set_text( self.db.get_hero_hudcache_start() )
|
self.h_start_date.set_text(self.db.get_hero_hudcache_start())
|
||||||
lbl = gtk.Label(_(" Hero's cache starts: "))
|
lbl = gtk.Label(_(" Hero's cache starts: "))
|
||||||
btn = gtk.Button()
|
btn = gtk.Button()
|
||||||
btn.set_image(gtk.image_new_from_stock(gtk.STOCK_INDEX, gtk.ICON_SIZE_BUTTON))
|
btn.set_image(gtk.image_new_from_stock(gtk.STOCK_INDEX, gtk.ICON_SIZE_BUTTON))
|
||||||
|
@ -595,7 +610,7 @@ class fpdb:
|
||||||
|
|
||||||
hb2 = gtk.HBox(True, 1)
|
hb2 = gtk.HBox(True, 1)
|
||||||
self.start_date = gtk.Entry(max=12)
|
self.start_date = gtk.Entry(max=12)
|
||||||
self.start_date.set_text( self.db.get_hero_hudcache_start() )
|
self.start_date.set_text(self.db.get_hero_hudcache_start())
|
||||||
lbl = gtk.Label(_(" Villains' cache starts: "))
|
lbl = gtk.Label(_(" Villains' cache starts: "))
|
||||||
btn = gtk.Button()
|
btn = gtk.Button()
|
||||||
btn.set_image(gtk.image_new_from_stock(gtk.STOCK_INDEX, gtk.ICON_SIZE_BUTTON))
|
btn.set_image(gtk.image_new_from_stock(gtk.STOCK_INDEX, gtk.ICON_SIZE_BUTTON))
|
||||||
|
@ -615,7 +630,7 @@ class fpdb:
|
||||||
while gtk.events_pending():
|
while gtk.events_pending():
|
||||||
gtk.main_iteration_do(False)
|
gtk.main_iteration_do(False)
|
||||||
|
|
||||||
self.db.rebuild_hudcache( self.h_start_date.get_text(), self.start_date.get_text() )
|
self.db.rebuild_hudcache(self.h_start_date.get_text(), self.start_date.get_text())
|
||||||
elif response == gtk.RESPONSE_NO:
|
elif response == gtk.RESPONSE_NO:
|
||||||
print _('User cancelled rebuilding hud cache')
|
print _('User cancelled rebuilding hud cache')
|
||||||
|
|
||||||
|
@ -625,11 +640,11 @@ class fpdb:
|
||||||
|
|
||||||
def dia_rebuild_indexes(self, widget, data=None):
|
def dia_rebuild_indexes(self, widget, data=None):
|
||||||
if self.obtain_global_lock("dia_rebuild_indexes"):
|
if self.obtain_global_lock("dia_rebuild_indexes"):
|
||||||
self.dia_confirm = gtk.MessageDialog(parent=self.window
|
self.dia_confirm = gtk.MessageDialog(parent=self.window,
|
||||||
,flags=gtk.DIALOG_DESTROY_WITH_PARENT
|
flags=gtk.DIALOG_DESTROY_WITH_PARENT,
|
||||||
,type=gtk.MESSAGE_WARNING
|
type=gtk.MESSAGE_WARNING,
|
||||||
,buttons=(gtk.BUTTONS_YES_NO)
|
buttons=(gtk.BUTTONS_YES_NO),
|
||||||
,message_format=_("Confirm rebuilding database indexes"))
|
message_format=_("Confirm rebuilding database indexes"))
|
||||||
diastring = _("Please confirm that you want to rebuild the database indexes.")
|
diastring = _("Please confirm that you want to rebuild the database indexes.")
|
||||||
self.dia_confirm.format_secondary_text(diastring)
|
self.dia_confirm.format_secondary_text(diastring)
|
||||||
# disable windowclose, do not want the the underlying processing interrupted mid-process
|
# disable windowclose, do not want the the underlying processing interrupted mid-process
|
||||||
|
@ -693,7 +708,6 @@ class fpdb:
|
||||||
self.logbuffer.insert(end_iter, text)
|
self.logbuffer.insert(end_iter, text)
|
||||||
self.logview.scroll_to_mark(self.logbuffer.get_insert(), 0)
|
self.logview.scroll_to_mark(self.logbuffer.get_insert(), 0)
|
||||||
|
|
||||||
|
|
||||||
def process_close_messages(self):
|
def process_close_messages(self):
|
||||||
# check for close messages
|
# check for close messages
|
||||||
try:
|
try:
|
||||||
|
@ -848,28 +862,27 @@ class fpdb:
|
||||||
return menubar
|
return menubar
|
||||||
#end def get_menu
|
#end def get_menu
|
||||||
|
|
||||||
|
def load_profile(self, create_db=False):
|
||||||
def load_profile(self, create_db = False):
|
|
||||||
"""Loads profile from the provided path name."""
|
"""Loads profile from the provided path name."""
|
||||||
self.config = Configuration.Config(file=options.config, dbname=options.dbname)
|
self.config = Configuration.Config(file=options.config, dbname=options.dbname)
|
||||||
if self.config.file_error:
|
if self.config.file_error:
|
||||||
self.warning_box(_("There is an error in your config file\n") + self.config.file
|
self.warning_box(_("There is an error in your config file\n") + self.config.file
|
||||||
+ _("\n\nError is: ") + str(self.config.file_error)
|
+ _("\n\nError is: ") + str(self.config.file_error),
|
||||||
, diatitle=_("CONFIG FILE ERROR"))
|
diatitle=_("CONFIG FILE ERROR"))
|
||||||
sys.exit()
|
sys.exit()
|
||||||
|
|
||||||
log = Configuration.get_logger("logging.conf", "fpdb", log_dir=self.config.dir_log)
|
log = Configuration.get_logger("logging.conf", "fpdb", log_dir=self.config.dir_log)
|
||||||
print (_("Logfile is %s\n") % os.path.join(self.config.dir_log, self.config.log_file))
|
print (_("Logfile is %s\n") % os.path.join(self.config.dir_log, self.config.log_file))
|
||||||
if self.config.example_copy:
|
if self.config.example_copy:
|
||||||
self.info_box(_("Config file")
|
self.info_box(_("Config file"),
|
||||||
, _("has been created at:\n%s.\n") % self.config.file
|
_("has been created at:\n%s.\n") % self.config.file
|
||||||
+ _("Edit your screen_name and hand history path in the supported_sites section of the Preferences window (Main menu) before trying to import hands."))
|
+ _("Edit your screen_name and hand history path in the supported_sites section of the Preferences window (Main menu) before trying to import hands."))
|
||||||
self.settings = {}
|
self.settings = {}
|
||||||
self.settings['global_lock'] = self.lock
|
self.settings['global_lock'] = self.lock
|
||||||
if (os.sep=="/"):
|
if (os.sep == "/"):
|
||||||
self.settings['os']="linuxmac"
|
self.settings['os'] = "linuxmac"
|
||||||
else:
|
else:
|
||||||
self.settings['os']="windows"
|
self.settings['os'] = "windows"
|
||||||
|
|
||||||
self.settings.update({'cl_options': cl_options})
|
self.settings.update({'cl_options': cl_options})
|
||||||
self.settings.update(self.config.get_db_parameters())
|
self.settings.update(self.config.get_db_parameters())
|
||||||
|
@ -879,10 +892,10 @@ class fpdb:
|
||||||
if self.db is not None and self.db.is_connected():
|
if self.db is not None and self.db.is_connected():
|
||||||
self.db.disconnect()
|
self.db.disconnect()
|
||||||
|
|
||||||
self.sql = SQL.Sql(db_server = self.settings['db-server'])
|
self.sql = SQL.Sql(db_server=self.settings['db-server'])
|
||||||
err_msg = None
|
err_msg = None
|
||||||
try:
|
try:
|
||||||
self.db = Database.Database(self.config, sql = self.sql)
|
self.db = Database.Database(self.config, sql=self.sql)
|
||||||
if self.db.get_backend_name() == 'SQLite':
|
if self.db.get_backend_name() == 'SQLite':
|
||||||
# tell sqlite users where the db file is
|
# tell sqlite users where the db file is
|
||||||
print (_("Connected to SQLite: %s") % self.db.db_path)
|
print (_("Connected to SQLite: %s") % self.db.db_path)
|
||||||
|
@ -919,7 +932,8 @@ class fpdb:
|
||||||
# sys.stderr.write("Failed to connect to %s database with username %s." % (self.settings['db-server'], self.settings['db-user']))
|
# sys.stderr.write("Failed to connect to %s database with username %s." % (self.settings['db-server'], self.settings['db-user']))
|
||||||
|
|
||||||
if self.db is not None and self.db.wrongDbVersion:
|
if self.db is not None and self.db.wrongDbVersion:
|
||||||
diaDbVersionWarning = gtk.Dialog(title=_("Strong Warning - Invalid database version"), parent=None, flags=0, buttons=(gtk.STOCK_OK,gtk.RESPONSE_OK))
|
diaDbVersionWarning = gtk.Dialog(title=_("Strong Warning - Invalid database version"),
|
||||||
|
parent=None, flags=0, buttons=(gtk.STOCK_OK, gtk.RESPONSE_OK))
|
||||||
|
|
||||||
label = gtk.Label(_("An invalid DB version or missing tables have been detected."))
|
label = gtk.Label(_("An invalid DB version or missing tables have been detected."))
|
||||||
diaDbVersionWarning.vbox.add(label)
|
diaDbVersionWarning.vbox.add(label)
|
||||||
|
@ -944,7 +958,7 @@ class fpdb:
|
||||||
|
|
||||||
if self.db is not None and self.db.is_connected():
|
if self.db is not None and self.db.is_connected():
|
||||||
self.status_bar.set_text(_("Status: Connected to %s database named %s on host %s")
|
self.status_bar.set_text(_("Status: Connected to %s database named %s on host %s")
|
||||||
% (self.db.get_backend_name(),self.db.database, self.db.host))
|
% (self.db.get_backend_name(), self.db.database, self.db.host))
|
||||||
# rollback to make sure any locks are cleared:
|
# rollback to make sure any locks are cleared:
|
||||||
self.db.rollback()
|
self.db.rollback()
|
||||||
|
|
||||||
|
@ -990,7 +1004,7 @@ class fpdb:
|
||||||
|
|
||||||
def release_global_lock(self):
|
def release_global_lock(self):
|
||||||
self.lock.release()
|
self.lock.release()
|
||||||
self.lockTakenBy=None
|
self.lockTakenBy = None
|
||||||
print _("Global lock released.\n")
|
print _("Global lock released.\n")
|
||||||
|
|
||||||
def tab_auto_import(self, widget, data=None):
|
def tab_auto_import(self, widget, data=None):
|
||||||
|
@ -1119,7 +1133,7 @@ You can find the full license texts in agpl-3.0.txt, gpl-2.0.txt, gpl-3.0.txt an
|
||||||
options.xloc = 0
|
options.xloc = 0
|
||||||
if options.yloc is None:
|
if options.yloc is None:
|
||||||
options.yloc = 0
|
options.yloc = 0
|
||||||
self.window.move(options.xloc,options.yloc)
|
self.window.move(options.xloc, options.yloc)
|
||||||
|
|
||||||
# connect to required events
|
# connect to required events
|
||||||
self.window.connect("delete_event", self.delete_event)
|
self.window.connect("delete_event", self.delete_event)
|
||||||
|
@ -1129,8 +1143,10 @@ You can find the full license texts in agpl-3.0.txt, gpl-2.0.txt, gpl-3.0.txt an
|
||||||
self.window.set_border_width(1)
|
self.window.set_border_width(1)
|
||||||
defx, defy = 900, 720
|
defx, defy = 900, 720
|
||||||
sx, sy = gtk.gdk.screen_width(), gtk.gdk.screen_height()
|
sx, sy = gtk.gdk.screen_width(), gtk.gdk.screen_height()
|
||||||
if sx < defx: defx = sx
|
if sx < defx:
|
||||||
if sy < defy: defy = sy
|
defx = sx
|
||||||
|
if sy < defy:
|
||||||
|
defy = sy
|
||||||
self.window.set_default_size(defx, defy)
|
self.window.set_default_size(defx, defy)
|
||||||
self.window.set_resizable(True)
|
self.window.set_resizable(True)
|
||||||
|
|
||||||
|
@ -1168,7 +1184,7 @@ You can find the full license texts in agpl-3.0.txt, gpl-2.0.txt, gpl-3.0.txt an
|
||||||
self.window.show()
|
self.window.show()
|
||||||
self.visible = True # Flip on
|
self.visible = True # Flip on
|
||||||
|
|
||||||
self.load_profile(create_db = True)
|
self.load_profile(create_db=True)
|
||||||
|
|
||||||
# setup error logging
|
# setup error logging
|
||||||
if not options.errorsToConsole:
|
if not options.errorsToConsole:
|
||||||
|
@ -1181,7 +1197,7 @@ You can find the full license texts in agpl-3.0.txt, gpl-2.0.txt, gpl-3.0.txt an
|
||||||
# set up tray-icon and menu
|
# set up tray-icon and menu
|
||||||
self.statusIcon = gtk.StatusIcon()
|
self.statusIcon = gtk.StatusIcon()
|
||||||
# use getcwd() here instead of sys.path[0] so that py2exe works:
|
# use getcwd() here instead of sys.path[0] so that py2exe works:
|
||||||
cards = os.path.join(os.getcwd(), '..','gfx','fpdb-cards.png')
|
cards = os.path.join(os.getcwd(), '..', 'gfx', 'fpdb-cards.png')
|
||||||
if os.path.exists(cards):
|
if os.path.exists(cards):
|
||||||
self.statusIcon.set_from_file(cards)
|
self.statusIcon.set_from_file(cards)
|
||||||
self.window.set_icon_from_file(cards)
|
self.window.set_icon_from_file(cards)
|
||||||
|
@ -1255,7 +1271,7 @@ You can find the full license texts in agpl-3.0.txt, gpl-2.0.txt, gpl-3.0.txt an
|
||||||
# Tell GTK not to propagate this signal any further
|
# Tell GTK not to propagate this signal any further
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def statusicon_menu(self, widget, button, time, data = None):
|
def statusicon_menu(self, widget, button, time, data=None):
|
||||||
# we don't need to pass data here, since we do keep track of most all
|
# we don't need to pass data here, since we do keep track of most all
|
||||||
# our variables .. the example code that i looked at for this
|
# our variables .. the example code that i looked at for this
|
||||||
# didn't use any long scope variables.. which might be an alright
|
# didn't use any long scope variables.. which might be an alright
|
||||||
|
@ -1266,7 +1282,7 @@ You can find the full license texts in agpl-3.0.txt, gpl-2.0.txt, gpl-3.0.txt an
|
||||||
data.popup(None, None, None, 3, time)
|
data.popup(None, None, None, 3, time)
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def statusicon_activate(self, widget, data = None):
|
def statusicon_activate(self, widget, data=None):
|
||||||
# Let's allow the tray icon to toggle window visibility, the way
|
# Let's allow the tray icon to toggle window visibility, the way
|
||||||
# most other apps work
|
# most other apps work
|
||||||
if self.visible:
|
if self.visible:
|
||||||
|
@ -1275,15 +1291,17 @@ You can find the full license texts in agpl-3.0.txt, gpl-2.0.txt, gpl-3.0.txt an
|
||||||
self.window.present()
|
self.window.present()
|
||||||
|
|
||||||
def info_box(self, str1, str2):
|
def info_box(self, str1, str2):
|
||||||
diapath = gtk.MessageDialog( parent=self.window, flags=gtk.DIALOG_DESTROY_WITH_PARENT, type=gtk.MESSAGE_INFO
|
diapath = gtk.MessageDialog(parent=self.window, flags=gtk.DIALOG_DESTROY_WITH_PARENT, type=gtk.MESSAGE_INFO,
|
||||||
, buttons=(gtk.BUTTONS_OK), message_format=str1 )
|
buttons=(gtk.BUTTONS_OK), message_format=str1)
|
||||||
diapath.format_secondary_text(str2)
|
diapath.format_secondary_text(str2)
|
||||||
response = diapath.run()
|
response = diapath.run()
|
||||||
diapath.destroy()
|
diapath.destroy()
|
||||||
return response
|
return response
|
||||||
|
|
||||||
def warning_box(self, str, diatitle=_("FPDB WARNING")):
|
def warning_box(self, str, diatitle=_("FPDB WARNING")):
|
||||||
diaWarning = gtk.Dialog(title=diatitle, parent=self.window, flags=gtk.DIALOG_DESTROY_WITH_PARENT, buttons=(gtk.STOCK_OK,gtk.RESPONSE_OK))
|
diaWarning = gtk.Dialog(title=diatitle, parent=self.window,
|
||||||
|
flags=gtk.DIALOG_DESTROY_WITH_PARENT,
|
||||||
|
buttons=(gtk.STOCK_OK, gtk.RESPONSE_OK))
|
||||||
|
|
||||||
label = gtk.Label(str)
|
label = gtk.Label(str)
|
||||||
diaWarning.vbox.add(label)
|
diaWarning.vbox.add(label)
|
||||||
|
@ -1318,7 +1336,7 @@ You can find the full license texts in agpl-3.0.txt, gpl-2.0.txt, gpl-3.0.txt an
|
||||||
for site in self.config.get_supported_sites(True): # get site names from config file
|
for site in self.config.get_supported_sites(True): # get site names from config file
|
||||||
try:
|
try:
|
||||||
self.config.get_site_id(site) # and check against list from db
|
self.config.get_site_id(site) # and check against list from db
|
||||||
except KeyError , exc:
|
except KeyError, exc:
|
||||||
log.warning("site %s missing from db" % site)
|
log.warning("site %s missing from db" % site)
|
||||||
dia = gtk.MessageDialog(parent=None, flags=0, type=gtk.MESSAGE_WARNING, buttons=(gtk.BUTTONS_YES_NO), message_format="Unknown Site")
|
dia = gtk.MessageDialog(parent=None, flags=0, type=gtk.MESSAGE_WARNING, buttons=(gtk.BUTTONS_YES_NO), message_format="Unknown Site")
|
||||||
diastring = _("WARNING: Unable to find site '%s'\n\nPress YES to add this site to the database.") % site
|
diastring = _("WARNING: Unable to find site '%s'\n\nPress YES to add this site to the database.") % site
|
||||||
|
@ -1329,15 +1347,15 @@ You can find the full license texts in agpl-3.0.txt, gpl-2.0.txt, gpl-3.0.txt an
|
||||||
self.add_site(site)
|
self.add_site(site)
|
||||||
|
|
||||||
def add_site(self, site):
|
def add_site(self, site):
|
||||||
dia = gtk.Dialog( title="Add Site", parent=self.window
|
dia = gtk.Dialog(title="Add Site", parent=self.window,
|
||||||
, flags=gtk.DIALOG_DESTROY_WITH_PARENT
|
flags=gtk.DIALOG_DESTROY_WITH_PARENT,
|
||||||
, buttons=(gtk.STOCK_SAVE, gtk.RESPONSE_ACCEPT
|
buttons=(gtk.STOCK_SAVE, gtk.RESPONSE_ACCEPT,
|
||||||
,gtk.STOCK_CANCEL, gtk.RESPONSE_REJECT)
|
gtk.STOCK_CANCEL, gtk.RESPONSE_REJECT)
|
||||||
)
|
)
|
||||||
|
|
||||||
h = gtk.HBox()
|
h = gtk.HBox()
|
||||||
dia.vbox.pack_start(h, padding=5) # sets horizontal padding
|
dia.vbox.pack_start(h, padding=5) # sets horizontal padding
|
||||||
label = gtk.Label( _("\nEnter short code for %s\n(up to 3 characters):\n") % site )
|
label = gtk.Label(_("\nEnter short code for %s\n(up to 3 characters):\n") % site)
|
||||||
h.pack_start(label, padding=20) # sets horizontal padding
|
h.pack_start(label, padding=20) # sets horizontal padding
|
||||||
#label.set_alignment(1.0, 0.5)
|
#label.set_alignment(1.0, 0.5)
|
||||||
|
|
||||||
|
@ -1347,7 +1365,7 @@ You can find the full license texts in agpl-3.0.txt, gpl-2.0.txt, gpl-3.0.txt an
|
||||||
e_code.set_width_chars(5)
|
e_code.set_width_chars(5)
|
||||||
h.pack_start(e_code, True, False, padding=5)
|
h.pack_start(e_code, True, False, padding=5)
|
||||||
|
|
||||||
label = gtk.Label( "" )
|
label = gtk.Label("")
|
||||||
dia.vbox.add(label) # create space below entry, maybe padding arg above makes this redundant?
|
dia.vbox.add(label) # create space below entry, maybe padding arg above makes this redundant?
|
||||||
|
|
||||||
dia.show_all()
|
dia.show_all()
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
#Copyright 2008-2010 Steffen Schaumburg
|
#Copyright 2008-2011 Steffen Schaumburg
|
||||||
#This program is free software: you can redistribute it and/or modify
|
#This program is free software: you can redistribute it and/or modify
|
||||||
#it under the terms of the GNU Affero General Public License as published by
|
#it under the terms of the GNU Affero General Public License as published by
|
||||||
#the Free Software Foundation, version 3 of the License.
|
#the Free Software Foundation, version 3 of the License.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
#
|
#
|
||||||
# Copyright 2010, Carl Gherardi
|
# Copyright 2010-2011, Carl Gherardi
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
@ -119,7 +119,7 @@ or None if we fail to get the info """
|
||||||
return self.info
|
return self.info
|
||||||
except AttributeError:
|
except AttributeError:
|
||||||
tmp = handText[0:100]
|
tmp = handText[0:100]
|
||||||
log.error(_("determineGameType: Unable to recognise gametype from: '%s'") % tmp)
|
log.error(_("Unable to recognise gametype from: '%s'") % tmp)
|
||||||
log.error(_("determineGameType: Raising FpdbParseError"))
|
log.error(_("determineGameType: Raising FpdbParseError"))
|
||||||
raise FpdbParseError(_("Unable to recognise gametype from: '%s'") % tmp)
|
raise FpdbParseError(_("Unable to recognise gametype from: '%s'") % tmp)
|
||||||
|
|
||||||
|
@ -258,7 +258,7 @@ or None if we fail to get the info """
|
||||||
#print "DEBUG: addBringIn(%s, %s)" %(action.group('PNAME'), action.group('BET'))
|
#print "DEBUG: addBringIn(%s, %s)" %(action.group('PNAME'), action.group('BET'))
|
||||||
hand.addBringIn(action.group('PNAME'), action.group('BET'))
|
hand.addBringIn(action.group('PNAME'), action.group('BET'))
|
||||||
else:
|
else:
|
||||||
logging.error(_("Unimplemented readAction: %s" % (ag)))
|
logging.error(_("Unimplemented readAction: %s") % (ag))
|
||||||
|
|
||||||
def readShowdownActions(self, hand):
|
def readShowdownActions(self, hand):
|
||||||
for shows in self.re_ShowdownAction.finditer(hand.handText):
|
for shows in self.re_ShowdownAction.finditer(hand.handText):
|
||||||
|
|
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
4182
pyfpdb/locale/fpdb-pl_PL.po
Normal file
4182
pyfpdb/locale/fpdb-pl_PL.po
Normal file
File diff suppressed because it is too large
Load Diff
4154
pyfpdb/locale/fpdb-ru_RU.po
Normal file
4154
pyfpdb/locale/fpdb-ru_RU.po
Normal file
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
|
@ -9,11 +9,15 @@ msgmerge --update locale/fpdb-de_DE.po locale/fpdb-en_GB.pot
|
||||||
msgmerge --update locale/fpdb-es_ES.po locale/fpdb-en_GB.pot
|
msgmerge --update locale/fpdb-es_ES.po locale/fpdb-en_GB.pot
|
||||||
msgmerge --update locale/fpdb-fr_FR.po locale/fpdb-en_GB.pot
|
msgmerge --update locale/fpdb-fr_FR.po locale/fpdb-en_GB.pot
|
||||||
msgmerge --update locale/fpdb-hu_HU.po locale/fpdb-en_GB.pot
|
msgmerge --update locale/fpdb-hu_HU.po locale/fpdb-en_GB.pot
|
||||||
|
msgmerge --update locale/fpdb-pl_PL.po locale/fpdb-en_GB.pot
|
||||||
|
msgmerge --update locale/fpdb-ru_RU.po locale/fpdb-en_GB.pot
|
||||||
|
|
||||||
echo "compiling mo files"
|
echo "compiling mo files"
|
||||||
python /usr/share/doc/python-2.*/examples/Tools/i18n/msgfmt.py --output-file=locale/de/LC_MESSAGES/fpdb.mo locale/fpdb-de_DE.po
|
python /usr/share/doc/python-2.*/examples/Tools/i18n/msgfmt.py --output-file=locale/de/LC_MESSAGES/fpdb.mo locale/fpdb-de_DE.po
|
||||||
python /usr/share/doc/python-2.*/examples/Tools/i18n/msgfmt.py --output-file=locale/es/LC_MESSAGES/fpdb.mo locale/fpdb-es_ES.po
|
python /usr/share/doc/python-2.*/examples/Tools/i18n/msgfmt.py --output-file=locale/es/LC_MESSAGES/fpdb.mo locale/fpdb-es_ES.po
|
||||||
python /usr/share/doc/python-2.*/examples/Tools/i18n/msgfmt.py --output-file=locale/fr/LC_MESSAGES/fpdb.mo locale/fpdb-fr_FR.po
|
python /usr/share/doc/python-2.*/examples/Tools/i18n/msgfmt.py --output-file=locale/fr/LC_MESSAGES/fpdb.mo locale/fpdb-fr_FR.po
|
||||||
python /usr/share/doc/python-2.*/examples/Tools/i18n/msgfmt.py --output-file=locale/hu/LC_MESSAGES/fpdb.mo locale/fpdb-hu_HU.po
|
python /usr/share/doc/python-2.*/examples/Tools/i18n/msgfmt.py --output-file=locale/hu/LC_MESSAGES/fpdb.mo locale/fpdb-hu_HU.po
|
||||||
|
python /usr/share/doc/python-2.*/examples/Tools/i18n/msgfmt.py --output-file=locale/pl/LC_MESSAGES/fpdb.mo locale/fpdb-pl_PL.po
|
||||||
|
python /usr/share/doc/python-2.*/examples/Tools/i18n/msgfmt.py --output-file=locale/ru/LC_MESSAGES/fpdb.mo locale/fpdb-ru_RU.po
|
||||||
|
|
||||||
pocount locale/*.po
|
pocount locale/*.po
|
||||||
|
|
BIN
pyfpdb/locale/pl/LC_MESSAGES/fpdb.mo
Normal file
BIN
pyfpdb/locale/pl/LC_MESSAGES/fpdb.mo
Normal file
Binary file not shown.
BIN
pyfpdb/locale/ru/LC_MESSAGES/fpdb.mo
Normal file
BIN
pyfpdb/locale/ru/LC_MESSAGES/fpdb.mo
Normal file
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user