What is Nostr?
Messe Noire /
npub1q5l…tn38
2025-01-04 16:26:26

Messe Noire on Nostr: Alguém para ver se esse código para que um bot publique as noticias do Gazeta do ...

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
Author Public Key
npub1q5lx4fza7qnaa92xc79ptxjmuzzdu2lmvqc4xv8u96keun5hymrqkrtn38