Merge pull request #14297 from annando/clear-avatar

Delete cached avatar data from storage
This commit is contained in:
Tobias Diekershoff 2024-07-16 07:22:42 +02:00 committed by GitHub
commit fca67b3fcb
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -25,6 +25,9 @@ use Asika\SimpleConsole\CommandArgsException;
use Friendica\Core\Storage\Repository\StorageManager;
use Friendica\Core\Storage\Exception\ReferenceStorageException;
use Friendica\Core\Storage\Exception\StorageException;
use Friendica\Database\DBA;
use Friendica\Model\Contact;
use Friendica\Model\Photo;
/**
* tool to manage storage backend and stored data from CLI
@ -57,6 +60,9 @@ Synopsis
bin/console storage list
List available storage backends
bin/console storage clear
Remove the contact avatar cache data
bin/console storage set <name>
Set current storage backend
name storage backend to use. see "list".
@ -87,6 +93,9 @@ HELP;
case 'list':
return $this->doList();
break;
case 'clear':
return $this->clear();
break;
case 'set':
return $this->doSet();
break;
@ -126,6 +135,22 @@ HELP;
return 0;
}
protected function clear()
{
$fields = ['photo' => '', 'thumb' => '', 'micro' => ''];
$photos = DBA::select('photo', ['id', 'contact-id'], ['uid' => 0, 'photo-type' => [Photo::CONTACT_AVATAR, Photo::CONTACT_BANNER]]);
while ($photo = DBA::fetch($photos)) {
if (Photo::delete(['id' => $photo['id']])) {
Contact::update($fields, ['id' => $photo['contact-id']]);
$this->out('Cleared photo id ' . $photo['id'] . ' - contact id ' . $photo['contact-id']);
} else {
$this->out('Photo id ' . $photo['id'] . ' was not deleted.');
}
}
DBA::close($photos);
return 0;
}
protected function doSet()
{
if (count($this->args) !== 2 || empty($this->args[1])) {