Eliminar main.py
This commit is contained in:
104
main.py
104
main.py
@@ -1,104 +0,0 @@
|
|||||||
import requests
|
|
||||||
import discord
|
|
||||||
from discord.ext import commands
|
|
||||||
from discord.ext import tasks
|
|
||||||
import secrets
|
|
||||||
import time
|
|
||||||
import xmltodict
|
|
||||||
|
|
||||||
intents = discord.Intents.all()
|
|
||||||
allowed_mentions = discord.AllowedMentions(everyone = True)
|
|
||||||
|
|
||||||
bot = commands.Bot(command_prefix="$", intents=intents, allowed_mentions=allowed_mentions)
|
|
||||||
|
|
||||||
url = "https://www.infodefensa.com/sitemap/lastarticles"
|
|
||||||
r = requests.get(url)
|
|
||||||
xml = xmltodict.parse(r.text)
|
|
||||||
ultimaurl = xml['urlset']['url'][0]['loc'] #Guarda la última url del xml
|
|
||||||
#viejoxml = xml['urlset']['url'][0]['loc'] #Guarda la primera url del xml al encender el bot
|
|
||||||
|
|
||||||
|
|
||||||
@bot.event
|
|
||||||
async def on_ready():
|
|
||||||
print(f"Bot vivo! \nUsuario: {bot.user}")
|
|
||||||
await bot.user.edit(username="Pregonero")
|
|
||||||
await bot.change_presence(
|
|
||||||
status=discord.Status.online,
|
|
||||||
activity=discord.Activity(
|
|
||||||
type=discord.ActivityType.playing,
|
|
||||||
name="Pregoneando"))
|
|
||||||
await send_log(f"hora de inicio: {time.ctime(time.time())}")
|
|
||||||
mandar_noticia.start()
|
|
||||||
|
|
||||||
|
|
||||||
async def send_log(msg): #Mandar log
|
|
||||||
channel = bot.get_channel(secrets.IDcanalLogs) #Canal al que se envía el log
|
|
||||||
await channel.send(msg)
|
|
||||||
|
|
||||||
|
|
||||||
@tasks.loop(minutes = 5) #Mandar noticias
|
|
||||||
async def mandar_noticia():
|
|
||||||
global ultimaurl
|
|
||||||
|
|
||||||
try:
|
|
||||||
channel = bot.get_channel(secrets.IDcanalNoticias) #Canal al que se envía el mensaje
|
|
||||||
|
|
||||||
r = requests.get(url)
|
|
||||||
xml = xmltodict.parse(r.text)
|
|
||||||
urls = [u['loc'] for u in xml['urlset']['url']] #Lista de todas las URL
|
|
||||||
|
|
||||||
nuevas = []
|
|
||||||
for loc in urls:
|
|
||||||
if loc == ultimaurl:
|
|
||||||
break
|
|
||||||
nuevas.append(loc)
|
|
||||||
|
|
||||||
if nuevas: #Si el array no está vacío
|
|
||||||
await channel.send(f"Atención <@&{secrets.IDrol}> hay nuevas noticias:") #Luego hay que cambiar el rol
|
|
||||||
for loc in reversed(nuevas): #Recorre el array hacia atrás para mandarlas en orden.
|
|
||||||
await channel.send(f"\n{loc}")
|
|
||||||
ultimaurl = urls[0] #Actualizamos la url vieja
|
|
||||||
except Exception as e:
|
|
||||||
await send_log(f"Error: ```{e}```")
|
|
||||||
|
|
||||||
|
|
||||||
@bot.command()
|
|
||||||
async def noticias(ctx):
|
|
||||||
rol = ctx.guild.get_role(secrets.IDrol)
|
|
||||||
user = ctx.author
|
|
||||||
|
|
||||||
if rol in user.roles:
|
|
||||||
await user.remove_roles(rol)
|
|
||||||
await ctx.send(f"Entendido {user.mention}, ya no recibirás las noticias", delete_after=10)
|
|
||||||
else:
|
|
||||||
await user.add_roles(rol)
|
|
||||||
await ctx.send(f"Entendido {user.mention}, ahora recibirás las noticias", delete_after=10)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#@tasks.loop(minutes = 5) #Mandar noticias
|
|
||||||
#async def mandar_noticia():
|
|
||||||
# global viejoxml
|
|
||||||
|
|
||||||
# try:
|
|
||||||
# channel = bot.get_channel(secrets.IDcanalNoticias) #Canal al que se envía el mensaje
|
|
||||||
|
|
||||||
# r = requests.get(url)
|
|
||||||
# xml = xmltodict.parse(r.text)
|
|
||||||
# nuevoxml = xml['urlset']['url'][0]['loc'] #Guarda la primera url del xml
|
|
||||||
# if nuevoxml != viejoxml: #Compara las url
|
|
||||||
# await channel.send(f"Atención <@&{secrets.IDrol}> hay una nueva noticia:\n{xml['urlset']['url'][0]['loc']}") #Luego hay que cambiar el rol
|
|
||||||
# viejoxml = nuevoxml #Actualizamos la url vieja
|
|
||||||
# except Exception as e:
|
|
||||||
# await send_log(f"Error: ```{e}```")
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
bot.run(secrets.TOKEN)
|
|
||||||
Reference in New Issue
Block a user