. ********************************************************************** */ $usecurl=1; $url = 'http://www.joeterranova.net/code/deviantart.php'; $webmaster='joeterranova@gmail.com (Joe Terranova)'; $artist = $_REQUEST['artist']; if(!$artist) return; if($_REQUEST['count']) $count= $_REQUEST['count']; else $count = 24; $url .= "?artist={$artist}"; $results = get_gal($artist,$count); if($_REQUEST['export']) { var_export($results); exit; } header("Content-Type: application/rss+xml"); date_default_timezone_set('GMT'); $date = date("D, d M Y H:i:s T",$results[0]['time']); echo " {$artist}'s latest artwork http://{$artist}.deviantart.com/gallery/ {$artist}'s latest artwork en-us {$date} {$date} http://blogs.law.harvard.edu/tech/rss Joe Terranova's DeviantArt RSS Generator joeterranova@gmail.com (Joe Terranova) $webmaster "; foreach($results as $result) { $date = date("D, d M Y H:i:s T",$result['time']); if($_REQUEST['nolink'])$desc = ""; else $desc = ""; $desc = ''; echo " {$result[title]} {$result[url]} $desc $date {$result[url]} "; } echo " "; function get_gal($artist, $count = 24) { global $usecurl; $results = Array(); $start =0; $resultcount=0; while(!$end) { if($count - $resultcount < 24) $request = $count - $resultcount; else $request = 24; $url="http://$artist.deviantart.com/global/difi/?c%5B%5D=Resources;htmlFromQuery;gallery%3A$artist%20sort%3Atime,$start,$request,thumb150,artist%3A0&t=json"; if($usecurl) { $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $dump = curl_exec($ch); } else $dump = file_get_contents($url); if(!$dump) return; $dump = stripslashes($dump); preg_match_all('{
]*>.*?href="([^"]*)" title="([^"]*)">}',$dump,$matches); preg_match('/"total":([^}]*)}/',$dump,$totalmatch); $total = $totalmatch[1]; foreach($matches[1] as $key=> $match) { preg_match('/(.*?) by ([^,]*), (.*)/',$matches[2][$key],$titlematches); preg_match('/.*?-(\d*)$/',$matches[1][$key],$urlmatches); $time=strtotime($titlematches[3]); $result = Array('url'=> $matches[1][$key], 'title'=> $titlematches[1], 'img'=>$matches[3][$key], 'date'=>$titlematches[3], 'time'=>$time, 'id'=>$urlmatches[1]); $results[] = $result; $resultcount++; $start++; if($resultcount == $count || $resultcount == $total) { $end = true; break; } } } return $results; } ?>