dariusk / rss-to-activitypub

An RSS to ActivityPub converter.
MIT License
560 stars 28 forks source link

Add (temporary) federation support of status link #29

Open ghost opened 5 years ago

ghost commented 5 years ago

Motivation

Sometimes you boost an interesting RSS post and hope that your followers can see it...

I know that this feature will consume more resources on server side, so federation support of each link can be temporary. For example, you can set federation support of each link available for 12 hours.

BTW, I don't know how Mastodon fetch a new status from a new server. Maybe it just use WebFinger. and the query string changes to status link ...

dariusk commented 5 years ago

I thought this worked! I will look into fixing it.

ghost commented 5 years ago

Is it possible to add a fake inbox to avoid errors on admin panels? If someone make actions to a feed, errors will show up:

Stoplight::Error::RedLight: Delivery failed for https://bots.tinysubversions.com/api/inbox: https://bots.tinysubversions.com/api/inbox
dariusk commented 5 years ago

Great idea too. I'll add an inbox that allows posts but trashes the contents.

ghost commented 5 years ago

It seems that they just fetch the status link with a specific header:

>>> import requests
>>> headers={'Accept': 'application/activity+json'}
>>> requests.get('https://mastodon.social/@Gargron/102420674987390349', headers=headers).json()
{'@context': ['https://www.w3.org/ns/activitystreams', {'ostatus': 'http://ostatus.org#', 'atomUri': 'ostatus:atomUri', 'inReplyToAtomUri': 'ostatus:inReplyToAtomUri', 'conversation': 'ostatus:conversation', 'sensitive': 'as:sensitive', 'Hashtag': 'as:Hashtag', 'toot': 'http://joinmastodon.org/ns#', 'Emoji': 'toot:Emoji', 'focalPoint': {'@container': '@list', '@id': 'toot:focalPoint'}, 'blurhash': 'toot:blurhash'}], 'id': 'https://msn.debula.ml/users/Gargron/statuses/102420674987390349', 'type': 'Note', 'summary': None, 'inReplyTo': None, 'published': '2019-07-11T03:24:35Z', 'url': 'https://msn.debula.ml/@Gargron/102420674987390349', 'attributedTo': 'https://msn.debula.ml/users/Gargron', 'to': ['https://www.w3.org/ns/activitystreams#Public'], 'cc': ['https://msn.debula.ml/users/Gargron/followers'], 'sensitive': False, 'atomUri': 'https://msn.debula.ml/users/Gargron/statuses/102420674987390349', 'inReplyToAtomUri': None, 'conversation': 'tag:mastodon.social,2019-07-11:objectId=113560613:objectType=Conversation', 'content': '<p>Just saw a picture of Casey (cat)</p>', 'contentMap': {'en': '<p>Just saw a picture of Casey (cat)</p>'}, 'attachment': [], 'tag': [], 'replies': {'id': 'https://msn.debula.ml/users/Gargron/statuses/102420674987390349/replies', 'type': 'Collection', 'first': {'type': 'CollectionPage', 'partOf': 'https://msn.debula.ml/users/Gargron/statuses/102420674987390349/replies', 'items': []}}}

Hope this issue can be fixed eventually.