请选择 进入手机版 | 继续访问电脑版

QQ登录

只需一步,快速开始

发帖

输入替换插件开源源码 [开源]

[复制链接]
8549149@qq.com 发表于 2022-9-13 04:21:49 | 显示全部楼层 |阅读模式
应用
应用 ID: 输入替换
应用名称: 输入替换插件
应用版本: 1.0
应用类别: 工具 
应用授权: 开源
SDK版本: V8
应用作者: 8549149
联系作者:
交流群:
应用官网: -
本帖最后由 8549149@qq.com 于 2022-10-11 18:00 编辑



开源代码供萌新参考,这个替换功能只能在易语言代码下面才有能替换,有顺序要求,不和其它插件通用



功能:比如说一串指令太长太复杂输入太麻烦,用户只需要设置一个自己记得住的指令就可以代替掉系统里的指令。

例子:比如说

  1. 查快递SF111312241231
复制代码
输入:
  1. 设置指令1=查快递SF111312241231
复制代码




然后机器人就会在用户下次发1的时候判断为查快递SF111312241231


原理:就是用户发设置xx=xxxxx,然后把QQ号保存到配置项里, 如果有人发消息的时候去文件夹里查有没有他的配置项,然后消息内容是否相匹配,如果完全匹配就用他设置的内容替换成新的消息内容。


扩展思路:
如果说想用户自定义指令的话,可以用文本替换的方法,先找用户要替换的文字是否存在,再替换成想要的文字(这个没编)


  1. .版本 2

  2. .程序集 DR应用
  3. .程序集变量 检查周期, 双精度小数型
  4. .程序集变量 分割符号, 文本型
  5. .程序集变量 汇率, 双精度小数型
  6. .程序集变量 保存路径, 文本型
  7. .程序集变量 机器人QQ, 整数型
  8. .程序集变量 夏令时判断, 逻辑型

  9. .子程序 Init, 文本型, 公开, 应用入口
  10. .局部变量 init, DRINIT

  11. ' 请勿在此方法内执行任何额外的业务逻辑

  12. init.置应用信息 (“输入替换”, “输入替换插件”, “1.0.0”, “QQ8549149”, “用户自定义一串指令”)
  13. init.置应用权限 (#DR_事件_个人消息)
  14. init.置应用权限 (#DR_事件_个人添加)
  15. init.置应用权限 (#DR_事件_频道消息)
  16. init.置应用权限 (#DR_事件_成员加入)
  17. init.置应用权限 (#DR_事件_成员退出)

  18. init.置应用事件 (&AppEvent)

  19. 返回 (init.解析 ())


  20. .子程序 AppEvent, 整数型, , 应用事件
  21. .参数 message, 文本型, , 事件内容
  22. .局部变量 e, DRJSON
  23. .局部变量 群号, 文本型
  24. .局部变量 QQ, 文本型
  25. .局部变量 应用目录, 文本型
  26. .局部变量 全_运行目录, 文本型
  27. .局部变量 全_配置文件, 文本型
  28. .局部变量 全_监控配置文件, 文本型
  29. .局部变量 全_时间间隔, 文本型
  30. .局部变量 消息内容, 文本型
  31. .局部变量 回复消息id, 文本型
  32. .局部变量 发送的内容, 文本型
  33. .局部变量 指令, 文本型
  34. .局部变量 指向, 文本型


  35. ' 分配保存配置的文件路径
  36. ' 查看配置文件目录 原来是在drea.exe主程序的目录下,可以自己改一下


  37. 全_运行目录 = 取运行目录 () + “\”

  38. 全_配置文件 = 全_运行目录 + “配置文件.ini”

  39. 全_时间间隔 = 全_运行目录 + “时间间隔.ini”

  40. 全_监控配置文件 = 全_运行目录 + “监控文件.ini”

  41. ' 写一点日志,方便看是什么消息

  42. 写配置项 (取运行目录 () + “\日志\” + 时间_格式化 (取现行时间 (), “yyyy-M-d”, ) + “.log”, 到文本 (取现行时间 ()), “消息”, message)

  43. ' JSON格式化,做出判断

  44. e.解析 (message)


  45. .判断开始 (e.取文本 (“event”) = #DR_事件_应用载入)

  46.     DR.置日志发送 (“应用以载入”, “Info”)

  47.     ' 做一些初始化工作
  48.     ' 耗时操作请使用子线程,严禁主线程内执行!


  49. .判断 (e.取文本 (“event”) = #DR_事件_应用退出)
  50.     DR.置日志发送 (“应用以卸载”, “Info”)

  51.     ' 做一些资源释放工作
  52.     ' 耗时操作请使用子线程,严禁主线程内执行!

  53.     .如果真 (是否已创建 (配置窗口))
  54.         配置窗口.销毁 ()
  55.     .如果真结束

  56. .判断 (e.取文本 (“event”) = #DR_事件_频道消息)

  57.     群号 = e.取文本 (“channelId”)  ' 群号

  58.     QQ = e.取文本 (“userId”)  ' 用户号

  59.     消息内容 = e.取文本 (“messageBody”)  ' 消息内容

  60.     回复消息id = e.取文本 (“messageId”)  ' 不知道有什么作用

  61.     ' 消息过滤 个人的习惯把特殊字符换掉
  62.     消息内容 = 文本_替换 (消息内容, , , , “ ”, “”, 字符 (10), “”, 字符 (13), “”, , , , )

  63.     ' 定义个人数据库位置

  64.     保存路径 = 全_运行目录 + “指令\” + QQ + “.ini”

  65.     ' 输出日志
  66.     ' DR.置日志发送 (“事件:” + e.取文本 (“event”) + “群号:” + e.取文本 (“islandId”) + “频道号:” + e.取文本 (“channelId”) + “用户号:” + e.取文本 (“userId”) + “消息id:” + e.取文本 (“messageId”), “Debug”)
  67.     ' DR.置日志发送 (“群号:” + 群号 + “用户号:” + QQ + 消息内容,“Info”)

  68.     DR.置日志发送 (消息内容, “Info”)

  69.     ' 正式程序

  70.     ' ==========================================================================================================
  71.     ' 测试机器人是否正常发消息

  72.     .如果真 (消息内容 = “测试”)
  73.         发送的内容 = DR.码_艾特 (QQ) + #换行符 + “正常”
  74.         DR.置频道消息发送 (, 群号, 发送的内容, 回复消息id)

  75.         返回 (1)
  76.     .如果真结束


  77.     ' ==========================================================================================================
  78.     ' 判断数据库在不在,有的话匹配个人指令

  79.     .如果真 (文件是否存在 (保存路径) = 真)

  80.         .如果真 (读配置项 (保存路径, 消息内容, “结果”, “”) ≠ “”)

  81.             消息内容 = 读配置项 (保存路径, 消息内容, “结果”, “”)

  82.         .如果真结束


  83.     .如果真结束
  84.     ' DR.置日志发送 (到文本 (文件是否存在 (保存路径)), “edbug”)
  85.     ' DR.置日志发送 (保存路径, “edbug”)

  86.     ' ==========================================================================================================
  87.     ' 储存个人指令

  88.     .如果真 (取文本左边 (消息内容, 8) = “设置指令”)


  89.         指令 = 文本_取左边 (文本_取右边 (消息内容, “设置指令”, , ), “=”, , )

  90.         指向 = 文本_取右边 (消息内容, “=”, , )


  91.         .如果真 (指向 = “” 或 指令 = “”)

  92.             发送的内容 = “格式不正确,例子:设置指令XX=你需要记忆的指令 请注意等号大小”

  93.             DR.置频道消息发送 (, 群号, 发送的内容, 回复消息id)

  94.             返回 (1)

  95.         .如果真结束
  96.         .如果真 (写配置项 (保存路径, 指令, “结果”, 指向) = 假)

  97.             发送的内容 = “保存指令失败”

  98.             DR.置频道消息发送 (, 群号, 发送的内容, 回复消息id)

  99.             返回 (1)

  100.         .如果真结束
  101.         发送的内容 = “保存成功”

  102.         DR.置频道消息发送 (, 群号, 发送的内容, 回复消息id)

  103.         返回 (1)

  104.     .如果真结束
  105.     .如果真 (取文本左边 (消息内容, 8) = “重置指令”)

  106.         .如果真 (文件_删除 (保存路径) = 真)

  107.             发送的内容 = “你所记忆的指令以被重置”

  108.             DR.置频道消息发送 (, 群号, 发送的内容, 回复消息id)
  109.         .如果真结束
  110.         返回 (1)
  111.     .如果真结束

  112. .默认

  113. .判断结束


  114. 返回 (#DR_消息返回_忽略)

复制代码





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

Micro 发表于 2022-9-13 12:22:19 | 显示全部楼层
膜拜神贴,后面的请保持队形~
回复

使用道具 举报

15052628832 发表于 2023-6-23 16:21:29 | 显示全部楼层
.
回复

使用道具 举报

Powered by Discuz! © 2001-2024 Discuz! Team. X3.5

GMT+8, 2024-3-29 10:30 , Processed in 0.060314 second(s), 21 queries Archiver|手机版|梦幻社区 | 鄂ICP备17017983号-3 |

登录切换风格
快速回复 返回顶部 返回列表