diff options
| author | 2019-08-02 16:21:11 +0100 | |
|---|---|---|
| committer | 2019-08-02 16:21:11 +0100 | |
| commit | b58c0f8b597d2b419ea4fd56b2790236b75f7c87 (patch) | |
| tree | 6f29cd9802ecc846e71672bfe458de74859bd56f /modules | |
| parent | add fediverse.py (diff) | |
| signature | ||
use "id" not "url", support boosts
Diffstat (limited to 'modules')
| -rw-r--r-- | modules/fediverse.py | 40 |
1 files changed, 33 insertions, 7 deletions
diff --git a/modules/fediverse.py b/modules/fediverse.py index 0851d9fc..9670a2ea 100644 --- a/modules/fediverse.py +++ b/modules/fediverse.py @@ -1,3 +1,4 @@ +import urllib.parse from src import ModuleManager, utils WEBFINGER = "https://%s/.well-known/webfinger" @@ -49,11 +50,36 @@ class Module(ModuleManager.BaseModule): items = outbox.data["orderedItems"] if items: - first_item = items[0]["object"]["content"] - first_item = utils.http.strip_html(first_item) - url = items[0]["object"]["url"] - shorturl = self.exports.get_one("shorturl")( - event["server"], url) + first_item = items[0] + if first_item["type"] == "Announce": + retoot_url = first_item["object"] + retoot_instance = urllib.parse.urlparse(retoot_url).hostname + retoot = utils.http.request(retoot_url, + headers=ACTIVITY_HEADERS, json=True) - event["stdout"].write("%s: %s - %s" % (preferred_username, - first_item, shorturl)) + original_tooter_url = retoot.data["attributedTo"] + original_tooter = utils.http.request(original_tooter_url, + headers=ACTIVITY_HEADERS, json=True) + + retooted_user = "@%s@%s" % ( + original_tooter.data["preferredUsername"], + retoot_instance) + + shorturl = self.exports.get_one("shorturl")( + event["server"], retoot_url) + retoot_content = utils.http.strip_html( + retoot.data["content"]) + + event["stdout"].write("%s (boost %s): %s - %s" % ( + preferred_username, retooted_user, retoot_content, + shorturl)) + + elif first_item["type"] == "Note": + content = utils.http.strip_html( + first_item["object"]["content"]) + url = first_itme["object"]["id"] + shorturl = self.exports.get_one("shorturl")( + event["server"], url) + + event["stdout"].write("%s: %s - %s" % (preferred_username, + content, shorturl)) |
