12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- #! /usr/bin/env python
- # -*- coding: utf-8 -*-
- # vim:fenc=utf-8
- """
- Agent在和用户对话过程中可能识别到用户不想再收消息,Agent会做识别,但需将信息同步至Growth Manager
- """
- import json
- import pymysql.cursors
- 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']
- agent_db_config = config['database']['ai_agent']
- growth_db_config = config['database']['growth']
- user_manager = MySQLUserManager(agent_db_config, user_db_config['table'], staff_db_config['table'])
- wecom_db_config = config['storage']['user_relation']
- user_relation_manager = MySQLUserRelationManager(
- agent_db_config, growth_db_config,
- 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}')
|