public function getShares($providerName, $url, $delayUpdate = false)
{
$this->checkProvider($providerName);
$id = $this->getId($providerName, $url);
$lifeTime = $this->providers[$providerName]['lifeTime'];
$now = new \DateTime();
$dataFromCache = $this->cache->fetch($id);
$shares = isset($dataFromCache[0]) ? $dataFromCache[0] : false;
$expired = isset($dataFromCache[1]) && $dataFromCache[1]->add($lifeTime) < $now;
if (!$delayUpdate && (false === $shares || $expired)) {
$shares = $this->providers[$providerName]['provider']->getShares($url);
$this->cache->save($id, array($shares, $now));
} else {
if ($delayUpdate && (false === $shares || $expired)) {
$this->toUpdate[$providerName][] = $url;
}
$shares = intval($shares);
}
return $shares;
}