0% found this document useful (0 votes)
67 views9 pages

Minify UnminifyAll

This PHP class defines methods for license verification and updating of software. It initializes properties like the product ID, API url and key. Methods include checking for a local license, validating licenses, downloading updates, and communicating with a licensing API via cURL requests.

Uploaded by

meledugk900
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
67 views9 pages

Minify UnminifyAll

This PHP class defines methods for license verification and updating of software. It initializes properties like the product ID, API url and key. Methods include checking for a local license, validating licenses, downloading updates, and communicating with a licensing API via cURL requests.

Uploaded by

meledugk900
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 9

<?

php

class Main {
private $product_id;
private $api_url;
private $api_key;
private $api_language;
private $current_version;
private $verify_type;
private $verification_period;
private $current_path;
private $root_path;
private $license_file;
public function __construct() {
$this->product_id = "2D8FB2F8";
$this->api_url = "https://codex.codesellmarket.com/";
$this->api_key = "3150CCD90FFB96C17E1E";
$this->api_language = "english";
$this->current_version = "v1.0.0";
$this->verify_type = "non_envato";
$this->verification_period = 1;
$this->current_path = realpath(__DIR__);
$this->root_path = realpath($this->current_path . "/..");
$this->license_file = $this->current_path . "/.lic";
}
public function check_local_license_exist() {
return is_file($this->license_file);
}
public function get_current_version() {
return $this->current_version;
}
private function call_api($method, $url, $data = null) {
$curl = curl_init();
switch ($method) {
case "POST": curl_setopt($curl, CURLOPT_POST, 1);
if ($data) {
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
}
break;
case "PUT": curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "PUT");
if ($data) {
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
}
break;
default: if ($data) {
$url = sprintf("%s?%s", $url, http_build_query($data));
}
}
$this_server_name = getenv("SERVER_NAME") ?: $_SERVER["SERVER_NAME"] ?:
getenv("HTTP_HOST") ?: $_SERVER["HTTP_HOST"];
$this_http_or_https = (isset($_SERVER["HTTPS"]) && $_SERVER["HTTPS"] == "on" or
isset($_SERVER["HTTP_X_FORWARDED_PROTO"]) and $_SERVER["HTTP_X_FORWARDED_PROTO"]
=== "https") ? "https://" : "http://";
$this_url = $this_http_or_https . $this_server_name . $_SERVER["REQUEST_URI"];
$this_ip = getenv("SERVER_ADDR") ?: $_SERVER["SERVER_ADDR"] ?: $this-
>get_ip_from_third_party() ?: gethostbyname(gethostname());
curl_setopt($curl, CURLOPT_HTTPHEADER, array("Content-Type: application/json",
"LB-API-KEY: " . $this->api_key, "LB-URL: " . $this_url, "LB-IP: " . $this_ip, "LB-
LANG: " . $this->api_language));
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
$result = curl_exec($curl);
if (!$result && !LB_API_DEBUG) {
$rs = array("status" => FALSE, "message" => LB_TEXT_CONNECTION_FAILED);
return json_encode($rs);
}
$http_status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
if ($http_status != 200) {
if (LB_API_DEBUG) {
$temp_decode = json_decode($result, true);
$rs = array("status" => FALSE, "message" => !empty($temp_decode["error"]) ?
$temp_decode["error"] : $temp_decode["message"]);
return json_encode($rs);
}
else {
$rs = array("status" => FALSE, "message" => LB_TEXT_INVALID_RESPONSE);
return json_encode($rs);
}
}
curl_close($curl);
return $result;
}
public function check_connection() {
$get_data = $this->call_api("POST", $this->api_url . "api/check_connection_ext");
$response = json_decode($get_data, true);
return $response;
}
public function get_latest_version() {
$data_array = array("product_id" => $this->product_id);
$get_data = $this->call_api("POST", $this->api_url . "api/latest_version",
json_encode($data_array));
$response = json_decode($get_data, true);
return $response;
}
public function activate_license($license, $client, $create_lic = true) {
$data_array = array("product_id" => $this->product_id, "license_code" => $license,
"client_name" => $client, "verify_type" => $this->verify_type);
$get_data = $this->call_api("POST", $this->api_url . "api/activate_license",
json_encode($data_array));
$response = json_decode($get_data, true);
if (!empty($create_lic)) {
if ($response["status"]) {
$licfile = trim($response["lic_response"]);
file_put_contents($this->license_file, $licfile, LOCK_EX);
}
else {
@chmod($this->license_file, 511);
if (is_writeable($this->license_file)) {
unlink($this->license_file);
}
}
}
return $response;
}
public function v($time_based_check = false, $license = false, $client = false) {
if (!empty($license) && !empty($client)) {
$data_array = array("product_id" => $this->product_id, "license_file" => null,
"license_code" => $license, "client_name" => $client);
}
else {
if (is_file($this->license_file)) {
$data_array = array("product_id" => $this->product_id, "license_file" =>
file_get_contents($this->license_file), "license_code" => null, "client_name" =>
null);
}
else {
$data_array = array();
}
}
$res = array("status" => TRUE, "message" => LB_TEXT_VERIFIED_RESPONSE);
if ($time_based_check && $this->verification_period > 0) {
ob_start();
if (session_status() == PHP_SESSION_NONE) {
session_start();
}
$type = (int) $this->verification_period;
$today = date("d-m-Y");
if (empty($_SESSION["2818fe710980e06"])) {
$_SESSION["2818fe710980e06"] = "00-00-0000";
}
if ($type == 1) {
$type_text = "1 day";
}
elseif ($type == 3) {
$type_text = "3 days";
}
elseif ($type == 7) {
$type_text = "1 week";
}
elseif ($type == 30) {
$type_text = "1 month";
}
elseif ($type == 90) {
$type_text = "3 months";
}
elseif ($type == 365) {
$type_text = "1 year";
}
else {
$type_text = $type . " days";
}
if (strtotime($today) >= strtotime($_SESSION["2818fe710980e06"])) {
$get_data = $this->call_api("POST", $this->api_url . "api/verify_license",
json_encode($data_array));
$res = json_decode($get_data, true);
if ($res["status"] == true) {
$tomo = date("d-m-Y", strtotime($today . " + " . $type_text));
$_SESSION["2818fe710980e06"] = $tomo;
}
}
ob_end_clean();
}
else {
$get_data = $this->call_api("POST", $this->api_url . "api/verify_license",
json_encode($data_array));
$res = json_decode($get_data, true);
}
return $res;
}
public function deactivate_license($license = false, $client = false) {
if (!empty($license) && !empty($client)) {
$data_array = array("product_id" => $this->product_id, "license_file" => null,
"license_code" => $license, "client_name" => $client);
}
else {
if (is_file($this->license_file)) {
$data_array = array("product_id" => $this->product_id, "license_file" =>
file_get_contents($this->license_file), "license_code" => null, "client_name" =>
null);
}
else {
$data_array = array();
}
}
$get_data = $this->call_api("POST", $this->api_url . "api/deactivate_license",
json_encode($data_array));
$response = json_decode($get_data, true);
if ($response["status"]) {
@chmod($this->license_file, 511);
if (is_writeable($this->license_file)) {
unlink($this->license_file);
}
}
return $response;
}
public function check_update() {
$data_array = array("product_id" => $this->product_id, "current_version" => $this-
>current_version);
$get_data = $this->call_api("POST", $this->api_url . "api/check_update",
json_encode($data_array));
$response = json_decode($get_data, true);
return $response;
}
public function download_update($update_id, $type, $version, $license = false,
$client = false, $db_for_import = false) {
if (!empty($license) && !empty($client)) {
$data_array = array("license_file" => null, "license_code" => $license,
"client_name" => $client);
}
else {
if (is_file($this->license_file)) {
$data_array = array("license_file" => file_get_contents($this->license_file),
"license_code" => null, "client_name" => null);
}
else {
$data_array = array();
}
}
ob_end_flush();
ob_implicit_flush(true);
$version = str_replace(".", "_", $version);
ob_start();
$source_size = $this->api_url . "api/get_update_size/main/" . $update_id;
echo LB_TEXT_PREPARING_MAIN_DOWNLOAD . "<br>";
if (LB_SHOW_UPDATE_PROGRESS) {
echo "<script>document.getElementById('prog').value = 1;
</script>";
}
ob_flush();
echo LB_TEXT_MAIN_UPDATE_SIZE . " " . $this->get_remote_filesize($source_size) . "
" . LB_TEXT_DONT_REFRESH . "<br>";
if (LB_SHOW_UPDATE_PROGRESS) {
echo "<script>document.getElementById('prog').value = 5;
</script>";
}
ob_flush();
$temp_progress = '';
$ch = curl_init();
$source = $this->api_url . "api/download_update/main/" . $update_id;
curl_setopt($ch, CURLOPT_URL, $source);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_array);
$this_server_name = getenv("SERVER_NAME") ?: $_SERVER["SERVER_NAME"] ?:
getenv("HTTP_HOST") ?: $_SERVER["HTTP_HOST"];
$this_http_or_https = (isset($_SERVER["HTTPS"]) && $_SERVER["HTTPS"] == "on" or
isset($_SERVER["HTTP_X_FORWARDED_PROTO"]) and $_SERVER["HTTP_X_FORWARDED_PROTO"]
=== "https") ? "https://" : "http://";
$this_url = $this_http_or_https . $this_server_name . $_SERVER["REQUEST_URI"];
$this_ip = getenv("SERVER_ADDR") ?: $_SERVER["SERVER_ADDR"] ?: $this-
>get_ip_from_third_party() ?: gethostbyname(gethostname());
curl_setopt($ch, CURLOPT_HTTPHEADER, array("LB-API-KEY: " . $this->api_key, "LB-
URL: " . $this_url, "LB-IP: " . $this_ip, "LB-LANG: " . $this->api_language));
if (LB_SHOW_UPDATE_PROGRESS) {
curl_setopt($ch, CURLOPT_PROGRESSFUNCTION, array($this, "progress"));
}
if (LB_SHOW_UPDATE_PROGRESS) {
curl_setopt($ch, CURLOPT_NOPROGRESS, false);
}
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
echo LB_TEXT_DOWNLOADING_MAIN . "<br>";
if (LB_SHOW_UPDATE_PROGRESS) {
echo "<script>document.getElementById('prog').value = 10;
</script>";
}
ob_flush();
$data = curl_exec($ch);
$http_status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if ($http_status != 200) {
if ($http_status == 401) {
curl_close($ch);
die("<br>" . LB_TEXT_UPDATE_PERIOD_EXPIRED);
}
else {
curl_close($ch);
die("<br>" . LB_TEXT_INVALID_RESPONSE);
}
}
curl_close($ch);
$destination = $this->root_path . "/update_main_" . $version . ".zip";
$file = fopen($destination, "w+");
if (!$file) {
die("<br>" . LB_TEXT_UPDATE_PATH_ERROR);
}
fputs($file, $data);
fclose($file);
if (LB_SHOW_UPDATE_PROGRESS) {
echo "<script>document.getElementById('prog').value = 65;
</script>";
}
ob_flush();
$zip = new ZipArchive();
$res = $zip->open($destination);
if ($res === TRUE) {
$zip->extractTo($this->root_path . "/");
$zip->close();
unlink($destination);
echo LB_TEXT_MAIN_UPDATE_DONE . "<br><br>";
if (LB_SHOW_UPDATE_PROGRESS) {
echo "<script>document.getElementById('prog').value = 75;
</script>";
}
ob_flush();
}
else {
echo LB_TEXT_UPDATE_EXTRACTION_ERROR . "<br><br>";
ob_flush();
}
if ($type == true) {
$source_size = $this->api_url . "api/get_update_size/sql/" . $update_id;
echo LB_TEXT_PREPARING_SQL_DOWNLOAD . "<br>";
ob_flush();
echo LB_TEXT_SQL_UPDATE_SIZE . " " . $this->get_remote_filesize($source_size) . "
" . LB_TEXT_DONT_REFRESH . "<br>";
if (LB_SHOW_UPDATE_PROGRESS) {
echo "<script>document.getElementById('prog').value = 85;
</script>";
}
ob_flush();
$temp_progress = '';
$ch = curl_init();
$source = $this->api_url . "api/download_update/sql/" . $update_id;
curl_setopt($ch, CURLOPT_URL, $source);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_array);
$this_server_name = getenv("SERVER_NAME") ?: $_SERVER["SERVER_NAME"] ?:
getenv("HTTP_HOST") ?: $_SERVER["HTTP_HOST"];
$this_http_or_https = (isset($_SERVER["HTTPS"]) && $_SERVER["HTTPS"] == "on" or
isset($_SERVER["HTTP_X_FORWARDED_PROTO"]) and $_SERVER["HTTP_X_FORWARDED_PROTO"]
=== "https") ? "https://" : "http://";
$this_url = $this_http_or_https . $this_server_name . $_SERVER["REQUEST_URI"];
$this_ip = getenv("SERVER_ADDR") ?: $_SERVER["SERVER_ADDR"] ?: $this-
>get_ip_from_third_party() ?: gethostbyname(gethostname());
curl_setopt($ch, CURLOPT_HTTPHEADER, array("LB-API-KEY: " . $this->api_key, "LB-
URL: " . $this_url, "LB-IP: " . $this_ip, "LB-LANG: " . $this->api_language));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
echo LB_TEXT_DOWNLOADING_SQL . "<br>";
if (LB_SHOW_UPDATE_PROGRESS) {
echo "<script>document.getElementById('prog').value = 90;
</script>";
}
ob_flush();
$data = curl_exec($ch);
$http_status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if ($http_status != 200) {
curl_close($ch);
die(LB_TEXT_INVALID_RESPONSE);
}
curl_close($ch);
$destination = $this->root_path . "/update_sql_" . $version . ".sql";
$file = fopen($destination, "w+");
if (!$file) {
die(LB_TEXT_UPDATE_PATH_ERROR);
}
fputs($file, $data);
fclose($file);
echo LB_TEXT_SQL_UPDATE_DONE . "<br><br>";
if (LB_SHOW_UPDATE_PROGRESS) {
echo "<script>document.getElementById('prog').value = 95;
</script>";
}
ob_flush();
if (is_array($db_for_import)) {
if (!empty($db_for_import["db_host"]) && !empty($db_for_import["db_user"]) && !
empty($db_for_import["db_name"])) {
$db_host = strip_tags(trim($db_for_import["db_host"]));
$db_user = strip_tags(trim($db_for_import["db_user"]));
$db_pass = strip_tags(trim($db_for_import["db_pass"]));
$db_name = strip_tags(trim($db_for_import["db_name"]));
$con = @mysqli_connect($db_host, $db_user, $db_pass, $db_name);
if (mysqli_connect_errno()) {
echo LB_TEXT_UPDATE_WITH_SQL_IMPORT_FAILED;
}
else {
$templine = '';
$lines = file($destination);
foreach ($lines as $line) {
if (substr($line, 0, 2) == "--" || $line == '') {
continue;
}
$templine .= $line;
$query = false;
if (substr(trim($line), -1, 1) == ";
") {
$query = mysqli_query($con, $templine);
$templine = '';
}
}
@chmod($destination, 511);
if (is_writeable($destination)) {
unlink($destination);
}
echo LB_TEXT_UPDATE_WITH_SQL_IMPORT_DONE;
}
}
else {
echo LB_TEXT_UPDATE_WITH_SQL_IMPORT_FAILED;
}
}
else {
echo LB_TEXT_UPDATE_WITH_SQL_DONE;
}
if (LB_SHOW_UPDATE_PROGRESS) {
echo "<script>document.getElementById('prog').value = 100;
</script>";
}
ob_flush();
}
else {
if (LB_SHOW_UPDATE_PROGRESS) {
echo "<script>document.getElementById('prog').value = 100;
</script>";
}
echo LB_TEXT_UPDATE_WITHOUT_SQL_DONE;
ob_flush();
}
ob_end_flush();
}
private function progress($resource, $download_size, $downloaded, $upload_size,
$uploaded) {
static $prev = 0;
if ($download_size == 0) {
$progress = 0;
}
else {
$progress = round($downloaded * 100 / $download_size);
}
if ($progress != $prev && $progress == 25) {
$prev = $progress;
echo "<script>document.getElementById('prog').value = 22.5;
</script>";
ob_flush();
}
if ($progress != $prev && $progress == 50) {
$prev = $progress;
echo "<script>document.getElementById('prog').value = 35;
</script>";
ob_flush();
}
if ($progress != $prev && $progress == 75) {
$prev = $progress;
echo "<script>document.getElementById('prog').value = 47.5;
</script>";
ob_flush();
}
if ($progress != $prev && $progress == 100) {
$prev = $progress;
echo "<script>document.getElementById('prog').value = 60;
</script>";
ob_flush();
}
}
private function get_ip_from_third_party() {
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "http://ipecho.net/plain");
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($curl, CURLOPT_TIMEOUT, 10);
$response = curl_exec($curl);
curl_close($curl);
return $response;
}
private function get_remote_filesize($url) {
$curl = curl_init();
curl_setopt($curl, CURLOPT_HEADER, TRUE);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_NOBODY, TRUE);
$this_server_name = getenv("SERVER_NAME") ?: $_SERVER["SERVER_NAME"] ?:
getenv("HTTP_HOST") ?: $_SERVER["HTTP_HOST"];
$this_http_or_https = (isset($_SERVER["HTTPS"]) && $_SERVER["HTTPS"] == "on" or
isset($_SERVER["HTTP_X_FORWARDED_PROTO"]) and $_SERVER["HTTP_X_FORWARDED_PROTO"]
=== "https") ? "https://" : "http://";
$this_url = $this_http_or_https . $this_server_name . $_SERVER["REQUEST_URI"];
$this_ip = getenv("SERVER_ADDR") ?: $_SERVER["SERVER_ADDR"] ?: $this-
>get_ip_from_third_party() ?: gethostbyname(gethostname());
curl_setopt($curl, CURLOPT_HTTPHEADER, array("LB-API-KEY: " . $this->api_key, "LB-
URL: " . $this_url, "LB-IP: " . $this_ip, "LB-LANG: " . $this->api_language));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 30);
$result = curl_exec($curl);
$filesize = curl_getinfo($curl, CURLINFO_CONTENT_LENGTH_DOWNLOAD);
if ($filesize) {
switch ($filesize) {
case $filesize < 1024: $size = $filesize . " B";
break;
case $filesize < 1048576: $size = round($filesize / 1024, 2) . " KB";
break;
case $filesize < 1073741824: $size = round($filesize / 1048576, 2) . " MB";
break;
case $filesize < 1099511627776: $size = round($filesize / 1073741824, 2) . " GB";
break;
}
return $size;
}
}
}

You might also like