root/trunk/robots/fetch_rss.bot.php

Revision 1, 2.5 KB (checked in by anonymous, 7 years ago)

initial import

Line 
1#!/usr/bin/php
2<?
3include ('../includes/includes.inc.php');
4include ('../includes/config/global.inc.php');
5include ('../includes/rss/rss_fetch.inc.php');
6include ('../includes/rss/rss_utils.inc.php');
7
8$_SERVER['SERVER_ADDR'] = '213.186.54.179';
9
10$db =& DB::connect($dsn);
11if (DB::isError($db))
12    error_log($_SERVER['HTTP_HOST'].' | '.__FILE__.' | Connexion SQL impossible : '.$db->getMessage());
13
14$db->setFetchMode(DB_FETCHMODE_ASSOC);
15
16$blog_r = $db->query('SELECT id, id_blog, rss FROM rss_blog WHERE rss LIKE "http%"');
17
18$debug = false;
19
20while($blog = $blog_r->fetchRow())
21{
22$debug and $blog['rss'] = 'http:masafr.exblog.jp/';
23    print '> '.$blog['rss'];
24
25    preg_match("/^(http:\/\/)?([^\/]+)/i", $blog['rss'], $matches);
26    $host = $matches[2];
27   
28    list($host_ip) = gethostbynamel($matches[2]);
29
30    if($host_ip /* && $host_ip != $_SERVER['SERVER_ADDR'] */)
31    {
32        print " ... $host_ip ok\n";
33        $rss = @fetch_rss($blog['rss']);
34        if($rss)
35        {
36            $debug and print_r($rss);
37            $debug and exit();
38            $blog_values = array(
39                'title' => $rss->channel['title'],
40                'link' => $rss->channel['link'],
41                'rss' => $blog['rss'],
42                'id' => $blog['id']
43                );
44            $debug and print_r($blog_values);
45            $debug or $db->autoExecute('rss_blog', $blog_values, DB_AUTOQUERY_UPDATE, "id='".$blog['id']."'");
46            $idx=0;
47            foreach ( $rss->items as $item )
48            {
49                $db_values = array(
50                        'id' => $blog['id'],
51                        'id_blog' => $blog['id_blog'],
52                        'id_ticket' => md5($blog['id'].$item['link']),
53                        'title' => $item['title'],
54                        'link' => $item['link']
55                        );
56                if($item['dc']['date'])
57                    $db_values['date'] = date("U",parse_w3cdtf($item['dc']['date']));
58                elseif($item['pubdate'])
59                    $db_values['date'] = strtotime($item['pubdate']);
60                if($item['description'])
61                    $db_values['description'] = $item['description'];
62                if($item['content']['encoded'])
63                    $db_values['content'] = $item['content']['encoded'];
64
65                $res = $db->autoExecute('rss_blog_ticket', $db_values);
66                if(DB::isError($res))
67                    print '_';
68                else
69                    print '.';
70                unset($res);
71                $idx++;
72            }
73            $debug or $db->query('UPDATE cache_user SET nb_blogs=? WHERE id=?', array($idx, $blog['id']));
74           
75        }
76        else
77        {
78            //$user_values = array('rss'=>'Error: Unable to parse your RSS ('.$blog['rss'].')');
79            //$debug or $db->autoExecute('rss_blog', $user_values, DB_AUTOQUERY_UPDATE, "id='".$blog['id']."'");
80
81            error_log('fetch_rss | error ^^^^^^^^^^^^^^^^^^ | '.$blog['rss']);
82            print " * Error";
83        }
84        print "\n";
85    }
86    else
87        print " -> BAD\n";
88}
89
90$db->disconnect();
91?>
Note: See TracBrowser for help on using the browser.