def judge_tw_follow_type(xnr_user_no, uid): exist_item = es_fb_tw.exists(index=tw_xnr_fans_followers_index_name,doc_type=tw_xnr_fans_followers_index_type,\ id=xnr_user_no) if not exist_item: tw_type = 'stranger' else: es_get = es_fb_tw.get(index=tw_xnr_fans_followers_index_name,doc_type=tw_xnr_fans_followers_index_type,\ id=xnr_user_no)['_source'] fans_list = '' if es_get.has_key('fans_list'): fans_list = es_get['fans_list'] followers_list = '' if es_get.has_key('followers_list'): followers_list = es_get['followers_list'] if uid in fans_list: if uid in followers_list: tw_type = 'friends' else: tw_type = 'followed' elif uid in followers_list: tw_type = 'follow' else: tw_type = 'stranger' return tw_type
def save_data2es(data): update_uid_list = [] create_uid_list = [] try: for uid, d in data.items(): if es.exists(index=tw_portrait_index_name, doc_type=tw_portrait_index_type, id=uid): update_uid_list.append(uid) else: create_uid_list.append(uid) #bulk create bulk_create_action = [] if create_uid_list: for uid in create_uid_list: create_action = {'index':{'_id': uid}} bulk_create_action.extend([create_action, data[uid]]) result = es.bulk(bulk_create_action, index=tw_portrait_index_name, doc_type=tw_portrait_index_type) if result['errors'] : print result return False #bulk update if update_uid_list: bulk_update_action = [] for uid in update_uid_list: update_action = {'update':{'_id': uid}} bulk_update_action.extend([update_action, {'doc': data[uid]}]) result = es.bulk(bulk_update_action, index=tw_portrait_index_name, doc_type=tw_portrait_index_type) if result['errors'] : print result return False except Exception,e: print e return False
def judge_tw_sensing_sensor(xnr_user_no, uid): try: exist_item = es_fb_tw.exists(index=tw_index_sensing, doc_type=tw_type_sensing, id=xnr_user_no) except Exception, e: print e return False
def update_facebook_xnr_relations(root_uid, uid, data, update_portrait_info=False): # pingtaiguanzhu 决定了是否要在平台上真正关注该用户,涉及到更改该关系时,一定要指定该字段(1或0)。 ''' :param root_uid: xnr_uid :param uid: user_uid :param data: relation data. eg: data={'gensuiguanzhu': 1, 'pingtaiguanzhu': 1} :param update_portrait_info: update or not :return: update success or not ''' xnr_user_no = fb_uid2xnr_user_no(root_uid) if xnr_user_no: data['platform'] = 'facebook' data['xnr_no'] = xnr_user_no data['xnr_uid'] = root_uid data['uid'] = uid ''' pingtaiguanzhu = data.get('pingtaiguanzhu', -1) pingtaiguanzhu_state = load_pingtaiguanzhu_state(root_uid, uid) if pingtaiguanzhu != pingtaiguanzhu_state: if pingtaiguanzhu == 1: 'gaunzhu' data['pingtaiguanzhu'] = 1 elif pingtaiguanzhu == 0: 'quxiao' data['pingtaiguanzhu'] = 0 ''' try: _id = '%s_%s' % (root_uid, uid) user_exist = es_xnr_2.exists( index=facebook_xnr_relations_index_name, doc_type=facebook_xnr_relations_index_type, id=_id) if user_exist: if update_portrait_info: protrait_info = update_facebook_user_portrait_info(uid) data.update(protrait_info) es_result = es_xnr_2.update( index=facebook_xnr_relations_index_name, doc_type=facebook_xnr_relations_index_type, id=_id, body={'doc': data}) else: protrait_info = update_facebook_user_portrait_info(uid) data.update(protrait_info) es_result = es_xnr_2.index( index=facebook_xnr_relations_index_name, doc_type=facebook_xnr_relations_index_type, id=_id, body=data) print es_result return True except Exception, e: print 'update_facebook_xnr_relations Error: ', str(e)
def update_twitter_xnr_relations(root_uid, uid, data, update_portrait_info=False): # pingtaiguanzhu 决定了是否要在平台上真正关注该用户,涉及到更改该关系时,一定要指定该字段(1或0)。 ''' :param root_uid: xnr_uid :param uid: user_uid :param data: relation data. eg: data={'gensuiguanzhu': 1, 'pingtaiguanzhu': 1} :param update_portrait_info: update or not :return: update success or not ''' xnr_user_no = tw_uid2xnr_user_no(root_uid) if xnr_user_no: data['platform'] = 'twitter' data['xnr_no'] = xnr_user_no data['xnr_uid'] = root_uid data['uid'] = uid ''' pingtaiguanzhu = data.get('pingtaiguanzhu', -1) pingtaiguanzhu_state = load_pingtaiguanzhu_state(root_uid, uid) if pingtaiguanzhu != pingtaiguanzhu_state: if pingtaiguanzhu == 1: 'gaunzhu' data['pingtaiguanzhu'] = 1 elif pingtaiguanzhu == 0: 'quxiao' data['pingtaiguanzhu'] = 0 ''' # kn push jinrong cloud pingtaiguanzhu = data.get('pingtaiguanzhu', -1) pingtaiguanzhu_state = load_twitter_pingtaiguanzhu_state(root_uid, uid) tw_account, tw_password = load_twitter_user_passwd(root_uid) params_dict = {} params_dict['account'] = tw_account params_dict['password'] = tw_password params_dict['to_id'] = uid params_dict['xnr_user_no'] = xnr_user_no params_dict['root_uid'] = root_uid # 根据screen_name关注 if pingtaiguanzhu != pingtaiguanzhu_state: if pingtaiguanzhu == 1: # 'gaunzhu' params_dict['operate_type'] = 'follow' data['pingtaiguanzhu'] = 1 ali_re.lpush(twitter_relation_params, json.dumps(params_dict)) print params_dict print "push aliyun successful" elif pingtaiguanzhu == 0: # 'quxiao' params_dict['operate_type'] = 'unfollow' data['pingtaiguanzhu'] = 0 ali_re.lpush(twitter_relation_params, json.dumps(params_dict)) print "push aliyun successful" else: #params_dict['operate_type'] = 'follow' #data['pingtaiguanzhu'] = 1 #ali_re.lpush(twitter_relation_params, json.dumps(params_dict)) #print "push aliyun successful" pass try: _id = '%s_%s' % (root_uid, uid) user_exist = es_xnr_2.exists( index=twitter_xnr_relations_index_name, doc_type=twitter_xnr_relations_index_type, id=_id) if user_exist: if update_portrait_info: protrait_info = update_twitter_user_portrait_info(uid) data.update(protrait_info) es_result = es_xnr_2.update( index=twitter_xnr_relations_index_name, doc_type=twitter_xnr_relations_index_type, id=_id, body={'doc': data}) else: protrait_info = update_twitter_user_portrait_info(uid) data.update(protrait_info) es_result = es_xnr_2.index( index=twitter_xnr_relations_index_name, doc_type=twitter_xnr_relations_index_type, id=_id, body=data) return True except Exception, e: print 'update_twitter_xnr_relations Error: ', str(e)