Alan Cumming

Recently added

Dare
5.8
1080p

Dare

Nov. 13, 2009

Dare

An aspiring actress, her misfit best friend, and a loner become engaged in an intimate and complicated relationship.
Riverworld
4.9
1080p

Riverworld

Apr. 18, 2010

Riverworld

Welcome to Riverworld, a place of strange, watery beauty and the current abode of a fascinating cast of the recently (and not-so-recently) dead. ...
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 ...
Jackboots on Whitehall
5.3
1080p

Jackboots on Whitehall

A satirical alternative history of World War II where the Nazis seize London and England must band together to prevent a full on invasion.
Burlesque
6.4
1080p

Burlesque

Nov. 23, 2010

Burlesque

Ali leaves behind a troubled life and follows her dreams to Los Angeles, where she lands a job as a cocktail waitress at the Burlesque Lounge, a ...
The Outback
4.7
1080p

The Outback

Jan. 12, 2012

The Outback

Being teased for his color, Johnny the white koala joins a traveling carnival with Hamish, a Tasmanian devil, and Higgens, a photographer monkey ...
Sir Billi
2.9
1080p

Sir Billi

Apr. 13, 2012

Sir Billi

An aging, skateboarding veterinarian Sir Billi goes above and beyond the call of duty fighting villainous policemen and powerful lairds in a ...
Maladies
4.9
1080p

Maladies

Jun. 29, 2012

Maladies

A former soap star appears to have a narrator stuck in his head. As he moves in with his sister and works to restart his creative career, he ...
Any Day Now
7.4
1080p

Any Day Now

Dec. 14, 2012

Any Day Now

In the late 1970s, when a mentally handicapped teenager is abandoned, a gay couple takes him in and becomes the family he’s never had. But ...
Almost in Love
5.6
1080p

Almost in Love

Feb. 15, 2013

Almost in Love

A love triangle shot in two continuous 45-minute takes set eighteen months apart: the first over a sunset, the second a sunrise.
Picasso Baby
6.7
1080p

Picasso Baby

Aug. 02, 2013

Picasso Baby

Jay Z performs Picasso Baby at the Museum of Modern Art in NYC.
Chu and Blossom
6.1
1080p

Chu and Blossom

Jan. 31, 2014

Chu and Blossom

A militant performance-artist and a tall Korean foreign-exchange student become trapped in a small Southern town.
Hurricane Bianca
5.8
1080p

Hurricane Bianca

Jun. 03, 2016

Hurricane Bianca

A teacher from New York moves to a small town in Texas, gets fired for being gay, and returns disguised in drag to get revenge on the people who ...
After Louie
5.9
1080p

After Louie

Mar. 17, 2017

After Louie

As an AIDS activist and member of ACT UP in the 1980s and 90s, Sam witnessed the deaths of too many friends and lovers. Battlewounded and ...
Queer as Art
7.2
1080p

Queer as Art

Jul. 27, 2017

Queer as Art

Documentary celebrating the LGBTQ contribution to the arts in Britain in the 50 years since decriminalisation. It features interviews with ...
Michael Jackson’s Halloween
4.9
1080p

Michael Jackson’s Halloween

The one-hour animated special, packed with the vocal talents of some of your favorite CBS stars and the King of Pop’s most memorable hits, ...
They’ll Love Me When I’m Dead
7.4
1080p

They’ll Love Me When I’m Dead

As his life comes to its end, famous Hollywood director Orson Welles puts it all on the line at the chance for renewed success with the film The ...
Endgame & Rough for Theatre II
0
1080p

Endgame & Rough for Theatre II

Hamm is an ageing, blind tyrant who is confined to a wheelchair – but soon becomes locked in a bleakly funny and subversively devastating ...
Live with Carnegie Hall: Judy Collins
0
1080p

Live with Carnegie Hall: Judy Collins

Judy Collins burst onto the music scene in the 1960s and has not stopped since. Along with Shawn Colvin, Steve Earle, and Jimmy Webb, Collins ...
The Nutcracker and the Mouse King
0
1080p

The Nutcracker and the Mouse King

Conceived by John Mauceri, this new work is a re-imagination of Tchaikovsky’s holiday favorite, “The Nutcracker.” Based on E.T.A. ...
My Old School
7.1
1080p

My Old School

Mar. 10, 2022

My Old School

In 1993, 16-year-old Brandon Lee enrolled at Bearsden Academy, a secondary school in a well-to-do suburb of Glasgow, Scotland. What followed over ...
Club Cumming Presents a Queer Comedy Extravaganza!
4.4
1080p

Club Cumming Presents a Queer Comedy Extravaganza!

Cumming hosts this cabaret-style gathering featuring seven up-and-coming queer comedians who represent not only the diversity of the queer ...
My Father’s Dragon
6.5
1080p

My Father’s Dragon

Nov. 04, 2022

My Father’s Dragon

Struggling to cope after a move to the city with his mother, Elmer runs away in search of Wild Island and a young dragon who waits to be rescued. ...
Ooh the Banter!
0
1080p

Ooh the Banter!

Dec. 31, 2022

Ooh the Banter!

Jack Docherty brings together a jam-packed cast of comedians, actors and famous faces for a riotous celebration of Scotland’s most valuable ...
Marlowe
5.3
1080p

Marlowe

Feb. 15, 2023

Marlowe

Private detective Philip Marlowe becomes embroiled in an investigation involving a wealthy Californian family after a beautiful blonde hires him ...
Rare Objects
5.2
1080p

Rare Objects

Apr. 14, 2023

Rare Objects

A young woman with a traumatic past seeks to rebuild her life when she begins working at a New York City antique shop.
Mad About the Boy: The Noël Coward Story
7.3
TS

Mad About the Boy: The Noël Coward Story

The first ever feature documentary about one of the most talented, accomplished and multi-faceted artists of the 20th Century. An exploration of ...
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();