mirror of
https://github.com/nextcloud/server.git
synced 2026-02-25 19:04:38 -05:00
Update contacts estimation
Signed-off-by: Christopher Ng <chrng8@gmail.com>
This commit is contained in:
parent
f2850a6c06
commit
9fbbbc7ca6
1 changed files with 14 additions and 7 deletions
|
|
@ -48,6 +48,7 @@ use Sabre\VObject\Splitter\VCard as VCardSplitter;
|
|||
use Sabre\VObject\UUIDUtil;
|
||||
use Safe\Exceptions\ArrayException;
|
||||
use Safe\Exceptions\StringsException;
|
||||
use Symfony\Component\Console\Output\NullOutput;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
use Throwable;
|
||||
|
||||
|
|
@ -198,15 +199,21 @@ class ContactsMigrator implements IMigrator, ISizeEstimationMigrator {
|
|||
* {@inheritDoc}
|
||||
*/
|
||||
public function getEstimatedExportSize(IUser $user): int {
|
||||
$principalUri = $this->getPrincipalUri($user);
|
||||
$addressBookExports = $this->getAddressBookExports($user, new NullOutput());
|
||||
$addressBookCount = count($addressBookExports);
|
||||
|
||||
return array_sum(array_map(
|
||||
function (array $addressBookInfo) use ($user): int {
|
||||
// FIXME 1MiB by addressbook, no idea if this is accurate and if we should go into more details
|
||||
return 1000;
|
||||
},
|
||||
$this->cardDavBackend->getAddressBooksForUser($principalUri),
|
||||
// 50B for each metadata JSON
|
||||
$size = ($addressBookCount * 50) / 1024;
|
||||
|
||||
$contactsCount = array_sum(array_map(
|
||||
fn (array $data): int => count($data['vCards']),
|
||||
$addressBookExports,
|
||||
));
|
||||
|
||||
// 350B for each contact
|
||||
$size += ($contactsCount * 350) / 1024;
|
||||
|
||||
return (int)ceil($size);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
Loading…
Reference in a new issue