]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - lib/util.php
add all params to subscribers
[quix0rs-gnu-social.git] / lib / util.php
index 634140fef5bb9b3e407b6f86f8baf904e80834d0..68644e9164c650501ec4f1beeb2276062e693fc2 100644 (file)
@@ -180,6 +180,9 @@ function common_show_header($pagetitle, $callable=NULL, $data=NULL, $headercall=
        common_element('script', array('type' => 'text/javascript',
                                                                   'src' => common_path('js/jquery.form.js')),
                                   ' ');
+       common_element('script', array('type' => 'text/javascript',
+                                                                  'src' => common_path('js/xbImportNode.js')),
+                                  ' ');
        common_element('script', array('type' => 'text/javascript',
                                                                   'src' => common_path('js/util.js?version='.LACONICA_VERSION)),
                                   ' ');
@@ -744,13 +747,27 @@ function common_render_uri_thingy($matches) {
                        $trailer = $final . $trailer;
                }
        }
-       return '<a href="' . $uri . '" class="extlink">' . $uri . '</a>' . $trailer;
+       if ($longurl = common_longurl($uri)) {
+               $longurl = htmlentities($longurl, ENT_QUOTES, 'UTF-8');
+               $title = " title='$longurl'";
+       }
+       else $title = '';
+       
+       return '<a href="' . $uri . '"' . $title . ' class="extlink">' . $uri . '</a>' . $trailer;
+}
+
+function common_longurl($uri)  {
+       $uri_e = urlencode($uri);
+       $longurl = unserialize(file_get_contents("http://api.longurl.org/v1/expand?format=php&url=$uri_e"));
+       if (empty($longurl['long_url']) || $uri === $longurl['long_url']) return false;
+       return stripslashes($longurl['long_url']);
 }
 
 function common_shorten_links($text) {
-       $r = htmlspecialchars($text);
-       $r = preg_replace('@https?://[^)\]>\s]+@e', "common_shorten_link('\\0')", $r);
-       return $r;
+    // \s = not a horizontal whitespace character (since PHP 5.2.4)
+       // RYM this should prevent * preceded URLs from being processed but it its a char
+//     $r = preg_replace('@[^*](https?://[^)\]>\s]+)@e', "common_shorten_link('\\1')", $r);
+       return preg_replace('@https?://[^)\]>\s]+@e', "common_shorten_link('\\0')", $text);
 }
 
 function common_shorten_link($long_url) {
@@ -768,7 +785,7 @@ function common_shorten_link($long_url) {
             $short_url = $short_url_service->shorten($long_url);
             break;
             
-        case '2tu.ru':
+        case '2tu.us':
             $short_url_service = new TightUrl;
             $short_url = $short_url_service->shorten($long_url);
             break;
@@ -777,7 +794,12 @@ function common_shorten_link($long_url) {
             $short_url_service = new PtitUrl;
             $short_url = $short_url_service->shorten($long_url);
             break;
-            
+
+        case 'bit.ly':
+                       curl_setopt($curlh, CURLOPT_URL, 'http://bit.ly/api?method=shorten&long_url='.urlencode($long_url));
+                       $short_url = current(json_decode(curl_exec($curlh))->results)->hashUrl;
+            break;
+
                case 'is.gd':
                        curl_setopt($curlh, CURLOPT_URL, 'http://is.gd/api.php?longurl='.urlencode($long_url));
                        $short_url = curl_exec($curlh);
@@ -956,6 +978,8 @@ function common_fancy_url($action, $args=NULL) {
                } else {
                        return common_path('main/remote');
                }
+        case 'nudge':
+               return common_path($args['nickname'].'/nudge');
         case 'openidlogin':
                return common_path('main/openid');
         case 'profilesettings':
@@ -987,8 +1011,6 @@ function common_fancy_url($action, $args=NULL) {
         case 'xrds':
         case 'foaf':
                return common_path($args['nickname'].'/'.$action);
-        case 'subscriptions':
-        case 'subscribers':
         case 'all':
         case 'replies':
         case 'inbox':
@@ -998,6 +1020,16 @@ function common_fancy_url($action, $args=NULL) {
                } else {
                        return common_path($args['nickname'].'/'.$action);
                }
+        case 'subscriptions':
+        case 'subscribers':
+               $nickname = $args['nickname'];
+               unset($args['nickname']);
+               $params = http_build_query($args);
+               if ($params) {
+                       return common_path($nickname.'/'.$action . '?' . $params);
+               } else {
+                       return common_path($nickname.'/'.$action);
+               }
         case 'allrss':
                return common_path($args['nickname'].'/all/rss');
         case 'repliesrss':
@@ -1010,6 +1042,9 @@ function common_fancy_url($action, $args=NULL) {
                } else {
                        return common_path($args['nickname']);
                }
+
+        case 'usertimeline':
+               return common_path("api/statuses/user_timeline/".$args['nickname'].".atom");
         case 'confirmaddress':
                return common_path('main/confirmaddress/'.$args['code']);
         case 'userbyid':
@@ -1239,7 +1274,7 @@ function common_save_replies($notice) {
 function common_broadcast_notice($notice, $remote=false) {
 
        // Check to see if notice should go to Twitter
-       $flink = Foreign_link::getForeignLink($notice->profile_id, 1); // 1 == Twitter
+       $flink = Foreign_link::getByUserID($notice->profile_id, 1); // 1 == Twitter
        if (($flink->noticesync & FOREIGN_NOTICE_SEND) == FOREIGN_NOTICE_SEND) {
 
                // If it's not a Twitter-style reply, or if the user WANTS to send replies...
@@ -1787,13 +1822,25 @@ function common_disfavor_form($notice) {
                                                                           'method' => 'post',
                                                                           'class' => 'disfavor',
                                                                           'action' => common_local_url('disfavor')));
-       common_hidden('token', common_session_token());
-       common_hidden('notice', $notice->id);
+
+       common_element('input', array('type' => 'hidden',
+                                                                 'name' => 'token-'. $notice->id,
+                                                                 'id' => 'token-'. $notice->id,
+                                                                 'class' => 'token',
+                                                                 'value' => common_session_token()));
+
+       common_element('input', array('type' => 'hidden',
+                                                                 'name' => 'notice',
+                                                                 'id' => 'notice-n'. $notice->id,
+                                                                 'class' => 'notice',
+                                                                 'value' => $notice->id));
+
        common_element('input', array('type' => 'submit',
                                                                  'id' => 'disfavor-submit-' . $notice->id,
                                                                  'name' => 'disfavor-submit-' . $notice->id,
                                                                  'class' => 'disfavor',
-                                                                 'value' => '♥'));
+                                                                 'value' => 'Disfavor favorite',
+                                                                 'title' => 'Remove this message from favorites'));
        common_element_end('form');
 }
 
@@ -1802,16 +1849,42 @@ function common_favor_form($notice) {
                                                                           'method' => 'post',
                                                                           'class' => 'favor',
                                                                           'action' => common_local_url('favor')));
-       common_hidden('token', common_session_token());
-       common_hidden('notice', $notice->id);
+
+       common_element('input', array('type' => 'hidden',
+                                                                 'name' => 'token-'. $notice->id,
+                                                                 'id' => 'token-'. $notice->id,
+                                                                 'class' => 'token',
+                                                                 'value' => common_session_token()));
+
+       common_element('input', array('type' => 'hidden',
+                                                                 'name' => 'notice',
+                                                                 'id' => 'notice-n'. $notice->id,
+                                                                 'class' => 'notice',
+                                                                 'value' => $notice->id));
+       
        common_element('input', array('type' => 'submit',
                                                                  'id' => 'favor-submit-' . $notice->id,
                                                                  'name' => 'favor-submit-' . $notice->id,
                                                                  'class' => 'favor',
-                                                                 'value' => '♡'));
+                                                                 'value' => 'Add to favorites',
+                                                                 'title' => 'Add this message to favorites'));
+       common_element_end('form');
+}
+
+function common_nudge_form($profile) {
+       common_element_start('form', array('id' => 'nudge', 'method' => 'post',
+                                                                          'action' => common_local_url('nudge', array('nickname' => $profile->nickname))));
+       common_hidden('token', common_session_token());
+       common_element('input', array('type' => 'submit',
+                                                                 'class' => 'submit',
+                                                                 'value' => _('Send a nudge')));
        common_element_end('form');
 }
 
+function common_nudge_response() {
+       common_element('p', array('id' => 'nudge_response'), _('Nudge sent!'));
+}
+
 function common_cache_key($extra) {
        return 'laconica:' . common_keyize(common_config('site', 'name')) . ':' . $extra;
 }