0

这对我来说很难解释,甚至更难以想象我将如何做到这一点,因为我不知道使用 Java 和 C# 与网站进行通信的界限,所以如果我在描述这个过程,我很抱歉。

基本上,我正在为www.plug.dj制作一个“机器人” 。这个机器人能够执行命令,例如踢用户、禁止用户、发送聊天消息、删除聊天消息、说随机的事情等。截至目前,它由一个简单的单文件 JavaScript 代码提供支持,拥有大量的听众以及使用 Plug.dj API 处理它们的回调。这都是由 JS 设计的——在后端,我认为 Plug.dj 是由 Python 驱动的,我可能是错的。

无论如何,我想做的是在 JS 以外的语言上创建这个机器人。它真的很基本,而且不是超级强大,并且有一些东西,比如与数据库通信,而我想实现这些东西是 JS 不可能/不方便的。我只想知道这是否可能,如果可以,我应该从哪里开始寻找?

我更喜欢Java或C#之类的语言。如果您需要了解更多信息才能回答此问题,请告诉我!我想开始研究这个,我认为学习如何使用 Java/C#/whatever 与网站进行通信会很有趣。

4

3 回答 3

2

如果botjavascript 在“他们的”服务器上运行,那么没有简单的解决方案。他们提供了一种在他们的服务器上运行“你的”javascript 的机制,但很可能他们不支持其他语言。(找出答案的唯一方法是问“他们”)。假设答案是“否”,您需要调查是否可以在客户端代码中实现“机器人”的功能;例如,您使用 Java 或 C# 或其他方式从头开始实现的自定义客户端。这是一个很大的“如果”……因为只有当他们在其外部 API 中公开您需要的服务器功能时,它才会起作用。

OTOH,如果botjavascript 在“您的”服务器上运行,那么您应该能够更改它以支持其他语言。(虽然这不一定很容易......)


我的建议是深呼吸……并坚持使用 Javascript。我们都必须使用我们认为不“有趣”的语言。

于 2012-12-18T01:44:18.763 回答
0

老实说,如果您需要在客户端中运行它,我会将其保留在 javascript 中。

如果您需要进行数据库调用,您可以在其间引入一个 Web 服务层,您可以在该层之间进行与数据库交互的 AJAX 调用。

我认为您认为 javascript 是基本的并且不是很强大的看法并不是一个很好的看法。它们是当今仅使用 javascript 和 HTML5 构建的非常复杂的应用程序。您可能只需要开始查看诸如backbone.js、underscore.js 和类似的库,这些库可以帮助您提供更高级的代码组织功能。

但是,如果您正在考虑构建个人客户不会在其浏览器中安装的东西,而只是在自动管理中与网站交互,那么您当然可以用您喜欢的任何语言建立自己的 Web 服务交互使用他们的 API 并执行管理任务。

于 2012-12-18T01:37:37.900 回答
0

如果他们提供了一个运行客户端的 JavaScript 库,它似乎很可能会通过 HTTP 与服务器通信。因此,您应该可以分析该库及其调用以对服务器 API(这将是 HTTP 调用)进行逆向工程,并以您选择的语言重新实现它。

查看代码bot.js

https://github.com/backus/Plug.DJ-Javascript-Chatbot/blob/master/bin/bot.js

似乎一切都归结为对他们的 API 对象的调用,例如API.getDJs()API.getWaitList()等等。如果你能确定这个 API 对象是如何工作的,那么你可能能够进行逆向工程和重新实现。

于 2012-12-18T02:05:53.530 回答