{"id":25183140,"url":"https://github.com/dan-sazonov/stickers-auto","last_synced_at":"2025-04-04T07:13:25.921Z","repository":{"id":271069425,"uuid":"912309291","full_name":"dan-sazonov/stickers-auto","owner":"dan-sazonov","description":"🖼⚙ The simplest console tool for batch adding telegram stickers","archived":false,"fork":false,"pushed_at":"2025-01-19T05:58:57.000Z","size":95,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-09T18:19:14.584Z","etag":null,"topics":["apache-httpcomponents","cli","java","tg-stickers"],"latest_commit_sha":null,"homepage":"","language":"Java","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/dan-sazonov.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":"2025-01-05T07:42:21.000Z","updated_at":"2025-01-19T13:58:21.000Z","dependencies_parsed_at":"2025-01-05T10:31:38.953Z","dependency_job_id":null,"html_url":"https://github.com/dan-sazonov/stickers-auto","commit_stats":null,"previous_names":["dan-sazonov/stickers-auto"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dan-sazonov%2Fstickers-auto","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dan-sazonov%2Fstickers-auto/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dan-sazonov%2Fstickers-auto/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dan-sazonov%2Fstickers-auto/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dan-sazonov","download_url":"https://codeload.github.com/dan-sazonov/stickers-auto/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247135151,"owners_count":20889421,"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":["apache-httpcomponents","cli","java","tg-stickers"],"created_at":"2025-02-09T18:19:19.306Z","updated_at":"2025-04-04T07:13:25.899Z","avatar_url":"https://github.com/dan-sazonov.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Stickers-auto\n![OpenSource](https://img.shields.io/badge/Open%20Source-%E2%99%A5-red)\n![Apache 2.0](https://img.shields.io/github/license/dan-sazonov/stickers-auto)\n![Tested on linux, Win10](https://img.shields.io/badge/tested%20on-Linux%20|%20Win10-blue)\n\n**Stickers-auto** is a Java application for creating and managing Telegram sticker packs.  \nThe program allows you to:\n1. Create a new sticker pack with the first sticker from the specified directory.\n2. Add all stickers from the specified directory to the created sticker pack.\n3. Automatically determine the emoji associated with each sticker based on the file name (emojis in the file name).\n\n\n## 🧳Requirements\n\n- Java 17 or higher\n- Gradle (version 7.5 or higher)\n- Active Telegram bot (with a token)\n- Access to the Telegram Bot API\n\n## 📦Installation\n1. Clone the repository:\n   ```bash\n   git clone git@github.com:dan-sazonov/stickers-auto.git\n   ```\n2. Navigate to the project directory:\n   ```bash\n   cd stickers-auto\n   ```\n3. Install dependencies and build the project:\n   ```bash\n   gradle build\n   ```\n\n## 🛠Configuration\n1. Create a `.env` file in the root directory to store the bot token:\n   ```\n   BOT_TOKEN=\u003cyour_bot_token\u003e\n   ```\n2. Configure the `config.properties` file:\n   ```\n   botName=example_bot    #the name of your bot (without the @ prefix).\n   userId=123456789       #Telegram ID of the user creating the sticker pack.\n   ```\n\n## ⚙Usage\nRun the application using the following command:\n```bash\n./gradlew run --console=plain --quiet\n```\n\nDuring execution, you will be prompted to choose a mode of operation:\n\n1. **Create a new sticker pack**:\n   - Enter the path to the directory containing the sticker files.\n   - Provide the sticker pack name and title.\n   - The program will automatically:\n      - Extract emojis from file names.\n      - Skip files without emojis.\n      - Create the sticker pack and add all valid stickers.\n\n2. **Update an existing sticker pack**:\n   - Enter the path to the directory containing the new stickers.\n   - Provide the name of the existing sticker pack.\n   - The program will automatically:\n      - Extract emojis from file names.\n      - Skip files without emojis.\n      - Add all valid stickers to the specified sticker pack.\n\nExample input/output for **Create a new sticker pack**:\n\n```\n\u003e Select mode: [1] Create sticker pack, [2] Update sticker pack: 1\n\u003e Enter path to the directory containing stickers: /path/to/stickers\n\u003e Enter sticker pack name: my_new_pack\n\u003e Enter sticker pack title: My Awesome Stickers\nSticker pack created successfully with the first sticker: :smile:\nSticker added successfully: :heart:\nSticker added successfully: :star:\nSticker added successfully: :rocket:\n```\n\nExample input/output for **Update an existing sticker pack**:\n\n```\n\u003e Select mode: [1] Create sticker pack, [2] Update sticker pack: 2\n\u003e Enter path to directory with stickers: /path/to/new_stickers\n\u003e Enter sticker pack name to update: my_existing_pack\nSticker added successfully: :fire:\nSticker added successfully: :sunny:\nSticker added successfully: :moon:\n```\n\n## 🔬Sources\n### 🗂Project Structure\n\n```\nsrc\n├── main\n│   ├── java\n│   │   ├── com.example\n│   │   │   ├── Main.java               // Entry point\n│   │   │   ├── config\n│   │   │   │   └── ConfigLoader.java   // Configuration loader\n│   │   │   ├── telegram\n│   │   │   │   └── TelegramApiClient.java // Telegram API interaction\n│   │   │   ├── utils\n│   │   │   │   ├── EmojiExtractor.java // Emoji extraction from file names\n│   │   │   │   └── FileValidator.java  // File and directory validation\n│   ├── resources\n│   │   ├── .env                        // Environment variables\n│   │   └── config.properties           // Configuration file\n```\n### 🎯Features\n- [ ] Adapt support for video stickers\n- [ ] Implement image adaptation to the required format\n- [ ] Create a table with photo paths and their corresponding emojis\n\n### 🐛Fixes\n- [ ] Refactor the code\n- [ ] Add test coverage\n- [ ] Handle errors and edge cases\n- [ ] Improve output clarity\n\n### 🤝 Contributing\nIf you have any ideas or found any bugs here, plz open the [issue](https://github.com/dan-sazonov/stickers-auto/issues)\nor make a fork and offer a [pull request](https://github.com/dan-sazonov/stickers-auto/pulls). And it will be\ngreat if you tell me about these ideas, maybe I'm already working on them.\n\n## 👨‍💻 Author\nThe author of this repository and code - [@dan-sazonov](https://github.com/dan-sazonov). \u003cbr\u003e\n**Reach me:**\u003cbr\u003e\n[✈️ Telegram](https://t.me/dan_sazonov) \u003cbr\u003e\n[📧 Email](mailto:p-294803@yandex.com) \u003cbr\u003e","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdan-sazonov%2Fstickers-auto","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdan-sazonov%2Fstickers-auto","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdan-sazonov%2Fstickers-auto/lists"}