玄之 发表于 2025-2-27 21:35:01

告别复杂配置!密码下载+多平台机器人,一键搞定

前言

这是一个用于WordPress的附件密码下载,对接公众号 提供API 方便其他程序调用 支持多平台机器人 如 QQ官方机器人 TG机器人等 密码随机生成,支持ai大模型。程序永久免费且开源 开源地址 https://github.com/naigoucn/ngdown
前台下载样式参考 6KE论坛的子比下载插件
微信机器人参考http://github.com/wangvsa/wechat-robot 和 https://github.com/shiheme/wechat-robot-guoqing
图标样式采用开源icon库 https://remixicon.com
不对接公众号的版本 下载地址 https://pan.quark.cn/s/a748ae8853ca

支持功能


[*]输入密码下载附件
[*]对接微信公众号随机密码
[*]公众号推送文章
[*]单篇文章密码30分钟自动切换
[*]对接AI大模型实现自动聊天
[*]提供api接口 方便其他机器人框架调用
[*]支持多平台机器人 如QQ/TG等 (取决于您的机器人框架)
[*]后台设置页面 自定义回复设置 大模型设置 api密钥设置
[*]自动识别网盘链接展示对应图标
[*]支持选择开启或关闭密码下载

演示图





使用方法

文章页


新建文章后,如果想在文章底部加上密码下载就在编辑器底部找到下图设置



填写对应内容即可,选项留空前台不显示该内容,显示选项 选择隐藏前台也不显示该内容。

对接微信公众号



在这里输入你的微信公众号 开发者ID(AppID) 和 开发者密码(AppSecret)

如何获取开发者ID(AppID) 和 开发者密码(AppSecret)?
登录微信公众号平台 mp.weixin.qq.com 登录账号 找到 设置与开发 点击 开发接口管理 如下图


复制appid粘贴到上面的位置,密钥点击重置,扫码后重新获取 记得把服务器ip设置为IP白名单。


服务器地址改为 https://你的域名/?wechat token填写wechat 消息加解密方式选择明文模式。

对接AI大模型

后台找到微信机器人 AI模型 按要求填写



这个适配的是openai的,大部分大模型都支持,所以改接口 改密钥 改模型代码 理论支持所有大模型,例如腾讯混元 阿里通义千问 DeepSeek等。 预装了部分ai大模型 如通义千问 腾讯混元 deepseek kimi 模型记得选择正确 不然会失败。

API秘钥


插件提供api用来获取密码 采用post形式 API Token按你需要的设置。



接口请求方式
api_token就是你设置的token postid就是你开启密码下载的文章
URL: https://域名/wp-json/ngapi/v1/get-password
Method: POST
Headers: Content-Type: application/json
Body (JSON):
{
    "api_token": "your_api_token_here",
    "postid": your_post_id_here
}
对接其他机器人
QQ机器人
我使用的是 AstrBot 机器人框架 对接的QQ官方机器人 AstrBot安装教程 和使用教程 这里就不赘述 需要的请自行前往仓库获取。

插件代码及仓库地址
https://github.com/naigoucn/astrbot_plugin_ngdown
from astrbot.api.event import filter, AstrMessageEvent, MessageEventResult
from astrbot.api.star import Context, Star, register
from astrbot.api import logger
import requests

@register("article_password", "奶狗", "奶狗WordPress文章密码下载插件", "1.0.0", "repo url")
class ArticlePasswordPlugin(Star):
    def __init__(self, context: Context):
      super().__init__(context)
      self.api_token = "966877"# 在这里配置 API Token
      self.website_url = "https://www.naigou.cn"# 在这里配置网站 URL后面不要加/
   
    # 注册指令的装饰器。指令名为 文章密码。注册成功后,发送 `/文章密码 xxx` 就会触发这个指令,并回复 密码信息
    @filter.command("文章密码")
    async def article_password(self, event: AstrMessageEvent):
      '''这是一个获取文章密码的指令''' # 这是 handler 的描述,将会被解析方便用户了解插件内容。建议填写。
      user_name = event.get_sender_name()
      message_str = event.message_str.strip() # 用户发的纯文本消息字符串
      
      # 解析命令参数
      parts = message_str.split(maxsplit=1)
      if len(parts) != 2:
            yield event.plain_result(f"格式错误,请使用 `/文章密码 文章ID` 格式。")
            return
      
      command, post_id_str = parts
      
      # 检查 post_id 是否为数字
      if not post_id_str.isdigit():
            yield event.plain_result(f"格式错误,请使用 `/文章密码 文章ID` 格式,文章ID必须是数字。")
            return
      
      post_id = int(post_id_str.strip())
      
      if not post_id:
            yield event.plain_result(f"无效的文章ID,请重新输入。")
            return
      
      # 构建API请求数据
      data = {
            "api_token": self.api_token,
            "postid": post_id
      }
      
      # 调用API获取密码
      api_url = f"{self.website_url}/wp-json/ngapi/v1/get-password"
      try:
            response = requests.post(api_url, json=data)
            response.raise_for_status()
            data = response.json()
            
            # 统一返回 API 返回的消息内容
            message = data["data"].get("message", "未知错误")
            yield event.plain_result(f"{message}")
      
      except requests.exceptions.HTTPError as e:
            logger.error(f"HTTP 错误: {e}")
            try:
                data = response.json()
                message = data["data"].get("message", "未知错误")
            except (ValueError, KeyError):
                message = "无法解析API响应"
            yield event.plain_result(f"{message}")
      except requests.exceptions.RequestException as e:
            logger.error(f"请求API时发生错误: {e}")
            yield event.plain_result(f"请求API时发生错误: {str(e)}")

TG机器人

部分框架提供对接其他平台的功能 参考QQ机器人的对接方式

文件下载夸克网盘UC网盘GitHub
转载:https://www.naigou.cn/681.html
页: [1]
查看完整版本: 告别复杂配置!密码下载+多平台机器人,一键搞定