diff --git a/blockem/blockem.php b/blockem/blockem.php new file mode 100644 index 00000000..c1d97e8e --- /dev/null +++ b/blockem/blockem.php @@ -0,0 +1,230 @@ + + * Author: Roland Haeder + * Status: unsupported + */ + +use Friendica\App; +use Friendica\Core\Hook; +use Friendica\Core\Renderer; +use Friendica\DI; +use Friendica\Util\Strings; + +global $blockem_words; + +function blockem_install() +{ + Hook::register('prepare_body_content_filter', 'addon/blockem/blockem.php', 'blockem_prepare_body_content_filter'); + Hook::register('display_item' , 'addon/blockem/blockem.php', 'blockem_display_item'); + Hook::register('addon_settings' , 'addon/blockem/blockem.php', 'blockem_addon_settings'); + Hook::register('addon_settings_post' , 'addon/blockem/blockem.php', 'blockem_addon_settings_post'); + Hook::register('conversation_start' , 'addon/blockem/blockem.php', 'blockem_conversation_start'); + Hook::register('item_photo_menu' , 'addon/blockem/blockem.php', 'blockem_item_photo_menu'); + Hook::register('enotify_store' , 'addon/blockem/blockem.php', 'blockem_enotify_store'); +} + +function blockem_addon_settings(array &$data) +{ + if (!DI::userSession()->getLocalUserId()) { + return; + } + + $words = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'blockem', 'words', ''); + + $t = Renderer::getMarkupTemplate('settings.tpl', 'addon/blockem/'); + $html = Renderer::replaceMacros($t, [ + '$info' => DI::l10n()->t("Hides user's content by collapsing posts. Also replaces their avatar with generic image."), + '$words' => ['blockem-words', DI::l10n()->t('Comma separated profile URLS:'), $words], + ]); + + $data = [ + 'addon' => 'blockem', + 'title' => DI::l10n()->t('Blockem'), + 'html' => $html, + ]; +} + +function blockem_addon_settings_post(array &$b) +{ + if (!DI::userSession()->getLocalUserId()) { + return; + } + + if (!empty($_POST['blockem-submit'])) { + DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'blockem', 'words', trim($_POST['blockem-words'])); + } +} + +function blockem_enotify_store(array &$b) +{ + $words = DI::pConfig()->get($b['uid'], 'blockem', 'words'); + + if ($words) { + $arr = explode(',', $words); + } else { + return; + } + + $found = false; + + if (count($arr)) { + foreach ($arr as $word) { + if (!strlen(trim($word))) { + continue; + } + + if (Strings::compareLink($b['url'], $word)) { + $found = true; + break; + } + } + } + + if ($found) { + // empty out the fields + $b = []; + } +} + +function blockem_prepare_body_content_filter(array &$hook_data) +{ + if (!DI::userSession()->getLocalUserId()) { + return; + } + + $profiles_string = null; + + if (DI::userSession()->getLocalUserId()) { + $profiles_string = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'blockem', 'words'); + } + + if ($profiles_string) { + $profiles_array = explode(',', $profiles_string); + } else { + return; + } + + $found = false; + + foreach ($profiles_array as $word) { + if (Strings::compareLink($hook_data['item']['author-link'], trim($word))) { + $found = true; + break; + } + } + + if ($found) { + $hook_data['filter_reasons'][] = DI::l10n()->t('Filtered user: %s', $hook_data['item']['author-name']); + } +} + +function blockem_display_item(array &$b = null) +{ + if (!empty($b['output']['body']) && strstr($b['output']['body'], 'id="blockem-wrap-')) { + $b['output']['thumb'] = DI::baseUrl() . "/images/person-80.jpg"; + } +} + +function blockem_conversation_start(array &$b) +{ + global $blockem_words; + + if (!DI::userSession()->getLocalUserId()) { + return; + } + + $words = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'blockem', 'words'); + + if ($words) { + $blockem_words = explode(',', $words); + } + + DI::page()['htmlhead'] .= <<< EOT + + + +EOT; +} + +function blockem_item_photo_menu(array &$b) +{ + global $blockem_words; + + if (!DI::userSession()->getLocalUserId() || $b['item']['self']) { + return; + } + + $blocked = false; + $author = $b['item']['author-link']; + + if (!empty($blockem_words)) { + foreach($blockem_words as $bloke) { + if (Strings::compareLink($bloke,$author)) { + $blocked = true; + break; + } + } + } + if ($blocked) { + $b['menu'][DI::l10n()->t('Unblock Author')] = 'javascript:blockemUnblock(\'' . $author . '\');'; + } else { + $b['menu'][DI::l10n()->t('Block Author')] = 'javascript:blockemBlock(\'' . $author . '\');'; + } +} + +/** + * This is a statement rather than an actual function definition. The simple + * existence of this method is checked to figure out if the addon offers a + * module. + */ +function blockem_module() {} + +function blockem_init() +{ + if (!DI::userSession()->getLocalUserId()) { + return; + } + + $words = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'blockem', 'words'); + + if (array_key_exists('block', $_GET) && $_GET['block']) { + if (strlen($words)) { + $words .= ','; + } + + $words .= trim($_GET['block']); + } + + if (array_key_exists('unblock', $_GET) && $_GET['unblock']) { + $arr = explode(',',$words); + $newarr = []; + + if (count($arr)) { + foreach ($arr as $x) { + if (!Strings::compareLink(trim($x), trim($_GET['unblock']))) { + $newarr[] = $x; + } + } + } + + $words = implode(',', $newarr); + } + + DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'blockem', 'words', $words); + exit(); +} diff --git a/blockem/lang/C/messages.po b/blockem/lang/C/messages.po new file mode 100644 index 00000000..64bb3fc4 --- /dev/null +++ b/blockem/lang/C/messages.po @@ -0,0 +1,45 @@ +# ADDON blockem +# Copyright (C) +# This file is distributed under the same license as the Friendica blockem addon package. +# +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-11-21 19:13-0500\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: blockem.php:39 +msgid "" +"Hides user's content by collapsing posts. Also replaces their avatar with " +"generic image." +msgstr "" + +#: blockem.php:40 +msgid "Comma separated profile URLS:" +msgstr "" + +#: blockem.php:45 +msgid "Blockem" +msgstr "" + +#: blockem.php:120 +#, php-format +msgid "Filtered user: %s" +msgstr "" + +#: blockem.php:183 +msgid "Unblock Author" +msgstr "" + +#: blockem.php:185 +msgid "Block Author" +msgstr "" diff --git a/blockem/lang/ar/messages.po b/blockem/lang/ar/messages.po new file mode 100644 index 00000000..c9d6d5f9 --- /dev/null +++ b/blockem/lang/ar/messages.po @@ -0,0 +1,52 @@ +# ADDON blockem +# Copyright (C) +# This file is distributed under the same license as the Friendica blockem addon package. +# +# +# Translators: +# abidin toumi , 2021 +# Farida Khalaf , 2021 +msgid "" +msgstr "" +"Project-Id-Version: friendica\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-02-01 18:15+0100\n" +"PO-Revision-Date: 2021-10-29 08:15+0000\n" +"Last-Translator: abidin toumi \n" +"Language-Team: Arabic (http://www.transifex.com/Friendica/friendica/language/ar/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ar\n" +"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" + +#: blockem.php:42 blockem.php:46 +msgid "Blockem" +msgstr "احجبه
" + +#: blockem.php:50 +msgid "" +"Hides user's content by collapsing posts. Also replaces their avatar with " +"generic image." +msgstr "إخفاء محتوى المستخدم عن طريق تصغير المشاركات. و استبدال الصورة الرمزية الخاصة بهم بصورة عامة." + +#: blockem.php:51 +msgid "Comma separated profile URLS:" +msgstr "عناوين الملفات الشخصية مفصولة بفواصل:" + +#: blockem.php:55 +msgid "Save Settings" +msgstr "احفظ الإعدادات" + +#: blockem.php:131 +#, php-format +msgid "Filtered user: %s" +msgstr "ترشيح المستخدم :1%s" + +#: blockem.php:190 +msgid "Unblock Author" +msgstr "ألغ الحجب عن المدون" + +#: blockem.php:192 +msgid "Block Author" +msgstr "احجب المدون" diff --git a/blockem/lang/ar/strings.php b/blockem/lang/ar/strings.php new file mode 100644 index 00000000..0f58fa22 --- /dev/null +++ b/blockem/lang/ar/strings.php @@ -0,0 +1,14 @@ +=3 && $n%100<=10) { return 3; } else if ($n%100>=11 && $n%100<=99) { return 4; } else { return 5; } +}} +$a->strings['Blockem'] = 'احجبه
'; +$a->strings['Hides user\'s content by collapsing posts. Also replaces their avatar with generic image.'] = 'إخفاء محتوى المستخدم عن طريق تصغير المشاركات. و استبدال الصورة الرمزية الخاصة بهم بصورة عامة.'; +$a->strings['Comma separated profile URLS:'] = 'عناوين الملفات الشخصية مفصولة بفواصل:'; +$a->strings['Save Settings'] = 'احفظ الإعدادات'; +$a->strings['Filtered user: %s'] = 'ترشيح المستخدم :1%s'; +$a->strings['Unblock Author'] = 'ألغ الحجب عن المدون'; +$a->strings['Block Author'] = 'احجب المدون'; diff --git a/blockem/lang/ca/messages.po b/blockem/lang/ca/messages.po new file mode 100644 index 00000000..6d4c3468 --- /dev/null +++ b/blockem/lang/ca/messages.po @@ -0,0 +1,59 @@ +# ADDON blockem +# Copyright (C) +# This file is distributed under the same license as the Friendica blockem addon package. +# +# +# Translators: +# Joan Bar , 2019 +msgid "" +msgstr "" +"Project-Id-Version: friendica\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-08-17 10:23+0200\n" +"PO-Revision-Date: 2019-10-14 11:50+0000\n" +"Last-Translator: Joan Bar \n" +"Language-Team: Catalan (http://www.transifex.com/Friendica/friendica/language/ca/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ca\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: blockem.php:54 blockem.php:58 +msgid "Blockem" +msgstr "Blockem" + +#: blockem.php:62 +msgid "" +"Hides user's content by collapsing posts. Also replaces their avatar with " +"generic image." +msgstr "Amaga el contingut de l'usuari mitjançant la publicació col·lapsada. També substitueix el seu avatar per una imatge genèrica" + +#: blockem.php:63 +msgid "Comma separated profile URLS:" +msgstr "URL de perfil separats per comes:" + +#: blockem.php:67 +msgid "Save Settings" +msgstr "Desa la configuració" + +#: blockem.php:81 +msgid "BLOCKEM Settings saved." +msgstr "S'ha desat la configuració de BLOCKEM." + +#: blockem.php:143 +#, php-format +msgid "Filtered user: %s" +msgstr "Usuari filtrat:%s" + +#: blockem.php:202 +msgid "Unblock Author" +msgstr "Desbloca l'autor" + +#: blockem.php:204 +msgid "Block Author" +msgstr "Autor de bloc" + +#: blockem.php:244 +msgid "blockem settings updated" +msgstr "S'ha actualitzat la configuració de blockem" diff --git a/blockem/lang/ca/strings.php b/blockem/lang/ca/strings.php new file mode 100644 index 00000000..be4deede --- /dev/null +++ b/blockem/lang/ca/strings.php @@ -0,0 +1,16 @@ +strings['Blockem'] = 'Blockem'; +$a->strings['Hides user\'s content by collapsing posts. Also replaces their avatar with generic image.'] = 'Amaga el contingut de l\'usuari mitjançant la publicació col·lapsada. També substitueix el seu avatar per una imatge genèrica'; +$a->strings['Comma separated profile URLS:'] = 'URL de perfil separats per comes:'; +$a->strings['Save Settings'] = 'Desa la configuració'; +$a->strings['BLOCKEM Settings saved.'] = 'S\'ha desat la configuració de BLOCKEM.'; +$a->strings['Filtered user: %s'] = 'Usuari filtrat:%s'; +$a->strings['Unblock Author'] = 'Desbloca l\'autor'; +$a->strings['Block Author'] = 'Autor de bloc'; +$a->strings['blockem settings updated'] = 'S\'ha actualitzat la configuració de blockem'; diff --git a/blockem/lang/cs/messages.po b/blockem/lang/cs/messages.po new file mode 100644 index 00000000..fb90a2ca --- /dev/null +++ b/blockem/lang/cs/messages.po @@ -0,0 +1,60 @@ +# ADDON blockem +# Copyright (C) +# This file is distributed under the same license as the Friendica blockem addon package. +# +# +# Translators: +# Aditoo, 2018 +# michal_s , 2014 +msgid "" +msgstr "" +"Project-Id-Version: friendica\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-08-17 10:23+0200\n" +"PO-Revision-Date: 2018-08-18 12:25+0000\n" +"Last-Translator: Aditoo\n" +"Language-Team: Czech (http://www.transifex.com/Friendica/friendica/language/cs/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: cs\n" +"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n" + +#: blockem.php:54 blockem.php:58 +msgid "Blockem" +msgstr "Blockem" + +#: blockem.php:62 +msgid "" +"Hides user's content by collapsing posts. Also replaces their avatar with " +"generic image." +msgstr "Skrývá uživatelský obsah zabalením příspěvků. Navíc nahrazuje avatar generickým obrázkem." + +#: blockem.php:63 +msgid "Comma separated profile URLS:" +msgstr "URL adresy profilů, oddělené čárkami:" + +#: blockem.php:67 +msgid "Save Settings" +msgstr "Uložit nastavení" + +#: blockem.php:81 +msgid "BLOCKEM Settings saved." +msgstr "Nastavení BLOCKEM uložena." + +#: blockem.php:143 +#, php-format +msgid "Filtered user: %s" +msgstr "Filtrovaný uživatel: %s" + +#: blockem.php:202 +msgid "Unblock Author" +msgstr "Odblokovat autora" + +#: blockem.php:204 +msgid "Block Author" +msgstr "Zablokovat autora" + +#: blockem.php:244 +msgid "blockem settings updated" +msgstr "nastavení blockem aktualizována" diff --git a/blockem/lang/cs/strings.php b/blockem/lang/cs/strings.php new file mode 100644 index 00000000..ac32d78f --- /dev/null +++ b/blockem/lang/cs/strings.php @@ -0,0 +1,16 @@ += 2 && $n <= 4 && $n % 1 == 0)) { return 1; } else if (($n % 1 != 0 )) { return 2; } else { return 3; } +}} +$a->strings['Blockem'] = 'Blockem'; +$a->strings['Hides user\'s content by collapsing posts. Also replaces their avatar with generic image.'] = 'Skrývá uživatelský obsah zabalením příspěvků. Navíc nahrazuje avatar generickým obrázkem.'; +$a->strings['Comma separated profile URLS:'] = 'URL adresy profilů, oddělené čárkami:'; +$a->strings['Save Settings'] = 'Uložit nastavení'; +$a->strings['BLOCKEM Settings saved.'] = 'Nastavení BLOCKEM uložena.'; +$a->strings['Filtered user: %s'] = 'Filtrovaný uživatel: %s'; +$a->strings['Unblock Author'] = 'Odblokovat autora'; +$a->strings['Block Author'] = 'Zablokovat autora'; +$a->strings['blockem settings updated'] = 'nastavení blockem aktualizována'; diff --git a/blockem/lang/da-dk/messages.po b/blockem/lang/da-dk/messages.po new file mode 100644 index 00000000..e4a80bff --- /dev/null +++ b/blockem/lang/da-dk/messages.po @@ -0,0 +1,47 @@ +# ADDON blockem +# Copyright (C) +# This file is distributed under the same license as the Friendica blockem addon package. +# +# +# Translators: +# Anton , 2022 +msgid "" +msgstr "" +"Project-Id-Version: friendica\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-11-21 19:13-0500\n" +"PO-Revision-Date: 2014-06-22 11:20+0000\n" +"Last-Translator: Anton , 2022\n" +"Language-Team: Danish (Denmark) (http://www.transifex.com/Friendica/friendica/language/da_DK/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: da_DK\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: blockem.php:39 +msgid "" +"Hides user's content by collapsing posts. Also replaces their avatar with " +"generic image." +msgstr "Skjul brugers indhold ved at kollapse deres opslag. Erstatter også deres avatar med et generisk billede." + +#: blockem.php:40 +msgid "Comma separated profile URLS:" +msgstr "Kommasepareret liste over profil-URL's:" + +#: blockem.php:45 +msgid "Blockem" +msgstr "Blokdem" + +#: blockem.php:120 +#, php-format +msgid "Filtered user: %s" +msgstr "Filtreret bruger: %s" + +#: blockem.php:183 +msgid "Unblock Author" +msgstr "Fjern blokering af forfatter" + +#: blockem.php:185 +msgid "Block Author" +msgstr "Blokér forfatter" diff --git a/blockem/lang/da-dk/strings.php b/blockem/lang/da-dk/strings.php new file mode 100644 index 00000000..e99144ec --- /dev/null +++ b/blockem/lang/da-dk/strings.php @@ -0,0 +1,13 @@ +strings['Hides user\'s content by collapsing posts. Also replaces their avatar with generic image.'] = 'Skjul brugers indhold ved at kollapse deres opslag. Erstatter også deres avatar med et generisk billede.'; +$a->strings['Comma separated profile URLS:'] = 'Kommasepareret liste over profil-URL\'s:'; +$a->strings['Blockem'] = 'Blokdem'; +$a->strings['Filtered user: %s'] = 'Filtreret bruger: %s'; +$a->strings['Unblock Author'] = 'Fjern blokering af forfatter'; +$a->strings['Block Author'] = 'Blokér forfatter'; diff --git a/blockem/lang/de/messages.po b/blockem/lang/de/messages.po new file mode 100644 index 00000000..d1e2f704 --- /dev/null +++ b/blockem/lang/de/messages.po @@ -0,0 +1,50 @@ +# ADDON blockem +# Copyright (C) +# This file is distributed under the same license as the Friendica blockem addon package. +# +# +# Translators: +# Andreas H., 2018 +# Tobias Diekershoff , 2014 +# Tobias Diekershoff , 2018 +# Ulf Rompe , 2019 +msgid "" +msgstr "" +"Project-Id-Version: friendica\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-11-21 19:13-0500\n" +"PO-Revision-Date: 2021-12-22 15:27+0000\n" +"Last-Translator: Transifex Bot <>\n" +"Language-Team: German (http://www.transifex.com/Friendica/friendica/language/de/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: de\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: blockem.php:39 +msgid "" +"Hides user's content by collapsing posts. Also replaces their avatar with " +"generic image." +msgstr "Verbirgt Inhalte von Benutzern durch Zusammenklappen der Beiträge. Des Weiteren wird das Profilbild durch einen generischen Avatar ersetzt." + +#: blockem.php:40 +msgid "Comma separated profile URLS:" +msgstr "Komma-separierte Liste von Profil-URLs" + +#: blockem.php:45 +msgid "Blockem" +msgstr "Blockem" + +#: blockem.php:120 +#, php-format +msgid "Filtered user: %s" +msgstr "Gefilterte Person: %s" + +#: blockem.php:183 +msgid "Unblock Author" +msgstr "Autor freischalten" + +#: blockem.php:185 +msgid "Block Author" +msgstr "Autor blockieren" diff --git a/blockem/lang/de/strings.php b/blockem/lang/de/strings.php new file mode 100644 index 00000000..109af368 --- /dev/null +++ b/blockem/lang/de/strings.php @@ -0,0 +1,13 @@ +strings['Hides user\'s content by collapsing posts. Also replaces their avatar with generic image.'] = 'Verbirgt Inhalte von Benutzern durch Zusammenklappen der Beiträge. Des Weiteren wird das Profilbild durch einen generischen Avatar ersetzt.'; +$a->strings['Comma separated profile URLS:'] = 'Komma-separierte Liste von Profil-URLs'; +$a->strings['Blockem'] = 'Blockem'; +$a->strings['Filtered user: %s'] = 'Gefilterte Person: %s'; +$a->strings['Unblock Author'] = 'Autor freischalten'; +$a->strings['Block Author'] = 'Autor blockieren'; diff --git a/blockem/lang/en-gb/messages.po b/blockem/lang/en-gb/messages.po new file mode 100644 index 00000000..6bcc7b9b --- /dev/null +++ b/blockem/lang/en-gb/messages.po @@ -0,0 +1,59 @@ +# ADDON blockem +# Copyright (C) +# This file is distributed under the same license as the Friendica blockem addon package. +# +# +# Translators: +# Andy H3 , 2018 +msgid "" +msgstr "" +"Project-Id-Version: friendica\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-02-09 13:00+0100\n" +"PO-Revision-Date: 2018-03-15 14:10+0000\n" +"Last-Translator: Andy H3 \n" +"Language-Team: English (United Kingdom) (http://www.transifex.com/Friendica/friendica/language/en_GB/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: en_GB\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: blockem.php:51 blockem.php:55 +msgid "\"Blockem\"" +msgstr "\"Blockem\"" + +#: blockem.php:59 +msgid "" +"Hides user's content by collapsing posts. Also replaces their avatar with " +"generic image." +msgstr "Hides user's content by collapsing posts. Also replaces their avatar with generic image." + +#: blockem.php:60 +msgid "Comma separated profile URLS:" +msgstr "Comma separated profile URLs:" + +#: blockem.php:64 +msgid "Save Settings" +msgstr "Save settings" + +#: blockem.php:77 +msgid "BLOCKEM Settings saved." +msgstr "Blockem settings saved." + +#: blockem.php:140 +#, php-format +msgid "Hidden content by %s - Click to open/close" +msgstr "Hidden content by %s - Reveal/hide" + +#: blockem.php:193 +msgid "Unblock Author" +msgstr "Unblock author" + +#: blockem.php:195 +msgid "Block Author" +msgstr "Block author" + +#: blockem.php:227 +msgid "blockem settings updated" +msgstr "Blockem settings updated" diff --git a/blockem/lang/en-gb/strings.php b/blockem/lang/en-gb/strings.php new file mode 100644 index 00000000..0b9d9e4b --- /dev/null +++ b/blockem/lang/en-gb/strings.php @@ -0,0 +1,16 @@ +strings['"Blockem"'] = '"Blockem"'; +$a->strings['Hides user\'s content by collapsing posts. Also replaces their avatar with generic image.'] = 'Hides user\'s content by collapsing posts. Also replaces their avatar with generic image.'; +$a->strings['Comma separated profile URLS:'] = 'Comma separated profile URLs:'; +$a->strings['Save Settings'] = 'Save settings'; +$a->strings['BLOCKEM Settings saved.'] = 'Blockem settings saved.'; +$a->strings['Hidden content by %s - Click to open/close'] = 'Hidden content by %s - Reveal/hide'; +$a->strings['Unblock Author'] = 'Unblock author'; +$a->strings['Block Author'] = 'Block author'; +$a->strings['blockem settings updated'] = 'Blockem settings updated'; diff --git a/blockem/lang/en-us/messages.po b/blockem/lang/en-us/messages.po new file mode 100644 index 00000000..1d64620b --- /dev/null +++ b/blockem/lang/en-us/messages.po @@ -0,0 +1,61 @@ +# ADDON blockem +# Copyright (C) +# This file is distributed under the same license as the Friendica blockem addon package. +# +# +# Translators: +# Adam Clark , 2018 +# Andy H3 , 2018 +# R C , 2018 +msgid "" +msgstr "" +"Project-Id-Version: friendica\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-04-01 11:11-0400\n" +"PO-Revision-Date: 2018-06-13 02:40+0000\n" +"Last-Translator: R C \n" +"Language-Team: English (United States) (http://www.transifex.com/Friendica/friendica/language/en_US/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: en_US\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: blockem.php:52 blockem.php:56 +msgid "\"Blockem\"" +msgstr "Blockem" + +#: blockem.php:60 +msgid "" +"Hides user's content by collapsing posts. Also replaces their avatar with " +"generic image." +msgstr "Hides user's content by collapsing posts. Also replaces their avatar with generic image." + +#: blockem.php:61 +msgid "Comma separated profile URLS:" +msgstr "Comma-separated profile URLs:" + +#: blockem.php:65 +msgid "Save Settings" +msgstr "Save settings" + +#: blockem.php:78 +msgid "BLOCKEM Settings saved." +msgstr "Blockem settings saved." + +#: blockem.php:136 +#, php-format +msgid "Filtered user: %s" +msgstr "Filtered user: %s" + +#: blockem.php:189 +msgid "Unblock Author" +msgstr "Unblock author" + +#: blockem.php:191 +msgid "Block Author" +msgstr "Block author" + +#: blockem.php:223 +msgid "blockem settings updated" +msgstr "Blockem settings updated" diff --git a/blockem/lang/en-us/strings.php b/blockem/lang/en-us/strings.php new file mode 100644 index 00000000..fd76a1bc --- /dev/null +++ b/blockem/lang/en-us/strings.php @@ -0,0 +1,16 @@ +strings['"Blockem"'] = 'Blockem'; +$a->strings['Hides user\'s content by collapsing posts. Also replaces their avatar with generic image.'] = 'Hides user\'s content by collapsing posts. Also replaces their avatar with generic image.'; +$a->strings['Comma separated profile URLS:'] = 'Comma-separated profile URLs:'; +$a->strings['Save Settings'] = 'Save settings'; +$a->strings['BLOCKEM Settings saved.'] = 'Blockem settings saved.'; +$a->strings['Filtered user: %s'] = 'Filtered user: %s'; +$a->strings['Unblock Author'] = 'Unblock author'; +$a->strings['Block Author'] = 'Block author'; +$a->strings['blockem settings updated'] = 'Blockem settings updated'; diff --git a/blockem/lang/eo/strings.php b/blockem/lang/eo/strings.php new file mode 100644 index 00000000..b6116507 --- /dev/null +++ b/blockem/lang/eo/strings.php @@ -0,0 +1,10 @@ +strings["\"Blockem\" Settings"] = "\"Blockem\" Agordoj"; +$a->strings["Comma separated profile URLS to block"] = "Blokotaj URL adresoj, disigita per komo"; +$a->strings["Submit"] = "Sendi"; +$a->strings["BLOCKEM Settings saved."] = "Konservis Agordojn de BLOCKEM."; +$a->strings["Blocked %s - Click to open/close"] = "%s blokita - Klaku por malfermi/fermi"; +$a->strings["Unblock Author"] = "Malbloki Aŭtoron"; +$a->strings["Block Author"] = "Bloki Aŭtoron"; +$a->strings["blockem settings updated"] = "Ĝisdatigis la blockem agordojn"; diff --git a/blockem/lang/es/messages.po b/blockem/lang/es/messages.po new file mode 100644 index 00000000..0b59921e --- /dev/null +++ b/blockem/lang/es/messages.po @@ -0,0 +1,53 @@ +# ADDON blockem +# Copyright (C) +# This file is distributed under the same license as the Friendica blockem addon package. +# +# +# Translators: +# Albert, 2018 +# Senex Petrovic , 2021 +# Tupambae.org, 2016 +msgid "" +msgstr "" +"Project-Id-Version: friendica\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-02-01 18:15+0100\n" +"PO-Revision-Date: 2021-04-01 09:45+0000\n" +"Last-Translator: Senex Petrovic \n" +"Language-Team: Spanish (http://www.transifex.com/Friendica/friendica/language/es/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: es\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: blockem.php:42 blockem.php:46 +msgid "Blockem" +msgstr "Blockem (Bloquealos)" + +#: blockem.php:50 +msgid "" +"Hides user's content by collapsing posts. Also replaces their avatar with " +"generic image." +msgstr "Oculta el contenido del usuario al colapsar las publicaciones. También reemplaza su avatar con una imagen genérica." + +#: blockem.php:51 +msgid "Comma separated profile URLS:" +msgstr "URLs de perfil separadas por comas:" + +#: blockem.php:55 +msgid "Save Settings" +msgstr "Guardar configuración" + +#: blockem.php:131 +#, php-format +msgid "Filtered user: %s" +msgstr "Usuario filtrado: %s" + +#: blockem.php:190 +msgid "Unblock Author" +msgstr "Desbloquear autor" + +#: blockem.php:192 +msgid "Block Author" +msgstr "Bloquear autor" diff --git a/blockem/lang/es/strings.php b/blockem/lang/es/strings.php new file mode 100644 index 00000000..7d1de601 --- /dev/null +++ b/blockem/lang/es/strings.php @@ -0,0 +1,14 @@ +strings['Blockem'] = 'Blockem (Bloquealos)'; +$a->strings['Hides user\'s content by collapsing posts. Also replaces their avatar with generic image.'] = 'Oculta el contenido del usuario al colapsar las publicaciones. También reemplaza su avatar con una imagen genérica.'; +$a->strings['Comma separated profile URLS:'] = 'URLs de perfil separadas por comas:'; +$a->strings['Save Settings'] = 'Guardar configuración'; +$a->strings['Filtered user: %s'] = 'Usuario filtrado: %s'; +$a->strings['Unblock Author'] = 'Desbloquear autor'; +$a->strings['Block Author'] = 'Bloquear autor'; diff --git a/blockem/lang/fi-fi/messages.po b/blockem/lang/fi-fi/messages.po new file mode 100644 index 00000000..4fac9aa7 --- /dev/null +++ b/blockem/lang/fi-fi/messages.po @@ -0,0 +1,60 @@ +# ADDON blockem +# Copyright (C) +# This file is distributed under the same license as the Friendica blockem addon package. +# +# +# Translators: +# Kris, 2018 +# Kris, 2018 +msgid "" +msgstr "" +"Project-Id-Version: friendica\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-04-01 11:11-0400\n" +"PO-Revision-Date: 2018-04-18 14:44+0000\n" +"Last-Translator: Kris\n" +"Language-Team: Finnish (Finland) (http://www.transifex.com/Friendica/friendica/language/fi_FI/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: fi_FI\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: blockem.php:52 blockem.php:56 +msgid "\"Blockem\"" +msgstr "\"Blockem\"" + +#: blockem.php:60 +msgid "" +"Hides user's content by collapsing posts. Also replaces their avatar with " +"generic image." +msgstr "" + +#: blockem.php:61 +msgid "Comma separated profile URLS:" +msgstr "Profiilien URL-osoitteet pilkulla erotettuina:" + +#: blockem.php:65 +msgid "Save Settings" +msgstr "Tallenna asetukset" + +#: blockem.php:78 +msgid "BLOCKEM Settings saved." +msgstr "Blockem -asetukset tallennettu" + +#: blockem.php:136 +#, php-format +msgid "Filtered user: %s" +msgstr "Suodatettu käyttäjä: %s" + +#: blockem.php:189 +msgid "Unblock Author" +msgstr "Poista kirjoittaja estolistalta" + +#: blockem.php:191 +msgid "Block Author" +msgstr "Lisää kirjoittaja estolistalle" + +#: blockem.php:223 +msgid "blockem settings updated" +msgstr "blockem -asetukset päivitetty" diff --git a/blockem/lang/fi-fi/strings.php b/blockem/lang/fi-fi/strings.php new file mode 100644 index 00000000..d15b4a56 --- /dev/null +++ b/blockem/lang/fi-fi/strings.php @@ -0,0 +1,15 @@ +strings['"Blockem"'] = '"Blockem"'; +$a->strings['Comma separated profile URLS:'] = 'Profiilien URL-osoitteet pilkulla erotettuina:'; +$a->strings['Save Settings'] = 'Tallenna asetukset'; +$a->strings['BLOCKEM Settings saved.'] = 'Blockem -asetukset tallennettu'; +$a->strings['Filtered user: %s'] = 'Suodatettu käyttäjä: %s'; +$a->strings['Unblock Author'] = 'Poista kirjoittaja estolistalta'; +$a->strings['Block Author'] = 'Lisää kirjoittaja estolistalle'; +$a->strings['blockem settings updated'] = 'blockem -asetukset päivitetty'; diff --git a/blockem/lang/fr/messages.po b/blockem/lang/fr/messages.po new file mode 100644 index 00000000..d3617290 --- /dev/null +++ b/blockem/lang/fr/messages.po @@ -0,0 +1,50 @@ +# ADDON blockem +# Copyright (C) +# This file is distributed under the same license as the Friendica blockem addon package. +# +# +# Translators: +# Hypolite Petovan , 2016 +# Marie Olive , 2018 +# StefOfficiel , 2015 +# Vladimir Núñez , 2018 +msgid "" +msgstr "" +"Project-Id-Version: friendica\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-11-21 19:13-0500\n" +"PO-Revision-Date: 2014-06-22 11:20+0000\n" +"Last-Translator: Vladimir Núñez , 2018\n" +"Language-Team: French (http://www.transifex.com/Friendica/friendica/language/fr/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: fr\n" +"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n" + +#: blockem.php:39 +msgid "" +"Hides user's content by collapsing posts. Also replaces their avatar with " +"generic image." +msgstr "Cache le contenu de l'utilisateur en contractant les publications. Remplace aussi leur avatar par une image générique." + +#: blockem.php:40 +msgid "Comma separated profile URLS:" +msgstr "URLs de profil séparées par des virgules:" + +#: blockem.php:45 +msgid "Blockem" +msgstr "Bloquez-les" + +#: blockem.php:120 +#, php-format +msgid "Filtered user: %s" +msgstr "Utilisateur filtré:%s" + +#: blockem.php:183 +msgid "Unblock Author" +msgstr "Débloquer l'Auteur" + +#: blockem.php:185 +msgid "Block Author" +msgstr "Bloquer l'Auteur" diff --git a/blockem/lang/fr/strings.php b/blockem/lang/fr/strings.php new file mode 100644 index 00000000..26b86f24 --- /dev/null +++ b/blockem/lang/fr/strings.php @@ -0,0 +1,13 @@ +strings['Hides user\'s content by collapsing posts. Also replaces their avatar with generic image.'] = 'Cache le contenu de l\'utilisateur en contractant les publications. Remplace aussi leur avatar par une image générique.'; +$a->strings['Comma separated profile URLS:'] = 'URLs de profil séparées par des virgules:'; +$a->strings['Blockem'] = 'Bloquez-les'; +$a->strings['Filtered user: %s'] = 'Utilisateur filtré:%s'; +$a->strings['Unblock Author'] = 'Débloquer l\'Auteur'; +$a->strings['Block Author'] = 'Bloquer l\'Auteur'; diff --git a/blockem/lang/hu/messages.po b/blockem/lang/hu/messages.po new file mode 100644 index 00000000..3a29b820 --- /dev/null +++ b/blockem/lang/hu/messages.po @@ -0,0 +1,47 @@ +# ADDON blockem +# Copyright (C) +# This file is distributed under the same license as the Friendica blockem addon package. +# +# +# Translators: +# Balázs Úr, 2020 +msgid "" +msgstr "" +"Project-Id-Version: friendica\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-11-21 19:13-0500\n" +"PO-Revision-Date: 2014-06-22 11:20+0000\n" +"Last-Translator: Balázs Úr, 2020\n" +"Language-Team: Hungarian (http://www.transifex.com/Friendica/friendica/language/hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: blockem.php:39 +msgid "" +"Hides user's content by collapsing posts. Also replaces their avatar with " +"generic image." +msgstr "Elrejti a felhasználók tartalmát a bejegyzések összecsukásával. Ezenkívül lecseréli a profilképeiket egy általános képre." + +#: blockem.php:40 +msgid "Comma separated profile URLS:" +msgstr "Profil URL-ek vesszővel elválasztva:" + +#: blockem.php:45 +msgid "Blockem" +msgstr "Blockem" + +#: blockem.php:120 +#, php-format +msgid "Filtered user: %s" +msgstr "Kiszűrt felhasználó: %s" + +#: blockem.php:183 +msgid "Unblock Author" +msgstr "Szerző tiltásának feloldása" + +#: blockem.php:185 +msgid "Block Author" +msgstr "Szerző tiltása" diff --git a/blockem/lang/hu/strings.php b/blockem/lang/hu/strings.php new file mode 100644 index 00000000..5a3abfec --- /dev/null +++ b/blockem/lang/hu/strings.php @@ -0,0 +1,13 @@ +strings['Hides user\'s content by collapsing posts. Also replaces their avatar with generic image.'] = 'Elrejti a felhasználók tartalmát a bejegyzések összecsukásával. Ezenkívül lecseréli a profilképeiket egy általános képre.'; +$a->strings['Comma separated profile URLS:'] = 'Profil URL-ek vesszővel elválasztva:'; +$a->strings['Blockem'] = 'Blockem'; +$a->strings['Filtered user: %s'] = 'Kiszűrt felhasználó: %s'; +$a->strings['Unblock Author'] = 'Szerző tiltásának feloldása'; +$a->strings['Block Author'] = 'Szerző tiltása'; diff --git a/blockem/lang/is/strings.php b/blockem/lang/is/strings.php new file mode 100644 index 00000000..3075c457 --- /dev/null +++ b/blockem/lang/is/strings.php @@ -0,0 +1,10 @@ +strings["\"Blockem\" Settings"] = "\"Blockem\" stillingar"; +$a->strings["Comma separated profile URLS to block"] = "Banna lista af forsíðum (komma á milli)"; +$a->strings["Submit"] = "Senda inn"; +$a->strings["BLOCKEM Settings saved."] = "BLOCKEM stillingar vistaðar."; +$a->strings["Blocked %s - Click to open/close"] = "%s sett í straff - Smella til að taka úr/setja á"; +$a->strings["Unblock Author"] = "Leyfa notanda"; +$a->strings["Block Author"] = "Banna notanda"; +$a->strings["blockem settings updated"] = ""; diff --git a/blockem/lang/it/messages.po b/blockem/lang/it/messages.po new file mode 100644 index 00000000..cdf74f99 --- /dev/null +++ b/blockem/lang/it/messages.po @@ -0,0 +1,59 @@ +# ADDON blockem +# Copyright (C) +# This file is distributed under the same license as the Friendica blockem addon package. +# +# +# Translators: +# fabrixxm , 2014,2018-2019 +msgid "" +msgstr "" +"Project-Id-Version: friendica\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-08-17 10:23+0200\n" +"PO-Revision-Date: 2019-03-11 14:21+0000\n" +"Last-Translator: fabrixxm \n" +"Language-Team: Italian (http://www.transifex.com/Friendica/friendica/language/it/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: it\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: blockem.php:54 blockem.php:58 +msgid "Blockem" +msgstr "Blockem" + +#: blockem.php:62 +msgid "" +"Hides user's content by collapsing posts. Also replaces their avatar with " +"generic image." +msgstr "Nascondi il contenuto degli utenti collassando i messaggi. Sostituisce anche gli avatar con un'immagine generica." + +#: blockem.php:63 +msgid "Comma separated profile URLS:" +msgstr "URL profili separati da virgola:" + +#: blockem.php:67 +msgid "Save Settings" +msgstr "Salva Impostazioni" + +#: blockem.php:81 +msgid "BLOCKEM Settings saved." +msgstr "Impostazioni BLOCKEM salvate." + +#: blockem.php:143 +#, php-format +msgid "Filtered user: %s" +msgstr "Utente filtrato: %s" + +#: blockem.php:202 +msgid "Unblock Author" +msgstr "Sblocca autore" + +#: blockem.php:204 +msgid "Block Author" +msgstr "Blocca autore" + +#: blockem.php:244 +msgid "blockem settings updated" +msgstr "Impostazioni 'blockem' aggiornate." diff --git a/blockem/lang/it/strings.php b/blockem/lang/it/strings.php new file mode 100644 index 00000000..aa73286a --- /dev/null +++ b/blockem/lang/it/strings.php @@ -0,0 +1,16 @@ +strings['Blockem'] = 'Blockem'; +$a->strings['Hides user\'s content by collapsing posts. Also replaces their avatar with generic image.'] = 'Nascondi il contenuto degli utenti collassando i messaggi. Sostituisce anche gli avatar con un\'immagine generica.'; +$a->strings['Comma separated profile URLS:'] = 'URL profili separati da virgola:'; +$a->strings['Save Settings'] = 'Salva Impostazioni'; +$a->strings['BLOCKEM Settings saved.'] = 'Impostazioni BLOCKEM salvate.'; +$a->strings['Filtered user: %s'] = 'Utente filtrato: %s'; +$a->strings['Unblock Author'] = 'Sblocca autore'; +$a->strings['Block Author'] = 'Blocca autore'; +$a->strings['blockem settings updated'] = 'Impostazioni \'blockem\' aggiornate.'; diff --git a/blockem/lang/nb-no/strings.php b/blockem/lang/nb-no/strings.php new file mode 100644 index 00000000..0dd6660d --- /dev/null +++ b/blockem/lang/nb-no/strings.php @@ -0,0 +1,10 @@ +strings["\"Blockem\" Settings"] = ""; +$a->strings["Comma separated profile URLS to block"] = ""; +$a->strings["Submit"] = "Lagre"; +$a->strings["BLOCKEM Settings saved."] = ""; +$a->strings["Blocked %s - Click to open/close"] = ""; +$a->strings["Unblock Author"] = ""; +$a->strings["Block Author"] = ""; +$a->strings["blockem settings updated"] = ""; diff --git a/blockem/lang/nl/messages.po b/blockem/lang/nl/messages.po new file mode 100644 index 00000000..f8bde25c --- /dev/null +++ b/blockem/lang/nl/messages.po @@ -0,0 +1,60 @@ +# ADDON blockem +# Copyright (C) +# This file is distributed under the same license as the Friendica blockem addon package. +# +# +# Translators: +# AgnesElisa , 2018 +# Jeroen De Meerleer , 2018 +msgid "" +msgstr "" +"Project-Id-Version: friendica\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-08-17 10:23+0200\n" +"PO-Revision-Date: 2018-08-24 13:49+0000\n" +"Last-Translator: Jeroen De Meerleer \n" +"Language-Team: Dutch (http://www.transifex.com/Friendica/friendica/language/nl/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: nl\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: blockem.php:54 blockem.php:58 +msgid "Blockem" +msgstr "Blockem" + +#: blockem.php:62 +msgid "" +"Hides user's content by collapsing posts. Also replaces their avatar with " +"generic image." +msgstr "Verbergt de inhoud van het bericht van de gebruiker. Daarnaast vervangt het de avatar door een standaardafbeelding." + +#: blockem.php:63 +msgid "Comma separated profile URLS:" +msgstr "Profiel URLs (kommagescheiden):" + +#: blockem.php:67 +msgid "Save Settings" +msgstr "Instellingen opslaan" + +#: blockem.php:81 +msgid "BLOCKEM Settings saved." +msgstr "BLOCKEM instellingen opgeslagen." + +#: blockem.php:143 +#, php-format +msgid "Filtered user: %s" +msgstr "Gefilterde gebruiker: %s" + +#: blockem.php:202 +msgid "Unblock Author" +msgstr "Deblokkeer Auteur" + +#: blockem.php:204 +msgid "Block Author" +msgstr "Auteur blokkeren" + +#: blockem.php:244 +msgid "blockem settings updated" +msgstr "blockem instellingen opgeslagen" diff --git a/blockem/lang/nl/strings.php b/blockem/lang/nl/strings.php new file mode 100644 index 00000000..b523cdc4 --- /dev/null +++ b/blockem/lang/nl/strings.php @@ -0,0 +1,16 @@ +strings['Blockem'] = 'Blockem'; +$a->strings['Hides user\'s content by collapsing posts. Also replaces their avatar with generic image.'] = 'Verbergt de inhoud van het bericht van de gebruiker. Daarnaast vervangt het de avatar door een standaardafbeelding.'; +$a->strings['Comma separated profile URLS:'] = 'Profiel URLs (kommagescheiden):'; +$a->strings['Save Settings'] = 'Instellingen opslaan'; +$a->strings['BLOCKEM Settings saved.'] = 'BLOCKEM instellingen opgeslagen.'; +$a->strings['Filtered user: %s'] = 'Gefilterde gebruiker: %s'; +$a->strings['Unblock Author'] = 'Deblokkeer Auteur'; +$a->strings['Block Author'] = 'Auteur blokkeren'; +$a->strings['blockem settings updated'] = 'blockem instellingen opgeslagen'; diff --git a/blockem/lang/pl/messages.po b/blockem/lang/pl/messages.po new file mode 100644 index 00000000..8e70e0b5 --- /dev/null +++ b/blockem/lang/pl/messages.po @@ -0,0 +1,47 @@ +# ADDON blockem +# Copyright (C) +# This file is distributed under the same license as the Friendica blockem addon package. +# +# +# Translators: +# Waldemar Stoczkowski, 2018 +msgid "" +msgstr "" +"Project-Id-Version: friendica\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-11-21 19:13-0500\n" +"PO-Revision-Date: 2014-06-22 11:20+0000\n" +"Last-Translator: Waldemar Stoczkowski, 2018\n" +"Language-Team: Polish (http://www.transifex.com/Friendica/friendica/language/pl/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: pl\n" +"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n" + +#: blockem.php:39 +msgid "" +"Hides user's content by collapsing posts. Also replaces their avatar with " +"generic image." +msgstr "Ukrywa zawartość użytkownika, zwijając posty. Zastępuje również awatar wygenerowanym obrazem." + +#: blockem.php:40 +msgid "Comma separated profile URLS:" +msgstr "Rozdzielone przecinkami adresy URL profilu:" + +#: blockem.php:45 +msgid "Blockem" +msgstr "Zablokowanie" + +#: blockem.php:120 +#, php-format +msgid "Filtered user: %s" +msgstr "Użytkownik filtrowany: %s" + +#: blockem.php:183 +msgid "Unblock Author" +msgstr "Odblokuj autora" + +#: blockem.php:185 +msgid "Block Author" +msgstr "Zablokuj autora" diff --git a/blockem/lang/pl/strings.php b/blockem/lang/pl/strings.php new file mode 100644 index 00000000..49951a68 --- /dev/null +++ b/blockem/lang/pl/strings.php @@ -0,0 +1,13 @@ +=2 && $n%10<=4) && ($n%100<12 || $n%100>14)) { return 1; } else if ($n!=1 && ($n%10>=0 && $n%10<=1) || ($n%10>=5 && $n%10<=9) || ($n%100>=12 && $n%100<=14)) { return 2; } else { return 3; } +}} +$a->strings['Hides user\'s content by collapsing posts. Also replaces their avatar with generic image.'] = 'Ukrywa zawartość użytkownika, zwijając posty. Zastępuje również awatar wygenerowanym obrazem.'; +$a->strings['Comma separated profile URLS:'] = 'Rozdzielone przecinkami adresy URL profilu:'; +$a->strings['Blockem'] = 'Zablokowanie'; +$a->strings['Filtered user: %s'] = 'Użytkownik filtrowany: %s'; +$a->strings['Unblock Author'] = 'Odblokuj autora'; +$a->strings['Block Author'] = 'Zablokuj autora'; diff --git a/blockem/lang/pt-br/strings.php b/blockem/lang/pt-br/strings.php new file mode 100644 index 00000000..49f69cc3 --- /dev/null +++ b/blockem/lang/pt-br/strings.php @@ -0,0 +1,10 @@ +strings["\"Blockem\" Settings"] = "Configurações \"Blockem\""; +$a->strings["Comma separated profile URLS to block"] = "URLS de perfis separados por vírgulas a serem bloqueados"; +$a->strings["Submit"] = "Enviar"; +$a->strings["BLOCKEM Settings saved."] = "Configurações BLOCKEM armazenadas."; +$a->strings["Blocked %s - Click to open/close"] = "Bloqueado %s - Clique para abrir/fechar"; +$a->strings["Unblock Author"] = "Desbloqueie Autor"; +$a->strings["Block Author"] = "Bloqueie Autor"; +$a->strings["blockem settings updated"] = "configurações blockem atualizadas"; diff --git a/blockem/lang/ro/messages.po b/blockem/lang/ro/messages.po new file mode 100644 index 00000000..a74e5757 --- /dev/null +++ b/blockem/lang/ro/messages.po @@ -0,0 +1,52 @@ +# ADDON blockem +# Copyright (C) +# This file is distributed under the same license as the Friendica blockem addon package. +# +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: friendica\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-06-22 13:18+0200\n" +"PO-Revision-Date: 2014-07-08 11:43+0000\n" +"Last-Translator: Arian - Cazare Muncitori \n" +"Language-Team: Romanian (Romania) (http://www.transifex.com/projects/p/friendica/language/ro_RO/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ro_RO\n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" + +#: blockem.php:53 blockem.php:57 +msgid "\"Blockem\"" +msgstr "\"Blockem\"" + +#: blockem.php:61 +msgid "Comma separated profile URLS to block" +msgstr "Adresele URL de profil, de blocat, separate prin virgulă" + +#: blockem.php:65 +msgid "Save Settings" +msgstr "Salvare Configurări" + +#: blockem.php:78 +msgid "BLOCKEM Settings saved." +msgstr "Configurările BLOCKEM au fost salvate." + +#: blockem.php:142 +#, php-format +msgid "Blocked %s - Click to open/close" +msgstr "%s Blocate - Apăsați pentru a deschide/închide" + +#: blockem.php:197 +msgid "Unblock Author" +msgstr "Deblocare Autor" + +#: blockem.php:199 +msgid "Block Author" +msgstr "Blocare Autor" + +#: blockem.php:231 +msgid "blockem settings updated" +msgstr "Configurările blockem au fost actualizate" diff --git a/blockem/lang/ro/strings.php b/blockem/lang/ro/strings.php new file mode 100644 index 00000000..6fc8a094 --- /dev/null +++ b/blockem/lang/ro/strings.php @@ -0,0 +1,15 @@ +19)||(($n%100==0)&&($n!=0)))) { return 2; } else { return 1; } +}} +$a->strings['"Blockem"'] = '"Blockem"'; +$a->strings['Comma separated profile URLS to block'] = 'Adresele URL de profil, de blocat, separate prin virgulă'; +$a->strings['Save Settings'] = 'Salvare Configurări'; +$a->strings['BLOCKEM Settings saved.'] = 'Configurările BLOCKEM au fost salvate.'; +$a->strings['Blocked %s - Click to open/close'] = '%s Blocate - Apăsați pentru a deschide/închide'; +$a->strings['Unblock Author'] = 'Deblocare Autor'; +$a->strings['Block Author'] = 'Blocare Autor'; +$a->strings['blockem settings updated'] = 'Configurările blockem au fost actualizate'; diff --git a/blockem/lang/ru/messages.po b/blockem/lang/ru/messages.po new file mode 100644 index 00000000..22427327 --- /dev/null +++ b/blockem/lang/ru/messages.po @@ -0,0 +1,60 @@ +# ADDON blockem +# Copyright (C) +# This file is distributed under the same license as the Friendica blockem addon package. +# +# +# Translators: +# Alexander An , 2020 +# Stanislav N. , 2017-2018 +msgid "" +msgstr "" +"Project-Id-Version: friendica\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-08-17 10:23+0200\n" +"PO-Revision-Date: 2020-04-23 14:13+0000\n" +"Last-Translator: Alexander An \n" +"Language-Team: Russian (http://www.transifex.com/Friendica/friendica/language/ru/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ru\n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n" + +#: blockem.php:54 blockem.php:58 +msgid "Blockem" +msgstr "Blockem" + +#: blockem.php:62 +msgid "" +"Hides user's content by collapsing posts. Also replaces their avatar with " +"generic image." +msgstr "Скрыть контент пользователя. Также заменяет его аватар изображением по-умолчанию." + +#: blockem.php:63 +msgid "Comma separated profile URLS:" +msgstr "URL профилей, разделенные запятыми:" + +#: blockem.php:67 +msgid "Save Settings" +msgstr "Сохранить настройки" + +#: blockem.php:81 +msgid "BLOCKEM Settings saved." +msgstr "BLOCKEM Настройки сохранены." + +#: blockem.php:143 +#, php-format +msgid "Filtered user: %s" +msgstr "Отфильтрованный пользователь: %s" + +#: blockem.php:202 +msgid "Unblock Author" +msgstr "Разблокировать автора" + +#: blockem.php:204 +msgid "Block Author" +msgstr "Блокировать автора" + +#: blockem.php:244 +msgid "blockem settings updated" +msgstr "Настройки Blockem обновлены" diff --git a/blockem/lang/ru/strings.php b/blockem/lang/ru/strings.php new file mode 100644 index 00000000..ef586740 --- /dev/null +++ b/blockem/lang/ru/strings.php @@ -0,0 +1,16 @@ +=2 && $n%10<=4 && ($n%100<12 || $n%100>14)) { return 1; } else if ($n%10==0 || ($n%10>=5 && $n%10<=9) || ($n%100>=11 && $n%100<=14)) { return 2; } else { return 3; } +}} +$a->strings['Blockem'] = 'Blockem'; +$a->strings['Hides user\'s content by collapsing posts. Also replaces their avatar with generic image.'] = 'Скрыть контент пользователя. Также заменяет его аватар изображением по-умолчанию.'; +$a->strings['Comma separated profile URLS:'] = 'URL профилей, разделенные запятыми:'; +$a->strings['Save Settings'] = 'Сохранить настройки'; +$a->strings['BLOCKEM Settings saved.'] = 'BLOCKEM Настройки сохранены.'; +$a->strings['Filtered user: %s'] = 'Отфильтрованный пользователь: %s'; +$a->strings['Unblock Author'] = 'Разблокировать автора'; +$a->strings['Block Author'] = 'Блокировать автора'; +$a->strings['blockem settings updated'] = 'Настройки Blockem обновлены'; diff --git a/blockem/lang/sv/messages.po b/blockem/lang/sv/messages.po new file mode 100644 index 00000000..ede8ee94 --- /dev/null +++ b/blockem/lang/sv/messages.po @@ -0,0 +1,47 @@ +# ADDON blockem +# Copyright (C) +# This file is distributed under the same license as the Friendica blockem addon package. +# +# +# Translators: +# Bjoessi , 2019 +msgid "" +msgstr "" +"Project-Id-Version: friendica\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-11-21 19:13-0500\n" +"PO-Revision-Date: 2021-12-22 15:27+0000\n" +"Last-Translator: Transifex Bot <>\n" +"Language-Team: Swedish (http://www.transifex.com/Friendica/friendica/language/sv/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: sv\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: blockem.php:39 +msgid "" +"Hides user's content by collapsing posts. Also replaces their avatar with " +"generic image." +msgstr "Döljer användares inlägg genom sammanslagning nedåt. Användarens profilbild ersätts med en standardbild." + +#: blockem.php:40 +msgid "Comma separated profile URLS:" +msgstr "Kommaseparerade profiladresser:" + +#: blockem.php:45 +msgid "Blockem" +msgstr "BLOCKEM" + +#: blockem.php:120 +#, php-format +msgid "Filtered user: %s" +msgstr "Filtrerat på användare:%s" + +#: blockem.php:183 +msgid "Unblock Author" +msgstr "Avblockera författare" + +#: blockem.php:185 +msgid "Block Author" +msgstr "Blockera författare" diff --git a/blockem/lang/sv/strings.php b/blockem/lang/sv/strings.php new file mode 100644 index 00000000..724e2d23 --- /dev/null +++ b/blockem/lang/sv/strings.php @@ -0,0 +1,13 @@ +strings['Hides user\'s content by collapsing posts. Also replaces their avatar with generic image.'] = 'Döljer användares inlägg genom sammanslagning nedåt. Användarens profilbild ersätts med en standardbild.'; +$a->strings['Comma separated profile URLS:'] = 'Kommaseparerade profiladresser:'; +$a->strings['Blockem'] = 'BLOCKEM'; +$a->strings['Filtered user: %s'] = 'Filtrerat på användare:%s'; +$a->strings['Unblock Author'] = 'Avblockera författare'; +$a->strings['Block Author'] = 'Blockera författare'; diff --git a/blockem/lang/zh-cn/strings.php b/blockem/lang/zh-cn/strings.php new file mode 100644 index 00000000..3a3dfaeb --- /dev/null +++ b/blockem/lang/zh-cn/strings.php @@ -0,0 +1,10 @@ +strings["\"Blockem\" Settings"] = "「Blockem」配置"; +$a->strings["Comma separated profile URLS to block"] = "逗号分简介URL为栏"; +$a->strings["Submit"] = "提交"; +$a->strings["BLOCKEM Settings saved."] = "「Blockem」配置保存了。"; +$a->strings["Blocked %s - Click to open/close"] = "%s拦了-点击为开关"; +$a->strings["Unblock Author"] = "不拦作家"; +$a->strings["Block Author"] = "拦作家"; +$a->strings["blockem settings updated"] = "blockem设置更新了"; diff --git a/blockem/templates/settings.tpl b/blockem/templates/settings.tpl new file mode 100644 index 00000000..67398400 --- /dev/null +++ b/blockem/templates/settings.tpl @@ -0,0 +1 @@ +{{include file="field_textarea.tpl" field=$words}} diff --git a/bluesky/README.md b/bluesky/README.md deleted file mode 100644 index bf900fcd..00000000 --- a/bluesky/README.md +++ /dev/null @@ -1,9 +0,0 @@ -Bluesky Addon -============== - -This addon supports posting to and receiving posts from Bluesky. - -No setup is needed for the admins to make it work for their users. - -Bluesky itself is under development as well. It is planned to make it decentral. -The addon is prepared to support different servers. But it isn't enabled yet. \ No newline at end of file diff --git a/bluesky/bluesky.php b/bluesky/bluesky.php index dd56f9a6..f17f8ec1 100644 --- a/bluesky/bluesky.php +++ b/bluesky/bluesky.php @@ -6,21 +6,22 @@ * Author: Michael Vogel * * @todo - * Nice to have: - * - Probing for contacts + * Piece of cake? + * - Process facets + * - create facets + * + * Possible but less important: + * - Block, unblock, mute and unmute contacts + * + * Need inspiration: + * - alternate link for contacts + * - plink for posts * * Need more information: * - only fetch new posts + * - detect incoming reshares * - detect contact relations * - receive likes - * - follow contacts - * - unfollow contacts - * - * Possible but less important: - * - Block contacts - * - unblock contacts - * - mute contacts - * - unmute contacts */ use Friendica\Content\Text\BBCode; @@ -42,10 +43,8 @@ use Friendica\Network\HTTPClient\Client\HttpClientAccept; use Friendica\Network\HTTPClient\Client\HttpClientOptions; use Friendica\Protocol\Activity; use Friendica\Util\DateTimeFormat; -use Friendica\Util\Strings; -const BLUESKY_DEFAULT_POLL_INTERVAL = 10; // given in minutes -const BLUESKY_HOST = 'https://bsky.app'; // Hard wired until Bluesky will run on multiple systems +define('BLUESKY_DEFAULT_POLL_INTERVAL', 10); // given in minutes function bluesky_install() { @@ -65,7 +64,7 @@ function bluesky_install() // Hook::register('unblock', __FILE__, 'bluesky_unblock'); Hook::register('check_item_notification', __FILE__, 'bluesky_check_item_notification'); // Hook::register('probe_detect', __FILE__, 'bluesky_probe_detect'); - Hook::register('item_by_link', __FILE__, 'bluesky_item_by_link'); + // Hook::register('item_by_link', __FILE__, 'bluesky_item_by_link'); } function bluesky_load_config(ConfigFileManager $loader) @@ -84,41 +83,6 @@ function bluesky_check_item_notification(array &$notification_data) } } -function bluesky_item_by_link(array &$hookData) -{ - // Don't overwrite an existing result - if (isset($hookData['item_id'])) { - return; - } - - $token = bluesky_get_token($hookData['uid']); - if (empty($token)) { - return; - } - - if (!preg_match('#^' . BLUESKY_HOST . '/profile/(.+)/post/(.+)#', $hookData['uri'], $matches)) { - return; - } - - $did = bluesky_get_did($hookData['uid'], $matches[1]); - if (empty($did)) { - return; - } - - Logger::debug('Found bluesky post', ['url' => $hookData['uri'], 'handle' => $matches[1], 'did' => $did, 'cid' => $matches[2]]); - - $uri = 'at://' . $did . '/app.bsky.feed.post/' . $matches[2]; - - $uri = bluesky_fetch_missing_post($uri, $hookData['uid'], 0, true); - Logger::debug('Got post', ['profile' => $matches[1], 'cid' => $matches[2], 'result' => $uri]); - if (!empty($uri)) { - $item = Post::selectFirst(['id'], ['uri' => $uri, 'uid' => $hookData['uid']]); - if (!empty($item['id'])) { - $hookData['item_id'] = $item['id']; - } - } -} - function bluesky_settings(array &$data) { if (!DI::userSession()->getLocalUserId()) { @@ -177,7 +141,7 @@ function bluesky_settings_post(array &$b) if (!empty($host) && !empty($handle)) { if (empty($old_did) || $old_host != $host || $old_handle != $handle) { - DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'bluesky', 'did', bluesky_get_did(DI::userSession()->getLocalUserId(), DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'bluesky', 'handle'))); + DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'bluesky', 'did', bluesky_get_did(DI::userSession()->getLocalUserId())); } } else { DI::pConfig()->delete(DI::userSession()->getLocalUserId(), 'bluesky', 'did'); @@ -186,6 +150,7 @@ function bluesky_settings_post(array &$b) if (!empty($_POST['bluesky_password'])) { bluesky_create_token(DI::userSession()->getLocalUserId(), $_POST['bluesky_password']); } + } function bluesky_jot_nets(array &$jotnets_fields) @@ -369,7 +334,7 @@ function bluesky_create_activity(array $item, stdClass $parent = null) 'createdAt' => DateTimeFormat::utcNow(DateTimeFormat::ATOM), '$type' => 'app.bsky.feed.like' ]; - + $post = [ 'collection' => 'app.bsky.feed.like', 'repo' => $did, @@ -408,23 +373,15 @@ function bluesky_create_post(array $item, stdClass $root = null, stdClass $paren } $did = DI::pConfig()->get($uid, 'bluesky', 'did'); - $urls = bluesky_get_urls($item['body']); $msg = Plaintext::getPost($item, 300, false, BBCode::CONNECTORS); foreach ($msg['parts'] as $key => $part) { - - $facets = bluesky_get_facets($part, $urls); - $record = [ - 'text' => $facets['body'], + 'text' => $part, 'createdAt' => DateTimeFormat::utcNow(DateTimeFormat::ATOM), '$type' => 'app.bsky.feed.post' ]; - if (!empty($facets['facets'])) { - $record['facets'] = $facets['facets']; - } - if (!empty($root)) { $record['reply'] = ['root' => $root, 'parent' => $parent]; } @@ -455,63 +412,6 @@ function bluesky_create_post(array $item, stdClass $root = null, stdClass $paren } } -function bluesky_get_urls(string $body): array -{ - // Remove all hashtags and mentions - $body = preg_replace("/([#@!])\[url\=(.*?)\](.*?)\[\/url\]/ism", '', $body); - - $urls = []; - - // Search for pure links - if (preg_match_all("/\[url\](https?:.*?)\[\/url\]/ism", $body, $matches)) { - foreach ($matches[1] as $url) { - $urls[] = $url; - } - } - - // Search for links with descriptions - if (preg_match_all("/\[url\=(https?:.*?)\].*?\[\/url\]/ism", $body, $matches)) { - foreach ($matches[1] as $url) { - $urls[] = $url; - } - } - return $urls; -} - -function bluesky_get_facets(string $body, array $urls): array -{ - $facets = []; - - foreach ($urls as $url) { - $pos = strpos($body, $url); - if ($pos === false) { - continue; - } - if ($pos > 0) { - $prefix = substr($body, 0, $pos); - } else { - $prefix = ''; - } - $linktext = Strings::getStyledURL($url); - $body = $prefix . $linktext . substr($body, $pos + strlen($url)); - - $facet = new stdClass; - $facet->index = new stdClass; - $facet->index->byteEnd = $pos + strlen($linktext); - $facet->index->byteStart = $pos; - - $feature = new stdClass; - $feature->uri = $url; - $type = '$type'; - $feature->$type = 'app.bsky.richtext.facet#link'; - - $facet->features = [$feature]; - $facets[] = $facet; - } - - return ['facets' => $facets, 'body' => $body]; -} - function bluesky_add_embed(int $uid, array $msg, array $record): array { if (($msg['type'] != 'link') && !empty($msg['images'])) { @@ -584,55 +484,12 @@ function bluesky_fetch_timeline(int $uid) foreach (array_reverse($data->feed) as $entry) { bluesky_process_post($entry->post, $uid); - if (!empty($entry->reason)) { - bluesky_process_reason($entry->reason, bluesky_get_uri($entry->post), $uid); - } } // @todo Support paging // [cursor] => 1684670516000::bafyreidq3ilwslmlx72jf5vrk367xcc63s6lrhzlyup2bi3zwcvso6w2vi } -function bluesky_process_reason(stdClass $reason, string $uri, int $uid) -{ - $type = '$type'; - if ($reason->$type != 'app.bsky.feed.defs#reasonRepost') { - return; - } - - $contact = bluesky_get_contact($reason->by, $uid); - - $item = [ - 'network' => Protocol::BLUESKY, - 'uid' => $uid, - 'wall' => false, - 'uri' => $reason->by->did . '/app.bsky.feed.repost/' . $reason->indexedAt, - 'private' => Item::UNLISTED, - 'verb' => Activity::POST, - 'contact-id' => $contact['id'], - 'author-name' => $contact['name'], - 'author-link' => $contact['url'], - 'author-avatar' => $contact['avatar'], - 'verb' => Activity::ANNOUNCE, - 'body' => Activity::ANNOUNCE, - 'gravity' => Item::GRAVITY_ACTIVITY, - 'object-type' => Activity\ObjectType::NOTE, - 'thr-parent' => $uri, - ]; - - if (Post::exists(['uri' => $item['uri'], 'uid' => $uid])) { - return; - } - - $item['owner-name'] = $item['author-name']; - $item['owner-link'] = $item['author-link']; - $item['owner-avatar'] = $item['author-avatar']; - if (Item::insert($item)) { - $cdata = Contact::getPublicAndUserContactID($contact['id'], $uid); - Item::update(['post-reason' => Item::PR_ANNOUNCEMENT, 'causer-id' => $cdata['public']], ['uri' => $uri, 'uid' => $uid]); - } -} - function bluesky_process_post(stdClass $post, int $uid): int { $uri = bluesky_get_uri($post); @@ -655,10 +512,6 @@ function bluesky_process_post(stdClass $post, int $uid): int function bluesky_get_header(stdClass $post, string $uri, int $uid): array { - $parts = bluesky_get_uri_parts($uri); - if (empty($post->author)) { - return []; - } $contact = bluesky_get_contact($post->author, $uid); $item = [ 'network' => Protocol::BLUESKY, @@ -672,7 +525,7 @@ function bluesky_get_header(stdClass $post, string $uri, int $uid): array 'author-name' => $contact['name'], 'author-link' => $contact['url'], 'author-avatar' => $contact['avatar'], - 'plink' => $contact['alias'] . '/post/' . $parts->rkey, + // 'plink' => '', @todo Path to a web representation ]; $item['uri-id'] = ItemURI::getIdByURI($uri); @@ -687,59 +540,22 @@ function bluesky_get_content(array $item, stdClass $record, int $uid): array { if (!empty($record->reply)) { $item['parent-uri'] = bluesky_get_uri($record->reply->root); - $item['parent-uri'] = bluesky_fetch_missing_post($item['parent-uri'], $uid, $item['contact-id']); + bluesky_fetch_missing_post($item['parent-uri'], $uid); $item['thr-parent'] = bluesky_get_uri($record->reply->parent); - $item['thr-parent'] = bluesky_fetch_missing_post($item['thr-parent'], $uid, $item['contact-id']); + bluesky_fetch_missing_post($item['thr-parent'], $uid); } - $item['body'] = bluesky_get_text($record, $uid); + $body = $record->text; + + if (!empty($record->facets)) { + // @todo add Links + } + + $item['body'] = $body; $item['created'] = DateTimeFormat::utc($record->createdAt, DateTimeFormat::MYSQL); return $item; } -function bluesky_get_text(stdClass $record, int $uid): string -{ - $text = $record->text; - - if (empty($record->facets)) { - return $text; - } - - $facets = []; - foreach ($record->facets as $facet) { - $facets[$facet->index->byteStart] = $facet; - } - krsort($facets); - - foreach ($facets as $facet) { - $prefix = substr($text, 0, $facet->index->byteStart); - $linktext = substr($text, $facet->index->byteStart, $facet->index->byteEnd - $facet->index->byteStart); - $suffix = substr($text, $facet->index->byteEnd); - - $url = ''; - - foreach ($facet->features as $feature) { - if (!empty($feature->uri)) { - $url = $feature->uri; - } - if (!empty($feature->did)) { - $contact = Contact::selectFirst(['id'], ['nurl' => $feature->did, 'uid' => [0, $uid]]); - if (!empty($contact['id'])) { - $url = DI::baseUrl() . '/contact/' . $contact['id']; - if (substr($linktext, 0, 1) == '@') { - $prefix .= '@'; - $linktext = substr($linktext, 1); - } - } - } - } - if (!empty($url)) { - $text = $prefix . '[url=' . $url . ']' . $linktext . '[/url]' . $suffix; - } - } - return $text; -} - function bluesky_add_media(stdClass $embed, array $item): array { if (!empty($embed->images)) { @@ -754,8 +570,7 @@ function bluesky_add_media(stdClass $embed, array $item): array Post\Media::insert($media); } } elseif (!empty($embed->external)) { - $media = [ - 'uri-id' => $item['uri-id'], + $media = ['uri-id' => $item['uri-id'], 'type' => Post\Media::HTML, 'url' => $embed->external->uri, 'name' => $embed->external->title, @@ -767,17 +582,15 @@ function bluesky_add_media(stdClass $embed, array $item): array $shared = Post::selectFirst(['uri-id'], ['uri' => $uri, 'uid' => $item['uid']]); if (empty($shared)) { $shared = bluesky_get_header($embed->record, $uri, 0); - if (!empty($shared)) { - $shared = bluesky_get_content($shared, $embed->record->value, $item['uid']); + $shared = bluesky_get_content($shared, $embed->record->value, $item['uid']); - if (!empty($embed->record->embeds)) { - foreach ($embed->record->embeds as $single) { - $shared = bluesky_add_media($single, $shared); - } + if (!empty($embed->record->embeds)) { + foreach ($embed->record->embeds as $single) { + $shared = bluesky_add_media($single, $shared); } - $id = Item::insert($shared); - $shared = Post::selectFirst(['uri-id'], ['id' => $id]); } + $id = Item::insert($shared); + $shared = Post::selectFirst(['uri-id'], ['id' => $id]); } if (!empty($shared)) { $item['quote-uri-id'] = $shared['uri-id']; @@ -831,54 +644,30 @@ function bluesky_get_uri_parts(string $uri): ?stdClass return $class; } -function bluesky_fetch_missing_post(string $uri, int $uid, int $causer, bool $original = false): string +function bluesky_fetch_missing_post(string $uri, int $uid) { if (Post::exists(['uri' => $uri, 'uid' => [$uid, 0]])) { Logger::debug('Post exists', ['uri' => $uri]); - return $uri; - } - - $reply = Post::selectFirst(['uri'], ['extid' => $uri, 'uid' => [$uid, 0]]); - if (!empty($reply['uri'])) { - return $reply['uri']; + return; } Logger::debug('Fetch missing post', ['uri' => $uri]); - if (!$original) { - $class = bluesky_get_uri_class($uri); - $fetch_uri = $class->uri; - } else { - $fetch_uri = $uri; - } - - $data = bluesky_get($uid, '/xrpc/app.bsky.feed.getPosts?uris=' . urlencode($fetch_uri), HttpClientAccept::JSON, [HttpClientOptions::HEADERS => ['Authorization' => ['Bearer ' . bluesky_get_token($uid)]]]); + $class = bluesky_get_uri_class($uri); + + $data = bluesky_get($uid, '/xrpc/app.bsky.feed.getPosts?uris=' . $class->uri, HttpClientAccept::JSON, [HttpClientOptions::HEADERS => ['Authorization' => ['Bearer ' . bluesky_get_token($uid)]]]); if (empty($data)) { - return ''; - } - - if ($causer != 0) { - $cdata = Contact::getPublicAndUserContactID($causer, $uid); + return; } foreach ($data->posts as $post) { - $uri = bluesky_get_uri($post); $item = bluesky_get_header($post, $uri, $uid); $item = bluesky_get_content($item, $post->record, $uid); - - $item['post-reason'] = Item::PR_FETCHED; - - if (!empty($cdata['public'])) { - $item['causer-id'] = $cdata['public']; - } - if (!empty($post->embed)) { $item = bluesky_add_media($post->embed, $item); } $id = Item::insert($item); Logger::debug('Stored item', ['id' => $id, 'uri' => $uri]); } - - return $uri; } function bluesky_get_contact(stdClass $author, int $uid): array @@ -886,10 +675,9 @@ function bluesky_get_contact(stdClass $author, int $uid): array $condition = ['network' => Protocol::BLUESKY, 'uid' => $uid, 'url' => $author->did]; $fields = [ - 'alias' => BLUESKY_HOST . '/profile/' . $author->handle, - 'name' => $author->displayName, - 'nick' => $author->handle, - 'addr' => $author->handle, + 'name' => $author->displayName, + 'nick' => $author->handle, + 'addr' => $author->handle, ]; $contact = Contact::selectFirst([], $condition); @@ -898,7 +686,7 @@ function bluesky_get_contact(stdClass $author, int $uid): array $cid = bluesky_insert_contact($author, $uid); } else { $cid = $contact['id']; - if ($fields['alias'] != $contact['alias'] || $fields['name'] != $contact['name'] || $fields['nick'] != $contact['nick'] || $fields['addr'] != $contact['addr']) { + if ($fields['name'] != $contact['name'] || $fields['nick'] != $contact['nick'] || $fields['addr'] != $contact['addr']) { Contact::update($fields, ['id' => $cid]); } } @@ -910,7 +698,7 @@ function bluesky_get_contact(stdClass $author, int $uid): array $pcid = bluesky_insert_contact($author, 0); } else { $pcid = $contact['id']; - if ($fields['alias'] != $contact['alias'] || $fields['name'] != $contact['name'] || $fields['nick'] != $contact['nick'] || $fields['addr'] != $contact['addr']) { + if ($fields['name'] != $contact['name'] || $fields['nick'] != $contact['nick'] || $fields['addr'] != $contact['addr']) { Contact::update($fields, ['id' => $pcid]); } } @@ -938,7 +726,7 @@ function bluesky_insert_contact(stdClass $author, int $uid) 'pending' => false, 'url' => $author->did, 'nurl' => $author->did, - 'alias' => BLUESKY_HOST . '/profile/' . $author->handle, + // 'alias' => '', @todo Path to a web representation 'name' => $author->displayName, 'nick' => $author->handle, 'addr' => $author->handle, @@ -954,17 +742,13 @@ function bluesky_update_contact(stdClass $author, int $uid, int $cid, int $pcid) } $fields = [ - 'alias' => BLUESKY_HOST . '/profile/' . $data->handle, 'name' => $data->displayName, 'nick' => $data->handle, 'addr' => $data->handle, + 'about' => HTML::toBBCode($data->description), 'updated' => DateTimeFormat::utcNow(DateTimeFormat::MYSQL), ]; - if (!empty($data->description)) { - $fields['about'] = HTML::toBBCode($data->description); - } - if (!empty($data->banner)) { $fields['header'] = $data->banner; } @@ -973,9 +757,9 @@ function bluesky_update_contact(stdClass $author, int $uid, int $cid, int $pcid) Contact::update($fields, ['id' => $pcid]); } -function bluesky_get_did(int $uid, string $handle): string +function bluesky_get_did(int $uid): string { - $data = bluesky_get($uid, '/xrpc/com.atproto.identity.resolveHandle?handle=' . $handle); + $data = bluesky_get($uid, '/xrpc/com.atproto.identity.resolveHandle?handle=' . DI::pConfig()->get($uid, 'bluesky', 'handle')); if (empty($data)) { return ''; } diff --git a/mailstream/lang/hu/messages.po b/mailstream/lang/hu/messages.po index 66d09299..3302564d 100644 --- a/mailstream/lang/hu/messages.po +++ b/mailstream/lang/hu/messages.po @@ -4,15 +4,15 @@ # # # Translators: -# Balázs Úr, 2020-2021,2023 +# Balázs Úr, 2020-2021 msgid "" msgstr "" "Project-Id-Version: friendica\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-11-21 19:15-0500\n" "PO-Revision-Date: 2014-06-23 09:54+0000\n" -"Last-Translator: Balázs Úr, 2020-2021,2023\n" -"Language-Team: Hungarian (http://app.transifex.com/Friendica/friendica/language/hu/)\n" +"Last-Translator: Balázs Úr, 2020-2021\n" +"Language-Team: Hungarian (http://www.transifex.com/Friendica/friendica/language/hu/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -31,72 +31,68 @@ msgstr "E-mail-cím, ahonnan úgy tűnik, hogy a folyam elemei származnak." msgid "Save Settings" msgstr "Beállítások mentése" -#: mailstream.php:311 +#: mailstream.php:301 msgid "Re:" msgstr "Vá:" -#: mailstream.php:324 mailstream.php:327 +#: mailstream.php:314 mailstream.php:317 msgid "Friendica post" msgstr "Friendica-bejegyzés" -#: mailstream.php:330 +#: mailstream.php:320 msgid "Diaspora post" msgstr "Diaspora-bejegyzés" -#: mailstream.php:340 +#: mailstream.php:330 msgid "Feed item" msgstr "Hírforráselem" -#: mailstream.php:343 +#: mailstream.php:333 msgid "Email" msgstr "E-mail" -#: mailstream.php:345 +#: mailstream.php:335 msgid "Friendica Item" msgstr "Friendica-elem" -#: mailstream.php:419 +#: mailstream.php:404 msgid "Upstream" msgstr "Távoli" -#: mailstream.php:420 -msgid "URI" -msgstr "URI" - -#: mailstream.php:421 +#: mailstream.php:405 msgid "Local" msgstr "Helyi" -#: mailstream.php:499 +#: mailstream.php:481 msgid "Enabled" msgstr "Engedélyezve" -#: mailstream.php:504 +#: mailstream.php:486 msgid "Email Address" msgstr "E-mail-cím" -#: mailstream.php:506 +#: mailstream.php:488 msgid "Leave blank to use your account email address" msgstr "Hagyja üresen a fiókja e-mail-címének használatához" -#: mailstream.php:510 +#: mailstream.php:492 msgid "Exclude Likes" msgstr "Kedvelések kizárása" -#: mailstream.php:512 +#: mailstream.php:494 msgid "Check this to omit mailing \"Like\" notifications" msgstr "Jelölje be ezt a „Tetszik” értesítések elküldésének kihagyásához" -#: mailstream.php:516 +#: mailstream.php:498 msgid "Attach Images" msgstr "Képek csatolása" -#: mailstream.php:518 +#: mailstream.php:500 msgid "" "Download images in posts and attach them to the email. Useful for reading " "email while offline." msgstr "Képek letöltése a bejegyzésekből és csatolás az e-mailhez. Hasznos az e-mailek kapcsolat nélküli olvasásakor." -#: mailstream.php:525 +#: mailstream.php:507 msgid "Mail Stream Settings" msgstr "Levelezőfolyam beállításai" diff --git a/mailstream/lang/hu/strings.php b/mailstream/lang/hu/strings.php index 5b1e5a51..5a7383bd 100644 --- a/mailstream/lang/hu/strings.php +++ b/mailstream/lang/hu/strings.php @@ -15,7 +15,6 @@ $a->strings['Feed item'] = 'Hírforráselem'; $a->strings['Email'] = 'E-mail'; $a->strings['Friendica Item'] = 'Friendica-elem'; $a->strings['Upstream'] = 'Távoli'; -$a->strings['URI'] = 'URI'; $a->strings['Local'] = 'Helyi'; $a->strings['Enabled'] = 'Engedélyezve'; $a->strings['Email Address'] = 'E-mail-cím'; diff --git a/mailstream/mailstream.php b/mailstream/mailstream.php index 56e7fa13..f53d4fe9 100644 --- a/mailstream/mailstream.php +++ b/mailstream/mailstream.php @@ -214,12 +214,7 @@ function mailstream_do_images(array &$item, array &$attachments) } $cookiejar = tempnam(System::getTempPath(), 'cookiejar-mailstream-'); - try { - $curlResult = DI::httpClient()->fetchFull($url, HttpClientAccept::DEFAULT, 0, $cookiejar); - } catch (InvalidArgumentException $e) { - Logger::error('mailstream_do_images exception fetching url', ['url' => $url, 'item_id' => $item['id']]); - continue; - } + $curlResult = DI::httpClient()->fetchFull($url, HttpClientAccept::DEFAULT, 0, $cookiejar); $attachments[$url] = [ 'data' => $curlResult->getBody(), 'guid' => hash('crc32', $url), diff --git a/piwik/lang/hu/messages.po b/piwik/lang/hu/messages.po index 62644161..cbaa8df2 100644 --- a/piwik/lang/hu/messages.po +++ b/piwik/lang/hu/messages.po @@ -4,28 +4,28 @@ # # # Translators: -# Balázs Úr, 2020-2021,2023 +# Balázs Úr, 2020-2021 msgid "" msgstr "" "Project-Id-Version: friendica\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-05-01 07:39+0200\n" +"POT-Creation-Date: 2021-02-01 18:15+0100\n" "PO-Revision-Date: 2014-06-23 11:18+0000\n" -"Last-Translator: Balázs Úr, 2020-2021,2023\n" -"Language-Team: Hungarian (http://app.transifex.com/Friendica/friendica/language/hu/)\n" +"Last-Translator: Balázs Úr, 2020-2021\n" +"Language-Team: Hungarian (http://www.transifex.com/Friendica/friendica/language/hu/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: piwik.php:96 +#: piwik.php:87 msgid "" "This website is tracked using the Matomo" " analytics tool." msgstr "Ez a weboldal a Matomo analitikai eszköz használatával van követve." -#: piwik.php:99 +#: piwik.php:90 #, php-format msgid "" "If you do not want that your visits are logged in this way you (opt-out)." msgstr "Ha nem szeretné, hogy a látogatásai ilyen módon naplózva legyenek, akkor beállíthat egy sütit annak megakadályozásához, hogy a Matomo vagy a Piwik kövesse az oldal további meglátogatásait (lemondás)." -#: piwik.php:108 +#: piwik.php:97 msgid "Save Settings" msgstr "Beállítások mentése" -#: piwik.php:109 +#: piwik.php:98 msgid "Matomo (Piwik) Base URL" msgstr "Matomo (Piwik) alap URL" -#: piwik.php:109 +#: piwik.php:98 msgid "" "Absolute path to your Matomo (Piwik) installation. (without protocol " "(http/s), with trailing slash)" msgstr "Abszolút útvonal a Matomo (Piwik) telepítéséhez (http vagy https protokoll nélkül, de lezáró perjellel)." -#: piwik.php:110 +#: piwik.php:99 msgid "Site ID" msgstr "Oldalazonosító" -#: piwik.php:111 +#: piwik.php:100 msgid "Show opt-out cookie link?" msgstr "Megjeleníti a lemondó süti hivatkozását?" -#: piwik.php:112 +#: piwik.php:101 msgid "Asynchronous tracking" msgstr "Aszinkron követés" - -#: piwik.php:113 -msgid "Shortcut path to the script ('/js/' instead of '/piwik.js')" -msgstr "A parancsfájl rövidített útvonala („/js/” a „/piwik.js” helyett)" diff --git a/piwik/lang/hu/strings.php b/piwik/lang/hu/strings.php index 4b249396..8eff504e 100644 --- a/piwik/lang/hu/strings.php +++ b/piwik/lang/hu/strings.php @@ -13,4 +13,3 @@ $a->strings['Absolute path to your Matomo (Piwik) installation. (without protoco $a->strings['Site ID'] = 'Oldalazonosító'; $a->strings['Show opt-out cookie link?'] = 'Megjeleníti a lemondó süti hivatkozását?'; $a->strings['Asynchronous tracking'] = 'Aszinkron követés'; -$a->strings['Shortcut path to the script (\'/js/\' instead of \'/piwik.js\')'] = 'A parancsfájl rövidített útvonala („/js/” a „/piwik.js” helyett)'; diff --git a/tumblr/lang/hu/messages.po b/tumblr/lang/hu/messages.po index 3c8eb396..c3920576 100644 --- a/tumblr/lang/hu/messages.po +++ b/tumblr/lang/hu/messages.po @@ -4,86 +4,69 @@ # # # Translators: -# Balázs Úr, 2020-2021,2023 +# Balázs Úr, 2020-2021 msgid "" msgstr "" "Project-Id-Version: friendica\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-29 06:56+0000\n" +"POT-Creation-Date: 2021-11-21 19:17-0500\n" "PO-Revision-Date: 2014-06-23 12:58+0000\n" -"Last-Translator: Balázs Úr, 2020-2021,2023\n" -"Language-Team: Hungarian (http://app.transifex.com/Friendica/friendica/language/hu/)\n" +"Last-Translator: Balázs Úr, 2020-2021\n" +"Language-Team: Hungarian (http://www.transifex.com/Friendica/friendica/language/hu/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: tumblr.php:243 +#: tumblr.php:39 msgid "Permission denied." msgstr "Engedély megtagadva." -#: tumblr.php:296 +#: tumblr.php:69 msgid "Save Settings" msgstr "Beállítások mentése" -#: tumblr.php:297 +#: tumblr.php:71 msgid "Consumer Key" msgstr "Felhasználói kulcs" -#: tumblr.php:298 +#: tumblr.php:72 msgid "Consumer Secret" msgstr "Felhasználói titok" -#: tumblr.php:299 -msgid "Maximum tags" -msgstr "Legtöbb címke" +#: tumblr.php:177 +msgid "You are now authenticated to tumblr." +msgstr "Most már hitelesítve van a Tumblr-hez." -#: tumblr.php:299 -msgid "" -"Maximum number of tags that a user can follow. Enter 0 to deactivate the " -"feature." -msgstr "A címkék legnagyobb száma, amit egy felhasználó követhet. Adjon meg 0 értéket a funkció kikapcsolásához." +#: tumblr.php:178 +msgid "return to the connector page" +msgstr "visszatérés a csatlakozó oldalára" -#: tumblr.php:336 +#: tumblr.php:194 +msgid "Post to Tumblr" +msgstr "Beküldése a Tumblr-re" + +#: tumblr.php:225 msgid "Post to page:" msgstr "Beküldés az oldalra:" -#: tumblr.php:342 +#: tumblr.php:231 msgid "(Re-)Authenticate your tumblr page" msgstr "A Tumblr-oldal (újra)hitelesítése" -#: tumblr.php:343 +#: tumblr.php:232 msgid "You are not authenticated to tumblr" msgstr "Nincs hitelesítve van a Tumblr-hez" -#: tumblr.php:348 +#: tumblr.php:237 msgid "Enable Tumblr Post Addon" msgstr "A Tumblr-beküldő bővítmény engedélyezése" -#: tumblr.php:349 +#: tumblr.php:238 msgid "Post to Tumblr by default" msgstr "Beküldés a Tumblr-re alapértelmezetten" -#: tumblr.php:350 -msgid "Import the remote timeline" -msgstr "A távoli idővonal importálása" - -#: tumblr.php:351 -msgid "Subscribed tags" -msgstr "Feliratkozott címkék" - -#: tumblr.php:351 -#, php-format -msgid "" -"Comma separated list of up to %d tags that will be imported additionally to " -"the timeline" -msgstr "Legfeljebb %d címke vesszővel elválasztott listája, amelyek szintén importálásra kerülnek az idővonalon felül" - -#: tumblr.php:357 -msgid "Tumblr Import/Export" -msgstr "Tumblr importálás és exportálás" - -#: tumblr.php:375 -msgid "Post to Tumblr" -msgstr "Beküldése a Tumblr-re" +#: tumblr.php:244 +msgid "Tumblr Export" +msgstr "Tumblr exportálás" diff --git a/tumblr/lang/hu/strings.php b/tumblr/lang/hu/strings.php index a3838b4a..cd3e3e19 100644 --- a/tumblr/lang/hu/strings.php +++ b/tumblr/lang/hu/strings.php @@ -9,15 +9,12 @@ $a->strings['Permission denied.'] = 'Engedély megtagadva.'; $a->strings['Save Settings'] = 'Beállítások mentése'; $a->strings['Consumer Key'] = 'Felhasználói kulcs'; $a->strings['Consumer Secret'] = 'Felhasználói titok'; -$a->strings['Maximum tags'] = 'Legtöbb címke'; -$a->strings['Maximum number of tags that a user can follow. Enter 0 to deactivate the feature.'] = 'A címkék legnagyobb száma, amit egy felhasználó követhet. Adjon meg 0 értéket a funkció kikapcsolásához.'; +$a->strings['You are now authenticated to tumblr.'] = 'Most már hitelesítve van a Tumblr-hez.'; +$a->strings['return to the connector page'] = 'visszatérés a csatlakozó oldalára'; +$a->strings['Post to Tumblr'] = 'Beküldése a Tumblr-re'; $a->strings['Post to page:'] = 'Beküldés az oldalra:'; $a->strings['(Re-)Authenticate your tumblr page'] = 'A Tumblr-oldal (újra)hitelesítése'; $a->strings['You are not authenticated to tumblr'] = 'Nincs hitelesítve van a Tumblr-hez'; $a->strings['Enable Tumblr Post Addon'] = 'A Tumblr-beküldő bővítmény engedélyezése'; $a->strings['Post to Tumblr by default'] = 'Beküldés a Tumblr-re alapértelmezetten'; -$a->strings['Import the remote timeline'] = 'A távoli idővonal importálása'; -$a->strings['Subscribed tags'] = 'Feliratkozott címkék'; -$a->strings['Comma separated list of up to %d tags that will be imported additionally to the timeline'] = 'Legfeljebb %d címke vesszővel elválasztott listája, amelyek szintén importálásra kerülnek az idővonalon felül'; -$a->strings['Tumblr Import/Export'] = 'Tumblr importálás és exportálás'; -$a->strings['Post to Tumblr'] = 'Beküldése a Tumblr-re'; +$a->strings['Tumblr Export'] = 'Tumblr exportálás';