Skip to content

This is a bot made for the @Scienza Telegram group, to enable the people in the group to be contacted when the topics they are interested into are discussed

Notifications You must be signed in to change notification settings

Anulo2/go-scienzabot

 
 

Repository files navigation

TODO

  • When sending the message, chech if the user exists in the gruop the list was called
  • determine what admins can do and what not; eg. should it permit to ban someone?
  • Find when to increment bookmark last update, to delete the bookmark after some time
  • Implement subcategories (already implemented in DB)
  • Refactor database/listHelpers.go methods
  • Improve user experience
  • Set default group locale for the welcome message (or welcome message with no locale)
  • Bookmarked messages should be seen from the latest one to the oldest.

ScienzaBot

This bot was made to tag the people when in a group where a lot of topics are treated.
The bot look in every message for a "list".
A list is basically a topic.
The bot supports multiple lists.
A list is called via a special character prepending the name of the list (@, #, . or !).
When a list is called, the bot contacts via private message all the users subscribed to the list.
A subscription is the relationship a user creates when he joins a list. If the group where the list was called is private, the bot will just say that a list was invoked, providing the possibility to see the message by tapping on a inline keyboard button to be tagged at the message:

If instead the group is public, the bot will also provide 2 additional buttons; One that takes the user to the group, and the other one the the message in the group:

The user also provide the possibility too "bookmark" a message. Basically the message get saved and a user can see it later in time.

[To be completed in the future]

Compilation for Alpine to include all the libraries

Requires special flag CGO_ENABLED=1 GOOS=linux go build -a -ldflags '-extldflags "-static"' .

Sample Dockerfile (The used in production one)

FROM alpine

ENV TELEGRAM_TOKEN 123:34556767867789

RUN apk update \
        && apk upgrade \
        && apk add --no-cache \
        ca-certificates \
        && update-ca-certificates 2>/dev/null || true

COPY ./scienzabot /

CMD [ "/scienzabot", "-database", "/db/sqlite", "-vv" ]

About

This is a bot made for the @Scienza Telegram group, to enable the people in the group to be contacted when the topics they are interested into are discussed

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 100.0%