diff --git a/var/www/common.php b/var/www/common.php index bb1d5c3..25ee98c 100644 --- a/var/www/common.php +++ b/var/www/common.php @@ -125,11 +125,13 @@ const ACCOUNT_UPGRADES = [ '5g_quota' => ['name' => '+5GB disk Quota', 'usd_price' => 20], '10g_quota' => ['name' => '+10GB disk Quota', 'usd_price' => 30], '20g_quota' => ['name' => '+20GB disk Quota', 'usd_price' => 40], + '100k_files_quota' => ['name' => '+100k files Quota', 'usd_price' => 10], ]; -const COINPAYMENTS_PRIVATE = 'COINPAYMENTS_PRIVATE_API_KEY'; -const COINPAYMENTS_PUBLIC = 'COINPAYMENTS_PUBLIC_API_KEY'; -const COINPAYMENTS_MERCHANT_ID = 'COINPAYMENTS_MERCHANT_ID'; -const COINPAYMENTS_IPN_SECRET = 'COINPAYMENTS_IPN_SECRET'; +const COINPAYMENTS_PRIVATE = 'COINPAYMENTS_PRIVATE'; //Coinpayments private API key +const COINPAYMENTS_PUBLIC = 'COINPAYMENTS_PUBLIC'; //Coinpayments public API key +const COINPAYMENTS_MERCHANT_ID = 'COINPAYMENTS_MERCHANT_ID'; //Coinpayments merchant ID +const COINPAYMENTS_IPN_SECRET = 'COINPAYMENTS_IPN_SECRET'; //Coinpayments IPN secret +const COINPAYMENTS_FAKE_BUYER_EMAIL = 'daniel@danwin1210.me'; //fixed email used for the required buyer email field function get_onion_v2($pkey) : string { $keyData = openssl_pkey_get_details($pkey); @@ -768,7 +770,7 @@ function coinpayments_create_transaction(string $currency, int $price, string $p $query['currency1'] = 'USD'; $query['currency2'] = $currency; $query['amount'] = $price; - $query['buyer_email'] = 'daniel@danwin1210.me'; + $query['buyer_email'] = COINPAYMENTS_FAKE_BUYER_EMAIL; $query['version'] = '1'; $query['cmd'] = 'create_transaction'; $query['key'] = COINPAYMENTS_PUBLIC; @@ -847,6 +849,9 @@ function payment_status_update(string $txid){ case '20g_quota': add_disk_quota($tmp['user_id'], 20 * 1024 * 1024); break; + case '100k_files_quota': + add_files_quota($tmp['user_id'], 100000); + break; default: break; } @@ -862,3 +867,22 @@ function add_disk_quota(int $user_id, int $kb){ $stmt = $db->prepare('UPDATE disk_quota SET quota_size = ?, updated = 1 WHERE user_id = ?;'); $stmt->execute([$tmp['quota_size'] + $kb, $user_id]); } + +function add_files_quota(int $user_id, int $number){ + $db = get_db_instance(); + $stmt = $db->prepare('SELECT quota_files FROM disk_quota WHERE user_id = ?;'); + $stmt->execute([$user_id]); + $tmp = $stmt->fetch(PDO::FETCH_ASSOC); + $stmt = $db->prepare('UPDATE disk_quota SET quota_files = ?, updated = 1 WHERE user_id = ?;'); + $stmt->execute([$tmp['quota_files'] + $number, $user_id]); +} + +function bytes_to_human_readable(int $bytes) : string { + $suffix = ['B', 'KiB', 'MiB', 'GiB', 'TiB']; + $size_class=(int) log($bytes, 1024); + if($size_class!==0){ + return sprintf('%1.1f', $bytes / pow(1024, $size_class)) . $suffix[$size_class]; + }else{ + return $bytes . $suffix[0]; + } +} diff --git a/var/www/html/files.php b/var/www/html/files.php index 6358b5c..2b4ffc9 100644 --- a/var/www/html/files.php +++ b/var/www/html/files.php @@ -16,7 +16,6 @@ if(@!ftp_login($ftp, $user[system_account], $_SESSION['ftp_pass'])){ exit; } //prepare reusable data -const SUFFIX=['B', 'KiB', 'MiB', 'GiB']; const TYPES=[ 'jpg'=>'img', 'psd'=>'img', @@ -372,12 +371,7 @@ function get_properties($name, &$icon, &$size){ }else{ $icon='ukwn'; } - $class=(int) log($size, 1024); - if($class!==0){ - $size=sprintf('%1.1f', $size / pow(1024, $class)) . SUFFIX[$class]; - }else{ - $size.=SUFFIX[0]; - } + $size = bytes_to_human_readable($size); } } diff --git a/var/www/html/home.php b/var/www/html/home.php index f674d5a..6b7e8d4 100644 --- a/var/www/html/home.php +++ b/var/www/html/home.php @@ -317,12 +317,16 @@ foreach(SERVERS as $server=>$tmp){

Change system account password

You can use the FileManager for web based file management.

prepare('SELECT quota_size, quota_size_used FROM disk_quota WHERE user_id = ?;'); +$stmt = $db->prepare('SELECT quota_size, quota_size_used, quota_files, quota_files_used FROM disk_quota WHERE user_id = ?;'); $stmt->execute([$user['id']]); $quota = $stmt->fetch(PDO::FETCH_ASSOC); $quota_usage = $quota['quota_size_used'] / $quota['quota_size']; +$quota_files_usage = $quota['quota_files_used'] / $quota['quota_files']; +$usage_text = bytes_to_human_readable($quota['quota_size_used'] * 1024) . ' of ' . bytes_to_human_readable($quota['quota_size'] * 1024) . ' - ' . round($quota_usage * 100, 2).'%'; +$usage_files_text = "$quota[quota_files_used] of $quota[quota_files] - " . round($quota_files_usage * 100, 2).'%'; ?> -

Your disk usage: % - % (updated hourly) Upgrade

+

Your disk usage: - (updated hourly) Upgrade

+

Your file number usage: - (updated hourly) Upgrade

Logs

Dateaccess.logerror.log