]> git.mxchange.org Git - friendica-addons.git/blobdiff - tumblr/tumblr.php
[markdown] Escape mentions which username can contain Markdown-like syntax
[friendica-addons.git] / tumblr / tumblr.php
index 1b618a7ae3715dd7860693ebdc8e0dd648ff5077..4504534cbdc737fff9c7a0215513426b07d45ccf 100644 (file)
@@ -11,13 +11,12 @@ require_once __DIR__ . DIRECTORY_SEPARATOR . 'library' . DIRECTORY_SEPARATOR . '
 
 use Friendica\App;
 use Friendica\Content\Text\BBCode;
-use Friendica\Core\Config;
 use Friendica\Core\Hook;
-use Friendica\Core\L10n;
 use Friendica\Core\Logger;
 use Friendica\Core\Renderer;
 use Friendica\Database\DBA;
 use Friendica\DI;
+use Friendica\Model\Tag;
 use Friendica\Util\Strings;
 
 function tumblr_install()
@@ -30,16 +29,6 @@ function tumblr_install()
        Hook::register('connector_settings_post', 'addon/tumblr/tumblr.php', 'tumblr_settings_post');
 }
 
-function tumblr_uninstall()
-{
-       Hook::unregister('hook_fork',               'addon/tumblr/tumblr.php', 'tumblr_hook_fork');
-       Hook::unregister('post_local',              'addon/tumblr/tumblr.php', 'tumblr_post_local');
-       Hook::unregister('notifier_normal',         'addon/tumblr/tumblr.php', 'tumblr_send');
-       Hook::unregister('jot_networks',            'addon/tumblr/tumblr.php', 'tumblr_jot_nets');
-       Hook::unregister('connector_settings',      'addon/tumblr/tumblr.php', 'tumblr_settings');
-       Hook::unregister('connector_settings_post', 'addon/tumblr/tumblr.php', 'tumblr_settings_post');
-}
-
 function tumblr_module()
 {
 }
@@ -47,7 +36,7 @@ function tumblr_module()
 function tumblr_content(App $a)
 {
        if (! local_user()) {
-               notice(L10n::t('Permission denied.') . EOL);
+               notice(DI::l10n()->t('Permission denied.') . EOL);
                return '';
        }
 
@@ -77,10 +66,10 @@ function tumblr_addon_admin(App $a, &$o)
        $t = Renderer::getMarkupTemplate( "admin.tpl", "addon/tumblr/" );
 
        $o = Renderer::replaceMacros($t, [
-               '$submit' => L10n::t('Save Settings'),
+               '$submit' => DI::l10n()->t('Save Settings'),
                // name, label, value, help, [extra values]
-               '$consumer_key' => ['consumer_key', L10n::t('Consumer Key'),  Config::get('tumblr', 'consumer_key' ), ''],
-               '$consumer_secret' => ['consumer_secret', L10n::t('Consumer Secret'),  Config::get('tumblr', 'consumer_secret' ), ''],
+               '$consumer_key' => ['consumer_key', DI::l10n()->t('Consumer Key'),  DI::config()->get('tumblr', 'consumer_key' ), ''],
+               '$consumer_secret' => ['consumer_secret', DI::l10n()->t('Consumer Secret'),  DI::config()->get('tumblr', 'consumer_secret' ), ''],
        ]);
 }
 
@@ -89,10 +78,8 @@ function tumblr_addon_admin_post(App $a)
        $consumer_key    =       (!empty($_POST['consumer_key'])      ? Strings::escapeTags(trim($_POST['consumer_key']))   : '');
        $consumer_secret =       (!empty($_POST['consumer_secret'])   ? Strings::escapeTags(trim($_POST['consumer_secret'])): '');
 
-       Config::set('tumblr', 'consumer_key',$consumer_key);
-       Config::set('tumblr', 'consumer_secret',$consumer_secret);
-
-       info(L10n::t('Settings updated.'). EOL);
+       DI::config()->set('tumblr', 'consumer_key',$consumer_key);
+       DI::config()->set('tumblr', 'consumer_secret',$consumer_secret);
 }
 
 function tumblr_connect(App $a)
@@ -104,8 +91,8 @@ function tumblr_connect(App $a)
        //require_once('addon/tumblr/tumblroauth/tumblroauth.php');
 
        // Define the needed keys
-       $consumer_key = Config::get('tumblr', 'consumer_key');
-       $consumer_secret = Config::get('tumblr', 'consumer_secret');
+       $consumer_key = DI::config()->get('tumblr', 'consumer_key');
+       $consumer_secret = DI::config()->get('tumblr', 'consumer_secret');
 
        // The callback URL is the script that gets called after the user authenticates with tumblr
        // In this example, it would be the included callback.php
@@ -157,8 +144,8 @@ function tumblr_callback(App $a)
        //require_once('addon/tumblr/tumblroauth/tumblroauth.php');
 
        // Define the needed keys
-       $consumer_key = Config::get('tumblr', 'consumer_key');
-       $consumer_secret = Config::get('tumblr', 'consumer_secret');
+       $consumer_key = DI::config()->get('tumblr', 'consumer_key');
+       $consumer_secret = DI::config()->get('tumblr', 'consumer_secret');
 
        // Once the user approves your app at Tumblr, they are sent back to this script.
        // This script is passed two parameters in the URL, oauth_token (our Request Token)
@@ -187,8 +174,8 @@ function tumblr_callback(App $a)
        DI::pConfig()->set(local_user(), "tumblr", "oauth_token", $access_token['oauth_token']);
        DI::pConfig()->set(local_user(), "tumblr", "oauth_token_secret", $access_token['oauth_token_secret']);
 
-       $o = L10n::t("You are now authenticated to tumblr.");
-       $o .= '<br /><a href="' . DI::baseUrl()->get() . '/settings/connectors">' . L10n::t("return to the connector page") . '</a>';
+       $o = DI::l10n()->t("You are now authenticated to tumblr.");
+       $o .= '<br /><a href="' . DI::baseUrl()->get() . '/settings/connectors">' . DI::l10n()->t("return to the connector page") . '</a>';
 
        return $o;
 }
@@ -204,7 +191,7 @@ function tumblr_jot_nets(App $a, array &$jotnets_fields)
                        'type' => 'checkbox',
                        'field' => [
                                'tumblr_enable',
-                               L10n::t('Post to Tumblr'),
+                               DI::l10n()->t('Post to Tumblr'),
                                DI::pConfig()->get(local_user(),'tumblr','post_by_default')
                        ]
                ];
@@ -234,25 +221,25 @@ function tumblr_settings(App $a, &$s)
        /* Add some HTML to the existing form */
 
        $s .= '<span id="settings_tumblr_inflated" class="settings-block fakelink" style="display: block;" onclick="openClose(\'settings_tumblr_expanded\'); openClose(\'settings_tumblr_inflated\');">';
-       $s .= '<img class="connector'.$css.'" src="images/tumblr.png" /><h3 class="connector">'. L10n::t('Tumblr Export').'</h3>';
+       $s .= '<img class="connector'.$css.'" src="images/tumblr.png" /><h3 class="connector">'. DI::l10n()->t('Tumblr Export').'</h3>';
        $s .= '</span>';
        $s .= '<div id="settings_tumblr_expanded" class="settings-block" style="display: none;">';
        $s .= '<span class="fakelink" onclick="openClose(\'settings_tumblr_expanded\'); openClose(\'settings_tumblr_inflated\');">';
-       $s .= '<img class="connector'.$css.'" src="images/tumblr.png" /><h3 class="connector">'. L10n::t('Tumblr Export').'</h3>';
+       $s .= '<img class="connector'.$css.'" src="images/tumblr.png" /><h3 class="connector">'. DI::l10n()->t('Tumblr Export').'</h3>';
        $s .= '</span>';
 
        $s .= '<div id="tumblr-username-wrapper">';
-       $s .= '<a href="'.DI::baseUrl()->get().'/tumblr/connect">'.L10n::t("(Re-)Authenticate your tumblr page").'</a>';
+       $s .= '<a href="'.DI::baseUrl()->get().'/tumblr/connect">'.DI::l10n()->t("(Re-)Authenticate your tumblr page").'</a>';
        $s .= '</div><div class="clear"></div>';
 
        $s .= '<div id="tumblr-enable-wrapper">';
-       $s .= '<label id="tumblr-enable-label" for="tumblr-checkbox">' . L10n::t('Enable Tumblr Post Addon') . '</label>';
+       $s .= '<label id="tumblr-enable-label" for="tumblr-checkbox">' . DI::l10n()->t('Enable Tumblr Post Addon') . '</label>';
        $s .= '<input type="hidden" name="tumblr" value="0"/>';
        $s .= '<input id="tumblr-checkbox" type="checkbox" name="tumblr" value="1" ' . $checked . '/>';
        $s .= '</div><div class="clear"></div>';
 
        $s .= '<div id="tumblr-bydefault-wrapper">';
-       $s .= '<label id="tumblr-bydefault-label" for="tumblr-bydefault">' . L10n::t('Post to Tumblr by default') . '</label>';
+       $s .= '<label id="tumblr-bydefault-label" for="tumblr-bydefault">' . DI::l10n()->t('Post to Tumblr by default') . '</label>';
        $s .= '<input type="hidden" name="tumblr_bydefault" value="0"/>';
        $s .= '<input id="tumblr-bydefault" type="checkbox" name="tumblr_bydefault" value="1" ' . $def_checked . '/>';
        $s .= '</div><div class="clear"></div>';
@@ -264,8 +251,8 @@ function tumblr_settings(App $a, &$s)
 
        if (($oauth_token != "") && ($oauth_token_secret != "")) {
                $page = DI::pConfig()->get(local_user(), 'tumblr', 'page');
-               $consumer_key = Config::get('tumblr', 'consumer_key');
-               $consumer_secret = Config::get('tumblr', 'consumer_secret');
+               $consumer_key = DI::config()->get('tumblr', 'consumer_key');
+               $consumer_secret = DI::config()->get('tumblr', 'consumer_secret');
 
                $tum_oauth = new TumblrOAuth($consumer_key, $consumer_secret, $oauth_token, $oauth_token_secret);
 
@@ -273,7 +260,7 @@ function tumblr_settings(App $a, &$s)
 
                $blogs = [];
 
-               $s .= '<label id="tumblr-page-label" for="tumblr-page">' . L10n::t('Post to page:') . '</label>';
+               $s .= '<label id="tumblr-page-label" for="tumblr-page">' . DI::l10n()->t('Post to page:') . '</label>';
                $s .= '<select name="tumblr_page" id="tumblr-page">';
                foreach($userinfo->response->user->blogs as $blog) {
                        $blogurl = substr(str_replace(["http://", "https://"], ["", ""], $blog->url), 0, -1);
@@ -287,13 +274,13 @@ function tumblr_settings(App $a, &$s)
 
                $s .= "</select>";
        } else {
-               $s .= L10n::t("You are not authenticated to tumblr");
+               $s .= DI::l10n()->t("You are not authenticated to tumblr");
        }
 
        $s .= '</div><div class="clear"></div>';
 
        /* provide a submit button */
-       $s .= '<div class="settings-submit-wrapper" ><input type="submit" id="tumblr-submit" name="tumblr-submit" class="settings-submit" value="' . L10n::t('Save Settings') . '" /></div></div>';
+       $s .= '<div class="settings-submit-wrapper" ><input type="submit" id="tumblr-submit" name="tumblr-submit" class="settings-submit" value="' . DI::l10n()->t('Save Settings') . '" /></div></div>';
 }
 
 function tumblr_settings_post(App $a, array &$b)
@@ -385,14 +372,12 @@ function tumblr_send(App $a, array &$b) {
        $tmbl_blog = 'blog/' . $page . '/post';
 
        if ($oauth_token && $oauth_token_secret && $tmbl_blog) {
+               $tags = Tag::getByURIId($b['uri-id']);
+
                $tag_arr = [];
-               $tags = '';
-               preg_match_all('/\#\[(.*?)\](.*?)\[/', $b['tag'], $matches, PREG_SET_ORDER);
 
-               if (!empty($matches)) {
-                       foreach($matches as $mtch) {
-                               $tag_arr[] = $mtch[2];
-                       }
+               foreach($tags as $tag) {
+                       $tag_arr[] = $tag['name'];
                }
 
                if (count($tag_arr)) {
@@ -427,7 +412,7 @@ function tumblr_send(App $a, array &$b) {
                switch ($siteinfo["type"]) {
                        case "photo":
                                $params['type']    = "photo";
-                               $params['caption'] = BBCode::convert($body, false, 4);
+                               $params['caption'] = BBCode::convert($body, false, BBCode::CONNECTORS);
 
                                if (isset($siteinfo["url"])) {
                                        $params['link'] = $siteinfo["url"];
@@ -440,25 +425,25 @@ function tumblr_send(App $a, array &$b) {
                                $params['type']        = "link";
                                $params['title']       = $title;
                                $params['url']         = $siteinfo["url"];
-                               $params['description'] = BBCode::convert($body, false, 4);
+                               $params['description'] = BBCode::convert($body, false, BBCode::CONNECTORS);
                                break;
 
                        case "audio":
                                $params['type']         = "audio";
                                $params['external_url'] = $siteinfo["url"];
-                               $params['caption']      = BBCode::convert($body, false, 4);
+                               $params['caption']      = BBCode::convert($body, false, BBCode::CONNECTORS);
                                break;
 
                        case "video":
                                $params['type']    = "video";
                                $params['embed']   = $siteinfo["url"];
-                               $params['caption'] = BBCode::convert($body, false, 4);
+                               $params['caption'] = BBCode::convert($body, false, BBCode::CONNECTORS);
                                break;
 
                        default:
                                $params['type']  = "text";
                                $params['title'] = $title;
-                               $params['body']  = BBCode::convert($b['body'], false, 4);
+                               $params['body']  = BBCode::convert($b['body'], false, BBCode::CONNECTORS);
                                break;
                }
 
@@ -468,11 +453,11 @@ function tumblr_send(App $a, array &$b) {
                }
 
                if (empty($params['caption']) && !empty($siteinfo["description"])) {
-                       $params['caption'] = BBCode::convert("[quote]" . $siteinfo["description"] . "[/quote]", false, 4);
+                       $params['caption'] = BBCode::convert("[quote]" . $siteinfo["description"] . "[/quote]", false, BBCode::CONNECTORS);
                }
 
-               $consumer_key = Config::get('tumblr','consumer_key');
-               $consumer_secret = Config::get('tumblr','consumer_secret');
+               $consumer_key = DI::config()->get('tumblr','consumer_key');
+               $consumer_secret = DI::config()->get('tumblr','consumer_secret');
 
                $tum_oauth = new TumblrOAuth($consumer_key, $consumer_secret, $oauth_token, $oauth_token_secret);