抖音私信群发工具,小红书快手微博哔哩哔哩批量私信发送,脚本自动回复插件python

43 阅读2分钟

下载地址:www.pan38.com/dow/share.p… 提取密码:1829

这个项目包含以下主要功能模块:

  1. 配置文件管理(config.py):集中管理所有平台API配置、数据库连接和消息模板
  2. 数据库操作(db_handler.py):处理所有数据库相关操作,包括消息日志存储和用户数据获取
  3. 平台API客户端(api_client.py):封装各平台的API调用,实现消息发送和自动回复功能
  4. 主程序(message_bot.py):协调各模块工作,实现多线程的消息发送和自动回复处理

使用前需要:

  1. 安装依赖:pip install requests pymysql python-dotenv
  2. 创建数据库表结构
  3. 配置.env文件中的API令牌和数据库信息
  4. 准备目标用户数据

import os from dotenv import load_dotenv

load_dotenv()

平台API配置

PLATFORM_CONFIG = { "douyin": { "api_url": "api.douyin.com", "auth_token": os.getenv("DOUYIN_TOKEN"), "rate_limit": 30 # 每分钟限制 }, "xiaohongshu": { "api_url": "edith.xiaohongshu.com", "auth_token": os.getenv("XHS_TOKEN"), "rate_limit": 20 }, "kuaishou": { "api_url": "open.kuaishou.com", "auth_token": os.getenv("KS_TOKEN"), "rate_limit": 25 }, "weibo": { "api_url": "api.weibo.com", "auth_token": os.getenv("WEIBO_TOKEN"), "rate_limit": 50 }, "bilibili": { "api_url": "api.bilibili.com", "auth_token": os.getenv("BILI_TOKEN"), "rate_limit": 40 } }

数据库配置

DATABASE_CONFIG = { "host": os.getenv("DB_HOST", "localhost"), "port": os.getenv("DB_PORT", 3306), "user": os.getenv("DB_USER", "root"), "password": os.getenv("DB_PASSWORD", ""), "database": os.getenv("DB_NAME", "message_bot") }

消息模板

MESSAGE_TEMPLATES = { "default": "你好,很高兴认识你!", "promotion": "我们的新产品上市了,欢迎了解详情!", "followup": "感谢关注,有什么可以帮您的吗?" }

pymysql from pymysql import Error from config import DATABASE_CONFIG

class DatabaseHandler: def init(self): self.connection = None self.connect()

def connect(self):
    try:
        self.connection = pymysql.connect(
            host=DATABASE_CONFIG["host"],
            port=DATABASE_CONFIG["port"],
            user=DATABASE_CONFIG["user"],
            password=DATABASE_CONFIG["password"],
            database=DATABASE_CONFIG["database"],
            charset="utf8mb4",
            cursorclass=pymysql.cursors.DictCursor
        )
    except Error as e:
        print(f"数据库连接失败: {e}")

def execute_query(self, query, params=None):
    try:
        with self.connection.cursor() as cursor:
            cursor.execute(query, params or ())
            if query.strip().lower().startswith("select"):
                return cursor.fetchall()
            self.connection.commit()
            return cursor.rowcount
    except Error as e:
        print(f"查询执行失败: {e}")
        self.connection.rollback()
        return None

def save_message_log(self, platform, user_id, message, status):
    query = """
    INSERT INTO message_logs 
    (platform, user_id, message, status, created_at) 
    VALUES (%s, %s, %s, %s, NOW())
    """
    return self.execute_query(query, (platform, user_id, message, status))

def get_user_list(self, platform, limit=100):
    query = """
    SELECT user_id, username, last_contacted 
    FROM target_users 
    WHERE platform = %s 
    ORDER BY last_contacted ASC 
    LIMIT %s
    """
    return self.execute_query(query, (platform, limit))

def close(self):
    if self.connection:
        self.connection.close()