aboutsummaryrefslogtreecommitdiffstats
path: root/scrapers/wallhaven.php
blob: 5dbdd683cc004cfb95392cc44c7cdfc1ae0ff4b6 (plain) (blame)
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
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;
  }
?>