summaryrefslogtreecommitdiff
path: root/plugins/af_comics/filters/af_comics_comicpress.php
blob: 741d59672c23b855f06316247e96f8ba0edc4ab5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<?php
class Af_Comics_ComicPress extends Af_ComicFilter {

	function supported() {
		return array("Buni", "Buttersafe", "Happy Jar", "CSection",
			"Extra Fabulous Comics", "Nedroid", "Stonetoss");
	}

	function process(&$article) {
		if (strpos($article["guid"], "bunicomic.com") !== false ||
				strpos($article["guid"], "buttersafe.com") !== false ||
				strpos($article["guid"], "extrafabulouscomics.com") !== false ||
				strpos($article["guid"], "happyjar.com") !== false ||
				strpos($article["guid"], "nedroid.com") !== false ||
				strpos($article["guid"], "stonetoss.com") !== false ||
				strpos($article["guid"], "csectioncomics.com") !== false) {

				// lol at people who block clients by user agent
				// oh noes my ad revenue Q_Q

				$res = UrlHelper::fetch(["url" => $article["link"],
					"useragent" => "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)"]);

				$doc = new DOMDocument();

				if ($res && $doc->loadHTML($res)) {
					$xpath = new DOMXPath($doc);
					$basenode = $xpath->query('//div[@id="comic"]')->item(0);

					if ($basenode) {
						$article["content"] = $doc->saveHTML($basenode);
						return true;
					}

					// buni-specific
					$webtoon_link = $xpath->query("//a[contains(@href,'www.webtoons.com')]")->item(0);

					if ($webtoon_link) {

						$res = UrlHelper::fetch(["url" => $webtoon_link->getAttribute("href"),
							"useragent" => "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)"]);

						if (@$doc->loadHTML($res)) {
							$xpath = new DOMXPath($doc);
							$basenode = $xpath->query('//div[@id="_viewerBox"]')->item(0);

							if ($basenode) {
								$imgs = $xpath->query("//img[@data-url]", $basenode);

								foreach ($imgs as $img) {
									$img->setAttribute("src", $img->getAttribute("data-url"));
								}

								$article["content"] = $doc->saveHTML($basenode);
								return true;
							}
						}
					}
				}
		}

		return false;
	}
}