]> git.mxchange.org Git - friendica.git/blobdiff - include/pubsubpublish.php
added curly braces
[friendica.git] / include / pubsubpublish.php
index d27beea3d5ea7683a771afd319b54fac3abd571a..3641bbcf74fc3d16f98ed67b13a687119e31739a 100644 (file)
 <?php
-require_once("boot.php");
-require_once("include/ostatus.php");
+use \Friendica\Core\Config;
 
-function handle_pubsubhubbub() {
-       global $a, $db;
+require_once('include/items.php');
+require_once('include/ostatus.php');
 
-       logger('start');
-
-       // We'll push to each subscriber that has push > 0,
-       // i.e. there has been an update (set in notifier.php).
+function pubsubpublish_run(&$argv, &$argc){
 
-       $r = q("SELECT * FROM `push_subscriber` WHERE `push` > 0");
+       if ($argc > 1) {
+               $pubsubpublish_id = intval($argv[1]);
+       } else {
+               // We'll push to each subscriber that has push > 0,
+               // i.e. there has been an update (set in notifier.php).
+               $r = q("SELECT `id`, `callback_url` FROM `push_subscriber` WHERE `push` > 0");
+
+               foreach ($r as $rr) {
+                       logger("Publish feed to ".$rr["callback_url"], LOGGER_DEBUG);
+                       proc_run(PRIORITY_HIGH, 'include/pubsubpublish.php', $rr["id"]);
+               }
+       }
 
-       foreach($r as $rr) {
-               //$params = get_feed_for($a, '', $rr['nickname'], $rr['last_update'], 0, true);
-               $params = ostatus_feed($a, $rr['nickname'], $rr['last_update']);
-               $hmac_sig = hash_hmac("sha1", $params, $rr['secret']);
+       handle_pubsubhubbub($pubsubpublish_id);
 
-               $headers = array("Content-type: application/atom+xml",
-                               sprintf("Link: <%s>;rel=hub,<%s>;rel=self",
-                                       $a->get_baseurl().'/pubsubhubbub',
-                                       $rr['topic']),
-                               "X-Hub-Signature: sha1=".$hmac_sig);
+       return;
+}
 
-               logger('POST '.print_r($headers, true)."\n".$params, LOGGER_DEBUG);
+function handle_pubsubhubbub($id) {
+       global $a;
 
-               post_url($rr['callback_url'], $params, $headers);
-               $ret = $a->get_curl_code();
+       $r = q("SELECT * FROM `push_subscriber` WHERE `id` = %d", intval($id));
+       if (!$r)
+               return;
+       else
+               $rr = $r[0];
 
-               if ($ret >= 200 && $ret <= 299) {
-                       logger('successfully pushed to '.$rr['callback_url']);
+       logger("Generate feed of user ".$rr['nickname']." to ".$rr['callback_url']." - last updated ".$rr['last_update'], LOGGER_DEBUG);
 
-                       // set last_update to "now", and reset push=0
-                       $date_now = datetime_convert('UTC','UTC','now','Y-m-d H:i:s');
-                       q("UPDATE `push_subscriber` SET `push` = 0, last_update = '%s' WHERE id = %d",
-                               dbesc($date_now),
-                               intval($rr['id']));
+       $params = ostatus::feed($a, $rr['nickname'], $rr['last_update']);
+       $hmac_sig = hash_hmac("sha1", $params, $rr['secret']);
 
-               } else {
-                       logger('error when pushing to '.$rr['callback_url'].' HTTP: '.$ret);
+       $headers = array("Content-type: application/atom+xml",
+                       sprintf("Link: <%s>;rel=hub,<%s>;rel=self",
+                               App::get_baseurl().'/pubsubhubbub',
+                               $rr['topic']),
+                       "X-Hub-Signature: sha1=".$hmac_sig);
 
-                       // we use the push variable also as a counter, if we failed we
-                       // increment this until some upper limit where we give up
-                       $new_push = intval($rr['push']) + 1;
+       logger('POST '.print_r($headers, true)."\n".$params, LOGGER_DEBUG);
 
-                       if ($new_push > 30) // OK, let's give up
-                               $new_push = 0;
+       post_url($rr['callback_url'], $params, $headers);
+       $ret = $a->get_curl_code();
 
-                       q("UPDATE `push_subscriber` SET `push` = %d WHERE id = %d",
-                               $new_push,
-                               intval($rr['id']));
-               }
-       }
+       if ($ret >= 200 && $ret <= 299) {
+               logger('successfully pushed to '.$rr['callback_url']);
 
-       logger('done');
-}
+               // set last_update to "now", and reset push=0
+               $date_now = datetime_convert('UTC','UTC','now','Y-m-d H:i:s');
+               q("UPDATE `push_subscriber` SET `push` = 0, last_update = '%s' WHERE id = %d",
+                       dbesc($date_now),
+                       intval($rr['id']));
 
+       } else {
+               logger('error when pushing to '.$rr['callback_url'].' HTTP: '.$ret);
 
-function pubsubpublish_run(&$argv, &$argc){
-       global $a, $db;
+               // we use the push variable also as a counter, if we failed we
+               // increment this until some upper limit where we give up
+               $new_push = intval($rr['push']) + 1;
 
-       if(is_null($a)){
-               $a = new App;
-       }
+               if ($new_push > 30) // OK, let's give up
+                       $new_push = 0;
 
-       if(is_null($db)){
-               @include(".htconfig.php");
-               require_once("include/dba.php");
-               $db = new dba($db_host, $db_user, $db_pass, $db_data);
-               unset($db_host, $db_user, $db_pass, $db_data);
-       };
-
-       require_once('include/items.php');
-       require_once('include/pidfile.php');
-
-       load_config('config');
-       load_config('system');
-
-       $lockpath = get_lockpath();
-       if ($lockpath != '') {
-               $pidfile = new pidfile($lockpath, 'pubsubpublish');
-               if($pidfile->is_already_running()) {
-                       logger("Already running");
-                       if ($pidfile->running_time() > 9*60) {
-                               $pidfile->kill();
-                               logger("killed stale process");
-                               // Calling a new instance
-                               proc_run('php',"include/pubsubpublish.php");
-                       }
-                       return;
-               }
+               q("UPDATE `push_subscriber` SET `push` = %d WHERE id = %d",
+                       $new_push,
+                       intval($rr['id']));
        }
-
-       $a->set_baseurl(get_config('system','url'));
-
-       load_hooks();
-
-       if($argc > 1)
-               $pubsubpublish_id = intval($argv[1]);
-       else
-               $pubsubpublish_id = 0;
-
-       handle_pubsubhubbub();
-
-       return;
-
 }
-
-if (array_search(__file__,get_included_files())===0){
-  pubsubpublish_run($_SERVER["argv"],$_SERVER["argc"]);
-  killme();
-}
-