implement time travelling posts

This commit is contained in:
friendica 2013-05-23 17:24:15 -07:00
parent bb31e6bd6a
commit c721c3a20e
3 changed files with 20 additions and 0 deletions

View File

@ -413,6 +413,7 @@ define ( 'ITEM_SPAM', 0x0008);
define ( 'ITEM_DELETED', 0x0010); define ( 'ITEM_DELETED', 0x0010);
define ( 'ITEM_UNPUBLISHED', 0x0020); define ( 'ITEM_UNPUBLISHED', 0x0020);
define ( 'ITEM_WEBPAGE', 0x0040); // is a static web page, not a conversational item define ( 'ITEM_WEBPAGE', 0x0040); // is a static web page, not a conversational item
define ( 'ITEM_DELAYED_PUBLISH', 0x0080);
/** /**
* Item Flags * Item Flags

View File

@ -1486,6 +1486,15 @@ function item_store($arr,$force_parent = false) {
$arr['item_flags'] = $arr['item_flags'] | ITEM_UNSEEN; $arr['item_flags'] = $arr['item_flags'] | ITEM_UNSEEN;
// handle time travelers
// Allow a bit of fudge in case somebody just has a slightly slow/fast clock
$d1 = new DateTime('now +10 minutes');
$d2 = new DateTime($arr['created']);
if($d2 > $d1)
$arr['item_restrict'] = $arr['item_restrict'] | ITEM_DELAYED_PUBLISH;
$arr['llink'] = z_root() . '/display/' . $arr['mid']; $arr['llink'] = z_root() . '/display/' . $arr['mid'];
if(! $arr['plink']) if(! $arr['plink'])

View File

@ -38,6 +38,16 @@ function poller_run($argv, $argc){
intval(ACCOUNT_EXPIRED) intval(ACCOUNT_EXPIRED)
); );
// publish any applicable items that were set to be published in the future
// (time travel posts)
q("update item set item_restrict = ( item_restrict ^ %d )
where ( item_restrict & %d ) and created <= UTC_TIMESTAMP() ",
intval(ITEM_DELAYED_PUBLISH),
intval(ITEM_DELAYED_PUBLISH)
);
$abandon_days = intval(get_config('system','account_abandon_days')); $abandon_days = intval(get_config('system','account_abandon_days'));
if($abandon_days < 1) if($abandon_days < 1)
$abandon_days = 0; $abandon_days = 0;