Merge remote-tracking branch 'remotes/origin/develop' into 2168-media-preview-proxy
This commit is contained in:
commit
978ccf8f97
17 changed files with 925 additions and 134 deletions
|
@ -1105,32 +1105,97 @@ config :pleroma, :config_description, [
|
||||||
description: "Settings for Pleroma FE",
|
description: "Settings for Pleroma FE",
|
||||||
suggestions: [
|
suggestions: [
|
||||||
%{
|
%{
|
||||||
theme: "pleroma-dark",
|
|
||||||
logo: "/static/logo.png",
|
|
||||||
background: "/images/city.jpg",
|
|
||||||
redirectRootNoLogin: "/main/all",
|
|
||||||
redirectRootLogin: "/main/friends",
|
|
||||||
showInstanceSpecificPanel: true,
|
|
||||||
scopeOptionsEnabled: false,
|
|
||||||
formattingOptionsEnabled: false,
|
|
||||||
collapseMessageWithSubject: false,
|
|
||||||
hidePostStats: false,
|
|
||||||
hideUserStats: false,
|
|
||||||
scopeCopy: true,
|
|
||||||
subjectLineBehavior: "email",
|
|
||||||
alwaysShowSubjectInput: true,
|
alwaysShowSubjectInput: true,
|
||||||
logoMask: false,
|
background: "/static/aurora_borealis.jpg",
|
||||||
|
collapseMessageWithSubject: false,
|
||||||
|
disableChat: false,
|
||||||
|
greentext: false,
|
||||||
|
hideFilteredStatuses: false,
|
||||||
|
hideMutedPosts: false,
|
||||||
|
hidePostStats: false,
|
||||||
|
hideSitename: false,
|
||||||
|
hideUserStats: false,
|
||||||
|
loginMethod: "password",
|
||||||
|
logo: "/static/logo.png",
|
||||||
logoMargin: ".1em",
|
logoMargin: ".1em",
|
||||||
stickers: false,
|
logoMask: true,
|
||||||
enableEmojiPicker: false
|
minimalScopesMode: false,
|
||||||
|
noAttachmentLinks: false,
|
||||||
|
nsfwCensorImage: "",
|
||||||
|
postContentType: "text/plain",
|
||||||
|
redirectRootLogin: "/main/friends",
|
||||||
|
redirectRootNoLogin: "/main/all",
|
||||||
|
scopeCopy: true,
|
||||||
|
showFeaturesPanel: true,
|
||||||
|
showInstanceSpecificPanel: false,
|
||||||
|
subjectLineBehavior: "email",
|
||||||
|
theme: "pleroma-dark",
|
||||||
|
webPushNotifications: false
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
children: [
|
children: [
|
||||||
%{
|
%{
|
||||||
key: :theme,
|
key: :alwaysShowSubjectInput,
|
||||||
|
label: "Always show subject input",
|
||||||
|
type: :boolean,
|
||||||
|
description: "When disabled, auto-hide the subject field if it's empty"
|
||||||
|
},
|
||||||
|
%{
|
||||||
|
key: :background,
|
||||||
type: :string,
|
type: :string,
|
||||||
description: "Which theme to use, they are defined in styles.json",
|
description:
|
||||||
suggestions: ["pleroma-dark"]
|
"URL of the background, unless viewing a user profile with a background that is set",
|
||||||
|
suggestions: ["/images/city.jpg"]
|
||||||
|
},
|
||||||
|
%{
|
||||||
|
key: :collapseMessageWithSubject,
|
||||||
|
label: "Collapse message with subject",
|
||||||
|
type: :boolean,
|
||||||
|
description:
|
||||||
|
"When a message has a subject (aka Content Warning), collapse it by default"
|
||||||
|
},
|
||||||
|
%{
|
||||||
|
key: :disableChat,
|
||||||
|
label: "PleromaFE Chat",
|
||||||
|
type: :boolean,
|
||||||
|
description: "Disables PleromaFE Chat component"
|
||||||
|
},
|
||||||
|
%{
|
||||||
|
key: :greentext,
|
||||||
|
label: "Greentext",
|
||||||
|
type: :boolean,
|
||||||
|
description: "Enables green text on lines prefixed with the > character."
|
||||||
|
},
|
||||||
|
%{
|
||||||
|
key: :hideFilteredStatuses,
|
||||||
|
label: "Hide Filtered Statuses",
|
||||||
|
type: :boolean,
|
||||||
|
description: "Hides filtered statuses from timelines."
|
||||||
|
},
|
||||||
|
%{
|
||||||
|
key: :hideMutedPosts,
|
||||||
|
label: "Hide Muted Posts",
|
||||||
|
type: :boolean,
|
||||||
|
description: "Hides muted statuses from timelines."
|
||||||
|
},
|
||||||
|
%{
|
||||||
|
key: :hidePostStats,
|
||||||
|
label: "Hide post stats",
|
||||||
|
type: :boolean,
|
||||||
|
description: "Hide notices statistics (repeats, favorites, ...)"
|
||||||
|
},
|
||||||
|
%{
|
||||||
|
key: :hideSitename,
|
||||||
|
label: "Hide Sitename",
|
||||||
|
type: :boolean,
|
||||||
|
description: "Hides instance name from PleromaFE banner."
|
||||||
|
},
|
||||||
|
%{
|
||||||
|
key: :hideUserStats,
|
||||||
|
label: "Hide user stats",
|
||||||
|
type: :boolean,
|
||||||
|
description:
|
||||||
|
"Hide profile statistics (posts, posts per day, followers, followings, ...)"
|
||||||
},
|
},
|
||||||
%{
|
%{
|
||||||
key: :logo,
|
key: :logo,
|
||||||
|
@ -1139,11 +1204,44 @@ config :pleroma, :config_description, [
|
||||||
suggestions: ["/static/logo.png"]
|
suggestions: ["/static/logo.png"]
|
||||||
},
|
},
|
||||||
%{
|
%{
|
||||||
key: :background,
|
key: :logoMargin,
|
||||||
|
label: "Logo margin",
|
||||||
type: :string,
|
type: :string,
|
||||||
description:
|
description:
|
||||||
"URL of the background, unless viewing a user profile with a background that is set",
|
"Allows you to adjust vertical margins between logo boundary and navbar borders. " <>
|
||||||
suggestions: ["/images/city.jpg"]
|
"The idea is that to have logo's image without any extra margins and instead adjust them to your need in layout.",
|
||||||
|
suggestions: [".1em"]
|
||||||
|
},
|
||||||
|
%{
|
||||||
|
key: :logoMask,
|
||||||
|
label: "Logo mask",
|
||||||
|
type: :boolean,
|
||||||
|
description:
|
||||||
|
"By default it assumes logo used will be monochrome with alpha channel to be compatible with both light and dark themes. " <>
|
||||||
|
"If you want a colorful logo you must disable logoMask."
|
||||||
|
},
|
||||||
|
%{
|
||||||
|
key: :minimalScopesMode,
|
||||||
|
label: "Minimal scopes mode",
|
||||||
|
type: :boolean,
|
||||||
|
description:
|
||||||
|
"Limit scope selection to Direct, User default, and Scope of post replying to. " <>
|
||||||
|
"Also prevents replying to a DM with a public post from PleromaFE."
|
||||||
|
},
|
||||||
|
%{
|
||||||
|
key: :nsfwCensorImage,
|
||||||
|
label: "NSFW Censor Image",
|
||||||
|
type: :string,
|
||||||
|
description:
|
||||||
|
"URL of the image to use for hiding NSFW media attachments in the timeline.",
|
||||||
|
suggestions: ["/static/img/nsfw.png"]
|
||||||
|
},
|
||||||
|
%{
|
||||||
|
key: :postContentType,
|
||||||
|
label: "Post Content Type",
|
||||||
|
type: {:dropdown, :atom},
|
||||||
|
description: "Default post formatting option.",
|
||||||
|
suggestions: ["text/plain", "text/html", "text/markdown", "text/bbcode"]
|
||||||
},
|
},
|
||||||
%{
|
%{
|
||||||
key: :redirectRootNoLogin,
|
key: :redirectRootNoLogin,
|
||||||
|
@ -1161,51 +1259,25 @@ config :pleroma, :config_description, [
|
||||||
"Relative URL which indicates where to redirect when a user is logged in",
|
"Relative URL which indicates where to redirect when a user is logged in",
|
||||||
suggestions: ["/main/friends"]
|
suggestions: ["/main/friends"]
|
||||||
},
|
},
|
||||||
%{
|
|
||||||
key: :showInstanceSpecificPanel,
|
|
||||||
label: "Show instance specific panel",
|
|
||||||
type: :boolean,
|
|
||||||
description: "Whenether to show the instance's specific panel"
|
|
||||||
},
|
|
||||||
%{
|
|
||||||
key: :scopeOptionsEnabled,
|
|
||||||
label: "Scope options enabled",
|
|
||||||
type: :boolean,
|
|
||||||
description: "Enable setting a notice visibility and subject/CW when posting"
|
|
||||||
},
|
|
||||||
%{
|
|
||||||
key: :formattingOptionsEnabled,
|
|
||||||
label: "Formatting options enabled",
|
|
||||||
type: :boolean,
|
|
||||||
description:
|
|
||||||
"Enable setting a formatting different than plain-text (ie. HTML, Markdown) when posting, relates to `:instance`, `allowed_post_formats`"
|
|
||||||
},
|
|
||||||
%{
|
|
||||||
key: :collapseMessageWithSubject,
|
|
||||||
label: "Collapse message with subject",
|
|
||||||
type: :boolean,
|
|
||||||
description:
|
|
||||||
"When a message has a subject (aka Content Warning), collapse it by default"
|
|
||||||
},
|
|
||||||
%{
|
|
||||||
key: :hidePostStats,
|
|
||||||
label: "Hide post stats",
|
|
||||||
type: :boolean,
|
|
||||||
description: "Hide notices statistics (repeats, favorites, ...)"
|
|
||||||
},
|
|
||||||
%{
|
|
||||||
key: :hideUserStats,
|
|
||||||
label: "Hide user stats",
|
|
||||||
type: :boolean,
|
|
||||||
description:
|
|
||||||
"Hide profile statistics (posts, posts per day, followers, followings, ...)"
|
|
||||||
},
|
|
||||||
%{
|
%{
|
||||||
key: :scopeCopy,
|
key: :scopeCopy,
|
||||||
label: "Scope copy",
|
label: "Scope copy",
|
||||||
type: :boolean,
|
type: :boolean,
|
||||||
description: "Copy the scope (private/unlisted/public) in replies to posts by default"
|
description: "Copy the scope (private/unlisted/public) in replies to posts by default"
|
||||||
},
|
},
|
||||||
|
%{
|
||||||
|
key: :showFeaturesPanel,
|
||||||
|
label: "Show instance features panel",
|
||||||
|
type: :boolean,
|
||||||
|
description:
|
||||||
|
"Enables panel displaying functionality of the instance on the About page."
|
||||||
|
},
|
||||||
|
%{
|
||||||
|
key: :showInstanceSpecificPanel,
|
||||||
|
label: "Show instance specific panel",
|
||||||
|
type: :boolean,
|
||||||
|
description: "Whether to show the instance's custom panel"
|
||||||
|
},
|
||||||
%{
|
%{
|
||||||
key: :subjectLineBehavior,
|
key: :subjectLineBehavior,
|
||||||
label: "Subject line behavior",
|
label: "Subject line behavior",
|
||||||
|
@ -1217,38 +1289,10 @@ config :pleroma, :config_description, [
|
||||||
suggestions: ["email", "masto", "noop"]
|
suggestions: ["email", "masto", "noop"]
|
||||||
},
|
},
|
||||||
%{
|
%{
|
||||||
key: :alwaysShowSubjectInput,
|
key: :theme,
|
||||||
label: "Always show subject input",
|
|
||||||
type: :boolean,
|
|
||||||
description: "When disabled, auto-hide the subject field if it's empty"
|
|
||||||
},
|
|
||||||
%{
|
|
||||||
key: :logoMask,
|
|
||||||
label: "Logo mask",
|
|
||||||
type: :boolean,
|
|
||||||
description:
|
|
||||||
"By default it assumes logo used will be monochrome with alpha channel to be compatible with both light and dark themes. " <>
|
|
||||||
"If you want a colorful logo you must disable logoMask."
|
|
||||||
},
|
|
||||||
%{
|
|
||||||
key: :logoMargin,
|
|
||||||
label: "Logo margin",
|
|
||||||
type: :string,
|
type: :string,
|
||||||
description:
|
description: "Which theme to use. Available themes are defined in styles.json",
|
||||||
"Allows you to adjust vertical margins between logo boundary and navbar borders. " <>
|
suggestions: ["pleroma-dark"]
|
||||||
"The idea is that to have logo's image without any extra margins and instead adjust them to your need in layout.",
|
|
||||||
suggestions: [".1em"]
|
|
||||||
},
|
|
||||||
%{
|
|
||||||
key: :stickers,
|
|
||||||
type: :boolean,
|
|
||||||
description: "Enables stickers."
|
|
||||||
},
|
|
||||||
%{
|
|
||||||
key: :enableEmojiPicker,
|
|
||||||
label: "Emoji picker",
|
|
||||||
type: :boolean,
|
|
||||||
description: "Enables emoji picker."
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
defmodule Mix.Tasks.Pleroma.Digest do
|
defmodule Mix.Tasks.Pleroma.Digest do
|
||||||
use Mix.Task
|
use Mix.Task
|
||||||
|
import Mix.Pleroma
|
||||||
|
|
||||||
@shortdoc "Manages digest emails"
|
@shortdoc "Manages digest emails"
|
||||||
@moduledoc File.read!("docs/administration/CLI_tasks/digest.md")
|
@moduledoc File.read!("docs/administration/CLI_tasks/digest.md")
|
||||||
|
@ -22,12 +23,10 @@ defmodule Mix.Tasks.Pleroma.Digest do
|
||||||
with %Swoosh.Email{} = email <- Pleroma.Emails.UserEmail.digest_email(patched_user) do
|
with %Swoosh.Email{} = email <- Pleroma.Emails.UserEmail.digest_email(patched_user) do
|
||||||
{:ok, _} = Pleroma.Emails.Mailer.deliver(email)
|
{:ok, _} = Pleroma.Emails.Mailer.deliver(email)
|
||||||
|
|
||||||
Mix.shell().info("Digest email have been sent to #{nickname} (#{user.email})")
|
shell_info("Digest email have been sent to #{nickname} (#{user.email})")
|
||||||
else
|
else
|
||||||
_ ->
|
_ ->
|
||||||
Mix.shell().info(
|
shell_info("Cound't find any mentions for #{nickname} since #{last_digest_emailed_at}")
|
||||||
"Cound't find any mentions for #{nickname} since #{last_digest_emailed_at}"
|
|
||||||
)
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -278,6 +278,8 @@ defmodule Pleroma.ConfigDB do
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
defp do_convert({:partial_chain, entity}), do: %{"tuple" => [":partial_chain", inspect(entity)]}
|
||||||
|
|
||||||
defp do_convert(entity) when is_tuple(entity) do
|
defp do_convert(entity) when is_tuple(entity) do
|
||||||
value =
|
value =
|
||||||
entity
|
entity
|
||||||
|
@ -321,6 +323,15 @@ defmodule Pleroma.ConfigDB do
|
||||||
{:proxy_url, {do_transform_string(type), parse_host(host), port}}
|
{:proxy_url, {do_transform_string(type), parse_host(host), port}}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
defp do_transform(%{"tuple" => [":partial_chain", entity]}) do
|
||||||
|
{partial_chain, []} =
|
||||||
|
entity
|
||||||
|
|> String.replace(~r/[^\w|^{:,[|^,|^[|^\]^}|^\/|^\.|^"]^\s/, "")
|
||||||
|
|> Code.eval_string()
|
||||||
|
|
||||||
|
{:partial_chain, partial_chain}
|
||||||
|
end
|
||||||
|
|
||||||
defp do_transform(%{"tuple" => entity}) do
|
defp do_transform(%{"tuple" => entity}) do
|
||||||
Enum.reduce(entity, {}, fn val, acc -> Tuple.append(acc, do_transform(val)) end)
|
Enum.reduce(entity, {}, fn val, acc -> Tuple.append(acc, do_transform(val)) end)
|
||||||
end
|
end
|
||||||
|
|
|
@ -367,15 +367,18 @@ defmodule Pleroma.Web.ApiSpec.AccountOperation do
|
||||||
title: "AccountCreateRequest",
|
title: "AccountCreateRequest",
|
||||||
description: "POST body for creating an account",
|
description: "POST body for creating an account",
|
||||||
type: :object,
|
type: :object,
|
||||||
|
required: [:username, :password, :agreement],
|
||||||
properties: %{
|
properties: %{
|
||||||
reason: %Schema{
|
reason: %Schema{
|
||||||
type: :string,
|
type: :string,
|
||||||
|
nullable: true,
|
||||||
description:
|
description:
|
||||||
"Text that will be reviewed by moderators if registrations require manual approval"
|
"Text that will be reviewed by moderators if registrations require manual approval"
|
||||||
},
|
},
|
||||||
username: %Schema{type: :string, description: "The desired username for the account"},
|
username: %Schema{type: :string, description: "The desired username for the account"},
|
||||||
email: %Schema{
|
email: %Schema{
|
||||||
type: :string,
|
type: :string,
|
||||||
|
nullable: true,
|
||||||
description:
|
description:
|
||||||
"The email address to be used for login. Required when `account_activation_required` is enabled.",
|
"The email address to be used for login. Required when `account_activation_required` is enabled.",
|
||||||
format: :email
|
format: :email
|
||||||
|
@ -392,23 +395,33 @@ defmodule Pleroma.Web.ApiSpec.AccountOperation do
|
||||||
},
|
},
|
||||||
locale: %Schema{
|
locale: %Schema{
|
||||||
type: :string,
|
type: :string,
|
||||||
|
nullable: true,
|
||||||
description: "The language of the confirmation email that will be sent"
|
description: "The language of the confirmation email that will be sent"
|
||||||
},
|
},
|
||||||
# Pleroma-specific properties:
|
# Pleroma-specific properties:
|
||||||
fullname: %Schema{type: :string, description: "Full name"},
|
fullname: %Schema{type: :string, nullable: true, description: "Full name"},
|
||||||
bio: %Schema{type: :string, description: "Bio", default: ""},
|
bio: %Schema{type: :string, description: "Bio", nullable: true, default: ""},
|
||||||
captcha_solution: %Schema{
|
captcha_solution: %Schema{
|
||||||
type: :string,
|
type: :string,
|
||||||
|
nullable: true,
|
||||||
description: "Provider-specific captcha solution"
|
description: "Provider-specific captcha solution"
|
||||||
},
|
},
|
||||||
captcha_token: %Schema{type: :string, description: "Provider-specific captcha token"},
|
captcha_token: %Schema{
|
||||||
captcha_answer_data: %Schema{type: :string, description: "Provider-specific captcha data"},
|
type: :string,
|
||||||
|
nullable: true,
|
||||||
|
description: "Provider-specific captcha token"
|
||||||
|
},
|
||||||
|
captcha_answer_data: %Schema{
|
||||||
|
type: :string,
|
||||||
|
nullable: true,
|
||||||
|
description: "Provider-specific captcha data"
|
||||||
|
},
|
||||||
token: %Schema{
|
token: %Schema{
|
||||||
type: :string,
|
type: :string,
|
||||||
|
nullable: true,
|
||||||
description: "Invite token required when the registrations aren't public"
|
description: "Invite token required when the registrations aren't public"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
required: [:username, :password, :agreement],
|
|
||||||
example: %{
|
example: %{
|
||||||
"username" => "cofe",
|
"username" => "cofe",
|
||||||
"email" => "cofe@example.com",
|
"email" => "cofe@example.com",
|
||||||
|
@ -447,28 +460,34 @@ defmodule Pleroma.Web.ApiSpec.AccountOperation do
|
||||||
properties: %{
|
properties: %{
|
||||||
bot: %Schema{
|
bot: %Schema{
|
||||||
type: :boolean,
|
type: :boolean,
|
||||||
|
nullable: true,
|
||||||
description: "Whether the account has a bot flag."
|
description: "Whether the account has a bot flag."
|
||||||
},
|
},
|
||||||
display_name: %Schema{
|
display_name: %Schema{
|
||||||
type: :string,
|
type: :string,
|
||||||
|
nullable: true,
|
||||||
description: "The display name to use for the profile."
|
description: "The display name to use for the profile."
|
||||||
},
|
},
|
||||||
note: %Schema{type: :string, description: "The account bio."},
|
note: %Schema{type: :string, description: "The account bio."},
|
||||||
avatar: %Schema{
|
avatar: %Schema{
|
||||||
type: :string,
|
type: :string,
|
||||||
|
nullable: true,
|
||||||
description: "Avatar image encoded using multipart/form-data",
|
description: "Avatar image encoded using multipart/form-data",
|
||||||
format: :binary
|
format: :binary
|
||||||
},
|
},
|
||||||
header: %Schema{
|
header: %Schema{
|
||||||
type: :string,
|
type: :string,
|
||||||
|
nullable: true,
|
||||||
description: "Header image encoded using multipart/form-data",
|
description: "Header image encoded using multipart/form-data",
|
||||||
format: :binary
|
format: :binary
|
||||||
},
|
},
|
||||||
locked: %Schema{
|
locked: %Schema{
|
||||||
type: :boolean,
|
type: :boolean,
|
||||||
|
nullable: true,
|
||||||
description: "Whether manual approval of follow requests is required."
|
description: "Whether manual approval of follow requests is required."
|
||||||
},
|
},
|
||||||
fields_attributes: %Schema{
|
fields_attributes: %Schema{
|
||||||
|
nullable: true,
|
||||||
oneOf: [
|
oneOf: [
|
||||||
%Schema{type: :array, items: attribute_field()},
|
%Schema{type: :array, items: attribute_field()},
|
||||||
%Schema{type: :object, additionalProperties: %Schema{type: attribute_field()}}
|
%Schema{type: :object, additionalProperties: %Schema{type: attribute_field()}}
|
||||||
|
@ -488,47 +507,65 @@ defmodule Pleroma.Web.ApiSpec.AccountOperation do
|
||||||
# Pleroma-specific fields
|
# Pleroma-specific fields
|
||||||
no_rich_text: %Schema{
|
no_rich_text: %Schema{
|
||||||
type: :boolean,
|
type: :boolean,
|
||||||
|
nullable: true,
|
||||||
description: "html tags are stripped from all statuses requested from the API"
|
description: "html tags are stripped from all statuses requested from the API"
|
||||||
},
|
},
|
||||||
hide_followers: %Schema{type: :boolean, description: "user's followers will be hidden"},
|
hide_followers: %Schema{
|
||||||
hide_follows: %Schema{type: :boolean, description: "user's follows will be hidden"},
|
type: :boolean,
|
||||||
|
nullable: true,
|
||||||
|
description: "user's followers will be hidden"
|
||||||
|
},
|
||||||
|
hide_follows: %Schema{
|
||||||
|
type: :boolean,
|
||||||
|
nullable: true,
|
||||||
|
description: "user's follows will be hidden"
|
||||||
|
},
|
||||||
hide_followers_count: %Schema{
|
hide_followers_count: %Schema{
|
||||||
type: :boolean,
|
type: :boolean,
|
||||||
|
nullable: true,
|
||||||
description: "user's follower count will be hidden"
|
description: "user's follower count will be hidden"
|
||||||
},
|
},
|
||||||
hide_follows_count: %Schema{
|
hide_follows_count: %Schema{
|
||||||
type: :boolean,
|
type: :boolean,
|
||||||
|
nullable: true,
|
||||||
description: "user's follow count will be hidden"
|
description: "user's follow count will be hidden"
|
||||||
},
|
},
|
||||||
hide_favorites: %Schema{
|
hide_favorites: %Schema{
|
||||||
type: :boolean,
|
type: :boolean,
|
||||||
|
nullable: true,
|
||||||
description: "user's favorites timeline will be hidden"
|
description: "user's favorites timeline will be hidden"
|
||||||
},
|
},
|
||||||
show_role: %Schema{
|
show_role: %Schema{
|
||||||
type: :boolean,
|
type: :boolean,
|
||||||
|
nullable: true,
|
||||||
description: "user's role (e.g admin, moderator) will be exposed to anyone in the
|
description: "user's role (e.g admin, moderator) will be exposed to anyone in the
|
||||||
API"
|
API"
|
||||||
},
|
},
|
||||||
default_scope: VisibilityScope,
|
default_scope: VisibilityScope,
|
||||||
pleroma_settings_store: %Schema{
|
pleroma_settings_store: %Schema{
|
||||||
type: :object,
|
type: :object,
|
||||||
|
nullable: true,
|
||||||
description: "Opaque user settings to be saved on the backend."
|
description: "Opaque user settings to be saved on the backend."
|
||||||
},
|
},
|
||||||
skip_thread_containment: %Schema{
|
skip_thread_containment: %Schema{
|
||||||
type: :boolean,
|
type: :boolean,
|
||||||
|
nullable: true,
|
||||||
description: "Skip filtering out broken threads"
|
description: "Skip filtering out broken threads"
|
||||||
},
|
},
|
||||||
allow_following_move: %Schema{
|
allow_following_move: %Schema{
|
||||||
type: :boolean,
|
type: :boolean,
|
||||||
|
nullable: true,
|
||||||
description: "Allows automatically follow moved following accounts"
|
description: "Allows automatically follow moved following accounts"
|
||||||
},
|
},
|
||||||
pleroma_background_image: %Schema{
|
pleroma_background_image: %Schema{
|
||||||
type: :string,
|
type: :string,
|
||||||
|
nullable: true,
|
||||||
description: "Sets the background image of the user.",
|
description: "Sets the background image of the user.",
|
||||||
format: :binary
|
format: :binary
|
||||||
},
|
},
|
||||||
discoverable: %Schema{
|
discoverable: %Schema{
|
||||||
type: :boolean,
|
type: :boolean,
|
||||||
|
nullable: true,
|
||||||
description:
|
description:
|
||||||
"Discovery of this account in search results and other services is allowed."
|
"Discovery of this account in search results and other services is allowed."
|
||||||
},
|
},
|
||||||
|
@ -624,7 +661,7 @@ defmodule Pleroma.Web.ApiSpec.AccountOperation do
|
||||||
description: "POST body for muting an account",
|
description: "POST body for muting an account",
|
||||||
type: :object,
|
type: :object,
|
||||||
properties: %{
|
properties: %{
|
||||||
uri: %Schema{type: :string, format: :uri}
|
uri: %Schema{type: :string, nullable: true, format: :uri}
|
||||||
},
|
},
|
||||||
required: [:uri]
|
required: [:uri]
|
||||||
}
|
}
|
||||||
|
@ -638,6 +675,7 @@ defmodule Pleroma.Web.ApiSpec.AccountOperation do
|
||||||
properties: %{
|
properties: %{
|
||||||
notifications: %Schema{
|
notifications: %Schema{
|
||||||
type: :boolean,
|
type: :boolean,
|
||||||
|
nullable: true,
|
||||||
description: "Mute notifications in addition to statuses? Defaults to true.",
|
description: "Mute notifications in addition to statuses? Defaults to true.",
|
||||||
default: true
|
default: true
|
||||||
}
|
}
|
||||||
|
|
|
@ -105,7 +105,11 @@ defmodule Pleroma.Web.ApiSpec.AppOperation do
|
||||||
description: "Space separated list of scopes",
|
description: "Space separated list of scopes",
|
||||||
default: "read"
|
default: "read"
|
||||||
},
|
},
|
||||||
website: %Schema{type: :string, description: "A URL to the homepage of your app"}
|
website: %Schema{
|
||||||
|
type: :string,
|
||||||
|
nullable: true,
|
||||||
|
description: "A URL to the homepage of your app"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
required: [:client_name, :redirect_uris],
|
required: [:client_name, :redirect_uris],
|
||||||
example: %{
|
example: %{
|
||||||
|
|
|
@ -199,12 +199,14 @@ defmodule Pleroma.Web.ApiSpec.FilterOperation do
|
||||||
"Array of enumerable strings `home`, `notifications`, `public`, `thread`. At least one context must be specified."
|
"Array of enumerable strings `home`, `notifications`, `public`, `thread`. At least one context must be specified."
|
||||||
},
|
},
|
||||||
irreversible: %Schema{
|
irreversible: %Schema{
|
||||||
type: :bolean,
|
type: :boolean,
|
||||||
|
nullable: true,
|
||||||
description:
|
description:
|
||||||
"Should the server irreversibly drop matching entities from home and notifications?"
|
"Should the server irreversibly drop matching entities from home and notifications?"
|
||||||
},
|
},
|
||||||
whole_word: %Schema{
|
whole_word: %Schema{
|
||||||
type: :bolean,
|
type: :boolean,
|
||||||
|
nullable: true,
|
||||||
description: "Consider word boundaries?",
|
description: "Consider word boundaries?",
|
||||||
default: true
|
default: true
|
||||||
}
|
}
|
||||||
|
|
|
@ -110,14 +110,16 @@ defmodule Pleroma.Web.ApiSpec.MarkerOperation do
|
||||||
properties: %{
|
properties: %{
|
||||||
notifications: %Schema{
|
notifications: %Schema{
|
||||||
type: :object,
|
type: :object,
|
||||||
|
nullable: true,
|
||||||
properties: %{
|
properties: %{
|
||||||
last_read_id: %Schema{type: :string}
|
last_read_id: %Schema{nullable: true, type: :string}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
home: %Schema{
|
home: %Schema{
|
||||||
type: :object,
|
type: :object,
|
||||||
|
nullable: true,
|
||||||
properties: %{
|
properties: %{
|
||||||
last_read_id: %Schema{type: :string}
|
last_read_id: %Schema{nullable: true, type: :string}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -143,6 +143,7 @@ defmodule Pleroma.Web.ApiSpec.PleromaAccountOperation do
|
||||||
type: :object,
|
type: :object,
|
||||||
properties: %{
|
properties: %{
|
||||||
img: %Schema{
|
img: %Schema{
|
||||||
|
nullable: true,
|
||||||
type: :string,
|
type: :string,
|
||||||
format: :binary,
|
format: :binary,
|
||||||
description: "Image encoded using `multipart/form-data` or an empty string to clear"
|
description: "Image encoded using `multipart/form-data` or an empty string to clear"
|
||||||
|
@ -158,6 +159,7 @@ defmodule Pleroma.Web.ApiSpec.PleromaAccountOperation do
|
||||||
properties: %{
|
properties: %{
|
||||||
banner: %Schema{
|
banner: %Schema{
|
||||||
type: :string,
|
type: :string,
|
||||||
|
nullable: true,
|
||||||
format: :binary,
|
format: :binary,
|
||||||
description: "Image encoded using `multipart/form-data` or an empty string to clear"
|
description: "Image encoded using `multipart/form-data` or an empty string to clear"
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,15 +37,18 @@ defmodule Pleroma.Web.ApiSpec.ReportOperation do
|
||||||
account_id: %Schema{type: :string, description: "ID of the account to report"},
|
account_id: %Schema{type: :string, description: "ID of the account to report"},
|
||||||
status_ids: %Schema{
|
status_ids: %Schema{
|
||||||
type: :array,
|
type: :array,
|
||||||
|
nullable: true,
|
||||||
items: %Schema{type: :string},
|
items: %Schema{type: :string},
|
||||||
description: "Array of Statuses to attach to the report, for context"
|
description: "Array of Statuses to attach to the report, for context"
|
||||||
},
|
},
|
||||||
comment: %Schema{
|
comment: %Schema{
|
||||||
type: :string,
|
type: :string,
|
||||||
|
nullable: true,
|
||||||
description: "Reason for the report"
|
description: "Reason for the report"
|
||||||
},
|
},
|
||||||
forward: %Schema{
|
forward: %Schema{
|
||||||
type: :boolean,
|
type: :boolean,
|
||||||
|
nullable: true,
|
||||||
default: false,
|
default: false,
|
||||||
description:
|
description:
|
||||||
"If the account is remote, should the report be forwarded to the remote admin?"
|
"If the account is remote, should the report be forwarded to the remote admin?"
|
||||||
|
|
|
@ -371,15 +371,18 @@ defmodule Pleroma.Web.ApiSpec.StatusOperation do
|
||||||
properties: %{
|
properties: %{
|
||||||
status: %Schema{
|
status: %Schema{
|
||||||
type: :string,
|
type: :string,
|
||||||
|
nullable: true,
|
||||||
description:
|
description:
|
||||||
"Text content of the status. If `media_ids` is provided, this becomes optional. Attaching a `poll` is optional while `status` is provided."
|
"Text content of the status. If `media_ids` is provided, this becomes optional. Attaching a `poll` is optional while `status` is provided."
|
||||||
},
|
},
|
||||||
media_ids: %Schema{
|
media_ids: %Schema{
|
||||||
|
nullable: true,
|
||||||
type: :array,
|
type: :array,
|
||||||
items: %Schema{type: :string},
|
items: %Schema{type: :string},
|
||||||
description: "Array of Attachment ids to be attached as media."
|
description: "Array of Attachment ids to be attached as media."
|
||||||
},
|
},
|
||||||
poll: %Schema{
|
poll: %Schema{
|
||||||
|
nullable: true,
|
||||||
type: :object,
|
type: :object,
|
||||||
required: [:options],
|
required: [:options],
|
||||||
properties: %{
|
properties: %{
|
||||||
|
@ -390,26 +393,35 @@ defmodule Pleroma.Web.ApiSpec.StatusOperation do
|
||||||
},
|
},
|
||||||
expires_in: %Schema{
|
expires_in: %Schema{
|
||||||
type: :integer,
|
type: :integer,
|
||||||
|
nullable: true,
|
||||||
description:
|
description:
|
||||||
"Duration the poll should be open, in seconds. Must be provided with `poll[options]`"
|
"Duration the poll should be open, in seconds. Must be provided with `poll[options]`"
|
||||||
},
|
},
|
||||||
multiple: %Schema{type: :boolean, description: "Allow multiple choices?"},
|
multiple: %Schema{
|
||||||
|
type: :boolean,
|
||||||
|
nullable: true,
|
||||||
|
description: "Allow multiple choices?"
|
||||||
|
},
|
||||||
hide_totals: %Schema{
|
hide_totals: %Schema{
|
||||||
type: :boolean,
|
type: :boolean,
|
||||||
|
nullable: true,
|
||||||
description: "Hide vote counts until the poll ends?"
|
description: "Hide vote counts until the poll ends?"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
in_reply_to_id: %Schema{
|
in_reply_to_id: %Schema{
|
||||||
|
nullable: true,
|
||||||
allOf: [FlakeID],
|
allOf: [FlakeID],
|
||||||
description: "ID of the status being replied to, if status is a reply"
|
description: "ID of the status being replied to, if status is a reply"
|
||||||
},
|
},
|
||||||
sensitive: %Schema{
|
sensitive: %Schema{
|
||||||
type: :boolean,
|
type: :boolean,
|
||||||
|
nullable: true,
|
||||||
description: "Mark status and attached media as sensitive?"
|
description: "Mark status and attached media as sensitive?"
|
||||||
},
|
},
|
||||||
spoiler_text: %Schema{
|
spoiler_text: %Schema{
|
||||||
type: :string,
|
type: :string,
|
||||||
|
nullable: true,
|
||||||
description:
|
description:
|
||||||
"Text to be shown as a warning or subject before the actual content. Statuses are generally collapsed behind this field."
|
"Text to be shown as a warning or subject before the actual content. Statuses are generally collapsed behind this field."
|
||||||
},
|
},
|
||||||
|
@ -420,25 +432,33 @@ defmodule Pleroma.Web.ApiSpec.StatusOperation do
|
||||||
description:
|
description:
|
||||||
"ISO 8601 Datetime at which to schedule a status. Providing this paramter will cause ScheduledStatus to be returned instead of Status. Must be at least 5 minutes in the future."
|
"ISO 8601 Datetime at which to schedule a status. Providing this paramter will cause ScheduledStatus to be returned instead of Status. Must be at least 5 minutes in the future."
|
||||||
},
|
},
|
||||||
language: %Schema{type: :string, description: "ISO 639 language code for this status."},
|
language: %Schema{
|
||||||
|
type: :string,
|
||||||
|
nullable: true,
|
||||||
|
description: "ISO 639 language code for this status."
|
||||||
|
},
|
||||||
# Pleroma-specific properties:
|
# Pleroma-specific properties:
|
||||||
preview: %Schema{
|
preview: %Schema{
|
||||||
type: :boolean,
|
type: :boolean,
|
||||||
|
nullable: true,
|
||||||
description:
|
description:
|
||||||
"If set to `true` the post won't be actually posted, but the status entitiy would still be rendered back. This could be useful for previewing rich text/custom emoji, for example"
|
"If set to `true` the post won't be actually posted, but the status entitiy would still be rendered back. This could be useful for previewing rich text/custom emoji, for example"
|
||||||
},
|
},
|
||||||
content_type: %Schema{
|
content_type: %Schema{
|
||||||
type: :string,
|
type: :string,
|
||||||
|
nullable: true,
|
||||||
description:
|
description:
|
||||||
"The MIME type of the status, it is transformed into HTML by the backend. You can get the list of the supported MIME types with the nodeinfo endpoint."
|
"The MIME type of the status, it is transformed into HTML by the backend. You can get the list of the supported MIME types with the nodeinfo endpoint."
|
||||||
},
|
},
|
||||||
to: %Schema{
|
to: %Schema{
|
||||||
type: :array,
|
type: :array,
|
||||||
|
nullable: true,
|
||||||
items: %Schema{type: :string},
|
items: %Schema{type: :string},
|
||||||
description:
|
description:
|
||||||
"A list of nicknames (like `lain@soykaf.club` or `lain` on the local server) that will be used to determine who is going to be addressed by this post. Using this will disable the implicit addressing by mentioned names in the `status` body, only the people in the `to` list will be addressed. The normal rules for for post visibility are not affected by this and will still apply"
|
"A list of nicknames (like `lain@soykaf.club` or `lain` on the local server) that will be used to determine who is going to be addressed by this post. Using this will disable the implicit addressing by mentioned names in the `status` body, only the people in the `to` list will be addressed. The normal rules for for post visibility are not affected by this and will still apply"
|
||||||
},
|
},
|
||||||
visibility: %Schema{
|
visibility: %Schema{
|
||||||
|
nullable: true,
|
||||||
anyOf: [
|
anyOf: [
|
||||||
VisibilityScope,
|
VisibilityScope,
|
||||||
%Schema{type: :string, description: "`list:LIST_ID`", example: "LIST:123"}
|
%Schema{type: :string, description: "`list:LIST_ID`", example: "LIST:123"}
|
||||||
|
@ -447,11 +467,13 @@ defmodule Pleroma.Web.ApiSpec.StatusOperation do
|
||||||
"Visibility of the posted status. Besides standard MastoAPI values (`direct`, `private`, `unlisted` or `public`) it can be used to address a List by setting it to `list:LIST_ID`"
|
"Visibility of the posted status. Besides standard MastoAPI values (`direct`, `private`, `unlisted` or `public`) it can be used to address a List by setting it to `list:LIST_ID`"
|
||||||
},
|
},
|
||||||
expires_in: %Schema{
|
expires_in: %Schema{
|
||||||
|
nullable: true,
|
||||||
type: :integer,
|
type: :integer,
|
||||||
description:
|
description:
|
||||||
"The number of seconds the posted activity should expire in. When a posted activity expires it will be deleted from the server, and a delete request for it will be federated. This needs to be longer than an hour."
|
"The number of seconds the posted activity should expire in. When a posted activity expires it will be deleted from the server, and a delete request for it will be federated. This needs to be longer than an hour."
|
||||||
},
|
},
|
||||||
in_reply_to_conversation_id: %Schema{
|
in_reply_to_conversation_id: %Schema{
|
||||||
|
nullable: true,
|
||||||
type: :string,
|
type: :string,
|
||||||
description:
|
description:
|
||||||
"Will reply to a given conversation, addressing only the people who are part of the recipient set of that conversation. Sets the visibility to `direct`."
|
"Will reply to a given conversation, addressing only the people who are part of the recipient set of that conversation. Sets the visibility to `direct`."
|
||||||
|
|
|
@ -109,19 +109,38 @@ defmodule Pleroma.Web.ApiSpec.SubscriptionOperation do
|
||||||
required: [:endpoint, :keys]
|
required: [:endpoint, :keys]
|
||||||
},
|
},
|
||||||
data: %Schema{
|
data: %Schema{
|
||||||
|
nullable: true,
|
||||||
type: :object,
|
type: :object,
|
||||||
properties: %{
|
properties: %{
|
||||||
alerts: %Schema{
|
alerts: %Schema{
|
||||||
|
nullable: true,
|
||||||
type: :object,
|
type: :object,
|
||||||
properties: %{
|
properties: %{
|
||||||
follow: %Schema{type: :boolean, description: "Receive follow notifications?"},
|
follow: %Schema{
|
||||||
|
type: :boolean,
|
||||||
|
nullable: true,
|
||||||
|
description: "Receive follow notifications?"
|
||||||
|
},
|
||||||
favourite: %Schema{
|
favourite: %Schema{
|
||||||
type: :boolean,
|
type: :boolean,
|
||||||
|
nullable: true,
|
||||||
description: "Receive favourite notifications?"
|
description: "Receive favourite notifications?"
|
||||||
},
|
},
|
||||||
reblog: %Schema{type: :boolean, description: "Receive reblog notifications?"},
|
reblog: %Schema{
|
||||||
mention: %Schema{type: :boolean, description: "Receive mention notifications?"},
|
type: :boolean,
|
||||||
poll: %Schema{type: :boolean, description: "Receive poll notifications?"}
|
nullable: true,
|
||||||
|
description: "Receive reblog notifications?"
|
||||||
|
},
|
||||||
|
mention: %Schema{
|
||||||
|
type: :boolean,
|
||||||
|
nullable: true,
|
||||||
|
description: "Receive mention notifications?"
|
||||||
|
},
|
||||||
|
poll: %Schema{
|
||||||
|
type: :boolean,
|
||||||
|
nullable: true,
|
||||||
|
description: "Receive poll notifications?"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -154,19 +173,38 @@ defmodule Pleroma.Web.ApiSpec.SubscriptionOperation do
|
||||||
type: :object,
|
type: :object,
|
||||||
properties: %{
|
properties: %{
|
||||||
data: %Schema{
|
data: %Schema{
|
||||||
|
nullable: true,
|
||||||
type: :object,
|
type: :object,
|
||||||
properties: %{
|
properties: %{
|
||||||
alerts: %Schema{
|
alerts: %Schema{
|
||||||
|
nullable: true,
|
||||||
type: :object,
|
type: :object,
|
||||||
properties: %{
|
properties: %{
|
||||||
follow: %Schema{type: :boolean, description: "Receive follow notifications?"},
|
follow: %Schema{
|
||||||
|
type: :boolean,
|
||||||
|
nullable: true,
|
||||||
|
description: "Receive follow notifications?"
|
||||||
|
},
|
||||||
favourite: %Schema{
|
favourite: %Schema{
|
||||||
type: :boolean,
|
type: :boolean,
|
||||||
|
nullable: true,
|
||||||
description: "Receive favourite notifications?"
|
description: "Receive favourite notifications?"
|
||||||
},
|
},
|
||||||
reblog: %Schema{type: :boolean, description: "Receive reblog notifications?"},
|
reblog: %Schema{
|
||||||
mention: %Schema{type: :boolean, description: "Receive mention notifications?"},
|
type: :boolean,
|
||||||
poll: %Schema{type: :boolean, description: "Receive poll notifications?"}
|
nullable: true,
|
||||||
|
description: "Receive reblog notifications?"
|
||||||
|
},
|
||||||
|
mention: %Schema{
|
||||||
|
type: :boolean,
|
||||||
|
nullable: true,
|
||||||
|
description: "Receive mention notifications?"
|
||||||
|
},
|
||||||
|
poll: %Schema{
|
||||||
|
type: :boolean,
|
||||||
|
nullable: true,
|
||||||
|
description: "Receive poll notifications?"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,10 +25,21 @@ defmodule Pleroma.Web.CommonAPI do
|
||||||
require Logger
|
require Logger
|
||||||
|
|
||||||
def unblock(blocker, blocked) do
|
def unblock(blocker, blocked) do
|
||||||
with %Activity{} = block <- Utils.fetch_latest_block(blocker, blocked),
|
with {_, %Activity{} = block} <- {:fetch_block, Utils.fetch_latest_block(blocker, blocked)},
|
||||||
{:ok, unblock_data, _} <- Builder.undo(blocker, block),
|
{:ok, unblock_data, _} <- Builder.undo(blocker, block),
|
||||||
{:ok, unblock, _} <- Pipeline.common_pipeline(unblock_data, local: true) do
|
{:ok, unblock, _} <- Pipeline.common_pipeline(unblock_data, local: true) do
|
||||||
{:ok, unblock}
|
{:ok, unblock}
|
||||||
|
else
|
||||||
|
{:fetch_block, nil} ->
|
||||||
|
if User.blocks?(blocker, blocked) do
|
||||||
|
User.unblock(blocker, blocked)
|
||||||
|
{:ok, :no_activity}
|
||||||
|
else
|
||||||
|
{:error, :not_blocking}
|
||||||
|
end
|
||||||
|
|
||||||
|
e ->
|
||||||
|
e
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
587
priv/gettext/pl/LC_MESSAGES/errors.po
Normal file
587
priv/gettext/pl/LC_MESSAGES/errors.po
Normal file
|
@ -0,0 +1,587 @@
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2020-05-13 16:37+0000\n"
|
||||||
|
"PO-Revision-Date: 2020-05-14 14:37+0000\n"
|
||||||
|
"Last-Translator: Michał Sidor <pleromeme@meekchopp.es>\n"
|
||||||
|
"Language-Team: Polish <https://translate.pleroma.social/projects/pleroma/"
|
||||||
|
"pleroma/pl/>\n"
|
||||||
|
"Language: pl\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
|
||||||
|
"|| n%100>=20) ? 1 : 2;\n"
|
||||||
|
"X-Generator: Weblate 4.0.4\n"
|
||||||
|
|
||||||
|
## This file is a PO Template file.
|
||||||
|
##
|
||||||
|
## `msgid`s here are often extracted from source code.
|
||||||
|
## Add new translations manually only if they're dynamic
|
||||||
|
## translations that can't be statically extracted.
|
||||||
|
##
|
||||||
|
## Run `mix gettext.extract` to bring this file up to
|
||||||
|
## date. Leave `msgstr`s empty as changing them here as no
|
||||||
|
## effect: edit them in PO (`.po`) files instead.
|
||||||
|
## From Ecto.Changeset.cast/4
|
||||||
|
msgid "can't be blank"
|
||||||
|
msgstr "nie może być pusty"
|
||||||
|
|
||||||
|
## From Ecto.Changeset.unique_constraint/3
|
||||||
|
msgid "has already been taken"
|
||||||
|
msgstr "jest już zajęty"
|
||||||
|
|
||||||
|
## From Ecto.Changeset.put_change/3
|
||||||
|
msgid "is invalid"
|
||||||
|
msgstr "jest nieprawidłowy"
|
||||||
|
|
||||||
|
## From Ecto.Changeset.validate_format/3
|
||||||
|
msgid "has invalid format"
|
||||||
|
msgstr "ma niepoprawny format"
|
||||||
|
|
||||||
|
## From Ecto.Changeset.validate_subset/3
|
||||||
|
msgid "has an invalid entry"
|
||||||
|
msgstr "ma niepoprawny wpis"
|
||||||
|
|
||||||
|
## From Ecto.Changeset.validate_exclusion/3
|
||||||
|
msgid "is reserved"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
## From Ecto.Changeset.validate_confirmation/3
|
||||||
|
msgid "does not match confirmation"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
## From Ecto.Changeset.no_assoc_constraint/3
|
||||||
|
msgid "is still associated with this entry"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "are still associated with this entry"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
## From Ecto.Changeset.validate_length/3
|
||||||
|
msgid "should be %{count} character(s)"
|
||||||
|
msgid_plural "should be %{count} character(s)"
|
||||||
|
msgstr[0] ""
|
||||||
|
msgstr[1] ""
|
||||||
|
msgstr[2] ""
|
||||||
|
|
||||||
|
msgid "should have %{count} item(s)"
|
||||||
|
msgid_plural "should have %{count} item(s)"
|
||||||
|
msgstr[0] ""
|
||||||
|
msgstr[1] ""
|
||||||
|
msgstr[2] ""
|
||||||
|
|
||||||
|
msgid "should be at least %{count} character(s)"
|
||||||
|
msgid_plural "should be at least %{count} character(s)"
|
||||||
|
msgstr[0] ""
|
||||||
|
msgstr[1] ""
|
||||||
|
msgstr[2] ""
|
||||||
|
|
||||||
|
msgid "should have at least %{count} item(s)"
|
||||||
|
msgid_plural "should have at least %{count} item(s)"
|
||||||
|
msgstr[0] ""
|
||||||
|
msgstr[1] ""
|
||||||
|
msgstr[2] ""
|
||||||
|
|
||||||
|
msgid "should be at most %{count} character(s)"
|
||||||
|
msgid_plural "should be at most %{count} character(s)"
|
||||||
|
msgstr[0] ""
|
||||||
|
msgstr[1] ""
|
||||||
|
msgstr[2] ""
|
||||||
|
|
||||||
|
msgid "should have at most %{count} item(s)"
|
||||||
|
msgid_plural "should have at most %{count} item(s)"
|
||||||
|
msgstr[0] ""
|
||||||
|
msgstr[1] ""
|
||||||
|
msgstr[2] ""
|
||||||
|
|
||||||
|
## From Ecto.Changeset.validate_number/3
|
||||||
|
msgid "must be less than %{number}"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "must be greater than %{number}"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "must be less than or equal to %{number}"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "must be greater than or equal to %{number}"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "must be equal to %{number}"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/pleroma/web/common_api/common_api.ex:421
|
||||||
|
#, elixir-format
|
||||||
|
msgid "Account not found"
|
||||||
|
msgstr "Nie znaleziono konta"
|
||||||
|
|
||||||
|
#: lib/pleroma/web/common_api/common_api.ex:249
|
||||||
|
#, elixir-format
|
||||||
|
msgid "Already voted"
|
||||||
|
msgstr "Już zagłosowano"
|
||||||
|
|
||||||
|
#: lib/pleroma/web/oauth/oauth_controller.ex:360
|
||||||
|
#, elixir-format
|
||||||
|
msgid "Bad request"
|
||||||
|
msgstr "Nieprawidłowe żądanie"
|
||||||
|
|
||||||
|
#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:425
|
||||||
|
#, elixir-format
|
||||||
|
msgid "Can't delete object"
|
||||||
|
msgstr "Nie można usunąć obiektu"
|
||||||
|
|
||||||
|
#: lib/pleroma/web/mastodon_api/controllers/status_controller.ex:196
|
||||||
|
#, elixir-format
|
||||||
|
msgid "Can't delete this post"
|
||||||
|
msgstr "Nie udało się usunąć tego statusu"
|
||||||
|
|
||||||
|
#: lib/pleroma/web/controller_helper.ex:95
|
||||||
|
#: lib/pleroma/web/controller_helper.ex:101
|
||||||
|
#, elixir-format
|
||||||
|
msgid "Can't display this activity"
|
||||||
|
msgstr "Nie można wyświetlić tej aktywności"
|
||||||
|
|
||||||
|
#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:227
|
||||||
|
#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:254
|
||||||
|
#, elixir-format
|
||||||
|
msgid "Can't find user"
|
||||||
|
msgstr "Nie znaleziono użytkownika"
|
||||||
|
|
||||||
|
#: lib/pleroma/web/pleroma_api/controllers/account_controller.ex:114
|
||||||
|
#, elixir-format
|
||||||
|
msgid "Can't get favorites"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:437
|
||||||
|
#, elixir-format
|
||||||
|
msgid "Can't like object"
|
||||||
|
msgstr "Nie udało się polubić obiektu"
|
||||||
|
|
||||||
|
#: lib/pleroma/web/common_api/utils.ex:556
|
||||||
|
#, elixir-format
|
||||||
|
msgid "Cannot post an empty status without attachments"
|
||||||
|
msgstr "Nie można opublikować pustego statusu bez załączników"
|
||||||
|
|
||||||
|
#: lib/pleroma/web/common_api/utils.ex:504
|
||||||
|
#, elixir-format
|
||||||
|
msgid "Comment must be up to %{max_size} characters"
|
||||||
|
msgstr "Komentarz może mieć co najwyżej %{max_size} znaków"
|
||||||
|
|
||||||
|
#: lib/pleroma/config/config_db.ex:222
|
||||||
|
#, elixir-format
|
||||||
|
msgid "Config with params %{params} not found"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/pleroma/web/common_api/common_api.ex:95
|
||||||
|
#, elixir-format
|
||||||
|
msgid "Could not delete"
|
||||||
|
msgstr "Nie udało się usunąć"
|
||||||
|
|
||||||
|
#: lib/pleroma/web/common_api/common_api.ex:141
|
||||||
|
#, elixir-format
|
||||||
|
msgid "Could not favorite"
|
||||||
|
msgstr "Nie udało się dodać do ulubionych"
|
||||||
|
|
||||||
|
#: lib/pleroma/web/common_api/common_api.ex:370
|
||||||
|
#, elixir-format
|
||||||
|
msgid "Could not pin"
|
||||||
|
msgstr "Nie udało się przypiąć"
|
||||||
|
|
||||||
|
#: lib/pleroma/web/common_api/common_api.ex:112
|
||||||
|
#, elixir-format
|
||||||
|
msgid "Could not repeat"
|
||||||
|
msgstr "Nie udało się powtórzyć"
|
||||||
|
|
||||||
|
#: lib/pleroma/web/common_api/common_api.ex:188
|
||||||
|
#, elixir-format
|
||||||
|
msgid "Could not unfavorite"
|
||||||
|
msgstr "Nie udało się usunąć z ulubionych"
|
||||||
|
|
||||||
|
#: lib/pleroma/web/common_api/common_api.ex:380
|
||||||
|
#, elixir-format
|
||||||
|
msgid "Could not unpin"
|
||||||
|
msgstr "Nie udało się odpiąć"
|
||||||
|
|
||||||
|
#: lib/pleroma/web/common_api/common_api.ex:126
|
||||||
|
#, elixir-format
|
||||||
|
msgid "Could not unrepeat"
|
||||||
|
msgstr "Nie udało się cofnąć powtórzenia"
|
||||||
|
|
||||||
|
#: lib/pleroma/web/common_api/common_api.ex:428
|
||||||
|
#: lib/pleroma/web/common_api/common_api.ex:437
|
||||||
|
#, elixir-format
|
||||||
|
msgid "Could not update state"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/pleroma/web/mastodon_api/controllers/timeline_controller.ex:202
|
||||||
|
#, elixir-format
|
||||||
|
msgid "Error."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/pleroma/web/twitter_api/twitter_api.ex:106
|
||||||
|
#, elixir-format
|
||||||
|
msgid "Invalid CAPTCHA"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:117
|
||||||
|
#: lib/pleroma/web/oauth/oauth_controller.ex:569
|
||||||
|
#, elixir-format
|
||||||
|
msgid "Invalid credentials"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/pleroma/plugs/ensure_authenticated_plug.ex:38
|
||||||
|
#, elixir-format
|
||||||
|
msgid "Invalid credentials."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/pleroma/web/common_api/common_api.ex:265
|
||||||
|
#, elixir-format
|
||||||
|
msgid "Invalid indices"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/pleroma/web/admin_api/admin_api_controller.ex:1147
|
||||||
|
#, elixir-format
|
||||||
|
msgid "Invalid parameters"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/pleroma/web/common_api/utils.ex:411
|
||||||
|
#, elixir-format
|
||||||
|
msgid "Invalid password."
|
||||||
|
msgstr "Nieprawidłowe hasło."
|
||||||
|
|
||||||
|
#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:187
|
||||||
|
#, elixir-format
|
||||||
|
msgid "Invalid request"
|
||||||
|
msgstr "Nieprawidłowe żądanie"
|
||||||
|
|
||||||
|
#: lib/pleroma/web/twitter_api/twitter_api.ex:109
|
||||||
|
#, elixir-format
|
||||||
|
msgid "Kocaptcha service unavailable"
|
||||||
|
msgstr "Usługa Kocaptcha niedostępna"
|
||||||
|
|
||||||
|
#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:113
|
||||||
|
#, elixir-format
|
||||||
|
msgid "Missing parameters"
|
||||||
|
msgstr "Brakujące parametry"
|
||||||
|
|
||||||
|
#: lib/pleroma/web/common_api/utils.ex:540
|
||||||
|
#, elixir-format
|
||||||
|
msgid "No such conversation"
|
||||||
|
msgstr "Nie ma takiej rozmowy"
|
||||||
|
|
||||||
|
#: lib/pleroma/web/admin_api/admin_api_controller.ex:439
|
||||||
|
#: lib/pleroma/web/admin_api/admin_api_controller.ex:465 lib/pleroma/web/admin_api/admin_api_controller.ex:507
|
||||||
|
#, elixir-format
|
||||||
|
msgid "No such permission_group"
|
||||||
|
msgstr "Nie ma takiej grupy uprawnień"
|
||||||
|
|
||||||
|
#: lib/pleroma/plugs/uploaded_media.ex:74
|
||||||
|
#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:485 lib/pleroma/web/admin_api/admin_api_controller.ex:1135
|
||||||
|
#: lib/pleroma/web/feed/user_controller.ex:73 lib/pleroma/web/ostatus/ostatus_controller.ex:143
|
||||||
|
#, elixir-format
|
||||||
|
msgid "Not found"
|
||||||
|
msgstr "Nie znaleziono"
|
||||||
|
|
||||||
|
#: lib/pleroma/web/common_api/common_api.ex:241
|
||||||
|
#, elixir-format
|
||||||
|
msgid "Poll's author can't vote"
|
||||||
|
msgstr "Autor ankiety nie może głosować"
|
||||||
|
|
||||||
|
#: lib/pleroma/web/mastodon_api/controllers/fallback_controller.ex:20
|
||||||
|
#: lib/pleroma/web/mastodon_api/controllers/poll_controller.ex:37 lib/pleroma/web/mastodon_api/controllers/poll_controller.ex:49
|
||||||
|
#: lib/pleroma/web/mastodon_api/controllers/poll_controller.ex:50 lib/pleroma/web/mastodon_api/controllers/status_controller.ex:290
|
||||||
|
#: lib/pleroma/web/mastodon_api/controllers/subscription_controller.ex:71
|
||||||
|
#, elixir-format
|
||||||
|
msgid "Record not found"
|
||||||
|
msgstr "Nie znaleziono rekordu"
|
||||||
|
|
||||||
|
#: lib/pleroma/web/admin_api/admin_api_controller.ex:1153
|
||||||
|
#: lib/pleroma/web/feed/user_controller.ex:79 lib/pleroma/web/mastodon_api/controllers/fallback_controller.ex:32
|
||||||
|
#: lib/pleroma/web/ostatus/ostatus_controller.ex:149
|
||||||
|
#, elixir-format
|
||||||
|
msgid "Something went wrong"
|
||||||
|
msgstr "Coś się zepsuło"
|
||||||
|
|
||||||
|
#: lib/pleroma/web/common_api/activity_draft.ex:107
|
||||||
|
#, elixir-format
|
||||||
|
msgid "The message visibility must be direct"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/pleroma/web/common_api/utils.ex:566
|
||||||
|
#, elixir-format
|
||||||
|
msgid "The status is over the character limit"
|
||||||
|
msgstr "Ten status przekracza limit znaków"
|
||||||
|
|
||||||
|
#: lib/pleroma/plugs/ensure_public_or_authenticated_plug.ex:31
|
||||||
|
#, elixir-format
|
||||||
|
msgid "This resource requires authentication."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/pleroma/plugs/rate_limiter/rate_limiter.ex:206
|
||||||
|
#, elixir-format
|
||||||
|
msgid "Throttled"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/pleroma/web/common_api/common_api.ex:266
|
||||||
|
#, elixir-format
|
||||||
|
msgid "Too many choices"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:442
|
||||||
|
#, elixir-format
|
||||||
|
msgid "Unhandled activity type"
|
||||||
|
msgstr "Nieobsługiwany typ aktywności"
|
||||||
|
|
||||||
|
#: lib/pleroma/web/admin_api/admin_api_controller.ex:536
|
||||||
|
#, elixir-format
|
||||||
|
msgid "You can't revoke your own admin status."
|
||||||
|
msgstr "Nie możesz odebrać samemu sobie statusu administratora."
|
||||||
|
|
||||||
|
#: lib/pleroma/web/oauth/oauth_controller.ex:218
|
||||||
|
#: lib/pleroma/web/oauth/oauth_controller.ex:309
|
||||||
|
#, elixir-format
|
||||||
|
msgid "Your account is currently disabled"
|
||||||
|
msgstr "Twoje konto jest obecnie nieaktywne"
|
||||||
|
|
||||||
|
#: lib/pleroma/web/oauth/oauth_controller.ex:180
|
||||||
|
#: lib/pleroma/web/oauth/oauth_controller.ex:332
|
||||||
|
#, elixir-format
|
||||||
|
msgid "Your login is missing a confirmed e-mail address"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:389
|
||||||
|
#, elixir-format
|
||||||
|
msgid "can't read inbox of %{nickname} as %{as_nickname}"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:472
|
||||||
|
#, elixir-format
|
||||||
|
msgid "can't update outbox of %{nickname} as %{as_nickname}"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/pleroma/web/common_api/common_api.ex:388
|
||||||
|
#, elixir-format
|
||||||
|
msgid "conversation is already muted"
|
||||||
|
msgstr "rozmowa jest już wyciszona"
|
||||||
|
|
||||||
|
#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:316
|
||||||
|
#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:491
|
||||||
|
#, elixir-format
|
||||||
|
msgid "error"
|
||||||
|
msgstr "błąd"
|
||||||
|
|
||||||
|
#: lib/pleroma/web/pleroma_api/controllers/mascot_controller.ex:29
|
||||||
|
#, elixir-format
|
||||||
|
msgid "mascots can only be images"
|
||||||
|
msgstr "maskotki muszą być obrazkami"
|
||||||
|
|
||||||
|
#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:60
|
||||||
|
#, elixir-format
|
||||||
|
msgid "not found"
|
||||||
|
msgstr "nie znaleziono"
|
||||||
|
|
||||||
|
#: lib/pleroma/web/oauth/oauth_controller.ex:395
|
||||||
|
#, elixir-format
|
||||||
|
msgid "Bad OAuth request."
|
||||||
|
msgstr "Niepoprawne żądanie OAuth."
|
||||||
|
|
||||||
|
#: lib/pleroma/web/twitter_api/twitter_api.ex:115
|
||||||
|
#, elixir-format
|
||||||
|
msgid "CAPTCHA already used"
|
||||||
|
msgstr "Zużyta CAPTCHA"
|
||||||
|
|
||||||
|
#: lib/pleroma/web/twitter_api/twitter_api.ex:112
|
||||||
|
#, elixir-format
|
||||||
|
msgid "CAPTCHA expired"
|
||||||
|
msgstr "CAPTCHA wygasła"
|
||||||
|
|
||||||
|
#: lib/pleroma/plugs/uploaded_media.ex:55
|
||||||
|
#, elixir-format
|
||||||
|
msgid "Failed"
|
||||||
|
msgstr "Nie udało się"
|
||||||
|
|
||||||
|
#: lib/pleroma/web/oauth/oauth_controller.ex:411
|
||||||
|
#, elixir-format
|
||||||
|
msgid "Failed to authenticate: %{message}."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/pleroma/web/oauth/oauth_controller.ex:442
|
||||||
|
#, elixir-format
|
||||||
|
msgid "Failed to set up user account."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/pleroma/plugs/oauth_scopes_plug.ex:38
|
||||||
|
#, elixir-format
|
||||||
|
msgid "Insufficient permissions: %{permissions}."
|
||||||
|
msgstr "Niewystarczające uprawnienia: %{permissions}."
|
||||||
|
|
||||||
|
#: lib/pleroma/plugs/uploaded_media.ex:94
|
||||||
|
#, elixir-format
|
||||||
|
msgid "Internal Error"
|
||||||
|
msgstr "Błąd wewnętrzny"
|
||||||
|
|
||||||
|
#: lib/pleroma/web/oauth/fallback_controller.ex:22
|
||||||
|
#: lib/pleroma/web/oauth/fallback_controller.ex:29
|
||||||
|
#, elixir-format
|
||||||
|
msgid "Invalid Username/Password"
|
||||||
|
msgstr "Nieprawidłowa nazwa użytkownika lub hasło"
|
||||||
|
|
||||||
|
#: lib/pleroma/web/twitter_api/twitter_api.ex:118
|
||||||
|
#, elixir-format
|
||||||
|
msgid "Invalid answer data"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/pleroma/web/nodeinfo/nodeinfo_controller.ex:128
|
||||||
|
#, elixir-format
|
||||||
|
msgid "Nodeinfo schema version not handled"
|
||||||
|
msgstr "Nieobsługiwana wersja schematu Nodeinfo"
|
||||||
|
|
||||||
|
#: lib/pleroma/web/oauth/oauth_controller.ex:169
|
||||||
|
#, elixir-format
|
||||||
|
msgid "This action is outside the authorized scopes"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/pleroma/web/oauth/fallback_controller.ex:14
|
||||||
|
#, elixir-format
|
||||||
|
msgid "Unknown error, please check the details and try again."
|
||||||
|
msgstr "Nieznany błąd, sprawdź szczegóły i spróbuj ponownie."
|
||||||
|
|
||||||
|
#: lib/pleroma/web/oauth/oauth_controller.ex:116
|
||||||
|
#: lib/pleroma/web/oauth/oauth_controller.ex:155
|
||||||
|
#, elixir-format
|
||||||
|
msgid "Unlisted redirect_uri."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/pleroma/web/oauth/oauth_controller.ex:391
|
||||||
|
#, elixir-format
|
||||||
|
msgid "Unsupported OAuth provider: %{provider}."
|
||||||
|
msgstr "Nieobsługiwany dostawca OAuth: %{provider}."
|
||||||
|
|
||||||
|
#: lib/pleroma/uploaders/uploader.ex:72
|
||||||
|
#, elixir-format
|
||||||
|
msgid "Uploader callback timeout"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/pleroma/web/uploader_controller.ex:23
|
||||||
|
#, elixir-format
|
||||||
|
msgid "bad request"
|
||||||
|
msgstr "nieprawidłowe żądanie"
|
||||||
|
|
||||||
|
#: lib/pleroma/web/twitter_api/twitter_api.ex:103
|
||||||
|
#, elixir-format
|
||||||
|
msgid "CAPTCHA Error"
|
||||||
|
msgstr "Błąd CAPTCHA"
|
||||||
|
|
||||||
|
#: lib/pleroma/web/common_api/common_api.ex:200
|
||||||
|
#, elixir-format
|
||||||
|
msgid "Could not add reaction emoji"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/pleroma/web/common_api/common_api.ex:211
|
||||||
|
#, elixir-format
|
||||||
|
msgid "Could not remove reaction emoji"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/pleroma/web/twitter_api/twitter_api.ex:129
|
||||||
|
#, elixir-format
|
||||||
|
msgid "Invalid CAPTCHA (Missing parameter: %{name})"
|
||||||
|
msgstr "Nieprawidłowa CAPTCHA (Brakujący parametr: %{name})"
|
||||||
|
|
||||||
|
#: lib/pleroma/web/mastodon_api/controllers/list_controller.ex:92
|
||||||
|
#, elixir-format
|
||||||
|
msgid "List not found"
|
||||||
|
msgstr "Nie znaleziono listy"
|
||||||
|
|
||||||
|
#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:124
|
||||||
|
#, elixir-format
|
||||||
|
msgid "Missing parameter: %{name}"
|
||||||
|
msgstr "Brakujący parametr: %{name}"
|
||||||
|
|
||||||
|
#: lib/pleroma/web/oauth/oauth_controller.ex:207
|
||||||
|
#: lib/pleroma/web/oauth/oauth_controller.ex:322
|
||||||
|
#, elixir-format
|
||||||
|
msgid "Password reset is required"
|
||||||
|
msgstr "Wymagany reset hasła"
|
||||||
|
|
||||||
|
#: lib/pleroma/tests/auth_test_controller.ex:9
|
||||||
|
#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:6 lib/pleroma/web/admin_api/admin_api_controller.ex:6
|
||||||
|
#: lib/pleroma/web/controller_helper.ex:6 lib/pleroma/web/fallback_redirect_controller.ex:6
|
||||||
|
#: lib/pleroma/web/feed/tag_controller.ex:6 lib/pleroma/web/feed/user_controller.ex:6
|
||||||
|
#: lib/pleroma/web/mailer/subscription_controller.ex:2 lib/pleroma/web/masto_fe_controller.ex:6
|
||||||
|
#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/app_controller.ex:6
|
||||||
|
#: lib/pleroma/web/mastodon_api/controllers/auth_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/conversation_controller.ex:6
|
||||||
|
#: lib/pleroma/web/mastodon_api/controllers/custom_emoji_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/domain_block_controller.ex:6
|
||||||
|
#: lib/pleroma/web/mastodon_api/controllers/fallback_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/filter_controller.ex:6
|
||||||
|
#: lib/pleroma/web/mastodon_api/controllers/follow_request_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/instance_controller.ex:6
|
||||||
|
#: lib/pleroma/web/mastodon_api/controllers/list_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/marker_controller.ex:6
|
||||||
|
#: lib/pleroma/web/mastodon_api/controllers/mastodon_api_controller.ex:14 lib/pleroma/web/mastodon_api/controllers/media_controller.ex:6
|
||||||
|
#: lib/pleroma/web/mastodon_api/controllers/notification_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/poll_controller.ex:6
|
||||||
|
#: lib/pleroma/web/mastodon_api/controllers/report_controller.ex:8 lib/pleroma/web/mastodon_api/controllers/scheduled_activity_controller.ex:6
|
||||||
|
#: lib/pleroma/web/mastodon_api/controllers/search_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/status_controller.ex:6
|
||||||
|
#: lib/pleroma/web/mastodon_api/controllers/subscription_controller.ex:7 lib/pleroma/web/mastodon_api/controllers/suggestion_controller.ex:6
|
||||||
|
#: lib/pleroma/web/mastodon_api/controllers/timeline_controller.ex:6 lib/pleroma/web/media_proxy/media_proxy_controller.ex:6
|
||||||
|
#: lib/pleroma/web/mongooseim/mongoose_im_controller.ex:6 lib/pleroma/web/nodeinfo/nodeinfo_controller.ex:6
|
||||||
|
#: lib/pleroma/web/oauth/fallback_controller.ex:6 lib/pleroma/web/oauth/mfa_controller.ex:10
|
||||||
|
#: lib/pleroma/web/oauth/oauth_controller.ex:6 lib/pleroma/web/ostatus/ostatus_controller.ex:6
|
||||||
|
#: lib/pleroma/web/pleroma_api/controllers/account_controller.ex:6 lib/pleroma/web/pleroma_api/controllers/emoji_api_controller.ex:2
|
||||||
|
#: lib/pleroma/web/pleroma_api/controllers/mascot_controller.ex:6 lib/pleroma/web/pleroma_api/controllers/pleroma_api_controller.ex:6
|
||||||
|
#: lib/pleroma/web/pleroma_api/controllers/scrobble_controller.ex:6
|
||||||
|
#: lib/pleroma/web/pleroma_api/controllers/two_factor_authentication_controller.ex:7 lib/pleroma/web/static_fe/static_fe_controller.ex:6
|
||||||
|
#: lib/pleroma/web/twitter_api/controllers/password_controller.ex:10 lib/pleroma/web/twitter_api/controllers/remote_follow_controller.ex:6
|
||||||
|
#: lib/pleroma/web/twitter_api/controllers/util_controller.ex:6 lib/pleroma/web/twitter_api/twitter_api_controller.ex:6
|
||||||
|
#: lib/pleroma/web/uploader_controller.ex:6 lib/pleroma/web/web_finger/web_finger_controller.ex:6
|
||||||
|
#, elixir-format
|
||||||
|
msgid "Security violation: OAuth scopes check was neither handled nor explicitly skipped."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/pleroma/plugs/ensure_authenticated_plug.ex:28
|
||||||
|
#, elixir-format
|
||||||
|
msgid "Two-factor authentication enabled, you must use a access token."
|
||||||
|
msgstr "Uwierzytelnienie dwuskładnikowe jest włączone, musisz użyć tokenu."
|
||||||
|
|
||||||
|
#: lib/pleroma/web/pleroma_api/controllers/emoji_api_controller.ex:210
|
||||||
|
#, elixir-format
|
||||||
|
msgid "Unexpected error occurred while adding file to pack."
|
||||||
|
msgstr "Nieoczekiwany błąd podczas dodawania pliku do paczki."
|
||||||
|
|
||||||
|
#: lib/pleroma/web/pleroma_api/controllers/emoji_api_controller.ex:138
|
||||||
|
#, elixir-format
|
||||||
|
msgid "Unexpected error occurred while creating pack."
|
||||||
|
msgstr "Nieoczekiwany błąd podczas tworzenia paczki."
|
||||||
|
|
||||||
|
#: lib/pleroma/web/pleroma_api/controllers/emoji_api_controller.ex:278
|
||||||
|
#, elixir-format
|
||||||
|
msgid "Unexpected error occurred while removing file from pack."
|
||||||
|
msgstr "Nieoczekiwany błąd podczas usuwania pliku z paczki."
|
||||||
|
|
||||||
|
#: lib/pleroma/web/pleroma_api/controllers/emoji_api_controller.ex:250
|
||||||
|
#, elixir-format
|
||||||
|
msgid "Unexpected error occurred while updating file in pack."
|
||||||
|
msgstr "Nieoczekiwany błąd podczas zmieniania pliku w paczce."
|
||||||
|
|
||||||
|
#: lib/pleroma/web/pleroma_api/controllers/emoji_api_controller.ex:179
|
||||||
|
#, elixir-format
|
||||||
|
msgid "Unexpected error occurred while updating pack metadata."
|
||||||
|
msgstr "Nieoczekiwany błąd podczas zmieniania metadanych paczki."
|
||||||
|
|
||||||
|
#: lib/pleroma/plugs/user_is_admin_plug.ex:40
|
||||||
|
#, elixir-format
|
||||||
|
msgid "User is not an admin or OAuth admin scope is not granted."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/pleroma/web/mastodon_api/controllers/subscription_controller.ex:61
|
||||||
|
#, elixir-format
|
||||||
|
msgid "Web push subscription is disabled on this Pleroma instance"
|
||||||
|
msgstr "Powiadomienia web push są wyłączone na tej instancji Pleromy"
|
||||||
|
|
||||||
|
#: lib/pleroma/web/admin_api/admin_api_controller.ex:502
|
||||||
|
#, elixir-format
|
||||||
|
msgid "You can't revoke your own admin/moderator status."
|
||||||
|
msgstr "Nie możesz odebrać samemu sobie statusu administratora/moderatora."
|
||||||
|
|
||||||
|
#: lib/pleroma/web/mastodon_api/controllers/timeline_controller.ex:105
|
||||||
|
#, elixir-format
|
||||||
|
msgid "authorization required for timeline view"
|
||||||
|
msgstr "logowanie wymagane do przeglądania osi czasu"
|
|
@ -1,23 +1,28 @@
|
||||||
{
|
{
|
||||||
"theme": "pleroma-dark",
|
|
||||||
"background": "/static/aurora_borealis.jpg",
|
|
||||||
"logo": "/static/logo.png",
|
|
||||||
"logoMask": true,
|
|
||||||
"logoMargin": ".1em",
|
|
||||||
"redirectRootNoLogin": "/main/all",
|
|
||||||
"redirectRootLogin": "/main/friends",
|
|
||||||
"showInstanceSpecificPanel": false,
|
|
||||||
"collapseMessageWithSubject": false,
|
|
||||||
"scopeCopy": true,
|
|
||||||
"subjectLineBehavior": "email",
|
|
||||||
"postContentType": "text/plain",
|
|
||||||
"alwaysShowSubjectInput": true,
|
"alwaysShowSubjectInput": true,
|
||||||
|
"background": "/static/aurora_borealis.jpg",
|
||||||
|
"collapseMessageWithSubject": false,
|
||||||
|
"disableChat": false,
|
||||||
|
"greentext": false,
|
||||||
|
"hideFilteredStatuses": false,
|
||||||
|
"hideMutedPosts": false,
|
||||||
"hidePostStats": false,
|
"hidePostStats": false,
|
||||||
|
"hideSitename": false,
|
||||||
"hideUserStats": false,
|
"hideUserStats": false,
|
||||||
"loginMethod": "password",
|
"loginMethod": "password",
|
||||||
"webPushNotifications": false,
|
"logo": "/static/logo.png",
|
||||||
|
"logoMargin": ".1em",
|
||||||
|
"logoMask": true,
|
||||||
|
"minimalScopesMode": false,
|
||||||
"noAttachmentLinks": false,
|
"noAttachmentLinks": false,
|
||||||
"nsfwCensorImage": "",
|
"nsfwCensorImage": "",
|
||||||
|
"postContentType": "text/plain",
|
||||||
|
"redirectRootLogin": "/main/friends",
|
||||||
|
"redirectRootNoLogin": "/main/all",
|
||||||
|
"scopeCopy": true,
|
||||||
"showFeaturesPanel": true,
|
"showFeaturesPanel": true,
|
||||||
"minimalScopesMode": false
|
"showInstanceSpecificPanel": false,
|
||||||
|
"subjectLineBehavior": "email",
|
||||||
|
"theme": "pleroma-dark",
|
||||||
|
"webPushNotifications": false
|
||||||
}
|
}
|
||||||
|
|
|
@ -476,6 +476,14 @@ defmodule Pleroma.ConfigDBTest do
|
||||||
assert ConfigDB.from_binary(binary) == [key: "value"]
|
assert ConfigDB.from_binary(binary) == [key: "value"]
|
||||||
end
|
end
|
||||||
|
|
||||||
|
test "keyword with partial_chain key" do
|
||||||
|
binary =
|
||||||
|
ConfigDB.transform([%{"tuple" => [":partial_chain", "&:hackney_connect.partial_chain/1"]}])
|
||||||
|
|
||||||
|
assert binary == :erlang.term_to_binary(partial_chain: &:hackney_connect.partial_chain/1)
|
||||||
|
assert ConfigDB.from_binary(binary) == [partial_chain: &:hackney_connect.partial_chain/1]
|
||||||
|
end
|
||||||
|
|
||||||
test "keyword" do
|
test "keyword" do
|
||||||
binary =
|
binary =
|
||||||
ConfigDB.transform([
|
ConfigDB.transform([
|
||||||
|
|
|
@ -2509,6 +2509,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do
|
||||||
%{"tuple" => [":seconds_valid", 60]},
|
%{"tuple" => [":seconds_valid", 60]},
|
||||||
%{"tuple" => [":path", ""]},
|
%{"tuple" => [":path", ""]},
|
||||||
%{"tuple" => [":key1", nil]},
|
%{"tuple" => [":key1", nil]},
|
||||||
|
%{"tuple" => [":partial_chain", "&:hackney_connect.partial_chain/1"]},
|
||||||
%{"tuple" => [":regex1", "~r/https:\/\/example.com/"]},
|
%{"tuple" => [":regex1", "~r/https:\/\/example.com/"]},
|
||||||
%{"tuple" => [":regex2", "~r/https:\/\/example.com/u"]},
|
%{"tuple" => [":regex2", "~r/https:\/\/example.com/u"]},
|
||||||
%{"tuple" => [":regex3", "~r/https:\/\/example.com/i"]},
|
%{"tuple" => [":regex3", "~r/https:\/\/example.com/i"]},
|
||||||
|
@ -2532,6 +2533,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do
|
||||||
%{"tuple" => [":seconds_valid", 60]},
|
%{"tuple" => [":seconds_valid", 60]},
|
||||||
%{"tuple" => [":path", ""]},
|
%{"tuple" => [":path", ""]},
|
||||||
%{"tuple" => [":key1", nil]},
|
%{"tuple" => [":key1", nil]},
|
||||||
|
%{"tuple" => [":partial_chain", "&:hackney_connect.partial_chain/1"]},
|
||||||
%{"tuple" => [":regex1", "~r/https:\\/\\/example.com/"]},
|
%{"tuple" => [":regex1", "~r/https:\\/\\/example.com/"]},
|
||||||
%{"tuple" => [":regex2", "~r/https:\\/\\/example.com/u"]},
|
%{"tuple" => [":regex2", "~r/https:\\/\\/example.com/u"]},
|
||||||
%{"tuple" => [":regex3", "~r/https:\\/\\/example.com/i"]},
|
%{"tuple" => [":regex3", "~r/https:\\/\\/example.com/i"]},
|
||||||
|
@ -2544,6 +2546,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do
|
||||||
":seconds_valid",
|
":seconds_valid",
|
||||||
":path",
|
":path",
|
||||||
":key1",
|
":key1",
|
||||||
|
":partial_chain",
|
||||||
":regex1",
|
":regex1",
|
||||||
":regex2",
|
":regex2",
|
||||||
":regex3",
|
":regex3",
|
||||||
|
|
|
@ -23,6 +23,18 @@ defmodule Pleroma.Web.CommonAPITest do
|
||||||
setup do: clear_config([:instance, :limit])
|
setup do: clear_config([:instance, :limit])
|
||||||
setup do: clear_config([:instance, :max_pinned_statuses])
|
setup do: clear_config([:instance, :max_pinned_statuses])
|
||||||
|
|
||||||
|
describe "unblocking" do
|
||||||
|
test "it works even without an existing block activity" do
|
||||||
|
blocked = insert(:user)
|
||||||
|
blocker = insert(:user)
|
||||||
|
User.block(blocker, blocked)
|
||||||
|
|
||||||
|
assert User.blocks?(blocker, blocked)
|
||||||
|
assert {:ok, :no_activity} == CommonAPI.unblock(blocker, blocked)
|
||||||
|
refute User.blocks?(blocker, blocked)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
describe "deletion" do
|
describe "deletion" do
|
||||||
test "it works with pruned objects" do
|
test "it works with pruned objects" do
|
||||||
user = insert(:user)
|
user = insert(:user)
|
||||||
|
|
Loading…
Reference in a new issue