Chin Ka-Lok

Recently added

Hit Team
5.7
R5

Hit Team

Feb. 22, 2001

Hit Team

An undercover cop badly injured in a raid is blamed for the raid’s failure and thrown out of the police department. His injuries result in ...
Operation Scorpio
6.9
mHD

Operation Scorpio

Sep. 10, 1992

Operation Scorpio

Budding comic book artist Yu Shu finds himself living out the fantasies of his alternate world when he saves a young girl from an illegal ...
Beauty and the 7 Beasts
3.6
mHD

Beauty and the 7 Beasts

Teddy (Eric Tsang) is a ladies man. He is constantly with a woman, but never accepts the responsibility that comes with a relationship. Short of ...
Cold War
6.6
mHD

Cold War

Nov. 08, 2012

Cold War

Five police officers in Hong Kong are kidnapped. The police commissioner is on a business trip overseas. Two vice commissioners, Sean Rau and ...
Eastern Condors
7.1
WEBRip

Eastern Condors

Jul. 09, 1987

Eastern Condors

A motley group of Chinese prisoners held in the US is sent on a covert mission with the promise of a pardon: to go deep into Vietnam and destroy ...
The Tantana
5.4
WEBRip

The Tantana

Jul. 27, 1991

The Tantana

A Buddhist lama and an evil wizard battle for the Palace of Heaven.
Martial Arts Master Wong Fei Hung
6
WEBRip

Martial Arts Master Wong Fei Hung

Wong Fei Hung, as a young man, was impetuous and irresponsible. But the death of this father and the beginnings of the legal British opium trade ...
The Green Hornet
5.2
WEBRip

The Green Hornet

Jan. 01, 1994

The Green Hornet

A Chinese reporter (Esther Kwan) attempts to find out the identity of a masked crime-fighter.
Kung Fu Kid
5.4
WEBRip

Kung Fu Kid

Sep. 19, 1994

Kung Fu Kid

This classical tale of Shaolin Temple disciples versus the Manchurian Ching government displays Shaolin martial arts at its best in empty hand ...
Mr Vampire Saga 4
6.3
WEBRip

Mr Vampire Saga 4

Dec. 22, 1988

Mr Vampire Saga 4

A Taoist priest protests against the idea of a Buddhist priest being his neighbour. They often argue with each other until a vampire is at large ...
The Millionaires’ Express
7
TS

The Millionaires’ Express

What happens when a glamorous express, with high government officials, wealthy merchants, concubines and a gang of brigands on board, speeds ...
Osaka Wrestling Restaurant
5.1
SD

Osaka Wrestling Restaurant

Ricky aspires to be a famous chef. But rival restauranteur Dragon wants him to fail. So when Ricky’s brother suggests that he combine Osaka ...
Lust, Caution
7.5
144p

Lust, Caution

Sep. 27, 2007

Lust, Caution

During World War II, a secret agent must seduce then assassinate an official who works for the Japanese puppet government in Shanghai. Her ...
The Bullet Vanishes
6.5
HD

The Bullet Vanishes

Aug. 14, 2012

The Bullet Vanishes

One rainy night in an arms factory near Shanghai, a young female worker accused of stealing a box of bullets from the ruthless Boss Ding is ...
Shinjuku Incident
6.9
HD

Shinjuku Incident

Mar. 22, 2009

Shinjuku Incident

Steelhead is a Chinese labourer who comes to Japan hoping for a better life. Unable to find honest work and bullied into the shadows with his ...
The Legend of the Swordsman
7.1
720p

The Legend of the Swordsman

Ling Wu Chung decides to hide from the chaotic world. Before leaving, he visits his friends, a tribe of snake-wielding women warriors. However, ...
Troublesome Night 5
5.1
360p

Troublesome Night 5

Jan. 22, 1999

Troublesome Night 5

The fifth chapter of the “Troublesome Night” series, this movie is an anthology of three connected stories. Taxi Driver Cheung runs ...
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();