{"id":21431686,"url":"https://github.com/gabrielbaute/libgenwebapp","last_synced_at":"2026-01-30T14:20:58.556Z","repository":{"id":264081536,"uuid":"892278079","full_name":"gabrielbaute/LibGenWebApp","owner":"gabrielbaute","description":"Web interface for LibGen based on its API","archived":false,"fork":false,"pushed_at":"2024-11-21T21:59:29.000Z","size":239,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-23T08:41:33.585Z","etag":null,"topics":["bulma-css","flask","libgen","python"],"latest_commit_sha":null,"homepage":"","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gabrielbaute.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"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":"2024-11-21T20:21:20.000Z","updated_at":"2024-12-05T08:16:46.000Z","dependencies_parsed_at":"2024-11-22T00:00:40.184Z","dependency_job_id":null,"html_url":"https://github.com/gabrielbaute/LibGenWebApp","commit_stats":null,"previous_names":["gabrielbaute/libgenwebapp"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gabrielbaute%2FLibGenWebApp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gabrielbaute%2FLibGenWebApp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gabrielbaute%2FLibGenWebApp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gabrielbaute%2FLibGenWebApp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gabrielbaute","download_url":"https://codeload.github.com/gabrielbaute/LibGenWebApp/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243944964,"owners_count":20372885,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["bulma-css","flask","libgen","python"],"created_at":"2024-11-22T23:12:03.488Z","updated_at":"2026-01-30T14:20:58.498Z","avatar_url":"https://github.com/gabrielbaute.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# LibGenWebApp\n\nLibGenWebApp es una interfaz web para la API de LibGen desarrollada por Harrison Broadbent. Esta aplicación permite buscar libros y artículos en la biblioteca de LibGen de manera amigable y eficiente. La aplicación está en desarrollo continuo y se agradece mucho el trabajo y aporte de Harrison Broadbent.\n\n## Características\n\n- Búsqueda de libros y artículos por autor y título.\n- Filtros avanzados de búsqueda por idioma, año, y formato.\n- Historial de búsquedas del usuario.\n- Modo oscuro y modo claro.\n- Restablecimiento de contraseña por correo electrónico con tokens válidos por 30 minutos.\n\n## Instalación\n\n1. **Clonar el repositorio**\n    ```sh\n    git clone https://github.com/yourusername/LibGenWebApp.git\n    cd LibGenWebApp\n    ```\n\n2. **Crear y activar un entorno virtual**\n    ```sh\n    python -m venv venv\n    source venv/bin/activate  # En Windows: venv\\Scripts\\activate\n    ```\n\n3. **Instalar las dependencias**\n    ```sh\n    pip install -r requirements.txt\n    ```\n\n4. **Configurar las variables de entorno**\n   - Crea un archivo `.env` en el directorio raíz del proyecto y agrega las siguientes líneas:\n   ```env\n   # Flask\n   FLASKPORT=5000\n   SQLALCHEMY_DATABASE_URI='sqlite:///site.db'\n   FLASK_DOMAIN=http://localhost:{FLASKPORT}\n   SECRET_KEY=your-generated-secret-key\n   DEBUG=False\n\n   # Admin credentials\n   ADMIN_USERNAME='admin'\n   ADMIN_EMAIL='admin@mail.com'\n   ADMIN_PASSWORD='admin'\n\n   # SMTP configuration\n   MAIL_SERVER=smtp.example.com\n   MAIL_PORT=587\n   MAIL_USE_TLS=True\n   MAIL_USE_SSL=False\n   MAIL_USERNAME=your-email@example.com\n   MAIL_PASSWORD=your-password\n   MAIL_DEFAULT_SENDER=noreply@example.com\n   ```\n\n5. **Generar la clave secreta**\n   - Ejecuta el script `generate_secret_key.py` y copia la clave generada en el archivo `.env`:\n   \n   ```sh\n   python generate_secret_key.py\n   ```\n   - Añade la línea `SECRET_KEY=your-generated-secret-key` en tu archivo `.env`.\n\n6. **Inicializar la base de datos**\n   ```sh\n   flask db init\n   flask db migrate -m \"Initial migration.\"\n   flask db upgrade\n   ```\n\n7. **Ejecutar la aplicación**\n   ```sh\n   flask run\n   ```\n\n## Estructura de Archivos\n\n```plaintext\nLibGenWebApp/\n├── app.py\n├── routes.py\n├── models.py\n├── forms.py\n├── mail.py\n├── loadadmin.py\n├── generate_secret_key.py\n├── templates/\n│   ├── base.html\n│   ├── index.html\n│   ├── login.html\n│   ├── register.html\n│   ├── reset_request.html\n│   ├── reset_token.html\n│   ├── authorsearch.html\n│   ├── titlesearch.html\n│   ├── results.html\n│   ├── history.html\n├── static/\n│   ├── css/\n│   │   └── styles.css\n│   ├── js/\n│   │   └── theme.js\n│   └── images/\n│       └── logo.png\n├── .env\n├── requirements.txt\n├── README.md\n```\n\n## Variables de Entorno\n\n| Nombre                     | Valor por Defecto          | Descripción                                                |\n|----------------------------|----------------------------|------------------------------------------------------------|\n| `FLASKPORT`                | `5000`                     | Puerto en el que se ejecuta la aplicación Flask.           |\n| `SQLALCHEMY_DATABASE_URI`  | `sqlite:///site.db`        | URI de la base de datos.                                   |\n| `FLASK_DOMAIN`             | `http://localhost:{FLASKPORT}` | Dominio de la aplicación Flask.                             |\n| `SECRET_KEY`               | `your-generated-secret-key` | Clave secreta para la aplicación Flask.                     |\n| `DEBUG`                    | `False`                    | Modo de depuración de Flask.                               |\n| `ADMIN_USERNAME`           | `admin`                    | Nombre de usuario del administrador por defecto.           |\n| `ADMIN_EMAIL`              | `admin@mail.com`           | Correo electrónico del administrador por defecto.          |\n| `ADMIN_PASSWORD`           | `admin`                    | Contraseña del administrador por defecto.                  |\n| `MAIL_SERVER`              | `smtp.example.com`         | Servidor SMTP para enviar correos.                         |\n| `MAIL_PORT`                | `587`                      | Puerto del servidor SMTP.                                  |\n| `MAIL_USE_TLS`             | `True`                     | Usar TLS para el servidor SMTP.                            |\n| `MAIL_USE_SSL`             | `False`                    | Usar SSL para el servidor SMTP.                            |\n| `MAIL_USERNAME`            | `your-email@example.com`   | Nombre de usuario para el servidor SMTP.                   |\n| `MAIL_PASSWORD`            | `your-password`            | Contraseña para el servidor SMTP.                          |\n| `MAIL_DEFAULT_SENDER`      | `noreply@example.com`      | Dirección de correo del remitente por defecto.             |\n\n## Importancia de la Clave Secreta\n\nLa clave secreta (`SECRET_KEY`) es fundamental para la seguridad de tu aplicación Flask. Se utiliza para firmar cookies, tokens y otras tareas de seguridad. Asegúrate de generar una clave secreta segura usando el script `generate_secret_key.py` y guardarla en el archivo `.env` para que no se exponga accidentalmente en el código fuente.\n\n## Agradecimientos\n\nEste proyecto se basa en la [API de LibGen](https://github.com/harrison-broadbent/libgen-api) desarrollada por [Harrison Broadbent](https://github.com/harrison-broadbent). Agradecemos enormemente su trabajo y contribución.\n\n¡Gracias por usar LibGenWebApp!","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgabrielbaute%2Flibgenwebapp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgabrielbaute%2Flibgenwebapp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgabrielbaute%2Flibgenwebapp/lists"}