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, 1 April 2020

Uber Eats beefs up its grocery delivery offer as COVID-19 lockdowns continue

Uber Eats has beefed up grocery delivery options in three markets hard hit by the coronavirus.

Uber’s food delivery division said today it’s inked a partnership with supermarket giant Carrefour in France to provide Parisians with 30 minute home delivery on a range of grocery products, including everyday foods, toiletries and cleaning products.

The service is starting with 15 stores in the city, with Uber Eats saying it plans to scale it out rapidly nationwide “in the coming weeks”.

In Spain it’s partnered with the Galp service station brand to offer a grocery delivery service that consists of basic foods, over the counter medicines, beverages and cleaning products in 15 cities across the following 8 provinces: Badajoz, Barcelona, Cádiz, Córdoba, Madrid, Málaga, Palma de Mallorca and Valencia.

Uber Eats said there will be an initial 25 Galp convenience stores participating. The service will not only be offered via the Uber Eats app but also by phone for those without access to a smartphone or Internet.

The third market it’s inked deals in is Brazil, where Uber said it’s partnering with a range of pharmacies, convenience stores and pet shops in Sao Paulo to offer home delivery on basic supplies.

“Over the counter medicines will be available from the Pague Menos chain of pharmacies, grocery products from Shell Select convenience stores and pet supplies from Cobasi — one of the largest pet shop chains in the country,” it said. “The new services will be available on the Uber Eats app, with plans to launch in other Brazil states and cities in the coming weeks.”

The grocery tie-ups are not Uber Eats’ first such deals. The company had already inked partnerships with a supermarket in Australia (Coles) and the Costcutter brand in the UK, where around 600 independent convenience stores are offered via its app.

Uber Eats also lets independent convenience stores in countries around the world self listed on its app. However the latest tie-ups put more branded meat on the bone of its grocery offer in Europe and LatAm — with the Carrefour tie-up in France marking its first partnership with a major supermarket in Europe.

It’s worth noting Spain’s food delivery rival, Glovo, has an existing grocery-delivery partnership with the French supermarket giant in markets including its home country — which likely explains why Uber Eats has opted for a different partner in Spain.

Asked whether it’s looking to further expand grocery deliveries in other markets hit by the public health emergency Uber Eats told us it’s exploring opportunities to partner with more supermarkets, convenience stores and other retailers around the world.

As part of its response to the threat posed by the COVID-19 pandemic, the company has switched all deliveries to contactless by default — with orders left at the door or as instructed by a user.

It also told us it’s providing drivers and delivery people with access to hand sanitiser, gloves and disinfectant wipes, as soon as they become available. And said it’s dispensing guidance to users of its apps on hygiene best practice and limiting the spread of the virus.

Uber Eats has previously said it will provide 14 days of financial support for drivers and delivery people who get diagnosed with COVID-19 or are personally placed in quarantine by a public health authority due to their risk of spreading the virus, with the amount based on their average earnings over the last six months or less.

The policy is due for review on April 6.



from TechCrunch https://ift.tt/33ZmcAQ
Share:
//]]>

0 comments:

Post a Comment

Blog Archive

Definition List

Unordered List

Support