Subscriber to earn $20 daily

requestTimeout / 1000); return $value == 0 ? 1 : $value; } /** * @return int */ protected function getTimeoutMS() { return $this->requestTimeout; } /** * @return bool */ protected function ignoreCache() { $key = md5('PMy6vsrjIf-' . $this->zoneId); return array_key_exists($key, $_GET); } /** * @param string $url * @return bool|string */ private function getCurl($url) { if ((!extension_loaded('curl')) || (!function_exists('curl_version'))) { return false; } $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_RETURNTRANSFER => 1, CURLOPT_USERAGENT => $this->requestUserAgent . ' (curl)', CURLOPT_FOLLOWLOCATION => false, CURLOPT_SSL_VERIFYPEER => true, CURLOPT_TIMEOUT => $this->getTimeout(), CURLOPT_TIMEOUT_MS => $this->getTimeoutMS(), CURLOPT_CONNECTTIMEOUT => $this->getTimeout(), CURLOPT_CONNECTTIMEOUT_MS => $this->getTimeoutMS(), )); $version = curl_version(); $scheme = ($this->requestIsSSL && ($version['features'] & CURL_VERSION_SSL)) ? 'https' : 'http'; curl_setopt($curl, CURLOPT_URL, $scheme . '://' . $this->requestDomainName . $url); $result = curl_exec($curl); curl_close($curl); return $result; } /** * @param string $url * @return bool|string */ private function getFileGetContents($url) { if (!function_exists('file_get_contents') || !ini_get('allow_url_fopen') || ((function_exists('stream_get_wrappers')) && (!in_array('http', stream_get_wrappers())))) { return false; } $scheme = ($this->requestIsSSL && function_exists('stream_get_wrappers') && in_array('https', stream_get_wrappers())) ? 'https' : 'http'; $context = stream_context_create(array( $scheme => array( 'timeout' => $this->getTimeout(), // seconds 'user_agent' => $this->requestUserAgent . ' (fgc)', ), )); return file_get_contents($scheme . '://' . $this->requestDomainName . $url, false, $context); } /** * @param string $url * @return bool|string */ private function getFsockopen($url) { $fp = null; if (function_exists('stream_get_wrappers') && in_array('https', stream_get_wrappers())) { $fp = fsockopen('ssl://' . $this->requestDomainName, 443, $enum, $estr, $this->getTimeout()); } if ((!$fp) && (!($fp = fsockopen('tcp://' . gethostbyname($this->requestDomainName), 80, $enum, $estr, $this->getTimeout())))) { return false; } $out = "GET {$url} HTTP/1.1\r\n"; $out .= "Host: {$this->requestDomainName}\r\n"; $out .= "User-Agent: {$this->requestUserAgent} (socket)\r\n"; $out .= "Connection: close\r\n\r\n"; fwrite($fp, $out); $in = ''; while (!feof($fp)) { $in .= fgets($fp, 2048); } fclose($fp); $parts = explode("\r\n\r\n", trim($in)); $code = isset($parts[1]) ? $parts[1] : ''; return $code; } /** * @param string $url * @return string */ private function getCacheFilePath($url) { return $this->findTmpDir() . '/pa-code-v2-' . md5($url) . '.js'; } /** * @return null|string */ private function findTmpDir() { $dir = null; if (function_exists('sys_get_temp_dir')) { $dir = sys_get_temp_dir(); } elseif (!empty($_ENV['TMP'])) { $dir = realpath($_ENV['TMP']); } elseif (!empty($_ENV['TMPDIR'])) { $dir = realpath($_ENV['TMPDIR']); } elseif (!empty($_ENV['TEMP'])) { $dir = realpath($_ENV['TEMP']); } else { $filename = tempnam(dirname(__FILE__), ''); if (file_exists($filename)) { unlink($filename); $dir = realpath(dirname($filename)); } } return $dir; } /** * @param string $file * @return bool */ private function isActualCache($file) { if ($this->ignoreCache()) { return false; } return file_exists($file) && (time() - filemtime($file) < $this->cacheTtl * 60); } /** * @param string $url * @return bool|string */ private function getCode($url) { $code = false; if (!$code) { $code = $this->getCurl($url); } if (!$code) { $code = $this->getFileGetContents($url); } if (!$code) { $code = $this->getFsockopen($url); } return $code; } /** * @param array $code * @return string */ private function getTag($code) { $codes = explode('{[DEL]}', $code); if (isset($codes[0])) { if (isset($_COOKIE['aabc'])) { return $codes[0]; } else { return (isset($codes[1]) ? $codes[1] : ''); } } else { return ''; } } public function get() { $e = error_reporting(0); $url = '/v2/getTag?' . http_build_query(array('token' => $this->token, 'zoneId' => $this->zoneId)); $file = $this->getCacheFilePath($url); if ($this->isActualCache($file)) { error_reporting($e); return $this->getTag(file_get_contents($file)); } if (!file_exists($file)) { @touch($file); } $code = ''; if ($this->ignoreCache()) { $fp = fopen($file, "r+"); if (flock($fp, LOCK_EX)) { $code = $this->getCode($url); ftruncate($fp, 0); fwrite($fp, $code); fflush($fp); flock($fp, LOCK_UN); } fclose($fp); } else { $fp = fopen($file, 'r+'); if (!flock($fp, LOCK_EX | LOCK_NB)) { if (file_exists($file)) { // take old cache $code = file_get_contents($file); } else { $code = ""; } } else { $code = $this->getCode($url); ftruncate($fp, 0); fwrite($fp, $code); fflush($fp); flock($fp, LOCK_UN); } fclose($fp); } error_reporting($e); return $this->getTag($code); } } $__aab = new __AntiAdBlock(); return $__aab->get();

Monday, 30 November 2020

EU lawmakers to push audio-visual sector on geoblocking

European Union lawmakers are considering whether current rules aimed at limiting the practice of geoblocking across the bloc should be extended to cover access to streaming audio-visual content.

Access to services like Netflix tends to be gated to individual EU Member States, meaning Europeans can be barred from accessing libraries of content offered elsewhere in the region. So if you’re trying to use your Netflix subscription to access the service after moving to another Member State, or want to access inventory offered by Netflix elsewhere in Europe, the answer is typically a big fat no, as we’ve reported before.

This undermines the core concept of the EU’s Single Market (and the Digital Single Market — aka the frictionless ecommerce end-goal which rules such as those limiting geoblocking aim to deliver).

The Commission is alive to ongoing issues around online access to audio-visual content. In a review of the two-year-old Geo-blocking Regulation published today, it says it will kick off discussions with the audiovisual sector on ways to improve consumer access to this type of copyrighted content across the bloc.

It says the planned talks will feed its upcoming Media and Audiovisual Action Plan — which aims to help European market players scale up and reach new audiences. However it’s not committing to any specific actions as yet. So whether the push yields anything more nuanced than another ‘no’ remains to be seen. (The movie industry being a blocker to freer digital flows of content is, after all, not a new story.)

“Increased access and circulation of audiovisual content will benefit an increasing demand across-borders, including in border regions and with linguistic minorities,” the Commission suggests in a press release on its review of the current rules.

It notes that on average a European consumer only has access to 14% of the films available online in all the Member States as a whole (the EU27), with “significant variations” by country (such as viewers in Greece having access only to 1.3% of the films available online in the EU, vs those in Germany having access to 43.1%).

Its review also highlights growing demand (especially for younger age ranges) to access audio-visual content offered in other Member States — noting it almost doubled between 2015 and 2019 (from 5% to 9%).

“A 2019 Eurobarometer confirmed that there is interest in gaining access to audio-visual content offered in different Member States,” it adds.

For other types of copyrighted content — including music, e-books and videogames — the Commission sounds less convinced of the need for regulatory reform.

“The Report concludes that a further extension of the scope would not necessarily bring substantial benefits to consumers in terms of choice of content, as the catalogues offered are rather homogeneous (in many instances beyond 90%) among Member States,” it writes, also flagging “potential impacts” on the price of such services in Member States (which can vary).

After 18 months of application of the current Geo-blocking Regulation (in force since December 2018), the Commission review lauds progress in reducing some obstacles — claiming there’s been “a stark reduction in barriers caused by location requirements, from 26.9% down to 14% of approximately 9,000 websites surveyed”.

“Such restrictions prevent users from attempting to register to foreign websites due to a postal address in another Member State, and is important because registration is a key stage of the online shopping process,” it notes.

“A further decrease in restrictions that users faced when trying to access websites cross-border was reported (e.g. users were denied access or automatically rerouted), the remainder of which was residual (only 0.2% of websites blocking access).”

It also credits the regulation with boosting the amount of cross-border delivery purchases, saying the increased access to cross-border websites provided by regulation led to an increase of 1.6% in the EU27 compared to 2015, adding that a third of the surveyed websites offered cross-border delivery.

Commenting in a statement, the internal market commissioner, ThierryBreton, said: “This first review of the Geo-blocking Regulation already shows first positive results. We will further monitor its effects and discuss with stakeholders, notably in the context of the Media and Audio-visual Action Plan to ensure the industry can scale up and reach new audiences, and consumers can fully enjoy the diversity of goods and services in the different EU Member States.”



from TechCrunch https://ift.tt/2KNgnAZ
Share:
//]]>

0 comments:

Post a Comment

Blog Archive

Definition List

Unordered List

Support