NokitaKaze icon

Качалка Deviantart

NokitaKaze | PRO | 07/05/13 05:43:12 PM UTC | 0 ⭐ | 313 👁️ | Never ⏰ | []
PHP |

3.44 KB

|

None

|

0 👍

/

0 👎

<?php
 if ((int)sad_option('dis_deviant')==1){
  header('http/1.0 503');
  $sad_contype='text/html; charset=utf-8';
  return;
 }
 
 $qf_c=mysql_fetch_assoc(mysql_query('select * from `'.$sad_prefix.'da_feed` where `id`='.sad_safe_mysql($_GET['id'])));
 if ((int)$qf_c['id']==0){
  header('http/1.0 404');
  $sad_contype='text/html; charset=utf-8';
  return;
 }
 
 if ($qf_c['time']<time()-6*3600 and ($_SERVER['REMOTE_ADDR']==my_ip() or iam() ) ){
  $allfeed=array();
  $q=mysql_query('select `id`, `sname`, `time`, `data` from `'.$sad_prefix.'da_item` where `parent`='.sad_safe_mysql($_GET['id']));
  while ($q_c=mysql_fetch_assoc($q)){
   $fd.='; '.$q_c['title'];
   if ($q_c['time']>=time()-5*3600){
    $buf=$q_c['data'];
   }else{
    $ch=curl_init('http://backend.deviantart.com/rss.xml?q=boost%3Anewest%20'.urlencode($q_c['sname']));
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
    $buf=curl_exec($ch);
    mysql_query('update `'.$sad_prefix.'da_item` set `data`="'.sad_safe_mysql($buf).'", `time`=UNIX_TIMESTAMP() where `id`='.$q_c['id']);
   }
   
   $feed=sad_xml_rawtext($buf);
   for ($i=1;true;$i++){
    if (strlen(sad_xml_getnode($feed,'channel/item|'.$i.'/title#'))<1){break;}
   
   
    preg_match('|([0-9]+)$|',sad_xml_getnode($feed,'channel/item|'.$i.'/link#'),$a);
    preg_match('|/([^/]+?)" alt="thumbnail"|',sad_xml_getnode($feed,'channel/item|'.$i.'/description#'),$b);
    $ff =' <title>'.sad_safe_html(sad_xml_getnode($feed,'channel/item|'.$i.'/title#')).'</title>
 <link>'.sad_xml_getnode($feed,'channel/item|'.$i.'/link#').'</link>
 <guid isPermaLink="true">'.sad_xml_getnode($feed,'channel/item|'.$i.'/guid#').'</guid>
 <pubDate>'.sad_xml_getnode($feed,'channel/item|'.$i.'/pubDate#').'</pubDate>
 <description>'.sad_safe_xml(sad_xml_getnode($feed,'channel/item|'.$i.'/description#'));
    if (strlen(sad_xml_getnode($feed,'channel/item|'.$i.'/description#'))>0){
     if (preg_match('_\\.(jpe?g|png|gif|bmp)_i',sad_xml_getnode($feed,'channel/item|'.$i.'/description#'))){
      $t='Full image';
     }else{$t='Read text';}
     $ff.=sad_safe_xml('<br><a target="_blank" href="http://www.deviantart.com/download/'.$a[1].'/'.$b[1].'">'.$t.'</a>');
    }
    $ff.='</description>';
    $allfeed[sad_xml_getnode($feed,'channel/item|'.$i.'/guid#')]=$ff;
   }
  
  }
  
  $buf=''; foreach ($allfeed as $guid => $item){
   $buf.="<item>\r\n".$item."\r\n</item>\r\n\r\n";
  }
  mysql_query('update `'.$sad_prefix.'da_feed` set `data`="'.sad_safe_mysql($buf).'", `time`=UNIX_TIMESTAMP() where `id`='.$qf_c['id']);
  $dd=time();
 }else{
  $buf=$qf_c['data'];
  $dd =$qf_c['time'];
 }
 
// print_r($allfeed);exit;
 $sad_contype='application/rss+xml; charset=UTF-8';
 $sad_hide=true;
 echo '<'.'?xml version="1.0" encoding="utf-8"?'.'>';
?><rss version="2.0"
 xmlns:media="http://search.yahoo.com/mrss/"
 xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
        <title>{#php:$qf_c['title']#} / DeviantArt</title>
        <link>http://kanaria.ru/deviantart/</link>
        <description>deviantART RSS for sort:time boost:{#php:substr($fd,2)#}</description>
        <language>en-us</language>
        <copyright>Copyright 2011, deviantART.com con KanariaRu</copyright>
        <pubDate>{#php:gmdate("D, d M Y H:i:s \G\M\T",$dd)#}</pubDate>
        <generator>KanariaRu</generator>
        <docs>http://blogs.law.harvard.edu/tech/rss</docs>
 
{#php:$buf#}
</channel></rss><!-- {#php:gmdate("d.m.Y H:i:sO",$dd)#} -->

Comments