Merge remote-tracking branch 'upstream/develop' into neckbeard
This commit is contained in:
commit
ccfd4ef47f
|
@ -74,6 +74,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
||||||
- Mastodon API: Home, public, hashtag & list timelines accept `only_media`, `remote` & `local` parameters for filtration.
|
- Mastodon API: Home, public, hashtag & list timelines accept `only_media`, `remote` & `local` parameters for filtration.
|
||||||
- Mastodon API: `/api/v1/accounts/:id` & `/api/v1/mutes` endpoints accept `with_relationships` parameter and return filled `pleroma.relationship` field.
|
- Mastodon API: `/api/v1/accounts/:id` & `/api/v1/mutes` endpoints accept `with_relationships` parameter and return filled `pleroma.relationship` field.
|
||||||
- Mastodon API: Endpoint to remove a conversation (`DELETE /api/v1/conversations/:id`).
|
- Mastodon API: Endpoint to remove a conversation (`DELETE /api/v1/conversations/:id`).
|
||||||
|
- Mastodon API: `expires_in` in the scheduled post `params` field on `/api/v1/statuses` and `/api/v1/scheduled_statuses/:id` endpoints.
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
|
@ -39,6 +39,12 @@ Has these additional fields under the `pleroma` object:
|
||||||
- `emoji_reactions`: A list with emoji / reaction maps. The format is `{name: "☕", count: 1, me: true}`. Contains no information about the reacting users, for that use the `/statuses/:id/reactions` endpoint.
|
- `emoji_reactions`: A list with emoji / reaction maps. The format is `{name: "☕", count: 1, me: true}`. Contains no information about the reacting users, for that use the `/statuses/:id/reactions` endpoint.
|
||||||
- `parent_visible`: If the parent of this post is visible to the user or not.
|
- `parent_visible`: If the parent of this post is visible to the user or not.
|
||||||
|
|
||||||
|
## Scheduled statuses
|
||||||
|
|
||||||
|
Has these additional fields in `params`:
|
||||||
|
|
||||||
|
- `expires_in`: the number of seconds the posted activity should expire in.
|
||||||
|
|
||||||
## Media Attachments
|
## Media Attachments
|
||||||
|
|
||||||
Has these additional fields under the `pleroma` object:
|
Has these additional fields under the `pleroma` object:
|
||||||
|
|
|
@ -150,7 +150,7 @@ su pleroma -s $SHELL -lc "./bin/pleroma_ctl migrate"
|
||||||
# su pleroma -s $SHELL -lc "./bin/pleroma_ctl migrate --migrations-path priv/repo/optional_migrations/rum_indexing/"
|
# su pleroma -s $SHELL -lc "./bin/pleroma_ctl migrate --migrations-path priv/repo/optional_migrations/rum_indexing/"
|
||||||
|
|
||||||
# Start the instance to verify that everything is working as expected
|
# Start the instance to verify that everything is working as expected
|
||||||
su pleroma -s $SHELL -lc "export $(cat /opt/pleroma/config/pleroma.env); ./bin/pleroma daemon"
|
su pleroma -s $SHELL -lc "./bin/pleroma daemon"
|
||||||
|
|
||||||
# Wait for about 20 seconds and query the instance endpoint, if it shows your uri, name and email correctly, you are configured correctly
|
# Wait for about 20 seconds and query the instance endpoint, if it shows your uri, name and email correctly, you are configured correctly
|
||||||
sleep 20 && curl http://localhost:4000/api/v1/instance
|
sleep 20 && curl http://localhost:4000/api/v1/instance
|
||||||
|
|
|
@ -20,7 +20,8 @@ defmodule Mix.Tasks.Pleroma.Ecto.Rollback do
|
||||||
start: :boolean,
|
start: :boolean,
|
||||||
quiet: :boolean,
|
quiet: :boolean,
|
||||||
log_sql: :boolean,
|
log_sql: :boolean,
|
||||||
migrations_path: :string
|
migrations_path: :string,
|
||||||
|
env: :string
|
||||||
]
|
]
|
||||||
|
|
||||||
@moduledoc """
|
@moduledoc """
|
||||||
|
@ -59,7 +60,7 @@ defmodule Mix.Tasks.Pleroma.Ecto.Rollback do
|
||||||
level = Logger.level()
|
level = Logger.level()
|
||||||
Logger.configure(level: :info)
|
Logger.configure(level: :info)
|
||||||
|
|
||||||
if Pleroma.Config.get(:env) == :test do
|
if opts[:env] == "test" do
|
||||||
Logger.info("Rollback succesfully")
|
Logger.info("Rollback succesfully")
|
||||||
else
|
else
|
||||||
{:ok, _, _} =
|
{:ok, _, _} =
|
||||||
|
|
|
@ -30,7 +30,8 @@ defmodule Pleroma.Web.ApiSpec.Schemas.ScheduledStatus do
|
||||||
visibility: %Schema{allOf: [VisibilityScope], nullable: true},
|
visibility: %Schema{allOf: [VisibilityScope], nullable: true},
|
||||||
scheduled_at: %Schema{type: :string, format: :"date-time", nullable: true},
|
scheduled_at: %Schema{type: :string, format: :"date-time", nullable: true},
|
||||||
poll: StatusOperation.poll_params(),
|
poll: StatusOperation.poll_params(),
|
||||||
in_reply_to_id: %Schema{type: :string, nullable: true}
|
in_reply_to_id: %Schema{type: :string, nullable: true},
|
||||||
|
expires_in: %Schema{type: :integer, nullable: true}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -46,7 +47,8 @@ defmodule Pleroma.Web.ApiSpec.Schemas.ScheduledStatus do
|
||||||
scheduled_at: nil,
|
scheduled_at: nil,
|
||||||
poll: nil,
|
poll: nil,
|
||||||
idempotency: nil,
|
idempotency: nil,
|
||||||
in_reply_to_id: nil
|
in_reply_to_id: nil,
|
||||||
|
expires_in: nil
|
||||||
},
|
},
|
||||||
media_attachments: [Attachment.schema().example]
|
media_attachments: [Attachment.schema().example]
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,7 +37,8 @@ defmodule Pleroma.Web.MastodonAPI.ScheduledActivityView do
|
||||||
visibility: params["visibility"],
|
visibility: params["visibility"],
|
||||||
scheduled_at: params["scheduled_at"],
|
scheduled_at: params["scheduled_at"],
|
||||||
poll: params["poll"],
|
poll: params["poll"],
|
||||||
in_reply_to_id: params["in_reply_to_id"]
|
in_reply_to_id: params["in_reply_to_id"],
|
||||||
|
expires_in: params["expires_in"]
|
||||||
}
|
}
|
||||||
|> Pleroma.Maps.put_if_present(:media_ids, params["media_ids"])
|
|> Pleroma.Maps.put_if_present(:media_ids, params["media_ids"])
|
||||||
end
|
end
|
||||||
|
|
|
@ -12,7 +12,7 @@ defmodule Mix.Tasks.Pleroma.Ecto.RollbackTest do
|
||||||
Logger.configure(level: :warn)
|
Logger.configure(level: :warn)
|
||||||
|
|
||||||
assert capture_log(fn ->
|
assert capture_log(fn ->
|
||||||
Mix.Tasks.Pleroma.Ecto.Rollback.run()
|
Mix.Tasks.Pleroma.Ecto.Rollback.run(["--env", "test"])
|
||||||
end) =~ "[info] Rollback succesfully"
|
end) =~ "[info] Rollback succesfully"
|
||||||
|
|
||||||
Logger.configure(level: level)
|
Logger.configure(level: level)
|
||||||
|
|
|
@ -383,6 +383,31 @@ defmodule Pleroma.Web.MastodonAPI.StatusControllerTest do
|
||||||
assert [] == Repo.all(Activity)
|
assert [] == Repo.all(Activity)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
test "with expiration" do
|
||||||
|
%{conn: conn} = oauth_access(["write:statuses", "read:statuses"])
|
||||||
|
|
||||||
|
scheduled_at =
|
||||||
|
NaiveDateTime.add(NaiveDateTime.utc_now(), :timer.minutes(6), :millisecond)
|
||||||
|
|> NaiveDateTime.to_iso8601()
|
||||||
|
|> Kernel.<>("Z")
|
||||||
|
|
||||||
|
assert %{"id" => status_id, "params" => %{"expires_in" => 300}} =
|
||||||
|
conn
|
||||||
|
|> put_req_header("content-type", "application/json")
|
||||||
|
|> post("/api/v1/statuses", %{
|
||||||
|
"status" => "scheduled",
|
||||||
|
"scheduled_at" => scheduled_at,
|
||||||
|
"expires_in" => 300
|
||||||
|
})
|
||||||
|
|> json_response_and_validate_schema(200)
|
||||||
|
|
||||||
|
assert %{"id" => ^status_id, "params" => %{"expires_in" => 300}} =
|
||||||
|
conn
|
||||||
|
|> put_req_header("content-type", "application/json")
|
||||||
|
|> get("/api/v1/scheduled_statuses/#{status_id}")
|
||||||
|
|> json_response_and_validate_schema(200)
|
||||||
|
end
|
||||||
|
|
||||||
test "ignores nil values", %{conn: conn} do
|
test "ignores nil values", %{conn: conn} do
|
||||||
conn =
|
conn =
|
||||||
conn
|
conn
|
||||||
|
|
|
@ -58,7 +58,8 @@ defmodule Pleroma.Web.MastodonAPI.ScheduledActivityViewTest do
|
||||||
sensitive: true,
|
sensitive: true,
|
||||||
spoiler_text: "spoiler",
|
spoiler_text: "spoiler",
|
||||||
text: "hi",
|
text: "hi",
|
||||||
visibility: "unlisted"
|
visibility: "unlisted",
|
||||||
|
expires_in: nil
|
||||||
},
|
},
|
||||||
scheduled_at: Utils.to_masto_date(scheduled_activity.scheduled_at)
|
scheduled_at: Utils.to_masto_date(scheduled_activity.scheduled_at)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue