Code Duplication    Length = 23-23 lines in 4 locations

application/models/Site_Model.php 4 locations

@@ 807-829 (lines=23) @@
804
	}
805
}
806
807
class KireiCake extends Site_Model {
808
	public $site          = 'KireiCake';
809
	public $titleFormat   = '/^[a-z0-9_-]+$/';
810
	public $chapterFormat = '/^en\/[0-9]+(?:\/[0-9]+(?:\/[0-9]+(?:\/[0-9]+)?)?)?$/';
811
812
	public function getFullTitleURL(string $title_url) : string {
813
		return "https://reader.kireicake.com/series/{$title_url}";
814
	}
815
816
	public function getChapterData(string $title_url, string $chapter) : array {
817
		//LANG/VOLUME/CHAPTER/CHAPTER_EXTRA(/page/)
818
		$chapter_parts = explode('/', $chapter);
819
		return [
820
			'url'    => "https://reader.kireicake.com/read/{$title_url}/{$chapter}/",
821
			'number' => ($chapter_parts[1] !== '0' ? "v{$chapter_parts[1]}/" : '') . "c{$chapter_parts[2]}" . (isset($chapter_parts[3]) ? ".{$chapter_parts[3]}" : '')/*)*/
822
		];
823
	}
824
825
	public function getTitleData(string $title_url) {
826
		$fullURL = $this->getFullTitleURL($title_url);
827
		return $this->parseFoolSlide($fullURL, $title_url);
828
	}
829
}
830
831
class SeaOtterScans extends Site_Model {
832
	public $site          = 'SeaOtterScans';
@@ 831-853 (lines=23) @@
828
	}
829
}
830
831
class SeaOtterScans extends Site_Model {
832
	public $site          = 'SeaOtterScans';
833
	public $titleFormat   = '/^[a-z0-9_-]+$/';
834
	public $chapterFormat = '/^en\/[0-9]+(?:\/[0-9]+(?:\/[0-9]+(?:\/[0-9]+)?)?)?$/';
835
836
	public function getFullTitleURL(string $title_url) : string {
837
		return "https://reader.seaotterscans.com/series/{$title_url}";
838
	}
839
840
	public function getChapterData(string $title_url, string $chapter) : array {
841
		//LANG/VOLUME/CHAPTER/CHAPTER_EXTRA(/page/)
842
		$chapter_parts = explode('/', $chapter);
843
		return [
844
			'url'    => "https://reader.seaotterscans.com/read/{$title_url}/{$chapter}/",
845
			'number' => ($chapter_parts[1] !== '0' ? "v{$chapter_parts[1]}/" : '') . "c{$chapter_parts[2]}" . (isset($chapter_parts[3]) ? ".{$chapter_parts[3]}" : '')/*)*/
846
		];
847
	}
848
849
	public function getTitleData(string $title_url) {
850
		$fullURL = $this->getFullTitleURL($title_url);
851
		return $this->parseFoolSlide($fullURL, $title_url);
852
	}
853
}
854
855
class HelveticaScans extends Site_Model {
856
	public $site          = 'HelveticaScans';
@@ 855-877 (lines=23) @@
852
	}
853
}
854
855
class HelveticaScans extends Site_Model {
856
	public $site          = 'HelveticaScans';
857
	public $titleFormat   = '/^[a-z0-9_-]+$/';
858
	public $chapterFormat = '/^en\/[0-9]+(?:\/[0-9]+(?:\/[0-9]+(?:\/[0-9]+)?)?)?$/';
859
860
	public function getFullTitleURL(string $title_url) : string {
861
		return "http://helveticascans.com/reader/series/{$title_url}";
862
	}
863
864
	public function getChapterData(string $title_url, string $chapter) : array {
865
		//LANG/VOLUME/CHAPTER/CHAPTER_EXTRA(/page/)
866
		$chapter_parts = explode('/', $chapter);
867
		return [
868
			'url'    => "http://helveticascans.com/reader/read/{$title_url}/{$chapter}/",
869
			'number' => ($chapter_parts[1] !== '0' ? "v{$chapter_parts[1]}/" : '') . "c{$chapter_parts[2]}" . (isset($chapter_parts[3]) ? ".{$chapter_parts[3]}" : '')/*)*/
870
		];
871
	}
872
873
	public function getTitleData(string $title_url) {
874
		$fullURL = $this->getFullTitleURL($title_url);
875
		return $this->parseFoolSlide($fullURL, $title_url);
876
	}
877
}
878
879
class SenseScans extends Site_Model {
880
	public $site          = 'SenseScans';
@@ 879-901 (lines=23) @@
876
	}
877
}
878
879
class SenseScans extends Site_Model {
880
	public $site          = 'SenseScans';
881
	public $titleFormat   = '/^[a-z0-9_-]+$/';
882
	public $chapterFormat = '/^en\/[0-9]+(?:\/[0-9]+(?:\/[0-9]+(?:\/[0-9]+)?)?)?$/';
883
884
	public function getFullTitleURL(string $title_url) : string {
885
		return "http://reader.sensescans.com/series/{$title_url}";
886
	}
887
888
	public function getChapterData(string $title_url, string $chapter) : array {
889
		//LANG/VOLUME/CHAPTER/CHAPTER_EXTRA(/page/)
890
		$chapter_parts = explode('/', $chapter);
891
		return [
892
			'url'    => "http://reader.sensescans.com/read/{$title_url}/{$chapter}/",
893
			'number' => ($chapter_parts[1] !== '0' ? "v{$chapter_parts[1]}/" : '') . "c{$chapter_parts[2]}" . (isset($chapter_parts[3]) ? ".{$chapter_parts[3]}" : '')/*)*/
894
		];
895
	}
896
897
	public function getTitleData(string $title_url) {
898
		$fullURL = $this->getFullTitleURL($title_url);
899
		return $this->parseFoolSlide($fullURL, $title_url);
900
	}
901
}
902