Closed anapaulagomes closed 1 year ago
cc @sheory talvez a gente possa adicionar os detalhes da outra aqui ou mergear essas duas issues em uma só. O que acha?
@anapaulagomes pode ser!!
@anapaulagomes O notifiers tem uma lista de providers e o discord nao esta la, entao a implementacao sera diferente da que tem hoje no telegram. E quando nao esta na lista ele dispara um erro:
elif strict:
raise NoSuchNotifierError(name=provider_name)
Fiz uma poc para mostrar como da pra fazer sem o notifiers usando o post do proprio requests:
import requests
from spidermon import Action
class DiscordNotification(Action):
def run_action(self):
response = {\
"inclusoesContrato": "sim",
"alteracoesContrato": "sim",
}
data = {
"content": get_message_about_retrieved_city_council_data_discord(response)
}
url = f"https://discord.com/api/webhooks/{WEBHOOK_ID}/{WEBHOOK_TOKEN}"
response = requests.post(url, json=data)
return response
def get_message_about_retrieved_city_council_data_discord(response):
if response.get("erro"):
message = f"❌ Comunicação com a Câmara finalizada\nErro: {response['erro']}"
else:
message = (
"✅ Comunicação com a Câmara finalizada\n\n"
"- Contratos\n"
f"novos: {len(response['inclusoesContrato'])}\n"
f"alterados: {len(response['alteracoesContrato'])}\n"
)
return message
DiscordNotification().run_action()
Discord com caso sucesso e caso de erro:
O que sugere?
O Spidermon já tem uma implementação dessa comunicação com o Discord (fui eu quem fiz 😂), então seria que nem a que temos hoje pro Telegram. Tem que ver quais as variáveis de ambiente precisa configurar e a mensagem, só isso. O link tá na descrição dessa issue. Qualquer dúvida me avisa!
Ahhh, boa. Nao tinha entendido direito.
Atualmente fazemos essa notificação no Telegram. Seria bom ter essa mensagem no Discord e centralizar mensagens de erro e raspagem por lá.
Começamos aqui https://github.com/scrapinghub/spidermon/pull/280 mas fechamos o PR esperando implementação no Spidermon. Agora já está disponível por lá: https://spidermon.readthedocs.io/en/latest/howto/configuring-discord-for-spidermon.html