最愚蠢的irc bot

2021-03-30 04:54:49

我是IRC权力用户,在过去的10年左右的10年以上的10次网络上有200多个频道闲逛。因为IRC是标准化和简单的,因为IRC爱好者的常见性是创造机器人。在我闲逛的一个社会信息中,我们在过去的6年里度过了逐渐建立了世界上最愚蠢的IRC机器人:狂犬病。

出于一开始,虫是高度精神分裂症。虽然它呈现为Asingle Bot,但实际上是一个与7个独立机器人的连接。在一点时,这个数字较高 - 很多,而且很多是11 - 但是一些机器人被整合。

&lt; @ sircmpwn&gt; .bots&lt;蠕虫&gt;自2017年以来为文本/ HTML提供服务,您真实地[&#34; PS&#34;]获取命令列表,请尝试“.help`&lt;蠕虫&gt;减去&#39;包裹跟踪BOT R10.B563ABC(建于2020-06-06T12:02:13z,https://git.sr.ht/~minus/parcel-tracking-bot)< vlowy>减去&#39;骰子BOT R16.498A0B8(建于2020-02-04T20:16:14Z,https://git.sr.ht/~minus/dice-irc-bot)< vlowy>通过错误溢出设计和缓冲区的任意代码执行,JSBOT检查&lt;蠕虫&gt; Radiobot来自互联网,以1-800-GUD歌曲为1-800-GUD歌曲获取倾听请求; URLBOT:直接将媒体MOE直接到您的眼球&lt;蠕虫&gt; o / sircmpwn让我这样,所以他不会忘记狗屎

这些机器人为信道构件提供了各种特征,例如用于封存的包裹,用于递送,为我们的专用互联网无线电请求歌曲,读出TheChannel中提到的Mimetypes和URL的标题,或将查询送入Wolfram alpha中。

&lt;蠕虫&gt;现在播放:8369492小さき者への赎罪のソナタソナタソナタproject料(4m42s flac)&lt;蠕虫&gt;现在在玩:1045361アキノサクラ来自魔法时刻(5m0s flac)#live♥减去&lt;蠕虫&gt;现在播放:F0B1CB3 FORVERMOR FOURFFOFFOFFOFORE DE TOUHOU 3(4M9S FLAC)♥HUMMER12007&lt;蠕虫&gt;现在起:Moeru San Shimai由Iwasaki Taku从Tengen Toppa Gurren Lagann原声大碟 - CD01(3M3s Flac)&lt;蠕虫&gt;现在玩:AC1A17E REBELLION ANTHEM来自Rebellion Anthem(5M15S MP3)♥减去&lt;蠕虫&gt;现在玩:A5ab39a通过从Aki-秋中获取戒指 - (4m38s flac)♥减去

去年的引入了一个真正愚蠢的机器人的事情真的起飞了:JSBOT。此机器人添加了.js命令(使用Fabrice Bellard的QuickJS)表达式,并向频道发送其终止结果。

但是,我们很快意识到,我们有效地创建的是一个与IRC相关的持久性Javascript环境。这使得可以以可想而知的方式更实用的方式提供更多IRC机器人:通过写入javascript语句,一次一行,进入IRC消息,并希望ITWorks。

由Bryancantrill的启发,每次录制记录“fuck”的一个“功能”,在频道中使用。然后,每当有人说“WTF”时,佩特布利地通过打印录制的消息来提供“Fuck”一词的使用示例。这是它的制作方式:

&lt; sircmpwn&gt; .js让wtf = [];&lt;蠕虫&gt; =&gt; undefined&lt; sircmpwn&gt; .js上(/他妈的/,msg =&gt; wtf.push(msg.text))&lt;蠕虫&gt; =&gt; 25&lt; sircmpwn&gt; .js on(/ ^他妈的$ /,msg =&gt; msg.reply(wtf [math.floor(math.random()* wtf.length)]))))))))&lt; wormy&gt; =&gt; 26.

这是每当有人说“foo ++”或“foo-”时记录的那个记录,并且守门员的分数:

.js上(/ ^([a-za-z0-9 _] +)(\ \ + + | - )$ /,(msg,thing,op)=&gt; {if(typors] == =&#34;未定义的&#34;)分数[事情] = 0;分数[事情] + = op ===&#34; ++&#34;?1:-1; msg.reply(`$ { thing}:$ {scores [thing] }`)}); js on(/ \。得分(。*)/,(msg,项目)=&gt; msg.reply(得分[项目])); js让最差错=()=&gt; Object.entries(得分).sort((a,b)=&gt; a [1] - b [1])。切片(0,5).map(s =&gt;`$ {s [0]}: $ {s [1]}`).join(&#34 ;,&#34;); js let best =()=&gt; Object.entries(分数).sort((a,b)=&gt; b [1] - a [1])。切片(0,5).map(s =&gt;`$ {s [0]}: $ {s [1]}`).join(&#34 ;,&#34;); js on(/ ^。最糟糕$ /,msg =&gt; msg.reply(最糟糕的())); js在(/ ^。最佳$ /,msg =&gt; msg.reply(最好()));

在可怕的单衬框中编写的其他“功能”包括SI单元转换,重写不良URL(EGMWIKIPEDIA.ORG =&gt; en.wikipedia.org),回答“愤怒的狗屎”,“\ \(ツ)_ /“,给出明显的回应”让我成为一个三明治“。

最终发生了我们有两次愚蠢的IRC机器人储存了两次愚蠢的机器人,而是他们的代码,在一些服务器上的一个长期生命的过程中。一段时间,这是添加的答案“不要重启此服务器Kthx“Tothe Motd,但最终我们做了一些魔法废话,使某些variablessistent:

让persistent = {};函数writepersistent(){让fd = std。打开(&#34; persist.json&#34;,&#34; w&#34;); FD。 Puts(JSON。stryify(持久性)); FD。关闭 (); }让persist_handler = {set :( obj,prop,val)=&gt; {obj [prop] = val; Writepersistent(); },};让p = std。 loadfile(&#34; persist.json&#34;); if(p!== null){persistent = json。解析(p);目的 。键(持久性)。映射(key =&gt; {ver proxy = new proxy(持久[key],persist_handler);持久[key] =代理;导出[key] =代理;});出口。 persist =(姓名,obj)=&gt; {让Proxy = New Proxy(obj,persist_handler);持久[名称] =代理; Writepersistent();返回代理; };

无论如何,这个故事没有道德。 我们只有一个愚蠢的IRC BOT,我会和你分享。 如果您想要一个为您的OWNCHANNEL提供愚蠢的IRC BOT,请在Sourcehut上提供JSBOT。 我非常忘记它并对后果的任何责任倾向。