Replying to Avatar Messe Noire

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 = " nostr:npub1t0e476cmjfd4va9sur7lkh03a69q8trvp88qn73hcdn82re2vq9saelwkp" # 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

Já vai também a chave privada do bot

Reply to this note

Please Login to reply.

Discussion

No replies yet.