Start of CatalogVerify
This commit is contained in:
parent
7bd4bad941
commit
d21df1c575
@ -1,4 +1,5 @@
|
||||
APP_NAME=Laravel
|
||||
APP_NAME_HTML_LONG="<b>Laravel</b>Application"
|
||||
APP_ENV=local
|
||||
APP_KEY=
|
||||
APP_DEBUG=true
|
||||
@ -7,15 +8,15 @@ APP_URL=http://localhost
|
||||
LOG_CHANNEL=stack
|
||||
|
||||
DB_CONNECTION=mysql
|
||||
DB_HOST=127.0.0.1
|
||||
DB_HOST=database
|
||||
DB_PORT=3306
|
||||
DB_DATABASE=laravel
|
||||
DB_USERNAME=root
|
||||
DB_DATABASE=database
|
||||
DB_USERNAME=web
|
||||
DB_PASSWORD=
|
||||
|
||||
BROADCAST_DRIVER=log
|
||||
CACHE_DRIVER=file
|
||||
QUEUE_CONNECTION=sync
|
||||
QUEUE_CONNECTION=database
|
||||
SESSION_DRIVER=file
|
||||
SESSION_LIFETIME=120
|
||||
|
||||
|
52
app/Console/Commands/CatalogVerify.php
Normal file
52
app/Console/Commands/CatalogVerify.php
Normal file
@ -0,0 +1,52 @@
|
||||
<?php
|
||||
|
||||
namespace App\Console\Commands;
|
||||
|
||||
use Illuminate\Console\Command;
|
||||
use Illuminate\Foundation\Bus\DispatchesJobs;
|
||||
|
||||
use App\Jobs\CatalogVerify as Job;
|
||||
|
||||
class CatalogVerify extends Command
|
||||
{
|
||||
use DispatchesJobs;
|
||||
|
||||
/**
|
||||
* The name and signature of the console command.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $signature = 'catalog:verify'.
|
||||
' {type : Photo | Video }';
|
||||
|
||||
/**
|
||||
* The console command description.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $description = 'Verify media on disk and in the DB';
|
||||
|
||||
/**
|
||||
* Create a new command instance.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
/**
|
||||
* Execute the console command.
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function handle()
|
||||
{
|
||||
if ($this->argument('type')) {
|
||||
$this->dispatch(new Job($this->argument('type')))->onQueue('scan');
|
||||
|
||||
} else {
|
||||
}
|
||||
}
|
||||
}
|
62
app/Jobs/CatalogVerify.php
Normal file
62
app/Jobs/CatalogVerify.php
Normal file
@ -0,0 +1,62 @@
|
||||
<?php
|
||||
|
||||
namespace App\Jobs;
|
||||
|
||||
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||
use Illuminate\Queue\SerializesModels;
|
||||
use Illuminate\Queue\InteractsWithQueue;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
|
||||
use App\Traits\Type;
|
||||
|
||||
class CatalogVerify extends Job implements ShouldQueue
|
||||
{
|
||||
use InteractsWithQueue, SerializesModels, Type;
|
||||
|
||||
// What we should verify
|
||||
private $type = NULL;
|
||||
|
||||
/**
|
||||
* Create a new job instance.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct(string $type) {
|
||||
$this->type = $type;
|
||||
}
|
||||
|
||||
/**
|
||||
* Execute the job.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function handle()
|
||||
{
|
||||
Log::info(sprintf('%s: Scanning [%s]',__METHOD__,$this->type));
|
||||
|
||||
// Go through DB and verify files exist
|
||||
$class = $this->getModelType($this->type);
|
||||
|
||||
$good = $bad = $ugly = 0;
|
||||
|
||||
$result = $class::select('*')->each(function($o) use ($good,$bad,$ugly) {
|
||||
if (! file_exists($o->file_name(FALSE))) {
|
||||
Log::error(sprintf('Media doesnt exist: [%s] (%d:%s)',$this->type,$o->id,$o->file_name(FALSE)));
|
||||
$bad++;
|
||||
return;
|
||||
}
|
||||
|
||||
if (($x=md5_file($o->file_name(FALSE))) !== $o->file_signature) {
|
||||
Log::error(sprintf('Media MD5 doesnt match DB: [%s] (%d:%s) [%s:%s]',$this->type,$o->id,$o->file_name(FALSE),$x,$o->file_signature));
|
||||
$ugly++;
|
||||
return;
|
||||
}
|
||||
|
||||
$good++;
|
||||
});
|
||||
|
||||
Log::info('DB Media Verify Complete: [%s] Good: [%d], Missing: [%d], Changed: [%d]',$this->type,$good,$bad,$ugly);
|
||||
|
||||
// Go through filesystem and see that a record exists in the DB, if not add it.
|
||||
}
|
||||
}
|
@ -253,7 +253,7 @@ abstract class Catalog extends Model
|
||||
|
||||
/**
|
||||
* Determine the new name for the image
|
||||
* @deprecated
|
||||
* @deprecated use $this->file_name()
|
||||
*/
|
||||
public function file_path($short=FALSE,$new=FALSE)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user