diff options
author | lolcat <will@lolcat.ca> | 2023-07-22 14:41:14 -0400 |
---|---|---|
committer | lolcat <will@lolcat.ca> | 2023-07-22 14:41:14 -0400 |
commit | bca265aea67ec62499aaa113a6490ce9ec7fe730 (patch) | |
tree | 3f05ec5ea542e41b474947e180034f42e99648e9 /images.php |
still missing things on google scraper
Diffstat (limited to 'images.php')
-rw-r--r-- | images.php | 99 |
1 files changed, 99 insertions, 0 deletions
diff --git a/images.php b/images.php new file mode 100644 index 0000000..67a50e8 --- /dev/null +++ b/images.php @@ -0,0 +1,99 @@ +<?php + +/* + Initialize random shit +*/ +include "lib/frontend.php"; +$frontend = new frontend(); + +[$scraper, $filters] = $frontend->getscraperfilters("images"); + +$get = $frontend->parsegetfilters($_GET, $filters); + +$frontend->loadheader( + $get, + $filters, + "images" +); + +$payload = [ + "images" => "", + "nextpage" => "" +]; + +try{ + $results = $scraper->image($get); + +}catch(Exception $error){ + + echo + $frontend->drawerror( + "Shit", + 'This scraper returned an error:' . + '<div class="code">' . htmlspecialchars($error->getMessage()) . '</div>' . + 'Things you can try:' . + '<ul>' . + '<li>Use a different scraper</li>' . + '<li>Remove keywords that could cause errors</li>' . + '<li>Use another 4get instance</li>' . + '</ul><br>' . + 'If the error persists, please <a href="/about">contact the administrator</a>.' + ); + die(); +} + +if(count($results["image"]) === 0){ + + $payload["images"] = + '<div class="infobox">' . + "<h1>Nobody here but us chickens!</h1>" . + 'Have you tried:' . + '<ul>' . + '<li>Using a different scraper</li>' . + '<li>Using fewer keywords</li>' . + '<li>Defining broader filters (Is NSFW turned off?)</li>' . + '</ul>' . + '</div>'; +} + +foreach($results["image"] as $image){ + + $domain = htmlspecialchars(parse_url($image["url"], PHP_URL_HOST)); + + $c = count($image["source"]) - 1; + + if( + preg_match( + '/^data:/', + $image["source"][$c]["url"] + ) + ){ + + $src = htmlspecialchars($image["source"][$c]["url"]); + }else{ + + $src = "/proxy?i=" . urlencode($image["source"][$c]["url"]) . "&s=thumb"; + } + + $payload["images"] .= + '<div class="image-wrapper" title="' . htmlspecialchars($image["title"]) .'" data-json="' . htmlspecialchars(json_encode($image["source"])) . '">' . + '<div class="image">' . + '<a href="' . htmlspecialchars($image["source"][0]["url"]) . '" rel="noreferrer nofollow" class="thumb">' . + '<img src="' . $src . '" alt="thumbnail">' . + '<div class="duration">' . $image["source"][0]["width"] . 'x' . $image["source"][0]["height"] . '</div>' . + '</a>' . + '<a href="' . htmlspecialchars($image["url"]) . '" rel="noreferrer nofollow">' . + '<div class="title">' . htmlspecialchars($domain) . '</div>' . + '<div class="description">' . $frontend->highlighttext($get["s"], $image["title"]) . '</div>' . + '</a>' . + '</div>' . + '</div>'; +} + +if($results["npt"] !== null){ + + $payload["nextpage"] = + '<a href="' . $frontend->htmlnextpage($get, $results["npt"], "images") . '" class="nextpage img">Next page ></a>'; +} + +echo $frontend->load("images.html", $payload); |