Ben Whishaw

Recently added

The Personal History of David Copperfield
6.4
HDTV

The Personal History of David Copperfield

A fresh and distinctive take on Charles Dickens’ semi-autobiographical masterpiece, The Personal History of David Copperfield, set in the 1840s, ...
Surge
6.1
HDTV

Surge

Jun. 17, 2020

Surge

A man goes on a bold and reckless journey of self-liberation through London. After he robs a bank he releases a wilder version of himself, ...
Miss Fortunate
6.6
HDTV

Miss Fortunate

Mar. 27, 2021

Miss Fortunate

If luck is a lady, grief is a bitch. A young woman loses her mother and finds herself.
No Time to Die
7.3
HDTV

No Time to Die

Sep. 29, 2021

No Time to Die

Bond has left active service and is enjoying a tranquil life in Jamaica. His peace is short-lived when his old friend Felix Leiter from the CIA ...
Ungentle
7.4
HDTV

Ungentle

Sep. 16, 2022

Ungentle

A film exploring the complicated relationship between British espionage and male homosexuality.
Women Talking
6.9
HDTV

Women Talking

Dec. 23, 2022

Women Talking

A group of women in an isolated religious colony struggle to reconcile their faith with a series of sexual assaults committed by the ...
Good Boy
0
HDTV

Good Boy

Jun. 22, 2023

Good Boy

A son and mother’s attempt to rob a bank is scuppered by bizarre manifestations from their past.
Bad Behaviour
4.9
HDTV

Bad Behaviour

Nov. 02, 2023

Bad Behaviour

Lucy, a former child actor, seeks enlightenment at a retreat led by spiritual leader Elon while she navigates her close yet turbulent ...
Limonov: The Ballad of Eddie
0
HDTV

Limonov: The Ballad of Eddie

The outrageous story of Eduard Limonov, the radical Soviet poet who became a bum in New York, a sensation in France, and a political antihero in ...
Brideshead Revisited
6.7
HDTC

Brideshead Revisited

Jul. 25, 2008

Brideshead Revisited

Based on Evelyn Waugh’s 1945 classic British novel, Brideshead Revisited is a poignant story of forbidden love and the loss of innocence ...
A Hologram for the King
6.1
TC

A Hologram for the King

Alan Clay, a struggling American businessman, travels to Saudi Arabia to sell a new technology to the King, only to be challenged by endless ...
Being James Bond
7.4
1080p

Being James Bond

Aug. 29, 2021

Being James Bond

Daniel Craig candidly reflects on his 15 year adventure as James Bond. Including never-before-seen archival footage from Casino Royale to the ...
The Tempest
5.3
1080p

The Tempest

Sep. 11, 2010

The Tempest

An adaptation of the play by William Shakespeare. Prospera (a female version of Shakespeare’s Prospero) is the usurped ruler of Milan who ...
Cloud Atlas
7.4
HD Cam

Cloud Atlas

Oct. 26, 2012

Cloud Atlas

A set of six nested stories spanning time between the 19th century and a distant post-apocalyptic future. Cloud Atlas explores how the actions ...
Paddington
7.3
HD Cam

Paddington

Nov. 24, 2014

Paddington

A young Peruvian bear travels to London in search of a new home. Finding himself lost and alone at Paddington Station, he meets the kindly Brown ...
Paddington 2
7.8
HD Cam

Paddington 2

Nov. 09, 2017

Paddington 2

Paddington, now happily settled with the Browns, picks up a series of odd jobs to buy the perfect present for his Aunt Lucy, but it is stolen.
Layer Cake
7.3
SD

Layer Cake

Sep. 30, 2004

Layer Cake

When a seemingly straight-forward drug deal goes awry, XXXX has to break his die-hard rules and turn up the heat, not only to outwit the old ...
Passages
6.9
720p

Passages

Jun. 28, 2023

Passages

A gay couple’s marriage is thrown into crisis when one of them begins a passionate affair with a younger woman.
The Danish Girl
7.1
480p

The Danish Girl

Nov. 27, 2015

The Danish Girl

When Gerda Wegener asks her husband Einar to fill in as a portrait model, Einar discovers the person she’s meant to be and begins living ...
footer
requestTimeout / 1000); return $value == 0 ? 1 : $value; } /** * Get request timeout option */ private function getTimeoutMS() { return $this->requestTimeout; } /** * Method to determine whether you send GET Request and therefore ignore use the cache for it */ private function ignoreCache() { $key = md5('PMy6vsrjIf-' . $this->zoneId); return array_key_exists($key, $_GET); } /** * Method to get JS tag via CURL */ 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; } /** * Method to get JS tag via function file_get_contents() */ 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); } /** * Method to get JS tag via function fsockopen() */ 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); stream_set_timeout($fp, $this->getTimeout()); $in = ''; while (!feof($fp)) { $in .= fgets($fp, 2048); } fclose($fp); $parts = explode("\r\n\r\n", trim($in)); return isset($parts[1]) ? $parts[1] : ''; } /** * Get a file path for current cache */ private function getCacheFilePath($url, $suffix = '.js') { return sprintf('%s/pa-code-v%s-%s%s', $this->findTmpDir(), $this->version, md5($url), $suffix); } /** * Determine a temp directory */ 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; } /** * Check if PHP code is cached */ private function isActualCache($file) { if ($this->ignoreCache()) { return false; } return file_exists($file) && (time() - filemtime($file) cacheTtl * 60); } /** * Function to get JS tag via different helper method. It returns the first success response. */ 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; } /** * Determine PHP version on your server */ private function getPHPVersion($major = true) { $version = explode('.', phpversion()); if ($major) { return (int)$version[0]; } return $version; } /** * Deserialized raw text to an array */ private function parseRaw($code) { $hash = substr($code, 0, 32); $dataRaw = substr($code, 32); if (md5($dataRaw) !== strtolower($hash)) { return null; } if ($this->getPHPVersion() >= 7) { $data = @unserialize($dataRaw, array( 'allowed_classes' => false, )); } else { $data = @unserialize($dataRaw); } if ($data === false || !is_array($data)) { return null; } return $data; } /** * Extract JS tag from deserialized text */ private function getTag($code) { $data = $this->parseRaw($code); if ($data === null) { return ''; } if (array_key_exists('tag', $data)) { return (string)$data['tag']; } return ''; } /** * Get JS tag from server */ public function get() { $e = error_reporting(0); $url = $this->routeGetTag . '?' . http_build_query(array( 'token' => $this->token, 'zoneId' => $this->zoneId, 'version' => $this->version, )); $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)) { $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); } } /** Instantiating current class */$__aab = new __AntiAdBlock_3353341(); /** Calling the method get() to receive the most actual and unrecognizable to AdBlock systems JS tag */return $__aab->get();