python 我该如何为Nextcord机器人进行匿名聊天轮盘赌?[已关闭]

uqjltbpv  于 2023-01-29  发布在  Python
关注(0)|答案(2)|浏览(145)

已关闭。此问题需要超过focused。当前不接受答案。
**想要改进此问题吗?**更新此问题,使其仅关注editing this post的一个问题。

昨天关门了。
Improve this question
我想找人帮我做一个匿名聊天轮盘赌:在向聊天机器人发送命令后,它会将您放入一个队列中,以便与任意一个人聊天。2当两个用户被放入队列后,聊天机器人会开始匿名地相互发送消息。3聊天会在一段时间后停止或被命令手动关闭后结束。
谢谢!^.^

jgwigjjp

jgwigjjp1#

这是一个有趣的项目,但是你需要掌握一些技能,并选择合适的工具,但我可以给予你一些提示,我会如何解决这个问题:
1.设置一个数据库并学习如何使用python操作数据,对于像tinydb或sqlite这样的小项目来说是完美的。
1.在数据库中创建一个新行,其中包含第一个用户ID、第二个用户ID和最后一条消息的时间戳列。
1.当连接了第二个用户,并且存在只有一个用户ID的行时,更新添加第二个用户用户ID的行。使用此关联将消息转发给一个用户和其他用户。
4a)当其中一个用户离开对话时,只需删除该行即可。
4 b)定期检查数据库,查看x时间何时过去,并删除该行,关闭会话。
如果你是一个初学者,你应该了解什么是数据库,以及如何正确地使用它之前,试图使一个项目这样...祝你好运!

2nc8po8w

2nc8po8w2#

这很简单。2首先你要做一个命令/startswith,它将一个用户放在一个等待呼叫的队列中。

curr_queue = []

import random

@client.event
async def on_message(message):
  if message.content.startswith('!queue'):
    curr_queue.append(message.author.id)

这将创建一个可以聊天的用户列表。接下来你需要创建一个系统来存储当前的对话。我不能为你做这个,但我建议使用SQLite3数据库来存储对话ID以及user 1和user 2的ID。首先随机选择另一个用户,然后像下面这样存储对话:

#(cont)...
import sqlite3
con = sqlite3.connect('chats.db')
c = con.cursor()
  if message.content.startswith('!chat'):
    if len(curr_queue) <= 2:
      await message.reply('Not enough users to chat with!')
    else:
      c.execute('INSERT INTO Chats VALUES(?,?,?,?)',(#message_id_here,#user1_id,#user2_id,started_time_epoch))

接下来做一个循环来检查时间是否已经过去(你将需要另一个线程)

import time
for i in c.fetchall():
  if i[3] + 300 >= time.time():
    c.execute('DELETE * FROM Chats WHERE ID = (?)',(c[0],))

这只是你必须做的一小部分。如果你是python的新手,我建议你在这之前先开始一个更容易的项目。这个项目对于初学者来说相当困难

相关问题