Coub and the Coub logo are trademarks of Coub.com Ltd and its affiliates. All rights reserved.
Coubs are property of Coub.com Ltd and their respective owners.
I do not own anything affiliated with Coub.com.
https://t.me/coub_forwarder_bot
The reason for creation of this project is to have access to coubs in telegram private or group chats. Without registration and sms.
- Subscription on channel
- Subscription on tag
- Subscription on community
Subscriptions can be created for:
- individual private chats
- supergroups
- separate topics in supergroups
User can subscribe to different coub communities and sections, by tags or directly to channels in telegram bot. Then periodically bot will send new coubs to subscribed user. Bot sends only coubs that has been published after last sent coub to chat.
-
To get all available communities and its sections:
/communities
Available communities:
community: animals-pets
sections: monthly, quarter, half, daily, fresh, rising, weekly
... truncated ... -
To subscribe to community or tag:
/subscribe community animals-pets weekly
/subscribe tag cars popular
/subscribe channel meteoralp most_recent
-
Bot will periodically send links to coubs for every subscription user has.
Example of message:
community #animals-pets #weekly
https://coub.com/view/3ca3fu -
Show user active subscriptions:
/my_subscriptions
Community subscriptions:
1: animals-pets weekly
Open coub channel in browser. Find the last word in URL. Use it.
- Java 21
- Spring boot 3.2.5
- Spring Integration
- Spring Cloud Netflix Eureka
- Spring Cloud Loadbalancer
- Spring Cloud Gateway
- Open feign
- Caffeine Cache
- PostgreSQL
- Flyway
- Micrometer tracing
- Zipkin reporter brave
- Zipkin
- Docker compose
- Telegrambots
- Prometheus
- Grafana
- Prometheus node exporter
- Prometheus postgres exporter
Microservice communication schema:
Microservice monitoring schema:
Create .env file with secret variables
JASYPT_MASTER_PASSWORD=pass
POSTGRES_CONTAINER_PASSWORD=pass
POSTGRES_CONTAINER_DB=db
POSTGRES_CONTAINER_USER=user
POSTGRES_CONTAINER_URL=jdbc:postgresql://container_name:port/db
TELEGRAM_BOT_NAME=name
TELEGRAM_BOT_API_TOKEN=token
JAR_VERSION=x.x.x-SNAPSHOT
DOCKER_HUB_USER=user
Variable JAR_VERSION is used only when building through command line docker compose build or docker build
JAR_VERSION in has to be equal the project version in build.gradle file in root folder
Builds every microservice
docker compose build
Have to run this command for every dockerfile manually
docker buildx build --platform linux/amd64,linux/arm64 --build-arg JAR_VERSION=x.x.x-SNAPSHOT -f .\Dockerfile.{microservice}:x.x.x-SNAPSHOT .
docker compose up -d
For monitoring created new docker compose project monitoring
POSTGRES_CONTAINER_PASSWORD=password
POSTGRES_CONTAINER_USER=user
DATA_SOURCE_NAME="postgresql://${POSTGRES_CONTAINER_USER}:${POSTGRES_CONTAINER_PASSWORD}@<container-name>:<port>/?sslmode=disable"
GF_SECURITY_ADMIN_USER=user
GF_SECURITY_ADMIN_PASSWORD=password
cd monitoring && docker compose up -d