Пример #1
0
 /**
  * @depends test_createComp
  */
 public function test_createPhotos($photoComp)
 {
     $PhotoOfTheWeek = new PhotoOfTheWeek();
     $PhotoOfTheWeek->getStartOfWeek();
     $Exif = new Exif();
     $i = 1;
     foreach ($this->ids as $id) {
         $User = $this->test_createUser(sprintf("username-%s", $id), sprintf("*****@*****.**", $id));
         $Image = ImageFactory::CreateImage($id, "flickr", Images::OPT_REFRESH);
         $this->assertTrue($photoComp->canUserSubmitPhoto($User));
         $this->assertFalse($photoComp->isImageInCompetition($Image));
         $photoComp->submitPhoto($Image, $User);
         $this->assertFalse($photoComp->canUserSubmitPhoto($User));
         $this->assertTrue($photoComp->isImageInCompetition($Image));
         $this->assertEquals($User->id, $photoComp->getPhotoAuthor($Image)->id);
         $this->assertTrue($photoComp->isImageOwnedBy($User, $Image));
         $photoComp->getNumVotesForUser($User);
         $this->assertEquals(1, $photoComp->getNumPendingSubmissions());
         $photoComp->approveSubmission($Image);
         $photoComp->getPendingSubmissions();
         $this->assertEquals(0, $photoComp->getNumPendingSubmissions());
         $this->assertEquals(0, $photoComp->getNumVotesForImage($Image));
         $photoComp->getPhotoContext($Image);
         $this->assertEquals(1, $photoComp->getPhoto($Image)->status);
         $this->assertEquals($i, count($photoComp->getPhotosAsArray(true)));
         $i++;
         $PhotoOfTheWeek->NominateImage($Image, new DateTime(), $User);
         $PhotoOfTheWeek->isPhotoOfTheWeek($Image);
         $exif = $Exif->getImageExif($Image, true);
         $exif = $Exif->formatExif($exif);
     }
     $PhotoOfTheWeek->getImageOfTheWeek();
     $PhotoOfTheWeek->getPreviousPhotos();
     $photoComp->getPendingSubmissions();
     $this->assertEquals(0, $photoComp->getNumPendingSubmissions());
     foreach ($this->ids as $id) {
         $Image = ImageFactory::CreateImage($id, "flickr");
         $photoComp->rejectSubmission($Image);
         Debug::LogCLI("Rejected image " . $Image->id);
         break;
     }
     $photoComp->getArray();
     $photoComp->getPhotosAsArray();
     $photoComp->getPhotosAsArrayByVotes();
     $photoComp->getSiteMessage();
     $photoComp->getWinningPhoto();
     return $photoComp;
 }
Пример #2
0
 /**
  * @depends test_fetchFlickr
  */
 public function test_exif($Image)
 {
     $Exif = new Exif();
     $exifdata = $Exif->getImageExif($Image);
     $exifdata = $Exif->formatExif($exifdata);
     $Exif->getImageExif($Image);
 }
Пример #3
0
 /**
  * Fetch EXIF data for the queued images
  * @since Version 3.10.0
  * @return void
  */
 public static function scrapeExifQueue()
 {
     $sleep = 10;
     $break = 50;
     $Database = (new AppCore())->getDatabaseConnection();
     $query = "SELECT f.image_id FROM image_flags AS f LEFT JOIN image AS i ON f.image_id = i.id WHERE f.exifqueue = 1 AND i.provider IS NOT NULL ORDER BY f.image_id DESC";
     $exif = new Exif();
     $ids = [];
     foreach ($Database->fetchAll($query) as $row) {
         $imageObject = new Image($row['image_id']);
         $exif->getImageExif($imageObject);
         $ids[] = $imageObject->id;
         if (count($ids) == $break) {
             Debug::LogCLI("Updating " . $break . " records");
             $query = "UPDATE image_flags SET exifqueue = 0 WHERE image_id IN (" . implode(",", $ids) . ")";
             $Database->query($query);
             $ids = [];
             break;
             sleep($sleep);
         }
     }
     Debug::LogCLI("Mark all queued images as scraped");
     $query = "UPDATE image_flags SET exifqueue = 0 WHERE exifqueue = 1";
     $Database->query($query);
     return;
 }