Это мой код: (я использую python 3.7)
import discord
import random
import json
import asyncio
from importlib import import_module
from importlib import reload
class MyClient(discord.Client):
async def on_ready(self):
print('Logged in as')
print(self.user.name)
print(self.user.id)
print('------')
activity = discord.Activity(name='for someone to hug!', type=discord.ActivityType.watching)
await client.change_presence(activity=activity)
async def on_message(self, message):
# we do not want the bot to reply to itself
if message.author.id == self.user.id:
return
with open("Bobby\code\Bobby\json\on_message.json") as json_file:
data = json.load(json_file)
for key in data["command"]:
with open("Bobby\code\Bobby\json\settings.json") as json_file2:
data2 = json.load(json_file2)
cmd = data2["settings"]["prefix"]+key
if message.content.startswith(cmd):
counter = 0
async for msg in client.logs_from(message.channel, limit=500):
await asyncio.sleep(3)
if msg.content.lower() == message.content.lower():
counter = counter + 1
result = "" + counter
await message.channel.send(result)
else:
for key in data["message"]:
if key in message.content.lower():
counter = 0
for key2 in data["message"][""+key+""]:
if key2 == "channel":
counter = counter + 1
channel = client.get_channel(data["message"][""+key+""]["channel"])
await channel.send(random.choice(data["message"][""+key+""]["messages"]))
if counter == 0:
await message.channel.send(random.choice(data["message"][""+key+""]["messages"]))
client = MyClient()
client.run('my token')
Я перепробовал весь свой проект и знаю, что все работает, кроме этой части:
async for msg in client.logs_from(message.channel, limit=500):
await asyncio.sleep(3)
if msg.content.lower() == message.content.lower():
counter = counter + 1
result = "" + counter
Я не понимаю, как работать с logs_from , я также пытался использовать message.channel.history так:
counter = 0
async for m in message.channel.history(limit=500):
await asyncio.sleep(3)
if message.content.lower() == m.content.lower():
counter = counter + 1
result = "" + counter
Также какЯ могу искать в всех истории текстового канала?
Полагаю, у меня что-то не получается с использованием await и async , есть ли у кого-нибудь предложения, чтобы дать мне решение этой проблемы?Должен ли я использовать другой подход для достижения этого?