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();

Friday 30 November 2018

AT&T details its streaming service plans as it weighs a sale of its Hulu stake

AT&T may be ready to sell its stake in Hulu, the company revealed in an analyst presentation on Thursday. The company currently owns a 10 percent stake in the service by way of WarnerMedia, as a result of its Time Warner acquisition. But AT&T today is running its own streaming services, including live TV service DirecTV Now aimed at cord cutters, and a more lightweight WatchTV. It’s also preparing to launch yet another direct-to-consumer streaming service in 2019 that leverages its WarnerMedia properties.

The company offered a few more details about this new service during the presentation, noting that it will have three tiers of service.

The entry-level package will be focused on movies, followed by a premium service with original programming and “blockbuster movies.” The third service will include content from the first two tiers, then add an “extensive library of WarnerMedia and licensed content,” including classics, kids & family programing, comedy, and other theatrical releases and niche content.

The service will launch into beta in Q4 2019, AT&T said, and will complement WarnerMedia’s existing business. It will also work across devices, and will expand over time to include third-party content through partnerships.

As for selling its stake in Hulu, the company is “looking for opportunities to monetize assets” that are not essential to its current strategies, explained AT&T CFO John Stephens. He said the company was looking at its “minority investments in things like Sky México or Hulu or a variety of other things.”

The mention of the Hulu sale was a part of a larger discussion about paying down $18 billion of AT&T’s $20 billion in debt by the end of next year, which involved raising up $8 billion in cash by the sale of some assets.

Also of note was the company’s not-so-vague threat that WarnerMedia would not be renewing its licensing deals with rival streaming services when their rights expire.

Asked how the new direct-to-consumer effort will be able to compete with incumbents, WarnerMedia CEO John Stankey responded that over the next 18 to 24 months, “we’re going to see a pretty substantial structural shift that’s going to occur…some of the incumbents in that are in that space today should expect that their libraries are going to get a lot thinner,” he said.

“75 to 80 percent of their total viewing tonnage is sitting on a lot of that licensed content. So their pressure is they’ve got to make this pivot over the next 18 to 24 months to get people off of viewing the licensed content that maybe sits in our library or sits in a Disney/Fox library, and get it onto their own,” Stankey added.

The company believes that, over time, it will be able to bring in enough new subscribers to its streaming offers to offset the declines related to cord cutting, which is impacting its satellite TV company DirectTV. In Q3 2019, the company lost 359,000 net DirecTV subscribers as more consumers dropped pay TV in favor of streaming services, like Netflix.

 



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

0 comments:

Post a Comment

Blog Archive

Definition List

Unordered List

Support