Tetesan Hujan is a bot to connect Telegram with Raindrop. Its main purpose is currently to save a bookmark for my own purpose.
Send exactly two strings separated by a space to @tetesan_hujan_bot in Telegram. The first string represents the link and the second represents the collection/category in which the link will be saved in Raindrop.io.
For example, the link is https://queue.acm.org/detail.cfm?id=3197520
and collection is learning
. Then, the message in Telegram will be:
To use this bot, make sure you have the access to use the bot (it is set by TELEGRAM_OWNER_ID
environment variable).
Since the original purpose is my own usage only, the @tetesan_hujan_bot is only available for me.
If you want to use the bot, please follow the Development and Deployment sections.
The bot is heavily depends on Raindrop API. Thus, any latency will be depends on Raindrop API latency.
-
Install Go
This project uses version 1.19. Follow Golang installation guideline.
-
Create your Telegram bot
Read https://telegram.org/blog/bot-revolution.
Follow https://core.telegram.org/bots for developer guide.
-
Create Raindrop.io account
Get the Raindrop's token in settings.
Follow https://developer.raindrop.io/ for more guidance.
-
Clone the project (use one of the two methods below)
Use SSH
$ git@github.com:indrasaputra/tetesan-hujan.git
Use HTTP
$ https://github.com/indrasaputra/tetesan-hujan.git
-
Go to project folder
Usually, it would be
$ cd go/src/github.com/indrasaputra/tetesan-hujan
-
Fill in the environment variables
Copy the sample env file.
$ cp env.sample .env
Then, fill the values according to your setting in
.env
file. -
Download the dependencies
$ make dep-download
or run this command if you don't have
make
installed in your local.$ go mod download
-
Run the application
$ go run cmd/bot/main.go
-
Expose your localhost to the internet
Usually, I use https://ngrok.com/
$ ngrok http $PORT
-
Send some messages to your bot in Telegram.
Currently, this project is deployed in Fly. The deployment process definiton is stated and ruled in fly.toml and run automatically using Github Actions.