Changeset 37
- Timestamp:
- 02/08/04 16:14:31 (5 years ago)
- Files:
-
- trunk/jjigw.py (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/jjigw.py
r26 r37 31 31 channel_re=re.compile(r"^[&#+!][^\000 \007 ,:\r\n]{1,49}$") 32 32 nick_re=re.compile(r"^[a-zA-Z\x5b-\x60\x7b-\x7d\[\]\\`_^{|}][a-zA-Z\x5b-\x60\x7b-\x7d\[\]\\`_^{|}0-9-]{0,8}$") 33 nick8_re=re.compile(r"^[a-zA-Z\x5b-\x60\x7b-\x7d\[\]\\`_^{|}\x80-\xff][a-zA-Z\x5b-\x60\x7b-\x7d\[\]\\`_^{|}0-9\x80-\xff-]{0,8}$") 33 34 34 35 def escape_node_string(s): … … 64 65 return n 65 66 66 def node_to_nick(n,encoding ):67 def node_to_nick(n,encoding,network): 67 68 s=n.encode(encoding,"strict") 68 69 s=escape_node_string(s) 69 if not n ick_re.match(s):70 if not network.valid_nickk(s): 70 71 raise ValueError,"Bad nick name: %r" % (s,) 71 72 return s … … 123 124 self.channels[normalize(ch.name)]=ch 124 125 self.default_encoding=node.prop("encoding") 126 self.nicks_8bit=node.prop("nicks_8bit") 125 127 def get_servers(self): 126 128 r=self.servers … … 129 131 def get_channel_config(self,channel): 130 132 return self.channels.get(normalize(channel)) 133 def valid_nick(self,s): 134 if self.nicks_8bit: 135 m=nick8_re.match(s) 136 else: 137 m=nick_re.match(s) 138 if m: 139 return 1 140 else: 141 return 0 131 142 132 143 class Config: … … 531 542 self.default_encoding=self.network.default_encoding 532 543 nick=nick.encode(self.default_encoding,"strict") 533 if not nick_re.match(nick):544 if not self.network.valid_nick(nick): 534 545 raise ValueError,"Bad nickname" 535 546 self.jid=jid … … 589 600 else: 590 601 nick=prefix 591 if not nick_re.match(nick):602 if not self.network.valid_nick(nick): 592 603 return None 593 604 nnick=normalize(nick) … … 955 966 thread_fr=None 956 967 nick=node_to_nick(nick,self.default_encoding) 957 if not nick_re.match(nick):968 if not self.network.valid_nick(nick): 958 969 debug("Bad nick: %r" % (nick,)) 959 970 return
