У меня вопрос к знатокам. Я создаю фоновые задачи для своего бота Discord, и он работает так, как я хотел, но я хотел бы реализовать функцию, которая позволит мне игнорировать данные, которые уже были отправлены. Я использую данные, которые запрашиваются в запросах, поскольку они меняются со временем.
Вот часть моего кода, и он работает по назначению, но я не могу понять, как добавить часть для проверки отправленных сообщений и не повторять ее. Я установил 1 минуту для тестирования, чтобы увидеть, работает ли это, и это изменится позже.
Заранее спасибо
import discord
import requests
import asyncio
import json
from datetime import datetime, timezone
import math
from discord.ext import commands, tasks
from discord.ext.commands import Bot
import discord.utils
from itertools import cycle
client = discord.Client()
status = (['Scraping VATSIM Data','Anyone online?','What can I show you?', 'Check our social media for updates!'])
@client.event
async def on_ready():
change_status.start()
auto_online.start()
# await client.change_presence(activity=discord.Activity(type=discord.ActivityType.watching, name="VATSIM Data!"))
print('We have logged in as {0.user}'.format(client))
@tasks.loop(minutes=1)
async def auto_online():
# send request to vatsim data
t = requests.get('http://cluster.data.vatsim.net/vatsim-data.json').json()
xy = json.dumps(t)
s = json.loads(xy)
channel1 = client.get_channel(692681048798265347)
# Bookins Data Display
utc = datetime.now(timezone.utc)
# Command for displaying ATC online
online_exists = False
for item in s['clients']:
if item['callsign'] in atc:
online_exists = True
embed = discord.Embed(colour = discord.Colour.purple())
embed.set_author(name='VATAdria Online ATC')
embed.add_field(name='Controller',value=item['realname'],inline=False)
embed.add_field(name='Position', value=item['callsign'], inline=False)
embed.add_field(name='Frequency', value=item['frequency'], inline=False)
await channel1.send( embed=embed)```