]> git.mxchange.org Git - friendica-addons.git/commitdiff
Merge commit 'upstream/master'
authorMichael Vogel <icarus@dabo.de>
Sun, 1 Apr 2012 12:08:36 +0000 (14:08 +0200)
committerMichael Vogel <icarus@dabo.de>
Sun, 1 Apr 2012 12:08:36 +0000 (14:08 +0200)
Conflicts:

facebook/facebook.php

25 files changed:
facebook.tgz
facebook/facebook.php
frown.tgz [deleted file]
frown/frown.css [deleted file]
frown/frown.php [deleted file]
irc.tgz
irc/irc.php
namethingy.tgz [new file with mode: 0644]
namethingy/namethingy.php [new file with mode: 0755]
page.tgz
page/page.php
pages.tgz
rememberoid/rememberoid.php [deleted file]
showmore.tgz
statusnet.tgz
statusnet/README
statusnet/statusnet.css
statusnet/statusnet.php
twitter.tgz
twitter/README
twitter/twitter.css
twitter/twitter.php
viewsrc.tgz
viewsrc/viewsrc.php
widgets.tgz

index 18392c78c255e13bdd844e315196b1ec718fbd52..1d1919d2fba7d910ac7a80e77690b270f93c5446 100644 (file)
Binary files a/facebook.tgz and b/facebook.tgz differ
index bc492f683e9360cffaf9631e808c359a13966d2f..1afa996df08aab3163ce906f024acef65093bba3 100755 (executable)
@@ -57,7 +57,7 @@
 // see http://www.facebook.com/schrep/posts/203969696349811
 // define('FACEBOOK_MAXPOSTLEN', 420);
 define('FACEBOOK_MAXPOSTLEN', 63206);
-
+define('FACEBOOK_SESSION_ERR_NOTIFICATION_INTERVAL', 259200); // 3 days
 
 function facebook_install() {
        register_hook('post_local',       'addon/facebook/facebook.php', 'facebook_post_local');
@@ -466,9 +466,21 @@ function facebook_content(&$a) {
                info( t('Updating contacts') . EOL);
        }
 
-
-       $fb_installed = get_pconfig(local_user(),'facebook','post');
-
+       $o = '';
+       
+       $fb_installed = false;
+       if (get_pconfig(local_user(),'facebook','post')) {
+               $access_token = get_pconfig(local_user(),'facebook','access_token');
+               if ($access_token) {
+                       $private_wall = intval(get_pconfig($uid,'facebook','private_wall'));
+                       $s = fetch_url('https://graph.facebook.com/me/feed?access_token=' . $access_token);
+                       if($s) {
+                               $j = json_decode($s);
+                               if (isset($j->data)) $fb_installed = true;
+                       }
+               }
+       }
+       
        $appid = get_config('facebook','appid');
 
        if(! $appid) {
@@ -600,7 +612,7 @@ function facebook_cron($a,$b) {
                                
                                if(strlen($a->config['admin_email']) && !get_config('facebook', 'realtime_err_mailsent')) {
                                        $res = mail($a->config['admin_email'], t('Problems with Facebook Real-Time Updates'), 
-                                               "Hi!\n\nThere's a problem with the Facebook Real-Time Updates that cannot be solved automatically. Maybe an permission issue?\n\nThis e-mail will only be sent once.",
+                                               "Hi!\n\nThere's a problem with the Facebook Real-Time Updates that cannot be solved automatically. Maybe a permission issue?\n\nPlease try to re-activate it on " . $a->config["system"]["url"] . "/admin/plugins/facebook\n\nThis e-mail will only be sent once.",
                                                'From: ' . t('Administrator') . '@' . $_SERVER['SERVER_NAME'] . "\n"
                                                . 'Content-type: text/plain; charset=UTF-8' . "\n"
                                                . 'Content-transfer-encoding: 8bit'
@@ -631,17 +643,39 @@ function facebook_plugin_settings(&$a,&$b) {
 
 
 function facebook_plugin_admin(&$a, &$o){
+       $o = '<input type="hidden" name="form_security_token" value="' . get_form_security_token("fbsave") . '">';
        
-       $activated = facebook_check_realtime_active();
-       if ($activated) {
-               $o = t('Real-Time Updates are activated.') . '<br><br>';
-               $o .= '<input type="submit" name="real_time_deactivate" value="' . t('Deactivate Real-Time Updates') . '">';
-       } else {
-               $o = t('Real-Time Updates not activated.') . '<br><input type="submit" name="real_time_activate" value="' . t('Activate Real-Time Updates') . '">';
+       $o .= '<h4>' . t('Facebook API Key') . '</h4>';
+       
+       $appid  = get_config('facebook', 'appid'  );
+       $appsecret = get_config('facebook', 'appsecret' );
+       
+       $o .= '<label for="fb_appid">' . t('App-ID / API-Key') . '</label><input name="appid" type="text" value="' . escape_tags($appid ? $appid : "") . '"><br style="clear: both;">';
+       $o .= '<label for="fb_appsecret">' . t('Application secret') . '</label><input name="appsecret" type="text" value="' . escape_tags($appsecret ? $appsecret : "") . '"><br style="clear: both;">';
+       $o .= '<input type="submit" name="fb_save_keys" value="' . t('Save') . '">';
+       
+       if ($appid && $appsecret) {
+               $o .= '<h4>' . t('Real-Time Updates') . '</h4>';
+               
+               $activated = facebook_check_realtime_active();
+               if ($activated) {
+                       $o .= t('Real-Time Updates are activated.') . '<br><br>';
+                       $o .= '<input type="submit" name="real_time_deactivate" value="' . t('Deactivate Real-Time Updates') . '">';
+               } else {
+                       $o .= t('Real-Time Updates not activated.') . '<br><input type="submit" name="real_time_activate" value="' . t('Activate Real-Time Updates') . '">';
+               }
        }
 }
 
 function facebook_plugin_admin_post(&$a, &$o){
+       check_form_security_token_redirectOnErr('/admin/plugins/facebook', 'fbsave');
+       
+       if (x($_REQUEST,'fb_save_keys')) {
+               set_config('facebook', 'appid', $_REQUEST['appid']);
+               set_config('facebook', 'appsecret', $_REQUEST['appsecret']);
+               del_config('facebook', 'app_access_token');
+               info(t('The new values have been saved.'));
+       }
        if (x($_REQUEST,'real_time_activate')) {
                facebook_subscription_add_users();
        }
@@ -980,6 +1014,7 @@ function facebook_post_hook(&$a,&$b) {
 
                                if(! get_config('facebook','test_mode')) {
                                        $x = post_url($url, $postvars);
+                                       logger('Facebook post returns: ' . $x, LOGGER_DEBUG);
 
                                        $retj = json_decode($x);
                                        if($retj->id) {
@@ -987,7 +1022,6 @@ function facebook_post_hook(&$a,&$b) {
                                                        dbesc('fb::' . $retj->id),
                                                        intval($b['id'])
                                                );
-                                               del_pconfig($b['uid'], 'facebook', 'session_expired_mailsent');
                                        }
                                        else {
                                                if(! $likes) {
@@ -999,7 +1033,9 @@ function facebook_post_hook(&$a,&$b) {
                                                
                                                if (isset($retj->error) && $retj->error->type == "OAuthException" && $retj->error->code == 190) {
                                                        logger('Facebook session has expired due to changed password.', LOGGER_DEBUG);
-                                                       if (!get_pconfig($b['uid'], 'facebook', 'session_expired_mailsent')) {
+                                                       
+                                                       $last_notification = get_pconfig($b['uid'], 'facebook', 'session_expired_mailsent');
+                                                       if (!$last_notification || $last_notification < (time() - FACEBOOK_SESSION_ERR_NOTIFICATION_INTERVAL)) {
                                                                require_once('include/enotify.php');
                                                        
                                                                $r = q("SELECT * FROM `user` WHERE `uid` = %d LIMIT 1", intval($b['uid']) );
@@ -1010,14 +1046,15 @@ function facebook_post_hook(&$a,&$b) {
                                                                        'language'     => $r[0]['language'],
                                                                        'to_name'      => $r[0]['username'],
                                                                        'to_email'     => $r[0]['email'],
+                                                                       'source_name'  => t('Administrator'),
+                                                                       'source_link'  => $a->config["system"]["url"],
+                                                                       'source_photo' => $a->config["system"]["url"] . '/images/person-80.jpg',
                                                                ));
                                                                
-                                                               set_pconfig($b['uid'], 'facebook', 'session_expired_mailsent', '1');
-                                                       }
+                                                               set_pconfig($b['uid'], 'facebook', 'session_expired_mailsent', time());
+                                                       } else logger('Facebook: No notification, as the last one was sent on ' . $last_notification, LOGGER_DEBUG);
                                                }
                                        }
-                                       
-                                       logger('Facebook post returns: ' . $x, LOGGER_DEBUG);
                                }
                        }
                }
@@ -1029,6 +1066,7 @@ function facebook_enotify(&$app, &$data) {
                $data['itemlink'] = '/facebook';
                $data['epreamble'] = $data['preamble'] = t('Your Facebook connection became invalid. Please Re-authenticate.');
                $data['subject'] = t('Facebook connection became invalid');
+               $data['body'] = sprintf( t("Hi %1\$s,\n\nThe connection between your accounts on %2\$s and Facebook became invalid. This usually happens after you change your Facebook-password. To enable the connection again, you have to %3\$sre-authenticate the Facebook-connector%4\$s."), $data['params']['to_name'], "[url=" . $app->config["system"]["url"] . "]" . $app->config["sitename"] . "[/url]", "[url=" . $app->config["system"]["url"] . "/facebook]", "[/url]");
        }
 }
 
@@ -1492,8 +1530,8 @@ function fb_get_app_access_token() {
                logger('fb_get_app_access_token: appid and/or appsecret not set', LOGGER_DEBUG);
                return false;
        }
-       
-       $x = fetch_url('https://graph.facebook.com/oauth/access_token?client_id=' . $appid . '&client_secret=' . $appsecret . "&grant_type=client_credentials");
+       logger('https://graph.facebook.com/oauth/access_token?client_id=' . $appid . '&client_secret=' . $appsecret . '&grant_type=client_credentials', LOGGER_DATA);
+       $x = fetch_url('https://graph.facebook.com/oauth/access_token?client_id=' . $appid . '&client_secret=' . $appsecret . '&grant_type=client_credentials');
        
        if(strpos($x,'access_token=') !== false) {
                logger('fb_get_app_access_token: returned access token: ' . $x, LOGGER_DATA);
@@ -1524,8 +1562,7 @@ function facebook_subscription_del_users() {
        del_config('facebook', 'realtime_active');
 }
 
-function facebook_subscription_add_users() {
-       
+function facebook_subscription_add_users($second_try = false) {
        $a = get_app();
        $access_token = fb_get_app_access_token();
        
@@ -1546,9 +1583,18 @@ function facebook_subscription_add_users() {
        del_config('facebook', 'cb_verify_token');
        
        if ($j) {
+               $x = json_decode($j);
                logger("Facebook reponse: " . $j, LOGGER_DATA);
-               
-               if (facebook_check_realtime_active()) set_config('facebook', 'realtime_active', 1);
+               if (isset($x->error)) {
+                       logger('facebook_subscription_add_users: got an error: ' . $j);
+                       if ($x->error->type == "OAuthException" && $x->error->code == 190) {
+                               del_config('facebook', 'app_access_token');
+                               if ($second_try === false) facebook_subscription_add_users(true);
+                       }
+               } else {
+                       logger('facebook_subscription_add_users: sucessful');
+                       if (facebook_check_realtime_active()) set_config('facebook', 'realtime_active', 1);
+               }
        };
 }
 
diff --git a/frown.tgz b/frown.tgz
deleted file mode 100644 (file)
index 6a2343f..0000000
Binary files a/frown.tgz and /dev/null differ
diff --git a/frown/frown.css b/frown/frown.css
deleted file mode 100755 (executable)
index 3690b62..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-#frown-enable-label {
-       float: left;
-       width: 200px;
-       margin-bottom: 25px;
-}
-
-#frown-checkbox {
-       float: left;
-}
-
-
diff --git a/frown/frown.php b/frown/frown.php
deleted file mode 100755 (executable)
index 003039d..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-<?php
-/**
- * Name: Frown
- * Description: Disable graphical smilies
- * Version: 1.0
- * Author: Mike Macgirvin <http://macgirvin.com/profile/mike>
- * 
- *
- */
-
-
-function frown_install() {
-
-       register_hook('plugin_settings', 'addon/frown/frown.php', 'frown_settings');
-       register_hook('plugin_settings_post', 'addon/frown/frown.php', 'frown_settings_post');
-
-       logger("installed frown");
-}
-
-
-function frown_uninstall() {
-
-       unregister_hook('plugin_settings', 'addon/frown/frown.php', 'frown_settings');
-       unregister_hook('plugin_settings_post', 'addon/frown/frown.php', 'frown_settings_post');
-
-
-       logger("removed frown");
-}
-
-
-
-/**
- *
- * Callback from the settings post function.
- * $post contains the $_POST array.
- * We will make sure we've got a valid user account
- * and if so set our configuration setting for this person.
- *
- */
-
-function frown_settings_post($a,$post) {
-       if(! local_user() || (! x($_POST,'frown-submit')))
-               return;
-       set_pconfig(local_user(),'system','no_smilies',intval($_POST['frown']));
-
-       info( t('Frown settings updated.') . EOL);
-}
-
-
-/**
- *
- * Called from the Plugin Setting form. 
- * Add our own settings info to the page.
- *
- */
-
-
-
-function frown_settings(&$a,&$s) {
-
-       if(! local_user())
-               return;
-
-       /* Add our stylesheet to the page so we can make our settings look nice */
-
-       $a->page['htmlhead'] .= '<link rel="stylesheet"  type="text/css" href="' . $a->get_baseurl() . '/addon/frown/frown.css' . '" media="all" />' . "\r\n";
-
-       /* Get the current state of our config variable */
-
-       $enabled = get_pconfig(local_user(),'system','no_smilies');
-       $checked = (($enabled) ? ' checked="checked" ' : '');
-
-       /* Add some HTML to the existing form */
-
-       $s .= '<div class="settings-block">';
-       $s .= '<h3>' . t('Frown Settings') . '</h3>';
-       $s .= '<div id="frown-enable-wrapper">';
-       $s .= '<label id="frown-enable-label" for="frown-checkbox">' . t('Disable graphical smilies') . '</label>';
-       $s .= '<input id="frown-checkbox" type="checkbox" name="frown" value="1" ' . $checked . '/>';
-       $s .= '</div><div class="clear"></div>';
-
-       /* provide a submit button */
-
-       $s .= '<div class="settings-submit-wrapper" ><input type="submit" name="frown-submit" class="settings-submit" value="' . t('Submit') . '" /></div></div>';
-
-}
diff --git a/irc.tgz b/irc.tgz
index e10b0769e74e5dc9864e683e79dd7f0111abc479..c6ba1bffea99337a2a278039f796c4fdc599649b 100644 (file)
Binary files a/irc.tgz and b/irc.tgz differ
index 1e05195099fa03172726bff3f6b9ba7ebe30aa38..f2c65b177593df65c7857df8e384153faf98641e 100644 (file)
@@ -36,6 +36,7 @@ function irc_content(&$a) {
 $baseurl = $a->get_baseurl() . '/addon/irc';
 $o = '';
 
+$channels = ((x($_GET,'channels')) ? $_GET['channels'] : 'friendica');
 
 /* add the chatroom frame and some html
  * by altering the "channels=friendica" part of the URL, you can add/remove channels.  
@@ -44,7 +45,7 @@ $o = '';
   $o .= <<< EOT
 <h2>IRC chat</h2>
 <p><a href="http://tldp.org/HOWTO/IRC/beginners.html" target="_blank">a beginner's guide to using IRC.</a></p>
-<iframe src="http://webchat.freenode.net?channels=friendica" width="600" height="600"></iframe>
+<iframe src="http://webchat.freenode.net?channels=$channels" width="600" height="600"></iframe>
 EOT;
 
 return $o;
diff --git a/namethingy.tgz b/namethingy.tgz
new file mode 100644 (file)
index 0000000..9642e38
Binary files /dev/null and b/namethingy.tgz differ
diff --git a/namethingy/namethingy.php b/namethingy/namethingy.php
new file mode 100755 (executable)
index 0000000..0ccf106
--- /dev/null
@@ -0,0 +1,37 @@
+<?php
+
+/**
+ *
+ * Name: NameThingy
+ * Description: The Ultimate Random Name Generator
+ * Version: 1.0
+ * Author: Mike Macgirvin <http://macgirvin.com/profile/mike>
+ */
+
+
+function namethingy_install() {
+    register_hook('app_menu', 'addon/namethingy/namethingy.php', 'namethingy_app_menu');
+}
+
+function namethingy_uninstall() {
+    unregister_hook('app_menu', 'addon/namethingy/namethingy.php', 'namethingy_app_menu');
+
+}
+
+function namethingy_app_menu($a,&$b) {
+    $b['app_menu'][] = '<div class="app-title"><a href="namethingy">NameThingy</a></div>';
+}
+
+
+function namethingy_module() {}
+
+function namethingy_content(&$a) {
+
+$baseurl = $a->get_baseurl() . '/addon/namethingy';
+
+$o .= <<< EOT
+<iframe src="http://namethingy.com" width="900" height="700" />
+EOT;
+
+return $o;
+}
index aebbe4dd8c4a14d43181d8e2bc8b6f3151b67c17..84fb7b81480dc2f78f829613d5046bdf223f5f92 100644 (file)
Binary files a/page.tgz and b/page.tgz differ
index 2a65cab88cbdcb4b831c0e4f750b1cfc441113b0..72972eded43064a970d1db2962e9cac3ab64aa01 100755 (executable)
@@ -44,7 +44,7 @@ function page_page_end($a,&$b) {
 
        $page = '<div id="page-sidebar" class="widget">
                        <div class="title tool">
-                       <h3>'.t("Community Pages").'</h3></div>
+                       <h3>'.t("Forums").'</h3></div>
                        <div id="sidebar-page-list"><ul>';
 
        $contacts = page_getpage($a->user['uid']);
index 7be170afa3a968cc049ec11260e8ae8a386629ab..1a0aa4187669861309319e2b263aa6fa61bf5431 100644 (file)
Binary files a/pages.tgz and b/pages.tgz differ
diff --git a/rememberoid/rememberoid.php b/rememberoid/rememberoid.php
deleted file mode 100644 (file)
index 36f42c3..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-/**
- * Name: Remember OpenID Login
- * Description: Autologin with last openid used
- * Version: 1.0
- * Author: Fabio Comuni <http://kirgroup.com/profile/fabrixxm>
- */
-
-function rememberoid_install(){ 
-       register_hook('init_1','addon/rememberoid/rememberoid.php','rememberoid_init'); 
-       register_hook('logging_out','addon/rememberoid/rememberoid.php','rememberoid_logout'); 
-       register_hook('login_hook','addon/rememberoid/rememberoid.php','rememberoid_form'); 
-}
-
-function rememberoid_uninstall(){ 
-       unregister_hook('init_1','addon/rememberoid/rememberoid.php','rememberoid_init'); 
-       unregister_hook('logging_out','addon/rememberoid/rememberoid.php','rememberoid_logout'); 
-       unregister_hook('login_hook','addon/rememberoid/rememberoid.php','rememberoid_form'); 
-}
-
-function rememberoid_init(&$a) {
-       if (x($_COOKIE, "remember_oid") && !x($_SESSION['openid']) && !x($_SESSION,'authenticated') && !x($_POST,'auth-params') && $a->module === 'home' ){
-               $_POST['openid_url'] = $_COOKIE["remember_oid"];
-               $_POST['auth-params'] = 1;
-       }
-       if (x($_POST,'auth-params') && $_POST['openid_url'] && $_POST['openid_url']!="" && $_POST['remember_oid']){
-               setcookie('remember_oid', $_POST['openid_url'],  time()+60*60*24*30, "/");
-       }
-}
-
-function rememberoid_logout(&$a) {
-       setcookie("rembember_oid", "", time()-3600);
-}
-
-function rememberoid_form(&$a, &$o){
-       $tpl = get_markup_template("field_checkbox.tpl");
-       $html = replace_macros($tpl, array(
-               '$field' => array('remember_oid', t("Autologin with this OpenId"), false,''),
-       ));
-       
-       $o = preg_replace("|<div *id=[\"']login_openid[\"']>|", "<div id='login_openid'>".$html, $o);
-
-}
index 6c2203a15b96292b5190a255f3d90ff05a3a895d..016ad5212e616299e46e532b85a10db79717d2cb 100644 (file)
Binary files a/showmore.tgz and b/showmore.tgz differ
index 1984cdbafe7128fd844cf41f6125616525afb20d..4e5bf8ceced0e059652236df9afe743b57828f4c 100755 (executable)
Binary files a/statusnet.tgz and b/statusnet.tgz differ
index 48f620aba4249b0a8157425f18d333bab1fc444e..32c11c7e99119af08f384283d97362619c0865fb 100755 (executable)
@@ -42,6 +42,9 @@ ___ Configuration ___
 
 __ Global Configuration __
 
+If you enabled an administrator account, please use the admin panel to cofigure
+the StatusNet relay.
+
 To activate this addon add statusnet to the list of active addons in your
 .htconfig.php file 
     $a->config['system']['addon'] = "statusnet, ...".
index 6c1347fc7af97cb8e2e3971d3baa880453f8d252..a5594cb70249ae183b2de56eafea233de1caf546 100755 (executable)
 #statusnet-default-label {
        float: left;
        width: 250px;
-       margin-bottom: 25px;
 }
-
+#statusnet-sendtaglinks-label {
+        float: left;
+        width: 250px;
+        margin-bottom: 25px;
+}
 #statusnet-disconnect {
        float: left;
 }
index 8f2fbf8190965e9a95a0a2237e3985ae341d4b2d..897c54152c158ea7bb4c6f46a1a0d0ca79a8d08a 100755 (executable)
@@ -2,7 +2,7 @@
 /**
  * Name: StatusNet Connector
  * Description: Relay public postings to a connected StatusNet account
- * Version: 1.0.3
+ * Version: 1.0.4
  * Author: Tobias Diekershoff <https://diekershoff.homeunix.net/friendika/profile/tobias>
  */
  
@@ -155,6 +155,7 @@ function statusnet_settings_post ($a,$post) {
             del_pconfig( local_user(), 'statusnet', 'oauthtoken' );
             del_pconfig( local_user(), 'statusnet', 'oauthsecret' );
             del_pconfig( local_user(), 'statusnet', 'baseapi' );
+            del_pconfig( local_user(), 'statusnet', 'post_taglinks');
        } else {
             if (isset($_POST['statusnet-preconf-apiurl'])) {
                 /***
@@ -218,14 +219,16 @@ function statusnet_settings_post ($a,$post) {
                                        //  ok, now that we have the Access Token, save them in the user config
                                        set_pconfig(local_user(),'statusnet', 'oauthtoken',  $token['oauth_token']);
                                        set_pconfig(local_user(),'statusnet', 'oauthsecret', $token['oauth_token_secret']);
-                    set_pconfig(local_user(),'statusnet', 'post', 1);
+                                        set_pconfig(local_user(),'statusnet', 'post', 1);
+                                        set_pconfig(local_user(),'statusnet', 'post_taglinks', 1);
                     //  reload the Addon Settings page, if we don't do it see Bug #42
                     goaway($a->get_baseurl().'/settings/connectors');
                                } else {
                                        //  if no PIN is supplied in the POST variables, the user has changed the setting
-                                       //  to post a tweet for every new __public__ posting to the wall
+                                       //  to post a dent for every new __public__ posting to the wall
                                        set_pconfig(local_user(),'statusnet','post',intval($_POST['statusnet-enable']));
-                                       set_pconfig(local_user(),'statusnet','post_by_default',intval($_POST['statusnet-default']));
+                                        set_pconfig(local_user(),'statusnet','post_by_default',intval($_POST['statusnet-default']));
+                                        set_pconfig(local_user(),'statusnet','post_taglinks',intval($_POST['statusnet-sendtaglinks']));
                                        info( t('StatusNet settings updated.') . EOL);
                }}}}
 }
@@ -247,7 +250,9 @@ function statusnet_settings(&$a,&$s) {
        $enabled = get_pconfig(local_user(), 'statusnet', 'post');
        $checked = (($enabled) ? ' checked="checked" ' : '');
        $defenabled = get_pconfig(local_user(),'statusnet','post_by_default');
-       $defchecked = (($defenabled) ? ' checked="checked" ' : '');
+        $defchecked = (($defenabled) ? ' checked="checked" ' : '');
+        $linksenabled = get_pconfig(local_user(),'statusnet','post_taglinks');
+        $linkschecked = (($linksenabled) ? ' checked="checked" ' : '');
        $s .= '<div class="settings-block">';
        $s .= '<h3>'. t('StatusNet Posting Settings').'</h3>';
 
@@ -336,6 +341,9 @@ function statusnet_settings(&$a,&$s) {
                        $s .= '<div class="clear"></div>';
                        $s .= '<label id="statusnet-default-label" for="statusnet-default">'. t('Send public postings to StatusNet by default') .'</label>';
                        $s .= '<input id="statusnet-default" type="checkbox" name="statusnet-default" value="1" ' . $defchecked . '/>';
+                       $s .= '<div class="clear"></div>';
+                        $s .= '<label id="statusnet-sendtaglinks-label" for="statusnet-sendtaglinks">'.t('Send #tag links to StatusNet').'</label>';
+                        $s .= '<input id="statusnet-sendtaglinks" type="checkbox" name="statusnet-sendtaglinks" value="1" '. $linkschecked . '/>';
                        $s .= '</div><div class="clear"></div>';
 
                        $s .= '<div id="statusnet-disconnect-wrapper">';
@@ -425,7 +433,12 @@ function statusnet_post_hook(&$a,&$b) {
                 // we can later send to StatusNet. This way we can "gain" some 
                 // information during shortening of potential links but do not 
                 // shorten all the links in a 200000 character long essay.
-                $tmp = substr($b['body'], 0, 2*$max_char);
+                if (! $b['title']=='') {
+                    $tmp = $b['title'] . ' : '. $b['body'];
+                    $tmp = substr($tmp, 0, 2*$max_char);
+                } else {
+                    $tmp = substr($b['body'], 0, 2*$max_char);
+                }
                 // if [url=bla][img]blub.png[/img][/url] get blub.png
                 $tmp = preg_replace( '/\[url\=(https?\:\/\/[a-zA-Z0-9\:\/\-\?\&\;\.\=\_\~\#\%\$\!\+\,]+)\]\[img\](\\w+.*?)\\[\\/img\]\\[\\/url\]/i', '$2', $tmp);
                 // preserve links to images, videos and audios
@@ -435,11 +448,13 @@ function statusnet_post_hook(&$a,&$b) {
                 $tmp = preg_replace( '/\[\\/?youtube(\\s+.*?\]|\])/i', '', $tmp);
                 $tmp = preg_replace( '/\[\\/?vimeo(\\s+.*?\]|\])/i', '', $tmp);
                 $tmp = preg_replace( '/\[\\/?audio(\\s+.*?\]|\])/i', '', $tmp);
+                $linksenabled = get_pconfig($b['uid'],'statusnet','post_taglinks');
                 // if a #tag is linked, don't send the [url] over to SN
-                //   this is commented out by default as it means backlinks
-                //   to friendica, if you don't like this feel free to
-                //   uncomment the following line
-//                $tmp = preg_replace( '/#\[url\=(\w+.*?)\](\w+.*?)\[\/url\]/i', '#$2', $tmp);
+                // that is, don't send if the option is not set in the 
+                // connector settings
+                if ($linksenabled=='0') {
+                    $tmp = preg_replace( '/#\[url\=(\w+.*?)\](\w+.*?)\[\/url\]/i', '#$2', $tmp);
+                }
                 // preserve links to webpages
                 $tmp = preg_replace( '/\[url\=(https?\:\/\/[a-zA-Z0-9\:\/\-\?\&\;\.\=\_\~\#\%\$\!\+\,]+)\](\w+.*?)\[\/url\]/i', '$2 $1', $tmp);
                 $tmp = preg_replace( '/\[bookmark\=(https?\:\/\/[a-zA-Z0-9\:\/\-\?\&\;\.\=\_\~\#\%\$\!\+\,]+)\](\w+.*?)\[\/bookmark\]/i', '$2 $1', $tmp);
index 18416d1f638db3eeebfe9077aa1b999d01bcfad8..68a412aa26235ca2420739715941c22bf51a383c 100755 (executable)
Binary files a/twitter.tgz and b/twitter.tgz differ
index 99edf0d303dbc23506aed593f7002d44cbeba5d2..a5511fec11c2cc26ee56efadeec192f66118420e 100755 (executable)
@@ -47,6 +47,9 @@ ___ Configuration ___
 
 __ Global Configuration __
 
+If you enabled an administrator account, please use the admin panel to cofigure
+the Twitter relay.
+
 To activate this addon add @twitter@ to the list of active addons in your
 .htconfig.php file 
     $a->config['system']['addon'] = "twitter, ..."
index 899cfd17320ecce642ddaeab1a3a51c8404d4f9a..75747979eb952a9c07b442ea8d5e330cee0912e5 100755 (executable)
@@ -12,7 +12,7 @@
 }
 #twitter-disconnect-label {
        float: left;
-       width: 200px;
+       width: 250px;
        margin-bottom: 25px;
 }
 
 }
 #twitter-enable-label {
        float: left;
-       width: 200px;
+       width: 250px;
        margin-bottom: 5px;
 }
+#twitter-default-label {
+       float: left;
+       width: 250px;
+}
+#twitter-sendtaglinks-label {
+        float: left;
+        width: 250px;
+        margin-bottom: 25px;
+}
 
 #twitter-checkbox {
        float: left;
 }
 #twitter-pin-label {
        float: left;
-       width: 200px;
+       width: 250px;
        margin-bottom: 25px;
 }
 
index 4f4d72808bc3c4aae3aab149138a407493bd825e..006c16152934c3c77833705372e54b36775cea4f 100755 (executable)
@@ -2,7 +2,7 @@
 /**
  * Name: Twitter Connector
  * Description: Relay public postings to a connected Twitter account
- * Version: 1.0.2
+ * Version: 1.0.3
  * Author: Tobias Diekershoff <https://diekershoff.homeunix.net/friendika/profile/tobias>
  */
 
@@ -93,6 +93,7 @@ function twitter_settings_post ($a,$post) {
                 del_pconfig( local_user(), 'twitter', 'oauthsecret'  );  
                 del_pconfig( local_user(), 'twitter', 'post' );
                 del_pconfig( local_user(), 'twitter', 'post_by_default' );
+                del_pconfig( local_user(), 'twitter', 'post_taglinks');
        } else {
        if (isset($_POST['twitter-pin'])) {
                //  if the user supplied us with a PIN from Twitter, let the magic of OAuth happen
@@ -109,6 +110,7 @@ function twitter_settings_post ($a,$post) {
                set_pconfig(local_user(),'twitter', 'oauthtoken',  $token['oauth_token']);
                set_pconfig(local_user(),'twitter', 'oauthsecret', $token['oauth_token_secret']);
                 set_pconfig(local_user(),'twitter', 'post', 1);
+                set_pconfig(local_user(),'twitter', 'post_taglinks', 1);
                 //  reload the Addon Settings page, if we don't do it see Bug #42
                 goaway($a->get_baseurl().'/settings/connectors');
        } else {
@@ -116,6 +118,7 @@ function twitter_settings_post ($a,$post) {
                //  to post a tweet for every new __public__ posting to the wall
                set_pconfig(local_user(),'twitter','post',intval($_POST['twitter-enable']));
                 set_pconfig(local_user(),'twitter','post_by_default',intval($_POST['twitter-default']));
+                set_pconfig(local_user(),'twitter','post_taglinks',intval($_POST['twitter-sendtaglinks']));
                 info( t('Twitter settings updated.') . EOL);
        }}
 }
@@ -136,6 +139,8 @@ function twitter_settings(&$a,&$s) {
        $checked = (($enabled) ? ' checked="checked" ' : '');
         $defenabled = get_pconfig(local_user(),'twitter','post_by_default');
        $defchecked = (($defenabled) ? ' checked="checked" ' : '');
+        $linksenabled = get_pconfig(local_user(),'twitter','post_taglinks');
+        $linkschecked = (($linksenabled) ? ' checked="checked" ' : '');
 
        $s .= '<div class="settings-block">';
        $s .= '<h3>'. t('Twitter Posting Settings') .'</h3>';
@@ -192,6 +197,9 @@ function twitter_settings(&$a,&$s) {
                         $s .= '<div class="clear"></div>';
                         $s .= '<label id="twitter-default-label" for="twitter-default">'. t('Send public postings to Twitter by default') .'</label>';
                         $s .= '<input id="twitter-default" type="checkbox" name="twitter-default" value="1" ' . $defchecked . '/>';
+                       $s .= '<div class="clear"></div>';
+                        $s .= '<label id="twitter-sendtaglinks-label" for="twitter-sendtaglinks">'.t('Send #tag links to Twitter').'</label>';
+                        $s .= '<input id="twitter-sendtaglinks" type="checkbox" name="twitter-sendtaglinks" value="1" '. $linkschecked . '/>';
                        $s .= '</div><div class="clear"></div>';
 
                        $s .= '<div id="twitter-disconnect-wrapper">';
@@ -291,7 +299,12 @@ function twitter_post_hook(&$a,&$b) {
                 // we can later send to Twitter. This way we can "gain" some 
                 // information during shortening of potential links but do not 
                 // shorten all the links in a 200000 character long essay.
-                $tmp = substr($b['body'], 0, 2*$max_char);
+                if (! $b['title']=='') {
+                    $tmp = $b['title'] . ' : '. $b['body'];
+                    $tmp = substr($tmp, 0, 2*$max_char);
+                } else {
+                    $tmp = substr($b['body'], 0, 2*$max_char);
+                }
                 // if [url=bla][img]blub.png[/img][/url] get blub.png
                 $tmp = preg_replace( '/\[url\=(https?\:\/\/[a-zA-Z0-9\:\/\-\?\&\;\.\=\_\~\#\%\$\!\+\,]+)\]\[img\](\\w+.*?)\\[\\/img\]\\[\\/url\]/i', '$2', $tmp);
                 // preserve links to images, videos and audios
@@ -301,12 +314,13 @@ function twitter_post_hook(&$a,&$b) {
                 $tmp = preg_replace( '/\[\\/?youtube(\\s+.*?\]|\])/i', '', $tmp);
                 $tmp = preg_replace( '/\[\\/?vimeo(\\s+.*?\]|\])/i', '', $tmp);
                 $tmp = preg_replace( '/\[\\/?audio(\\s+.*?\]|\])/i', '', $tmp);
+                $linksenabled = get_pconfig($b['uid'],'twitter','post_taglinks');
                 // if a #tag is linked, don't send the [url] over to SN
-                //   this is commented out by default as it means backlinks
-                //   to friendica, if you don't like this feel free to
-                //   uncomment the following line
-//                $tmp = preg_replace( '/#\[url\=(\w+.*?)\](\w+.*?)\[\/url\]/i', '#$2', $tmp);
-                // preserve links to webpages
+                // that is, don't send if the option is not set in the 
+                // connector settings
+                if ($linksenabled=='0') {
+                    $tmp = preg_replace( '/#\[url\=(\w+.*?)\](\w+.*?)\[\/url\]/i', '#$2', $tmp);
+                }
                 $tmp = preg_replace( '/\[url\=(https?\:\/\/[a-zA-Z0-9\:\/\-\?\&\;\.\=\_\~\#\%\$\!\+\,]+)\](\w+.*?)\[\/url\]/i', '$2 $1', $tmp);
                 $tmp = preg_replace( '/\[bookmark\=(https?\:\/\/[a-zA-Z0-9\:\/\-\?\&\;\.\=\_\~\#\%\$\!\+\,]+)\](\w+.*?)\[\/bookmark\]/i', '$2 $1', $tmp);
                 // find all http or https links in the body of the entry and 
index 4717ab05bf134e9d2d32822543342315101a8dbe..2ace240a6fef124011513f485166f93df404300f 100644 (file)
Binary files a/viewsrc.tgz and b/viewsrc.tgz differ
index a610b76cac399f3a6215eedc2301c286f3d3384c..f165e9c5353ba73dd63bf2537bb691074eccb0d7 100644 (file)
@@ -32,7 +32,7 @@ EOS;
 }
 
 function viewsrc_item_photo_menu(&$a,&$b) {
-       if(! local_user())
+       if((! local_user()) || (local_user() != $b['item']['uid']))
                return;
        $b['menu'] = array_merge( array( t('View Source') => $a->get_baseurl() . '/viewsrc/'. $b['item']['id']), $b['menu']);
 
index c1d96048590adb215747e7cb8e85518b125f8528..47d5f588c285e211f26093c1d99cdccb23bdc093 100755 (executable)
Binary files a/widgets.tgz and b/widgets.tgz differ