Norman Chui

Recently added

Dragon Killer
0
HDTC

Dragon Killer

Jan. 01, 1983

Dragon Killer

Thai film director Kom Akkadej managed to perform a real coup by getting two of the legends of Hong Kong action cinema, Norman Tsui Siu Keung and ...
Diamond vs Diamond
0
HDTC

Diamond vs Diamond

Jul. 30, 1984

Diamond vs Diamond

In 1982, Thai film director Kom Akkadej managed to perform a real coup by getting two of the legends of Hong Kong action cinema, Norman Tsui Siu ...
Battle for the Treasure
4.8
HDTC

Battle for the Treasure

In Kampuchea and against the background of a bloody civil war, a group of bandits get hold of the beautiful precious stone that represents the ...
Blood Ritual
6.1
WEBRip

Blood Ritual

Mar. 09, 1989

Blood Ritual

A woman is sacrificed and her heart is ripped out of her chest. The police are after these Satanic Cults and they have no leads. A man is ...
That’s Money
5.8
WEBRip

That’s Money

Dec. 08, 1990

That’s Money

That’s Money is a Hong Kong Action-Comedy starring Max Mok and Kara Hui.
King of Beggars
6.8
WEBRip

King of Beggars

Dec. 17, 1992

King of Beggars

The heir to a noble and influential family finds the love of his life, but she will only accept him if he becomes a kung-fu master. He becomes a ...
Choy Lee Fut Kung Fu
4.2
WEBRip

Choy Lee Fut Kung Fu

May. 10, 2011

Choy Lee Fut Kung Fu

Danny is a young martial arts enthusiast who arrives in Hong Kong to head a school of Choy Lee Fut owned by his wealthy father.
The Sad Story of Saigon
5
WEBRip

The Sad Story of Saigon

An alternative cut of the movie “Rape in Public Sea”. A boatload of smugglers are slaughtered by machinegun fire by a bunch of ...
Dirty Kung Fu
6.4
SD

Dirty Kung Fu

Nov. 16, 1978

Dirty Kung Fu

Dirty Kung Fu is about a young bounty hunter who uses his kung fu skills or lack thereof to capture criminals.
The Club
6.4
SD

The Club

Sep. 17, 1981

The Club

Mainly the story of Sai, a rascal who works at a gang-operated nightclub, and his conflicts with a rival gang.
Fun and Fury
5.8
240p

Fun and Fury

Mar. 19, 1992

Fun and Fury

A martial arts comedy, vacillating between action setpieces and goofy sight gags.
Fist of Fury: Soul
0
HD

Fist of Fury: Soul

Sep. 08, 2021

Fist of Fury: Soul

During the Wulin Assembly, Blood Demon Luo severely damaged groups of heroes. The leader, Huo Changkong, lost half of his moves in the decisive ...
The Sentimental Swordsman
6.6
720p

The Sentimental Swordsman

Due to his own extreme ideals, famed swordsman Li has lost everyone dear to him. After his life is saved by a rival swordsman, Li’s ...
Dream Home
6.6
CAM

Dream Home

Apr. 25, 2010

Dream Home

A woman will go to whatever lengths necessary to obtain her dream home with a view of the sea. This includes driving down the property value and ...
Xuantian Fengyun
0
CAM

Xuantian Fengyun

Aug. 07, 2020

Xuantian Fengyun

The famous swordsman Ma Xiaotian was accidentally killed at the birthday banquet, and his legendary weapon “Xuantian Sword” ...
The Enchantress
5.8
360p

The Enchantress

Jan. 01, 1983

The Enchantress

Max Mok is the dashing young swordsman Feng Xiwu who arrives at a beautiful, but deadly location known as Moonlit Sky to investigate rumors 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();