snarfed / bridgy-fed Goto Github PK
View Code? Open in Web Editor NEW🌉 A bridge between decentralized social network protocols
Home Page: https://fed.brid.gy/
License: Creative Commons Zero v1.0 Universal
🌉 A bridge between decentralized social network protocols
Home Page: https://fed.brid.gy/
License: Creative Commons Zero v1.0 Universal
See comment on https://toot.cafe/@zack/101206779193111042 - I've asked him to jump in here with more details if he has them.
To give more context:
I also confused myself this morning thinking that this account is from Pleroma, and maybe it is actually, cf https://edolas.world/@0x1C3B00DA
(note it's temporarily down, but should come back I guess)
I know this whole thing is WIP, just filing this :)
So far, focus seems to be on inbound salmon, etc. Outbound salmon based on my in-reply-to posts would be amazing :)
Hi. I've found that the 'actor' URL contains the key 'followers' with an URL that when followed returns a 404 with the following additional info:
Error: Not Found
The requested URL /triptico.com/followers was not found on this server.
As far as I know, the ActivityPub spec recommends not to announce services that are not implemented. Or is it another kind of error? I'm sure fed.brid.gy keeps an internal list of followers because everything else works (i.e. posts are propagated to everyone that follows, so the follower list is somewhere inside).
On the other hand, I find your software useful and operative. Keep the good work.
Regards,
Ángel
originally reported by @deponeWD. (thank you!)
has been happening for at least a couple weeks now. example log:
185.26.156.17 - - [19/Aug/2018:16:37:01 -0700] "POST /webmention HTTP/1.1" 502 326 "https://fed.brid.gy/webmention" "WordPress/4.9.8; https://danielehniss.de; sending Webmention"
2018-08-19 23:36:54.589410 I (Params: [('source', u'https://danielehniss.de/2018/08/20/mastodon-reply-test/'), ('target', u'https://fed.brid.gy/')] )
2018-08-19 23:36:54.589740 I requests.get https://danielehniss.de/2018/08/20/mastodon-reply-test/ {u'headers': {u'User-Agent': u'...'}}
2018-08-19 23:36:55.364100 I Got 200 headers:{'x-xss-protection': '1; mode=block', 'x-content-type-options': 'nosniff', 'x-powered-by': 'PHP/5.6.37', 'transfer-encoding': '', 'content-encoding': 'gzip', 'vary': 'Accept-Encoding', 'server': 'Apache/2.2.15 (CentOS)', 'connection': 'close', 'strict-transport-security': 'max-age=10886400; includeSubDomains; preload', 'date': 'Sun, 19 Aug 2018 23:36:55 GMT', 'link': '<https://danielehniss.de/?micropub=endpoint>;;; rel="micropub", <https://indieauth.com/auth>;;; rel="authorization_endpoint", <https://tokens.indieauth.com/token>;;; rel="token_endpoint", <https://danielehniss.de/wp-json/webmention/1.0/endpoint>;;; rel="webmention", <https://danielehniss.de/wp-json/webmention/1.0/endpoint>;;; rel="http://webmention.org/", <https://danielehniss.de/wp-json/>;;; rel="https://api.w.org/", <https://danielehniss.de/?p=4705>;;; rel=shortlink', 'x-frame-options': 'DENY', 'content-type': 'text/html; charset=UTF-8', 'x-pingback': 'https://danielehniss.de/xmlrpc.php'}
2018-08-19 23:36:55.451140 I First entry: {
"type": [
"h-entry"
],
"properties": {
"content": [
{
"html": "Um die Mastodon-Webmention-Integration zu testen, muss ich eben mal mit diesem Artikel auf <a class=\"u-in-reply-to\" href=\"https://mastodon.social/@depone/100565224043066825\">auf meine Bitte Webmention zu testen</a> antworten.",
"value": "Um die Mastodon-Webmention-Integration zu testen, muss ich eben mal mit diesem Artikel auf auf meine Bitte Webmention zu testen antworten."
}
],
"name": [
"Mastodon Reply Test\n\nAntwort auf: meine Bitte Webmention zu testen\nUm die Mastodon-Webmention-Integration zu testen, muss ich eben mal mit diesem Artikel auf auf meine Bitte Webmention zu testen antworten.\n \n\nVeröffentlicht am 20.08.2018 von Daniel in Internet."
],
"in-reply-to": [
"https://mastodon.social/@depone/100565224043066825",
"https://mastodon.social/@depone/100565224043066825"
]
}
}
2018-08-19 23:36:55.459830 I requests.get https://mastodon.social/@depone/100565224043066825 {'headers': {u'Accept': u'...', u'User-Agent': u'...'}}
2018-08-19 23:36:55.987620 I Got 200 headers:{'x-request-id': Got 200 headers:{'x-request-id': '9836013e-14b4-4f70-8fa8-eb2c7312f585', 'x-xss-protection': '1; mode=block', 'x-content-type-options': 'nosniff', 'content-encoding': 'gzip', 'transfer-encoding': '', 'vary': 'Accept,Accept-Encoding', 'x-runtime': '0.035934', 'server': 'Mastodon', 'connection': 'keep-alive', 'etag': 'W/"8dfbbc62d5821350403170b021da4376"', 'link': '<https://mastodon.social/users/depone/updates/9410236.atom>; rel="alternate"; type="application/atom+xml", <https://mastodon.social/users/depone/statuses/100565224043066825>; rel="alternate"; type="application/activity+json"', 'cache-control': 'max-age=180, public', 'date': 'Sun, 19 Aug 2018 23:36:55 GMT', 'x-frame-options': 'DENY', 'x-cached': 'MISS', 'content-type': 'application/activity+json; charset=utf-8'}, 'x-xss-protection': '1; mode=block', 'x-content-type-options': 'nosniff', 'content-encoding': 'gzip', 'transfer-encoding': '', 'vary': 'Accept,Accept-Encoding', 'x-runtime': '0.035934', 'server': 'Mastodon', 'connection': 'keep-alive', 'etag': 'W/"8dfbbc62d5821350403170b021da4376"', 'link': '<https://mastodon.social/users/depone/updates/9410236.atom>; rel="alternate"; type="application/atom+xml", <https://mastodon.social/users/depone/statuses/100565224043066825>; rel="alternate"; type="application/activity+json"', 'cache-control': 'max-age=180, public', 'date': 'Sun, 19 Aug 2018 23:36:55 GMT', 'x-frame-options': 'DENY', 'x-cached': 'MISS', 'content-type': 'application/activity+json; charset=utf-8'}
2018-08-19 23:36:55.988080 I {
"@context": [
"https://www.w3.org/ns/activitystreams",
"https://w3id.org/security/v1",
{
"manuallyApprovesFollowers": "as:manuallyApprovesFollowers",
"sensitive": "as:sensitive",
"movedTo": {
"@id": "as:movedTo",
"@type": "@id"
},
"Hashtag": "as:Hashtag",
"ostatus": "http://ostatus.org#",
"atomUri": "ostatus:atomUri",
"inReplyToAtomUri": "ostatus:inReplyToAtomUri",
"conversation": "ostatus:conversation",
"toot": "http://joinmastodon.org/ns#",
"Emoji": "toot:Emoji",
"focalPoint": {
"@container": "@list",
"@id": "toot:focalPoint"
},
"featured": {
"@id": "toot:featured",
"@type": "@id"
},
"schema": "http://schema.org#",
"PropertyValue": "schema:PropertyValue",
"value": "schema:value"
}
],
"id": "https://mastodon.social/users/depone/statuses/100565224043066825",
"type": "Note",
"summary": null,
"inReplyTo": null,
"published": "2018-08-17T10:59:00Z",
"url": "https://mastodon.social/@depone/100565224043066825",
"attributedTo": "https://mastodon.social/users/depone",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"cc": [
"https://mastodon.social/users/depone/followers"
],
"sensitive": false,
"atomUri": "https://mastodon.social/users/depone/statuses/100565224043066825",
"inReplyToAtomUri": null,
"conversation": "tag:mastodon.social,2018-08-17:objectId=47088429:objectType=Conversation",
"content": "<p>Sorry, muss mal eben Webmentions testen. Jemand Zeit und Lust für einen Like oder Boost? Danke.</p><p><a href=\"https://danielehniss.de/2018/08/16/mein-blog-und-ich/\" rel=\"nofollow noopener\" target=\"_blank\"><span class=\"invisible\">https://</span><span class=\"ellipsis\">danielehniss.de/2018/08/16/mei</span><span class=\"invisible\">n-blog-und-ich/</span></a></p><p><a href=\"https://fed.brid.gy\" rel=\"nofollow noopener\" target=\"_blank\"><span class=\"invisible\">https://</span><span class=\"\">fed.brid.gy</span><span class=\"invisible\"></span></a></p>",
"contentMap": {
"de": "<p>Sorry, muss mal eben Webmentions testen. Jemand Zeit und Lust für einen Like oder Boost? Danke.</p><p><a href=\"https://danielehniss.de/2018/08/16/mein-blog-und-ich/\" rel=\"nofollow noopener\" target=\"_blank\"><span class=\"invisible\">https://</span><span class=\"ellipsis\">danielehniss.de/2018/08/16/mei</span><span class=\"invisible\">n-blog-und-ich/</span></a></p><p><a href=\"https://fed.brid.gy\" rel=\"nofollow noopener\" target=\"_blank\"><span class=\"invisible\">https://</span><span class=\"\">fed.brid.gy</span><span class=\"invisible\"></span></a></p>"
},
"attachment": [],
"tag": []
}
2018-08-19 23:36:56.043540 I source target: https://danielehniss.de/2018/08/20/mastodon-reply-test/ https://mastodon.social/@depone/100565224043066825
2018-08-19 23:36:56.244920 I requests.get https://mastodon.social/users/depone {'headers': {u'Accept': u'...', u'User-Agent': u'...'}}
2018-08-19 23:36:57.109280 I Got 200 headers:{'x-request-id': Got 200 headers:{'x-request-id': '93f4fad6-affe-4f84-8526-900054574882', 'x-xss-protection': '1; mode=block', 'x-content-type-options': 'nosniff', 'content-encoding': 'gzip', 'transfer-encoding': '', 'vary': 'Accept,Accept-Encoding', 'x-runtime': '0.353742', 'server': 'Mastodon', 'connection': 'keep-alive', 'etag': 'W/"25f68444a8a37fc3d326f309a92c6d19"', 'link': '<https://mastodon.social/.well-known/webfinger?resource=acct%3Adepone%40mastodon.social>; rel="lrdd"; type="application/xrd+xml", <https://mastodon.social/users/depone.atom>; rel="alternate"; type="application/atom+xml", <https://mastodon.social/users/depone>; rel="alternate"; type="application/activity+json"', 'cache-control': 'max-age=180, public', 'date': 'Sun, 19 Aug 2018 23:36:57 GMT', 'x-frame-options': 'DENY', 'x-cached': 'MISS', 'content-type': 'application/activity+json; charset=utf-8'}, 'x-xss-protection': '1; mode=block', 'x-content-type-options': 'nosniff', 'content-encoding': 'gzip', 'transfer-encoding': '', 'vary': 'Accept,Accept-Encoding', 'x-runtime': '0.353742', 'server': 'Mastodon', 'connection': 'keep-alive', 'etag': 'W/"25f68444a8a37fc3d326f309a92c6d19"', 'link': '<https://mastodon.social/.well-known/webfinger?resource=acct%3Adepone%40mastodon.social>; rel="lrdd"; type="application/xrd+xml", <https://mastodon.social/users/depone.atom>; rel="alternate"; type="application/atom+xml", <https://mastodon.social/users/depone>; rel="alternate"; type="application/activity+json"', 'cache-control': 'max-age=180, public', 'date': 'Sun, 19 Aug 2018 23:36:57 GMT', 'x-frame-options': 'DENY', 'x-cached': 'MISS', 'content-type': 'application/activity+json; charset=utf-8'}
2018-08-19 23:36:57.109810 I {
"@context": [
"https://www.w3.org/ns/activitystreams",
"https://w3id.org/security/v1",
{
"manuallyApprovesFollowers": "as:manuallyApprovesFollowers",
"sensitive": "as:sensitive",
"movedTo": {
"@id": "as:movedTo",
"@type": "@id"
},
"Hashtag": "as:Hashtag",
"ostatus": "http://ostatus.org#",
"atomUri": "ostatus:atomUri",
"inReplyToAtomUri": "ostatus:inReplyToAtomUri",
"conversation": "ostatus:conversation",
"toot": "http://joinmastodon.org/ns#",
"Emoji": "toot:Emoji",
"focalPoint": {
"@container": "@list",
"@id": "toot:focalPoint"
},
"featured": {
"@id": "toot:featured",
"@type": "@id"
},
"schema": "http://schema.org#",
"PropertyValue": "schema:PropertyValue",
"value": "schema:value"
}
],
"id": "https://mastodon.social/users/depone",
"type": "Person",
"following": "https://mastodon.social/users/depone/following",
"followers": "https://mastodon.social/users/depone/followers",
"inbox": "https://mastodon.social/users/depone/inbox",
"outbox": "https://mastodon.social/users/depone/outbox",
"featured": "https://mastodon.social/users/depone/collections/featured",
"preferredUsername": "depone",
"name": "depone",
"summary": "<p>Father of Four. Freelance Web Designer. Coffee Enthusiast. Bicyclist. Skateboarding Amateur. Lover of Life.</p>",
"url": "https://mastodon.social/@depone",
"manuallyApprovesFollowers": false,
"publicKey": {
"id": "https://mastodon.social/users/depone#main-key",
"owner": "https://mastodon.social/users/depone",
"publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvf81RyIYINnqnx7Xa+4g\nczQp3UwV8vK26HjY+UFmId2aA+cXtIV5gJZx95iV2f7rp37tBQHLNMQj5yUJnpNM\neHQIUHONqGMyNXtIwgnwYkz57M0kMI/5bIEWARKSNQIA47tTD950Ntc4onG+BpBd\nOuBLkRFNi28ahdQTKl8GvJ4WjvUzPZuXhRMQMa/HOLuIKywzT4ORa+pJ0Wlx6spS\nOI2ex8O6AkurMoklnP7RgixOkZ/WQjYIJaviub1q0EN4PO1jfJhrgC/In37R9CoK\nY/o6755l+N/HZqGpWFH1Wzzg4C0anVLHAW9fzaNTkuc2no0tjzjmjZEKbRGSqzLT\niwIDAQAB\n-----END PUBLIC KEY-----\n"
},
"tag": [],
"attachment": [
{
"type": "PropertyValue",
"name": "Blog",
"value": "<a href=\"https://danielehniss.de\" rel=\"me nofollow noopener\" target=\"_blank\"><span class=\"invisible\">https://</span><span class=\"\">danielehniss.de</span><span class=\"invisible\"></span></a>"
},
{
"type": "PropertyValue",
"name": "Website",
"value": "<a href=\"https://depone.net\" rel=\"me nofollow noopener\" target=\"_blank\"><span class=\"invisible\">https://</span><span class=\"\">depone.net</span><span class=\"invisible\"></span></a>"
}
],
"endpoints": {
"sharedInbox": "https://mastodon.social/inbox"
},
"icon": {
"type": "Image",
"mediaType": "image/jpeg",
"url": "https://files.mastodon.social/accounts/avatars/000/035/790/original/7be5d70ea7b57bc4.jpg"
},
"image": {
"type": "Image",
"mediaType": "image/png",
"url": "https://files.mastodon.social/accounts/headers/000/035/790/original/2f2cd3264312b6bd.png"
}
}
2018-08-19 23:36:57.845480 I requests.post https://mastodon.social/users/depone/inbox {'headers': {'Date': u'...', 'Content-Type': u'...', u'User-Agent': u'...'}, 'json': {
"@context": "https://www.w3.org/ns/activitystreams",
"object": {
"content": "Um die Mastodon-Webmention-Integration zu testen, muss ich eben mal mit diesem Artikel auf <a class=\"u-in-reply-to\" href=\"https://mastodon.social/@depone/100565224043066825\">auf meine Bitte Webmention zu testen</a> antworten.",
"inReplyTo": "https://mastodon.social/users/depone/statuses/100565224043066825",
"name": "Mastodon Reply Test\n\nAntwort auf: meine Bitte Webmention zu testen\nUm die Mastodon-Webmention-Integration zu testen, muss ich eben mal mit diesem Artikel auf auf meine Bitte Webmention zu testen antworten.\n \n\nVer\u00f6ffentlicht am 20.08.2018 von Daniel in Internet.",
"url": "https://danielehniss.de/2018/08/20/mastodon-reply-test/",
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Note",
"id": "https://danielehniss.de/2018/08/20/mastodon-reply-test/",
"cc": [
"https://www.w3.org/ns/activitystreams#Public",
"https://mastodon.social/users/depone",
"https://mastodon.social/users/depone/followers"
]
},
"type": "Create"
}, 'auth': <httpsig.requests_auth.HTTPSignatureAuth object at 0xfa4b5ff0>}
2018-08-19 23:37:01.854360 I Got 401 headers:{'x-request-id': Got 401 headers:{'x-request-id': '0bf145c8-f016-4f41-a8ef-05d231c2bc1b', 'x-xss-protection': '1; mode=block', 'x-content-type-options': 'nosniff', 'content-encoding': 'gzip', 'transfer-encoding': '', 'vary': 'Accept-Encoding', 'x-runtime': '3.521254', 'server': 'Mastodon', 'connection': 'keep-alive', 'cache-control': 'no-cache', 'date': 'Sun, 19 Aug 2018 23:37:01 GMT', 'x-frame-options': 'DENY', 'content-type': 'text/plain; charset=utf-8'}, 'x-xss-protection': '1; mode=block', 'x-content-type-options': 'nosniff', 'content-encoding': 'gzip', 'transfer-encoding': '', 'vary': 'Accept-Encoding', 'x-runtime': '3.521254', 'server': 'Mastodon', 'connection': 'keep-alive', 'cache-control': 'no-cache', 'date': 'Sun, 19 Aug 2018 23:37:01 GMT', 'x-frame-options': 'DENY', 'content-type': 'text/plain; charset=utf-8'}
2018-08-19 23:37:01.854860 I Public key not found for key acct:[email protected]
2018-08-19 23:37:01.855060 I Received 401 from https://mastodon.social/users/depone/inbox:
Public key not found for key acct:[email protected]
I wanted to file this request, because I remembered something from last week: I didn't configure to render a backlink yet on my source pages to https://fed.brid.gy/ for 'notes' (they are now, so it's fine). However, the post did show up when using fed.brid.gy. Skimming the code, I don't see a check for a backlink anywhere, unless I missed it completely.
If it's there, don't mind me of course, but I guess it can't hurt for a double check :)
The Atom Default Feed plugin mentioned in the docs (https://wordpress.org/plugins/atom-default-feed/) has been removed from Wordpress plugins.
This plugin was closed on December 22, 2018 and is no longer available for download. Reason: Author Request.
Hi @snarfed Congratulations for the work!!!
I´m trying to make IndieWeb work on my website comunicacionabierta.net since I just discovered. I think this is too good to be true... the problem is that I can´t make it work!!!
My server is a cloud one on Siteground - CentOS - and I don´t know exactly what´s my problem.
Mathias Pfefferle told me something about the webfinger but my knowledge is very limited.
Could you know what steps should I follow?
Thanks!
Shouldn't https://github.com/snarfed/bridgy-fed/blob/master/webfinger.py#L77 use the hub from the next line, if any, not resp.url
for the hub parameter?
we're discussing in IRC right now how following an indieweb site in mastodon isn't yet supported or doesn't work well, and we don't have a good story for the reverse, ie indicating to mastodon that you're following a mastodon account.
i think the feature request is for bridgy fed to translate and deliver indieweb follow posts (ie u-x-follow-of
) to ActivityPub Follow
activities, and vice versa. (TODO: what's the OStatus equivalent?)
two difficulties:
Follow
handling is currently buggy and makes Mastodon-specific assumptions, so it doesn't currently work with other ActivityPub implementations: mastodon/mastodon#4933Let's say I configure my WebMention publishing script to always send a WebMention to fed.brid.gy regardless of whether an actual link to it appears there. Will it work, or does fed.brid.gy's webmention endpoint require that the entry contain a link to it?
Context: I am writing a simple WebMention conduit for Atom feeds and was hoping to make it possible to configure fed.brid.gy as an always-notify endpoint without requiring users to add a link to their template (or manually to entries with a Fediverse link or whatever).
@kickscondor reported that following their site from Mastodon isn't completing. i reproduced from @[email protected]. looking at the bridgy fed logs, we get the AP Follow request, and send this Accept:
{
"@context": "https://www.w3.org/ns/activitystreams",
"object": {
"object": "https://fed.brid.gy/www.kickscondor.com",
"type": "Follow",
"actor": "https://mastodon.technology/users/snarfed"
},
"type": "Accept",
"id": "tag:fed.brid.gy:accept/kickscondor.com/https://mastodon.technology/1b4f5bd8-7f3b-4501-89cc-b9b223a09e37",
"actor": "https://fed.brid.gy/www.kickscondor.com"
}
...to which mastodon returns HTTP 401 with no body. 😢
i suspect the problem is that we're mixing kickscondor.com
and www.kickscondor.com
.
https://kickscondor.com/ itself redirects to https://www.kickscondor.com/ , which is fine. both domains redirect bridgy fed's paths (webfinger etc) to bridgy fed directly, which should also be fine.
however, note that the actor
in the AS2 activity above is www, but the id
is the naked domain. we also store and return different public keys via webfinger for www
vs naked, below, which is probably the root cause of the 401.
subject: acct:[email protected]
data:application/magic-public-key,RSA.oYe2XI8f3TdSI9Laagw7kPPvXr_GSN5h6F6XLA3STBlYpqqaZTXp8Xe6lp8U0BTkG8-NF9ueSO1chbDOx5rCICUaLawSKK8eI18_DqgrOy9xHS28Z_TWXJSiHZEvBpI3hmEZPpDwgdnnaNZCC5MsmdSepl7mH9WWkPxYOiC7vMk=.AQAB
subject: acct:[email protected]
data:application/magic-public-key,RSA.rCiWTbbPprgvZJMdVbvWzCRDHw6ebGtc1BxLcWJIYhkqrQjx5YFBec2Owzn16Ht6yg_dnGQmL1p5mgS8O_f3Ghin1WGC4aShUnKkU1Ia2Hkv-1wEt757GvUhpFgXwPg3xvCTrJwBs_Ypxb5MbMqrBoRQVHXU0tg5XJIkFpiFNU8=.AQAB
(#29 is somewhat related, but probably not the same thing, since its error actually included the message Public key not found.)
So I can be lazy and just put the link to fed.brid.gy in all reply posts not to silos -- will this just work and do nothing if I'm replying to a non-Salmon non-Activitypub site?
Now you'll get a json file, which is kind of weird.
It might also help with #16 where, if we append the 'source' url of a post as a get parameter in the url property, it would allow us to redirect a post to the right place on the web.
So
I have some time this week to see if I could experiment with this.
Another option is that we open a request at mastodon to drop the validation of the property url, but I'm not so sure if they will remove it again.
right now, we interpret every incoming webmention as a new Create
/post
. this is obviously problematic. we should instead store posts we've federated so that we know when to send Update
etc instead.
This is more of a tracking issue. Since I joined the fediverse, my site gets a lot of requests on certain paths. I want to document them here first to begin with, and then maybe eventually see if something needs to be done (e.g. more redirects from in .htaccess to bridgy fed to handle things) . A simple reference on the homepage of bridgy fed would be fine for me as well as an end result :)
https://fediverse.network/info contains some info what it crawls for and which endpoints it looks for.
Path | Method | Example referer | Information |
---|---|---|---|
/.well-known/nodeinfo | GET | Friendica 'The Tazmans Flax-lily' 2018.12-dev-1288; https://pirati.ca / Friendica 'Asparagus' 3.5.4-1234; | Figured out it had something todo with the fediverse while looking at pixelfed. More background on that issue: pixelfed/pixelfed#8 What's interesting is that it's from Friendica, something I never interacted with (couple of different urls from there) |
/api/v1/instance | GET | MastodonInstances (https://instances.social), Friendica 'The Tazmans Flax-lily' 2018.12-dev-1289; https://pirati.ca | Seems to be a site that allows you to 'choose' the right instance for you. But got it from friendica too |
/api/gnusocial/version.json | GET | Friendica 'The Tazmans Flax-lily' 2018.12-dev-1288; https://pirati.ca | Friendica |
/api/statusnet/version.json | GET | Friendica 'The Tazmans Flax-lily' 2018.12-dev-1288; https://pirati.ca | Friendica |
/siteinfo.json | GET | Friendica 'The Tazmans Flax-lily' 2018.12-dev-1288; https://pirati.ca | Friendica |
/statistics.json | GET | Friendica 'The Tazmans Flax-lily' 2018.12-dev-1288; https://pirati.ca | Friendica |
/api/v1/timelines/tag/fail | GET | Python-urllib/3.5 | No idea if it's related with the fediverse yet, but could be. |
/poco | GET | Friendica 'Asparagus' 3.5.4-1234; https://friendica.obscuritus.ca | Friendica - no clue what this would look for |
/api/statusnet/config | GET | fediverse.network crawler (https://fediverse.network/info [email protected]) | search enging |
/api/v1/config | GET | fediverse.network crawler (https://fediverse.network/info [email protected]) | crawler |
This list is of requests which didn't have a referer, but feel like fediverse related.
haven't looked into it much yet. evidently a GNU Social fork? not sure how widely used it is. the main https://postactiv.com/ site is currently down. https://www.patreon.com/postActiv has some info, including claims that it supports both OStatus and ActivityPub.
... as illustrated by the mild confusion with syndication here: https://chat.indieweb.org/2017-10-16/1508204197556000
should have thought of this earlier. right now, the first thing many users are doing is trying to discover themselves in mastodon and hubzilla, not send a response. so far, not much luck. we should figure that out.
mastodon background in mastodon/mastodon#1441 (comment) , which claims that atom feed with PuSH hub and webfinger with atom, profile, salmon, and magic key links should be enough...but that's evidently not true, since @miklb @mblaney @aaronpk all have those, and they still can't discover their sites from inside mastodon.
(i do show up inside mastodon, as @[email protected]
, which is misleading. that's probably only because i've federated replies etc into it.)
What should I use if I want fed.brid.gy to deliver slaps to me as webmention?
e.g. fetching a profile on mastodon 1.4.3 with our activitypub conneg headers 500s (!):
$ curl -o /dev/null -v -H 'Accept: application/ld+json; profile="https://www.w3.org/ns/activitystreams"; q=0.9, application/activity+json; q=0.8' https://bne.social/@ashkyd/1259433
...
< HTTP/1.1 500 Internal Server Error
we should return 502 with details on the fedsocnet's error.
thanks @mblaney!
I received a reply: https://writing.exchange/@matt/101066523112656548 this came through as a reply webmention. The author h-card has an empty photo and the name is equal to the url rather than being the username.
I know the ActivityPub to webmention isn't using the mf2 from mastodon, but looking at the mf2 on the reply page, it does contain an accurate author h-card: http://pin13.net/mf2/?url=https%3A%2F%2Fwriting.exchange%2F%40matt%2F101066523112656548
Hi, I've had a look at https://fed.brid.gy/ and https://brid.gy/, and to me it's unclear what's the difference between Bridgy-Fed and Bridgy?
When would I use one of them but not the other? Why did the Bridgy-Fed people proceed with creating Bridgy-Fed although Bridgy already exists?
Why are they hosted on the same 2nd level domain? Feels as if the same person is competing with him/herself about making both projects popular. Hmm and you (@snarfed ) own both projects here in GitHub too :- ) such a mystery (to me).
This is what I get when running the setup instructions from the readme.
If I instead run pip install -r requirements.freeze.txt
I get this when running the tests:
ImportError: No module named django.template.loaders
Quite some time ago I set up fed.brid.gy on bessbuzz.biz, which produces an Atom feed with a WebSub hub. I have attempted to follow @[email protected] from multiple Mastodon accounts but each time I just see it as a “you requested to follow” but the request never gets granted.
I’ve also tried sending webmentions to posts on mastodon using the instructions on fed.brid.gy but they never show up on the target posts.
As far as I can tell, all of my required atom, websub, and webmention discovery tags are set up correctly, and in particular I’ve been able to interact with other IndieWeb sites for quite some time now.
What steps can I take to figure out what’s going wrong? The troubleshooting steps on the instructions page don’t cover anything beyond a very narrow slice of the experience.
https://github.com/Chocobozzz/PeerTube
https://docs.joinpeertube.org/lang/en/devdocs/federation.html
apparently it can communicate with mastodon, so sounds hopeful :)
So replies work now, awesome!
A post is more or less the same as a reply with these differences:
another tricky part: fed bridgy doesn't really care to which federated service you want to post on. It could be diaspora or something else in the future too, so either
I will do some tests and see what the minimum object should be.
The Bridgy Fed page says one can just use Granary to convert mf2 content to Atom for federation use... it shows putting a "hub" argument in to the granary URL, but would my site need to support something (like PSHB notifications for the HTML page) in order for this to work, or does it poll?
Trying to use bridgy-fed I get the following error returned:
400 Bad Request
The server could not comply with the request since it is either malformed or otherwise incorrect.
Couldn't find a <a href="http://microformats.org/wiki/representative-hcard-parsing">representative h-card</a> on https://triptico.com/
Where the greater-than, less-than and quote symbols are incorrectly escaped, so I see them verbatim instead of a clickable link.
When an item gets posted from a feed to Mastodon, it gets a rather long-winded CW that is a mishmash of the first few paragraphs' worth of text; as seen on dragon.style:
But the <title>
element is nowhere to be found! It seems like using <title>
for the CW text would be better.
The actual behavior of what's displayed below the CW also seems rather inconsistent and weird.
Not really an issue, but I just saw this in #wordpress chat, and wasn't sure if you knew about it: https://github.com/pfefferle/wordpress-ostatus
Curious how bridgy-fed may dovetail with it? I'm hoping to try to get time to test them both this weekend...
their current released ostatus support is incomplete. @annando is rewriting it in the new-ostatus
branch in his fork: https://github.com/annando/friendica/tree/new-ostatus
more discussion in friendica/friendica#3696.
...specifically, converting inbound webmentions to outbound AP requests (Create
, Update
, etc) currently supports image attachments via mf2 u-photo
, but only the src
attribute, not srcset
.
thanks to @fluffy-critter for the initial nudge in #48. currently blocked on microformats/mf2py#169. background: microformats/microformats2-parsing#7. related: snarfed/bridgy#592.
I have other stuff that uses things in that directory, and also redirecting the whole thing would give you the power to generate LetsEncrypt certs for my domain :)
discovered by @khurtwilliams today: if an incoming webmention doesn't have a u-url
, we happily convert it to an AS2 object without id
, which mastodon accepts and returns HTTP 202, but never actually displays. i think the lack of id
is the root cause.
My site uses relative links wherever possible, when rendering HTML. As a result, the HTML for this entry gets e-content
data with relative href/src/srcset like
<div id="preamble" class="body">
<p><div class="images"><img alt="" title="It has been a long day, and this morning's shower has lost its effect on Hira's appearance." src="/static/_img/54/eb7b/unity-209_1328681e22_960x512.jpg" width="960" height="512" srcset="/static/_img/54/eb7b/unity-209_1328681e22_960x512.jpg 1x, /static/_img/54/eb7b/unity-209_1328681e22_1920x1024.jpg 2x"></div> </p>
</div>
Unfortunately this is being sent directly via ActivityPub, e.g. this request with mf2 like:
"content": [
{
"html": "<div class=\"body\" id=\"preamble\">\n <p></p><div class=\"images\"><img alt=\"\" height=\"512\" src=\"/_async/_img/54/eb7b/unity-209_1328681e22_960x512.jpg\" srcset=\"/_async/_img/54/eb7b/unity-209_1328681e22_960x512.jpg 1x, /_async/_img/54/eb7b/unity-209_1328681e22_1920x1024.jpg 2x\" title=\"It has been a long day, and this morning's shower has lost its effect on Hira's appearance.\" width=\"960\"/></div> <p></p>\n </div>",
"value": ""
}
],
When this appears on Mastodon, image-only posts look like this:
I'm not finding any definitive answer about this on mf2 but my probably-bad assumption is that it would be up to the consumer (in this case, bridgy fed) to rewrite relative links, including <img src>
and <img srcset>
.
it's supposedly mostly (but not completely?) ostatus compatible:
it does AP, so it might already work! first thing to do is try testing it.
https://pixelfed.org , https://github.com/pixelfed/pixelfed , cc @swentel @dansup.
alternatively we could just lobby for microformats and webmentions. 😄
[note, last issue I open, all other things are fine ;)]
I mentioned this in #16 (comment) already. When you reply to a post on mastodon, this post can optionally show up in your notifications column (it's a setting). You need to add a mention tag in the object property, e.g.
[tag] => Array
(
[0] => stdClass Object
(
[type] => Mention
[href] => https://mastodon.social/users/swentel
[name] => @swentel
)
)
I guess we can just automatically add the user you're replying to as a mention tag as a first step.
I think I should be able to get that coded, so give a few days first :)
(edit - removed the code example, since that's for salmon, ignore that part)
afaict most of the fedsocnets don't have permalinks or other markup for individual likes or boosts. mastodon definitely doesn't. if we want to backfeed those as webmentions, we either need to get the fedsocnets to add permalinks and mf2 for them, or store the AP posts and Salmon slaps and render them ourselves, like bridgy. ugh.
seems to be fully ostatus compatible, i just haven't gotten an end to end test all the way through in testing. next step for me is to add a PuSH hub to snarfed.org's atom, which is where it currently stops:
2017-09-11 14:09:12 LOG_DEBUG: [localhost:49561.bf2ad337 POST /main/salmon/user/1] Salmon envelope parsing failed with: FeedSubNoHubException
2017-09-11 14:09:12 LOG_DEBUG: [localhost:49561.bf2ad337 POST /main/salmon/user/1] action.php - User error '400' on 'usersalmon': FeedSubNoHubException
2017-09-11 14:09:12 LOG_ERR: [localhost:49561.bf2ad337 POST /main/salmon/user/1] Handled clientError (400) but cannot output into desired format (NULL): 'FeedSubNoHubException'
requested by @mblaney. /
is a static file handler, so the full serving path is google's. it currently always gzip-compresses the response and returns the Content-Encoding: gzip
header.
oddly, i haven't found a way to ask it not to. the HTTP spec says omitting Accept-Encoding
says you're ok with anything, but Accept-Encoding: identity
should prevent it...but it doesn't.
also:
Note: In the absence of a Content-Type header provided by your application, a default Content-Type: text/html header will be set, but the automatic gzip compression will not be applied.
...but that's obviously not happening. :/
Sometimes you might want to delete a post/reply. This is how a minimal delete activity looks like
stdClass Object
(
[@context] => https://www.w3.org/ns/activitystreams
[type] => Delete
[actor] => https://fed.brid.gy/realize.be
[id] => https://fed.brid.gy/realize.be?unique-id-needed-6
[to] => Array
(
[0] => https://www.w3.org/ns/activitystreams#Public
[1] => https://mastodon.social/users/swentel
)
[object] => stdClass Object
(
[id] => https://fed.brid.gy/realize.be?unique-id-needed-6
)
)
I posted to the shared inbox of mastodon.social in this case. Most of my test replies from yesterday are deleted now.
Not sure how to we'd tell bridgy that though since it works with sending webmentions.
mastodon's AP code returns HTTP 202 to inbox POSTs that fail signature verification:
TODO:
...for new mastodon AP activities with embedded objects, and new fed.brid.gy-wrapped ids (#16).
i attempted the first part in 2ffd103. we now need to unwrap target post URLs and use mastodon HTML URLs instead of AS2 URLs as the source.
eg the AS2 reply activity from mastodon below, for https://mastodon.social/users/swentel/statuses/100895743653130715, resulted in a bridgy fed webmention with AS2 source https://mastodon.social/users/swentel/statuses/100895743653130715/activity and wrapped target https://fed.brid.gy/r/https://realize.be/reply/content/1594 . more details on https://webmention.io/realize.be/webmention/kfzxXXvcsK4CZAUczQii . cc @swentel.
{
"@context": "...",
"id": "https://mastodon.social/users/swentel/statuses/100895743653130715/activity",
"type": "Create",
"actor": "https://mastodon.social/users/swentel",
"published": "2018-10-14T19:54:29Z",
"to": [
"https://mastodon.social/users/swentel/followers"
],
"cc": [
"https://www.w3.org/ns/activitystreams#Public",
"https://fed.brid.gy/realize.be"
],
"object": {
"id": "https://mastodon.social/users/swentel/statuses/100895743653130715",
"type": "Note",
"summary": null,
"inReplyTo": "https://fed.brid.gy/r/https://realize.be/reply/content/1594",
"published": "2018-10-14T19:54:29Z",
"url": "https://mastodon.social/@swentel/100895743653130715",
"attributedTo": "https://mastodon.social/users/swentel",
"to": [
"https://mastodon.social/users/swentel/followers"
],
"cc": [
"https://www.w3.org/ns/activitystreams#Public",
"https://fed.brid.gy/realize.be"
],
"sensitive": false,
"atomUri": "https://mastodon.social/users/swentel/statuses/100895743653130715",
"inReplyToAtomUri": "https://fed.brid.gy/r/https://realize.be/reply/content/1594",
"conversation": "tag:mastodon.social,2018-09-23:objectId=55290633:objectType=Conversation",
"content": "<p><span class=\"h-card\"><a href=\"https://fed.brid.gy/r/http://realize.be\" class=\"u-url mention\">@<span>realize.be</span></a></span> That's pretty awesome!</p>",
"contentMap": {
"en": "<p><span class=\"h-card\"><a href=\"https://fed.brid.gy/r/http://realize.be\" class=\"u-url mention\">@<span>realize.be</span></a></span> That's pretty awesome!</p>"
},
"attachment": [],
"tag": [
{
"type": "Mention",
"href": "https://fed.brid.gy/realize.be",
"name": "@[email protected]"
}
]
},
"signature": "...",
}
I added the nginx redirect rewrite ^/.well-known/(host-meta|webfinger).* https://fed.brid.gy/$request_uri redirect;
to my nginx conf file
However when I try visiting that url https://miklb.com/.well-known/webfinger
to see why I wasn't showing up in Mastodon search, I see that it gets an extra trailing slash https://fed.brid.gy//.well-known/webfinger
Suggestions?
bridgy error on like
2018-07-16 21:46:33.446730 I requests.get https://mastodon.technology/@snarfed/100119606571241751 {'headers': {u'Accept': u'...', u'User-Agent': u'...'}} 2018-07-16 21:46:33.607850 I Got 200 headers:{'x-request-id': Got 200 headers:{'x-request-id': 'ae85c544-36a7-419a-9a19-cf8ca682f4d9', 'x-xss-protection': '1; mode=block', 'x-content-type-options': 'nosniff', 'content-encoding': 'gzip', 'transfer-encoding': '', 'strict-transport-security': 'max-age=31536000', 'vary': 'Accept,Accept-Encoding', 'x-runtime': '0.026819', 'server': 'Mastodon', 'connection': 'keep-alive', 'etag': 'W/"9c5ec0bf5a0b9234f69bbca81eadcfa5"', 'link': '; rel="alternate"; type="application/atom+xml", ; rel="alternate"; type="application/activity+json"', 'cache-control': 'max-age=180, public', 'date': 'Mon, 16 Jul 2018 21:46:33 GMT', 'x-frame-options': 'DENY', 'content-type': 'application/activity+json; charset=utf-8'}, 'x-xss-protection': '1; mode=block', 'x-content-type-options': 'nosniff', 'content-encoding': 'gzip', 'transfer-encoding': '', 'strict-transport-security': 'max-age=31536000', 'vary': 'Accept,Accept-Encoding', 'x-runtime': '0.026819', 'server': 'Mastodon', 'connection': 'keep-alive', 'etag': 'W/"9c5ec0bf5a0b9234f69bbca81eadcfa5"', 'link': '; rel="alternate"; type="application/atom+xml", ; rel="alternate"; type="application/activity+json"', 'cache-control': 'max-age=180, public', 'date': 'Mon, 16 Jul 2018 21:46:33 GMT', 'x-frame-options': 'DENY', 'content-type': 'application/activity+json; charset=utf-8'} 2018-07-16 21:46:33.608290 I {"@context":["https://www.w3.org/ns/activitystreams","https://w3id.org/security/v1",{"manuallyApprovesFollowers":"as:manuallyApprovesFollowers","sensitive":"as:sensitive","movedTo":"as:movedTo","Hashtag":"as:Hashtag","ostatus":"http://ostatus.org#","atomUri":"ostatus:atomUri","inReplyToAtomUri":"ostatus:inReplyToAtomUri","conversation":"ostatus:conversation","toot":"http://joinmastodon.org/ns#","Emoji":"toot:Emoji","focalPoint":{"@container":"@list","@id":"toot:focalPoint"},"featured":"toot:featured","schema":"http://schema.org#","PropertyValue":"schema:PropertyValue","value":"schema:value"}],"id":"https://mastodon.technology/users/snarfed/statuses/100119606571241751","type":"Note","summary":null,"content":"\u003cp\u003eInteresting unintended consequence of federation: when you post a link, \u0026gt;1k mastodon nodes all fetch it at the same time to render a link preview, which results in a small DDoS.\u003c/p\u003e","inReplyTo":null,"published":"2018-05-30T18:12:37Z","url":"https://mastodon.technology/@snarfed/100119606571241751","attributedTo":"https://mastodon.technology/users/snarfed","to":["https://www.w3.org/ns/activitystreams#Public"],"cc":["https://mastodon.technology/users/snarfed/followers"],"sensitive":false,"atomUri":"https://mastodon.technology/users/snarfed/statuses/100119606571241751","inReplyToAtomUri":null,"conversation":"tag:mastodon.technology,2018-05-30:objectId=5634750:objectType=Conversation","attachment":[{"type":"Document","mediaType":"image/png","url":"https://static.mastodon.technology/media_attachments/files/000/979/283/original/d931a7f3acc5b062.png","name":null}],"tag":[]} 2018-07-16 21:46:33.610470 I source target: https://dougbeal.com/2018/07/16/ryan-barrett-interesting-unintended-consequence-of-federation-mastodon-for-tech-folks/ https://mastodon.technology/@snarfed/100119606571241751 2018-07-16 21:46:33.787349 I requests.get https://mastodon.technology/users/snarfed {'headers': {u'Accept': u'...', u'User-Agent': u'...'}} 2018-07-16 21:46:34.453160 I Got 200 headers:{'x-request-id': Got 200 headers:{'x-request-id': '476bba7b-9dc6-4559-a3bf-40c4e91b2ce1', 'x-xss-protection': '1; mode=block', 'x-content-type-options': 'nosniff', 'content-encoding': 'gzip', 'transfer-encoding': '', 'strict-transport-security': 'max-age=31536000', 'vary': 'Accept,Accept-Encoding', 'x-runtime': '0.523285', 'server': 'Mastodon', 'connection': 'keep-alive', 'etag': 'W/"6ccc9fcd4d6d65f76e2439e3889d96ca"', 'link': '; rel="lrdd"; type="application/xrd+xml", ; rel="alternate"; type="application/atom+xml", ; rel="alternate"; type="application/activity+json"', 'cache-control': 'max-age=180, public', 'date': 'Mon, 16 Jul 2018 21:46:34 GMT', 'x-frame-options': 'DENY', 'content-type': 'application/activity+json; charset=utf-8'}, 'x-xss-protection': '1; mode=block', 'x-content-type-options': 'nosniff', 'content-encoding': 'gzip', 'transfer-encoding': '', 'strict-transport-security': 'max-age=31536000', 'vary': 'Accept,Accept-Encoding', 'x-runtime': '0.523285', 'server': 'Mastodon', 'connection': 'keep-alive', 'etag': 'W/"6ccc9fcd4d6d65f76e2439e3889d96ca"', 'link': '; rel="lrdd"; type="application/xrd+xml", ; rel="alternate"; type="application/atom+xml", ; rel="alternate"; type="application/activity+json"', 'cache-control': 'max-age=180, public', 'date': 'Mon, 16 Jul 2018 21:46:34 GMT', 'x-frame-options': 'DENY', 'content-type': 'application/activity+json; charset=utf-8'} 2018-07-16 21:46:34.453630 I {"@context":["https://www.w3.org/ns/activitystreams","https://w3id.org/security/v1",{"manuallyApprovesFollowers":"as:manuallyApprovesFollowers","sensitive":"as:sensitive","movedTo":"as:movedTo","Hashtag":"as:Hashtag","ostatus":"http://ostatus.org#","atomUri":"ostatus:atomUri","inReplyToAtomUri":"ostatus:inReplyToAtomUri","conversation":"ostatus:conversation","toot":"http://joinmastodon.org/ns#","Emoji":"toot:Emoji","focalPoint":{"@container":"@list","@id":"toot:focalPoint"},"featured":"toot:featured","schema":"http://schema.org#","PropertyValue":"schema:PropertyValue","value":"schema:value"}],"id":"https://mastodon.technology/users/snarfed","type":"Person","following":"https://mastodon.technology/users/snarfed/following","followers":"https://mastodon.technology/users/snarfed/followers","inbox":"https://mastodon.technology/users/snarfed/inbox","outbox":"https://mastodon.technology/users/snarfed/outbox","featured":"https://mastodon.technology/users/snarfed/collections/featured","preferredUsername":"snarfed","name":"Ryan Barrett","summary":"\u003cp\u003e\u003ca href=\"https://snarfed.org\" rel=\"nofollow noopener\" target=\"_blank\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003esnarfed.org\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e\u003c/p\u003e","url":"https://mastodon.technology/@snarfed","manuallyApprovesFollowers":false,"publicKey":{"id":"https://mastodon.technology/users/snarfed#main-key","owner":"https://mastodon.technology/users/snarfed","publicKeyPem":"-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4zEoZNdw2Rc4y2vhQjq2\n3+QlfE/X1uW4QJglIBGbLEgydF+8NTGuSamejlPMdetcrtxE3WzKbkbyicrAthuH\njWaz5k5RwtEcvXYyrFRsnR3R2g+vLzYNyCL6N8im3shKe/6ZYi0FWk4eE7hUAtXS\n4+PU4WHCD5hyuhIn/TKE9MKwkRAF5a7Qf+86zNyxQn4ME/jzR8ewY6OQHlQYmKfS\nb07gsUC9liSRQsUkV+uMUxLtbrlv40ZI6mUDoQyB0HGNyc39iEFufgTxOPyMQmoP\nBT4/LZ1stSmaA8tOrq1WAT/g/KZlon0Bnssic3D/4i+iL9YCxyazmVtF6T0juw41\nYQIDAQAB\n-----END PUBLIC KEY-----\n"},"tag":[],"attachment":[],"endpoints":{"sharedInbox":"https://mastodon.technology/inbox"},"icon":{"type":"Image","mediaType":"image/jpeg","url":"https://static.mastodon.technology/accounts/avatars/000/023/507/original/c183cf1e3a60f5c3.jpg"},"image":{"type":"Image","mediaType":"image/jpeg","url":"https://static.mastodon.technology/accounts/headers/000/023/507/original/977013e803161a99.jpg"}} 2018-07-16 21:46:34.580490 E Expected dict, got [{u'url': u'https://mastodon.technology/@snarfed/100119606571241751'}, {u'url': u'https://mastodon.technology/@snarfed/100119606571241751', u'author': {u'url': u'https://mastodon.technology/@snarfed', u'image': [{u'url': u'https://static.mastodon.technology/accounts/avatars/000/023/507/original/c183cf1e3a60f5c3.jpg'}], u'displayName': u'Ryan Barrett', u'objectType': u'person'}, u'displayName': u'Ryan Barrett (@[email protected])', u'objectType': u'article', u'summary': u'Interesting unintended consequence of federation: when you post a link, >1k mastodon nodes all fetch it at the same time to render a link preview, which results in a small DDoS.'}] Traceback (most recent call last): File "/base/data/home/apps/s~bridgy-federated/1.409068985746702557/local/lib/python2.7/site-packages/webapp2.py", line 1535, in __call__ rv = self.handle_exception(request, response, e) File "/base/data/home/apps/s~bridgy-federated/1.409068985746702557/local/lib/python2.7/site-packages/webapp2.py", line 1529, in __call__ rv = self.router.dispatch(request, response) File "/base/data/home/apps/s~bridgy-federated/1.409068985746702557/local/lib/python2.7/site-packages/webapp2.py", line 1278, in default_dispatcher return route.handler_adapter(request, response) File "/base/data/home/apps/s~bridgy-federated/1.409068985746702557/local/lib/python2.7/site-packages/webapp2.py", line 1102, in __call__ return handler.dispatch() File "/base/data/home/apps/s~bridgy-federated/1.409068985746702557/local/lib/python2.7/site-packages/webapp2.py", line 572, in dispatch return self.handle_exception(e, self.app.debug) File "/base/data/home/apps/s~bridgy-federated/1.409068985746702557/local/lib/python2.7/site-packages/webapp2.py", line 570, in dispatch return method(*args, **kwargs) File "/base/data/home/apps/s~bridgy-federated/1.409068985746702557/webmention.py", line 47, in post self.try_activitypub() File "/base/data/home/apps/s~bridgy-federated/1.409068985746702557/webmention.py", line 144, in try_activitypub as2.from_as1(source_obj), target=target_obj, key=key) File "/base/data/home/apps/s~bridgy-federated/1.409068985746702557/local/lib/python2.7/site-packages/granary/as2.py", line 92, in from_as1 'object': from_as1(obj.get('object'), context=None), File "/base/data/home/apps/s~bridgy-federated/1.409068985746702557/local/lib/python2.7/site-packages/granary/as2.py", line 65, in from_as1 raise ValueError('Expected dict, got %r' % obj) ValueError: Expected dict, got [{u'url': u'https://mastodon.technology/@snarfed/100119606571241751'}, {u'url': u'https://mastodon.technology/@snarfed/100119606571241751', u'author': {u'url': u'https://mastodon.technology/@snarfed', u'image': [{u'url': u'https://static.mastodon.technology/accounts/avatars/000/023/507/original/c183cf1e3a60f5c3.jpg'}], u'displayName': u'Ryan Barrett', u'objectType': u'person'}, u'displayName': u'Ryan Barrett (@[email protected])', u'objectType': u'article', u'summary': u'Interesting unintended consequence of federation: when you post a link, >1k mastodon nodes all fetch it at the same time to render a link preview, which results in a small DDoS.'}]
(Originally published at: https://crw.moe/b/X6)
I know it's standard IndieWeb practice to have only one user on the domain, but that doesn't necessarily mean their name is "me", and it's misleading to return (for example) WebFinger data that claims it's for acct:[email protected]
when that address doesn't exist.
For example, on my site, I've provided an email address in my representative h-card. When this is done, I think it would be appropriate for Bridgy Fed to use that email address to construct the acct:
identifier for the user.
https://gitgud.io/lambadalambda/pleroma . haven't found a website apart from that. doesn't seem to be used very widely. claims to be OStatus compatible.
Known interop problems so far:
@[email protected]
, not @[email protected]
. Example: https://cawfee.club/search?query=snarfed.org , click on the People tabTODO: file issues on https://git.pleroma.social/pleroma/pleroma/-/issues for these ^
https://mediagoblin.org/ . evidently it does ActivityPub? i think spec editor @cwebber is a maintainer, even if he hasn't done much recently...?
I posted a reply to a Mastodon post and I included #IndieWeb in the text of my post. When I sent the post through Bridgy Fed, it’s plain text as opposed to the native Mastodon posts that have it linked.
See the posts and my reply in this thread:
https://cybre.space/@katastrophe/101661581248390741
Did I need to have a u-category on my hashtag or is this not supported yet on Bridgy Fed?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.