Pixelfed 0.14.4 (FrankenPHP with Horizon and the scheduler, on the shared Postgres and Redis) and WordPress 6 with ActivityPub 9.3.1 (on a new shared MySQL, WP-Cron run by a sidecar) are peers now, each with its scenario: Pixelfed 26 checks (photos both ways with alt text, its place arriving as Rome with its coordinates, comments, likes, a boost, edits and deletes), WordPress 17 (an Article with its title, our reply, like and boost kept as comments of their kinds, its edit and removal). Pixelfed has a town driver and a pair spec: 145 checks pass, 2 expected (G-0007). What they showed: Pixelfed names our posts by their page (fixed in26dac40); on PostgreSQL its migration making caption nullable never runs, so every remote boost failed (the pasture applies it); it files a DM it fetches as followers-only (G-0007, upstream); Passport refuses a token whose user id equals its client's id. WordPress signs with RFC 9421 first, which PrivaPub now verifies (c5a69d2). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LsXgEaXee4GCU1hwYgPJXw
35 lines
1.0 KiB
Python
35 lines
1.0 KiB
Python
"""The platform registry: name -> driver class and its site."""
|
|
from dialects.akkoma import Akkoma
|
|
from dialects.gts import Gts
|
|
from dialects.hollo import Hollo
|
|
from dialects.iceshrimp import Iceshrimp
|
|
from dialects.lemmy_api import LemmyApi
|
|
from dialects.mastodon import Mastodon
|
|
from dialects.misskey_api import Misskey, Sharkey
|
|
from dialects.pixelfed import Pixelfed
|
|
from dialects.pleroma import Pleroma
|
|
from dialects.privapub import PrivaPub
|
|
|
|
DRIVERS = {
|
|
"privapub": (PrivaPub, "privapub.test"),
|
|
"gts": (Gts, "gts.test"),
|
|
"mastodon": (Mastodon, "mastodon.test"),
|
|
"misskey": (Misskey, "misskey.test"),
|
|
"sharkey": (Sharkey, "sharkey.test"),
|
|
"akkoma": (Akkoma, "akkoma.test"),
|
|
"lemmy": (LemmyApi, "lemmy.test"),
|
|
"hollo": (Hollo, "hollo.test"),
|
|
"iceshrimp": (Iceshrimp, "iceshrimp.test"),
|
|
"pleroma": (Pleroma, "pleroma.test"),
|
|
"pixelfed": (Pixelfed, "pixelfed.test"),
|
|
}
|
|
|
|
_made = {}
|
|
|
|
|
|
def driver(platform):
|
|
if platform not in _made:
|
|
cls, host = DRIVERS[platform]
|
|
_made[platform] = cls(host)
|
|
return _made[platform]
|