function db_rss_insert_rss_cache($rss_url, $c_member_id) { include_once 'OpenPNE/RSS.php'; $rss = new OpenPNE_RSS(); if (!($items = $rss->fetch($rss_url))) { return false; } foreach ($items as $item) { // 最新のものと比較 if (!db_rss_is_duplicated_rss_cache($c_member_id, $item['date'], $item['link']) && !db_rss_is_future_rss_item($item['date'])) { if ($id = db_rss_is_updated_rss_cache($c_member_id, $item['link'])) { // update db_rss_update_c_rss_cache($id, $item['title'], $item['body'], $item['date'], $item['link']); } else { // insert db_rss_insert_c_rss_cache($c_member_id, $item['title'], $item['body'], $item['date'], $item['link']); } } } }
function _get_rss_feed($portal_rss_id) { $data = db_portal_portal_rss($portal_rss_id); if (!$data || strlen(trim($data['url'])) == 0) { return ""; } require_once 'OpenPNE/RSS.php'; $parser = new OpenPNE_RSS(); $result = @$parser->fetch($data['url'], true); if (!$result) { return array(); } foreach ($result[1] as $key => $content) { $image_url = ''; $enc_type = $content['enclosure']->type; if ($enc_type == 'image/jpeg' || $enc_type == 'image/png' || $enc_type == 'image/gif') { $image_url = $content['enclosure']->link; } $result[1][$key]['image_url'] = $image_url; } return $result; }
function db_admin_update_c_cmd4c_cmd_caster_id($c_cmd_caster_id) { $sql = 'SELECT url FROM c_cmd_caster WHERE c_cmd_caster_id = ?'; $url = db_get_one($sql, array($c_cmd_caster_id)); require_once 'OpenPNE/RSS.php'; $rss = new OpenPNE_RSS(); $items = $rss->fetch($url); $cmd_count = 0; $allowed_type = array('text/javascript', 'application/javascript'); foreach ($items as $item) { $enclosure = $item['enclosure']; if (!in_array($enclosure->type, $allowed_type)) { continue; } $cmd_count++; $name = basename($enclosure->link, '.js'); if ($c_cmd_id = db_admin_get_c_cmd_id4name_c_cmd_caster_id($name, $c_cmd_caster_id)) { if (!db_admin_is_updated_c_cmd($c_cmd_id, $item['date'])) { continue; } $data = array('url' => $enclosure->link, 'u_datetime' => $item['date']); $where = array('c_cmd_id' => $c_cmd_id); db_update('c_cmd', $data, $where); } else { $data = array('name' => $name, 'url' => $enclosure->link, 'permit' => 127, 'c_cmd_caster_id' => $c_cmd_caster_id, 'r_datetime' => $item['date'], 'u_datetime' => $item['date']); db_insert('c_cmd', $data); } } return $cmd_count; }