fix to imported youtube videos, updating of contact profile photos, do not remove "dead" contacts but archive them.

This commit is contained in:
friendica 2012-06-13 19:59:20 -07:00
parent 24bf4632af
commit 7d8b087f4a
4 changed files with 105 additions and 34 deletions

View file

@ -146,12 +146,23 @@ function mark_for_death($contact) {
); );
} }
else { else {
// TODO: We really should send a notification to the owner after 2-3 weeks
// so they won't be surprised when the contact vanishes and can take
// remedial action if this was a serious mistake or glitch
$expiry = $contact['term-date'] . ' + 32 days '; $expiry = $contact['term-date'] . ' + 32 days ';
if(datetime_convert() > datetime_convert('UTC','UTC',$expiry)) { if(datetime_convert() > datetime_convert('UTC','UTC',$expiry)) {
// relationship is really truly dead. // relationship is really truly dead.
// archive them rather than delete
// though if the owner tries to unarchive them we'll start the whole process over again
contact_remove($contact['id']); q("update contact set `archive` = 1 where id = %d limit 1",
intval($contact['id'])
);
//contact_remove($contact['id']);
} }
} }

View file

@ -256,6 +256,56 @@ class Photo {
else else
$guid = get_guid(); $guid = get_guid();
$x = q("select id from photo where `resource-id` = '%s' and uid = %d and `contact-id` = %d and `scale` = %d limit 1",
dbesc($rid),
intval($uid),
intval($cid),
intval($scale)
);
if(count($x)) {
$r = q("UPDATE `photo`
set `uid` = %d,
`contact-id` = %d,
`guid` = '%s',
`resource-id` = '%s',
`created` = '%s',
`edited` = '%s',
`filename` = '%s',
`type` = '%s',
`album` = '%s',
`height` = %d,
`width` = %d,
`data` = '%s',
`scale` = %d,
`profile` = %d,
`allow_cid` = '%s',
`allow_gid` = '%s',
`deny_cid` = '%s',
`deny_gid` = '%s',
where id = %d limit 1",
intval($uid),
intval($cid),
dbesc($guid),
dbesc($rid),
dbesc(datetime_convert()),
dbesc(datetime_convert()),
dbesc(basename($filename)),
dbesc($this->type),
dbesc($album),
intval($this->height),
intval($this->width),
dbesc($this->imageString()),
intval($scale),
intval($profile),
dbesc($allow_cid),
dbesc($allow_gid),
dbesc($deny_cid),
dbesc($deny_gid),
intval($x[0]['id'])
);
}
else {
$r = q("INSERT INTO `photo` $r = q("INSERT INTO `photo`
( `uid`, `contact-id`, `guid`, `resource-id`, `created`, `edited`, `filename`, type, `album`, `height`, `width`, `data`, `scale`, `profile`, `allow_cid`, `allow_gid`, `deny_cid`, `deny_gid` ) ( `uid`, `contact-id`, `guid`, `resource-id`, `created`, `edited`, `filename`, type, `album`, `height`, `width`, `data`, `scale`, `profile`, `allow_cid`, `allow_gid`, `deny_cid`, `deny_gid` )
VALUES ( %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, %d, '%s', %d, %d, '%s', '%s', '%s', '%s' )", VALUES ( %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, %d, '%s', %d, %d, '%s', '%s', '%s', '%s' )",
@ -278,13 +328,9 @@ class Photo {
dbesc($deny_cid), dbesc($deny_cid),
dbesc($deny_gid) dbesc($deny_gid)
); );
}
return $r; return $r;
} }
}} }}
@ -326,6 +372,17 @@ function import_profile_photo($photo,$uid,$cid) {
$a = get_app(); $a = get_app();
$r = q("select `resource-id` from photo where `uid` = %d and `contact-id` = %d and `scale` = 4 and `album` = 'Contact Photos' limit 1",
intval($uid),
intval($cid)
);
if(count($r)) {
$hash = $r[0]['resource-id'];
}
else {
$hash = photo_new_resource();
}
$photo_failure = false; $photo_failure = false;
$filename = basename($photo); $filename = basename($photo);
@ -340,8 +397,6 @@ function import_profile_photo($photo,$uid,$cid) {
$img->scaleImageSquare(175); $img->scaleImageSquare(175);
$hash = photo_new_resource();
$r = $img->store($uid, $cid, $hash, $filename, 'Contact Photos', 4 ); $r = $img->store($uid, $cid, $hash, $filename, 'Contact Photos', 4 );
if($r === false) if($r === false)
@ -361,8 +416,6 @@ function import_profile_photo($photo,$uid,$cid) {
if($r === false) if($r === false)
$photo_failure = true; $photo_failure = true;
$photo = $a->get_baseurl() . '/photo/' . $hash . '-4.' . $img->getExt(); $photo = $a->get_baseurl() . '/photo/' . $hash . '-4.' . $img->getExt();
$thumb = $a->get_baseurl() . '/photo/' . $hash . '-5.' . $img->getExt(); $thumb = $a->get_baseurl() . '/photo/' . $hash . '-5.' . $img->getExt();
$micro = $a->get_baseurl() . '/photo/' . $hash . '-6.' . $img->getExt(); $micro = $a->get_baseurl() . '/photo/' . $hash . '-6.' . $img->getExt();

View file

@ -23,6 +23,13 @@ function was_recently_delayed($cid) {
); );
if(count($r)) if(count($r))
return true; return true;
$r = q("select `term-date` from contact where id = %d and `term-date` != '' and `term-date` != '0000-00-00 00:00:00' limit 1",
intval($cid)
);
if(count($r))
return true;
return false; return false;
} }

View file

@ -1255,13 +1255,13 @@ function bb_translate_video($s) {
function html2bb_video($s) { function html2bb_video($s) {
$s = preg_replace('#<object[^>]+>(.*?)https+://www.youtube.com/((?:v|cp)/[A-Za-z0-9\-_=]+)(.*?)</object>#ism', $s = preg_replace('#<object[^>]+>(.*?)https?://www.youtube.com/((?:v|cp)/[A-Za-z0-9\-_=]+)(.*?)</object>#ism',
'[youtube]$2[/youtube]', $s); '[youtube]$2[/youtube]', $s);
$s = preg_replace('#<iframe[^>](.*?)https+://www.youtube.com/embed/([A-Za-z0-9\-_=]+)(.*?)</iframe>#ism', $s = preg_replace('#<iframe[^>](.*?)https?://www.youtube.com/embed/([A-Za-z0-9\-_=]+)(.*?)</iframe>#ism',
'[youtube]$2[/youtube]', $s); '[youtube]$2[/youtube]', $s);
$s = preg_replace('#<iframe[^>](.*?)https+://player.vimeo.com/video/([0-9]+)(.*?)</iframe>#ism', $s = preg_replace('#<iframe[^>](.*?)https?://player.vimeo.com/video/([0-9]+)(.*?)</iframe>#ism',
'[vimeo]$2[/vimeo]', $s); '[vimeo]$2[/vimeo]', $s);
return $s; return $s;