{"id":20677107,"url":"https://github.com/enoy19/telegram-bot-configurator","last_synced_at":"2026-05-04T17:33:14.237Z","repository":{"id":115835581,"uuid":"105303866","full_name":"enoy19/telegram-bot-configurator","owner":"enoy19","description":"Configure a Telegram bot using a desktop application and scripts","archived":false,"fork":false,"pushed_at":"2017-09-29T19:46:06.000Z","size":66,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-03-10T18:54:33.355Z","etag":null,"topics":["bot","configuration","gluon-ignite","java","javafx","javafx-application","spring-boot","spruce","telegram","telegram-bot"],"latest_commit_sha":null,"homepage":null,"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/enoy19.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":"2017-09-29T18:19:12.000Z","updated_at":"2017-09-29T19:41:48.000Z","dependencies_parsed_at":null,"dependency_job_id":"ce8eec22-4180-42eb-8f1a-a5d97c406dd8","html_url":"https://github.com/enoy19/telegram-bot-configurator","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/enoy19/telegram-bot-configurator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/enoy19%2Ftelegram-bot-configurator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/enoy19%2Ftelegram-bot-configurator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/enoy19%2Ftelegram-bot-configurator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/enoy19%2Ftelegram-bot-configurator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/enoy19","download_url":"https://codeload.github.com/enoy19/telegram-bot-configurator/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/enoy19%2Ftelegram-bot-configurator/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32617830,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-04T10:08:07.713Z","status":"ssl_error","status_checked_at":"2026-05-04T10:08:02.005Z","response_time":58,"last_error":"SSL_read: 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","configuration","gluon-ignite","java","javafx","javafx-application","spring-boot","spruce","telegram","telegram-bot"],"created_at":"2024-11-16T21:14:29.722Z","updated_at":"2026-05-04T17:33:14.210Z","avatar_url":"https://github.com/enoy19.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Telegram Bot Configurator\n\nThis is a JavaFx-Application I made during my apprenticeship as a Software Developer.\nYou can create simple commands for your [Telegram](https://telegram.org/) [Bot](https://core.telegram.org/bots) \nand configure permissions, roles and users within the application.\nIt's possible to save your configuration and use it without the GUI using _n --file 'file/path/configuration.tbc'_\narguments.\nI used it to configure simple commands on my [Raspberry Pi](https://www.raspberrypi.org/).\n\nIt uses [pengrads Telegram bot api](https://github.com/pengrad/java-telegram-bot-api).\n\nI learned a lot during development. I just found it again and wanted to share it with anyone who might find this code/application handy.\nI tried to combine JavaFx with dependency injection. It was tricky because I didn't even know how to use spring correctly.\nBut I somehow made it...\nTo make JavaFx and Spring like each other I used [Gluon](http://gluonhq.com/) [Ignite](http://gluonhq.com/labs/ignite/).\n\nThe code was one rather big project, that I will try to slice into smaller pieces. For example to decouple the model-classes.\nI wasn't really familiar with MVC back then, that's why I let my model classes have little babies with JavaFx Properties.\nThat is making it hard to decouple stuff I guess but it let me just bind my models to the gui :P\n\nI plan to integrate some api that provides some interface so that you can program commands in Java.\nIt's a bit tricky to script in the plain text area of JFX.\n\nThe Telegram Bot Configurator loads all jar files in the \"[execution location]/tbc/plugins\" directory.\nYou might use some other libraries if you put the jars in that directory.#\n\nThe application is in german (UI Components). But feel free to translate it in your language if you need it (telegram-bot-configurator-application/src/main/resources/fxml/bundles).\nIf anybody really wants to use this application I can translate it in english.\n\n## Screenshots\n\n### Commands:\nA simple command that just sends \"Pong\" back to the sender\n\n![Pong command](https://user-images.githubusercontent.com/24529735/31031888-5100bee8-a55a-11e7-99c9-3dc1fedf727a.png)\n\nA command that uses predefined arguments with predefined attributes\n\"Fridge\" has the a property \"code\" with the value \"00001\" that you can access with the \"arguments\" array \nAccess the given argument with the \"userInputs\" array.\nYou may use placeholders like %PHOTO% or %LOCATION% in the arguments part to allow these data types.\n\n![Activate command](https://user-images.githubusercontent.com/24529735/31031889-5104466c-a55a-11e7-95a3-85db600361a8.png)\n\n![Activate command arguments](https://user-images.githubusercontent.com/24529735/31031890-5105328e-a55a-11e7-9367-c0d9d651bced.png)\n\n### Roles:\nConfigure roles with permissions. In this case I configured \"Peasant\" and \"Admin\"\nPeasants may use the command \"ping\" as they wish.\nAdmin inherits every right of a peasant and has the right to activate everything.\nNOTE: When configuring a command TBC automatically create a permission for that command (without arument restrictions)\n\n![Roles](https://user-images.githubusercontent.com/24529735/31031891-5107353e-a55a-11e7-9052-16060208d2ff.png)\n\n![Roles Admin](https://user-images.githubusercontent.com/24529735/31031892-5110cafe-a55a-11e7-8911-e60ab932056e.png)\n\n### Permissions\nYou may restrict command arguments using permissions.\nFor example I need a permission that restricts a user to only use the activate command with \"Fridge\" as the argument.\nI then assign that permission to the peasant role.\nYou may use placeholders like %PHOTO% or %LOCATION% in here too.\n\n![Permissions](https://user-images.githubusercontent.com/24529735/31031887-50ff17e6-a55a-11e7-8901-6897a13738f5.png)\n\n![Permissions Peasant](https://user-images.githubusercontent.com/24529735/31031881-50e5b968-a55a-11e7-96db-3d13acbc0b48.png)\n\n### Users\nYou can add users in the users tab by giving the chat id and a custom name.\nYou activate them and deactivate them.\nYou can assign roles and single permissions to a user.\nA user can have own key-value properties that you can access in the command script.\nIn the screenshot there is Timo who is a peasant (obviously). \nThere is the admin Greg and Yo mama who has \"special\" permissions.\n\n![Timo](https://user-images.githubusercontent.com/24529735/31031884-50ef14f4-a55a-11e7-9a79-7ff03e8174aa.png)\n\n![Greg](https://user-images.githubusercontent.com/24529735/31031882-50ea2b38-a55a-11e7-8516-90b69ddaa2cf.png)\n\n![I am not funny](https://user-images.githubusercontent.com/24529735/31031883-50eb233a-a55a-11e7-9ccd-1108dd7570e7.png)\n\n### Configuration\nYou must put your [Bot token](https://core.telegram.org/bots/api#authorizing-your-bot) in the text box here.\nIf you want to add a user when he contacts your bot, you may activate \"Benutzer automatisch einpflegen\" (add user automatically).\nYou can assign automatically added users a default group by choosing one in the combobox.\nIf you want your auto added users to be activated when added or not just check the box accordingly (\"Automatisch Benutzer aktiviert\")\nIf you add your users automatically, make sure you checked \"Automatisch speichern\". \nThis option saves the configuration before shutting down and every once in a while when running. It is useful if you run the application in no gui mode.\n\n![Configuration](https://user-images.githubusercontent.com/24529735/31031885-50efccfa-a55a-11e7-911a-423f833bb521.png)\n\n### Running\nYou can start your bot in the gui by switching to the \"Starten\" tab and just clicking the button on the top left.\nIt shows you how long your bot is running and how many commands where executed.\nBelow is a list of all running commands with a progress bar that you can access in the command (empty in screenshot).\nIf you want to run it without a GUI you need to pass the jar following arguments: _-n --file \"path/to/conf.tbc\"_.\nIf running in no gui mode you have to pass it a file. \n\n![Run in GUI](https://user-images.githubusercontent.com/24529735/31031886-50fbdd60-a55a-11e7-85b4-5e1349c64e0f.png)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fenoy19%2Ftelegram-bot-configurator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fenoy19%2Ftelegram-bot-configurator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fenoy19%2Ftelegram-bot-configurator/lists"}