Download wallpaper de pe Reddit

Postat la Mon 20 February 2017 in tutoriale

De multa vreme am citit despre aplicatii ce descarca local wallpaperele de pe Reddit.com, dar nu am gasit nimic satisfacator.

Anterior am mai lucrat cu API-ul celor de la Reddit.com (link api) si am gasit implementarea

Am realizat urmatorul script in PHP ce l-am salvat in /usr/local/bin/reddit_wall

 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
#!/usr/bin/php
<?php

error_reporting(0);

$path="/home/cristi/Pictures/reddit/";

$pageData = json_decode(file_get_contents( "http://www.reddit.com/r/wallpaper+wallpapers/.json?limit=500"));

$k = 1;

foreach ($pageData->data->children as $post) {
    foreach ($post->data->preview->images as $image) {
        if (strpos($image->source->url, '.png') !== false) {
            $ext = ".png";
        } else {
            $ext = ".jpg";
        }
        $picUrl = str_replace("&amp;","&",$image->source->url);
        $data = file_get_contents($picUrl);
        if (strlen($data) > 0) {
            $file = fopen($path.$k++.$ext, "w+");
            fputs($file, $data);
            fclose($file);
        }
    }
}

unde $path este locatia unde se salveaza imaginile descarcate.

Pentru rulare am facut fisierul executabil si il rulez prin cron. Sterg cele anterioare pentru ca ordinea imaginilor se schimba

0 * * * * cristi /bin/rm -f /home/cristi/Pictures/reddit/*.*; /usr/local/bin/reddit_wall >/dev/null 2>&1