Пример #1
0
 def notify_status(self, addr, is_afk=True):
     tag = c.IPMSG_BR_ABSENCE | c.IPMSG_FILEATTACHOPT | c.IPMSG_ENCRYPTOPT
     if is_afk:
         tag |= c.IPMSG_ABSENCEOPT
     msg = self.get_name_ext()
     if self.supports_utf8(addr) or settings['always_use_utf8']:
         tag |= c.IPMSG_UTF8OPT
     else:
         msg = util.utf8_to_sjis(msg)
     raw = self.make_msg(addr, tag, msg)
     self.server.send_immediate(raw, addr)
Пример #2
0
 def rsps_entry(self, p, contact):
     if not status.is_invisible() and not status.is_off() and contact.addr[0] not in engine.block_ips:
         tag = c.IPMSG_ANSENTRY
         if status.is_afk():
             tag |= c.IPMSG_ABSENCEOPT
         msg = engine.get_name_ext()
         if engine.supports_utf8(p.addr) or settings['always_use_utf8']:
             tag |= c.IPMSG_UTF8OPT
         else:
             msg = util.utf8_to_sjis(msg)
         engine.send(contact.addr, tag, msg)
     if not engine.is_self(contact.addr):
         self.events.add(contact)
     self.req_pubkey(contact.addr)
Пример #3
0
 def hello(self, addr, is_afk=False, is_secret=False):
     tag = c.IPMSG_BR_ENTRY | c.IPMSG_FILEATTACHOPT | c.IPMSG_ENCRYPTOPT
     if is_secret:
         tag |= c.IPMSG_NOADDLISTOPT
     if is_afk:
         tag |= c.IPMSG_ABSENCEOPT
     msg = self.get_name_ext()
     if self.supports_utf8(addr) or settings['always_use_utf8']:
         tag |= c.IPMSG_UTF8OPT
     else:
         msg = util.utf8_to_sjis(msg)
     raw = self.make_msg(addr, tag, msg)
     self.server.send_immediate(raw, addr)
     if not is_secret:
         self.notify_status(addr, is_afk)
Пример #4
0
 def make_msg(self, addr, tag, msg=''):
     extra = ''
     if tag & 0xFF in (c.IPMSG_BR_ENTRY, c.IPMSG_ANSENTRY, c.IPMSG_BR_ABSENCE):
         if settings['use_status_as_group']:
             gname = settings['stat_msg'][1]
         else:
             gname = settings['group_name']
         if gname:
             if tag & c.IPMSG_UTF8OPT or self.supports_utf8(addr):
                 tag |= c.IPMSG_UTF8OPT
                 extra = "%s\0" % gname
             else:
                 extra = "%s\0" % util.utf8_to_sjis(gname)
     raw = self.make_raw(tag, msg)
     logger.debug('make msg:' + raw)
     return raw + extra
Пример #5
0
 def rsps_getinfo(self, p, contact):
     tag = c.IPMSG_SENDINFO
     msg = util.utf8_to_sjis(c.PROTOCOL_VERSION)
     engine.send(contact.addr, tag, msg)