mirror of
https://github.com/AnimeThemes/animethemes-server.git
synced 2026-11-14 10:08:49 +01:00
feat: anime images should be moved (#631)
* feat: anime images should be moved * feat: anime images should be moved
This commit is contained in:
1 parent
46fcecd5ab
commit
be69acd47a
1 file changed
+71
-3
@@ -5,6 +5,7 @@ declare(strict_types=1);
|
||||
namespace Database\Seeders\Wiki\Image;
|
||||
|
||||
use App\Enums\Models\Wiki\ImageFacet;
|
||||
use App\Models\Wiki\Anime;
|
||||
use App\Models\Wiki\Artist;
|
||||
use App\Models\Wiki\Image;
|
||||
use App\Models\Wiki\Studio;
|
||||
@@ -24,6 +25,7 @@ class MoveImageToAppropriateFolderSeeder extends Seeder
|
||||
public function run(): void
|
||||
{
|
||||
$this->grillFacetImageSeeder();
|
||||
$this->animeImageSeeder();
|
||||
$this->artistImageSeeder();
|
||||
$this->studioImageSeeder();
|
||||
}
|
||||
@@ -33,7 +35,7 @@ class MoveImageToAppropriateFolderSeeder extends Seeder
|
||||
try {
|
||||
DB::beginTransaction();
|
||||
|
||||
$chunkSize = 10;
|
||||
$chunkSize = 100;
|
||||
/** @var FilesystemAdapter $fs */
|
||||
$fs = Storage::disk(Config::get('image.disk'));
|
||||
$images = Image::query()->where(Image::ATTRIBUTE_FACET, ImageFacet::GRILL)->get();
|
||||
@@ -69,12 +71,78 @@ class MoveImageToAppropriateFolderSeeder extends Seeder
|
||||
}
|
||||
}
|
||||
|
||||
protected function animeImageSeeder(): void
|
||||
{
|
||||
try {
|
||||
DB::beginTransaction();
|
||||
|
||||
$chunkSize = 100;
|
||||
/** @var FilesystemAdapter $fs */
|
||||
$fs = Storage::disk(Config::get('image.disk'));
|
||||
$animes = Anime::query()->where(Anime::ATTRIBUTE_ID, '>', 0)->whereHas(Image::TABLE, function (Builder $query) {
|
||||
$query->where(Image::ATTRIBUTE_PATH, 'not like', '%/%');
|
||||
})->get();
|
||||
|
||||
foreach ($animes->chunk($chunkSize) as $chunk) {
|
||||
foreach ($chunk as $anime) {
|
||||
if ($anime instanceof Anime) {
|
||||
$images = $anime->images()->get();
|
||||
|
||||
if (count($images) === 0) continue;
|
||||
|
||||
$largeCover = $images->where(Image::ATTRIBUTE_FACET, ImageFacet::COVER_LARGE)->first();
|
||||
$smallCover = $images->where(Image::ATTRIBUTE_FACET, ImageFacet::COVER_SMALL)->first();
|
||||
|
||||
if (!empty($largeCover)) {
|
||||
$largeCoverOldPath = $largeCover->path;
|
||||
$largeCoverNewPath = "anime/large-cover/{$largeCover->path}";
|
||||
|
||||
$fs->move($largeCoverOldPath, $largeCoverNewPath);
|
||||
|
||||
$largeCover->update([
|
||||
Image::ATTRIBUTE_PATH => $largeCoverNewPath,
|
||||
]);
|
||||
|
||||
echo $largeCoverOldPath . ' moved to ' . $largeCoverNewPath . "\n";
|
||||
}
|
||||
|
||||
if (!empty($smallCover)) {
|
||||
$smallCoverOldPath = $smallCover->path;
|
||||
$smallCoverNewPath = "anime/small-cover/{$smallCover->path}";
|
||||
|
||||
$fs->move($smallCoverOldPath, $smallCoverNewPath);
|
||||
|
||||
$smallCover->update([
|
||||
Image::ATTRIBUTE_PATH => $smallCoverNewPath,
|
||||
]);
|
||||
|
||||
echo $smallCoverOldPath . ' moved to ' . $smallCoverNewPath . "\n";
|
||||
}
|
||||
|
||||
DB::commit();
|
||||
}
|
||||
}
|
||||
sleep(5);
|
||||
}
|
||||
|
||||
echo "anime images done\n";
|
||||
|
||||
|
||||
} catch (Exception $e) {
|
||||
echo 'error ' . $e->getMessage() . "\n";
|
||||
|
||||
DB::rollBack();
|
||||
|
||||
throw $e;
|
||||
}
|
||||
}
|
||||
|
||||
protected function artistImageSeeder(): void
|
||||
{
|
||||
try {
|
||||
DB::beginTransaction();
|
||||
|
||||
$chunkSize = 10;
|
||||
$chunkSize = 100;
|
||||
/** @var FilesystemAdapter $fs */
|
||||
$fs = Storage::disk(Config::get('image.disk'));
|
||||
$artists = Artist::query()->where(Artist::ATTRIBUTE_ID, '>', 0)->whereHas(Image::TABLE, function (Builder $query) {
|
||||
@@ -139,7 +207,7 @@ class MoveImageToAppropriateFolderSeeder extends Seeder
|
||||
try {
|
||||
DB::beginTransaction();
|
||||
|
||||
$chunkSize = 10;
|
||||
$chunkSize = 100;
|
||||
/** @var FilesystemAdapter $fs */
|
||||
$fs = Storage::disk(Config::get('image.disk'));
|
||||
$studios = Studio::query()->where(Studio::ATTRIBUTE_ID, '>', 0)->whereHas(Image::TABLE, function (Builder $query) {
|
||||
|
||||
Reference in new issue
Block a user