]> git.mxchange.org Git - friendica.git/commitdiff
allow parentless items from SN - add more tracing on notify failures
authorFriendika <info@friendika.com>
Fri, 4 Feb 2011 01:40:04 +0000 (17:40 -0800)
committerFriendika <info@friendika.com>
Fri, 4 Feb 2011 01:40:04 +0000 (17:40 -0800)
include/items.php
mod/dfrn_notify.php

index 9f693e60d3b1914191209ecba0b663e847b1cb5f..45d8b62c0ba267544671edd7ca616d0af97ed7af 100644 (file)
@@ -611,7 +611,7 @@ function encode_rel_links($links) {
        return xmlify($o);
 }
 
-function item_store($arr) {
+function item_store($arr,$force_parent = false) {
 
        if($arr['gravity'])
                $arr['gravity'] = intval($arr['gravity']);
@@ -695,8 +695,20 @@ function item_store($arr) {
                        $deny_gid  = $r[0]['deny_gid'];
                }
                else {
-                       logger('item_store: item parent was not found - ignoring item');
-                       return 0;
+
+                       // Allow one to see reply tweets from status.net even when
+                       // we don't have or can't see the original post.
+
+                       if($force_parent) {
+                               logger('item_store: $force_parent=true, reply converted to top-level post.');
+                               $parent_id = 0;
+                               $arr['thr-parent'] = $arr['parent-uri'];
+                               $arr['parent-uri'] = $arr['uri'];
+                       }
+                       else {
+                               logger('item_store: item parent was not found - ignoring item');
+                               return 0;
+                       }
                }
        }
 
@@ -1194,8 +1206,9 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0) {
                                        continue;
                                }
                                $datarray = get_atom_elements($feed,$item);
-
+                               $force_parent = false;
                                if($contact['network'] === 'stat') {
+                                       $force_parent = true;
                                        if(strlen($datarray['title']))
                                                unset($datarray['title']);
                                        $r = q("UPDATE `item` SET `last-child` = 0, `changed` = '%s' WHERE `parent-uri` = '%s' AND `uid` = %d",
@@ -1218,7 +1231,7 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0) {
                                        $datarray['gravity'] = GRAVITY_LIKE;
                                }
 
-                               $r = item_store($datarray);
+                               $r = item_store($datarray,$force_parent);
                                continue;
                        }
 
index cad7f9563772be33a7531a55738d8d7d65d278db..56b2c0bb137adf129b98b55a61849cd10a497f22 100644 (file)
@@ -24,7 +24,13 @@ function dfrn_notify_post(&$a) {
                dbesc($challenge)
        );
        if(! count($r)) {
-               logger('dfrn_notify: could not match challenge to dfrn_id ' . $dfrn_id);
+               logger('dfrn_notify: could not match challenge to dfrn_id ' . $dfrn_id . ' challenge=' . $challenge);
+
+               // apply some extra tracing
+               dbg(1);
+               q("SELECT * FROM `challenge` WHERE 1");
+               dbg(0); 
+       
                xml_status(3);
        }
 
@@ -468,12 +474,13 @@ function dfrn_notify_content(&$a) {
                $r = q("DELETE FROM `challenge` WHERE `expire` < " . intval(time()));
 
                $r = q("INSERT INTO `challenge` ( `challenge`, `dfrn-id`, `expire` )
-                       VALUES( '%s', '%s', '%s') ",
+                       VALUES( '%s', '%s', %d ) ",
                        dbesc($hash),
                        dbesc($dfrn_id),
-                       intval(time() + 60 )
+                       intval(time() + 90 )
                );
 
+               logger('dfrn_notify: challenge=' . $hash . ' return value=' . $r);
 
                $sql_extra = '';
                switch($direction) {