def send(self): try: logger.debug(self.jsonBody) obj = self.jsonBody logger.debug('to_id:' + obj.get('to_id')) logger.debug('c: %s', obj.get('c')) logger.debug('c_type: %s', obj.get('c_type')) logger.debug('m_id: %s', obj.get('m_id')) media_id = obj.get('m_id') from_id = self.user['_id'] logger.debug('from_id: %s', from_id) user_query = MeQuery("UserInfo") user_info = user_query.find_one({'user': from_id}) message_dict = { 'from_id': from_id, 'c': obj.get('c'), 'to_id': obj.get('to_id'), 'c_type': obj.get('c_type'), 'msg_type': 2, 'from_avatar': user_info['avatar'], 'from_name': user_info['nickName'], 'status': 0, 'm_id': media_id } message = MeObject('Message', obj=message_dict) message['session'] = SessionUtil.create(from_id, obj.get('to_id')) message.save() # 格式化时间为long型 message_dict['create_at'] = long( message['createAt'].strftime('%s')) * 1000 message_dict['t'] = 'comment' message_dict['id'] = message['_id'] message_json = json.dumps(message_dict, ensure_ascii=False) logger.debug(message_json) print type(message['createAt']) rc = RedisDb.get_connection() rc.publish(Constants.REDIS_CHANNEL_FOR_PUSH, message_json) # 发push push_cid_obj = ClassHelper('PushCid').find_one( {'userid': obj.get('to_id')}) logger.debug('push_cid_obj: %s', push_cid_obj) if push_cid_obj and (push_cid_obj['logout'] is False): # push_cid = MeObject('PushCid', obj=push_cid_obj) title = user_info['nickName'] content = obj.get('c') content = PushEmoji.getPushContent(content) data = 'honey://comment/' + from_id + '?m_id=' + media_id print title.encode('utf-8') print content.encode('utf-8') claim_count = 0 message_count = 0 stat1 = ClassHelper('StatCount').find_one( {'name': 'toClaim_' + obj.get('to_id')}) if stat1: claim_count = stat1['count'] if claim_count < 0: claim_count = 0 stat2 = ClassHelper('StatCount').find_one( {'name': 'unreadMsg_' + obj.get('to_id')}) if stat2: message_count = stat2['count'] if message_count < 0: message_count = 0 badge = claim_count + message_count t = threading.Thread(target=MyGtUtil.pushMessageToSingle, args=( push_cid_obj['cid'], title.encode('utf-8'), content.encode('utf-8'), data, badge, )) t.setDaemon(True) t.start() # logger.debug(ERR_SUCCESS.message) r = {} r['id'] = message['_id'] r['code'] = 0 r['errCode'] = 0 r['create_at'] = message_dict['create_at'] self.write(r) # 计数 unreadMsg +1 logger.debug('update to_id:unreadMsg_%s unreadMsg count ', obj.get('to_id')) ClassHelper('StatCount').updateOne( {'name': 'unreadMsg_' + obj.get('to_id')}, {"$inc": { 'count': 1 }}, upsert=True) except Exception, e: logger.error(e) msg = traceback.format_exc() logger.error(msg) self.write(ERR_PARA.message)
def send(self): try: logger.debug(self.jsonBody) obj = self.jsonBody logger.debug('to_id:' + obj.get('to_id')) logger.debug('c: %s', obj.get('c')) logger.debug('c_type: %s', obj.get('c_type')) logger.debug('m_id: %s', obj.get('m_id')) media_id = obj.get('m_id') from_id = self.user['_id'] logger.debug('from_id: %s', from_id) user_query = MeQuery("UserInfo") user_info = user_query.find_one({'user': from_id}) message_dict = { 'from_id': from_id, 'c': obj.get('c'), 'to_id': obj.get('to_id'), 'c_type': obj.get('c_type'), 'msg_type': 2, 'from_avatar': user_info['avatar'], 'from_name': user_info['nickName'], 'status': 0, 'm_id': media_id } message = MeObject('Message', obj=message_dict) message.save() # 格式化时间为long型 message_dict['create_at'] = long( message['createAt'].strftime('%s')) * 1000 message_dict['t'] = 'comment' message_dict['id'] = message['_id'] message_json = json.dumps(message_dict, ensure_ascii=False) logger.debug(message_json) print type(message['createAt']) rc = RedisDb.get_connection() rc.publish(Constants.REDIS_CHANNEL_FOR_PUSH, message_json) # 发push push_cid_obj = ClassHelper('PushCid').find_one( {'userid': obj.get('to_id')}) logger.debug('push_cid_obj: %s', push_cid_obj) if push_cid_obj: # push_cid = MeObject('PushCid', obj=push_cid_obj) title = user_info['nickName'] content = '新评论' data = 'honey://comment/' + from_id + '?m_id=' + media_id print title.encode('utf-8') print content.encode('utf-8') t = threading.Thread(target=MyGtUtil.pushMessageToSingle, args=( push_cid_obj['cid'], title.encode('utf-8'), content.encode('utf-8'), data, )) t.setDaemon(True) t.start() # logger.debug(ERR_SUCCESS.message) r = {} r['id'] = message['_id'] r['code'] = 0 r['create_at'] = message_dict['create_at'] self.write(r) except Exception, e: logger.error(e) msg = traceback.format_exc() logger.error(msg) self.write(ERR_PARA.message)