def post(self): logging.debug(self.fsid) if Mgdb().find_login(self.jsonbody): logging.debug('登录成功') fsname = self.jsonbody[name] fsid = Mgdb().get_fsid(fsname) self.set_cookie('fsid', fsid, gvars.domain, expires_days=30) self.set_cookie('fsname', fsname, gvars.domain, expires_days=30) self.write_ok("登录成功") else: logging.debug('登录失败') self.write_failure("登录失败")
def send_comes(name): avatar = Mgdb().get_avatar(name) send = {'type': 2, 'from': name, 'time': get_time()} if avatar: send['msg'] = avatar for handler in online_users.values(): if handler: handler.write_message(json.dumps(send))
def post(self): if check_register(self.jsonbody) is True: if Mgdb().add_login(self.jsonbody) is True: self.write_ok("注册成功") else: self.write_failure("用户名或邮箱已存在") else: self.write_failure("信息填写有误")
def get(self): name = self.get_argument('name') user = Mgdb().find_user({'name': name}) if user: if 'avatar' in user: user['avatar'] = gvars.image_url + user['avatar'] self.write_dict(user) else: self.write_failure('用户不存在')
def get(self): names_avatars = [] for fsid in online_users.keys(): if fsid != self.fsid: if fsid in ROBOTS: name = fsid avatar = Mgdb().get_avatar(name) if not avatar: avatar = '' else: user = Mgdb().find_user({"fsid": fsid}) name = user['name'] if 'avatar' in user: avatar = gvars.image_url + user['avatar'] else: avatar = '' names_avatars.append({'name': name, 'avatar': avatar}) d = {'online_users': names_avatars} self.write_dict(d)
def post(self): email = json.loads(self.request.body.decode('utf-8')) if Mgdb().find_email(email): logging.debug('email already exist') else: v_code = sys_email.send_verify_code(email[mail]) if v_code is not None: emails_codes[email[mail]] = v_code else: logging.debug('send email failed')
def post(self): files = self.request.files.get('file') if files: avatar = files[0] ext = os.path.splitext(avatar['filename'])[1] filename = str(time.time()) + ext avatar_file = get_image_file(filename) with open(avatar_file, 'wb') as f: f.write(avatar['body']) logging.warn('upload: ' + avatar_file) Mgdb().update_avatar(self.name, filename) self.write_ok("上传成功")
def send_msg2name(from_name, to_name, msg): """ A发送给B一条消息, 系统要给A和B各发一条 A收到{type: -1, from: B} B收到{type: 1, from: A} """ send = {'msg': msg, 'time': get_time()} from_fsid = Mgdb().get_fsid(from_name) to_fsid = Mgdb().get_fsid(to_name) if from_fsid in online_users: from_handler = online_users[from_fsid] if from_handler: send['type'] = -1 send['from'] = to_name from_handler.write_message(json.dumps(send)) if to_fsid in online_users: to_handler = online_users[to_fsid] if to_handler: send['type'] = 1 send['from'] = from_name to_handler.write_message(json.dumps(send))
def on_message(self, message): if isinstance(message, unicode): # 普通消息 msg = json.loads(message) if msg.has_key('type') and msg.has_key('to') and msg.has_key( 'msg'): # 验证发送过来的cookie if msg['type'] == 99: fsid = msg['msg'][:32] name = msg['msg'][32:] if Mgdb().find_user({'fsid': fsid, 'name': name}): self.fsid = fsid self.name = name logging.warn('on_open: ' + str(id(self))) send_comes(name) # 移除同一用户旧的handler if fsid in online_users.keys(): online_users.pop(fsid) send_comes(name) online_users[fsid] = self elif self.fsid in online_users: # image:// + 图片url if msg['msg'] == 'image://' and self.temp: msg['msg'] += gvars.image_url + self.temp self.temp = None if msg['type'] == 0: # all send_msg2all(self.name, msg['msg']) elif msg['type'] == 1: # name if msg['to'] in ROBOTS: # robot send_msg2name(self.name, msg['to'], msg['msg']) text = tuling.tuling_chat(self.fsid, msg['msg']) send_msg2name(msg['to'], self.name, text) else: # person send_msg2name(self.name, msg['to'], msg['msg']) else: # 二进制文件, 先缓存到 self.temp, 接收到下一条文本消息再处理 self.temp = str(time.time()) + '.jpg' temp = os.path.join(gvars.image_dir, self.temp) with open(temp, 'wb') as f: f.write(message)
def post(self): logging.debug(self.fsid) if Mgdb().find_login(self.jsonbody): logging.debug('登录成功') fsname = self.jsonbody[name] fsid = Mgdb().get_fsid(fsname) self.set_cookie('fsid', fsid, gvars.domain, expires_days=30) self.set_cookie('fsname', fsname, gvars.domain, expires_days=30) self.write_ok("登录成功") else: logging.debug('登录失败') self.write_failure("登录失败") class LogoutHandler(BaseHandler): ''' 退出登录 ''' def get(self): self.write_ok("退出登录成功") if self.name: logging.warn('logout: ' + self.name) if __name__ == "__main__": # run on local pass r = {u'username': u'\u8d85\u54e5', u'password': u'chao'} logging.debug(Mgdb().find_login(r))
def post(self): if Mgdb().update_user(self.name, self.jsonbody): self.write_ok('更新成功') else: self.write_failure('更新失败')