Suzanna Hamilton

Recently added

Swallows and Amazons
6.4
TS

Swallows and Amazons

Jun. 01, 1974

Swallows and Amazons

On holiday with their mother in the Lake District in 1929 four children are allowed to sail over to the nearby island in their boat Swallow and ...
Tess
7.3
TS

Tess

Oct. 06, 1979

Tess

A strong-willed peasant girl is sent by her father to the estate of some local aristocrats to capitalize on a rumor that their families are from ...
Brimstone & Treacle
6.4
TS

Brimstone & Treacle

Oct. 01, 1982

Brimstone & Treacle

A strange young man has a sinister effect on the family of a middle-aged writer.
Birth of a Nation
7.2
TS

Birth of a Nation

Jun. 19, 1983

Birth of a Nation

A new teacher at a highly problematic comprehensive school feels that corporal punishment may just be inflaming the problems, and so begins to ...
A Pattern of Roses
6.1
TS

A Pattern of Roses

Dec. 29, 1983

A Pattern of Roses

While his parents are renovating a cottage in an English village, teenager Tim and his friend Rebecca uncover information about the mysterious ...
Goodie-Two-Shoes
6.2
TS

Goodie-Two-Shoes

Sep. 01, 1984

Goodie-Two-Shoes

Goodie-Two-Shoes is a 1984 British short film written and directed by Ian Emes. A teacher volunteers a group of misfit students to take a new ...
Devil’s Paradise
5.2
TS

Devil’s Paradise

May. 07, 1987

Devil’s Paradise

At the start of the 20th century, a man lives in solitude on an island. One day on the mainland, he saves a young woman from some nasty folk and ...
Wetherby
6.5
TS

Wetherby

Jun. 19, 1985

Wetherby

The mysterious death of an enigmatic young man newly arrived in the suburb of Wetherby releases the long-repressed, dark passions of some of its ...
The Voice
4.4
TS

The Voice

Apr. 27, 1989

The Voice

Disraeli is a British four part serial about the great statesman and Prime Minister of the United Kingdom, Benjamin Disraeli.
Out of Africa
7.1
TS

Out of Africa

Dec. 20, 1985

Out of Africa

Out of Africa tells the story of the life of Danish author Karen Blixen, who at the beginning of the 20th century moved to Africa to build a new ...
Small Zones
0
TS

Small Zones

Mar. 04, 1990

Small Zones

Intertwined story of the lives of two women; an Englishwoman suffering abuse from her violent husband, and a Russian poet serving hard labour ...
Nineteen Eighty-Four
7.1
TS

Nineteen Eighty-Four

Nov. 09, 1984

Nineteen Eighty-Four

George Orwell’s novel of a totalitarian future society in which a man whose daily work is rewriting history tries to rebel by falling in love.
Johnny Bull
6.6
TS

Johnny Bull

May. 19, 1986

Johnny Bull

An English girl comes to America to join her American husband in a Pennsylvania coal town in the late 1950’s. She faces the ire of her new ...
The House of Bernarda Alba
7.8
TS

The House of Bernarda Alba

A domineering,reclusive, and ostentatiously pious widow in a small Spanish town keeps such close watch on her daughters that they are unable to ...
Tale of a Vampire
5.3
TS

Tale of a Vampire

Jan. 01, 1992

Tale of a Vampire

Condemned to life without end, and to an undying passion for a lost love he can never find, a vampire stalks a beautiful young woman.
A Masculine Ending
6.4
TS

A Masculine Ending

Apr. 12, 1992

A Masculine Ending

While English professor Loretta Lawson is attending a conference in Paris, she stays the night in the flat of a friend’s acquaintance. She ...
The Island on Bird Street
7.1
TS

The Island on Bird Street

Alex is an 11-year old boy who, during WWII, hides in the Jewish ghetto from Nazis after all his relatives have been sent to the concentration ...
Benjamin’s Struggle
7.4
TS

Benjamin’s Struggle

Nov. 26, 2005

Benjamin’s Struggle

In 1930s Germany, a young boy attempts to steal the original manuscript of Hitler’s Mein Kampf in the hope that it will end the suffering ...
My Feral Heart
6.8
TS

My Feral Heart

May. 03, 2016

My Feral Heart

Luke, an independent young man with Down’s syndrome stumbles upon a wild and life changing friendship.
Borrowed Time
0
TS

Borrowed Time

Oct. 01, 2022

Borrowed Time

Based on true events, the story of a sixteen-year-old during one of her life’s most defining moments. Olivia has a complicated relationship ...
Little Mary
0
TS

Little Mary

After a diagnosis of cancer, Mary, an experienced Marionette maker, turns to her craft and beloved husband, as a way to deal with her grief.
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();