Файл: onlinepoisk.wm-scripts.ru/vendor/Art/LastFM.php
Строк: 21
<?php
namespace Art;
class LastFM {
private static $root = "http://ws.audioscrobbler.com/2.0/";
public static function request($conf, $method, $params) {
$apiKey = $conf->getOption('app', 'lastfmapikey');
$expired = $conf->getOption('cache', 'artists') ;
$qparams = http_build_query($params);
$q = self::$root . "?method={$method}&format=json&api_key={$apiKey}&{$qparams}";
$cacheKey = "lastfm_".sha1($q).".json";
$data = ModelCache::find('one', array('conditions' => array(
'`expiredAt` > ? AND `key` = ?', date( "Y-m-d H:i:s", time()), $cacheKey
)));
if ( !$data ) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_URL, $q);
$resp = curl_exec($ch);
curl_close($ch);
//$resp = file_get_contents($q);
$data = new ModelCache;
$data->key = $cacheKey;
$data->data = $resp;
$data->expiredat = date( "Y-m-d H:i:s", time() + $expired );
$data->save();
}
$data = json_decode($data->data);
return $data;
}
}
/*
Техническая поддержка и обновления
http://wm-scripts.ru
*/