{"id":27443021,"url":"https://github.com/andreastefanh/tncontrol","last_synced_at":"2025-10-30T14:13:27.924Z","repository":{"id":287941062,"uuid":"964142775","full_name":"AndreaStefanh/TNcontrol","owner":"AndreaStefanh","description":"TNcontrol aims to find chess tournaments where the person you are looking for has pre-registered.","archived":false,"fork":false,"pushed_at":"2025-06-23T15:53:02.000Z","size":112,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-23T16:57:11.178Z","etag":null,"topics":["analysis","chess","cli","fide","forensics","fsi","lichess","osint","python3","reconnaissance","scraper","statistics","stats","telegram","telegram-bot","tncontrol","tools","tournament","tui","webscraping"],"latest_commit_sha":null,"homepage":"","language":"Python","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/AndreaStefanh.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,"zenodo":null}},"created_at":"2025-04-10T18:51:32.000Z","updated_at":"2025-06-23T15:53:06.000Z","dependencies_parsed_at":"2025-04-15T01:18:26.443Z","dependency_job_id":"b185514d-5635-4a43-9e3b-e2e6049a088b","html_url":"https://github.com/AndreaStefanh/TNcontrol","commit_stats":null,"previous_names":["andreastefanh/tncontrol"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/AndreaStefanh/TNcontrol","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndreaStefanh%2FTNcontrol","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndreaStefanh%2FTNcontrol/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndreaStefanh%2FTNcontrol/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndreaStefanh%2FTNcontrol/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AndreaStefanh","download_url":"https://codeload.github.com/AndreaStefanh/TNcontrol/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndreaStefanh%2FTNcontrol/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264951610,"owners_count":23687974,"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":["analysis","chess","cli","fide","forensics","fsi","lichess","osint","python3","reconnaissance","scraper","statistics","stats","telegram","telegram-bot","tncontrol","tools","tournament","tui","webscraping"],"created_at":"2025-04-15T01:18:24.477Z","updated_at":"2025-10-30T14:13:27.919Z","avatar_url":"https://github.com/AndreaStefanh.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TNcontrol\n\n\u003e [!WARNING]\n\u003e This software is unfinished. Keep your expectations low.\n\nTNcontrol is a tool designed to find chess tournaments where the person you are looking for has pre-registered. It supports querying on [Vesus](https://vesus.org/), on [Vegaresult](https://www.vegaresult.com/it/tournaments.php) and checks if the person you are looking for has qualified for [CIGU18](https://it.wikipedia.org/wiki/Campionato_italiano_giovanile_di_scacchi), and it also integrates with Telegram for easier interaction.\n\n---\n\n## Demo\n\nTelegram interface, basic demo.\n\n![Demo](https://github.com/user-attachments/assets/cd19156e-6128-4d0c-bca9-445dde20cd25)\n\n---\n\n## Features\n\n- Search for italian chess tournaments on [Vesus](https://vesus.org/) and on [Vegaresult](https://www.vegaresult.com/it/tournaments.php).\n- Check if a person has qualified for [CIGU18](https://it.wikipedia.org/wiki/Campionato_italiano_giovanile_di_scacchi).\n- Support for querying specific Italian regions for vesus.\n- Supports querying multiple people by separating names with '|' symbol\n- Command-line interface.\n- Telegram bot integration for interactive usage.\n- Toggle between engines (Vesus and CIGU18).\n- Logging system for tracking errors and operations.\n- Supports a setting file to make persistent queries without entering data every time\n- Supports in the Telegram interface a feature to run an automatic daily query at a selectable time\n\n---\n\n## Quick Start\n\n### Install dependencies\n\n```console\n$ pip install -r requirements.txt\n```\n\n### Basic usage\n\n```console\n$ python3 ./main.py\n```\n\nAnd follow the instructions of the cli.\n\n### \"Advanced\" usage\n\nIf you want to have more granularity in your settings:\n\n```console\n$ python3 ./main.py --advanced\n```\n\nAnd follow the instructions of the cli.\n\n---\n\nOr you can use the command arguments:\n\n```console\n$ python3 ./main.py --name=stefan --engine=VES --region=LAZ,CAL\n# This command will search only on vesus all the people that contain stefan in the name in the regions of lazio and calabria\n```\n\n---\n\nIf you want to make a multiple query you can separate the names with the '|' operator.\n\nYou can use the '|' operator everywhere and it is possible to insert the name of the person you want to query (in the cli, in the argument parameters and on telegram).\n\n```console\n$ python3 ./main.py --name=\"stefan andrea|sonis francesco\"\n```\n\n---\n\nIf you want to use TNcontrol with the telegram interface just create a bot with [@BotFather](https://telegram.me/BotFather) and take the key then pass this command to the server\n\n```console\n$ python3 ./main.py --telegram=YOUR_API_KEY_GOES_HERE\n```\n\n---\n\nYou can also create a **settings.json** file in the program root to keep your settings.\n```json5\n{\n  // here goes the interface you want to use with TNcontrol it can be 'basicUI' for \n  // the cli interface or 'telegram' to interface as a telegram bot (default is basicUI)\n  \"interface\": \"telegram\",\n\n  // If you specify telegram interface you will have to enter the key here\n  \"telegramKey\": \"YOUR_API_KEY_GOES_HERE\",\n    \n  // If you have selected the telegram interface then activate the automated run feature from here\n  // (default is false)\n  \"telegramAutoRun\": true,\n    \n  // Here you can enter the time in UTC to perform automated run (default is 19:00 UTC)\n  \"autoRunTime\": \"21:00\",\n    \n  // Here enter the person you want to perform the query\n  \"queryName\": \"stefan\",\n    \n  // Here you can select which engine(s) to use and you can use this notation\n  // but also the notation of '--available-engines' (default are both)\n  \"selectedEngine\": [\"vesus\", \"cigu18\"],\n    \n  // Here if you are using the vesus and you do not want to search for all the tournaments in italy \n  // you can specify the regions where you want to make the query with the notation \n  // '--available-regions' (default are all of them)\n  \"vesusSelectedRegions\": [\"LAZ\", \"CAL\"],\n    \n  // Enable all logging on API requests in the apiLogs.txt file as the '-l' argument flag \n  // (default is false)\n  \"logApiRequests\": true\n}\n```\n\n---\n\n## Known Problems\n\n- Sometimes connections to Vesus fail to perform the initial 3-way TCP handshake (no idea why)\n- If you make many queries on vesus if you have especially all the regions selected without at least waiting 1 minute between one request and another the vesus server will timeout your ip\n- CIGU18 engine takes 30 seconds to run when vesus only takes 10 seconds to run for all regions so cig engine creates a 20 second bottleneck because [F.S.I.](https://en.wikipedia.org/wiki/Italian_Chess_Federation) servers suck\n\n---\n\n## TODO\n\n- [ ] Add proxy support so ip address doesn't timeout\n- [ ] Add support to a tui interface\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandreastefanh%2Ftncontrol","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fandreastefanh%2Ftncontrol","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandreastefanh%2Ftncontrol/lists"}