Changeset 677 for team

Show
Ignore:
Timestamp:
10/01/07 19:28:15 (14 months ago)
Author:
michiel
Message:

remove trac stuff

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • team/michiel/nsa-without-trac/nsa.py

    r668 r677  
    3535from irclib import SimpleIRCClient 
    3636from irclib import nm_to_n, nm_to_h, irc_lower, ip_numstr_to_quad, ip_quad_to_numstr 
    37  
    38 import trac 
    39 from trac import perm, util, db_default 
    40 from trac.config import default_dir 
    41 from trac.env import Environment 
    4237 
    4338class Daemon: 
     
    8782                os.remove(self.pidfile) 
    8883 
    89 class tracinfo(cmd.Cmd): 
    90         __env = None 
    91         def __init__(self, envdir=None): 
    92                 if envdir: 
    93                         self.env_set(os.path.abspath(envdir)) 
    94  
    95         def env_set(self, envname, env=None): 
    96                 self.envname = envname 
    97                 if env is not None: 
    98                         self.__env = env 
    99  
    100         def env_check(self): 
    101                 try: 
    102                         self.__env = Environment(self.envname) 
    103                 except: 
    104                         return 0 
    105                 return 1 
    106  
    107         def env_open(self): 
    108                 try: 
    109                         if not self.__env: 
    110                                 self.__env = Environment(self.envname) 
    111                         return self.__env 
    112                 except Exception, e: 
    113                         print 'Failed to open environment.', e 
    114                         traceback.print_exc() 
    115                         sys.exit(1) 
    116  
    117         def db_open(self): 
    118                 return self.env_open().get_db_cnx() 
    119  
    120         def db_query(self, sql, cursor=None, params=None): 
    121                 if not cursor: 
    122                         cnx = self.db_open() 
    123                         cursor = cnx.cursor() 
    124                 if params: 
    125                         cursor.execute(sql, params) 
    126                 else: 
    127                         cursor.execute(sql) 
    128                 for row in cursor: 
    129                         yield row 
    130  
    131         def do_version(self): 
    132                 return trac.__version__ 
    133          
    134         def do_ticket(self, ticketnum): 
    135                 tickets = self.db_query("SELECT status, type, resolution, id, priority, summary, reporter FROM ticket WHERE id = %s", params=(ticketnum,)) 
    136                 if tickets: 
    137                         return [(row[0], row[1], row[2], row[3], row[4], row[5], row[6], row[3]) for row in tickets] 
    138  
    139         def do_revision(self, revision): 
    140                 revisions = self.db_query("SELECT rev, author, time, message FROM revision WHERE rev = %s", params=(revision,)) 
    141                 if revisions: 
    142                         return [(row[0], row[1], row[2], row[3]) for row in revisions] 
    143  
    14484class RemoteData: 
    14585        global bot 
     
    166106 
    167107class NSABot(SingleServerIRCBot): 
    168         trac = tracinfo("/home/httpd/3dmembers/michiel/mvblog.org/dev") 
    169         #trac = tracinfo("/home/michiel/dev/personal/trac-env") 
    170108 
    171109        def __init__(self, channel, nickname, server, port=6667): 
     
    179117                c.join(self.channel) 
    180118         
    181         def on_pubmsg(self, c, e): 
    182                 msg = e.arguments()[0] 
    183  
    184                 parts = msg.split(":", 1) 
    185                 if len(parts) > 1 and irc_lower(parts[0]) == irc_lower(self.connection.get_nickname()): 
    186                         subparts = parts[1].strip().split(" ", 1) 
    187                         if len(subparts) == 2: 
    188                                 cmd, params = subparts 
    189                         else: 
    190                                 cmd = subparts 
    191                                 params = " " 
    192                         self.do_command(c, e, cmd, params) 
    193                 return 
    194          
    195         def do_command(self, c, e, cmd, params): 
    196                 if cmd == "ticket": 
    197                         ticket = self.trac.do_ticket(params) 
    198                         if ticket: 
    199                                 output = "[%s %s: %s] #%s [%s] %s reported by %s http://dev.mvblog.org/trac/ticket/%s" % (ticket[0]) 
    200                         else: 
    201                                 output = "No such ticket" 
    202                         c.privmsg(e.target(), output) 
    203                 elif cmd == "commit" : 
    204                         revision = self.trac.do_revision(params) 
    205                         if revision: 
    206                                 lines = revision[0][3].split("\n") 
    207                                 if len(lines) < 2: 
    208                                         c.privmsg(e.target(), "[%s] Committed by %s on %s: %s" % (revision[0][0], revision[0][1], datetime.datetime.fromtimestamp(revision[0][2]), lines[0])) 
    209                                 else: 
    210                                         c.privmsg(e.target(), "[%s] Committed by %s on %s:" % (revision[0][0], revision[0][1], datetime.datetime.fromtimestamp(revision[0][2]))) 
    211                                         for line in lines: 
    212                                                 c.privmsg(e.target(), "%s" % (line)) 
    213                         else: 
    214                                 c.privmsg(e.target(), "No such commit") 
    215                 elif cmd == "tracversion": 
    216                         tracversion = self.trac.do_version() 
    217                         c.privmsg(e.target(), "trac version: "+tracversion) 
    218  
    219119        def say_it(self, text): 
    220120                lines = text.split("\n")