From 2eb51d060734d3b4372c14c6d8bcd92c55d9f271 Mon Sep 17 00:00:00 2001 From: Steffen Schaumburg Date: Sun, 19 Dec 2010 04:10:08 +0100 Subject: [PATCH] change line ending on IdentifySite to unix and make it executable --- pyfpdb/IdentifySite.py | 244 ++++++++++++++++++++--------------------- 1 file changed, 122 insertions(+), 122 deletions(-) mode change 100644 => 100755 pyfpdb/IdentifySite.py diff --git a/pyfpdb/IdentifySite.py b/pyfpdb/IdentifySite.py old mode 100644 new mode 100755 index b4f1a8a7..26a3e1e2 --- a/pyfpdb/IdentifySite.py +++ b/pyfpdb/IdentifySite.py @@ -1,122 +1,122 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- - -#Copyright 2010 Chaz Littlejohn -#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 -#the Free Software Foundation, version 3 of the License. -# -#This program is distributed in the hope that it will be useful, -#but WITHOUT ANY WARRANTY; without even the implied warranty of -#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -#GNU General Public License for more details. -# -#You should have received a copy of the GNU Affero General Public License -#along with this program. If not, see . -#In the "official" distribution you can find the license in agpl-3.0.txt. - -import L10n -_ = L10n.get_translation() - -import re -import sys -import os -import os.path -from optparse import OptionParser -import codecs -import Configuration -import Database - -__ARCHIVE_PRE_HEADER_REGEX='^Hand #(\d+)\s*$|\*{20}\s#\s\d+\s\*+\s+' -re_SplitArchive = re.compile(__ARCHIVE_PRE_HEADER_REGEX) - - -class IdentifySite: - def __init__(self, config, in_path = '-'): - self.in_path = in_path - self.config = config - self.db = Database.Database(config) - self.sitelist = {} - self.filelist = {} - self.generateSiteList() - self.walkDirectory(self.in_path, self.sitelist) - - def generateSiteList(self): - """Generates a ordered dictionary of site, filter and filter name for each site in hhcs""" - for site, hhc in self.config.hhcs.iteritems(): - filter = hhc.converter - filter_name = filter.replace("ToFpdb", "") - result = self.db.get_site_id(site) - if len(result) == 1: - self.sitelist[result[0][0]] = (site, filter, filter_name) - else: - pass - - def walkDirectory(self, dir, sitelist): - """Walks a directory, and executes a callback on each file""" - dir = os.path.abspath(dir) - for file in [file for file in os.listdir(dir) if not file in [".",".."]]: - nfile = os.path.join(dir,file) - if os.path.isdir(nfile): - self.walkDirectory(nfile, sitelist) - else: - self.idSite(nfile, sitelist) - - def __listof(self, x): - if isinstance(x, list) or isinstance(x, tuple): - return x - else: - return [x] - - def idSite(self, file, sitelist): - """Identifies the site the hh file originated from""" - if file.endswith('.txt'): - self.filelist[file] = '' - archive = False - for site, info in sitelist.iteritems(): - mod = __import__(info[1]) - obj = getattr(mod, info[2], None) - - for kodec in self.__listof(obj.codepage): - try: - in_fh = codecs.open(file, 'r', kodec) - whole_file = in_fh.read() - in_fh.close() - - if info[2] in ('OnGame', 'Winamax'): - m = obj.re_HandInfo.search(whole_file) - elif info[2] in ('PartyPoker'): - m = obj.re_GameInfoRing.search(whole_file) - if not m: - m = obj.re_GameInfoTrny.search(whole_file) - else: - m = obj.re_GameInfo.search(whole_file) - if re_SplitArchive.search(whole_file): - archive = True - if m: - self.filelist[file] = [info[0]] + [info[1]] + [kodec] + [archive] - break - except: - pass - -def main(argv=None): - if argv is None: - argv = sys.argv[1:] - - config = Configuration.Config(file = "HUD_config.test.xml") - in_path = 'regression-test-files/' - IdSite = IdentifySite(config, in_path) - - print "\n----------- SITE LIST -----------" - for site, info in IdSite.sitelist.iteritems(): - print site, info - print "----------- END SITE LIST -----------" - - print "\n----------- ID REGRESSION FILES -----------" - for file, site in IdSite.filelist.iteritems(): - print file, site - print "----------- END ID REGRESSION FILES -----------" - - -if __name__ == '__main__': - sys.exit(main()) +#!/usr/bin/python +# -*- coding: utf-8 -*- + +#Copyright 2010 Chaz Littlejohn +#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 +#the Free Software Foundation, version 3 of the License. +# +#This program is distributed in the hope that it will be useful, +#but WITHOUT ANY WARRANTY; without even the implied warranty of +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +#GNU General Public License for more details. +# +#You should have received a copy of the GNU Affero General Public License +#along with this program. If not, see . +#In the "official" distribution you can find the license in agpl-3.0.txt. + +import L10n +_ = L10n.get_translation() + +import re +import sys +import os +import os.path +from optparse import OptionParser +import codecs +import Configuration +import Database + +__ARCHIVE_PRE_HEADER_REGEX='^Hand #(\d+)\s*$|\*{20}\s#\s\d+\s\*+\s+' +re_SplitArchive = re.compile(__ARCHIVE_PRE_HEADER_REGEX) + + +class IdentifySite: + def __init__(self, config, in_path = '-'): + self.in_path = in_path + self.config = config + self.db = Database.Database(config) + self.sitelist = {} + self.filelist = {} + self.generateSiteList() + self.walkDirectory(self.in_path, self.sitelist) + + def generateSiteList(self): + """Generates a ordered dictionary of site, filter and filter name for each site in hhcs""" + for site, hhc in self.config.hhcs.iteritems(): + filter = hhc.converter + filter_name = filter.replace("ToFpdb", "") + result = self.db.get_site_id(site) + if len(result) == 1: + self.sitelist[result[0][0]] = (site, filter, filter_name) + else: + pass + + def walkDirectory(self, dir, sitelist): + """Walks a directory, and executes a callback on each file""" + dir = os.path.abspath(dir) + for file in [file for file in os.listdir(dir) if not file in [".",".."]]: + nfile = os.path.join(dir,file) + if os.path.isdir(nfile): + self.walkDirectory(nfile, sitelist) + else: + self.idSite(nfile, sitelist) + + def __listof(self, x): + if isinstance(x, list) or isinstance(x, tuple): + return x + else: + return [x] + + def idSite(self, file, sitelist): + """Identifies the site the hh file originated from""" + if file.endswith('.txt'): + self.filelist[file] = '' + archive = False + for site, info in sitelist.iteritems(): + mod = __import__(info[1]) + obj = getattr(mod, info[2], None) + + for kodec in self.__listof(obj.codepage): + try: + in_fh = codecs.open(file, 'r', kodec) + whole_file = in_fh.read() + in_fh.close() + + if info[2] in ('OnGame', 'Winamax'): + m = obj.re_HandInfo.search(whole_file) + elif info[2] in ('PartyPoker'): + m = obj.re_GameInfoRing.search(whole_file) + if not m: + m = obj.re_GameInfoTrny.search(whole_file) + else: + m = obj.re_GameInfo.search(whole_file) + if re_SplitArchive.search(whole_file): + archive = True + if m: + self.filelist[file] = [info[0]] + [info[1]] + [kodec] + [archive] + break + except: + pass + +def main(argv=None): + if argv is None: + argv = sys.argv[1:] + + config = Configuration.Config(file = "HUD_config.test.xml") + in_path = 'regression-test-files/' + IdSite = IdentifySite(config, in_path) + + print "\n----------- SITE LIST -----------" + for site, info in IdSite.sitelist.iteritems(): + print site, info + print "----------- END SITE LIST -----------" + + print "\n----------- ID REGRESSION FILES -----------" + for file, site in IdSite.filelist.iteritems(): + print file, site + print "----------- END ID REGRESSION FILES -----------" + + +if __name__ == '__main__': + sys.exit(main())