~m4v/+junk/Factos

« back to all changes in this revision

Viewing changes to objects.py

  • Committer: Elián Hanisch
  • Date: 2010-05-16 06:10:54 UTC
  • Revision ID: lambdae2@gmail.com-20100516061054-y63xd9ln3i8fykiz
reactoring, drop setting table name with config options, is useless.

Show diffs side-by-side

added added

removed removed

Lines of Context:
62
62
        ('time', 'TIMESTAMP'),
63
63
        )
64
64
 
 
65
# tables setup
 
66
# base fact table
 
67
tableFact = Table(tblFactStruct, 'factos')
 
68
# base table for record edits
 
69
tableHist = Table(tblHistStruct, 'historial')
 
70
tableHistRedo = Table(tblHistStruct, 'redo')
 
71
# table for user hostmasks
 
72
tableUser = databases.Table(tblUserStruct, 'usuarios')
 
73
 
65
74
class FactNotFound(Exception):
66
75
    def __init__(self, fact, s=''):
67
76
        self.fact = fact
142
151
# class for handling facts.
143
152
class Fact(DataObject):
144
153
    """Class for handling facts."""
145
 
    dbTableHist = Table()
 
154
    dbTable = tableFact
 
155
    dbTableHist = tableHist
146
156
    nameMaxLen = 25
147
157
    dataMaxLen = 400
148
158
    allowSpaces = False
175
185
        # we use this simple check instead of ircutils.isChannel because it saves us from importing
176
186
        # supybot modules if using this outside supybot (like in a script)
177
187
        # This funcion is overriden in plugin.py
178
 
        if channel[0] == '#':
 
188
        if channel and channel[0] == '#':
179
189
            return channel.lower()
180
190
        else:
181
191
            return ''
421
431
        """Updates fact in the database, the fact should exists in the database. If it was edited add
422
432
        a history record."""
423
433
        assert self.db, 'There\'s no database instance.'
424
 
        assert self.table, 'Fact.push() No table defined, pull before updating.'
 
434
        assert self.table, 'Fact.push() No table defined, pull before updating, or create fact.'
425
435
        assert self.name, 'Got a fact without name.'
426
436
        #debugfact('Fact.push', self)
427
437
        self.checkValid()
482
492
 
483
493
# class for handling users.
484
494
class User(DataObject):
 
495
    dbTable = tableUser
 
496
 
485
497
    def __init__(self, host='', db=None, **kwargs):
486
498
        self.db = db
487
499
        self.new = False
550
562
    """
551
563
    Class for manipulating the sqlite database, with methods specific to the Factos
552
564
    plugin."""
 
565
    tableFact = tableFact
 
566
    tableHist = tableHist
 
567
    tableHistRedo = tableHistRedo
 
568
    tableUser = tableUser
553
569
 
554
 
    def __init__(self, filename, tableFact, tableHist, tableHistRedo, tableUser):
 
570
    def __init__(self, filename):
555
571
        self.__parent = super(FactosSqliteDB, self)
556
572
        self.__parent.__init__(filename)
557
573
 
558
 
        self.tableFact = tableFact
559
 
        self.tableHist = tableHist
560
 
        self.tableHistRedo = tableHistRedo
561
 
        self.tableUser = tableUser
562
574
        tableVersion = databases.Table(tblVersionStruct, 'version')
563
575
        # check if database version matches
564
576
        self.setDB()
825
837
    #newUserId = SqlLog(FactosSqliteDB.newUserId)
826
838
    #setTable = SqlLog(FactosSqliteDB.setTable)
827
839
 
828
 
SqliteDB = LoggedDB # comment this for disable sqlite debug messages
 
840
#SqliteDB = LoggedDB # comment this for disable sqlite debug messages
829
841
 
830
842
 
831
843
# vim:set shiftwidth=4 softtabstop=4 tabstop=4 expandtab textwidth=100: