{"id":39990810,"url":"https://github.com/edvgui/tst-utils","last_synced_at":"2026-01-19T00:38:54.041Z","repository":{"id":213989869,"uuid":"735427668","full_name":"edvgui/tst-utils","owner":"edvgui","description":"Various utilities regarding belgian tst form filling","archived":false,"fork":false,"pushed_at":"2024-12-08T20:20:59.000Z","size":396,"stargazers_count":1,"open_issues_count":1,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-12-08T21:30:49.747Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/edvgui.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":"2023-12-24T22:26:29.000Z","updated_at":"2024-12-08T20:21:02.000Z","dependencies_parsed_at":"2024-03-03T18:26:09.717Z","dependency_job_id":"01ca560d-5cca-4816-b408-64bdf0e902ca","html_url":"https://github.com/edvgui/tst-utils","commit_stats":null,"previous_names":["edvgui/tst-utils"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/edvgui/tst-utils","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edvgui%2Ftst-utils","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edvgui%2Ftst-utils/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edvgui%2Ftst-utils/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edvgui%2Ftst-utils/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/edvgui","download_url":"https://codeload.github.com/edvgui/tst-utils/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edvgui%2Ftst-utils/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28554780,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-18T23:48:35.235Z","status":"ssl_error","status_checked_at":"2026-01-18T23:47:49.178Z","response_time":98,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6: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":[],"created_at":"2026-01-19T00:38:53.135Z","updated_at":"2026-01-19T00:38:54.033Z","avatar_url":"https://github.com/edvgui.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TST Utils\n\n## Introduction\n\nThis project contains some helpers to parse a trade republic tst file (pdf report) and use the output data to fill in the belgian TST file that should be sent to state.\n\nThis code-base is purely opportunistic, and will rely on the simplest tools it can find to reach its goal.  Consistency of the technology used is not the primary goal, having a solution that works is.\n\n## Prerequisites\n\nThe requirements are: \n```\n- python\u003e=3.10\n- podman \n```\nSome tweaking with the gmail api is also necessary, see [tst-sender-readme](./tst-sender/README.md).\n\n## Input files \n\nThe script requires various input files in order to generate a correct TST pdf.\nThe complete list is the following:\n\n- Personal information file, as json payload, with the following format:\n```\n{\n    \"fullName\": \"FIRSTNAME LASTNAME\",\n    \"nationalRegisterNumber\": \"\",\n    \"address\": [\"\"]\n}\n```\n\n- Signature file as png or jpg, in order to sign the TST file.\n\n- The credentials json file used to access your gmail account, more information available [here](./tst-sender/README.md).\n\n## Quick start\n\nTo run the bash script, just run:\n\n```\nsh sync.sh\n```\n\nThe options are defined as follow:\n\n```\n[xxxxxx@xxxxxx tst-utils]$ sh sync.sh -h\nTool to fill in belgian TST file from trade republic monthly report.\nThis tool also creates a draft mail with the generated document and a qr code to pay the tax.\n\nSyntax: sh sync.sh [-h|s|p|c] input_folder [output_folder]\noptions:\nh     Display this help and exit.\ns     Set the signature image file path, default value is 'data/signature.jpg'.\np     Set the personal informations json file path, default value is 'data/citizen.json'.\nc     Set the Gmail credentials json file path, default value is 'data/credentials.json'.\nd     Set the Google drive folder to retrieve the pdf(s) from, default value is 'trade_republic'.\n      This will download all the pdfs in the provided input_folder argument.\narguments:\ninput_folder     Set the input folder for the pdf(s), this argument is mandatory.\noutput_folder    Set the output folder for the generated pdf(s) and qr code, default value is 'output'.\n\nPlease make sure to provide options before arguments.\n```\n\n\n## Components\n### Parsing Trade Republic transaction report\n\nThis is done in python, using pypdf and some naive regexes. There is no guarantee it will continue to work in the future.\n\nSee [tr-report-parser](./tr-report-parser/).\n\n### Filling in TST form\n\nThis one is written in Javascript, and runs with node, inside a podman container.  The tool relies on the pdf-lib library, it is highly dependant on the form file used, and has only been tested with https://finance.belgium.be/sites/default/files/Changement%20de%20compte%20formulaire%20TST%20EN.pdf\n\nSee [tst-filler](./tst-filler/).\n\n### Generate QR code for payment\n\nThis is done in python, using qrcode library.\n\nSee [tst-qr](./tst-qr/).\n\n### Send TST form\n\nThis one is written in python, using gmail api to prepare a draft email, that can be sent to the belgian administration.  The tst form filled is attached to the email.\n\nSee [tst-sender](./tst-sender/).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fedvgui%2Ftst-utils","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fedvgui%2Ftst-utils","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fedvgui%2Ftst-utils/lists"}