{"id":15173098,"url":"https://github.com/oscarnovasf/oscarbot","last_synced_at":"2026-01-25T13:05:22.770Z","repository":{"id":173964107,"uuid":"642792142","full_name":"oscarnovasf/oscarbot","owner":"oscarnovasf","description":"Plataforma Drupal 10 para gestionar un bot de comunicación con Twitch y Discord","archived":false,"fork":false,"pushed_at":"2023-07-06T07:37:31.000Z","size":4207,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-22T06:45:50.165Z","etag":null,"topics":["bot","drupal10","php8","twitch","twitch-bot"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/oscarnovasf.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-05-19T11:00:58.000Z","updated_at":"2023-05-20T09:21:32.000Z","dependencies_parsed_at":null,"dependency_job_id":"c6882e83-be19-447e-8e35-e7010adf31c2","html_url":"https://github.com/oscarnovasf/oscarbot","commit_stats":{"total_commits":1,"total_committers":1,"mean_commits":1.0,"dds":0.0,"last_synced_commit":"f71fc32a0faefd7027faac001ee49c14d8ec4d45"},"previous_names":["oscarnovasf/oscarbot"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/oscarnovasf/oscarbot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oscarnovasf%2Foscarbot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oscarnovasf%2Foscarbot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oscarnovasf%2Foscarbot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oscarnovasf%2Foscarbot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/oscarnovasf","download_url":"https://codeload.github.com/oscarnovasf/oscarbot/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oscarnovasf%2Foscarbot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28753412,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-25T10:25:12.305Z","status":"ssl_error","status_checked_at":"2026-01-25T10:25:11.933Z","response_time":113,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bot","drupal10","php8","twitch","twitch-bot"],"created_at":"2024-09-27T10:41:04.658Z","updated_at":"2026-01-25T13:05:22.753Z","avatar_url":"https://github.com/oscarnovasf.png","language":null,"funding_links":["https://paypal.me/oscarnovasf"],"categories":[],"sub_categories":[],"readme":"OscarBot\n===\n\n\u003ePlataforma Drupal 10 para gestionar un bot de comunicación con Twitch y Discord.\n\n[![version][version-badge]][changelog]\n[![Licencia][license-badge]][license]\n[![Código de conducta][conduct-badge]][conduct]\n[![Donate][donate-badge]][donate-url]\n[![wakatime](https://wakatime.com/badge/user/236d57da-61e8-46f2-980b-7af630b18f42/project/9ff3080a-04a6-44c3-b555-ee5eccd9fc21.svg)](https://wakatime.com/badge/user/236d57da-61e8-46f2-980b-7af630b18f42/project/9ff3080a-04a6-44c3-b555-ee5eccd9fc21)\n\n## Instalación\n\n* ### Requerimientos\n  * Es necesario tener instalada la `versión ^2.0` de\n    [Composer](https://getcomposer.org/doc/00-intro.md#installation-linux-unix-osx)\n    o superior.\n  * Es necesario tener instalada la herramienta `jq` para la línea de comandos.\n    [JQ](https://stedolan.github.io/jq/).\n  * Es necesario tener instalada la herramienta `pv` para la línea de comandos.\n    [PV](http://www.ivarch.com/programs/pv.shtml).\n  * Si se quiere poder enviar una url de nuestro proyecto en local con Lando, es\n    necesario instalar y configurar `ngrok` [NGROK](https://ngrok.com/).\n\n* ### Proceso de instalación: Máquina local/servidor\n  * Copiamos el contenido del proyecto en la carpeta raíz de nuestro servidor.\n  * Creamos el archivo `.env` a partir de `.env.example` y establecemos los\n    valores a las variables.\n  * Establecemos el nombre del proyecto en nuestro `composer.custom.json`.\n  * Ejecutamos (desde la raíz) el comando `bash ./scripts/shell/install.sh` y\n    seguimos las instrucciones del instalador.\n\n* ### Proceso de instalación: [LANDO](https://lando.dev/)\n  * Copiamos el contenido del proyecto en una carpeta de nuestra máquina.\n  * Establecemos los valores correctos en el archivo `.lando.yml` para la\n    conexión con la base de datos y el nombre del proyecto.\n  * Creamos el archivo `.env` a partir de `.env.example` y establecemos los\n    valores a las variables.\n  * Establecemos el nombre del proyecto en nuestro `composer.custom.json`.\n  * Ejecutamos `lando start` para montar los contenedores del proyecto.\n\n    \u003e Al usar lando, es recomendable que todos los scripts se ejecuten dentro\n    \u003e del contenedor, salvo que se use `lando drush` o `lando composer`.\n\n* ### Notas sobre LANDO:\n  * Es posible crear un `launch` a través de un alias que nos permita ejecutar\n    lando start y, al mismo tiempo, abrir nuestro proyecto en el explorador web.\n    El alias a crear sería (con drush launch instalado en nuestra máquina):\n\n    ```bash\n      alias launch=\"lando start \u0026\u0026 sleep 5 \u0026\u0026 open $(drush uli -l $(lando info --format json | jq '.[0].urls' | jq -r '.[1]'))\"\n    ```\n\n## Scripts disponibles\n\n* ### Shell\n\n  * #### db.sh\n    \u003e Script para importar/exportar el contenido de la base de datos.\n\n    Admite cualquiera de estos parámetros (sólo uno y obligatorio):\n\n    |Parámetro|Descripción|\n    |---|---|\n    |**im**|Realiza la importación de la base de datos.|\n    |**ex**|Realiza la exportación de la base de datos.|\n\n    \u003e Si se usa lando este comando está disponible como `lando db`.\n\n  * #### deploy.sh\n    \u003e Script para realizar el *deploy*.\n\n    - Realiza un pull de la rama actual.\n    - Importa las configuraciones.\n    - Permite importar la base de datos si se desea (y si existe).\n      (El volcado debe estar en ***./config/db/data.sql***)\n    - Vacía la caché de Drupal.\n\n    \u003e Si se usa lando este comando está disponible como `lando deploy`.\n\n  * #### dev_mode.sh\n    \u003e Script de activación / desactivación de opciones de desarrollo.\n\n    Opcionalmente se le puede pasar uno de estos parámetros (sólo uno):\n\n    |Parámetro|Descripción|\n    |---|---|\n    |**on**|Implica la activación de las opciones de desarrollo.|\n    |**off**|Implica la desactivación de las opciones de desarrollo.|\n\n    \u003e En caso de no indicar parámetro se toma por defecto el valor según el\n    \u003e entorno indicado en `.env`.\n    \u003e Si se usa lando este comando está disponible como `lando dev`.\n\n  * #### initialize.sh\n    \u003e Script para reiniciar el proyecto.\n\n    - Elimina módulos, plantillas, profiles o comandos Drush (contrib).\n    - Elimina el core y la carpeta vendor.\n    - Elimina los archivos de configuración de Drupal.\n    - Elimina composer.lock.\n\n    \u003e Si se usa lando este comando está disponible como `lando initialize`.\n\n  * #### phpcs.sh\n    \u003e Script para comprobar el cumplimiento con el estándar de codificación de\n    \u003e Drupal.\n\n    Admite cualquiera de estos parámetros (sólo uno):\n\n    |Parámetro|Descripción|\n    |---|---|\n    |**install-coder**|Instala las reglas.|\n    |**check-config**|Comprueba que las reglas estén instalados.|\n    |**check-sandbox**|Comprueba la codificación de los módulos 'sandbox'.|\n    |**check-modules**|Comprueba la codificación de los módulos 'custom'.|\n    |**check-module name**|Comprueba la codificación de un módulo determinado.|\n    |**check-themes**|Comprueba la codificación de las plantillas 'custom'.|\n    |**check-theme name**|Comprueba la codificación de una plantilla determinada.|\n    |**check-all**|Equivale a: *check-sandbox* + *check-modules* + *check-themes*.|\n\n    \u003e Si se usa lando este comando está disponible como `lando phpcs`.\n\n  * #### pre_commit.sh\n    \u003e Script para realizar tareas previas al commit.\n\n    - Realiza la exportación de entidades como taxonomías, alias, config_pages,\n      nodos..., todo ello se debe incluir manualmente en el script.\n\n    \u003e Si se usa lando este comando está disponible como `lando precommit`.\n\n  * #### share.sh\n    \u003e Script para generar un tunel y poder compartir nuestro proyecto local\n    \u003e fuera de nuestra red.\n\n    Este script hace uso de [ngrok](https://ngrok.com/) por lo que será necesario\n    crearse una cuenta y configurar el API Key en nuestro entorno local.\n    Al ejecutarse se genera una url que podemos utilizar desde una máquina\n    externa para conectarnos a nuestro sistema.\n\n    \u003e El script usa lando para obtener la url pero no se puede ejecutar dentro\n    \u003e de lando, por lo que no está disponible ningún atajo al comando.\n\n  * #### trans.sh\n    \u003e Script para importar/exportar las traducciones (excepto el inglés).\n\n    Admite cualquiera de estos parámetros (sólo uno y obligatorio):\n\n    |Parámetro|Descripción|\n    |---|---|\n    |**im**|Realiza la importación de las traducciones.|\n    |**ex**|Realiza la exportación de las traducciones.|\n\n    \u003e Si se usa lando este comando está disponible como `lando trans`.\n\n## Módulos incluidos en las diferentes instalaciones\n\n   El listado completo de módulos se puede ver en el archivo\n   `scripts/shell/.variables`\n\n## FAQs\n\n* ### ¿Cómo actualizar el Core de Drupal?\n\n  Este proyecto intentará mantener actualizados todos tus archivos del núcleo de\n  Drupal; el proyecto [drupal/core-composer-scaffold](https://github.com/drupal/core-composer-scaffold)\n  se utiliza para garantizar que los archivos de *scaffold* se actualicen cada\n  vez que se actualiza el núcleo. Si personalizas cualquiera de los archivos\n  *\"scaffolding\"* (comúnmente .htaccess), es posible que debas fusionar los\n  conflictos si alguno de tus archivos modificados se actualiza en una nueva\n  versión del núcleo de Drupal.\n\n  Para actualizar el núcleo de Drupal debes seguir estos pasos:\n\n  1. Ejecuta `composer update \"drupal/core-*\" --with-dependencies` para\n    actualizar el núcleo y sus dependencias.\n  2. Ejecuta `git diff` para comprobar si alguno de los archivos *\"scaffolding\"*\n    ha sufrido cambios.\n    Revisa los archivos y restaura cualquier personalización de\n    `.htaccess` o `robots.txt`.\n\n* ### ¿Cómo especificar una versión concreta de PHP?\n\n  En este proyecto se usa la versión de PHP 7.4 como mínimo\n  (ver [Environment requirements of Drupal 9](https://www.drupal.org/docs/understanding-drupal/how-drupal-9-was-made-and-what-is-included/environment-requirements-of)),\n  pero es posible que al usar `composer update` se actualicen algunos paquetes\n  que un requerimiento superior a PHP 7.3+.\n\n  Para evitar esto puedes indicar en la sección `config` del `composer.json` la\n  versión que quieres usar:\n\n  ```json\n  \"config\": {\n      \"sort-packages\": true,\n      \"platform\": {\n          \"php\": \"7.3.19\"\n      }\n  },\n  ```\n\n* ### ¿Cómo proteger archivos para no ser sobrescritos?\n\n  En algún proyecto nos puede interesar no sobrescribir archivos como el\n  *.htaccess* o el *robots.txt*. Para eso bastará con añadir lo siguiente al\n  archivo `composer.json`:\n\n  ```json\n  \"file-mapping\": {\n      ...\n      \"[web-root]/robots.txt\": false,\n      \"[web-root]/.htaccess\": false,\n      \"[web-root]/.ht.router.php\": false\n  },\n  ```\n\n* ### ¿Cómo aplicar un parche a mi proyecto?\n\n  Para la aplicación de parches se ha instalado la dependencia\n  [Composer Patches CLI](https://github.com/szeidler/composer-patches-cli), con\n  la que podrás instalar un parche con el siguiente comando:\n\n  ```bash\n  composer patch-add \u003cpackage\u003e \u003cdescription\u003e \u003curl\u003e\n  ```\n\n  *Ejemplo*:\n  ```bash\n  composer patch-add drupal/core \"SA-CORE-2018-002\" \"https://cgit.drupalcode.org/drupal/rawdiff/?h=8.5.x\u0026id=5ac8738fa69df34a0635f0907d661b509ff9a28f\"\n  ```\n\n  \u003e Otra manera es hacer uso del archivo *composer.patches.json*.\n\n* ### ¿Cómo mantener organizado mi composer.json?\n\n  Para mantener el composer.json \"normalizado\", este proyecto hace uso del\n  plugin [composer-normalize](https://github.com/ergebnis/composer-normalize).\n  Para ejecutar este plugin sólo debes escribir en la consola:\n\n  ```bash\n  composer normalize\n  ```\n\n* ### ¿Cómo incluir mis composer.json de los módulos custom?\n\n  Para incluir los composer.json de mis módulos custom y que las dependencias\n  se añadan al directorio vendor del proyecto, se debe añadir la siguiente línea\n  dentro del composer.json principal:\n\n  ```json\n    \"merge-plugin\": {\n      ...\n      \"include\": [\n        \"web/modules/custom/*/composer.json\"\n      ]\n    }\n  ```\n\n---\n⌨️ con ❤️ por [Óscar Novás][mi-web] 😊\n\n[mi-web]: https://oscarnovas.com \"for developers\"\n\n[version]: v1.0.0\n[version-badge]: https://img.shields.io/badge/Versión-1.0.0-blue.svg\n\n[license]: LICENSE.md\n[license-badge]: https://img.shields.io/badge/Licencia-GPLv3+-green.svg \"Leer la licencia\"\n\n[conduct]: CODE_OF_CONDUCT.md\n[conduct-badge]: https://img.shields.io/badge/C%C3%B3digo%20de%20Conducta-2.0-4baaaa.svg \"Código de conducta\"\n\n[changelog]: CHANGELOG.md \"Histórico de cambios\"\n\n[donate-badge]: https://img.shields.io/badge/Donaci%C3%B3n-PayPal-red.svg\n[donate-url]: https://paypal.me/oscarnovasf \"Haz una donación\"","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foscarnovasf%2Foscarbot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foscarnovasf%2Foscarbot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foscarnovasf%2Foscarbot/lists"}