Compare commits

..

No commits in common. "9832fa6c45007e76334755ed79e8f34e28edd920" and "435a993502b7672dc508ff2f67027bfde0c70bae" have entirely different histories.

51 changed files with 1608 additions and 371 deletions

230
blockem/blockem.php Normal file
View file

@ -0,0 +1,230 @@
<?php
/**
* Name: blockem
* Description: Allows users to hide content by collapsing posts and replies.
* Version: 1.0
* Author: Mike Macgirvin <http://macgirvin.com/profile/mike>
* Author: Roland Haeder <https://f.haeder.net/roland>
* 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
<script>
function blockemBlock(author) {
$.get('blockem?block=' +author, function(data) {
location.reload(true);
});
}
function blockemUnblock(author) {
$.get('blockem?unblock=' +author, function(data) {
location.reload(true);
});
}
</script>
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();
}

View file

@ -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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\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 ""

View file

@ -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 <abidin24@tutanota.com>, 2021
# Farida Khalaf <faridakhalaf@hotmail.com>, 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 <abidin24@tutanota.com>\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 "احجبه<br>"
#: 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 "احجب المدون"

View file

@ -0,0 +1,14 @@
<?php
if(! function_exists("string_plural_select_ar")) {
function string_plural_select_ar($n){
$n = intval($n);
if ($n==0) { return 0; } else if ($n==1) { return 1; } else if ($n==2) { return 2; } else if ($n%100>=3 && $n%100<=10) { return 3; } else if ($n%100>=11 && $n%100<=99) { return 4; } else { return 5; }
}}
$a->strings['Blockem'] = 'احجبه<br>';
$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'] = 'احجب المدون';

View file

@ -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 <friendica@tutanota.com>, 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 <friendica@tutanota.com>\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"

View file

@ -0,0 +1,16 @@
<?php
if(! function_exists("string_plural_select_ca")) {
function string_plural_select_ca($n){
$n = intval($n);
return intval($n != 1);
}}
$a->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';

View file

@ -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 <msupler@gmail.com>, 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"

View file

@ -0,0 +1,16 @@
<?php
if(! function_exists("string_plural_select_cs")) {
function string_plural_select_cs($n){
$n = intval($n);
if (($n == 1 && $n % 1 == 0)) { return 0; } else if (($n >= 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';

View file

@ -0,0 +1,47 @@
# ADDON blockem
# Copyright (C)
# This file is distributed under the same license as the Friendica blockem addon package.
#
#
# Translators:
# Anton <dev@atjn.dk>, 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 <dev@atjn.dk>, 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"

View file

@ -0,0 +1,13 @@
<?php
if(! function_exists("string_plural_select_da_dk")) {
function string_plural_select_da_dk($n){
$n = intval($n);
return intval($n != 1);
}}
$a->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';

View file

@ -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 <tobias.diekershoff@gmx.net>, 2014
# Tobias Diekershoff <tobias.diekershoff@gmx.net>, 2018
# Ulf Rompe <transifex.com@rompe.org>, 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"

View file

@ -0,0 +1,13 @@
<?php
if(! function_exists("string_plural_select_de")) {
function string_plural_select_de($n){
$n = intval($n);
return intval($n != 1);
}}
$a->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';

View file

@ -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 <andy@hubup.pro>, 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 <andy@hubup.pro>\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"

View file

@ -0,0 +1,16 @@
<?php
if(! function_exists("string_plural_select_en_gb")) {
function string_plural_select_en_gb($n){
$n = intval($n);
return intval($n != 1);
}}
$a->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';

View file

@ -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 <adam@isurf.ca>, 2018
# Andy H3 <andy@hubup.pro>, 2018
# R C <miqrogroove@gmail.com>, 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 <miqrogroove@gmail.com>\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"

View file

@ -0,0 +1,16 @@
<?php
if(! function_exists("string_plural_select_en_us")) {
function string_plural_select_en_us($n){
$n = intval($n);
return intval($n != 1);
}}
$a->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';

View file

@ -0,0 +1,10 @@
<?php
$a->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";

View file

@ -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 <javierruizo@hotmail.com>, 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 <javierruizo@hotmail.com>\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"

View file

@ -0,0 +1,14 @@
<?php
if(! function_exists("string_plural_select_es")) {
function string_plural_select_es($n){
$n = intval($n);
return intval($n != 1);
}}
$a->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';

View file

@ -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"

View file

@ -0,0 +1,15 @@
<?php
if(! function_exists("string_plural_select_fi_fi")) {
function string_plural_select_fi_fi($n){
$n = intval($n);
return intval($n != 1);
}}
$a->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';

View file

@ -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 <hypolite@mrpetovan.com>, 2016
# Marie Olive <lacellule101@gmail.com>, 2018
# StefOfficiel <pichard.stephane@free.fr>, 2015
# Vladimir Núñez <lapoubelle111@gmail.com>, 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 <lapoubelle111@gmail.com>, 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"

View file

@ -0,0 +1,13 @@
<?php
if(! function_exists("string_plural_select_fr")) {
function string_plural_select_fr($n){
$n = intval($n);
if (($n == 0 || $n == 1)) { return 0; } else if ($n != 0 && $n % 1000000 == 0) { return 1; } else { return 2; }
}}
$a->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';

View file

@ -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"

View file

@ -0,0 +1,13 @@
<?php
if(! function_exists("string_plural_select_hu")) {
function string_plural_select_hu($n){
$n = intval($n);
return intval($n != 1);
}}
$a->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';

View file

@ -0,0 +1,10 @@
<?php
$a->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"] = "";

View file

@ -0,0 +1,59 @@
# ADDON blockem
# Copyright (C)
# This file is distributed under the same license as the Friendica blockem addon package.
#
#
# Translators:
# fabrixxm <fabrix.xm@gmail.com>, 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 <fabrix.xm@gmail.com>\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."

View file

@ -0,0 +1,16 @@
<?php
if(! function_exists("string_plural_select_it")) {
function string_plural_select_it($n){
$n = intval($n);
return intval($n != 1);
}}
$a->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.';

View file

@ -0,0 +1,10 @@
<?php
$a->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"] = "";

View file

@ -0,0 +1,60 @@
# ADDON blockem
# Copyright (C)
# This file is distributed under the same license as the Friendica blockem addon package.
#
#
# Translators:
# AgnesElisa <agneselisa@disroot.org>, 2018
# Jeroen De Meerleer <me@jeroened.be>, 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 <me@jeroened.be>\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"

View file

@ -0,0 +1,16 @@
<?php
if(! function_exists("string_plural_select_nl")) {
function string_plural_select_nl($n){
$n = intval($n);
return intval($n != 1);
}}
$a->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';

View file

@ -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"

View file

@ -0,0 +1,13 @@
<?php
if(! function_exists("string_plural_select_pl")) {
function string_plural_select_pl($n){
$n = intval($n);
if ($n==1) { return 0; } else if (($n%10>=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';

View file

@ -0,0 +1,10 @@
<?php
$a->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";

View file

@ -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 <arianserv@gmail.com>\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"

View file

@ -0,0 +1,15 @@
<?php
if(! function_exists("string_plural_select_ro")) {
function string_plural_select_ro($n){
$n = intval($n);
if ($n==1) { return 0; } else if ((($n%100>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';

View file

@ -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 <ravnina@gmail.com>, 2020
# Stanislav N. <pztrn@pztrn.name>, 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 <ravnina@gmail.com>\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 обновлены"

View file

@ -0,0 +1,16 @@
<?php
if(! function_exists("string_plural_select_ru")) {
function string_plural_select_ru($n){
$n = intval($n);
if ($n%10==1 && $n%100!=11) { return 0; } else if ($n%10>=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 обновлены';

View file

@ -0,0 +1,47 @@
# ADDON blockem
# Copyright (C)
# This file is distributed under the same license as the Friendica blockem addon package.
#
#
# Translators:
# Bjoessi <torbjorn.andersson@syte.se>, 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"

View file

@ -0,0 +1,13 @@
<?php
if(! function_exists("string_plural_select_sv")) {
function string_plural_select_sv($n){
$n = intval($n);
return intval($n != 1);
}}
$a->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';

View file

@ -0,0 +1,10 @@
<?php
$a->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设置更新了";

View file

@ -0,0 +1 @@
{{include file="field_textarea.tpl" field=$words}}

View file

@ -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.

View file

@ -6,21 +6,22 @@
* Author: Michael Vogel <https://pirati.ca/profile/heluecht>
*
* @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)
@ -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,7 +582,6 @@ 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']);
if (!empty($embed->record->embeds)) {
@ -778,7 +592,6 @@ function bluesky_add_media(stdClass $embed, array $item): array
$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)]]]);
$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,7 +675,6 @@ 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,
@ -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 '';
}

View file

@ -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"

View file

@ -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';

View file

@ -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;
}
$attachments[$url] = [
'data' => $curlResult->getBody(),
'guid' => hash('crc32', $url),

View file

@ -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 <a href='http://www.matomo.org'>Matomo</a>"
" analytics tool."
msgstr "Ez a weboldal a <a href='http://www.matomo.org'>Matomo</a> 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 <a "
@ -33,32 +33,28 @@ msgid ""
"visits of the site</a> (opt-out)."
msgstr "Ha nem szeretné, hogy a látogatásai ilyen módon naplózva legyenek, akkor <a href='%s'>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</a> (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)"

View file

@ -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)';

View file

@ -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"

View file

@ -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';