aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/items.php23
-rw-r--r--mod/dfrn_notify.php13
2 files changed, 28 insertions, 8 deletions
diff --git a/include/items.php b/include/items.php
index 9f693e60d..45d8b62c0 100644
--- a/include/items.php
+++ b/include/items.php
@@ -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;
}
diff --git a/mod/dfrn_notify.php b/mod/dfrn_notify.php
index cad7f9563..56b2c0bb1 100644
--- a/mod/dfrn_notify.php
+++ b/mod/dfrn_notify.php
@@ -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) {