学习
实践
活动
专区
工具
TVP
写文章

使用 TypeScript 和依赖注入实现一个聊天机器人

Mongoose和MongoDB,以编写集成测试 设置 Node.js 项目 首先,让我们创建一个名为 typescript-bot 目录。 Discord 控制面板创建应用程序 为了与 Discord API 行交互,我们需要一个令牌。 将你 Discord Bot 添加到你服务器 为了测试我们机器人,需要一台Discord服务器。你可以使用现有服务器或创建服务器。 标准Discord欢迎消息bot添加到服务器后,你应该会看到如上所示消息创建 .env 文件 我们需要一种能够自己程序中保存令牌方法。为了做到这一点,我们将使用 dotenv 包。 如果你服务器通道输入消息,它应该出现在命令行日志,如下所示: 1> node src/index.js 2 3Logged in! 4Message received!

95920

挖洞经验 | 综合三个Bug实现Discord桌面应用RCE漏洞

本文讲述了作者参加Discord众测过程,通过多个bug综合利用,成功发现了Discord桌面应用远程代码执行漏洞(RCE),收获了$5,300奖励。 功能未启用(Missing contextIsolation) 测试Electron架构时,通常我会先检查BrowserWindow API选项,创建浏览器窗口时BrowserWindow API 测试时,我就在想,Electron渲染器(renderer)加载时,怎样任意JS代码执行才会引起RCE? 覆盖掉Discord Electron内置RegExp.prototype.test和Array.prototype.join方法,调用”discord_utils”模块定义getGPUDriverVersions 经过测试,我发现域名sketchfab.com可以iframe嵌入时产生XSS,这是一个简单DOM-based XSS。

97130
  • 广告
    关闭

    热门业务场景教学

    个人网站、项目部署、开发环境、游戏服务器、图床、渲染训练等免费搭建教程,多款云服务器20元起。

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Python实用脚本实践

    如何移动文件夹文件? 4. 如何删除文件夹? 问题解决提示: 1. 利用 os 模块 makedirs 函数,可以指定路径创建文件夹。 本题中,可以先创建好 image 和 document 文件夹,进行后续处理。 2. os 模块 listdir 函数和 for 语句配合,可以完成浏览文件夹中所有文件功能。 (msg) 群退群统计日志 使用 wxpy 文档「看用户是否功能 http://wxpy.readthedocs.io/zh/latest/chats.html#id8 实现机器人群主监测 通过对比新旧成员列表,来发现退群名单和群名单。退群名单:如果旧成员不在成员列表,说明他退群了;群名单:如果成员不在旧成员列表,说明他是加群。 for last in last_members if last not in cur_members] # 获取群名单:如果成员不在旧成员列表,说明他是加群 new_list

    37820

    el-bot & mirai-ts 制作笔记

    你只需要一些自定义配置,而不再需要编写繁琐脚本内容。 但这并不是束缚,插件系统你仍然可以调用机器人所有的上下文,并通过编写插件形式快速实现你想要功能。 照例只是非正经开发日志历程记录。 于是正式开坑 el-bot-js,作为 el-bot js(女子小学生)版本,适合于认为 JavaScript 是世界上最好语言用户。 封装 SDK 消息格式有很多,使用 TypeScript 规范代码要更为合适一些。 类型检查、动态语言,我全都要。 本想 mirai 及其相关项目皆为开源,且未作盈利用途,并无大碍,但却无人可以断言。QQ 相比 Telegram、Discord 等本就没有提供 API 机制,还如此作为,难免有些失望。 堂爱(堂 愛(しんどう あい),Shindo Ai ——「境界彼方」 挑了个好日子,正式 release 了 v1.0.0 Ai,已经基本完成所有功能和类型封装。

    47730

    Wechaty|NodeJS基于iPad协议手撸一个简单微信机器人助手

    背景 我是一名前端,平时也喜欢写技术博客和交朋友,为此我也创建了微信技术交流群和微信公众号,一般我都会在文章下面贴出公众号和我个人二维码,给有兴趣小伙伴们添加微信然后我再拉他们群这些,但是不停同意微信好友验证 使用不到三十行代码,你就可以完成一个能够处理所有信息微信机器人 wechaty Wechaty是适用于微信个人Bot SDK ,可以使用6行 js 创建一个机器人 具有包括linux,Windows 推送作者微信名片 自动聊天 群聊通过 @[机器人]xxx 可以和机器人聊天 私聊发送消息即可聊天 加入群聊自动欢迎 小伙伴加入群聊后自动 @[小伙伴] 发一个文字欢迎 OK,先实现这几个简单功能吧 这些个监听后面的回调,我这里只不过把他们单独拿出去了,也就是上文目录结构那几个文件 这里onMessage是做了一个方法调用,其实还是返回一个回调函数,只不过我们消息监听中用到了bot实例,所以用这种方式传值而已 @ room.say(roomJoinReply, c) }) } } 需求是我们需要管理群聊,只要有新人加入,我们就发一个欢迎词并@他下 当然这些东西还是config

    5.6K40

    NFT如何在Discord上进行营销

    随着 NFT 收藏家、创作者和爱好者中越来越受欢迎Discord 已成为成功进行 NFT 营销必备工具。 6.展示 NFT 艺术和商品—— Discord 服务器创建频道来展示 NFT 艺术和商品,并鼓励社区成员分享他们自己创作。 此外,它可以为您社区成员提供一个机会来分享他们自己 NFT 创作,并有可能吸引客户参与他们自己工作。 首先, Discord 服务器创建专用频道来展示 NFT 艺术和商品。 以下是 Discord 服务器创建 NFT 交易市场一些步骤: 创建专用频道: Discord 服务器创建一个专门用于 NFT 交易频道。 推广渠道:通过 Discord 服务器中进行推广,确保您社区成员了解 NFT 交易渠道。您可以常规聊天中发布消息创建单独公告,让每个人都知道该频道可用于交易。

    8130

    ISUX「五月」行业设计趋势速递

    8、Hoome教你降低发消息路径 Hoome消息列表处,长按直接给对方发语音。消息列表底部也可以直接发消息,同步到自己动态。 Snapchat也有类似的简化路径。 现实开始慢慢撕裂,你脚下地面开始摇晃时,一切都变得疯狂起来。 连击+屏幕震动+五彩纸屑 输入框进行连续输入时,你将会触发计数器、五彩纸屑,输入框也会伴随持续震动。 一直连续COMBO让你感觉如同游戏般聊天,并且可在输入时设置可人群欢呼音效反馈,让氛围更浓郁。 14、Discord有趣新功能介绍广告 Discord新版本里语音房支持文字聊天了,功能上没有太多亮点,但他们油管上发布介绍视频让人眼前一亮。 APP之前是一个基于游戏兴趣Dating APP,而今年更新2.0版本后,加入了叫Kippoverse虚拟互动场景。用户可以使用自己创建虚拟形象,地图上和其他玩家互动。

    19930

    第20篇-不和谐如何索引数十亿条消息

    每月有数百万用户Discord上发送数十亿条消息。一种搜索历史记录方法迅速成为我们构建最受欢迎功能之一。让我们搜索吧! 组成部分 文档被大量索引时,Elasticsearch喜欢它。这意味着我们无法为实时发布消息编制索引。取而代之是,我们设计了一个队列,其中工作人员单个批量操作抓取一堆消息并将它们编入索引。 分数随着每次分配而增加,并且Elasticsearch索引每条消息也都有可能增加其Shard分数。随着分片中获得更多数据,它们被分配给Discord服务器可能性就较小。 暴露给团队其他成员API表面积也很小,因此,如果确实需要将其转移到它自己服务,则可以轻松地将其包装在RPC层某个时候,我们将启动更多集群,以便Discord服务器被索引到它们上(这要归功于我们加权分片分发系统)。我们现有的集群上,随着向集群添加更多数据节点,我们将需要限制主合格节点数量。

    30200

    用 Python 玩微信,机器人陪你唠嗑

    安装完成后代码编辑工具 Pycharm 中导入 wxpy 库。 登陆微信 直接调用 wxpy 库里 Bot() 方法就会弹窗微信二维码,扫描即可登录微信。 response = json.loads(r)['text'] return response 创建话痨机器人 wxpy 提供了注册消息方法,可以简单将各种类型消息注册并自定义处理方式。 注册消息使用简单 @bot.register() 方法。 今天讲只是 wxpy 库冰山一角功能,还有很多有意思功能: 发送文本、图片、视频、文件; 通过关键词或用户属性搜索 好友、群聊、群成员等; 获取好友/群成员昵称、备注、性别、地区等信息; 加好友 ,建群,邀请入群,移出群等等; 这个小机器人我放在我公众号后台和技术交流群里了,欢迎大家随时群体验去撩 TA。

    1.3K50

    重磅升级 | 拥抱娱乐协作新姿势,IM全新上线社群功能

    和贴吧一样,Discord上有无数兴趣社群和话题,但用户Discord可以实时交流、讨论,会话碰撞出更多内容火花。 与普通群聊不同,Discord你不必担心话题跳跃、讨论混乱、融入困难,你可以通过频道随心所欲地决定聊什么、怎么聊。服务器是聚集了无数相同兴趣者大世界,而频道则是其中垂直细分一个个小空间。 超大成员容量、“社群-分组-话题”层级结构、流畅消息互动、强大定制管理……这些独特能力让Discord引领这种即时通信社群模式兴趣交友、游戏社交、粉丝运营、组织管理等场景下优势明显。 学校、小区、公司、街道社区这样组织可以将所有成员拉入一个社群,再通过“社群-分组-话题”层级结构进一步细分关系结构,快速实现成员消息沟通网络。 搭配多级缓存能力,百万人超大群也能为用户提供与常规群组一致消息互动体验。

    40920

    【Rust日报】 2019-05-18:使用 Rust 來加速 Elixir 服務1100萬用戶

    不可变数据结构双刃剑是通过采用现有数据结构和操作以及创建全新数据结构来对变动建模。 这意味着有人加入服务器(内部称为公会)并拥有100,000名成员成员列表时,他们必须构建一个包含100,001名成员列表。 BEAM VM非常快,并且每天都在变得更快。 因此团队erlang和elixir提供各种高性能数据结构寻找解决办法,试过MapSet、List、OrderedSet到他们自己实现SortedSet,终于找到了一个解决方案,但是超过250,000 当前高级原型已经在所有最常见框架上显示了JS解析改进了30%-50%,只需更改格式,我们相信我们可以进一步提高这一改进。 编码可以构建为webdev工具链一部分,或者由代理或CDN注入,因此可以不更改原始网站情况下自动提高最终用户性能。 此编码目前JavaScript TC39标准化过程

    53310

    ChatGPT 相关项目介绍

    本文持续更新欢迎推荐好用项目、工具、视频、教程背景介绍自从 openai 2022 年 11 月首次开放 chatgpt 网页应用,到写作本文今天,短短 3个月,相关的话题和项目可以说是层出不穷 ;ChatGPT for Discord Bot;QQ botwukong-robot3.9k插件类这不是一个专门针对 chatgpt 开发插件,不过如果你想把 chatgpt 变成你音对话机器人/ 其他相关相关 AI 工具,或者 AI 工具收录站、导航站;仍在收集更新欢迎推荐人工智能工具目录,几乎包括现有所有 AI 工具Best AI Tools:大量 AI 工具汇总AI ToolHunt ,比如 17yongai;aigclist 等等中文工具收集国内可使用 公众号、程序、网页应用或 app;仍在收集更新欢迎推荐网页应用 https://chinagpts.com,无需翻墙,每日免费五次问答 网页应用icchat 不支持会话,贵在免费媒体学习资源收集相关教程、视频、公众号 等等;仍在收集更新欢迎推荐一个B 站ChatGPT视频合集一个蛮不错博主 ChatGPT 相关抖音视频合集

    633140

    Discord该出现在事件反应工具箱里吗?(IT)

    通信中断潜在可能意味着团队成员可以使用多种工具和途径,这可能意味着快速恢复通信和花大量时间设法恢复正常业务之间区别。考虑到这一点,将协作工具Discord添加到团队工具箱一个非常规选择。 例如,Discord协作是流畅且无缝,您可以异步文本交换同时进行语音通信。 它是免费且易于使用,您可以几秒钟内加入成员获得对平台访问权限后,用户可以自由地搜索现有服务器或启动它们自己服务器。团队成员甚至可以访问Discord机器人,服务器发生更改或更新时,该机器人会自动通知他们或其他人。 程序中使用Discord 通信服务器内部进行,服务器可以包含多个“通道”,这种方法非常灵活。 例如,您可以为安全运营中心,IT部门或在事件期间可能需要协作任何用户组创建服务器。 您可能已经看到了此功能强大功能。 例如,共享诸如代码,数据包捕获,样本或日志数据之类工件之后,团队成员可以立即加入语音通道以讨论这些样本。 他们可以工具建立私人聊天会话,以单独工作。

    76640

    Wechaty Plugin|实现一个微信机器人几行代码即可

    (EventLogger()) RoomConnector 这个插件比较有意思,连接房间,把任何房间信息广播到所有其他房间,因为微信群上限是500人,为此可能很多公众号大大会创建多个群聊,但是它们消息是不互通 ,此项有默认值,请看下文示例 replyDone String 移除成功提示,字符串类型,默认成功时返回done replyNoPermission String 无权限移除成员时机器人回复,即一个不在 "] success String|Function 打卡成功提示该用户一句话,可为字符串类型,也可以是函数类型,函数类型时,有一个参数data,即当前群成员本地数据库数据对象,函数最终需返回一个字符串 ,此项默认值请看下文示例 repeat String|Function 重复打卡时提示该用户一句话,可为字符串类型,也可以是函数类型,函数类型时,有一个参数data,即当前群成员本地数据库数据对象 ,群聊监听消息作为关键字,触发列表中标题关键字或相似,返回对应链接或解答 可视化管理面板 目前对机器人所有的更改都是直接在代码,想做一个可视化管理系统,管理机器人并拥有可视化数据页面方便我们随时随地查看群数据

    53120

    用JavaScript打造AI应用-从Nodejs SDK 看DuerOS技能开发

    构建一个DuerOS技能服务,一般如下步骤: 1)DBP(DuerOS Bot Platform)创建并配置技能服务 2)构建基于Nodejs开发环境 3)创建web服务及调用入口 4)编辑具体业务逻辑 编写Bot业务逻辑 最重要,需要创建具体技能服务,实现具体业务逻辑,示例Bot.js 文件组织结构如下: const BaseBot = require('bot-sdk'); class Bot github上bot-sdk-node.js/lib/ 目录下,是JS bot sdk 核心代码,主要是6个文件: Bot.js Certificate.js NLU.js Request.js 看DuerOS技能开发》一文中指出,Session 和浏览器cookie 非常类似,用于客户端和服务器之间传递持久化数据。 Directive 指令实现 DuerOS JS Bot SDK 对DBP协议Directive指令实现了较为完整封装。

    1.4K51

    ISUX「十一月」行业设计趋势速递

    为了使这些聊天内容易于阅读,拥有超过 200 名成员群组现在可以创建主题,每个主题都有独立聊天空间,并支持共享媒体或通知设置。  3、重新设计夜间模式、加入表情包和互动表情  iOS端更新了夜间模式,当你聊天和聊天列表滚动时,消息颜色过渡更平滑,且消息模糊效果更好。  ‍ 新增12个表情,新增学习、睡觉或怀疑态度4个互动表情。可以一对一聊天播放全屏也可以用作表态。  Google并没有将用户未读消息直接罗列,而是利用AI算法从用户体验角度做出以下优化:  1、筛选重要消息:通过Pegasus算法识别每个聊天模式,例如新人欢迎频道会充斥大量介绍类信息,此类信息可能不重要 接入后,用户Discord资料卡添加此应用后,会展示一张功能丰富大卡片。

    14710

    (下部) wechaty 微信机器人源码教程

    推送作者微信名片 ③ 自动聊天 群聊通过 @[机器人]xxx 可以和机器人聊天 私聊发送消息即可聊天 ④ 加入群聊自动欢迎 小伙伴加入群聊后自动 @[小伙伴] 发一个文字欢迎 02 第四 :入口文件 入口文件,也就是我们 src 目录下 index.js 文件 这里做很简单,没有逻辑 首先引入我们包 ? 接着初始化我们bot ? 接下来一段链式调用,监听,启动,完事 ? 这些个监听后面的回调,我这里只不过把他们单独拿出去了,也就是上文目录结构那几个文件 这里onMessage是做了一个方法调用,其实还是返回一个回调函数,只不过我们消息监听中用到了bot实例,所以用这种方式传值而已 如上所示,我们想加好友时,验证消息填写我们指定文字可以自动通过 So,我们从配置文件拿到这个参数,好友请求过来时做一个判断即可 onRoomJoin onRoomJoin,也就是进入房间监听回调 需求是我们需要管理群聊,只要有新人加入,我们就发一个欢迎词并@他下 当然这些东西还是config配置好,在这里拿到就可以 此回调接收三个参数 room 群聊实例 inviteeList 受邀者名单

    2K30

    Kafka消费者组是什么?

    Kafka 为规避传统消息两种模型缺点,引入了 Consumer Group 机制: Consumer Group 订阅多个主题后,组内每个实例不要求一定要订阅主题所有分区,它只会消费部分分区消息 四、消费位移 消费者消费过程要记录自己消费了多少数据,即消费位置信息,Kafka叫:位移(offset)。 Consumer Group触发 Rebalance有三种情况: 组成员数量发生变化,比如有Consumer 实例加入组或离开组,抑或是有Consumer实例崩溃被“踢出”组。 *c”))就表明该Group订阅所有t开头,字母c结尾主题。Consumer Group 运行时,新创建一个满足这样条件主题,那么会触发订阅该主题所有Group 开始Rebalance。 Consumer Group 发生Rebalance 过程:某个 Consumer Group 下有两个Consumer ,比如A和B,第三个成员C加入时,Kafka会触发Rebalance,并根据默认分配策重新分配

    2K30

    扫码关注腾讯云开发者

    领取腾讯云代金券