]>
Commit | Line | Data |
---|---|---|
53e3158d | 1 | <?php |
1ab567f6 | 2 | error_reporting(E_ALL); |
53e3158d NL |
3 | include_once 'inc/poche/global.inc.php'; |
4 | include_once 'inc/poche/config.inc.php'; | |
5 | ||
6 | if (php_sapi_name() === 'cli') { | |
7 | $options_cli = getopt('', array( | |
8 | 'limit::', | |
9 | 'user-id::', | |
10 | 'token::', | |
11 | )); | |
12 | } | |
13 | else { | |
14 | $options_cli = $_GET; | |
15 | } | |
16 | ||
17 | $limit = ! empty($options_cli['limit']) && ctype_digit($options_cli['limit']) ? (int) $options_cli['limit'] : 10; | |
18 | $user_id = ! empty($options_cli['user-id']) && ctype_digit($options_cli['user-id']) ? (int) $options_cli['user-id'] : null; | |
19 | $token = ! empty($options_cli['token']) ? $options_cli['token'] : null; | |
20 | ||
21 | if (is_null($user_id)) { | |
22 | die('You must give a user id'); | |
23 | } | |
24 | ||
25 | if (is_null($token)) { | |
26 | die('You must give a token'); | |
27 | } | |
28 | ||
29 | $store = new Database(); | |
30 | $config = $store->getConfigUser($user_id); | |
31 | ||
32 | if ($token != $config['token']) { | |
33 | die(_('Uh, there is a problem with the cron.')); | |
34 | } | |
35 | ||
36 | $items = $store->retrieveUnfetchedEntries($user_id, $limit); | |
37 | ||
38 | foreach ($items as $item) { | |
39 | $url = new Url(base64_encode($item['url'])); | |
40 | $content = Tools::getPageContent($url); | |
41 | ||
42 | $title = ($content['rss']['channel']['item']['title'] != '') ? $content['rss']['channel']['item']['title'] : _('Untitled'); | |
43 | $body = $content['rss']['channel']['item']['description']; | |
44 | ||
45 | // // clean content from prevent xss attack | |
1ab567f6 NL |
46 | $config = HTMLPurifier_Config::createDefault(); |
47 | $purifier = new HTMLPurifier($config); | |
48 | $title = $purifier->purify($title); | |
49 | $body = $purifier->purify($body); | |
53e3158d NL |
50 | |
51 | ||
52 | $store->updateContentAndTitle($item['id'], $title, $body, $user_id); | |
53 | } |