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

Wednesday, 30 October 2019

Deadspin writers quit after being ordered to stick to sports

Writers Laura Wagner, Kelsey McKinney, Tom Ley, Lauren Theisen, Patrick Redford, Albert Burneko and Chris Thompson all tweeted today that they have resigned from Deadspin, the sports-focused site owned by G/O Media.

A quick refresher: G/O Media was formerly known as Gizmodo Media Group, and before that as Gawker Media. It took on its current name and current leadership earlier this year when Univision sold the unit to private equity firm Great Hill Partners, who appointed former Forbes.com CEO Jim Spanfeller as its new chief executive.

Since then, the relationship between G/O Media leadership and the editorial staff has been rocky, as you would have learned by reading Deadspin itself, particularly an in-depth story by Wagner in August about how employees were unhappy with “a lack of communication regarding company goals, seeming disregard for promoting diversity within the top ranks of the company, and by repeated and egregious interference with editorial procedures.”

A few weeks later, Deadspin’s editor in chief Megan Greenwell resigned, saying that G/O Media’s new editorial director Paul Maidment was directing the staff to stick to sports coverage — a decision that she argued wasn’t dictated by traffic, since “posts on The Concourse, Deadspin’s vertical dedicated to politics and culture and other topics that are not sports, outperform posts on the main site by slightly more than two to one.”

Apparently Maidment repeated that edict in a memo earlier this week, which was leaked to The Daily Beast, and in which he said, “Deadspin will write only about sports and that which is relevant to sports in some way.”

The Deadspin homepage was subsequently filled with non-sports content, and editor Barry Petchesky tweeted that he had been “fired from Deadspin for not sticking to sports.”

At the same time, Deadspin also posted a story criticizing auto-playing ads on the site, declaring, “We, the writers, editors, and video producers of Deadspin, are as upset with the current state of our site’s user experience as you are.” The post is no longer live, but the criticism reportedly prompted advertiser Farmers Insurance to pull the campaign.

This all appears to have prompted a mass exodus from Deadspin today. The Gizmodo Media Group union also issued this statement:

Today, a number of our colleagues at Deadspin resigned from their positions. From the outset, CEO Jim Spanfeller has worked to undermine a successful site by curtailing its most well-read coverage because it makes him personally uncomfortable. This is not what journalism looks like and it is not what editorial independence looks like.

“Stick to sports” is and always has been a thinly veiled euphemism for “don’t speak truth to power.” In addition to being bad business, Spanfeller’s actions are morally reprehensible. The GMG Union stands with our current and former Deadspin colleagues and condemns Jim Spanfeller in the strongest possible terms.

We’ve reached out to G/O Media for comment and will update if we hear back.



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

0 comments:

Post a Comment

Blog Archive

Definition List

Unordered List

Support