def get_save_step_two(task_detail): #update user_no_max = get_tw_xnr_no() user_no_current = user_no_max + 1 r.set(tw_xnr_max_no, user_no_current) task_detail['user_no'] = user_no_current task_id = user_no2tw_id(user_no_current) #五位数 TXNR0001 item_exist = dict() item_exist['submitter'] = task_detail['submitter'] item_exist['user_no'] = task_detail['user_no'] item_exist['domain_name'] = task_detail['domain_name'] item_exist['role_name'] = task_detail['role_name'] item_exist['psy_feature'] = '&'.join(task_detail['psy_feature'].encode('utf-8').split(',')) item_exist['political_side'] = task_detail['political_side'] item_exist['business_goal'] = '&'.join(task_detail['business_goal'].encode('utf-8').split(',')) # item_exist['daily_interests'] = '&'.join(task_detail['daily_interests'].encode('utf-8').split(',')) item_exist['monitor_keywords'] = ','.join(task_detail['monitor_keywords'].encode('utf-8').split(',')) item_exist['active_time'] = '&'.join(task_detail['active_time'].split('-')) item_exist['day_post_average'] = json.dumps(task_detail['day_post_average'].split('-')) item_exist['create_status'] = 1 # 第二步完成 item_exist['xnr_user_no'] = task_id # 虚拟人编号 item_exist['create_time'] = int(time.time()) print es.index(index=tw_xnr_index_name,doc_type=tw_xnr_index_type,id=task_id,body=item_exist) mark = True return mark,task_id
def get_qq_xnr_no(): if not r.exists(qq_xnr_max_no): #如果当前redis没有记录,则去es数据库查找补上 user_no_max = 1 r.set(qq_xnr_max_no, user_no_max) else: #如果当前redis有记录,则取用 user_no_max = r.incr(qq_xnr_max_no) return user_no_max
def create_wx_xnr(xnr_info): #create and login, xnr_info = [wx_id,remark,submitter,access_id] wx_id = xnr_info['wx_id'] submitter = xnr_info['submitter'] mail = xnr_info['mail'] access_id = xnr_info['access_id'] remark = xnr_info.get('remark') search_result = check_wx_xnr(wx_id) #check if wxxnr exist if search_result: #如果虚拟人已经存在,则进行登陆。并可考虑用于更新wxxnr的信息,先不管 wxbot_id = search_result['wxbot_id'] wxbot_port = search_result['wxbot_port'] groups_list = search_result['groups_list'] #可进一步做出判断,如果wxbot_port被占用了,则更改wxbot_port,并更新es表。也先不管。 qr_path = start_bot(wx_id=wx_id, wxbot_id=wxbot_id, wxbot_port=wxbot_port, init_groups_list=groups_list, submitter=submitter, mail=mail, access_id=access_id, remark=remark) else: #如果虚拟人还没有存在,那么就创建此虚拟人 wxbot_port = find_port(get_all_ports()) # user_no_current = load_user_no_current() user_no_max = get_wx_xnr_no() user_no_current = user_no_max + 1 global_utils_r.set(wx_xnr_max_no, user_no_current) wxbot_id = user_no2wxbot_id(user_no_current) qr_path = start_bot(wx_id=wx_id, wxbot_id=wxbot_id, wxbot_port=wxbot_port, submitter=submitter, mail=mail, access_id=access_id, remark=remark, create_flag=1) return qr_path