diff --git a/nitter.php b/nitter.php index f5a1eb6..b6630b7 100644 --- a/nitter.php +++ b/nitter.php @@ -2,7 +2,7 @@ /* * Name: nitter * Description: Replaces links to twitter.com to a nitter server in all displays of postings on a node. - * Version: 1.0 + * Version: 1.1 * Author: Tobias Diekershoff * * Copyright (c) 2020 Tobias Diekershoff @@ -23,19 +23,43 @@ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +use Friendica\App; use Friendica\Core\Addon; +use Friendica\Core\Renderer; use Friendica\DI; function nitter_install() { Addon::registerHook ('prepare_body', 'addon/nitter/nitter.php', 'nitter_render'); } +/* Handle the send data from the admin settings + */ +function nitter_addon_admin_post(App $a) +{ + $nitterserver = trim($_POST['nitterserver']); + DI::config()->set('nitter', 'server', $nitterserver); +} + +/* Hook into the admin settings to let the admin choose a + * nitter server to use for the replacement. + */ +function nitter_addon_admin(App $a, &$o) +{ + $nitterserver = DI::config()->get('nitter', 'server'); + $t = Renderer::getMarkupTemplate("admin.tpl", "addon/nitter/"); + $o = Renderer::replaceMacros($t, [ + '$settingdescription' => DI::l10n()->t('Which nitter server shall be used for the replacements in the post bodies? Use the URL with servername and protocol. See %s for a list of available public Nitter servers.', "https://github.com/zedeus/nitter/wiki/Instances"), + '$nitterserver' => ["nitterserver", DI::l10n()->t('Nitter server'), $nitterserver, 'http://example.com'], + '$submit' => DI::l10n()->t('Save Settings'), + ]); +} + /* * replace "twitter.com" with "nitter.net" */ function nitter_render(&$a, &$o) { // this needs to be a system setting - $nitter = 'https://nitter.net'; + $nitter = DI::config()->get('nitter', 'server', 'https://nitter.net'); if (strstr($o['html'],'https://twitter.com')) { $o['html'] = str_replace('https://twitter.com', $nitter, $o['html']); $o['html'] .= '

'.DI::l10n()->t('Links to Twitter in this posting were replaced by links to the Nitter instance at %s', $nitter).'

'; diff --git a/templates/admin.tpl b/templates/admin.tpl new file mode 100644 index 0000000..b7f0242 --- /dev/null +++ b/templates/admin.tpl @@ -0,0 +1,5 @@ +

{{$settingdescription}}

+ +{{include file="field_input.tpl" field=$nitterserver}} + +