forked from AkkomaGang/akkoma
squash! Expose expires_at datetime in mastoAPI only for the activity actor
NOTE: rewrite the commit msg
This commit is contained in:
parent
91d9fdc7de
commit
2981821db8
4 changed files with 10 additions and 6 deletions
|
@ -25,7 +25,7 @@ Has these additional fields under the `pleroma` object:
|
||||||
- `in_reply_to_account_acct`: the `acct` property of User entity for replied user (if any)
|
- `in_reply_to_account_acct`: the `acct` property of User entity for replied user (if any)
|
||||||
- `content`: a map consisting of alternate representations of the `content` property with the key being it's mimetype. Currently the only alternate representation supported is `text/plain`
|
- `content`: a map consisting of alternate representations of the `content` property with the key being it's mimetype. Currently the only alternate representation supported is `text/plain`
|
||||||
- `spoiler_text`: a map consisting of alternate representations of the `spoiler_text` property with the key being it's mimetype. Currently the only alternate representation supported is `text/plain`
|
- `spoiler_text`: a map consisting of alternate representations of the `spoiler_text` property with the key being it's mimetype. Currently the only alternate representation supported is `text/plain`
|
||||||
- `expires_on`: a datetime (iso8601) that states when the post will expire (be deleted automatically), or empty if the post won't expire
|
- `expires_in`: the number of minutes until a post will expire (be deleted automatically), or empty if the post won't expire
|
||||||
|
|
||||||
## Attachments
|
## Attachments
|
||||||
|
|
||||||
|
|
|
@ -168,11 +168,15 @@ def render("status.json", %{activity: %{data: %{"object" => _object}} = activity
|
||||||
|
|
||||||
client_posted_this_activity = opts[:for] && user.id == opts[:for].id
|
client_posted_this_activity = opts[:for] && user.id == opts[:for].id
|
||||||
|
|
||||||
expires_at =
|
expires_in =
|
||||||
with true <- client_posted_this_activity,
|
with true <- client_posted_this_activity,
|
||||||
expiration when not is_nil(expiration) <-
|
expiration when not is_nil(expiration) <-
|
||||||
ActivityExpiration.get_by_activity_id(activity.id) do
|
ActivityExpiration.get_by_activity_id(activity.id) do
|
||||||
|
expires_in_seconds =
|
||||||
expiration.scheduled_at
|
expiration.scheduled_at
|
||||||
|
|> NaiveDateTime.diff(NaiveDateTime.utc_now(), :second)
|
||||||
|
|
||||||
|
round(expires_in_seconds / 60)
|
||||||
end
|
end
|
||||||
|
|
||||||
thread_muted? =
|
thread_muted? =
|
||||||
|
@ -273,7 +277,7 @@ def render("status.json", %{activity: %{data: %{"object" => _object}} = activity
|
||||||
in_reply_to_account_acct: reply_to_user && reply_to_user.nickname,
|
in_reply_to_account_acct: reply_to_user && reply_to_user.nickname,
|
||||||
content: %{"text/plain" => content_plaintext},
|
content: %{"text/plain" => content_plaintext},
|
||||||
spoiler_text: %{"text/plain" => summary_plaintext},
|
spoiler_text: %{"text/plain" => summary_plaintext},
|
||||||
expires_at: expires_at
|
expires_in: expires_in
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
|
@ -170,7 +170,7 @@ test "posting a status", %{conn: conn} do
|
||||||
assert activity = Activity.get_by_id(fourth_id)
|
assert activity = Activity.get_by_id(fourth_id)
|
||||||
assert expiration = ActivityExpiration.get_by_activity_id(fourth_id)
|
assert expiration = ActivityExpiration.get_by_activity_id(fourth_id)
|
||||||
assert expiration.scheduled_at == expires_at
|
assert expiration.scheduled_at == expires_at
|
||||||
assert fourth_response["pleroma"]["expires_at"] == NaiveDateTime.to_iso8601(expires_at)
|
assert fourth_response["pleroma"]["expires_in"] > 0
|
||||||
end
|
end
|
||||||
|
|
||||||
test "replying to a status", %{conn: conn} do
|
test "replying to a status", %{conn: conn} do
|
||||||
|
|
|
@ -134,7 +134,7 @@ test "a note activity" do
|
||||||
in_reply_to_account_acct: nil,
|
in_reply_to_account_acct: nil,
|
||||||
content: %{"text/plain" => HtmlSanitizeEx.strip_tags(object_data["content"])},
|
content: %{"text/plain" => HtmlSanitizeEx.strip_tags(object_data["content"])},
|
||||||
spoiler_text: %{"text/plain" => HtmlSanitizeEx.strip_tags(object_data["summary"])},
|
spoiler_text: %{"text/plain" => HtmlSanitizeEx.strip_tags(object_data["summary"])},
|
||||||
expires_at: nil
|
expires_in: nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue