mirror of
https://git.sekbaer.de/Friendica/friendica.git
synced 2025-06-16 20:05:14 +02:00
diaspora birthday notifications
This commit is contained in:
parent
05e26e4895
commit
af6ab38100
7 changed files with 90 additions and 11 deletions
|
@ -393,3 +393,57 @@ function cal($y = 0,$m = 0, $links = false, $class='') {
|
|||
|
||||
return $o;
|
||||
}}
|
||||
|
||||
|
||||
function update_contact_birthdays() {
|
||||
|
||||
// This only handles foreign or alien networks where a birthday has been provided.
|
||||
// In-network birthdays are handled within local_delivery
|
||||
|
||||
$r = q("SELECT * FROM contact WHERE `bd` != '' AND `bd` != '0000-00-00' AND SUBSTRING(`bd`,1,4) != `bdyear` ");
|
||||
if(count($r)) {
|
||||
foreach($r as $rr) {
|
||||
|
||||
logger('update_contact_birthday: ' . $rr['bd']);
|
||||
|
||||
$nextbd = datetime_convert('UTC','UTC','now','Y') . substr($rr['bd'],4);
|
||||
|
||||
/**
|
||||
*
|
||||
* Add new birthday event for this person
|
||||
*
|
||||
* $bdtext is just a readable placeholder in case the event is shared
|
||||
* with others. We will replace it during presentation to our $importer
|
||||
* to contain a sparkle link and perhaps a photo.
|
||||
*
|
||||
*/
|
||||
|
||||
$bdtext = t('Birthday:') . ' [url=' . $rr['url'] . ']' . $rr['name'] . '[/url]' ;
|
||||
|
||||
|
||||
$r = q("INSERT INTO `event` (`uid`,`cid`,`created`,`edited`,`start`,`finish`,`desc`,`type`,`adjust`)
|
||||
VALUES ( %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', '%d' ) ",
|
||||
intval($rr['uid']),
|
||||
intval($rr['id']),
|
||||
dbesc(datetime_convert()),
|
||||
dbesc(datetime_convert()),
|
||||
dbesc(datetime_convert('UTC','UTC', $nextbd)),
|
||||
dbesc(datetime_convert('UTC','UTC', $nextbd . ' + 1 day ')),
|
||||
dbesc($bdtext),
|
||||
dbesc('birthday'),
|
||||
intval(0)
|
||||
);
|
||||
|
||||
|
||||
// update bdyear
|
||||
|
||||
q("UPDATE `contact` SET `bdyear` = '%s', `bd` = '%s' WHERE `uid` = %d AND `id` = %d LIMIT 1",
|
||||
dbesc(substr($nextbd,0,4)),
|
||||
dbesc($nextbd),
|
||||
intval($rr['uid']),
|
||||
intval($rr['id'])
|
||||
);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1024,9 +1024,11 @@ function diaspora_profile($importer,$xml) {
|
|||
|
||||
$images = import_profile_photo($image_url,$importer['uid'],$contact['id']);
|
||||
|
||||
// TODO handle birthdays - even though we don't know the original timezone (grrr.)
|
||||
// Generic birthday. We don't know the timezone. The year is irrelevant.
|
||||
|
||||
$r = q("UPDATE `contact` SET `name` = '%s', `name-date` = '%s', `photo` = '%s', `thumb` = '%s', `micro` = '%s', `avatar-date` = '%s' WHERE `id` = %d AND `uid` = %d LIMIT 1",
|
||||
$birthday = datetime_convert('UTC','UTC',$birthday,'Y-m-d');
|
||||
|
||||
$r = q("UPDATE `contact` SET `name` = '%s', `name-date` = '%s', `photo` = '%s', `thumb` = '%s', `micro` = '%s', `avatar-date` = '%s' , `bd` = '%s' WHERE `id` = %d AND `uid` = %d LIMIT 1",
|
||||
dbesc($name),
|
||||
dbesc(datetime_convert()),
|
||||
dbesc($images[0]),
|
||||
|
@ -1034,7 +1036,8 @@ function diaspora_profile($importer,$xml) {
|
|||
dbesc($images[2]),
|
||||
dbesc(datetime_convert()),
|
||||
intval($contact['id']),
|
||||
intval($importer['uid'])
|
||||
intval($importer['uid']),
|
||||
dbesc($birthday)
|
||||
);
|
||||
if($r) {
|
||||
if($oldphotos) {
|
||||
|
|
|
@ -50,12 +50,15 @@ function poller_run($argv, $argc){
|
|||
|
||||
|
||||
|
||||
// once daily run expire in background
|
||||
// once daily run birthday_updates and then expire in background
|
||||
|
||||
$d1 = get_config('system','last_expire_day');
|
||||
$d2 = intval(datetime_convert('UTC','UTC','now','d'));
|
||||
|
||||
if($d2 != intval($d1)) {
|
||||
|
||||
update_contact_birthdays();
|
||||
|
||||
set_config('system','last_expire_day',$d2);
|
||||
proc_run('php','include/expire.php');
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue