Changeset 9 for trunk/amazonbot


Ignore:
Timestamp:
06/20/06 10:51:20 (18 years ago)
Author:
atzm
Message:

debug

Location:
trunk/amazonbot
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/amazonbot/amazonbot.ini.sample

    r8 r9  
    1111nick = amazonbot 
    1212content = そんなアナタにこれがオススメ 
     13thanks = ありがずう 
     14sorry = 正盎すたんかった 
    1315active_pattern = ごめん|ゎメン|すたん|スマン|すいたせん 
    1416silent_pattern = 邪魔|じゃた|ゞャマ|うる(さい|せヌ)|だたれ 
  • trunk/amazonbot/amazonbot.py

    r8 r9  
    99 
    1010import re 
     11import sys 
    1112import random 
    1213import MeCab 
     
    6465                c.join(config.get('irc', 'channel')) 
    6566                if __debug__: 
    66                         print '* Joined %s' % config.get('irc', 'channel') 
     67                        print >> sys.stderr, '* Joined %s' % config.get('irc', 'channel') 
    6768 
    6869        def on_nicknameinuse(self, c, e): 
     
    7374 
    7475        def on_pubmsg(self, c, e): 
    75                 msg = unicode(e.arguments()[0], 'iso-2022-jp') 
     76                try: 
     77                        msg = unicode(e.arguments()[0], 'iso-2022-jp') 
     78                except UnicodeError: 
     79                        if __debug__: 
     80                                print >> sys.stderr, 'ERR: incoming message encoding failed: %s' % e.arguments() 
     81                        return False 
    7682 
    77                 self.silence(msg) 
     83                self.silence(msg, c, e) 
    7884                if self._silent: 
    7985                        return False 
     
    8591                title, url = self.process_keyword(' '.join(nominals)) 
    8692                if title and url: 
    87                         nick = nm_to_n(e.source()) 
    8893                        channel = e.target() 
    8994 
     
    9196                        title = title 
    9297 
    93                         message = ('%(content)s: %(title)s <%(url)s>' % locals()).encode('iso-2022-jp') 
     98                        try: 
     99                                message = ('%(content)s: %(title)s %(url)s' % locals()).encode('iso-2022-jp') 
     100                        except UnicodeError: 
     101                                if __debug__: 
     102                                        print >> sys.stderr, 'ERR: my message encoding failed: ' 
     103                                        print >> sys.stderr, ' * content> %s' % content 
     104                                        print >> sys.stderr, ' * title> %s' % title 
     105                                        print >> sys.stderr, ' * url> %s' % url 
     106                                return False 
     107 
    94108                        c.privmsg(channel, message) 
    95109 
     
    100114        ACTIVE_PATTERN = re.compile(config.get('bot', 'active_pattern')) 
    101115        SILENT_PATTERN = re.compile(config.get('bot', 'silent_pattern')) 
    102         def silence(self, msg): 
    103                 if self.ACTIVE_PATTERN.search(msg): 
     116        def silence(self, msg, c, e): 
     117                ch = e.target() 
     118                active = self.ACTIVE_PATTERN.search(msg.encode('utf-8')) 
     119                silent = self.SILENT_PATTERN.search(msg.encode('utf-8')) 
     120                if __debug__: 
     121                        print >> sys.stderr, 'ACTIVE_PATTERN: %s, SILENT_PATTERN: %s' % (str(active), str(silent)) 
     122 
     123                if active: 
    104124                        self._silent = False 
    105                 elif self.SILENT_PATTERN.search(msg): 
     125                        c.privmsg(ch, unicode(config.get('bot', 'thanks'), 'utf-8').encode('iso-2022-jp')) 
     126                elif silent: 
    106127                        self._silent = True 
     128                        c.privmsg(ch, unicode(config.get('bot', 'sorry'), 'utf-8').encode('iso-2022-jp')) 
    107129 
    108130        def process_keyword(self, keyword): 
Note: See TracChangeset for help on using the changeset viewer.