Alguém para ver se esse código para que um bot publique as noticias do Gazeta do Povo funciona? Segue o código:
import time
import feedparser
from nostr.event import Event
from nostr.key import PrivateKey
# Configuração do Bot
PRIVATE_KEY = " npub1t0e476cmjfd4va9sur7lkh03a69q8trvp88qn73hcdn82re2vq9saelwkp (npub1t0e…lwkp)" # Insira a chave privada do seu bot Nostr
RSS_URL = "https://www.gazetadopovo.com.br/rss/%22 # Feed RSS da Gazeta do Povo
RELAYS = ["wss://relay.damus.io", "wss://nostr-pub.wellorder.net"] # Relays Nostr
# Inicializar chave privada Nostr
private_key = PrivateKey(bytes.fromhex(PRIVATE_KEY))
# Armazenar os IDs dos artigos publicados
publicados = set()
def publicar_nostr(titulo, link):
"""Publica uma nova mensagem no Nostr."""
try:
event = Event(kind=1, pubkey=private_key.public_key.hex())
event.content = f"**{titulo}**\n\nLeia mais: {link}"
private_key.sign_event(event)
for relay in RELAYS:
try:
print(f"Publicando no relay: {relay}")
response = requests.post(relay, json=event.to_message())
if response.status_code == 200:
print(f"Publicado com sucesso no {relay}")
else:
print(f"Erro no relay {relay}: {response.status_code}")
except Exception as e:
print(f"Erro ao publicar no relay {relay}: {e}")
except Exception as e:
print(f"Erro ao criar ou publicar evento no Nostr: {e}")
def checar_rss():
"""Checa novos artigos no feed RSS e publica no Nostr."""
global publicados
feed = feedparser.parse(RSS_URL)
for entry in feed.entries:
if entry.id not in publicados: # Verifica se o artigo já foi publicado
print(f"Novo artigo encontrado: {entry.title}")
publicar_nostr(entry.title, entry.link)
publicados.add(entry.id)
# Loop principal do bot
if __name__ == "__main__":
print("Bot iniciado. Monitorando RSS...")
while True:
checar_rss()
time.sleep(300) # Espera 5 minutos entre as verificações