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

Facebook adds free TV shows Buffy, Angel, Firefly to redefine Watch

Facebook hasn’t had a hit show yet for its long-form video hub Watch, so it’s got a new plan: digging up some deceased cult favorites from television. First up, Facebook is making all episodes of Joss Whedon’s Buffy The Vampire Slayer, Angel, and Firefly free on Facebook Watch. There’ll be simultaneous viewing Watch Parties where fans can live comment together for Buffy at 3 pm PT today, Angel tomorrow at 12 pm PT, and Firefly on sunday at 12pm PT. Facebook recruited Buffy star Sarah Michelle Gellar to promote the launch.

These shows aren’t original, and they’re far from exclusive since they’re included in a Hulu subscription and are available to rent or buy on other platforms. But at least they’re not run-of-the-mill web content.Wwith Facebook’s remake of MTV’s Real World not arriving until Spring 2019, these sci-fi and horror shows are the most high-profile programs available on the free ad-supported streaming service. The hope is that fans of these shows will come get a taste of Watch, and then explore the rest of its programming.

However, Facebook downplayed this as a change is overarching strategy when I asked if it would be licensing more old TV shows. Instead, it’s trying to build a well-rounded mix of content. A Facbook spokesperson provided this statement:

“No – this doesn’t reflect a strategy shift. We’re focused on bringing content to Watch that people want to discuss and create a community around — whether that’s live sports like UEFA Champions League in Latin America, compelling shows like Sorry For Your Loss, Queen America and Sacred Lies, or even nostalgia content like Real World reboot we’re bringing to Watch next year. Buffy, Firefly and Angel are pop culture favorites with dedicated fan bases, and we’re excited for the opportunity to bring these shows back in a way that enables fans to watch and discuss together on the same platform.”

There’s no guarantee Whedon fans will flock to Watch in droves. [TechCrunch owner] Verizon tried the same thing, bringing Veronica Mars and Babylon 5 to its Go90 streaming service. That failed to move the needle and Go90 eventually shut down. Meanwhile, Watch Party’s simultaneous viewing hasn’t blossomed into a phenomenon, but perhaps bringing the feature to Messenger (which TechCrunch reports Facebook is internally testing) could more naturally spur these social consumption experiences.

Watch has made some progress sicne its lackluster August 2017 debut. 50 million people now spend at least 1 minute per month with Watch. For comparison, over 18 Snapchat Shows have over 10 million unique viewers per month. Facebook Watch users spend 5X longer watching than on clips discovered News Feed videos. But Facebook Watch really needs to pour the cash in necessary to secure a tent-pole series — its Game Of Thrones or House Of Cards. That might mesh well with its new strategy of conceding the younger audience that’s abandon Facebook in favor targeting older users, CNBC reported.

With so much free video content floating around and plenty of people already subscribing to Netflix, Hulu, and/or HBO, it’s been tough for Watch to gain traction when it’s so far outside the understood Facebook use case. Laying a bed of diverse content is a good baby step, but it needs something truly must-see if it’s going to wedge its way into our viewing habits.



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

0 comments:

Post a Comment

Blog Archive

Definition List

Unordered List

Support