App\Libraries\WatchRecord\WatchRecordInterface::isNewOrModified PHP Method

isNewOrModified() public method

public isNewOrModified ( )
    public function isNewOrModified();

Usage Example

Example #1
0
 /**
  * Sync media using a watch record.
  *
  * @param WatchRecordInterface $record      The watch record.
  * @param SyncMedia|null       $syncCommand The SyncMedia command object, to log to console if executed by artisan.
  */
 public function syncByWatchRecord(WatchRecordInterface $record, SyncMedia $syncCommand = null)
 {
     Log::info("New watch record received: '{$record}'");
     $path = $record->getPath();
     if ($record->isFile()) {
         Log::info("'{$path}' is a file.");
         // If the file has been deleted...
         if ($record->isDeleted()) {
             // ...and it has a record in our database, remove it.
             if ($song = Song::byPath($path)) {
                 $song->delete();
                 Log::info("{$path} deleted.");
                 event(new LibraryChanged());
             } else {
                 Log::info("{$path} doesn't exist in our database--skipping.");
             }
         } elseif ($record->isNewOrModified()) {
             $result = (new File($path))->sync($this->tags);
             Log::info($result instanceof Song ? "Synchronized {$path}" : "Invalid file {$path}");
         }
         return;
     }
     // Record is a directory.
     Log::info("'{$path}' is a directory.");
     if ($record->isDeleted()) {
         // The directory is removed. We remove all songs in it.
         if ($count = Song::inDirectory($path)->delete()) {
             Log::info("Deleted {$count} song(s) under {$path}");
             event(new LibraryChanged());
         } else {
             Log::info("{$path} is empty--no action needed.");
         }
     } elseif ($record->isNewOrModified()) {
         foreach ($this->gatherFiles($path) as $file) {
             (new File($file))->sync($this->tags);
         }
         Log::info("Synced all song(s) under {$path}");
     }
 }