mkdryden/telegram-stats-bot

Question: how can i use this for multiple chats?

Mrs-Feathers opened this issue · 4 comments

i'm using the docker version and its great for my community's general chat, but we have like ~30+ different topic chats and i need to get statistics on a few of them at the same time so i can better plan community events and stuff by seeing times people are active etc... how can i do this? should i list the CHAT_IDs? like -100XXXXXXX, -100XXXXXXX or should i copypaste the docker compose to run two bots on the same database?

in postgres i figured out using

myapp-postgresql:
image: postgres:9.6.2
volumes:
- ../docker-postgresql-multiple-databases:/docker-entrypoint-initdb.d
environment:
- POSTGRES_MULTIPLE_DATABASES: db1,db2
- POSTGRES_USER: myapp
- POSTGRES_PASSWORD:

allows me to use different databases in postgres, but running a couple instances of the bot for each room cause a weird update error, and i wasn't able to do that list with CHAT_ID

Currently there is not a way to make one bot instance handle multiple chats. It was always on the list, but I've been quite busy lately and haven't had the chance to look at it (and there are some changes to the Telegram bot API I need to double check). As far as I know, there should be no problem in using the same Postgres, but you need to make sure each bot service is pointing to the correct database (with the POSTGRES_DB environment var), so you might have:

  bot1:
    image: mkdryden/telegram-stats-bot:master
    depends_on:
      - db
    environment:
      TZ: "America/Toronto"
      BOT_TOKEN: 111111111:AAA-MpBVQ7i2cIRfwedfsfesdg6webc0r-Y
      CHAT_ID: 0
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: password
      POSTGRES_HOST: db
      POSTGRES_DB: telegram_bot_1
  bot2:
    image: mkdryden/telegram-stats-bot:master
    depends_on:
      - db
    environment:
      TZ: "America/Toronto"
      BOT_TOKEN: 111111111:AAA-MpBVQ7i2cIRfwedfsfesdg6webc0r-Y
      CHAT_ID: 0
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: password
      POSTGRES_HOST: db
      POSTGRES_DB: telegram_bot_2

From your config, I assume you are using the init script from here. Postgres 9.6 is probably too old to be supported, I think you need at least 12. I didn't look that close, but the script will probably work with later versions too.

ive got this working, however using the same bot token for multiple bots gave weird results so i had to create a new bot for each of my 30 chats, which is a bit excessive but it works for now

as a side note, you get banned from botfather for 24 hours every 5th new bot you make within an hour. so a multiple group function would be a lot more efficient