Skip to content
Work In Progress
Python
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
vkfed
LICENSE
README.md
requirements.txt
sample_conf.cfg
setup.py

README.md

PubGate Vkontakte -> ActivityPub bridge

Extension for PubGate, federates posts from Vkontakte public group wall

Requires PubGate >= 0.2.20

Deploy

For targeted Vkontakte public group, create access token, enable Long Poll API in Settings -> API usage, and allow Event types -> Wall posts -> New

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 = [..., "vkfed"]
VK_POLLING_TIMEOUT = 3

This will create bridge skeleton. To establish connection(s), setup PubGate AP account(s). 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": "VkFed",
        "summary": "Broadcast from Vkontakte",
        "icon": {
            "type": "Image",
            "mediaType": "image/png",
            "url": "https://cdn1.iconfinder.com/data/icons/blockchain-8/48/icon0008_decentralize-512.png"
        }
    },
    "details": {
        "vkbot": {
            "groups": [{
                 "group_id": "<group id>",
                 "access_token": "<access token>"
                 }],                                   
            "enable": true,
            "tags": ["vkontakte", "bridge"]                              
        }
    }
}"""

More on user configuration

  • profile - contains information which will represent bridge in Fediverse
  • details.tgbot.groups - should be updated with targeted Vkontakte group(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/vkfed.git

Then, instance could be started

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

Usage

  • To get updates from Vkontakte groups just follow PubGate account from any other AP account

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": {
            "groups": [{"<group_id>": {"access_token: "<access_token>"}}],       #change to update group's list
            "enable": false,                                                     #"enable": true to re-enable
            "tags": ["vkontakte", "bridge"]                              
        }
    }
}
You can’t perform that action at this time.