Skip to content

Bot de twitter escrito en python que publica información sobre as horas de sol que obtén de meteogalicia.

Notifications You must be signed in to change notification settings

dinisinho/xasellesnotaaosdias

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

xasellenotaaosdias

Bot de twitter e mastodon escrito en python, que descarga diariamente os datos das horas de sol que fornece meteogalicia a través da súa API.

Requerimentos:

requirements.txt

API MeteoSIX de Meteogalicia

Podes atopar a documentación desta API aquí: https://www.meteogalicia.gal/datosred/infoweb/meteo/proxectos/meteosix/API_MeteoSIX_v4_gl.pdf Para utilizala é necesario unha clave, pero é gratuíta. Só é necesario enviar un correo a administracion-web.meteogalicia@xunta.gal solicitándoa. Esta configuración débese incluír no ficheiro de configuración

API de Twitter

Utiliza a Api V2 de twitter con oauth1. É necesario obter os token de acceso en https://developer.twitter.com/.

API de Mastodon

A través do módulo de python Mastodon utiliza a API de Mastodon para facer as publicacións.

Execución

Para a execución completa do programa executarase o ficheiro main.py, que crea un "bucle infinito" e utiliza schedule para a execución puntual das diferentes funcións que crean os tweets.

datos.py

A clase Arquivo é a encargada de descargar os datos e gardalos na base de datos. Tamén a que nos facilita os datos cando os queremos consultar.

publicador.py

A clase Info é a que se encarga de crear os tweets e os toots e publicalos. Nela realízase tamén a comprobación de se é hora de publicar o tweet do nacemento, do mediodía ou do pór do sol.

Base de datos

Utilízase unha base de datos sqlite. O lugar no que se almacene hai que indicálo no parámetro BD do ficheiro de configuración. É necesario crear a seguinte táboa:

CREATE TABLE "pordosol" (
	"dia"	TEXT NOT NULL,
	"amencer"	TEXT NOT NULL,
	"mediodia"	TEXT NOT NULL,
	"anoitecer"	TEXT NOT NULL,
	"duracion"	TEXT NOT NULL,
	PRIMARY KEY("dia")
)

Instalación (docker):

Construír a imaxe:

    docker build -t xasellesnotaaosdias-imaxe .

Contedor con opcións de exemplo

    docker run -d --name xasellesnotaaosdias-contedor  -e MGZ_TOKEN='XXXXXXX' -e TWITTER=true -e T_CONSUMER_KEY='XXXXX' -e T_CONSUMER_SECRET='XXXXX' -e T_ACCESS_KEY='XXXXX' -e T_ACCESS_SECRET='XXXXX'  xasellesnotaaosdias-imaxe

Variábeis que acepta

TWITTER : true/false # Se queremos habilitar a publicación en twitter. Por defecto false
MASTODON: true/false #Se queremos habilitar a publicación en mastodon. Por defecto false
TW_BEAREN_TOKEN : Bearen Token de Twitter # Obrigatorio se temos twitter habilitado
TW_API_KEY : Api Key de Twitter # Obrigatorio se temos twitter habilitado
TW_API_KEY_SECRET : Api Key Secret de Twitter # Obrigatorio se temos twitter habilitado
TW_ACCESS_TOKEN : Access Token de Twitter # Obrigatorio se temos twitter habilitado
TW_ACCESS_TOKEN_SECRET : Access Token Secret de Twitter # Obrigatorio se temos twitter habilitado
M_ACCESS_TOKEN : Access token de Mastodon # Obrigatorio se temos mastodon habilitado
M_API_BASE_URL : Url da instancia de Mastodon. # Por defecto https://bots.automatica.dev
DB : Ruta ao ficheiro que contén os datos. # Por defecto data/datos.db
MGZ_TOKEN : Token para acceder á URL de Meteogaliza.  # Obrigatorio
MGZ_URL : Url de metegaliza. # Por defecto https://servizos.meteogalicia.gal/apiv4/getSolarInfo
MGZ_LOCATIONID : Id da localización dos datos de Meteogaliza. # Por defecto 42985 (Arzúa)
HORA_DESCARGA : Hora á que queremos que se faga a descarga dos datos. # Por defecto 00:00
HORA_RESUMO_DIARIO : Hora á que queremos que se publique o resumo diario. # Por defecto 22:45
HORA_RESUMO_SEMANAL : Hora á que queremos que se faga o resumo semanal. # Por defecto 12:15

About

Bot de twitter escrito en python que publica información sobre as horas de sol que obtén de meteogalicia.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published