added crowdview lol
This commit is contained in:
		
							parent
							
								
									faece63356
								
							
						
					
					
						commit
						81502d4721
					
				| @ -24,6 +24,7 @@ https://4get.ca | |||||||
| 	- Brave | 	- Brave | ||||||
| 	- Yandex | 	- Yandex | ||||||
| 	- Google | 	- Google | ||||||
|  | 	- Mwmbl | ||||||
| 	- Mojeek | 	- Mojeek | ||||||
| 	- Marginalia | 	- Marginalia | ||||||
| 	- wiby | 	- wiby | ||||||
|  | |||||||
| @ -104,6 +104,7 @@ class config{ | |||||||
| 	const PROXY_PINTEREST = false; | 	const PROXY_PINTEREST = false; | ||||||
| 	const PROXY_SEZNAM = false; | 	const PROXY_SEZNAM = false; | ||||||
| 	const PROXY_NAVER = false; | 	const PROXY_NAVER = false; | ||||||
|  | 	const PROXY_CROWDVIEW = false; | ||||||
| 	const PROXY_MWMBL = false; | 	const PROXY_MWMBL = false; | ||||||
| 	const PROXY_FTM = false; // findthatmeme
 | 	const PROXY_FTM = false; // findthatmeme
 | ||||||
| 	const PROXY_IMGUR = false; | 	const PROXY_IMGUR = false; | ||||||
|  | |||||||
| @ -902,6 +902,7 @@ class frontend{ | |||||||
| 						"yandex" => "Yandex", | 						"yandex" => "Yandex", | ||||||
| 						"google" => "Google", | 						"google" => "Google", | ||||||
| 						"yep" => "Yep", | 						"yep" => "Yep", | ||||||
|  | 						"crowdview" => "Crowdview", | ||||||
| 						"mwmbl" => "Mwmbl", | 						"mwmbl" => "Mwmbl", | ||||||
| 						"mojeek" => "Mojeek", | 						"mojeek" => "Mojeek", | ||||||
| 						"marginalia" => "Marginalia", | 						"marginalia" => "Marginalia", | ||||||
| @ -1019,6 +1020,11 @@ class frontend{ | |||||||
| 				$lib = new facebook(); | 				$lib = new facebook(); | ||||||
| 				break;*/ | 				break;*/ | ||||||
| 			 | 			 | ||||||
|  | 			case "crowdview": | ||||||
|  | 				include "scraper/crowdview.php"; | ||||||
|  | 				$lib = new crowdview(); | ||||||
|  | 				break; | ||||||
|  | 			 | ||||||
| 			case "mwmbl": | 			case "mwmbl": | ||||||
| 				include "scraper/mwmbl.php"; | 				include "scraper/mwmbl.php"; | ||||||
| 				$lib = new mwmbl(); | 				$lib = new mwmbl(); | ||||||
|  | |||||||
							
								
								
									
										145
									
								
								scraper/crowdview.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										145
									
								
								scraper/crowdview.php
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,145 @@ | |||||||
|  | <?php | ||||||
|  | 
 | ||||||
|  | class crowdview{ | ||||||
|  | 	 | ||||||
|  | 	public function __construct(){ | ||||||
|  | 		 | ||||||
|  | 		include "lib/backend.php"; | ||||||
|  | 		$this->backend = new backend("crowdview"); | ||||||
|  | 		 | ||||||
|  | 		include "lib/fuckhtml.php"; | ||||||
|  | 		$this->fuckhtml = new fuckhtml(); | ||||||
|  | 	} | ||||||
|  | 	 | ||||||
|  | 	public function getfilters($page){ | ||||||
|  | 
 | ||||||
|  | 		return []; | ||||||
|  | 	} | ||||||
|  | 	 | ||||||
|  | 	private function get($proxy, $url, $get = []){ | ||||||
|  | 		 | ||||||
|  | 		$curlproc = curl_init(); | ||||||
|  | 		 | ||||||
|  | 		if($get !== []){ | ||||||
|  | 			$get = http_build_query($get); | ||||||
|  | 			$url .= "?" . $get; | ||||||
|  | 		} | ||||||
|  | 		 | ||||||
|  | 		curl_setopt($curlproc, CURLOPT_URL, $url); | ||||||
|  | 		 | ||||||
|  | 		curl_setopt($curlproc, CURLOPT_ENCODING, ""); // default encoding
 | ||||||
|  | 		curl_setopt($curlproc, CURLOPT_HTTPHEADER, | ||||||
|  | 			["User-Agent: " . config::USER_AGENT, | ||||||
|  | 			"Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", | ||||||
|  | 			"Accept-Language: en-US,en;q=0.5", | ||||||
|  | 			"Accept-Encoding: gzip", | ||||||
|  | 			"DNT: 1", | ||||||
|  | 			"Connection: keep-alive", | ||||||
|  | 			"Upgrade-Insecure-Requests: 1", | ||||||
|  | 			"Sec-Fetch-Dest: document", | ||||||
|  | 			"Sec-Fetch-Mode: navigate", | ||||||
|  | 			"Sec-Fetch-Site: none", | ||||||
|  | 			"Sec-Fetch-User: ?1"] | ||||||
|  | 		); | ||||||
|  | 		 | ||||||
|  | 		curl_setopt($curlproc, CURLOPT_RETURNTRANSFER, true); | ||||||
|  | 		curl_setopt($curlproc, CURLOPT_SSL_VERIFYHOST, 2); | ||||||
|  | 		curl_setopt($curlproc, CURLOPT_SSL_VERIFYPEER, true); | ||||||
|  | 		curl_setopt($curlproc, CURLOPT_CONNECTTIMEOUT, 30); | ||||||
|  | 		curl_setopt($curlproc, CURLOPT_TIMEOUT, 30); | ||||||
|  | 		 | ||||||
|  | 		$this->backend->assign_proxy($curlproc, $proxy); | ||||||
|  | 		 | ||||||
|  | 		$data = curl_exec($curlproc); | ||||||
|  | 		 | ||||||
|  | 		if(curl_errno($curlproc)){ | ||||||
|  | 			 | ||||||
|  | 			throw new Exception(curl_error($curlproc)); | ||||||
|  | 		} | ||||||
|  | 		 | ||||||
|  | 		curl_close($curlproc); | ||||||
|  | 		return $data; | ||||||
|  | 	} | ||||||
|  | 	 | ||||||
|  | 	public function web($get){ | ||||||
|  | 		 | ||||||
|  | 		$search = $get["s"]; | ||||||
|  | 		if(strlen($search) === 0){ | ||||||
|  | 			 | ||||||
|  | 			throw new Exception("Search term is empty!"); | ||||||
|  | 		} | ||||||
|  | 		 | ||||||
|  | 		$proxy = $this->backend->get_ip(); | ||||||
|  | 		 | ||||||
|  | 		try{ | ||||||
|  | 			$json = $this->get( | ||||||
|  | 				$proxy, | ||||||
|  | 				"https://crowdview-next-js.onrender.com/api/search-v3", | ||||||
|  | 				[ | ||||||
|  | 					"query" => $search | ||||||
|  | 				] | ||||||
|  | 			); | ||||||
|  | 		}catch(Exception $error){ | ||||||
|  | 			 | ||||||
|  | 			throw new Exception("Failed to fetch JSON"); | ||||||
|  | 		} | ||||||
|  | 		 | ||||||
|  | 		$out = [ | ||||||
|  | 			"status" => "ok", | ||||||
|  | 			"spelling" => [ | ||||||
|  | 				"type" => "no_correction", | ||||||
|  | 				"using" => null, | ||||||
|  | 				"correction" => null | ||||||
|  | 			], | ||||||
|  | 			"npt" => null, | ||||||
|  | 			"answer" => [], | ||||||
|  | 			"web" => [], | ||||||
|  | 			"image" => [], | ||||||
|  | 			"video" => [], | ||||||
|  | 			"news" => [], | ||||||
|  | 			"related" => [] | ||||||
|  | 		]; | ||||||
|  | 		 | ||||||
|  | 		$json = json_decode($json, true); | ||||||
|  | 		 | ||||||
|  | 		if($json === NULL){ | ||||||
|  | 			 | ||||||
|  | 			throw new Exception("Failed to decode JSON"); | ||||||
|  | 		} | ||||||
|  | 		 | ||||||
|  | 		foreach($json["results"] as $item){ | ||||||
|  | 			 | ||||||
|  | 			$description = explode("<b>", $item["snippet"], 2); | ||||||
|  | 			 | ||||||
|  | 			$out["web"][] = [ | ||||||
|  | 				"title" => $this->sanitize($item["title"]), | ||||||
|  | 				"description" => $this->sanitize($description[1]), | ||||||
|  | 				"url" => $item["link"], | ||||||
|  | 				"date" => strtotime($description[0]), | ||||||
|  | 				"type" => "web", | ||||||
|  | 				"thumb" => [ | ||||||
|  | 					"url" => null, | ||||||
|  | 					"ratio" => null | ||||||
|  | 				], | ||||||
|  | 				"sublink" => [], | ||||||
|  | 				"table" => [] | ||||||
|  | 			]; | ||||||
|  | 		} | ||||||
|  | 		 | ||||||
|  | 		return $out; | ||||||
|  | 	} | ||||||
|  | 	 | ||||||
|  | 	private function sanitize($html){ | ||||||
|  | 		 | ||||||
|  | 		return | ||||||
|  | 			trim( | ||||||
|  | 				$this->fuckhtml | ||||||
|  | 				->getTextContent( | ||||||
|  | 					html_entity_decode( | ||||||
|  | 						$html | ||||||
|  | 					) | ||||||
|  | 				), | ||||||
|  | 				". " | ||||||
|  | 			); | ||||||
|  | 	} | ||||||
|  | } | ||||||
| @ -125,6 +125,10 @@ $settings = [ | |||||||
| 						"value" => "yep", | 						"value" => "yep", | ||||||
| 						"text" => "Yep" | 						"text" => "Yep" | ||||||
| 					], | 					], | ||||||
|  | 					[ | ||||||
|  | 						"value" => "crowdview", | ||||||
|  | 						"text" => "Crowdview" | ||||||
|  | 					], | ||||||
| 					[ | 					[ | ||||||
| 						"value" => "mwmbl", | 						"value" => "mwmbl", | ||||||
| 						"text" => "Mwmbl" | 						"text" => "Mwmbl" | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 lolcat
						lolcat