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:
David Yip
2018-04-01 20:24:50 -05:00
82 changed files with 753 additions and 37 deletions
@@ -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
+1 -1
View File
@@ -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?
+1 -1
View File
@@ -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();
}
+2
View File
@@ -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": "طلبات المتابعة",
+2
View File
@@ -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",
+2
View File
@@ -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",
+2
View File
@@ -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"
+2
View File
@@ -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",
+2
View File
@@ -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",
+2
View File
@@ -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",
+2
View File
@@ -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": "درخواست‌های پیگیری",
+2
View File
@@ -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",
+2
View File
@@ -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",
+2
View File
@@ -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",
+2
View File
@@ -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": "בקשות מעקב",
+2
View File
@@ -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",
+2
View File
@@ -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",
+2
View File
@@ -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": "Հետեւելու հայցեր",
+2
View File
@@ -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",
+2
View File
@@ -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",
+2
View File
@@ -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",
+2
View File
@@ -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": "フォローリクエスト",
+2
View File
@@ -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": "팔로우 요청",
+2
View File
@@ -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",
+2
View File
@@ -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",
+2
View File
@@ -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 dabonament",
"column.home": "Acuèlh",
@@ -153,6 +154,7 @@
"mute_modal.hide_notifications": "Rescondre las notificacions daquesta 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 dabonament",
+4 -2
View File
@@ -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",
+2
View File
@@ -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",
+2
View File
@@ -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": "Запросы на подписку",
+2
View File
@@ -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",
+2
View File
@@ -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": "Захтеви за праћење",
+2
View File
@@ -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",
+2
View File
@@ -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",
+2
View File
@@ -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",
+2
View File
@@ -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": "關注請求",
+8 -3
View File
@@ -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)
+3
View File
@@ -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?
+4
View File
@@ -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?
+4
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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]
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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 -1
View File
@@ -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