Use Model\Photo as much as possible
Most important is to use `Photo::delete()` to have backend to remove data.
This commit is contained in:
parent
d549787bc1
commit
8c75c26361
|
@ -3961,7 +3961,7 @@ function api_fr_photoalbum_delete($type)
|
|||
}
|
||||
|
||||
// now let's delete all photos from the album
|
||||
$result = DBA::delete('photo', ['uid' => api_user(), 'album' => $album]);
|
||||
$result = Photo::delete(['uid' => api_user(), 'album' => $album]);
|
||||
|
||||
// return success of deletion or error message
|
||||
if ($result) {
|
||||
|
@ -3995,11 +3995,11 @@ function api_fr_photoalbum_update($type)
|
|||
throw new BadRequestException("no new albumname specified");
|
||||
}
|
||||
// check if album is existing
|
||||
if (!DBA::exists('photo', ['uid' => api_user(), 'album' => $album])) {
|
||||
if (!Photo::exists(null, ['uid' => api_user(), 'album' => $album])) {
|
||||
throw new BadRequestException("album not available");
|
||||
}
|
||||
// now let's update all photos to the albumname
|
||||
$result = DBA::update('photo', ['album' => $album_new], ['uid' => api_user(), 'album' => $album]);
|
||||
$result = Photo::update(['album' => $album_new], ['uid' => api_user(), 'album' => $album]);
|
||||
|
||||
// return success of updating or error message
|
||||
if ($result) {
|
||||
|
@ -4099,14 +4099,8 @@ function api_fr_photo_create_update($type)
|
|||
} else {
|
||||
$mode = "update";
|
||||
|
||||
// check if photo is existing in database
|
||||
$r = q(
|
||||
"SELECT `id` FROM `photo` WHERE `uid` = %d AND `resource-id` = '%s' AND `album` = '%s'",
|
||||
intval(api_user()),
|
||||
DBA::escape($photo_id),
|
||||
DBA::escape($album)
|
||||
);
|
||||
if (!DBA::isResult($r)) {
|
||||
// check if photo is existing in databasei
|
||||
if (!Photo::exists($photo_id, ['uid' => api_user(), 'album' => $album]) {
|
||||
throw new BadRequestException("photo not available");
|
||||
}
|
||||
}
|
||||
|
@ -4135,47 +4129,40 @@ function api_fr_photo_create_update($type)
|
|||
|
||||
// now let's do the changes in update-mode
|
||||
if ($mode == "update") {
|
||||
$sql_extra = "";
|
||||
$updated_fields = [];
|
||||
|
||||
if (!is_null($desc)) {
|
||||
$sql_extra .= (($sql_extra != "") ? " ," : "") . "`desc` = '$desc'";
|
||||
$updated_fields['desc'] = $desc;
|
||||
}
|
||||
|
||||
if (!is_null($album_new)) {
|
||||
$sql_extra .= (($sql_extra != "") ? " ," : "") . "`album` = '$album_new'";
|
||||
$updated_fields['album'] = $album_new;
|
||||
}
|
||||
|
||||
if (!is_null($allow_cid)) {
|
||||
$allow_cid = trim($allow_cid);
|
||||
$sql_extra .= (($sql_extra != "") ? " ," : "") . "`allow_cid` = '$allow_cid'";
|
||||
$updated_fields['allow_cid'] = $allow_cid;
|
||||
}
|
||||
|
||||
if (!is_null($deny_cid)) {
|
||||
$deny_cid = trim($deny_cid);
|
||||
$sql_extra .= (($sql_extra != "") ? " ," : "") . "`deny_cid` = '$deny_cid'";
|
||||
$updated_fields['deny_cid'] = $deny_cid;
|
||||
}
|
||||
|
||||
if (!is_null($allow_gid)) {
|
||||
$allow_gid = trim($allow_gid);
|
||||
$sql_extra .= (($sql_extra != "") ? " ," : "") . "`allow_gid` = '$allow_gid'";
|
||||
$updated_fields['allow_gid'] = $allow_gid;
|
||||
}
|
||||
|
||||
if (!is_null($deny_gid)) {
|
||||
$deny_gid = trim($deny_gid);
|
||||
$sql_extra .= (($sql_extra != "") ? " ," : "") . "`deny_gid` = '$deny_gid'";
|
||||
$updated_fields['deny_gid'] = $deny_gid;
|
||||
}
|
||||
|
||||
$result = false;
|
||||
if ($sql_extra != "") {
|
||||
if (count($updated_fields) > 0) {
|
||||
$nothingtodo = false;
|
||||
$result = q(
|
||||
"UPDATE `photo` SET %s, `edited`='%s' WHERE `uid` = %d AND `resource-id` = '%s' AND `album` = '%s'",
|
||||
$sql_extra,
|
||||
DateTimeFormat::utcNow(), // update edited timestamp
|
||||
intval(api_user()),
|
||||
DBA::escape($photo_id),
|
||||
DBA::escape($album)
|
||||
);
|
||||
$result = Photo::update($updated_fields, ['uid' => api_user(), 'resource-id' => $photo_id, 'album' => $album]);
|
||||
} else {
|
||||
$nothingtodo = true;
|
||||
}
|
||||
|
@ -4224,16 +4211,12 @@ function api_fr_photo_delete($type)
|
|||
throw new BadRequestException("no photo_id specified");
|
||||
}
|
||||
// check if photo is existing in database
|
||||
$r = q(
|
||||
"SELECT `id` FROM `photo` WHERE `uid` = %d AND `resource-id` = '%s'",
|
||||
intval(api_user()),
|
||||
DBA::escape($photo_id)
|
||||
);
|
||||
if (!DBA::isResult($r)) {
|
||||
$r = Photo::exists($photo_id, ['uid' => api_user()]);
|
||||
if (!$r) {
|
||||
throw new BadRequestException("photo not available");
|
||||
}
|
||||
// now we can perform on the deletion of the photo
|
||||
$result = DBA::delete('photo', ['uid' => api_user(), 'resource-id' => $photo_id]);
|
||||
$result = Photo::delete(['uid' => api_user(), 'resource-id' => $photo_id]);
|
||||
|
||||
// return success of deletion or error message
|
||||
if ($result) {
|
||||
|
@ -4343,7 +4326,7 @@ function api_account_update_profile_image($type)
|
|||
// change specified profile or all profiles to the new resource-id
|
||||
if ($is_default_profile) {
|
||||
$condition = ["`profile` AND `resource-id` != ? AND `uid` = ?", $data['photo']['id'], api_user()];
|
||||
DBA::update('photo', ['profile' => false], $condition);
|
||||
Photo::update(['profile' => false], $condition);
|
||||
} else {
|
||||
$fields = ['photo' => System::baseUrl() . '/photo/' . $data['photo']['id'] . '-4.' . $filetype,
|
||||
'thumb' => System::baseUrl() . '/photo/' . $data['photo']['id'] . '-5.' . $filetype];
|
||||
|
|
11
mod/item.php
11
mod/item.php
|
@ -31,6 +31,7 @@ use Friendica\Model\Contact;
|
|||
use Friendica\Model\Conversation;
|
||||
use Friendica\Model\FileTag;
|
||||
use Friendica\Model\Item;
|
||||
use Friendica\Model\Photo;
|
||||
use Friendica\Protocol\Diaspora;
|
||||
use Friendica\Protocol\Email;
|
||||
use Friendica\Util\DateTimeFormat;
|
||||
|
@ -456,16 +457,18 @@ function item_post(App $a) {
|
|||
// Ensure to only modify photos that you own
|
||||
$srch = '<' . intval($original_contact_id) . '>';
|
||||
|
||||
$condition = ['allow_cid' => $srch, 'allow_gid' => '', 'deny_cid' => '', 'deny_gid' => '',
|
||||
'resource-id' => $image_uri, 'uid' => $profile_uid];
|
||||
if (!DBA::exists('photo', $condition)) {
|
||||
$condition = [
|
||||
'allow_cid' => $srch, 'allow_gid' => '', 'deny_cid' => '', 'deny_gid' => '',
|
||||
'uid' => $profile_uid
|
||||
];
|
||||
if (!Photo::exists($image_uri, $condition)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$fields = ['allow_cid' => $str_contact_allow, 'allow_gid' => $str_group_allow,
|
||||
'deny_cid' => $str_contact_deny, 'deny_gid' => $str_group_deny];
|
||||
$condition = ['resource-id' => $image_uri, 'uid' => $profile_uid];
|
||||
DBA::update('photo', $fields, $condition);
|
||||
Photo::update($fields, $condition);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -344,7 +344,7 @@ function photos_post(App $a)
|
|||
}
|
||||
|
||||
if (DBA::isResult($r)) {
|
||||
Photo::delete(['resource-id' => $r[0]['resource-id'], 'uid' => $page_owner_uid]);
|
||||
Photo::delete(['uid' => $page_owner_uid, 'resource-id' => $r[0]['resource-id']]);
|
||||
|
||||
Item::deleteForUser(['resource-id' => $r[0]['resource-id'], 'uid' => $page_owner_uid], $page_owner_uid);
|
||||
|
||||
|
|
|
@ -483,7 +483,7 @@ class Contact extends BaseObject
|
|||
'gender' => $profile['gender'], 'avatar' => $profile['photo'],
|
||||
'contact-type' => $user['account-type'], 'xmpp' => $profile['xmpp']];
|
||||
|
||||
$avatar = DBA::selectFirst('photo', ['resource-id', 'type'], ['uid' => $uid, 'profile' => true]);
|
||||
$avatar = Photo::selectFirst(['resource-id', 'type'], ['uid' => $uid, 'profile' => true]);
|
||||
if (DBA::isResult($avatar)) {
|
||||
if ($update_avatar) {
|
||||
$fields['avatar-date'] = DateTimeFormat::utcNow();
|
||||
|
|
|
@ -1030,7 +1030,7 @@ class Item extends BaseObject
|
|||
* generate a resource-id and therefore aren't intimately linked to the item.
|
||||
*/
|
||||
if (strlen($item['resource-id'])) {
|
||||
DBA::delete('photo', ['resource-id' => $item['resource-id'], 'uid' => $item['uid']]);
|
||||
Photo::delete(['resource-id' => $item['resource-id'], 'uid' => $item['uid']]);
|
||||
}
|
||||
|
||||
// If item is a link to an event, delete the event.
|
||||
|
@ -2737,8 +2737,7 @@ class Item extends BaseObject
|
|||
if ($x) {
|
||||
$res = substr($i, $x + 1);
|
||||
$i = substr($i, 0, $x);
|
||||
$fields = ['data', 'type', 'allow_cid', 'allow_gid', 'deny_cid', 'deny_gid'];
|
||||
$photo = DBA::selectFirst('photo', $fields, ['resource-id' => $i, 'scale' => $res, 'uid' => $uid]);
|
||||
$photo = Photo::getPhotoForUser($uid, $i, $res);
|
||||
if (DBA::isResult($photo)) {
|
||||
/*
|
||||
* Check to see if we should replace this photo link with an embedded image
|
||||
|
@ -2762,9 +2761,7 @@ class Item extends BaseObject
|
|||
}
|
||||
}
|
||||
if ($replace) {
|
||||
$data = $photo['data'];
|
||||
$type = $photo['type'];
|
||||
|
||||
$photo_img = Photo::getImageForPhoto($photo);
|
||||
// If a custom width and height were specified, apply before embedding
|
||||
if (preg_match("/\[img\=([0-9]*)x([0-9]*)\]/is", substr($orig_body, $img_start, $img_st_close), $match)) {
|
||||
Logger::log('scaling photo', Logger::DEBUG);
|
||||
|
@ -2772,14 +2769,12 @@ class Item extends BaseObject
|
|||
$width = intval($match[1]);
|
||||
$height = intval($match[2]);
|
||||
|
||||
$Image = new Image($data, $type);
|
||||
if ($Image->isValid()) {
|
||||
$Image->scaleDown(max($width, $height));
|
||||
$data = $Image->asString();
|
||||
$type = $Image->getType();
|
||||
}
|
||||
$photo_img->scaleDown(max($width, $height));
|
||||
}
|
||||
|
||||
$data = $photo_img->asString();
|
||||
$type = $photo_img->getType();
|
||||
|
||||
Logger::log('replacing photo', Logger::DEBUG);
|
||||
$image = 'data:' . $type . ';base64,' . base64_encode($data);
|
||||
Logger::log('replaced: ' . $image, Logger::DATA);
|
||||
|
|
|
@ -10,6 +10,7 @@ use Friendica\Core\Logger;
|
|||
use Friendica\Core\System;
|
||||
use Friendica\Core\Worker;
|
||||
use Friendica\Database\DBA;
|
||||
use Friendica\Model\Photo;
|
||||
use Friendica\Network\Probe;
|
||||
use Friendica\Util\DateTimeFormat;
|
||||
|
||||
|
@ -141,7 +142,7 @@ class Mail
|
|||
}
|
||||
$image_uri = substr($image, strrpos($image, '/') + 1);
|
||||
$image_uri = substr($image_uri, 0, strpos($image_uri, '-'));
|
||||
DBA::update('photo', ['allow-cid' => '<' . $recipient . '>'], ['resource-id' => $image_uri, 'album' => 'Wall Photos', 'uid' => local_user()]);
|
||||
Photo::update(['allow-cid' => '<' . $recipient . '>'], ['resource-id' => $image_uri, 'album' => 'Wall Photos', 'uid' => local_user()]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -17,6 +17,7 @@ use Friendica\Core\Protocol;
|
|||
use Friendica\Core\System;
|
||||
use Friendica\Core\Worker;
|
||||
use Friendica\Database\DBA;
|
||||
use Friendica\Model\Photo;
|
||||
use Friendica\Object\Image;
|
||||
use Friendica\Util\Crypto;
|
||||
use Friendica\Util\DateTimeFormat;
|
||||
|
@ -701,7 +702,7 @@ class User
|
|||
}
|
||||
|
||||
if (!$photo_failure) {
|
||||
DBA::update('photo', ['profile' => 1], ['resource-id' => $hash]);
|
||||
Photo::update(['profile' => 1], ['resource-id' => $hash]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -173,7 +173,7 @@ class CronJobs
|
|||
}
|
||||
|
||||
$condition = ['`uid` = 0 AND `resource-id` LIKE "pic:%" AND `created` < NOW() - INTERVAL ? SECOND', $cachetime];
|
||||
DBA::delete('photo', $condition);
|
||||
Photo::delete($condition);
|
||||
}
|
||||
|
||||
// Delete the cached OEmbed entries that are older than three month
|
||||
|
|
Loading…
Reference in a new issue