| 1 |
<?php |
|---|
| 2 |
|
|---|
| 3 |
|
|---|
| 4 |
|
|---|
| 5 |
// Convert $parameter to an integer, see if it exists |
|---|
| 6 |
$parameter = (int) $parameter; |
|---|
| 7 |
|
|---|
| 8 |
|
|---|
| 9 |
$feed = db_query("select * from feeds where ident = $parameter"); |
|---|
| 10 |
$subscribers = db_query("select count(*) as num from feed_subscriptions where feed_id = $parameter"); |
|---|
| 11 |
$subscribers = $subscribers[0]->num; |
|---|
| 12 |
|
|---|
| 13 |
if (sizeof($feed) > 0 && $subscribers > 0) { |
|---|
| 14 |
|
|---|
| 15 |
if ($subscribers > 10) { |
|---|
| 16 |
$update_time = 3600; |
|---|
| 17 |
} else if ($subscribers > 5) { |
|---|
| 18 |
$update_time = 4800; |
|---|
| 19 |
} else if ($subscribers > 1) { |
|---|
| 20 |
$update_time = 7200; |
|---|
| 21 |
} else { |
|---|
| 22 |
$update_time = 14400; |
|---|
| 23 |
} |
|---|
| 24 |
|
|---|
| 25 |
$feed = $feed[0]; |
|---|
| 26 |
if ($feed->last_updated < (time() - $update_time)) { |
|---|
| 27 |
|
|---|
| 28 |
db_query("update feeds set last_updated = " . time() . " where ident = $parameter"); |
|---|
| 29 |
if ($rss = run("rss:get", $feed->url)) { |
|---|
| 30 |
|
|---|
| 31 |
$feedtitle = stripslashes($rss->channel['title']); |
|---|
| 32 |
$feedtagline = stripslashes($rss->channel['tagline']); |
|---|
| 33 |
if (strlen($feedtagline) > 120) { |
|---|
| 34 |
$feedtagline = ""; |
|---|
| 35 |
} |
|---|
| 36 |
$feedurl = stripslashes($rss->channel['link']); |
|---|
| 37 |
|
|---|
| 38 |
db_query("update feeds set siteurl = '$feedurl', name = '". addslashes($feedtitle) . "', tagline = '" . addslashes($feedtagline) . "' where ident = $parameter"); |
|---|
| 39 |
|
|---|
| 40 |
$feeditemstemp = db_query("select url from feed_posts where feed = $parameter"); |
|---|
| 41 |
$feeditems = array(); |
|---|
| 42 |
if (sizeof($feeditemstemp) > 0) { |
|---|
| 43 |
foreach($feeditemstemp as $feeditem) { |
|---|
| 44 |
$feeditems[] = stripslashes($feeditem->url); |
|---|
| 45 |
} |
|---|
| 46 |
} |
|---|
| 47 |
unset($feeditemstemp); |
|---|
| 48 |
|
|---|
| 49 |
if (sizeof($rss->items > 0)) { |
|---|
| 50 |
foreach($rss->items as $item) { |
|---|
| 51 |
$title = stripslashes($item['title']); |
|---|
| 52 |
$description = stripslashes($item['description']); |
|---|
| 53 |
if (isset($item['atom_content'])) { |
|---|
| 54 |
$description = stripslashes($item['atom_content']); |
|---|
| 55 |
} |
|---|
| 56 |
$posted = stripslashes($item['pubdate']); |
|---|
| 57 |
if (isset($item['dc']['date'])) { |
|---|
| 58 |
$posted = stripslashes($item['dc']['date']); |
|---|
| 59 |
} |
|---|
| 60 |
if (isset($item['issued'])) { |
|---|
| 61 |
$posted = stripslashes($item['issued']); |
|---|
| 62 |
} |
|---|
| 63 |
$posted = str_replace("T"," ",$posted); |
|---|
| 64 |
$posted = str_replace("Z"," ",$posted); |
|---|
| 65 |
$posted = str_replace("GM"," ",$posted); |
|---|
| 66 |
$posted = str_replace("ES"," ",$posted); |
|---|
| 67 |
$posted = str_replace("PS"," ",$posted); |
|---|
| 68 |
$posted = str_replace("ue","Tue",$posted); |
|---|
| 69 |
$posted = str_replace("hu","Thu",$posted); |
|---|
| 70 |
$posted = preg_replace('/(\d\d\d\d)\-(\d\d)\-(\d\d)/','$1/$2/$3',$posted); |
|---|
| 71 |
$posted = preg_replace('/(\-.*)/','',$posted); |
|---|
| 72 |
|
|---|
| 73 |
$url = stripslashes($item['link']); |
|---|
| 74 |
if (!($added = @strtotime($posted)) || $posted == "") { |
|---|
| 75 |
$added = time(); |
|---|
| 76 |
} |
|---|
| 77 |
if ($added > time() || $added == -1) { |
|---|
| 78 |
$added = time(); |
|---|
| 79 |
} |
|---|
| 80 |
|
|---|
| 81 |
if (in_array($url,$feeditems)) { |
|---|
| 82 |
db_query("update feed_posts set title = '".addslashes($title)."', body = '".addslashes($description)."', posted = '".addslashes($posted)."' where url = '".addslashes($url)."' and feed = $parameter"); |
|---|
| 83 |
} else { |
|---|
| 84 |
db_query("insert into feed_posts set title = '".addslashes($title)."', body = '".addslashes($description)."', posted = '".addslashes($posted)."', url = '".addslashes($url)."', feed = $parameter, added = $added"); |
|---|
| 85 |
$weblogs = db_query("select user_id, autopost_tag from feed_subscriptions where feed_id = $parameter and autopost = 'yes'"); |
|---|
| 86 |
if (is_array($weblogs) && sizeof($weblogs) > 0) { |
|---|
| 87 |
$body = "<p><a href=\"$url\">$url</a></p>" . addslashes($description); |
|---|
| 88 |
foreach($weblogs as $weblog) { |
|---|
| 89 |
db_query("insert into weblog_posts set title = '".addslashes($title)."', body = '$body', access = 'PUBLIC', owner = " . $weblog->user_id . ", weblog = " . $weblog->user_id . ", posted = $added"); |
|---|
| 90 |
$id = db_id(); |
|---|
| 91 |
$tags = trim($weblog->autopost_tag); |
|---|
| 92 |
if ($tags != "") { |
|---|
| 93 |
$tags = explode(",",$tags); |
|---|
| 94 |
foreach($tags as $tag) { |
|---|
| 95 |
$tag = trim($tag); |
|---|
| 96 |
if ($tag != "") { |
|---|
| 97 |
$tag = addslashes($tag); |
|---|
| 98 |
db_query("insert into tags set tag = '$tag', tagtype = 'weblog', ref = $id, access = 'PUBLIC', owner = " . $weblog->user_id); |
|---|
| 99 |
} |
|---|
| 100 |
} |
|---|
| 101 |
} |
|---|
| 102 |
$rssresult = run("weblogs:rss:publish", array($weblog->user_id, false)); |
|---|
| 103 |
$rssresult = run("profile:rss:publish", array($weblog->user_id, false)); |
|---|
| 104 |
} |
|---|
| 105 |
} |
|---|
| 106 |
} |
|---|
| 107 |
} |
|---|
| 108 |
} |
|---|
| 109 |
} |
|---|
| 110 |
} |
|---|
| 111 |
} |
|---|
| 112 |
|
|---|
| 113 |
?> |
|---|