{"id":26191193,"url":"https://github.com/wisoxx/inline-vault","last_synced_at":"2026-04-23T06:32:26.824Z","repository":{"id":258791552,"uuid":"875313728","full_name":"Wisoxx/inline-vault","owner":"Wisoxx","description":"A Flask-based Telegram bot using Telepot and webhooks, hosted on PythonAnywhere. It allows users to save and retrieve text, media, and other content based on descriptions. Efficient reminder handling ensures timely notifications.","archived":false,"fork":false,"pushed_at":"2025-02-28T22:13:54.000Z","size":114,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-26T18:48:51.437Z","etag":null,"topics":["gif","gifs","inline","inline-search","inline-search-bot","pictures","telegram","telegram-bot"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Wisoxx.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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-10-19T16:43:47.000Z","updated_at":"2025-02-28T22:18:12.000Z","dependencies_parsed_at":"2025-02-28T22:19:32.290Z","dependency_job_id":"2ae2cac9-b571-4366-aa64-b02304b7bcc9","html_url":"https://github.com/Wisoxx/inline-vault","commit_stats":null,"previous_names":["wisoxx/inline-vault"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Wisoxx/inline-vault","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Wisoxx%2Finline-vault","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Wisoxx%2Finline-vault/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Wisoxx%2Finline-vault/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Wisoxx%2Finline-vault/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Wisoxx","download_url":"https://codeload.github.com/Wisoxx/inline-vault/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Wisoxx%2Finline-vault/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32169657,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-23T02:19:40.750Z","status":"ssl_error","status_checked_at":"2026-04-23T02:17:55.737Z","response_time":53,"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":["gif","gifs","inline","inline-search","inline-search-bot","pictures","telegram","telegram-bot"],"created_at":"2025-03-12T01:00:11.863Z","updated_at":"2026-04-23T06:32:26.808Z","avatar_url":"https://github.com/Wisoxx.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Inline Vault Bot\n\n[![Telegram](https://img.shields.io/badge/Telegram-Inline_Vault_Bot-blue)](https://t.me/inlinevaultbot)\n\n**Inline Vault Bot** is a personal storage assistant for Telegram that allows users to save and retrieve various types of media and text efficiently through inline queries. The bot organizes content based on user-provided descriptions and provides quick access through search functionality.\n\n## Features\n\n- 📁 **Store Various Media**: Save photos, videos, GIFs, stickers, audio, voice messages, and documents.\n- 🔎 **Fast Retrieval**: Use inline queries to quickly find and send stored media.\n- 🏷 **Description-Based Search**: Organize and find content using text-based descriptions.\n- 🛠 **Inline Mode**: Search and share media directly in any chat without opening the bot.\n- 🌍 **Multi-language Support**: Interface available in English, Ukrainian, and Polish.\n- ❌ **Delete Stored Content**: Remove items from the storage when needed.\n- 📌 **Persistent Storage**: Saves data in a structured database for long-term access.\n\n## Installation\n\nThis bot is hosted on **PythonAnywhere** and built with **Flask** and **Telepot**.\nTo set up a local development environment:\n\n```sh\n# Clone the repository\ngit clone https://github.com/Wisoxx/inline-vault.git\ncd words-reminder\n\n# Create a virtual environment\npython3 -m venv venv\nsource venv/bin/activate  # On Windows use `venv\\Scripts\\activate`\n\n# Install dependencies\npip install -r requirements.txt\n```\n\n## Configuration\n\n1. **Set up Telegram bot**\n   - Create a bot via [BotFather](https://t.me/BotFather) and obtain the API token.\n2. **Set environment variables**\n   - Create a `.env` file with the following:\n     ```env\n     TELEGRAM_TOKEN=your_telegram_bot_token\n     SITE_URL=your_site_url\n     SECRET=your_webhook_secret\n     ```\n\n## Usage\n\nStart a conversation with the bot: [@inlinevaultbot](https://t.me/inlinevaultbot)\n\n### Commands\n\n- `/start` – Begin interaction and setup.\n- `/help` – Show instructions.\n- `/description` – Send the description assigned to next media.\n- `/delete` – Enter deletion mode to remove stored media.\n- `/cancel` – Exit the current action mode.\n- `/done` – Complete deleting items.\n\n## Inline Query System\n\nThe bot allows users to search for and send saved media using inline mode:\n\n1. Type `@inline_vault_bot \u003cquery\u003e` in any chat. \n2. The bot will return matching results based on stored descriptions. \n3. Select the desired media to send it instantly.\n\n## Database Structure\n\nThe bot uses **SQLite** with the following tables:\n\n- **Users**: Stores user preferences.\n- **Media**: Stores saved files with descriptions, captions, and media types.\n- **Temp**: Temporary storage for ongoing user actions.\n\n## Logging\n\n- Logs are stored in `logs/app.log` using **RotatingFileHandler**.\n- Flask provides an endpoint to view logs in a web browser at the `{SITE_URL}/{SECRET}/remind_all` endpoint.\n\n## Deployment\n\n1. **Set up on PythonAnywhere**\n   - Create an account\n   - Create and configure a **Flask web app**. For a detailed guide, refer to [Building a simple Telegram bot using PythonAnywhere](https://blog.pythonanywhere.com/148/).\n   - Change WSGI file configuration to:\n   ```python\n   # This file contains the WSGI configuration required to serve up your\n   # web application at http://\u003cyour-username\u003e.pythonanywhere.com/\n   # It works by setting the variable 'application' to a WSGI handler of some\n   # description.\n   \n   import sys\n   import os\n   from dotenv import load_dotenv\n   \n   # add your project directory to the sys.path\n   project_home = '/home/YOUR-USERNAME/mysite'\n   if project_home not in sys.path:\n       sys.path = [project_home] + sys.path\n   \n   project_folder = os.path.expanduser('~/mysite')\n   load_dotenv(os.path.join(project_folder, '.env'))\n   \n   # import flask app but need to call it \"application\" for WSGI to work\n   from flask_app import app as application  # noqa\n   ```\n   - Run commands mentioned in **Installation** in `/mysite` folder (`cd /mysite` first).\n\n## Contributing\n\nFeel free to submit issues or create pull requests. Contributions are welcome!\n\n## License\n\nMIT License © 2025 Bohdan Tavanov\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwisoxx%2Finline-vault","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwisoxx%2Finline-vault","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwisoxx%2Finline-vault/lists"}