{"id":15064313,"url":"https://github.com/hrvadl/goweekly","last_synced_at":"2026-02-14T12:02:37.269Z","repository":{"id":213590839,"uuid":"734451874","full_name":"hrvadl/goweekly","owner":"hrvadl","description":"Application for querying top articles from https://golangweekly.com/, translating them to Ukrainian and sending to the telegram channel","archived":false,"fork":false,"pushed_at":"2024-05-16T07:07:07.000Z","size":117,"stargazers_count":3,"open_issues_count":11,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-15T17:58:19.354Z","etag":null,"topics":["article","chatgpt","crawler","go","golang","openai-api","telegram","telegram-bot"],"latest_commit_sha":null,"homepage":"","language":"Go","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/hrvadl.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-21T18:02:46.000Z","updated_at":"2024-05-15T18:52:53.000Z","dependencies_parsed_at":"2023-12-28T21:25:27.293Z","dependency_job_id":"7a0f3ace-1e74-4b9f-89ff-58ede122ca22","html_url":"https://github.com/hrvadl/goweekly","commit_stats":null,"previous_names":["hrvadl/go-weekly","hrvadl/goweekly"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/hrvadl/goweekly","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hrvadl%2Fgoweekly","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hrvadl%2Fgoweekly/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hrvadl%2Fgoweekly/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hrvadl%2Fgoweekly/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hrvadl","download_url":"https://codeload.github.com/hrvadl/goweekly/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hrvadl%2Fgoweekly/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29443468,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-14T10:51:12.367Z","status":"ssl_error","status_checked_at":"2026-02-14T10:50:52.088Z","response_time":53,"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":["article","chatgpt","crawler","go","golang","openai-api","telegram","telegram-bot"],"created_at":"2024-09-25T00:15:14.963Z","updated_at":"2026-02-14T12:02:37.248Z","avatar_url":"https://github.com/hrvadl.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Go weekly 🤓\n\n## Quick start 🚀\n\n### Run app 😬\n\nMake sure you have docker \u0026 docker compose tools installed. Then, copy contents of `.env.example` to `.env` and populate it with values. Finally, in the root of the directory run:\n\n```bash\ndocker compose up\n```\n\n## Architecture\n\nApp consists of 4 microservices:\n\n1. Crawler - is responsible for obtaining articles and publishing them to the RabbitMQ. Should be run as a cron/scheduled job (to be done).\n2. Core - core service, responsible for listening to RabbitMQ queue and calling other services.\n3. Translator - service, used for translation. Uses lingva under the hood.\n4. Sender - service, used to distribute translated messages to Telegram channel.\n\n## Local software development 👷🏻\n\n### Code quality 💅🏻\n\nMake sure you have [pre-commit](https://pre-commit.com/) installed and added to your `$PATH`. Then run following command from the root of the repo:\n\n```bash\npre-commit install\n```\n\nNow, you must install [golangci-lint](https://golangci-lint.run/) and include it to your path as well.\n\nCongrats, now pre-commit will run before your commits.\nAlso, in case you're using VSCode linting on save should be integrated into your editor.\n\n## What's the purpose? 🥸\n\nI **like** _Go_ and I **like** reading tech articles.\nI appreciate work from admins of [go-weekly website](https://golangweekly.com/).\nBut, _I don't like_ to be notified about fresh weekly digest by mail.\nI'd like receive weekly digest directly in the telegram, because ... Because, why not?\nAlso, I'd like to contribute to the Ukrainian golang community and make summaries translated to ukrainian language. 🇺🇦\n\n## Contributors 🏋🏻\n\n- [Alex 🤓](https://github.com/oleksandrcherevkov)\n- [Vadym 💅🏻](https://github.com/hrvadl)\n\n## TODO\n\n1. Run Crawler as a Cron job in Kubernetes\n2. Add grpc logger \u0026 other useful interceptors\n3. Add Helm chart?\n4. Deploy it somewhere?\n5. Add graceful shutdowns\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhrvadl%2Fgoweekly","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhrvadl%2Fgoweekly","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhrvadl%2Fgoweekly/lists"}