#! /usr/bin/env python # -*- coding: utf-8 -*- # vim:fenc=utf-8 """ Agent在和用户对话过程中可能识别到用户不想再收消息,Agent会做识别,但需将信息同步至Growth Manager """ import sys import os import json import pymysql.cursors sys.path.append(os.curdir) from pqai_agent import configs from pqai_agent.user_manager import MySQLUserManager, MySQLUserRelationManager if __name__ == '__main__': config = configs.get() user_db_config = config['storage']['user'] staff_db_config = config['storage']['staff'] user_manager = MySQLUserManager(user_db_config['mysql'], user_db_config['table'], staff_db_config['table']) wecom_db_config = config['storage']['user_relation'] user_relation_manager = MySQLUserRelationManager( user_db_config['mysql'], wecom_db_config['mysql'], config['storage']['staff']['table'], user_db_config['table'], wecom_db_config['table']['staff'], wecom_db_config['table']['relation'], wecom_db_config['table']['user'] ) sql = f"SELECT wxid, name, profile_data_v1 FROM {user_manager.table_name} WHERE profile_data_v1 IS NOT NULL" users = user_manager.db.select(sql, pymysql.cursors.DictCursor) for user in users: profile = json.loads(user['profile_data_v1']) if profile.get('interaction_frequency', None) == 'stopped': user_id = user['wxid'] user_name = user['name'] print(f'update user[{user_id}] {user_name}: stop group message') sql = f"UPDATE we_com_user SET group_msg_disabled = 1 WHERE union_id = %s" rows = user_relation_manager.wecom_db.execute(sql, (user_id, )) print(f'affected rows: {rows}')