From 147d7f3bbf6c785f2c1eb7cdcfaa0a47e0ee43d3 Mon Sep 17 00:00:00 2001 From: Friendika Date: Sun, 6 Feb 2011 15:50:50 -0800 Subject: theme name cleanup - rename default to loozah, provide sane fallbacks and change system primary theme. Provide indication on contact edit page of last update success/failure - can be extended later to show actual timestamp of last successful update. --- include/poller.php | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) (limited to 'include') diff --git a/include/poller.php b/include/poller.php index 20c84990e..1d88fe447 100644 --- a/include/poller.php +++ b/include/poller.php @@ -239,6 +239,7 @@ function poller_run($argv, $argc){ $xml = post_url($contact['poll'],$postvars); } else { + // $contact['network'] !== 'dfrn' $xml = fetch_url($contact['poll']); @@ -246,8 +247,14 @@ function poller_run($argv, $argc){ logger('poller: received xml : ' . $xml, LOGGER_DATA); - if(! strlen($xml)) + if(! strstr($xml,' Date: Sun, 6 Feb 2011 19:15:20 -0800 Subject: fix contact photo updates - a result of baseurl being wrong for cmdline processes --- include/poller.php | 1 - 1 file changed, 1 deletion(-) (limited to 'include') diff --git a/include/poller.php b/include/poller.php index 1d88fe447..66df080a9 100644 --- a/include/poller.php +++ b/include/poller.php @@ -28,7 +28,6 @@ function poller_run($argv, $argc){ // run queue delivery process in the background $php_path = ((x($a->config,'php_path') && strlen($a->config['php_path'])) ? $a->config['php_path'] : 'php'); - //proc_close(proc_open("\"$php_path\" \"include/queue.php\" &", array(), $foo)); proc_run($php_path,"include/queue.php"); // clear old cache -- cgit v1.2.3 From 0d9ed4873801a669ff9530a5fa434252a1be2a57 Mon Sep 17 00:00:00 2001 From: Friendika Date: Sun, 6 Feb 2011 22:41:07 -0800 Subject: functionise birthday --- include/items.php | 39 +-------------------------------------- include/notifier.php | 8 ++++++-- 2 files changed, 7 insertions(+), 40 deletions(-) (limited to 'include') diff --git a/include/items.php b/include/items.php index 15fd262f4..5b99ca171 100644 --- a/include/items.php +++ b/include/items.php @@ -37,44 +37,7 @@ function get_feed_for(&$a, $dfrn_id, $owner_nick, $last_update, $direction = 0) else killme(); - - /** - * - * Determine the next birthday, but only if the birthday is published - * in the default profile. We _could_ also look for a private profile that the - * recipient can see, but somebody could get mad at us if they start getting - * public birthday greetings when they haven't made this info public. - * - * Assuming we are able to publish this info, we are then going to convert - * the start time from the owner's timezone to UTC. - * - * This will potentially solve the problem found with some social networks - * where birthdays are converted to the viewer's timezone and salutations from - * elsewhere in the world show up on the wrong day. We will convert it to the - * viewer's timezone also, but first we are going to convert it from the birthday - * person's timezone to GMT - so the viewer may find the birthday starting at - * 6:00PM the day before, but that will correspond to midnight to the birthday person. - * - */ - - $birthday = ''; - - $p = q("SELECT `dob` FROM `profile` WHERE `is-default` = 1 AND `uid` = %d LIMIT 1", - intval($owner_id) - ); - - if($p && count($p)) { - $tmp_dob = substr($p[0]['dob'],5); - if(intval($tmp_dob)) { - $y = datetime_convert($owner_tz,$owner_tz,'now','Y'); - $bd = $y . '-' . $tmp_dob . ' 00:00'; - $t_dob = strtotime($bd); - $now = strtotime(datetime_convert($owner_tz,$owner_tz,'now')); - if($t_dob < $now) - $bd = $y + 1 . '-' . $tmp_dob . ' 00:00'; - $birthday = datetime_convert($owner_tz,'UTC',$bd,ATOM_TIME); - } - } + $birthday = feed_birthday($owner_id,$owner_tz); if($dfrn_id && $dfrn_id != '*') { diff --git a/include/notifier.php b/include/notifier.php index 07bde7c4d..ca0aa0df3 100644 --- a/include/notifier.php +++ b/include/notifier.php @@ -87,7 +87,7 @@ function notifier_run($argv, $argc){ } } - $r = q("SELECT `contact`.*, `user`.`nickname`, `user`.`sprvkey`, `user`.`spubkey`, `user`.`page-flags` + $r = q("SELECT `contact`.*, `user`.`timezone`, `user`.`nickname`, `user`.`sprvkey`, `user`.`spubkey`, `user`.`page-flags` FROM `contact` LEFT JOIN `user` ON `user`.`uid` = `contact`.`uid` WHERE `contact`.`uid` = %d AND `contact`.`self` = 1 LIMIT 1", intval($uid) @@ -194,6 +194,10 @@ function notifier_run($argv, $argc){ } } + $birthday = feed_birthday($owner['uid'],$owner['timezone']); + if($birthday) + $birthday = '' . xmlify($birthday) . ''; + $atom .= replace_macros($feed_template, array( '$version' => xmlify(FRIENDIKA_VERSION), '$feed_id' => xmlify($a->get_baseurl() . '/profile/' . $owner['nickname'] ), @@ -208,7 +212,7 @@ function notifier_run($argv, $argc){ '$picdate' => xmlify(datetime_convert('UTC','UTC',$owner['avatar-date'] . '+00:00' , ATOM_TIME)) , '$uridate' => xmlify(datetime_convert('UTC','UTC',$owner['uri-date'] . '+00:00' , ATOM_TIME)) , '$namdate' => xmlify(datetime_convert('UTC','UTC',$owner['name-date'] . '+00:00' , ATOM_TIME)) , - '$birthday' => '' + '$birthday' => $birthday )); if($cmd === 'mail') { -- cgit v1.2.3 From 18c5d1ff90dd364328032b3f0092ac5176ebc4c5 Mon Sep 17 00:00:00 2001 From: Friendika Date: Mon, 7 Feb 2011 17:06:04 -0800 Subject: feed cleanup --- include/items.php | 68 ++++++++++++++++------------------------------------ include/notifier.php | 18 ++++---------- 2 files changed, 25 insertions(+), 61 deletions(-) (limited to 'include') diff --git a/include/items.php b/include/items.php index 5b99ca171..9c29e6558 100644 --- a/include/items.php +++ b/include/items.php @@ -9,37 +9,27 @@ function get_feed_for(&$a, $dfrn_id, $owner_nick, $last_update, $direction = 0) // default permissions - anonymous user - $sql_extra = " - AND `allow_cid` = '' - AND `allow_gid` = '' - AND `deny_cid` = '' - AND `deny_gid` = '' - "; - - if(strlen($owner_nick) && ! intval($owner_nick)) { - $r = q("SELECT `uid`, `nickname`, `timezone` FROM `user` WHERE `nickname` = '%s' LIMIT 1", - dbesc($owner_nick) - ); - if(count($r)) { - $owner_id = $r[0]['uid']; - $owner_nick = $r[0]['nickname']; - $owner_tz = $r[0]['timezone']; - } - } + if(! strlen($owner_nick)) + killme(); - $r = q("SELECT * FROM `contact` WHERE `self` = 1 AND `uid` = %d LIMIT 1", - intval($owner_id) + $sql_extra = " AND `allow_cid` = '' AND `allow_gid` = '' AND `deny_cid` = '' AND `deny_gid` = '' "; + + $r = q("SELECT `contact`.*, `user`.`uid` AS `user_uid`, `user`.`nickname`, `user`.`timezone` + FROM `contact` LEFT JOIN `user` ON `user`.`uid` = `contact`.`uid` + WHERE `contact`.`self` = 1 AND `user`.`nickname` = '%s' LIMIT 1", + dbesc($owner_nick) ); - if(count($r)) { - $owner = $r[0]; - $owner['nickname'] = $owner_nick; - } - else + + if(! count($r)) killme(); - $birthday = feed_birthday($owner_id,$owner_tz); + $owner = $r[0]; + $owner_id = $owner['user_uid']; + $owner_nick = $owner['nickname']; + + $birthday = feed_birthday($owner_id,$owner['timezone']); - if($dfrn_id && $dfrn_id != '*') { + if(strlen($dfrn_id)) { $sql_extra = ''; switch($direction) { @@ -65,7 +55,7 @@ function get_feed_for(&$a, $dfrn_id, $owner_nick, $last_update, $direction = 0) ); if(! count($r)) - return false; + killme(); $contact = $r[0]; $groups = init_groups_visitor($contact['id']); @@ -119,7 +109,7 @@ function get_feed_for(&$a, $dfrn_id, $owner_nick, $last_update, $direction = 0) ); // Will check further below if this actually returned results. - // We will provide an empty feed in any case. + // We will provide an empty feed if that is the case. $items = $r; @@ -127,25 +117,9 @@ function get_feed_for(&$a, $dfrn_id, $owner_nick, $last_update, $direction = 0) $atom = ''; - $hub = get_config('system','huburl'); - - $hubxml = ''; - if(strlen($hub)) { - $hubs = explode(',', $hub); - if(count($hubs)) { - foreach($hubs as $h) { - $h = trim($h); - if(! strlen($h)) - continue; - $hubxml .= '' . "\n" ; - } - } - } - - $salmon = '' . "\n" ; - $salmon .= '' . "\n" ; - $salmon .= '' . "\n" ; + $hubxml = feed_hublinks(); + $salmon = feed_salmonlinks($owner_nick); $atom .= replace_macros($feed_template, array( '$version' => xmlify(FRIENDIKA_VERSION), @@ -178,7 +152,7 @@ function get_feed_for(&$a, $dfrn_id, $owner_nick, $last_update, $direction = 0) // public feeds get html, our own nodes use bbcode - if($dfrn_id === '*') { + if($dfrn_id === '') { $type = 'html'; } else { diff --git a/include/notifier.php b/include/notifier.php index ca0aa0df3..b6c4ca571 100644 --- a/include/notifier.php +++ b/include/notifier.php @@ -179,23 +179,13 @@ function notifier_run($argv, $argc){ $mail_template = load_view_file('view/atom_mail.tpl'); $atom = ''; - $hubxml = ''; $slaps = array(); - if(strlen($hub)) { - $hubs = explode(',', $hub); - if(count($hubs)) { - foreach($hubs as $h) { - $h = trim($h); - if(! strlen($h)) - continue; - $hubxml .= '' . "\n" ; - } - } - } + $hubxml = feed_hublinks(); $birthday = feed_birthday($owner['uid'],$owner['timezone']); - if($birthday) + + if(strlen($birthday)) $birthday = '' . xmlify($birthday) . ''; $atom .= replace_macros($feed_template, array( @@ -398,7 +388,7 @@ function notifier_run($argv, $argc){ * */ - $max_allowed = ((get_config('system','maxpubdeliver') === false) ? 150 : intval(get_config('system','maxdeliver'))); + $max_allowed = ((get_config('system','maxpubdeliver') === false) ? 150 : intval(get_config('system','maxpubdeliver'))); /** * -- cgit v1.2.3 From 9f5d3000c74253a1284abda16006d74df84073fe Mon Sep 17 00:00:00 2001 From: Friendika Date: Mon, 7 Feb 2011 21:16:39 -0800 Subject: don't change photo visibility if only album name was changed --- include/items.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'include') diff --git a/include/items.php b/include/items.php index 9c29e6558..5d9eaaaf3 100644 --- a/include/items.php +++ b/include/items.php @@ -859,12 +859,12 @@ function dfrn_deliver($owner,$contact,$atom, $dissolve = false) { } -/* +/** * * consume_feed - process atom feed and update anything/everything we might need to update * - * $xml = the (atom) feed to consume - no RSS spoken here, it might partially work since simplepie - * handles both, but we don't claim it will work well, and are reasonably certain it won't. + * $xml = the (atom) feed to consume - RSS isn't as fully supported but may work for simple feeds. + * * $importer = the contact_record (joined to user_record) of the local user who owns this relationship. * It is this person's stuff that is going to be updated. * $contact = the person who is sending us stuff. If not set, we MAY be processing a "follow" activity -- cgit v1.2.3 From d8cd693f1149dc2fb14a7527553b45e8a3b1b62f Mon Sep 17 00:00:00 2001 From: Friendika Date: Tue, 8 Feb 2011 04:25:27 -0800 Subject: rework remote deletion --- include/items.php | 45 ++++++++++++++++++++++++++++----------------- 1 file changed, 28 insertions(+), 17 deletions(-) (limited to 'include') diff --git a/include/items.php b/include/items.php index 5d9eaaaf3..5185e74dc 100644 --- a/include/items.php +++ b/include/items.php @@ -1031,25 +1031,18 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0) { } - // Now process the feed - if($feed->get_item_quantity()) { - // in inverse date order - if ($datedir) - $items = array_reverse($feed->get_items()); - else - $items = $feed->get_items(); - - foreach($items as $item) { + // process any deleted entries + $del_entries = $feed->get_feed_tags(NAMESPACE_TOMB, 'deleted-entry'); + if(is_array($del_entries) && count($del_entries)) { + foreach($del_entries as $dentry) { $deleted = false; - - $rawdelete = $item->get_item_tags( NAMESPACE_TOMB, 'deleted-entry'); - if(isset($rawdelete[0]['attribs']['']['ref'])) { - $uri = $rawthread[0]['attribs']['']['ref']; + if(isset($dentry['attribs']['']['ref'])) { + $uri = $dentry['attribs']['']['ref']; $deleted = true; - if(isset($rawdelete[0]['attribs']['']['when'])) { - $when = $rawthread[0]['attribs']['']['when']; + if(isset($dentry['attribs']['']['when'])) { + $when = $dentry['attribs']['']['when']; $when = datetime_convert('UTC','UTC', $when, 'Y-m-d H:i:s'); } else @@ -1063,6 +1056,10 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0) { ); if(count($r)) { $item = $r[0]; + + if(! $item['deleted']) + logger('dfrn_notify: deleting item ' . $item['id'] . ' uri=' . $item['uri'], LOGGER_DEBUG); + if($item['uri'] == $item['parent-uri']) { $r = q("UPDATE `item` SET `deleted` = 1, `edited` = '%s', `changed` = '%s', `body` = '', `title` = '' @@ -1103,10 +1100,25 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0) { } } } - continue; } + } + } + + // Now process the feed + + if($feed->get_item_quantity()) { + + logger('consume_feed: feed item count = ' . $feed->get_item_quantity()); + + // in inverse date order + if ($datedir) + $items = array_reverse($feed->get_items()); + else + $items = $feed->get_items(); + foreach($items as $item) { + $is_reply = false; $item_id = $item->get_id(); $rawthread = $item->get_item_tags( NAMESPACE_THREAD,'in-reply-to'); @@ -1115,7 +1127,6 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0) { $parent_uri = $rawthread[0]['attribs']['']['ref']; } - if(($is_reply) && is_array($contact)) { // Have we seen it? If not, import it. -- cgit v1.2.3 From 9a1e5aaf09c1b940f4615f7dc2999e16b019ab18 Mon Sep 17 00:00:00 2001 From: Friendika Date: Tue, 8 Feb 2011 05:08:10 -0800 Subject: tweaks to reworked remote deletion, which also fixes some comment box oddities --- include/items.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/items.php b/include/items.php index 5185e74dc..cffd13a01 100644 --- a/include/items.php +++ b/include/items.php @@ -1058,7 +1058,7 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0) { $item = $r[0]; if(! $item['deleted']) - logger('dfrn_notify: deleting item ' . $item['id'] . ' uri=' . $item['uri'], LOGGER_DEBUG); + logger('consume_feed: deleting item ' . $item['id'] . ' uri=' . $item['uri'], LOGGER_DEBUG); if($item['uri'] == $item['parent-uri']) { $r = q("UPDATE `item` SET `deleted` = 1, `edited` = '%s', `changed` = '%s', @@ -1081,7 +1081,7 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0) { ); if($item['last-child']) { // ensure that last-child is set in case the comment that had it just got wiped. - $q("UPDATE `item` SET `last-child` = 0, `changed` = '%s' WHERE `parent-uri` = '%s' AND `uid` = %d ", + q("UPDATE `item` SET `last-child` = 0, `changed` = '%s' WHERE `parent-uri` = '%s' AND `uid` = %d ", dbesc(datetime_convert()), dbesc($item['parent-uri']), intval($item['uid']) -- cgit v1.2.3