{"id":16199926,"url":"https://github.com/agateau/tmc2","last_synced_at":"2026-05-13T20:35:00.714Z","repository":{"id":66380987,"uuid":"83218844","full_name":"agateau/tmc2","owner":"agateau","description":"Minimalist quote gathering tool","archived":false,"fork":false,"pushed_at":"2025-10-19T19:28:38.000Z","size":337,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-28T22:34:59.823Z","etag":null,"topics":["flask","microblog","minimalist","python","quotes"],"latest_commit_sha":null,"homepage":null,"language":"HTML","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/agateau.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"agateau","ko_fi":"agateau","liberapay":"agateau","custom":"https://agateau.com/support/"}},"created_at":"2017-02-26T15:25:02.000Z","updated_at":"2025-10-19T19:28:12.000Z","dependencies_parsed_at":"2024-01-02T08:46:50.245Z","dependency_job_id":"14974fe9-a416-41b7-a4d5-cb922660d3e1","html_url":"https://github.com/agateau/tmc2","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/agateau/tmc2","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agateau%2Ftmc2","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agateau%2Ftmc2/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agateau%2Ftmc2/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agateau%2Ftmc2/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/agateau","download_url":"https://codeload.github.com/agateau/tmc2/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agateau%2Ftmc2/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32999515,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-13T13:14:54.681Z","status":"ssl_error","status_checked_at":"2026-05-13T13:14:51.610Z","response_time":115,"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":["flask","microblog","minimalist","python","quotes"],"created_at":"2024-10-10T09:28:44.332Z","updated_at":"2026-05-13T20:35:00.678Z","avatar_url":"https://github.com/agateau.png","language":"HTML","funding_links":["https://github.com/sponsors/agateau","https://ko-fi.com/agateau","https://liberapay.com/agateau","https://agateau.com/support/"],"categories":[],"sub_categories":[],"readme":"# TMC2\n\nTMC2 is a minimalist quote gathering tool. It has been written to replace an\nhosted service, tropmignon.com, which has closed.\n\nIt lets you add and browse quotes (or any other short texts).\n\nIt explicitly does not support:\n\n- markup\n- images\n- authentication\n- multiple authors\n- comments\n\nIt looks like this:\n\n![Quote list](demo/demo1.png)\n\n![Adding a quote](demo/demo2.png)\n\n## Translations\n\nTMC2 is currently available in French and English.\n\n## Setup\n\nTMC2 depends on Python, Sqlite, Peewee, Flask, Jinja, Arrow and Babel.\n\nTo give it a try:\n\n1. Run `make` to create a virtualenv with the required dependencies and\n   compile translations\n2. Run `make run` to start the app using Flask web server on\n   \u003chttp://localhost:5000\u003e\n\nBy default the database is in `/tmp/tmc2.db`. You should create a configuration\nfile to define another location. You can then run TMC2 with this other\nconfiguration file by defining the `TMC2_CONFIG` environment variable.\n\nFor example:\n\n    $ echo \"DATABASE = /var/lib/tmc2.db\" \u003e /etc/tmc2.py\n    $ echo \"HOST = '0.0.0.0'\" \u003e\u003e /etc/tmc2.py\n    $ make run TMC2_CONFIG=/etc/tmc2.py\n\nLook at \u003capp/config.py\u003e for other configuration options you can define.\n\nThere is also a Dockerfile for the project.\n\n## quoteimport.py\n\nThe `quoteimport.py` tool in the `app` directory lets you import quotes from a\nJSON file. The JSON file must have the following format:\n\n    {\n        \"quotes\": [\n            {\n                \"date\": \"date-in-iso8601-format\",\n                \"text\": \"quote text\"\n            },\n            //...\n        ]\n    }\n\n(This format matches the JSON export format of tropmignon.com)\n\n## Bundled components\n\nTMC2 bundles the following components:\n- Bootstrap 3.3.7: \u003chttps://github.com/twbs/bootstrap/releases/download/v3.3.7/bootstrap-3.3.7-dist.zip\u003e\n- jQuery 3.1.1: \u003chttps://code.jquery.com/jquery-3.1.1.min.js\u003e\n\n## License\n\nApache 2.0\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fagateau%2Ftmc2","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fagateau%2Ftmc2","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fagateau%2Ftmc2/lists"}