Stephen Rea

Recently added

Guinevere
5.9
R5

Guinevere

Sep. 12, 1999

Guinevere

A young girl from an affluent family rebels and becomes involved with a much older photographer.
Tara Road
6
mHD

Tara Road

May. 11, 2005

Tara Road

A grieving Connecticut mother temporarily switches houses with a woman in Dublin, Ireland.
The Miracle Club
6.3
mHD

The Miracle Club

Jul. 14, 2023

The Miracle Club

Three close friends who have never left the outskirts of Dublin (much less Ireland) get the journey of a lifetime — a visit to Lourdes, the ...
Trojan Eddie
6.1
mHD

Trojan Eddie

Sep. 09, 1996

Trojan Eddie

Trojan Eddie sells stolen goods for John Power, aging godfather of a local network of Irish gypsies, known as “travelers.” Having ...
Michael Collins
7.1
mHD

Michael Collins

Oct. 25, 1996

Michael Collins

Michael Collins plays a crucial role in the establishment of the Irish Free State in the 1920s, but becomes vilified by those hoping to create a ...
A Further Gesture
5.8
mHD

A Further Gesture

Jan. 01, 1997

A Further Gesture

Dowd, an IRA prisoner in the H-blocks, is gloomily facing his sentence, until he joins a comrade in a risky escape. Dowd begins a new life in New ...
The Butcher Boy
7.1
mHD

The Butcher Boy

Feb. 20, 1998

The Butcher Boy

Francie and Joe live the usual playful, fantasy filled childhoods of normal boys. However, with a violent, alcoholic father and a manic ...
This Is My Father
6.9
mHD

This Is My Father

May. 07, 1999

This Is My Father

When schoolteacher Kieran Johnson discovers that his father was not a French sailor (as he had been led to believe) but rather an Irish farmer, ...
Breakfast on Pluto
7.2
mHD

Breakfast on Pluto

Sep. 03, 2005

Breakfast on Pluto

In the 1970s, a young transgender woman called “Kitten” leaves her small Irish town for London in search of love, acceptance, and her long-lost mother.
Lost Lives
7.4
mHD

Lost Lives

Oct. 10, 2019

Lost Lives

This poignant testament to the physical and emotional cost of war, centres on the Troubles in Northern Ireland.
Interview with the Vampire
7.5
HDTV

Interview with the Vampire

A vampire relates his epic life story of love, betrayal, loneliness, and dark hunger to an over-curious reporter.
Underworld: Awakening
6.3
144p

Underworld: Awakening

Jan. 19, 2012

Underworld: Awakening

Having escaped years of imprisonment, vampire warrioress Selene finds herself in a changed world where humans have discovered the existence of ...
Still Crazy
7
CAM

Still Crazy

Oct. 30, 1998

Still Crazy

In the seventies Strange Fruit were it. They lived the rock lifestyle to the max, groupies, drugs, internal tension and an ex front man dead from ...
Citizen X
7.5
CAM

Citizen X

Feb. 25, 1995

Citizen X

Based on the true story of a Russian serial killer who, over many years, claimed victim to over 50 people. His victims were mostly under the age ...
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();