@@ -1,4 +1,4 @@ discard block |
||
| 1 | -<?php declare(strict_types=1); defined('BASEPATH') or exit('No direct script access allowed'); |
|
| 1 | +<?php declare(strict_types = 1); defined('BASEPATH') or exit('No direct script access allowed'); |
|
| 2 | 2 | |
| 3 | 3 | /** |
| 4 | 4 | * Checks if view file exists. |
@@ -6,7 +6,7 @@ discard block |
||
| 6 | 6 | * @return bool |
| 7 | 7 | */ |
| 8 | 8 | function view_exists(string $path) : bool { |
| 9 | - return file_exists(APPPATH . "/views/{$path}.php"); |
|
| 9 | + return file_exists(APPPATH."/views/{$path}.php"); |
|
| 10 | 10 | } |
| 11 | 11 | |
| 12 | 12 | function get_time_class(string $time_string) : string { |
@@ -32,19 +32,19 @@ discard block |
||
| 32 | 32 | return $time_string; |
| 33 | 33 | } |
| 34 | 34 | |
| 35 | -if (!function_exists('http_parse_headers')) { #http://www.php.net/manual/en/function.http-parse-headers.php#112917 |
|
| 36 | - function http_parse_headers (string $raw_headers) : array { |
|
| 35 | +if(!function_exists('http_parse_headers')) { #http://www.php.net/manual/en/function.http-parse-headers.php#112917 |
|
| 36 | + function http_parse_headers(string $raw_headers) : array { |
|
| 37 | 37 | $headers = array(); // $headers = []; |
| 38 | - foreach (explode("\n", $raw_headers) as $i => $h) { |
|
| 38 | + foreach(explode("\n", $raw_headers) as $i => $h) { |
|
| 39 | 39 | $h = explode(':', $h, 2); |
| 40 | - if (isset($h[1])){ |
|
| 41 | - if(!isset($headers[$h[0]])){ |
|
| 40 | + if(isset($h[1])) { |
|
| 41 | + if(!isset($headers[$h[0]])) { |
|
| 42 | 42 | $headers[$h[0]] = trim($h[1]); |
| 43 | - }else if(is_array($headers[$h[0]])){ |
|
| 44 | - $tmp = array_merge($headers[$h[0]],array(trim($h[1]))); |
|
| 43 | + } else if(is_array($headers[$h[0]])) { |
|
| 44 | + $tmp = array_merge($headers[$h[0]], array(trim($h[1]))); |
|
| 45 | 45 | $headers[$h[0]] = $tmp; |
| 46 | - }else{ |
|
| 47 | - $tmp = array_merge(array($headers[$h[0]]),array(trim($h[1]))); |
|
| 46 | + } else { |
|
| 47 | + $tmp = array_merge(array($headers[$h[0]]), array(trim($h[1]))); |
|
| 48 | 48 | $headers[$h[0]] = $tmp; |
| 49 | 49 | } |
| 50 | 50 | } |
@@ -1,4 +1,4 @@ discard block |
||
| 1 | -<?php declare(strict_types=1); defined('BASEPATH') OR exit('No direct script access allowed'); |
|
| 1 | +<?php declare(strict_types = 1); defined('BASEPATH') OR exit('No direct script access allowed'); |
|
| 2 | 2 | |
| 3 | 3 | class Tracker_Stats_Model extends Tracker_Base_Model { |
| 4 | 4 | public function __construct() { |
@@ -28,7 +28,7 @@ discard block |
||
| 28 | 28 | ], FALSE) |
| 29 | 29 | ->from('tracker_chapters') |
| 30 | 30 | ->join('tracker_titles', 'tracker_titles.id = tracker_chapters.title_id', 'left') |
| 31 | - ->join('tracker_sites','tracker_titles.site_id = tracker_sites.id', 'left') |
|
| 31 | + ->join('tracker_sites', 'tracker_titles.site_id = tracker_sites.id', 'left') |
|
| 32 | 32 | ->group_by('tracker_chapters.title_id') |
| 33 | 33 | ->having('count > 1') |
| 34 | 34 | ->order_by('count DESC') |
@@ -1,4 +1,4 @@ discard block |
||
| 1 | -<?php declare(strict_types=1); defined('BASEPATH') OR exit('No direct script access allowed'); |
|
| 1 | +<?php declare(strict_types = 1); defined('BASEPATH') OR exit('No direct script access allowed'); |
|
| 2 | 2 | |
| 3 | 3 | class DynastyScans extends Base_Site_Model { |
| 4 | 4 | //FIXME: This has some major issues. SEE: https://github.com/DakuTree/manga-tracker/issues/58 |
@@ -23,7 +23,7 @@ discard block |
||
| 23 | 23 | */ |
| 24 | 24 | |
| 25 | 25 | $chapterData = [ |
| 26 | - 'url' => 'https://dynasty-scans.com/chapters/' . $title_parts[0].'_'.$chapter, |
|
| 26 | + 'url' => 'https://dynasty-scans.com/chapters/'.$title_parts[0].'_'.$chapter, |
|
| 27 | 27 | 'number' => '' |
| 28 | 28 | ]; |
| 29 | 29 | |
@@ -51,7 +51,7 @@ discard block |
||
| 51 | 51 | return $chapterData; |
| 52 | 52 | } |
| 53 | 53 | |
| 54 | - public function getTitleData(string $title_url, bool $firstGet = FALSE) : ?array { |
|
| 54 | + public function getTitleData(string $title_url, bool $firstGet = FALSE) : ? array { |
|
| 55 | 55 | $titleData = []; |
| 56 | 56 | |
| 57 | 57 | $fullURL = $this->getFullTitleURL($title_url); |
@@ -78,13 +78,13 @@ discard block |
||
| 78 | 78 | } |
| 79 | 79 | |
| 80 | 80 | $chapterURLSegments = explode('/', (string) $data['nodes_chapter']->getAttribute('href')); |
| 81 | - if (strpos($chapterURLSegments[2], $title_parts[0]) !== false) { |
|
| 81 | + if(strpos($chapterURLSegments[2], $title_parts[0]) !== false) { |
|
| 82 | 82 | $titleData['latest_chapter'] = substr($chapterURLSegments[2], strlen($title_parts[0]) + 1); |
| 83 | 83 | } else { |
| 84 | 84 | $titleData['latest_chapter'] = $chapterURLSegments[2]; |
| 85 | 85 | } |
| 86 | 86 | |
| 87 | - $titleData['last_updated'] = date("Y-m-d H:i:s", strtotime(str_replace("'", '', substr((string) $data['nodes_latest']->textContent, 9)))); |
|
| 87 | + $titleData['last_updated'] = date("Y-m-d H:i:s", strtotime(str_replace("'", '', substr((string) $data['nodes_latest']->textContent, 9)))); |
|
| 88 | 88 | } |
| 89 | 89 | break; |
| 90 | 90 | |
@@ -94,7 +94,7 @@ discard block |
||
| 94 | 94 | |
| 95 | 95 | preg_match('/<b>.*<\/b>/', $data, $matchesT); |
| 96 | 96 | preg_match('/\/doujins\/[^"]+">(.+)?(?=<\/a>)<\/a>/', $data, $matchesD); |
| 97 | - $titleData['title'] = (!empty($matchesD) ? ($matchesD[1] !== 'Original' ? $matchesD[1].' - ' : '') : '') . substr($matchesT[0], 3, -4); |
|
| 97 | + $titleData['title'] = (!empty($matchesD) ? ($matchesD[1] !== 'Original' ? $matchesD[1].' - ' : '') : '').substr($matchesT[0], 3, -4); |
|
| 98 | 98 | |
| 99 | 99 | $titleData['latest_chapter'] = 'oneshot'; //This will never change |
| 100 | 100 | |
@@ -1,4 +1,4 @@ discard block |
||
| 1 | -<?php declare(strict_types=1); defined('BASEPATH') OR exit('No direct script access allowed'); |
|
| 1 | +<?php declare(strict_types = 1); defined('BASEPATH') OR exit('No direct script access allowed'); |
|
| 2 | 2 | |
| 3 | 3 | class MangaHere extends Base_Site_Model { |
| 4 | 4 | public $titleFormat = '/^[a-z0-9_]+$/'; |
@@ -15,7 +15,7 @@ discard block |
||
| 15 | 15 | ]; |
| 16 | 16 | } |
| 17 | 17 | |
| 18 | - public function getTitleData(string $title_url, bool $firstGet = FALSE) : ?array { |
|
| 18 | + public function getTitleData(string $title_url, bool $firstGet = FALSE) : ? array { |
|
| 19 | 19 | $titleData = []; |
| 20 | 20 | |
| 21 | 21 | $fullURL = $this->getFullTitleURL($title_url); |
@@ -35,8 +35,8 @@ discard block |
||
| 35 | 35 | |
| 36 | 36 | $link = preg_replace('/^(.*\/)(?:[0-9]+\.html)?$/', '$1', (string) $data['nodes_chapter']->getAttribute('href')); |
| 37 | 37 | $chapterURLSegments = explode('/', $link); |
| 38 | - $titleData['latest_chapter'] = $chapterURLSegments[5] . (isset($chapterURLSegments[6]) && !empty($chapterURLSegments[6]) ? "/{$chapterURLSegments[6]}" : ""); |
|
| 39 | - $titleData['last_updated'] = date("Y-m-d H:i:s", strtotime((string) $data['nodes_latest']->nodeValue)); |
|
| 38 | + $titleData['latest_chapter'] = $chapterURLSegments[5].(isset($chapterURLSegments[6]) && !empty($chapterURLSegments[6]) ? "/{$chapterURLSegments[6]}" : ""); |
|
| 39 | + $titleData['last_updated'] = date("Y-m-d H:i:s", strtotime((string) $data['nodes_latest']->nodeValue)); |
|
| 40 | 40 | } |
| 41 | 41 | |
| 42 | 42 | return (!empty($titleData) ? $titleData : NULL); |
@@ -1,4 +1,4 @@ discard block |
||
| 1 | -<?php declare(strict_types=1); defined('BASEPATH') OR exit('No direct script access allowed'); |
|
| 1 | +<?php declare(strict_types = 1); defined('BASEPATH') OR exit('No direct script access allowed'); |
|
| 2 | 2 | |
| 3 | 3 | class KissManga extends Base_Site_Model { |
| 4 | 4 | /* This site is a massive pain in the ass. The only reason I'm supporting it is it's one of the few aggregator sites which actually support more risqué manga. |
@@ -30,7 +30,7 @@ discard block |
||
| 30 | 30 | ]; |
| 31 | 31 | } |
| 32 | 32 | |
| 33 | - public function getTitleData(string $title_url, bool $firstGet = FALSE) : ?array { |
|
| 33 | + public function getTitleData(string $title_url, bool $firstGet = FALSE) : ? array { |
|
| 34 | 34 | $titleData = []; |
| 35 | 35 | |
| 36 | 36 | //Check if cookiejar is a day old (so we can know if something went wrong) |
@@ -59,13 +59,13 @@ discard block |
||
| 59 | 59 | $titleData['title'] = $nodes_title->item(0)->textContent; |
| 60 | 60 | |
| 61 | 61 | $firstRow = $nodes_row->item(0); |
| 62 | - $nodes_latest = $xpath->query("td[2]", $firstRow); |
|
| 62 | + $nodes_latest = $xpath->query("td[2]", $firstRow); |
|
| 63 | 63 | $nodes_chapter = $xpath->query("td[1]/a", $firstRow); |
| 64 | 64 | |
| 65 | 65 | $link = (string) $nodes_chapter->item(0)->getAttribute('href'); |
| 66 | 66 | $chapterURLSegments = explode('/', preg_replace('/\?.*$/', '', $link)); |
| 67 | - $titleData['latest_chapter'] = $chapterURLSegments[3] . ':--:' . preg_replace('/.*?([0-9]+)$/', '$1', $link); |
|
| 68 | - $titleData['last_updated'] = date("Y-m-d H:i:s", strtotime((string) $nodes_latest->item(0)->textContent)); |
|
| 67 | + $titleData['latest_chapter'] = $chapterURLSegments[3].':--:'.preg_replace('/.*?([0-9]+)$/', '$1', $link); |
|
| 68 | + $titleData['last_updated'] = date("Y-m-d H:i:s", strtotime((string) $nodes_latest->item(0)->textContent)); |
|
| 69 | 69 | } |
| 70 | 70 | } else { |
| 71 | 71 | //TODO: Throw ERRORS; |
@@ -1,4 +1,4 @@ discard block |
||
| 1 | -<?php declare(strict_types=1); defined('BASEPATH') OR exit('No direct script access allowed'); |
|
| 1 | +<?php declare(strict_types = 1); defined('BASEPATH') OR exit('No direct script access allowed'); |
|
| 2 | 2 | |
| 3 | 3 | class Batoto extends Base_Site_Model { |
| 4 | 4 | //Batoto is a bit tricky to track. Unlike MangaFox and MangaHere, it doesn't store anything in the title_url, which means we have to get the data via other methods. |
@@ -24,12 +24,12 @@ discard block |
||
| 24 | 24 | |
| 25 | 25 | $chapter_parts = explode(':--:', $chapter); |
| 26 | 26 | return [ |
| 27 | - 'url' => "https://bato.to/reader#" . $chapter_parts[0], |
|
| 27 | + 'url' => "https://bato.to/reader#".$chapter_parts[0], |
|
| 28 | 28 | 'number' => $chapter_parts[1] |
| 29 | 29 | ]; |
| 30 | 30 | } |
| 31 | 31 | |
| 32 | - public function getTitleData(string $title_url, bool $firstGet = FALSE) : ?array { |
|
| 32 | + public function getTitleData(string $title_url, bool $firstGet = FALSE) : ? array { |
|
| 33 | 33 | $titleData = []; |
| 34 | 34 | |
| 35 | 35 | $title_parts = explode(':--:', $title_url); |
@@ -58,7 +58,7 @@ discard block |
||
| 58 | 58 | $titleData['title'] = html_entity_decode(trim($data['nodes_title']->textContent)); |
| 59 | 59 | |
| 60 | 60 | preg_match('/^(?:Vol\.(?<volume>\S+) )?(?:Ch.(?<chapter>[^\s:]+)(?:\s?-\s?(?<extra>[0-9]+))?):?.*/', trim($data['nodes_chapter']->nodeValue), $text); |
| 61 | - $titleData['latest_chapter'] = substr($data['nodes_chapter']->getAttribute('href'), 23) . ':--:' . ((!empty($text['volume']) ? 'v'.$text['volume'].'/' : '') . 'c'.$text['chapter'] . (!empty($text['extra']) ? '-'.$text['extra'] : '')); |
|
| 61 | + $titleData['latest_chapter'] = substr($data['nodes_chapter']->getAttribute('href'), 23).':--:'.((!empty($text['volume']) ? 'v'.$text['volume'].'/' : '').'c'.$text['chapter'].(!empty($text['extra']) ? '-'.$text['extra'] : '')); |
|
| 62 | 62 | |
| 63 | 63 | $dateString = $data['nodes_latest']->nodeValue; |
| 64 | 64 | if($dateString == 'An hour ago') { |
@@ -167,7 +167,7 @@ discard block |
||
| 167 | 167 | |
| 168 | 168 | $chapter = $nodes_chapter->item(0); |
| 169 | 169 | preg_match('/^(?:Vol\.(?<volume>\S+) )?(?:Ch.(?<chapter>[^\s:]+)(?:\s?-\s?(?<extra>[0-9]+))?):?.*/', trim($chapter->nodeValue), $text); |
| 170 | - $titleData['latest_chapter'] = substr($chapter->getAttribute('href'), 8) . ':--:' . ((!empty($text['volume']) ? 'v' . $text['volume'] . '/' : '') . 'c' . $text['chapter'] . (!empty($text['extra']) ? '-' . $text['extra'] : '')); |
|
| 170 | + $titleData['latest_chapter'] = substr($chapter->getAttribute('href'), 8).':--:'.((!empty($text['volume']) ? 'v'.$text['volume'].'/' : '').'c'.$text['chapter'].(!empty($text['extra']) ? '-'.$text['extra'] : '')); |
|
| 171 | 171 | |
| 172 | 172 | $dateString = $nodes_latest->item(0)->nodeValue; |
| 173 | 173 | if($dateString == 'An hour ago') { |
@@ -1,4 +1,4 @@ discard block |
||
| 1 | -<?php declare(strict_types=1); defined('BASEPATH') OR exit('No direct script access allowed'); |
|
| 1 | +<?php declare(strict_types = 1); defined('BASEPATH') OR exit('No direct script access allowed'); |
|
| 2 | 2 | |
| 3 | 3 | class MangaStream extends Base_Site_Model { |
| 4 | 4 | public $titleFormat = '/^[a-z0-9_]+$/'; |
@@ -15,7 +15,7 @@ discard block |
||
| 15 | 15 | ]; |
| 16 | 16 | } |
| 17 | 17 | |
| 18 | - public function getTitleData(string $title_url, bool $firstGet = FALSE) : ?array { |
|
| 18 | + public function getTitleData(string $title_url, bool $firstGet = FALSE) : ? array { |
|
| 19 | 19 | $titleData = []; |
| 20 | 20 | |
| 21 | 21 | $fullURL = $this->getFullTitleURL($title_url); |
@@ -35,7 +35,7 @@ discard block |
||
| 35 | 35 | |
| 36 | 36 | $titleData['latest_chapter'] = preg_replace('/^.*\/(.*?\/[0-9]+)\/[0-9]+$/', '$1', (string) $data['nodes_chapter']->getAttribute('href')); |
| 37 | 37 | |
| 38 | - $titleData['last_updated'] = date("Y-m-d H:i:s", strtotime((string) $data['nodes_latest']->nodeValue)); |
|
| 38 | + $titleData['last_updated'] = date("Y-m-d H:i:s", strtotime((string) $data['nodes_latest']->nodeValue)); |
|
| 39 | 39 | } |
| 40 | 40 | |
| 41 | 41 | return (!empty($titleData) ? $titleData : NULL); |
@@ -1,4 +1,4 @@ discard block |
||
| 1 | -<?php declare(strict_types=1); defined('BASEPATH') OR exit('No direct script access allowed'); |
|
| 1 | +<?php declare(strict_types = 1); defined('BASEPATH') OR exit('No direct script access allowed'); |
|
| 2 | 2 | |
| 3 | 3 | class EGScans extends Base_Site_Model { |
| 4 | 4 | public $titleFormat = '/^[A-Za-z0-9\-_\!,]+$/'; |
@@ -15,7 +15,7 @@ discard block |
||
| 15 | 15 | ]; |
| 16 | 16 | } |
| 17 | 17 | |
| 18 | - public function getTitleData(string $title_url, bool $firstGet = FALSE) : ?array { |
|
| 18 | + public function getTitleData(string $title_url, bool $firstGet = FALSE) : ? array { |
|
| 19 | 19 | $titleData = []; |
| 20 | 20 | |
| 21 | 21 | $fullURL = $this->getFullTitleURL($title_url); |
@@ -1,4 +1,4 @@ discard block |
||
| 1 | -<?php declare(strict_types=1); defined('BASEPATH') OR exit('No direct script access allowed'); |
|
| 1 | +<?php declare(strict_types = 1); defined('BASEPATH') OR exit('No direct script access allowed'); |
|
| 2 | 2 | |
| 3 | 3 | class MangaPanda extends Base_Site_Model { |
| 4 | 4 | //NOTE: MangaPanda has manga pages under the root URL, so we need to filter out pages we know that aren't manga. |
@@ -16,7 +16,7 @@ discard block |
||
| 16 | 16 | ]; |
| 17 | 17 | } |
| 18 | 18 | |
| 19 | - public function getTitleData(string $title_url, bool $firstGet = FALSE) : ?array { |
|
| 19 | + public function getTitleData(string $title_url, bool $firstGet = FALSE) : ? array { |
|
| 20 | 20 | $titleData = []; |
| 21 | 21 | |
| 22 | 22 | $fullURL = $this->getFullTitleURL($title_url); |
@@ -35,7 +35,7 @@ discard block |
||
| 35 | 35 | |
| 36 | 36 | $titleData['latest_chapter'] = preg_replace('/^.*\/([0-9]+)$/', '$1', (string) $data['nodes_chapter']->getAttribute('href')); |
| 37 | 37 | |
| 38 | - $titleData['last_updated'] = date("Y-m-d H:i:s", strtotime((string) $data['nodes_latest']->nodeValue)); |
|
| 38 | + $titleData['last_updated'] = date("Y-m-d H:i:s", strtotime((string) $data['nodes_latest']->nodeValue)); |
|
| 39 | 39 | } |
| 40 | 40 | |
| 41 | 41 | return (!empty($titleData) ? $titleData : NULL); |