diff options
author | Squibid <me@zacharyscheiman.com> | 2023-09-22 18:08:37 -0400 |
---|---|---|
committer | Squibid <me@zacharyscheiman.com> | 2023-09-22 18:08:37 -0400 |
commit | 472092fe43ad7da9feb4a8c0b4bf216b20c063b9 (patch) | |
tree | 6200ad064861b167684483c38e7db9ad05519e7e /scrapers | |
download | wallheaven-472092fe43ad7da9feb4a8c0b4bf216b20c063b9.tar.gz wallheaven-472092fe43ad7da9feb4a8c0b4bf216b20c063b9.tar.bz2 wallheaven-472092fe43ad7da9feb4a8c0b4bf216b20c063b9.zip |
inital commit
Diffstat (limited to '')
-rw-r--r-- | scrapers/wallhaven.php | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/scrapers/wallhaven.php b/scrapers/wallhaven.php new file mode 100644 index 0000000..5dbdd68 --- /dev/null +++ b/scrapers/wallhaven.php @@ -0,0 +1,98 @@ +<?php + function callapi($method, $url, $data = false) { + $curl = curl_init(); + switch ($method) { + case "POST": + curl_setopt($curl, CURLOPT_POST, 1); + + if ($data) + curl_setopt($curl, CURLOPT_POSTFIELDS, $data); + break; + case "PUT": + curl_setopt($curl, CURLOPT_PUT, 1); + break; + default: + if ($data) + $url = sprintf("%s?%s", $url, http_build_query($data)); + } + curl_setopt($curl, CURLOPT_URL, $url); + curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); + + $result = curl_exec($curl); + + curl_close($curl); + + return $result; + } + + function getwallpapers($link) { + $decoded = json_decode(callapi("GET", $link), true); + $walls = []; + foreach($decoded["data"] as $key => $value) { + $walls[$key]["id"] = $decoded["data"][$key]["id"]; + $walls[$key]["url"] = $decoded["data"][$key]["url"]; + $walls[$key]["short_url"] = $decoded["data"][$key]["short_url"]; + $walls[$key]["views"] = $decoded["data"][$key]["views"]; + $walls[$key]["favorites"] = $decoded["data"][$key]["favorites"]; + $walls[$key]["source"] = $decoded["data"][$key]["source"]; + $walls[$key]["purity"] = $decoded["data"][$key]["purity"]; + $walls[$key]["category"] = $decoded["data"][$key]["category"]; + $walls[$key]["dimension_x"] = $decoded["data"][$key]["dimension_x"]; + $walls[$key]["dimension_y"] = $decoded["data"][$key]["dimension_y"]; + $walls[$key]["resolution"] = $decoded["data"][$key]["resolution"]; + $walls[$key]["ratio"] = $decoded["data"][$key]["ratio"]; + $walls[$key]["file_size"] = $decoded["data"][$key]["file_size"]; + $walls[$key]["file_type"] = $decoded["data"][$key]["file_type"]; + $walls[$key]["created_at"] = $decoded["data"][$key]["created_at"]; + $walls[$key]["colors"] = $decoded["data"][$key]["colors"]; + $walls[$key]["path"] = $decoded["data"][$key]["path"]; + $walls[$key]["thumbs"] = $decoded["data"][$key]["thumbs"]; + } + $meta["pages"] = $decoded["meta"]["last_page"]; + $meta["total"] = $decoded["meta"]["total"]; + return array($walls, $meta); + } + + function getwallpaper($link) { + $decoded = json_decode(callapi("GET", $link), true); + $wall = $decoded["data"]; + $wall["tags"] = $decoded["tags"]; + foreach($decoded["data"] as $key => $value) { + $wall["id"] = $decoded["data"]["id"]; + $wall["url"] = $decoded["data"]["url"]; + $wall["short_url"] = $decoded["data"]["short_url"]; + foreach($decoded["data"]["uploader"] as $key => $value) { + $wall["uploader"]["username"] = $decoded["data"]["uploader"]["username"]; + $wall["uploader"]["group"] = $decoded["data"]["uploader"]["group"]; + foreach($decoded["data"]["uploader"]["avatar"] as $key => $value) { + $wall["uploader"]["avatar"]["large"] = $decoded["data"]["uploader"]["avatar"]["200px"]; + $wall["uploader"]["avatar"]["medium"] = $decoded["data"]["uploader"]["avatar"]["128px"]; + $wall["uploader"]["avatar"]["small"] = $decoded["data"]["uploader"]["avatar"]["32px"]; + $wall["uploader"]["avatar"]["xsmall"] = $decoded["data"]["uploader"]["avatar"]["20px"]; + } + } + $wall["views"] = $decoded["data"]["views"]; + $wall["favorites"] = $decoded["data"]["favorites"]; + $wall["source"] = $decoded["data"]["source"]; + $wall["purity"] = $decoded["data"]["purity"]; + $wall["category"] = $decoded["data"]["category"]; + $wall["dimension_x"] = $decoded["data"]["dimension_x"]; + $wall["dimension_y"] = $decoded["data"]["dimension_y"]; + $wall["resolution"] = $decoded["data"]["resolution"]; + $wall["ratio"] = $decoded["data"]["ratio"]; + $wall["file_size"] = $decoded["data"]["file_size"]; + $wall["file_type"] = $decoded["data"]["file_type"]; + $wall["created_at"] = $decoded["data"]["created_at"]; + foreach ($decoded["data"]["tags"] as $key => $value) { + $wall["tags"][$key]["id"] = $decoded["data"]["tags"][$key]["id"]; + $wall["tags"][$key]["name"] = $decoded["data"]["tags"][$key]["name"]; + $wall["tags"][$key]["alias"] = $decoded["data"]["tags"][$key]["alias"]; + $wall["tags"][$key]["category_id"] = $decoded["data"]["tags"][$key]["category_id"]; + $wall["tags"][$key]["category"] = $decoded["data"]["tags"][$key]["category"]; + $wall["tags"][$key]["purity"] = $decoded["data"]["tags"][$key]["purity"]; + $wall["tags"][$key]["created_at"] = $decoded["data"]["tags"][$key]["created_at"]; + } + } + return $wall; + } +?> |