diff options
author | friendica <info@friendica.com> | 2013-07-29 20:31:02 -0700 |
---|---|---|
committer | friendica <info@friendica.com> | 2013-07-29 20:31:02 -0700 |
commit | 79dacc3f1ad86aabfc78c0ecb8603720dedd4cfe (patch) | |
tree | 691b1c2642b6cdc59f2fb91f54534a6196cc5ed1 | |
parent | 7b3c29ebe69726f7d42c9327bebb2ea7251bccb4 (diff) | |
download | volse-hubzilla-79dacc3f1ad86aabfc78c0ecb8603720dedd4cfe.tar.gz volse-hubzilla-79dacc3f1ad86aabfc78c0ecb8603720dedd4cfe.tar.bz2 volse-hubzilla-79dacc3f1ad86aabfc78c0ecb8603720dedd4cfe.zip |
fix some weirdness on the zot feed
-rw-r--r-- | include/conversation.php | 2 | ||||
-rwxr-xr-x | include/items.php | 33 | ||||
-rw-r--r-- | mod/zotfeed.php | 2 |
3 files changed, 24 insertions, 13 deletions
diff --git a/include/conversation.php b/include/conversation.php index 1023c068d..61b563a5d 100644 --- a/include/conversation.php +++ b/include/conversation.php @@ -1128,6 +1128,8 @@ function conv_sort($arr,$order) { usort($parents,'sort_thr_created'); elseif(stristr($order,'commented')) usort($parents,'sort_thr_commented'); + elseif(stristr($order,'ascending')) + usort($parents,'sort_thr_created_rev'); if(count($parents)) foreach($parents as $i=>$_x) diff --git a/include/items.php b/include/items.php index b22c02955..2d0966518 100755 --- a/include/items.php +++ b/include/items.php @@ -4743,28 +4743,37 @@ function zot_feed($uid,$observer_xchan,$mindate) { $sql_extra .= " and created > '$mindate' "; -// FIXME - // We probably should use two queries and pick up total conversations. - // For now get a chunk of raw posts in ascending created order so that - // hopefully the parent is imported before we see the kids. - // This will fail if there are more than $limit kids and you didn't - // receive the parent via direct delivery - - $limit = 200; + $limit = 50; + $items = array(); - $items = q("SELECT item.* from item - WHERE uid = %d AND item_restrict = 0 + $r = q("SELECT item.*, item.id as item_id from item + WHERE uid = %d AND item_restrict = 0 and id = parent AND (item_flags & %d) $sql_extra ORDER BY created ASC limit 0, $limit", intval($uid), intval(ITEM_WALL) ); + if($r) { + + $parents_str = ids_to_querystr($r,'id'); + + $items = q("SELECT `item`.*, `item`.`id` AS `item_id` FROM `item` + WHERE `item`.`uid` = %d AND `item`.`item_restrict` = 0 + AND `item`.`parent` IN ( %s ) ", + intval($uid), + dbesc($parents_str) + ); + + } + if($items) { xchan_query($items); $items = fetch_post_tags($items); - } else { - $items = array(); + $items = conv_sort($items,'ascending'); + } + else + $items = array(); foreach($items as $item) $result[] = encode_item($item); diff --git a/mod/zotfeed.php b/mod/zotfeed.php index 76a860139..2ca049563 100644 --- a/mod/zotfeed.php +++ b/mod/zotfeed.php @@ -9,7 +9,7 @@ function zotfeed_init(&$a) { $mindate = (($_REQUEST['mindate']) ? datetime_convert('UTC','UTC',$_REQUEST['mindate']) : ''); if(! $mindate) - $mindate = '0000-00-00 00:00:00'; + $mindate = datetime_convert('UTC','UTC', 'now - 1 month'); if(get_config('system','block_public') && (! get_account_id()) && (! remote_user())) { $result['message'] = 'Public access denied'; |