From 09b4385100d31cce9f0f163d6820ebcb3c018bd8 Mon Sep 17 00:00:00 2001 From: Mike Colagrosso Date: Sun, 28 Jan 2024 00:01:12 -0700 Subject: [PATCH] Convert SOURCE_ constants to an enum --- lib/Constants.php | 10 ---------- lib/Ebook.php | 18 +++++++++--------- lib/EbookSource.php | 16 ++++++++++++++-- www/ebooks/ebook.php | 36 ++++++++++++++++++------------------ 4 files changed, 41 insertions(+), 39 deletions(-) diff --git a/lib/Constants.php b/lib/Constants.php index a866ec38..a3c2104e 100644 --- a/lib/Constants.php +++ b/lib/Constants.php @@ -82,16 +82,6 @@ const HTTP_HEAD = 5; const VIEW_GRID = 'grid'; const VIEW_LIST = 'list'; -const SOURCE_PROJECT_GUTENBERG = 0; -const SOURCE_HATHI_TRUST = 1; -const SOURCE_WIKISOURCE = 2; -const SOURCE_INTERNET_ARCHIVE = 3; -const SOURCE_GOOGLE_BOOKS = 4; -const SOURCE_OTHER = 6; -const SOURCE_PROJECT_GUTENBERG_CANADA = 7; -const SOURCE_PROJECT_GUTENBERG_AUSTRALIA = 8; -const SOURCE_FADED_PAGE = 9; - const AVERAGE_READING_WORDS_PER_MINUTE = 275; const PAYMENT_CHANNEL_FA = 0; diff --git a/lib/Ebook.php b/lib/Ebook.php index 3674196f..59c60466 100644 --- a/lib/Ebook.php +++ b/lib/Ebook.php @@ -429,32 +429,32 @@ class Ebook{ foreach($xml->xpath('/package/metadata/dc:source') ?: [] as $element){ $e = (string)$element; if(mb_stripos($e, 'gutenberg.org/') !== false){ - $this->Sources[] = new EbookSource(SOURCE_PROJECT_GUTENBERG, $e); + $this->Sources[] = new EbookSource(EbookSourceType::ProjectGutenberg, $e); } elseif(mb_stripos($e, 'gutenberg.net.au/') !== false){ - $this->Sources[] = new EbookSource(SOURCE_PROJECT_GUTENBERG_AUSTRALIA, $e); + $this->Sources[] = new EbookSource(EbookSourceType::ProjectGutenbergAustralia, $e); } elseif(mb_stripos($e, 'gutenberg.ca/') !== false){ - $this->Sources[] = new EbookSource(SOURCE_PROJECT_GUTENBERG_CANADA, $e); + $this->Sources[] = new EbookSource(EbookSourceType::ProjectGutenbergCanada, $e); } elseif(mb_stripos($e, 'archive.org/details') !== false){ // `/details` excludes Wayback Machine URLs which may sometimes occur, for example in Lyrical Ballads - $this->Sources[] = new EbookSource(SOURCE_INTERNET_ARCHIVE, $e); + $this->Sources[] = new EbookSource(EbookSourceType::InternetArchive, $e); } elseif(mb_stripos($e, 'hathitrust.org/') !== false){ - $this->Sources[] = new EbookSource(SOURCE_HATHI_TRUST, $e); + $this->Sources[] = new EbookSource(EbookSourceType::HathiTrust, $e); } elseif(mb_stripos($e, 'wikisource.org/') !== false){ - $this->Sources[] = new EbookSource(SOURCE_WIKISOURCE, $e); + $this->Sources[] = new EbookSource(EbookSourceType::Wikisource, $e); } elseif(mb_stripos($e, 'books.google.com/') !== false || mb_stripos($e, 'google.com/books/') !== false){ - $this->Sources[] = new EbookSource(SOURCE_GOOGLE_BOOKS, $e); + $this->Sources[] = new EbookSource(EbookSourceType::GoogleBooks, $e); } elseif(mb_stripos($e, 'www.fadedpage.com') !== false){ - $this->Sources[] = new EbookSource(SOURCE_FADED_PAGE, $e); + $this->Sources[] = new EbookSource(EbookSourceType::FadedPage, $e); } else{ - $this->Sources[] = new EbookSource(SOURCE_OTHER, $e); + $this->Sources[] = new EbookSource(EbookSourceType::Other, $e); } } diff --git a/lib/EbookSource.php b/lib/EbookSource.php index 81ac892e..a14e3263 100644 --- a/lib/EbookSource.php +++ b/lib/EbookSource.php @@ -1,9 +1,21 @@ Type = $type; $this->Url = $url; } diff --git a/www/ebooks/ebook.php b/www/ebooks/ebook.php index 957d41b3..a8bd4c26 100644 --- a/www/ebooks/ebook.php +++ b/www/ebooks/ebook.php @@ -48,21 +48,21 @@ try{ // Divide our sources into transcriptions and scans foreach($ebook->Sources as $source){ switch($source->Type){ - case SOURCE_PROJECT_GUTENBERG: - case SOURCE_PROJECT_GUTENBERG_AUSTRALIA: - case SOURCE_PROJECT_GUTENBERG_CANADA: - case SOURCE_WIKISOURCE: - case SOURCE_FADED_PAGE: + case EbookSourceType::ProjectGutenberg: + case EbookSourceType::ProjectGutenbergAustralia: + case EbookSourceType::ProjectGutenbergCanada: + case EbookSourceType::Wikisource: + case EbookSourceType::FadedPage: $transcriptionSources[] = $source; break; - case SOURCE_INTERNET_ARCHIVE: - case SOURCE_HATHI_TRUST: - case SOURCE_GOOGLE_BOOKS: + case EbookSourceType::InternetArchive: + case EbookSourceType::HathiTrust: + case EbookSourceType::GoogleBooks: $scanSources[] = $source; break; - case SOURCE_OTHER: + case EbookSourceType::Other: $otherSources[] = $source; break; } @@ -337,11 +337,11 @@ catch(Exceptions\EbookNotFoundException){
  • - Type == SOURCE_PROJECT_GUTENBERG){ ?>Transcription at Project Gutenberg - Type == SOURCE_PROJECT_GUTENBERG_AUSTRALIA){ ?>Transcription at Project Gutenberg Australia - Type == SOURCE_PROJECT_GUTENBERG_CANADA){ ?>Transcription at Project Gutenberg Canada - Type == SOURCE_WIKISOURCE){ ?>Transcription at Wikisource - Type == SOURCE_FADED_PAGE){ ?>Transcription at Faded Page + Type == EbookSourceType::ProjectGutenberg){ ?>Transcription at Project Gutenberg + Type == EbookSourceType::ProjectGutenbergAustralia){ ?>Transcription at Project Gutenberg Australia + Type == EbookSourceType::ProjectGutenbergCanada){ ?>Transcription at Project Gutenberg Canada + Type == EbookSourceType::Wikisource){ ?>Transcription at Wikisource + Type == EbookSourceType::FadedPage){ ?>Transcription at Faded Page Transcription @@ -358,9 +358,9 @@ catch(Exceptions\EbookNotFoundException){

  • - Type == SOURCE_INTERNET_ARCHIVE){ ?>Page scans at the Internet Archive - Type == SOURCE_HATHI_TRUST){ ?>Page scans at HathiTrust - Type == SOURCE_GOOGLE_BOOKS){ ?>Page scans at Google Books + Type == EbookSourceType::InternetArchive){ ?>Page scans at the Internet Archive + Type == EbookSourceType::HathiTrust){ ?>Page scans at HathiTrust + Type == EbookSourceType::GoogleBooks){ ?>Page scans at Google Books Page scans

  • @@ -375,7 +375,7 @@ catch(Exceptions\EbookNotFoundException){
  • - Type == SOURCE_OTHER){ ?>Url)) /* force type to (string) to satisfy PHPStan */ ?> + Type == EbookSourceType::Other){ ?>Url)) /* force type to (string) to satisfy PHPStan */ ?>