Beispiel #1
0
 public static function get_read_conn()
 {
     if (self::$read_conn === null) {
         $ds = array_merge(array(self::$daemons['master']), self::$daemons['slaves']);
         shuffle($ds);
         $d = $ds[0];
         $dsn = $d['host'] . $d['user'] . $d['pass'] . $d['name'] . $d['port'];
         if (isset(self::$conns[$dsn])) {
             $conn = self::$conns[$dsn];
         } else {
             $conn = mysqli_connect($d['host'], $d['user'], $d['pass'], $d['name'], $d['port']);
             if (!$conn) {
                 exit('Cannot connect to slave');
             }
             self::$conns[$dsn] = $conn;
         }
         self::$read_conn = $conn;
     }
     return self::$read_conn;
 }
 public static function get_source_by_id($source_id)
 {
     $sql = "SELECT * FROM source WHERE source_id={$source_id}";
     $rs = mysqli_query(friendfeed_config::get_read_conn(), $sql);
     while ($row = mysqli_fetch_assoc($rs)) {
         return $row;
     }
     return null;
 }
<?php

require_once dirname(__FILE__) . '/snap.php';
while (true) {
    $conn = friendfeed_config::get_both_conn();
    $rs = mysqli_query($conn, "SELECT * FROM source WHERE service = 'baidu_space'");
    $sources = array();
    while ($row = mysqli_fetch_assoc($rs)) {
        $sources[] = $row;
    }
    foreach ($sources as $source) {
        snap_baidu_space_item($source['username'], $source['source_id']);
    }
    $now = date('Y-m-d H:i:s');
    mysqli_query($conn, "UPDATE source SET last_snap = '{$now}' WHERE service = 'baidu_space'");
    sleep(86400);
}
Beispiel #4
0
function snap_sohu_blog_item($username, $source_id)
{
    $content = file_get_contents('http://' . $username . '.blog.sohu.com/rss');
    if (strpos($content, '<html') !== false) {
        return false;
    }
    $rss = new MagpieRSS($content, 'UTF-8', 'UTF-8', false);
    $conn = friendfeed_config::get_both_conn();
    $snapday = date('Y-m-d H:i:s');
    $new_links = array();
    foreach ($rss->items as $item) {
        $new_links[] = $item['link'];
    }
    $sql = "SELECT * FROM item WHERE source_id = '{$source_id}'";
    $rs = mysqli_query($conn, $sql);
    $old_links = array();
    while ($row = mysqli_fetch_assoc($rs)) {
        $old_links[] = $row['link'];
    }
    $links = array_diff($new_links, $old_links);
    $change_ids = array();
    foreach ($rss->items as $item) {
        if (in_array($item['link'], $links)) {
            $item['title'] = addslashes($item['title']);
            $item['description'] = addslashes($item['description']);
            $item['pubdate'] = strtotime($item['pubdate']);
            $sql = "INSERT INTO item VALUES (NULL, '{$source_id}', '{$snapday}', '{$item['pubdate']}', '0', '{$item['title']}', '{$item['link']}', '" . FEED_BLOG . "', '{$item['description']}', '')";
            mysqli_query($conn, $sql);
            $change_ids[] = mysqli_insert_id($conn);
        }
    }
    if ($change_ids !== array()) {
        $new_num = count($change_ids);
        $change_ids = implode('|', $change_ids);
        $now = date('Y-m-d H:i:s');
        $sql = "UPDATE source SET is_new_changed = '1', changes = '{$change_ids}',last_snap = '{$now}' WHERE source_id = '{$source_id}'";
        mysqli_query($conn, $sql);
        $sql = "UPDATE subscribe SET new_num = new_num + {$new_num} WHERE source_id = '{$source_id}'";
        mysqli_query($conn, $sql);
    }
    return true;
}