-
-
Notifications
You must be signed in to change notification settings - Fork 7
Home
[WORKING]
Bienvenidx a la wiki del repositorio mastodon_official_profiles.
Aquí podrás encontrar información sobre el funcionamiento interno del repositorio, la automatización para generar los textos informativos y las tablas, etc.
Realiza un fork y edita el repositorio en tu cuenta, cuando hayas terminado los cambios propón los cambios en este repositorio para que se puedan incorporar.
-
Para añadir nuevas cuentas, edita el archivo ".csv" que corresponda con los datos de cada columna (puedes omitir algunos, pero nombre, cuenta de mastodon, país y fecha de creación son obligatorios). Si no existe aun la categoría o el país en la base de datos, crea el nuevo archivo o carpeta.
-
Puedes colaborar mejorando el código que automatiza la creación de los archivos
README
o mejorando la web de la tabla dinámica -
Si tienes alguna otra aportación siempre será bienvenida, esto trata de construirlo en comunidad.
Los datos se organizan en archivos csv
, cada archivo corresponde a una categoría y estos archivo están agrupados en carpetas de cada país.
Si vas a añadir cuentas a la base de datos, edita los archivos csv
que hay en las carpetas de los países, los otros csv
(MAIN.csv
y MAIN_web.csv
) se regeneran automáticamente uniendo los archivos de cada país.
También puedes crear nuevas carpetas para países o nuevos archivos para categorías, siéntete libre de aportar cualquier cosa.
La automatización permite actualizar los archivos README
del repositorio utilizando los archivos .csv
y otros archivos como CONTRIBUTORS.yml
.
Esta automatización se realiza mediante un script escrito en Python main.py
y con GitHub Actions es posible ejecutar el script en los servidores de GitHub y así mantener todo actualizado al instante cuando, por ejemplo, se acepta un Pull Request. Para ejecutar el script, este repositorio utiliza el workflow run_python.yml
.
Lo que realiza el workflow utilizado en la automatización es:
- Espera a cualquier cambio en el repositorio.
- Ejecuta un sistema Ubuntu.
- Configura el sistema para utilizar Python.
- Añade a la cache los paquetes instalados para reducir el tiempo de ejecución en futuras ejecuciones.
- Instala los paquetes necesarios indicados en el archivo
requirements.txt
. - Ejecuta el script
main.py
. - Crea el commit.
- Escribe los cambios en el repositorio.
A continuación se muestra el código completo del workflow.
name: Generate MAIN.CSV and README
on:
push:
branches: [ main ]
workflow_dispatch:
permissions:
contents: write
jobs:
build:
runs-on: ubuntu-latest
steps:
# Check out repository under $GITHUB_WORKSPACE, so the job can access it
- uses: actions/checkout@v3
# Run using Python 3.11
- name: Set up Python 3.11
uses: actions/setup-python@v4
with:
python-version: '3.11'
cache: 'pip'
architecture: 'x64'
# Cache dependencies. From:
# https://github.com/actions/cache/blob/master/examples.md#python---pip
- uses: actions/cache@v3
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
restore-keys: |
${{ runner.os }}-pip-
# Install dependencies with `pip`
- name: Install requirements
run: |
python3 -m pip install --upgrade pip setuptools wheel
python3 -m pip install -r requirements.txt
# Run Python script
- name: Generate data
run: |
python3 --version
python3 main.py
# Commit files
- name: commit files
run: |
git config --local user.email "[email protected]"
git config --local user.name "jmrplens"
git add -A
git diff-index --quiet HEAD || (git commit -a -m "updated logs" --allow-empty)
# Push changes to repo
- name: push changes
uses: ad-m/github-push-action@master
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
Los archivos que se generan automáticamente son:
- README.md
- README_EN.md
- README_ES.md
- MAIN.csv
- docs/MAIN_web.csv
- .resources/information/DATABASE_PROFILES_NUM_EN.svg
- .resources/information/DATABASE_PROFILES_NUM_ES.svg
Algunas partes de estos archivos se cargan desde la carpeta .resources, como las distintas partes de los README (cabecera, cuerpo, pie, etc).
Las tablas que muestran las cuentas de mastodon en los README
según categoría y países se generan con la función _generate
que se encuentra en el archivo makereadmes.py
.
La tabla de colaboradores que se muestra en los README
se construye a partir de los datos incluidos en CONTRIBUTORS.yml
.
Se estructura del siguiente modo:
-
name
- Nombre -
avatar
- Fotografia a mostrar -
github_user
- Si es usuario de GitHub, al añadir su usuario se mostrará un botón para ver las aportaciones realizadas. -
links
- Una lista de enlaces: web, redes sociales, etc. Se debe escribir el servicio en minúsculas:web
,mastodon
,instagram
, etc.
Es importante mantener la tabulación, sino no se cargarán correctamente los datos. Se puede omitir cualquier dato si no se quiere incluir.
- name: Jaz-Michael King
avatar: https://avatars.githubusercontent.com/u/3419832
github_user: jazmichaelking
links:
web: https://jaz.co.uk/
mastodon: https://toot.wales/@jaz
linkedin: https://www.linkedin.com/in/jmking/
- name: Jorge Saturno
avatar: https://avatars.githubusercontent.com/u/7603402
github_user: jorgesat
links:
web: https://kumulonimb.us/
mastodon: [https://red.niboe.info/@jorge,https://scholar.social/@jorge]
orcid: https://orcid.org/0000-0002-3761-3957
- name: jmrplens
avatar: https://avatars.githubusercontent.com/u/28966312
github_user: jmrplens
links:
web: https://jmrplens.github.io/
mastodon: https://red.niboe.info/@jmrplens
pixelfed: https://pixelfed.social/jmrplens
linkedin: https://www.linkedin.com/in/jmrplens
scholar: https://scholar.google.com/citations?user=9b0kPaUAAAAJ
work: https://www.i3m-stim.i3m.upv.es/research/ultrasound-medical-and-industrial-laboratory-umil/
- name: Lydia Gil
avatar: https://static.mstdn.science/accounts/avatars/109/349/104/436/155/936/original/6811c637ba69ede6.jpg
links:
web: https://socialmediaeninvestigacion.com
mastodon: https://mstdn.science/@TuSocialMedia
linkedin: https://www.linkedin.com/in/lydiamargaritagil
instagram: https://www.instagram.com/tusocialmedia/
twitter: https://twitter.com/TuSocialMedia
facebook: https://www.facebook.com/TuSocialMediaCiencia
La función que procesa estos datos se encuentra en makereadmes.py
, la función se llama _contributors_table
, se ejecuta desde la función _makefooter
que se utiliza en las funciones para crear el README
principal y los README
en inglés y en español.
Como en las anteriores automatizaciones, los archivos README
se generan con una función ubicada en el script makereadmes.py
.
En el caso del README
principal, la función que lo crea es create_main_readme
y los README_xx
en inglés y español los crea la función create_localised_readme
.