]>
Commit | Line | Data |
---|---|---|
1 | <?php | |
2 | /** | |
3 | * wallabag, self hostable application allowing you to not miss any content anymore | |
4 | * | |
5 | * @category wallabag | |
6 | * @author Nicolas LÅ“uillet <nicolas@loeuillet.org> | |
7 | * @copyright 2013 | |
8 | * @license http://opensource.org/licenses/MIT see COPYING file | |
9 | */ | |
10 | ||
11 | class FlattrItem | |
12 | { | |
13 | public $status; | |
14 | public $urlToFlattr; | |
15 | public $flattrItemURL; | |
16 | public $numFlattrs; | |
17 | ||
18 | public function checkItem($urlToFlattr, $id) | |
19 | { | |
20 | $this->_cacheFlattrFile($urlToFlattr, $id); | |
21 | $flattrResponse = file_get_contents(CACHE . "/flattr/".$id.".cache"); | |
22 | if($flattrResponse != FALSE) { | |
23 | $result = json_decode($flattrResponse); | |
24 | if (isset($result->message)) { | |
25 | if ($result->message == "flattrable") { | |
26 | $this->status = FLATTRABLE; | |
27 | } | |
28 | } | |
29 | elseif (is_object($result) && $result->link) { | |
30 | $this->status = FLATTRED; | |
31 | $this->flattrItemURL = $result->link; | |
32 | $this->numFlattrs = $result->flattrs; | |
33 | } | |
34 | else { | |
35 | $this->status = NOT_FLATTRABLE; | |
36 | } | |
37 | } | |
38 | else { | |
39 | $this->status = "FLATTR_ERR_CONNECTION"; | |
40 | } | |
41 | } | |
42 | ||
43 | private function _cacheFlattrFile($urlToFlattr, $id) | |
44 | { | |
45 | if (!is_dir(CACHE . '/flattr')) { | |
46 | mkdir(CACHE . '/flattr', 0777); | |
47 | } | |
48 | ||
49 | // if a cache flattr file for this url already exists and it's been less than one day than it have been updated, see in /cache | |
50 | if ((!file_exists(CACHE . "/flattr/".$id.".cache")) || (time() - filemtime(CACHE . "/flattr/".$id.".cache") > 86400)) { | |
51 | $askForFlattr = Tools::getFile(FLATTR_API . $urlToFlattr); | |
52 | $flattrCacheFile = fopen(CACHE . "/flattr/".$id.".cache", 'w+'); | |
53 | fwrite($flattrCacheFile, $askForFlattr); | |
54 | fclose($flattrCacheFile); | |
55 | } | |
56 | } | |
57 | } |