【发布时间】:2019-02-12 23:18:14
【问题描述】:
所以我正在制作一个 Discord Bot,当有人在 Twitch.tv 上直播时发布。目前我有一个运行机器人的 Python 程序和一个运行迷你服务器以从 Twitch 服务器(webhook)接收数据的程序。我不确定如何将从服务器接收到的数据传递给 discord 机器人。两个程序必须同时运行。
DiscordBot
import discord
client = discord.Client()
async def goes_live(data):
print(data)
print('Going Live')
msg = '--- has gone live'
await client.send_message(discord.Object(id='---'), msg)
@client.event
async def on_message(message):
if message.author == client.user:
return
message.content = message.content.casefold()
@client.event
async def on_ready():
print('Logged in as')
print(client.user.name)
print(client.user.id)
print('------')
client.run('---')
网络服务器
import web
urls = ('/.*', 'hooks')
app = web.application(urls, globals())
class hooks:
def POST(self):
data = web.data()
print("")
print('DATA RECEIVED:')
print(data)
print("")
return 'OK'
def GET(self):
try:
data = web.input()
data = data['hub.challenge']
print("Hub challenge: ", data)
return data
except KeyError:
return web.BadRequest
if __name__ == '__main__':
app.run()
【问题讨论】:
-
文档的相关部分:Interprocess Communication and Networking。请注意,discord.py 已经使用了
asyncio,所以这可能是一个开始寻找的好地方。 -
您有 2 个选项: 1. 让您的 webhook 服务器发布不和谐消息。 2.(我不推荐使用这种方法,因为它使应用程序更难维护)使用redis/rabbitmq/等发布订阅。不要使用基于进程的方法,因为您将被限制在一台机器上。
标签: python parameter-passing discord discord.py twitch