diff --git a/src/views/mastoapi.nim b/src/views/mastoapi.nim index 7d0ebbb..c380b53 100644 --- a/src/views/mastoapi.nim +++ b/src/views/mastoapi.nim @@ -200,6 +200,43 @@ proc getActivityStream*(user: User, cfg: Config, prefs: Prefs): JsonNode = asProps["movedTo"] = contextMovedTo context.add(asProps) + var fields: seq[JsonNode] = @[] + + if user.location.len > 0: + var location = newJObject() + location["type"] = %"PropertyValue" + location["name"] = %"Location" + location["value"] = %user.location + fields.add(location) + + if user.website.len > 0: + var website = newJObject() + website["type"] = %"PropertyValue" + website["name"] = %"Website" + website["value"] = %(&"{user.website}") + fields.add(website) + + if user.botOwner.len > 0: + var botOwner = newJObject() + botOwner["type"] = %"PropertyValue" + botOwner["name"] = %"Automated by" + botOwner["value"] = %(&"{user.botOwner}") + fields.add(botOwner) + + if user.pcf != "" and user.pcf != "None": + var pcf = newJObject() + pcf["type"] = %"PropertyValue" + pcf["name"] = %"PCF Label" + pcf["value"] = %user.pcf + fields.add(pcf) + + if user.verifiedType != none: + var verified = newJObject() + verified["type"] = %"PropertyValue" + verified["name"] = %"Verified Type" + verified["value"] = %user.verifiedType + fields.add(verified) + var userJson = newJObject() userJson["@context"] = %context userJson["id"] = %userUrl @@ -221,7 +258,7 @@ proc getActivityStream*(user: User, cfg: Config, prefs: Prefs): JsonNode = userJson["memorial"] = %false userJson["publicKey"] = newJNull() userJson["tag"] = newJArray() - userJson["attachment"] = newJArray() + userJson["attachment"] = %fields userJson["endpoints"] = newJObject() userJson["icon"] = %*{ "type": "Image", @@ -260,6 +297,20 @@ proc getMastoAPIUser*(user: User, cfg: Config): JsonNode = botOwner["verified_at"] = newJNull() fields.add(botOwner) + if user.pcf != "" and user.pcf != "None": + var pcf = newJObject() + pcf["name"] = %"PCF Label" + pcf["value"] = %user.pcf + pcf["verified_at"] = newJNull() + fields.add(pcf) + + if user.verifiedType != none: + var verified = newJObject() + verified["name"] = %"Verified Type" + verified["value"] = %user.verifiedType + verified["verified_at"] = newJNull() + fields.add(verified) + var userJson = newJObject() userJson["id"] = %user.id userJson["username"] = %user.username