Merge remote-tracking branch 'origin/master' into gs-master
Conflicts: app/javascript/mastodon/locales/en.json app/javascript/mastodon/locales/ja.json app/javascript/mastodon/locales/pl.json app/views/accounts/_header.html.haml
This commit is contained in:
@@ -63,6 +63,6 @@ class Api::V1::Accounts::FollowerAccountsController < Api::BaseController
|
||||
end
|
||||
|
||||
def pagination_params(core_params)
|
||||
params.permit(:limit).merge(core_params)
|
||||
params.slice(:limit).permit(:limit).merge(core_params)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -63,6 +63,6 @@ class Api::V1::Accounts::FollowingAccountsController < Api::BaseController
|
||||
end
|
||||
|
||||
def pagination_params(core_params)
|
||||
params.permit(:limit).merge(core_params)
|
||||
params.slice(:limit).permit(:limit).merge(core_params)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -69,7 +69,7 @@ class Api::V1::Accounts::StatusesController < Api::BaseController
|
||||
end
|
||||
|
||||
def pagination_params(core_params)
|
||||
params.permit(:limit, :only_media, :exclude_replies).merge(core_params)
|
||||
params.slice(:limit, :only_media, :exclude_replies).permit(:limit, :only_media, :exclude_replies).merge(core_params)
|
||||
end
|
||||
|
||||
def insert_pagination_headers
|
||||
|
||||
@@ -57,6 +57,6 @@ class Api::V1::BlocksController < Api::BaseController
|
||||
end
|
||||
|
||||
def pagination_params(core_params)
|
||||
params.permit(:limit).merge(core_params)
|
||||
params.slice(:limit).permit(:limit).merge(core_params)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -67,7 +67,7 @@ class Api::V1::DomainBlocksController < Api::BaseController
|
||||
end
|
||||
|
||||
def pagination_params(core_params)
|
||||
params.permit(:limit).merge(core_params)
|
||||
params.slice(:limit).permit(:limit).merge(core_params)
|
||||
end
|
||||
|
||||
def domain_block_params
|
||||
|
||||
@@ -66,6 +66,6 @@ class Api::V1::FavouritesController < Api::BaseController
|
||||
end
|
||||
|
||||
def pagination_params(core_params)
|
||||
params.permit(:limit).merge(core_params)
|
||||
params.slice(:limit).permit(:limit).merge(core_params)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -71,6 +71,6 @@ class Api::V1::FollowRequestsController < Api::BaseController
|
||||
end
|
||||
|
||||
def pagination_params(core_params)
|
||||
params.permit(:limit).merge(core_params)
|
||||
params.slice(:limit).permit(:limit).merge(core_params)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -88,7 +88,7 @@ class Api::V1::Lists::AccountsController < Api::BaseController
|
||||
end
|
||||
|
||||
def pagination_params(core_params)
|
||||
params.permit(:limit).merge(core_params)
|
||||
params.slice(:limit).permit(:limit).merge(core_params)
|
||||
end
|
||||
|
||||
def unlimited?
|
||||
|
||||
@@ -76,6 +76,6 @@ class Api::V1::MutesController < Api::BaseController
|
||||
end
|
||||
|
||||
def pagination_params(core_params)
|
||||
params.permit(:limit).merge(core_params)
|
||||
params.slice(:limit).permit(:limit).merge(core_params)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -91,6 +91,6 @@ class Api::V1::NotificationsController < Api::BaseController
|
||||
end
|
||||
|
||||
def pagination_params(core_params)
|
||||
params.permit(:limit, exclude_types: []).merge(core_params)
|
||||
params.slice(:limit, :exclude_types).permit(:limit, exclude_types: []).merge(core_params)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -77,6 +77,6 @@ class Api::V1::Statuses::FavouritedByAccountsController < Api::BaseController
|
||||
end
|
||||
|
||||
def pagination_params(core_params)
|
||||
params.permit(:limit).merge(core_params)
|
||||
params.slice(:limit).permit(:limit).merge(core_params)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -74,6 +74,6 @@ class Api::V1::Statuses::RebloggedByAccountsController < Api::BaseController
|
||||
end
|
||||
|
||||
def pagination_params(core_params)
|
||||
params.permit(:limit).merge(core_params)
|
||||
params.slice(:limit).permit(:limit).merge(core_params)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -76,7 +76,7 @@ class Api::V1::StatusesController < Api::BaseController
|
||||
end
|
||||
|
||||
def pagination_params(core_params)
|
||||
params.permit(:limit).merge(core_params)
|
||||
params.slice(:limit).permit(:limit).merge(core_params)
|
||||
end
|
||||
|
||||
def authorize_if_got_token
|
||||
|
||||
@@ -43,7 +43,7 @@ class Api::V1::Timelines::HomeController < Api::BaseController
|
||||
end
|
||||
|
||||
def pagination_params(core_params)
|
||||
params.permit(:local, :limit).merge(core_params)
|
||||
params.slice(:local, :limit).permit(:local, :limit).merge(core_params)
|
||||
end
|
||||
|
||||
def next_path
|
||||
|
||||
@@ -45,7 +45,7 @@ class Api::V1::Timelines::ListController < Api::BaseController
|
||||
end
|
||||
|
||||
def pagination_params(core_params)
|
||||
params.permit(:limit).merge(core_params)
|
||||
params.slice(:limit).permit(:limit).merge(core_params)
|
||||
end
|
||||
|
||||
def next_path
|
||||
|
||||
@@ -45,7 +45,7 @@ class Api::V1::Timelines::PublicController < Api::BaseController
|
||||
end
|
||||
|
||||
def pagination_params(core_params)
|
||||
params.permit(:local, :limit, :only_media).merge(core_params)
|
||||
params.slice(:local, :limit, :only_media).permit(:local, :limit, :only_media).merge(core_params)
|
||||
end
|
||||
|
||||
def next_path
|
||||
|
||||
@@ -54,7 +54,7 @@ class Api::V1::Timelines::TagController < Api::BaseController
|
||||
end
|
||||
|
||||
def pagination_params(core_params)
|
||||
params.permit(:local, :limit, :only_media).merge(core_params)
|
||||
params.slice(:local, :limit, :only_media).permit(:local, :limit, :only_media).merge(core_params)
|
||||
end
|
||||
|
||||
def next_path
|
||||
|
||||
@@ -67,6 +67,8 @@ export default class StatusActionBar extends ImmutablePureComponent {
|
||||
navigator.share({
|
||||
text: this.props.status.get('search_index'),
|
||||
url: this.props.status.get('url'),
|
||||
}).catch((e) => {
|
||||
if (e.name !== 'AbortError') console.error(e);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -74,6 +74,14 @@ export default class ComposeForm extends ImmutablePureComponent {
|
||||
this.props.onChange(this.autosuggestTextarea.textarea.value);
|
||||
}
|
||||
|
||||
// Submit disabled:
|
||||
const { is_submitting, is_uploading, anyMedia } = this.props;
|
||||
const fulltext = [this.props.spoiler_text, countableText(this.props.text)].join('');
|
||||
|
||||
if (is_submitting || is_uploading || length(fulltext) > 500 || (fulltext.length !== 0 && fulltext.trim().length === 0 && !anyMedia)) {
|
||||
return;
|
||||
}
|
||||
|
||||
this.props.onSubmit();
|
||||
}
|
||||
|
||||
|
||||
@@ -40,6 +40,7 @@
|
||||
"bundle_modal_error.retry": "إعادة المحاولة",
|
||||
"column.blocks": "الحسابات المحجوبة",
|
||||
"column.community": "الخيط العام المحلي",
|
||||
"column.domain_blocks": "Hidden domains",
|
||||
"column.favourites": "المفضلة",
|
||||
"column.follow_requests": "طلبات المتابعة",
|
||||
"column.home": "الرئيسية",
|
||||
@@ -153,6 +154,7 @@
|
||||
"mute_modal.hide_notifications": "هل تود إخفاء الإخطارات القادمة من هذا المستخدم ؟",
|
||||
"navigation_bar.blocks": "الحسابات المحجوبة",
|
||||
"navigation_bar.community_timeline": "الخيط العام المحلي",
|
||||
"navigation_bar.domain_blocks": "Hidden domains",
|
||||
"navigation_bar.edit_profile": "تعديل الملف الشخصي",
|
||||
"navigation_bar.favourites": "المفضلة",
|
||||
"navigation_bar.follow_requests": "طلبات المتابعة",
|
||||
|
||||
@@ -40,6 +40,7 @@
|
||||
"bundle_modal_error.retry": "Try again",
|
||||
"column.blocks": "Blocked users",
|
||||
"column.community": "Local timeline",
|
||||
"column.domain_blocks": "Hidden domains",
|
||||
"column.favourites": "Favourites",
|
||||
"column.follow_requests": "Follow requests",
|
||||
"column.home": "Начало",
|
||||
@@ -153,6 +154,7 @@
|
||||
"mute_modal.hide_notifications": "Hide notifications from this user?",
|
||||
"navigation_bar.blocks": "Blocked users",
|
||||
"navigation_bar.community_timeline": "Local timeline",
|
||||
"navigation_bar.domain_blocks": "Hidden domains",
|
||||
"navigation_bar.edit_profile": "Редактирай профил",
|
||||
"navigation_bar.favourites": "Favourites",
|
||||
"navigation_bar.follow_requests": "Follow requests",
|
||||
|
||||
@@ -40,6 +40,7 @@
|
||||
"bundle_modal_error.retry": "Torna-ho a provar",
|
||||
"column.blocks": "Usuaris blocats",
|
||||
"column.community": "Línia de temps local",
|
||||
"column.domain_blocks": "Hidden domains",
|
||||
"column.favourites": "Favorits",
|
||||
"column.follow_requests": "Peticions per seguir-te",
|
||||
"column.home": "Inici",
|
||||
@@ -153,6 +154,7 @@
|
||||
"mute_modal.hide_notifications": "Amagar notificacions d'aquest usuari?",
|
||||
"navigation_bar.blocks": "Usuaris bloquejats",
|
||||
"navigation_bar.community_timeline": "Línia de temps Local",
|
||||
"navigation_bar.domain_blocks": "Hidden domains",
|
||||
"navigation_bar.edit_profile": "Editar perfil",
|
||||
"navigation_bar.favourites": "Favorits",
|
||||
"navigation_bar.follow_requests": "Sol·licituds de seguiment",
|
||||
|
||||
@@ -40,6 +40,7 @@
|
||||
"bundle_modal_error.retry": "Erneut versuchen",
|
||||
"column.blocks": "Blockierte Profile",
|
||||
"column.community": "Lokale Zeitleiste",
|
||||
"column.domain_blocks": "Hidden domains",
|
||||
"column.favourites": "Favoriten",
|
||||
"column.follow_requests": "Folgeanfragen",
|
||||
"column.home": "Startseite",
|
||||
@@ -153,6 +154,7 @@
|
||||
"mute_modal.hide_notifications": "Benachrichtigungen von diesem Account verbergen?",
|
||||
"navigation_bar.blocks": "Blockierte Profile",
|
||||
"navigation_bar.community_timeline": "Lokale Zeitleiste",
|
||||
"navigation_bar.domain_blocks": "Hidden domains",
|
||||
"navigation_bar.edit_profile": "Profil bearbeiten",
|
||||
"navigation_bar.favourites": "Favoriten",
|
||||
"navigation_bar.follow_requests": "Folgeanfragen",
|
||||
|
||||
@@ -92,6 +92,15 @@
|
||||
],
|
||||
"path": "app/javascript/mastodon/components/column_header.json"
|
||||
},
|
||||
{
|
||||
"descriptors": [
|
||||
{
|
||||
"defaultMessage": "Unhide {domain}",
|
||||
"id": "account.unblock_domain"
|
||||
}
|
||||
],
|
||||
"path": "app/javascript/mastodon/components/domain.json"
|
||||
},
|
||||
{
|
||||
"descriptors": [
|
||||
{
|
||||
@@ -298,6 +307,19 @@
|
||||
],
|
||||
"path": "app/javascript/mastodon/containers/account_container.json"
|
||||
},
|
||||
{
|
||||
"descriptors": [
|
||||
{
|
||||
"defaultMessage": "Hide entire domain",
|
||||
"id": "confirmations.domain_block.confirm"
|
||||
},
|
||||
{
|
||||
"defaultMessage": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable.",
|
||||
"id": "confirmations.domain_block.message"
|
||||
}
|
||||
],
|
||||
"path": "app/javascript/mastodon/containers/domain_container.json"
|
||||
},
|
||||
{
|
||||
"descriptors": [
|
||||
{
|
||||
@@ -849,6 +871,19 @@
|
||||
],
|
||||
"path": "app/javascript/mastodon/features/compose/index.json"
|
||||
},
|
||||
{
|
||||
"descriptors": [
|
||||
{
|
||||
"defaultMessage": "Hidden domains",
|
||||
"id": "column.domain_blocks"
|
||||
},
|
||||
{
|
||||
"defaultMessage": "Unhide {domain}",
|
||||
"id": "account.unblock_domain"
|
||||
}
|
||||
],
|
||||
"path": "app/javascript/mastodon/features/domain_blocks/index.json"
|
||||
},
|
||||
{
|
||||
"descriptors": [
|
||||
{
|
||||
@@ -930,6 +965,10 @@
|
||||
"defaultMessage": "Blocked users",
|
||||
"id": "navigation_bar.blocks"
|
||||
},
|
||||
{
|
||||
"defaultMessage": "Hidden domains",
|
||||
"id": "navigation_bar.domain_blocks"
|
||||
},
|
||||
{
|
||||
"defaultMessage": "Muted users",
|
||||
"id": "navigation_bar.mutes"
|
||||
|
||||
@@ -41,6 +41,7 @@
|
||||
"column.blocks": "Blocked users",
|
||||
"column.community": "Local timeline",
|
||||
"column.direct": "Direct messages",
|
||||
"column.domain_blocks": "Hidden domains",
|
||||
"column.favourites": "Favourites",
|
||||
"column.follow_requests": "Follow requests",
|
||||
"column.home": "Home",
|
||||
@@ -159,6 +160,7 @@
|
||||
"navigation_bar.blocks": "Blocked users",
|
||||
"navigation_bar.community_timeline": "Local timeline",
|
||||
"navigation_bar.direct": "Direct messages",
|
||||
"navigation_bar.domain_blocks": "Hidden domains",
|
||||
"navigation_bar.edit_profile": "Edit profile",
|
||||
"navigation_bar.favourites": "Favourites",
|
||||
"navigation_bar.follow_requests": "Follow requests",
|
||||
|
||||
@@ -40,6 +40,7 @@
|
||||
"bundle_modal_error.retry": "Bonvolu reprovi",
|
||||
"column.blocks": "Blokitaj uzantoj",
|
||||
"column.community": "Loka tempolinio",
|
||||
"column.domain_blocks": "Hidden domains",
|
||||
"column.favourites": "Stelumoj",
|
||||
"column.follow_requests": "Petoj de sekvado",
|
||||
"column.home": "Hejmo",
|
||||
@@ -153,6 +154,7 @@
|
||||
"mute_modal.hide_notifications": "Ĉu kaŝi sciigojn el ĉi tiu uzanto?",
|
||||
"navigation_bar.blocks": "Blokitaj uzantoj",
|
||||
"navigation_bar.community_timeline": "Loka tempolinio",
|
||||
"navigation_bar.domain_blocks": "Hidden domains",
|
||||
"navigation_bar.edit_profile": "Redakti profilon",
|
||||
"navigation_bar.favourites": "Stelumoj",
|
||||
"navigation_bar.follow_requests": "Petoj de sekvado",
|
||||
|
||||
@@ -40,6 +40,7 @@
|
||||
"bundle_modal_error.retry": "Inténtalo de nuevo",
|
||||
"column.blocks": "Usuarios bloqueados",
|
||||
"column.community": "Línea de tiempo local",
|
||||
"column.domain_blocks": "Hidden domains",
|
||||
"column.favourites": "Favoritos",
|
||||
"column.follow_requests": "Solicitudes de seguimiento",
|
||||
"column.home": "Inicio",
|
||||
@@ -153,6 +154,7 @@
|
||||
"mute_modal.hide_notifications": "Ocultar notificaciones de este usuario?",
|
||||
"navigation_bar.blocks": "Usuarios bloqueados",
|
||||
"navigation_bar.community_timeline": "Historia local",
|
||||
"navigation_bar.domain_blocks": "Hidden domains",
|
||||
"navigation_bar.edit_profile": "Editar perfil",
|
||||
"navigation_bar.favourites": "Favoritos",
|
||||
"navigation_bar.follow_requests": "Solicitudes para seguirte",
|
||||
|
||||
@@ -40,6 +40,7 @@
|
||||
"bundle_modal_error.retry": "تلاش دوباره",
|
||||
"column.blocks": "کاربران مسدودشده",
|
||||
"column.community": "نوشتههای محلی",
|
||||
"column.domain_blocks": "Hidden domains",
|
||||
"column.favourites": "پسندیدهها",
|
||||
"column.follow_requests": "درخواستهای پیگیری",
|
||||
"column.home": "خانه",
|
||||
@@ -153,6 +154,7 @@
|
||||
"mute_modal.hide_notifications": "اعلانهای این کاربر پنهان شود؟",
|
||||
"navigation_bar.blocks": "کاربران مسدودشده",
|
||||
"navigation_bar.community_timeline": "نوشتههای محلی",
|
||||
"navigation_bar.domain_blocks": "Hidden domains",
|
||||
"navigation_bar.edit_profile": "ویرایش نمایه",
|
||||
"navigation_bar.favourites": "پسندیدهها",
|
||||
"navigation_bar.follow_requests": "درخواستهای پیگیری",
|
||||
|
||||
@@ -40,6 +40,7 @@
|
||||
"bundle_modal_error.retry": "Yritä uudestaan",
|
||||
"column.blocks": "Estetyt käyttäjät",
|
||||
"column.community": "Paikallinen aikajana",
|
||||
"column.domain_blocks": "Hidden domains",
|
||||
"column.favourites": "Suosikit",
|
||||
"column.follow_requests": "Seurauspyynnöt",
|
||||
"column.home": "Koti",
|
||||
@@ -153,6 +154,7 @@
|
||||
"mute_modal.hide_notifications": "Piilota ilmoitukset tältä käyttäjältä?",
|
||||
"navigation_bar.blocks": "Estetyt käyttäjät",
|
||||
"navigation_bar.community_timeline": "Paikallinen aikajana",
|
||||
"navigation_bar.domain_blocks": "Hidden domains",
|
||||
"navigation_bar.edit_profile": "Muokkaa profiilia",
|
||||
"navigation_bar.favourites": "Suosikit",
|
||||
"navigation_bar.follow_requests": "Seurauspyynnöt",
|
||||
|
||||
@@ -40,6 +40,7 @@
|
||||
"bundle_modal_error.retry": "Réessayer",
|
||||
"column.blocks": "Comptes bloqués",
|
||||
"column.community": "Fil public local",
|
||||
"column.domain_blocks": "Hidden domains",
|
||||
"column.favourites": "Favoris",
|
||||
"column.follow_requests": "Demandes de suivi",
|
||||
"column.home": "Accueil",
|
||||
@@ -153,6 +154,7 @@
|
||||
"mute_modal.hide_notifications": "Masquer les notifications de cet utilisateur ?",
|
||||
"navigation_bar.blocks": "Comptes bloqués",
|
||||
"navigation_bar.community_timeline": "Fil public local",
|
||||
"navigation_bar.domain_blocks": "Hidden domains",
|
||||
"navigation_bar.edit_profile": "Modifier le profil",
|
||||
"navigation_bar.favourites": "Favoris",
|
||||
"navigation_bar.follow_requests": "Demandes de suivi",
|
||||
|
||||
@@ -40,6 +40,7 @@
|
||||
"bundle_modal_error.retry": "Inténteo de novo",
|
||||
"column.blocks": "Usuarias bloqueadas",
|
||||
"column.community": "Liña temporal local",
|
||||
"column.domain_blocks": "Hidden domains",
|
||||
"column.favourites": "Favoritas",
|
||||
"column.follow_requests": "Peticións de seguimento",
|
||||
"column.home": "Inicio",
|
||||
@@ -153,6 +154,7 @@
|
||||
"mute_modal.hide_notifications": "Esconder notificacións deste usuario?",
|
||||
"navigation_bar.blocks": "Usuarias bloqueadas",
|
||||
"navigation_bar.community_timeline": "Liña temporal local",
|
||||
"navigation_bar.domain_blocks": "Hidden domains",
|
||||
"navigation_bar.edit_profile": "Editar perfil",
|
||||
"navigation_bar.favourites": "Favoritas",
|
||||
"navigation_bar.follow_requests": "Peticións de seguimento",
|
||||
|
||||
@@ -40,6 +40,7 @@
|
||||
"bundle_modal_error.retry": "לנסות שוב",
|
||||
"column.blocks": "חסימות",
|
||||
"column.community": "ציר זמן מקומי",
|
||||
"column.domain_blocks": "Hidden domains",
|
||||
"column.favourites": "חיבובים",
|
||||
"column.follow_requests": "בקשות מעקב",
|
||||
"column.home": "בבית",
|
||||
@@ -153,6 +154,7 @@
|
||||
"mute_modal.hide_notifications": "להסתיר הודעות מחשבון זה?",
|
||||
"navigation_bar.blocks": "חסימות",
|
||||
"navigation_bar.community_timeline": "ציר זמן מקומי",
|
||||
"navigation_bar.domain_blocks": "Hidden domains",
|
||||
"navigation_bar.edit_profile": "עריכת פרופיל",
|
||||
"navigation_bar.favourites": "חיבובים",
|
||||
"navigation_bar.follow_requests": "בקשות מעקב",
|
||||
|
||||
@@ -40,6 +40,7 @@
|
||||
"bundle_modal_error.retry": "Try again",
|
||||
"column.blocks": "Blokirani korisnici",
|
||||
"column.community": "Lokalni timeline",
|
||||
"column.domain_blocks": "Hidden domains",
|
||||
"column.favourites": "Favoriti",
|
||||
"column.follow_requests": "Zahtjevi za slijeđenje",
|
||||
"column.home": "Dom",
|
||||
@@ -153,6 +154,7 @@
|
||||
"mute_modal.hide_notifications": "Hide notifications from this user?",
|
||||
"navigation_bar.blocks": "Blokirani korisnici",
|
||||
"navigation_bar.community_timeline": "Lokalni timeline",
|
||||
"navigation_bar.domain_blocks": "Hidden domains",
|
||||
"navigation_bar.edit_profile": "Uredi profil",
|
||||
"navigation_bar.favourites": "Favoriti",
|
||||
"navigation_bar.follow_requests": "Zahtjevi za slijeđenje",
|
||||
|
||||
@@ -40,6 +40,7 @@
|
||||
"bundle_modal_error.retry": "Próbálja újra",
|
||||
"column.blocks": "Letiltott felhasználók",
|
||||
"column.community": "Helyi idővonal",
|
||||
"column.domain_blocks": "Hidden domains",
|
||||
"column.favourites": "Kedvencek",
|
||||
"column.follow_requests": "Követési kérések",
|
||||
"column.home": "Kezdőlap",
|
||||
@@ -153,6 +154,7 @@
|
||||
"mute_modal.hide_notifications": "Értesítések elrejtése ezen felhasználótól?",
|
||||
"navigation_bar.blocks": "Tiltott felhasználók",
|
||||
"navigation_bar.community_timeline": "Helyi idővonal",
|
||||
"navigation_bar.domain_blocks": "Hidden domains",
|
||||
"navigation_bar.edit_profile": "Profil szerkesztése",
|
||||
"navigation_bar.favourites": "Kedvencek",
|
||||
"navigation_bar.follow_requests": "Követési kérések",
|
||||
|
||||
@@ -40,6 +40,7 @@
|
||||
"bundle_modal_error.retry": "Կրկին փորձել",
|
||||
"column.blocks": "Արգելափակված օգտատերեր",
|
||||
"column.community": "Տեղական հոսք",
|
||||
"column.domain_blocks": "Hidden domains",
|
||||
"column.favourites": "Հավանածներ",
|
||||
"column.follow_requests": "Հետեւելու հայցեր",
|
||||
"column.home": "Հիմնական",
|
||||
@@ -153,6 +154,7 @@
|
||||
"mute_modal.hide_notifications": "Թաքցնե՞լ ցանուցումներն այս օգտատիրոջից։",
|
||||
"navigation_bar.blocks": "Արգելափակված օգտատերեր",
|
||||
"navigation_bar.community_timeline": "Տեղական հոսք",
|
||||
"navigation_bar.domain_blocks": "Hidden domains",
|
||||
"navigation_bar.edit_profile": "Խմբագրել անձնական էջը",
|
||||
"navigation_bar.favourites": "Հավանածներ",
|
||||
"navigation_bar.follow_requests": "Հետեւելու հայցեր",
|
||||
|
||||
@@ -40,6 +40,7 @@
|
||||
"bundle_modal_error.retry": "Coba lagi",
|
||||
"column.blocks": "Pengguna diblokir",
|
||||
"column.community": "Linimasa Lokal",
|
||||
"column.domain_blocks": "Hidden domains",
|
||||
"column.favourites": "Favorit",
|
||||
"column.follow_requests": "Permintaan mengikuti",
|
||||
"column.home": "Beranda",
|
||||
@@ -153,6 +154,7 @@
|
||||
"mute_modal.hide_notifications": "Hide notifications from this user?",
|
||||
"navigation_bar.blocks": "Pengguna diblokir",
|
||||
"navigation_bar.community_timeline": "Linimasa lokal",
|
||||
"navigation_bar.domain_blocks": "Hidden domains",
|
||||
"navigation_bar.edit_profile": "Ubah profil",
|
||||
"navigation_bar.favourites": "Favorit",
|
||||
"navigation_bar.follow_requests": "Permintaan mengikuti",
|
||||
|
||||
@@ -40,6 +40,7 @@
|
||||
"bundle_modal_error.retry": "Try again",
|
||||
"column.blocks": "Blokusita uzeri",
|
||||
"column.community": "Lokala tempolineo",
|
||||
"column.domain_blocks": "Hidden domains",
|
||||
"column.favourites": "Favorati",
|
||||
"column.follow_requests": "Demandi di sequado",
|
||||
"column.home": "Hemo",
|
||||
@@ -153,6 +154,7 @@
|
||||
"mute_modal.hide_notifications": "Hide notifications from this user?",
|
||||
"navigation_bar.blocks": "Blokusita uzeri",
|
||||
"navigation_bar.community_timeline": "Lokala tempolineo",
|
||||
"navigation_bar.domain_blocks": "Hidden domains",
|
||||
"navigation_bar.edit_profile": "Modifikar profilo",
|
||||
"navigation_bar.favourites": "Favorati",
|
||||
"navigation_bar.follow_requests": "Demandi di sequado",
|
||||
|
||||
@@ -40,6 +40,7 @@
|
||||
"bundle_modal_error.retry": "Try again",
|
||||
"column.blocks": "Utenti bloccati",
|
||||
"column.community": "Timeline locale",
|
||||
"column.domain_blocks": "Hidden domains",
|
||||
"column.favourites": "Apprezzati",
|
||||
"column.follow_requests": "Richieste di amicizia",
|
||||
"column.home": "Home",
|
||||
@@ -153,6 +154,7 @@
|
||||
"mute_modal.hide_notifications": "Hide notifications from this user?",
|
||||
"navigation_bar.blocks": "Utenti bloccati",
|
||||
"navigation_bar.community_timeline": "Timeline locale",
|
||||
"navigation_bar.domain_blocks": "Hidden domains",
|
||||
"navigation_bar.edit_profile": "Modifica profilo",
|
||||
"navigation_bar.favourites": "Apprezzati",
|
||||
"navigation_bar.follow_requests": "Richieste di amicizia",
|
||||
|
||||
@@ -41,6 +41,7 @@
|
||||
"column.blocks": "ブロックしたユーザー",
|
||||
"column.community": "ローカルタイムライン",
|
||||
"column.direct": "ダイレクトメッセージ",
|
||||
"column.domain_blocks": "非表示にしたドメイン",
|
||||
"column.favourites": "お気に入り",
|
||||
"column.follow_requests": "フォローリクエスト",
|
||||
"column.home": "ホーム",
|
||||
@@ -159,6 +160,7 @@
|
||||
"navigation_bar.blocks": "ブロックしたユーザー",
|
||||
"navigation_bar.community_timeline": "ローカルタイムライン",
|
||||
"navigation_bar.direct": "ダイレクトメッセージ",
|
||||
"navigation_bar.domain_blocks": "非表示にしたドメイン",
|
||||
"navigation_bar.edit_profile": "プロフィールを編集",
|
||||
"navigation_bar.favourites": "お気に入り",
|
||||
"navigation_bar.follow_requests": "フォローリクエスト",
|
||||
|
||||
@@ -40,6 +40,7 @@
|
||||
"bundle_modal_error.retry": "다시 시도",
|
||||
"column.blocks": "차단 중인 사용자",
|
||||
"column.community": "로컬 타임라인",
|
||||
"column.domain_blocks": "Hidden domains",
|
||||
"column.favourites": "즐겨찾기",
|
||||
"column.follow_requests": "팔로우 요청",
|
||||
"column.home": "홈",
|
||||
@@ -153,6 +154,7 @@
|
||||
"mute_modal.hide_notifications": "이 사용자로부터의 알림을 뮤트하시겠습니까?",
|
||||
"navigation_bar.blocks": "차단한 사용자",
|
||||
"navigation_bar.community_timeline": "로컬 타임라인",
|
||||
"navigation_bar.domain_blocks": "Hidden domains",
|
||||
"navigation_bar.edit_profile": "프로필 편집",
|
||||
"navigation_bar.favourites": "즐겨찾기",
|
||||
"navigation_bar.follow_requests": "팔로우 요청",
|
||||
|
||||
@@ -40,6 +40,7 @@
|
||||
"bundle_modal_error.retry": "Opnieuw proberen",
|
||||
"column.blocks": "Geblokkeerde gebruikers",
|
||||
"column.community": "Lokale tijdlijn",
|
||||
"column.domain_blocks": "Hidden domains",
|
||||
"column.favourites": "Favorieten",
|
||||
"column.follow_requests": "Volgverzoeken",
|
||||
"column.home": "Start",
|
||||
@@ -153,6 +154,7 @@
|
||||
"mute_modal.hide_notifications": "Verberg meldingen van deze persoon?",
|
||||
"navigation_bar.blocks": "Geblokkeerde gebruikers",
|
||||
"navigation_bar.community_timeline": "Lokale tijdlijn",
|
||||
"navigation_bar.domain_blocks": "Hidden domains",
|
||||
"navigation_bar.edit_profile": "Profiel bewerken",
|
||||
"navigation_bar.favourites": "Favorieten",
|
||||
"navigation_bar.follow_requests": "Volgverzoeken",
|
||||
|
||||
@@ -40,6 +40,7 @@
|
||||
"bundle_modal_error.retry": "Prøv igjen",
|
||||
"column.blocks": "Blokkerte brukere",
|
||||
"column.community": "Lokal tidslinje",
|
||||
"column.domain_blocks": "Hidden domains",
|
||||
"column.favourites": "Likt",
|
||||
"column.follow_requests": "Følgeforespørsler",
|
||||
"column.home": "Hjem",
|
||||
@@ -153,6 +154,7 @@
|
||||
"mute_modal.hide_notifications": "Skjul varslinger fra denne brukeren?",
|
||||
"navigation_bar.blocks": "Blokkerte brukere",
|
||||
"navigation_bar.community_timeline": "Lokal tidslinje",
|
||||
"navigation_bar.domain_blocks": "Hidden domains",
|
||||
"navigation_bar.edit_profile": "Rediger profil",
|
||||
"navigation_bar.favourites": "Favoritter",
|
||||
"navigation_bar.follow_requests": "Følgeforespørsler",
|
||||
|
||||
@@ -40,6 +40,7 @@
|
||||
"bundle_modal_error.retry": "Tornar ensajar",
|
||||
"column.blocks": "Personas blocadas",
|
||||
"column.community": "Flux public local",
|
||||
"column.domain_blocks": "Hidden domains",
|
||||
"column.favourites": "Favorits",
|
||||
"column.follow_requests": "Demandas d’abonament",
|
||||
"column.home": "Acuèlh",
|
||||
@@ -153,6 +154,7 @@
|
||||
"mute_modal.hide_notifications": "Rescondre las notificacions d’aquesta persona ?",
|
||||
"navigation_bar.blocks": "Personas blocadas",
|
||||
"navigation_bar.community_timeline": "Flux public local",
|
||||
"navigation_bar.domain_blocks": "Hidden domains",
|
||||
"navigation_bar.edit_profile": "Modificar lo perfil",
|
||||
"navigation_bar.favourites": "Favorits",
|
||||
"navigation_bar.follow_requests": "Demandas d’abonament",
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
"account.mute_notifications": "Wycisz powiadomienia o @{name}",
|
||||
"account.muted": "Wyciszony",
|
||||
"account.posts": "Wpisy",
|
||||
"account.posts_with_replies": "Wpisy z odpowiedziami",
|
||||
"account.posts_with_replies": "Wpisy i odpowiedzi",
|
||||
"account.report": "Zgłoś @{name}",
|
||||
"account.requested": "Oczekująca prośba, kliknij aby anulować",
|
||||
"account.share": "Udostępnij profil @{name}",
|
||||
@@ -41,6 +41,7 @@
|
||||
"column.blocks": "Zablokowani użytkownicy",
|
||||
"column.community": "Lokalna oś czasu",
|
||||
"column.direct": "Wiadomości bezpośrednie",
|
||||
"column.domain_blocks": "Ukryte domeny",
|
||||
"column.favourites": "Ulubione",
|
||||
"column.follow_requests": "Prośby o śledzenie",
|
||||
"column.home": "Strona główna",
|
||||
@@ -61,7 +62,7 @@
|
||||
"column_subheading.lists": "Listy",
|
||||
"column_subheading.navigation": "Nawigacja",
|
||||
"column_subheading.settings": "Ustawienia",
|
||||
"compose_form.direct_message_warning": "This toot will only be visible to all the mentioned users.",
|
||||
"compose_form.direct_message_warning": "Ten wpis będzie widoczny tylko dla wszystkich wspomnianych użytkowników.",
|
||||
"compose_form.hashtag_warning": "Ten wpis nie będzie widoczny pod podanymi hashtagami, ponieważ jest oznaczony jako niewidoczny. Tylko publiczne wpisy mogą zostać znalezione z użyciem hashtagów.",
|
||||
"compose_form.lock_disclaimer": "Twoje konto nie jest {locked}. Każdy, kto Cię śledzi, może wyświetlać Twoje wpisy przeznaczone tylko dla śledzących.",
|
||||
"compose_form.lock_disclaimer.lock": "zablokowane",
|
||||
@@ -159,6 +160,7 @@
|
||||
"navigation_bar.blocks": "Zablokowani użytkownicy",
|
||||
"navigation_bar.community_timeline": "Lokalna oś czasu",
|
||||
"navigation_bar.direct": "Wiadomości bezpośrednie",
|
||||
"navigation_bar.domain_blocks": "Ukryte domeny",
|
||||
"navigation_bar.edit_profile": "Edytuj profil",
|
||||
"navigation_bar.favourites": "Ulubione",
|
||||
"navigation_bar.follow_requests": "Prośby o śledzenie",
|
||||
|
||||
@@ -40,6 +40,7 @@
|
||||
"bundle_modal_error.retry": "Tente novamente",
|
||||
"column.blocks": "Usuários bloqueados",
|
||||
"column.community": "Local",
|
||||
"column.domain_blocks": "Hidden domains",
|
||||
"column.favourites": "Favoritos",
|
||||
"column.follow_requests": "Seguidores pendentes",
|
||||
"column.home": "Página inicial",
|
||||
@@ -153,6 +154,7 @@
|
||||
"mute_modal.hide_notifications": "Esconder notificações deste usuário?",
|
||||
"navigation_bar.blocks": "Usuários bloqueados",
|
||||
"navigation_bar.community_timeline": "Local",
|
||||
"navigation_bar.domain_blocks": "Hidden domains",
|
||||
"navigation_bar.edit_profile": "Editar perfil",
|
||||
"navigation_bar.favourites": "Favoritos",
|
||||
"navigation_bar.follow_requests": "Seguidores pendentes",
|
||||
|
||||
@@ -40,6 +40,7 @@
|
||||
"bundle_modal_error.retry": "Tente de novo",
|
||||
"column.blocks": "Utilizadores Bloqueados",
|
||||
"column.community": "Local",
|
||||
"column.domain_blocks": "Hidden domains",
|
||||
"column.favourites": "Favoritos",
|
||||
"column.follow_requests": "Seguidores Pendentes",
|
||||
"column.home": "Início",
|
||||
@@ -153,6 +154,7 @@
|
||||
"mute_modal.hide_notifications": "Esconder notificações deste utilizador?",
|
||||
"navigation_bar.blocks": "Utilizadores bloqueados",
|
||||
"navigation_bar.community_timeline": "Local",
|
||||
"navigation_bar.domain_blocks": "Hidden domains",
|
||||
"navigation_bar.edit_profile": "Editar perfil",
|
||||
"navigation_bar.favourites": "Favoritos",
|
||||
"navigation_bar.follow_requests": "Seguidores pendentes",
|
||||
|
||||
@@ -40,6 +40,7 @@
|
||||
"bundle_modal_error.retry": "Попробовать снова",
|
||||
"column.blocks": "Список блокировки",
|
||||
"column.community": "Локальная лента",
|
||||
"column.domain_blocks": "Hidden domains",
|
||||
"column.favourites": "Понравившееся",
|
||||
"column.follow_requests": "Запросы на подписку",
|
||||
"column.home": "Главная",
|
||||
@@ -153,6 +154,7 @@
|
||||
"mute_modal.hide_notifications": "Убрать уведомления от этого пользователя?",
|
||||
"navigation_bar.blocks": "Список блокировки",
|
||||
"navigation_bar.community_timeline": "Локальная лента",
|
||||
"navigation_bar.domain_blocks": "Hidden domains",
|
||||
"navigation_bar.edit_profile": "Изменить профиль",
|
||||
"navigation_bar.favourites": "Понравившееся",
|
||||
"navigation_bar.follow_requests": "Запросы на подписку",
|
||||
|
||||
@@ -40,6 +40,7 @@
|
||||
"bundle_modal_error.retry": "Skúsiť znova",
|
||||
"column.blocks": "Blokovaní užívatelia",
|
||||
"column.community": "Lokálna časová os",
|
||||
"column.domain_blocks": "Hidden domains",
|
||||
"column.favourites": "Obľúbené",
|
||||
"column.follow_requests": "Žiadosti o sledovaní",
|
||||
"column.home": "Domov",
|
||||
@@ -153,6 +154,7 @@
|
||||
"mute_modal.hide_notifications": "Skryť notifikácie od tohoto užívateľa?",
|
||||
"navigation_bar.blocks": "Blokovaní užívatelia",
|
||||
"navigation_bar.community_timeline": "Lokálna časová os",
|
||||
"navigation_bar.domain_blocks": "Hidden domains",
|
||||
"navigation_bar.edit_profile": "Upraviť profil",
|
||||
"navigation_bar.favourites": "Obľúbené",
|
||||
"navigation_bar.follow_requests": "Žiadosti o sledovanie",
|
||||
|
||||
@@ -40,6 +40,7 @@
|
||||
"bundle_modal_error.retry": "Pokušajte ponovo",
|
||||
"column.blocks": "Blokirani korisnici",
|
||||
"column.community": "Lokalna lajna",
|
||||
"column.domain_blocks": "Hidden domains",
|
||||
"column.favourites": "Omiljeni",
|
||||
"column.follow_requests": "Zahtevi za praćenje",
|
||||
"column.home": "Početna",
|
||||
@@ -153,6 +154,7 @@
|
||||
"mute_modal.hide_notifications": "Sakrij obaveštenja od ovog korisnika?",
|
||||
"navigation_bar.blocks": "Blokirani korisnici",
|
||||
"navigation_bar.community_timeline": "Lokalna lajna",
|
||||
"navigation_bar.domain_blocks": "Hidden domains",
|
||||
"navigation_bar.edit_profile": "Izmeni profil",
|
||||
"navigation_bar.favourites": "Omiljeni",
|
||||
"navigation_bar.follow_requests": "Zahtevi za praćenje",
|
||||
|
||||
@@ -40,6 +40,7 @@
|
||||
"bundle_modal_error.retry": "Покушајте поново",
|
||||
"column.blocks": "Блокирани корисници",
|
||||
"column.community": "Локална лајна",
|
||||
"column.domain_blocks": "Hidden domains",
|
||||
"column.favourites": "Омиљени",
|
||||
"column.follow_requests": "Захтеви за праћење",
|
||||
"column.home": "Почетна",
|
||||
@@ -153,6 +154,7 @@
|
||||
"mute_modal.hide_notifications": "Сакриј обавештења од овог корисника?",
|
||||
"navigation_bar.blocks": "Блокирани корисници",
|
||||
"navigation_bar.community_timeline": "Локална лајна",
|
||||
"navigation_bar.domain_blocks": "Hidden domains",
|
||||
"navigation_bar.edit_profile": "Измени профил",
|
||||
"navigation_bar.favourites": "Омиљени",
|
||||
"navigation_bar.follow_requests": "Захтеви за праћење",
|
||||
|
||||
@@ -40,6 +40,7 @@
|
||||
"bundle_modal_error.retry": "Försök igen",
|
||||
"column.blocks": "Blockerade användare",
|
||||
"column.community": "Lokal tidslinje",
|
||||
"column.domain_blocks": "Hidden domains",
|
||||
"column.favourites": "Favoriter",
|
||||
"column.follow_requests": "Följ förfrågningar",
|
||||
"column.home": "Hem",
|
||||
@@ -153,6 +154,7 @@
|
||||
"mute_modal.hide_notifications": "Dölj notifikationer från denna användare?",
|
||||
"navigation_bar.blocks": "Blockerade användare",
|
||||
"navigation_bar.community_timeline": "Lokal tidslinje",
|
||||
"navigation_bar.domain_blocks": "Hidden domains",
|
||||
"navigation_bar.edit_profile": "Redigera profil",
|
||||
"navigation_bar.favourites": "Favoriter",
|
||||
"navigation_bar.follow_requests": "Följförfrågningar",
|
||||
|
||||
@@ -40,6 +40,7 @@
|
||||
"bundle_modal_error.retry": "Try again",
|
||||
"column.blocks": "Blocked users",
|
||||
"column.community": "Local timeline",
|
||||
"column.domain_blocks": "Hidden domains",
|
||||
"column.favourites": "Favourites",
|
||||
"column.follow_requests": "Follow requests",
|
||||
"column.home": "Home",
|
||||
@@ -153,6 +154,7 @@
|
||||
"mute_modal.hide_notifications": "Hide notifications from this user?",
|
||||
"navigation_bar.blocks": "Blocked users",
|
||||
"navigation_bar.community_timeline": "Local timeline",
|
||||
"navigation_bar.domain_blocks": "Hidden domains",
|
||||
"navigation_bar.edit_profile": "Edit profile",
|
||||
"navigation_bar.favourites": "Favourites",
|
||||
"navigation_bar.follow_requests": "Follow requests",
|
||||
|
||||
@@ -40,6 +40,7 @@
|
||||
"bundle_modal_error.retry": "Try again",
|
||||
"column.blocks": "Engellenen kullanıcılar",
|
||||
"column.community": "Yerel zaman tüneli",
|
||||
"column.domain_blocks": "Hidden domains",
|
||||
"column.favourites": "Favoriler",
|
||||
"column.follow_requests": "Takip istekleri",
|
||||
"column.home": "Anasayfa",
|
||||
@@ -153,6 +154,7 @@
|
||||
"mute_modal.hide_notifications": "Hide notifications from this user?",
|
||||
"navigation_bar.blocks": "Engellenen kullanıcılar",
|
||||
"navigation_bar.community_timeline": "Yerel zaman tüneli",
|
||||
"navigation_bar.domain_blocks": "Hidden domains",
|
||||
"navigation_bar.edit_profile": "Profili düzenle",
|
||||
"navigation_bar.favourites": "Favoriler",
|
||||
"navigation_bar.follow_requests": "Takip istekleri",
|
||||
|
||||
@@ -40,6 +40,7 @@
|
||||
"bundle_modal_error.retry": "Try again",
|
||||
"column.blocks": "Заблоковані користувачі",
|
||||
"column.community": "Локальна стрічка",
|
||||
"column.domain_blocks": "Hidden domains",
|
||||
"column.favourites": "Вподобане",
|
||||
"column.follow_requests": "Запити на підписку",
|
||||
"column.home": "Головна",
|
||||
@@ -153,6 +154,7 @@
|
||||
"mute_modal.hide_notifications": "Hide notifications from this user?",
|
||||
"navigation_bar.blocks": "Заблоковані користувачі",
|
||||
"navigation_bar.community_timeline": "Локальна стрічка",
|
||||
"navigation_bar.domain_blocks": "Hidden domains",
|
||||
"navigation_bar.edit_profile": "Редагувати профіль",
|
||||
"navigation_bar.favourites": "Вподобане",
|
||||
"navigation_bar.follow_requests": "Запити на підписку",
|
||||
|
||||
@@ -40,6 +40,7 @@
|
||||
"bundle_modal_error.retry": "重试",
|
||||
"column.blocks": "屏蔽用户",
|
||||
"column.community": "本站时间轴",
|
||||
"column.domain_blocks": "Hidden domains",
|
||||
"column.favourites": "收藏过的嘟文",
|
||||
"column.follow_requests": "关注请求",
|
||||
"column.home": "主页",
|
||||
@@ -153,6 +154,7 @@
|
||||
"mute_modal.hide_notifications": "同时隐藏来自这个用户的通知",
|
||||
"navigation_bar.blocks": "被屏蔽的用户",
|
||||
"navigation_bar.community_timeline": "本站时间轴",
|
||||
"navigation_bar.domain_blocks": "Hidden domains",
|
||||
"navigation_bar.edit_profile": "修改个人资料",
|
||||
"navigation_bar.favourites": "收藏的内容",
|
||||
"navigation_bar.follow_requests": "关注请求",
|
||||
|
||||
@@ -40,6 +40,7 @@
|
||||
"bundle_modal_error.retry": "重試",
|
||||
"column.blocks": "封鎖用戶",
|
||||
"column.community": "本站時間軸",
|
||||
"column.domain_blocks": "Hidden domains",
|
||||
"column.favourites": "最愛的文章",
|
||||
"column.follow_requests": "關注請求",
|
||||
"column.home": "主頁",
|
||||
@@ -153,6 +154,7 @@
|
||||
"mute_modal.hide_notifications": "Hide notifications from this user?",
|
||||
"navigation_bar.blocks": "被你封鎖的用戶",
|
||||
"navigation_bar.community_timeline": "本站時間軸",
|
||||
"navigation_bar.domain_blocks": "Hidden domains",
|
||||
"navigation_bar.edit_profile": "修改個人資料",
|
||||
"navigation_bar.favourites": "最愛的內容",
|
||||
"navigation_bar.follow_requests": "關注請求",
|
||||
|
||||
@@ -40,6 +40,7 @@
|
||||
"bundle_modal_error.retry": "重試",
|
||||
"column.blocks": "封鎖的使用者",
|
||||
"column.community": "本地時間軸",
|
||||
"column.domain_blocks": "Hidden domains",
|
||||
"column.favourites": "最愛",
|
||||
"column.follow_requests": "關注請求",
|
||||
"column.home": "家",
|
||||
@@ -153,6 +154,7 @@
|
||||
"mute_modal.hide_notifications": "Hide notifications from this user?",
|
||||
"navigation_bar.blocks": "封鎖的使用者",
|
||||
"navigation_bar.community_timeline": "本地時間軸",
|
||||
"navigation_bar.domain_blocks": "Hidden domains",
|
||||
"navigation_bar.edit_profile": "編輯用者資訊",
|
||||
"navigation_bar.favourites": "最愛",
|
||||
"navigation_bar.follow_requests": "關注請求",
|
||||
|
||||
@@ -51,9 +51,14 @@ class Formatter
|
||||
strip_tags(text)
|
||||
end
|
||||
|
||||
def simplified_format(account)
|
||||
return reformat(account.note).html_safe unless account.local? # rubocop:disable Rails/OutputSafety
|
||||
linkify(account.note)
|
||||
def simplified_format(account, **options)
|
||||
html = if account.local?
|
||||
linkify(account.note)
|
||||
else
|
||||
reformat(account.note)
|
||||
end
|
||||
html = encode_custom_emojis(html, CustomEmoji.from_text(account.note, account.domain)) if options[:custom_emojify]
|
||||
html.html_safe # rubocop:disable Rails/OutputSafety
|
||||
end
|
||||
|
||||
def sanitize(html, config)
|
||||
|
||||
@@ -26,6 +26,9 @@ class OStatus::AtomSerializer
|
||||
append_element(author, 'link', nil, rel: :alternate, type: 'text/html', href: ::TagManager.instance.url_for(account))
|
||||
append_element(author, 'link', nil, rel: :avatar, type: account.avatar_content_type, 'media:width': 120, 'media:height': 120, href: full_asset_url(account.avatar.url(:original))) if account.avatar?
|
||||
append_element(author, 'link', nil, rel: :header, type: account.header_content_type, 'media:width': 700, 'media:height': 335, href: full_asset_url(account.header.url(:original))) if account.header?
|
||||
account.emojis.each do |emoji|
|
||||
append_element(author, 'link', nil, rel: :emoji, href: full_asset_url(emoji.image.url), name: emoji.shortcode)
|
||||
end
|
||||
append_element(author, 'poco:preferredUsername', account.username)
|
||||
append_element(author, 'poco:displayName', account.display_name) if account.display_name?
|
||||
append_element(author, 'poco:note', account.local? ? account.note : strip_tags(account.note)) if account.note?
|
||||
|
||||
@@ -352,6 +352,10 @@ class Account < ApplicationRecord
|
||||
end
|
||||
end
|
||||
|
||||
def emojis
|
||||
CustomEmoji.from_text(note, domain)
|
||||
end
|
||||
|
||||
before_create :generate_keys
|
||||
before_validation :normalize_domain
|
||||
before_validation :prepare_contents, if: :local?
|
||||
|
||||
@@ -41,6 +41,10 @@ class RemoteProfile
|
||||
@header ||= link_href_from_xml(author, 'header')
|
||||
end
|
||||
|
||||
def emojis
|
||||
@emojis ||= author.xpath('./xmlns:link[@rel="emoji"]', xmlns: OStatus::TagManager::XMLNS)
|
||||
end
|
||||
|
||||
def locked?
|
||||
scope == 'private'
|
||||
end
|
||||
|
||||
@@ -10,6 +10,8 @@ class ActivityPub::ActorSerializer < ActiveModel::Serializer
|
||||
|
||||
has_one :public_key, serializer: ActivityPub::PublicKeySerializer
|
||||
|
||||
has_many :virtual_tags, key: :tag
|
||||
|
||||
attribute :moved_to, if: :moved?
|
||||
|
||||
class EndpointsSerializer < ActiveModel::Serializer
|
||||
@@ -101,7 +103,14 @@ class ActivityPub::ActorSerializer < ActiveModel::Serializer
|
||||
object.locked
|
||||
end
|
||||
|
||||
def virtual_tags
|
||||
object.emojis
|
||||
end
|
||||
|
||||
def moved_to
|
||||
ActivityPub::TagManager.instance.uri_for(object.moved_to_account)
|
||||
end
|
||||
|
||||
class CustomEmojiSerializer < ActivityPub::EmojiSerializer
|
||||
end
|
||||
end
|
||||
|
||||
@@ -14,7 +14,7 @@ class REST::AccountSerializer < ActiveModel::Serializer
|
||||
end
|
||||
|
||||
def note
|
||||
Formatter.instance.simplified_format(object)
|
||||
Formatter.instance.simplified_format(object, custom_emojify: true)
|
||||
end
|
||||
|
||||
def url
|
||||
|
||||
@@ -3,6 +3,8 @@
|
||||
class ActivityPub::FetchRemoteAccountService < BaseService
|
||||
include JsonLdHelper
|
||||
|
||||
SUPPORTED_TYPES = %w(Application Group Organization Person Service).freeze
|
||||
|
||||
# Should be called when uri has already been checked for locality
|
||||
# Does a WebFinger roundtrip on each call
|
||||
def call(uri, id: true, prefetched_body: nil)
|
||||
@@ -54,6 +56,6 @@ class ActivityPub::FetchRemoteAccountService < BaseService
|
||||
end
|
||||
|
||||
def expected_type?
|
||||
@json['type'] == 'Person'
|
||||
SUPPORTED_TYPES.include?(@json['type'])
|
||||
end
|
||||
end
|
||||
|
||||
@@ -43,7 +43,7 @@ class ActivityPub::FetchRemoteKeyService < BaseService
|
||||
end
|
||||
|
||||
def person?
|
||||
@json['type'] == 'Person'
|
||||
ActivityPub::FetchRemoteAccountService::SUPPORTED_TYPES.include?(@json['type'])
|
||||
end
|
||||
|
||||
def public_key?
|
||||
@@ -55,6 +55,6 @@ class ActivityPub::FetchRemoteKeyService < BaseService
|
||||
end
|
||||
|
||||
def confirmed_owner?
|
||||
@owner['type'] == 'Person' && value_or_id(@owner['publicKey']) == @json['id']
|
||||
ActivityPub::FetchRemoteAccountService::SUPPORTED_TYPES.include?(@owner['type']) && value_or_id(@owner['publicKey']) == @json['id']
|
||||
end
|
||||
end
|
||||
|
||||
@@ -22,6 +22,7 @@ class ActivityPub::ProcessAccountService < BaseService
|
||||
|
||||
create_account if @account.nil?
|
||||
update_account
|
||||
process_tags(@account)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -187,4 +188,31 @@ class ActivityPub::ProcessAccountService < BaseService
|
||||
def lock_options
|
||||
{ redis: Redis.current, key: "process_account:#{@uri}" }
|
||||
end
|
||||
|
||||
def process_tags(account)
|
||||
return if @json['tag'].blank?
|
||||
as_array(@json['tag']).each do |tag|
|
||||
case tag['type']
|
||||
when 'Emoji'
|
||||
process_emoji tag, account
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def process_emoji(tag, _account)
|
||||
return if skip_download?
|
||||
return if tag['name'].blank? || tag['icon'].blank? || tag['icon']['url'].blank?
|
||||
|
||||
shortcode = tag['name'].delete(':')
|
||||
image_url = tag['icon']['url']
|
||||
uri = tag['id']
|
||||
updated = tag['updated']
|
||||
emoji = CustomEmoji.find_by(shortcode: shortcode, domain: @account.domain)
|
||||
|
||||
return unless emoji.nil? || emoji.updated_at >= updated
|
||||
|
||||
emoji ||= CustomEmoji.new(domain: @account.domain, shortcode: shortcode, uri: uri)
|
||||
emoji.image_remote_url = image_url
|
||||
emoji.save
|
||||
end
|
||||
end
|
||||
|
||||
@@ -42,7 +42,7 @@ class FetchAtomService < BaseService
|
||||
elsif ['application/activity+json', 'application/ld+json; profile="https://www.w3.org/ns/activitystreams"'].include?(response.mime_type)
|
||||
body = response.body_with_limit
|
||||
json = body_to_json(body)
|
||||
if supported_context?(json) && json['type'] == 'Person' && json['inbox'].present?
|
||||
if supported_context?(json) && ActivityPub::FetchRemoteAccountService::SUPPORTED_TYPES.include?(json['type']) && json['inbox'].present?
|
||||
[json['id'], { prefetched_body: body, id: true }, :activitypub]
|
||||
elsif supported_context?(json) && expected_type?(json)
|
||||
[json['id'], { prefetched_body: body, id: true }, :activitypub]
|
||||
|
||||
@@ -189,7 +189,7 @@ class ResolveAccountService < BaseService
|
||||
return @actor_json if defined?(@actor_json)
|
||||
|
||||
json = fetch_resource(actor_url, false)
|
||||
@actor_json = supported_context?(json) && json['type'] == 'Person' ? json : nil
|
||||
@actor_json = supported_context?(json) && ActivityPub::FetchRemoteAccountService::SUPPORTED_TYPES.include?(json['type']) ? json : nil
|
||||
end
|
||||
|
||||
def atom
|
||||
|
||||
@@ -17,7 +17,7 @@ class ResolveURLService < BaseService
|
||||
|
||||
def process_url
|
||||
case type
|
||||
when 'Person'
|
||||
when 'Application', 'Group', 'Organization', 'Person', 'Service'
|
||||
FetchRemoteAccountService.new.call(atom_url, body, protocol)
|
||||
when 'Note', 'Article', 'Image', 'Video'
|
||||
FetchRemoteStatusService.new.call(atom_url, body, protocol)
|
||||
|
||||
@@ -40,6 +40,27 @@ class UpdateRemoteProfileService < BaseService
|
||||
account.header_remote_url = ''
|
||||
account.header.destroy
|
||||
end
|
||||
|
||||
save_emojis(account) if remote_profile.emojis.present?
|
||||
end
|
||||
end
|
||||
|
||||
def save_emojis(parent)
|
||||
do_not_download = DomainBlock.find_by(domain: parent.account.domain)&.reject_media?
|
||||
|
||||
return if do_not_download
|
||||
|
||||
remote_account.emojis.each do |link|
|
||||
next unless link['href'] && link['name']
|
||||
|
||||
shortcode = link['name'].delete(':')
|
||||
emoji = CustomEmoji.find_by(shortcode: shortcode, domain: parent.account.domain)
|
||||
|
||||
next unless emoji.nil?
|
||||
|
||||
emoji = CustomEmoji.new(shortcode: shortcode, domain: parent.account.domain)
|
||||
emoji.image_remote_url = link['href']
|
||||
emoji.save
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
- processed_bio = FrontmatterHandler.instance.process_bio Formatter.instance.simplified_format account
|
||||
- processed_bio = FrontmatterHandler.instance.process_bio Formatter.instance.simplified_format(account, custom_emojify: true)
|
||||
.card.h-card.p-author{ style: "background-image: url(#{account.header.url(:original)})" }
|
||||
.card__illustration
|
||||
= render 'accounts/follow_button', account: account
|
||||
|
||||
Reference in New Issue
Block a user