Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/hrvadl/goweekly
Application for querying top articles from https://golangweekly.com/, translating them to Ukrainian and sending to the telegram channel
https://github.com/hrvadl/goweekly
article chatgpt crawler go golang openai-api telegram telegram-bot
Last synced: 24 days ago
JSON representation
Application for querying top articles from https://golangweekly.com/, translating them to Ukrainian and sending to the telegram channel
- Host: GitHub
- URL: https://github.com/hrvadl/goweekly
- Owner: hrvadl
- License: mit
- Created: 2023-12-21T18:02:46.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2024-05-16T07:07:07.000Z (6 months ago)
- Last Synced: 2024-05-16T12:35:35.025Z (6 months ago)
- Topics: article, chatgpt, crawler, go, golang, openai-api, telegram, telegram-bot
- Language: Go
- Homepage:
- Size: 114 KB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 11
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Go weekly π€
## Quick start π
### Run app π¬
Make sure you have docker & 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:
```bash
docker compose up
```## Architecture
App consists of 4 microservices:
1. Crawler - is responsible for obtaining articles and publishing them to the RabbitMQ. Should be run as a cron/scheduled job (to be done).
2. Core - core service, responsible for listening to RabbitMQ queue and calling other services.
3. Translator - service, used for translation. Uses lingva under the hood.
4. Sender - service, used to distribute translated messages to Telegram channel.## Local software development π·π»
### Code quality π π»
Make 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:
```bash
pre-commit install
```Now, you must install [golangci-lint](https://golangci-lint.run/) and include it to your path as well.
Congrats, now pre-commit will run before your commits.
Also, in case you're using VSCode linting on save should be integrated into your editor.## What's the purpose? π₯Έ
I **like** _Go_ and I **like** reading tech articles.
I appreciate work from admins of [go-weekly website](https://golangweekly.com/).
But, _I don't like_ to be notified about fresh weekly digest by mail.
I'd like receive weekly digest directly in the telegram, because ... Because, why not?
Also, I'd like to contribute to the Ukrainian golang community and make summaries translated to ukrainian language. πΊπ¦## Contributors ππ»
- [Alex π€](https://github.com/oleksandrcherevkov)
- [Vadym π π»](https://github.com/hrvadl)## TODO
1. Run Crawler as a Cron job in Kubernetes
2. Add grpc logger & other useful interceptors
3. Add Helm chart?
4. Deploy it somewhere?
5. Add graceful shutdowns