Skip to content

autogestion/pubgate-telegram

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PubGate Telegram <-> ActivityPub bridge

Extension for PubGate, federates Telegram channels and back

Requires PubGate >= 0.2.19

Deploy

Create Telegram bot and invite it to channels going to be bridged with admin permissions

Install Docker + Docker Compose

Shell

git clone https://github.com/autogestion/pubgate.git
cp -r config/extensions_sample_conf.cfg config/conf.cfg
Edit config/conf.cfg to change setup of your instance, next values should be added
EXTENSIONS = [..., "pg_telegram"]
# These example values won't work. You must get your own api_id and
# api_hash from https://my.telegram.org, under API Development.
TELEGRAM_API_ID = 12345
TELEGRAM_API_HASH = '0123456789abcdef0123456789abcdef'
TELEGRAM_BOT_TOKEN = "get from https://core.telegram.org/bots#6-botfather"
CHECK_BOXES_TIMEOUT = 3

This will connect Telegram bot to PubGate server. To connect it to Fediverse, setup PubGate AP account. Account could be created on deploy by adding next value to config/conf.cfg or later via API (described below)

USER_ON_DEPLOY = """{
    "username": "user",
    "password": "pass",                                 
    "profile": {
        "type": "Service",                                                  
        "name": "TelePub",
        "summary": "Broadcast from <a href='https://t.me/telapub' target='_blank'>Telegram channel</a>",
        "icon": {
            "type": "Image",
            "mediaType": "image/png",
            "url": "https://cdn1.iconfinder.com/data/icons/blockchain-8/48/icon0008_decentralize-512.png"
        }
    },
    "details": {
        "tgbot": {
            "channels": ["<username_of_telegram_channel>"],                                    
            "enable": true,
            "tags": ["telegram", "bridge"]                              
        }
    }
}"""

More on user configuration

  • profile - contains information which will represent bridge in Fediverse
  • details.tgbot.channels - should be updated with targeted Telegram channel(s)
  • details.tgbot.tags - tags which will be auto-added to every post, could be []
Edit requirements/extensions.txt by adding next row
git+https://github.com/autogestion/pubgate-telegram.git

Then, instance could be started

domain=put-your-domain-here.com docker-compose up -d

Usage

  • To get updates from Telegram channels (where Telegram bot was added) just follow PubGate account from any other AP account
  • To send updates to Telegram, make PubGate account follow targeted accounts (regular AP Follow, via UI or API, endpoint and payload are described in postman collection in Pubgate repo

Bots Creation via API

/user  POST

payload

Same as used for USER_ON_DEPLOY value, triple quotes should be stripped

If register by invite enabled, "invite": "<invite_code_from_config/conf.cfg>" should be added to payload

Restart app after adding new bot or updating old one

Disable/Update bot

/<username>  PATCH   (auth required)

payload

{
    "details": {
        "tgbot": {
            "channels": ["telapub"],                                    #change to update channel's list
            "enable": false,                                            #"enable": true to re-enable
            "tags": ["telegram", "bridge"]                              
        }
    }
}

About

Extension for PubGate, Telegram <-> ActivityPub bridge

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages