/** * @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; }
/** * @depends test_fetchFlickr */ public function test_exif($Image) { $Exif = new Exif(); $exifdata = $Exif->getImageExif($Image); $exifdata = $Exif->formatExif($exifdata); $Exif->getImageExif($Image); }
/** * 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; }