Compare commits
51 Commits
Author | SHA1 | Date |
---|---|---|
qkqpttgf | 400d531fab | |
qkqpttgf | a9e113fbf9 | |
qkqpttgf | f51e791072 | |
qkqpttgf | 6ff6ae997b | |
qkqpttgf | 1d84a49703 | |
qkqpttgf | ccde6a7772 | |
qkqpttgf | e7fa472f74 | |
qkqpttgf | d595234a58 | |
qkqpttgf | 596955ffe0 | |
qkqpttgf | ef70b6bcb5 | |
qkqpttgf | c44677ad5c | |
qkqpttgf | 6275911942 | |
qkqpttgf | b17f9af07b | |
root | 37d2697096 | |
qkqpttgf | bb7c865cc3 | |
qkqpttgf | cf6f59b745 | |
qkqpttgf | 3de4f2bfde | |
qkqpttgf | 813663b744 | |
qkqpttgf | 3f7887dab5 | |
qkqpttgf | 4a9d8c72c8 | |
qkqpttgf | 60ac0c2de8 | |
qkqpttgf | f7f5a79d08 | |
kobe koto | 5a6b3a2e1c | |
qkqpttgf | 8fadfa5cf0 | |
BingoKingo | 6ecfee98e6 | |
qkqpttgf | 57e2c63c03 | |
qkqpttgf | e12169d2de | |
qkqpttgf | d46cd7c962 | |
qkqpttgf | f6f9687e53 | |
zhangxiang | f43dc37630 | |
qkqpttgf | 26897fc181 | |
qkqpttgf | 1bc7b692c2 | |
Hao_Tian22 | f9ce32d899 | |
Hao_Tian22 | 41d0245ac1 | |
Hao_Tian22 | 370c0a1f29 | |
qkqpttgf | 2590ca22f4 | |
EXStevens | fd6da1a67c | |
qkqpttgf | 0cc83ddced | |
qkqpttgf | 5eddb34e3a | |
BingoKingo | 12d6565eb7 | |
Qin Li | bda5b7c1fc | |
qkqpttgf | 0a83622087 | |
qkqpttgf | cc0fd539a1 | |
qkqpttgf | dbb2de5f50 | |
qkqpttgf | 2e5ea1bc6f | |
qkqpttgf | 4c36e56714 | |
qkqpttgf | a9ccd374b8 | |
qkqpttgf | 00973a6496 | |
root | 80aca441d0 | |
root | bb83f493d1 | |
qkqpttgf | 166f00c3a7 |
6
.replit
6
.replit
|
@ -1,3 +1,7 @@
|
|||
language = "php74"
|
||||
run = "php -S 0.0.0.0:8000 index.php"
|
||||
entrypoint = "index.php"
|
||||
[nix]
|
||||
channel = "stable-22_11"
|
||||
[deployment]
|
||||
run = ["sh", "-c", "php -S 0.0.0.0:8000 index.php"]
|
||||
deploymentTarget = "cloudrun"
|
||||
|
|
375
common.php
375
common.php
|
@ -1,72 +1,74 @@
|
|||
<?php
|
||||
|
||||
global $platform;
|
||||
global $timezones;
|
||||
global $slash;
|
||||
global $drive;
|
||||
|
||||
global $EnvConfigs;
|
||||
$EnvConfigs = [
|
||||
// 1 is a switch, 0 input string
|
||||
// 1 inner, 0 common
|
||||
// 1 showed/enableEdit, 0 hidden/disableEdit
|
||||
// 1 base64 to save, 0 not base64
|
||||
'APIKey' => 0b000, // used in heroku.
|
||||
'SecretId' => 0b000, // used in SCF/CFC.
|
||||
'SecretKey' => 0b000, // used in SCF/CFC.
|
||||
'AccessKeyID' => 0b000, // used in FC.
|
||||
'AccessKeySecret' => 0b000, // used in FC.
|
||||
'HW_urn' => 0b000, // used in FG.
|
||||
'HW_key' => 0b000, // used in FG.
|
||||
'HW_secret' => 0b000, // used in FG.
|
||||
'HerokuappId' => 0b000, // used in heroku.
|
||||
'APIKey' => 0b0000, // used in heroku.
|
||||
'SecretId' => 0b0000, // used in SCF/CFC.
|
||||
'SecretKey' => 0b0000, // used in SCF/CFC.
|
||||
'AccessKeyID' => 0b0000, // used in FC.
|
||||
'AccessKeySecret' => 0b0000, // used in FC.
|
||||
'HW_urn' => 0b0000, // used in FG.
|
||||
'HW_key' => 0b0000, // used in FG.
|
||||
'HW_secret' => 0b0000, // used in FG.
|
||||
'HerokuappId' => 0b0000, // used in heroku.
|
||||
|
||||
'admin' => 0b000,
|
||||
'adminloginpage' => 0b010,
|
||||
'autoJumpFirstDisk' => 0b010,
|
||||
'background' => 0b011,
|
||||
'backgroundm' => 0b011,
|
||||
'disableShowThumb' => 0b010,
|
||||
//'disableChangeTheme'=> 0b010,
|
||||
'disktag' => 0b000,
|
||||
'hideFunctionalityFile'=> 0b010,
|
||||
'timezone' => 0b010,
|
||||
'passfile' => 0b011,
|
||||
'sitename' => 0b011,
|
||||
'customScript' => 0b011,
|
||||
'customCss' => 0b011,
|
||||
'customTheme' => 0b011,
|
||||
'theme' => 0b010,
|
||||
'useBasicAuth' => 0b010,
|
||||
'referrer' => 0b011,
|
||||
'forceHttps' => 0b010,
|
||||
'globalHeadOmfUrl' => 0b011,
|
||||
'globalHeadMdUrl' => 0b011,
|
||||
'globalReadmeMdUrl' => 0b011,
|
||||
'globalFootOmfUrl' => 0b011,
|
||||
'bcmathUrl' => 0b011,
|
||||
'admin' => 0b0000,
|
||||
'adminloginpage' => 0b0010,
|
||||
'autoJumpFirstDisk' => 0b1010,
|
||||
'background' => 0b0011,
|
||||
'backgroundm' => 0b0011,
|
||||
'disableShowThumb' => 0b1010,
|
||||
//'disableChangeTheme'=> 0b1010,
|
||||
'disktag' => 0b0000,
|
||||
'hideFunctionalityFile' => 0b1010,
|
||||
'timezone' => 0b0010,
|
||||
'passfile' => 0b0011,
|
||||
'sitename' => 0b0011,
|
||||
'customScript' => 0b0011,
|
||||
'customCss' => 0b0011,
|
||||
'customTheme' => 0b0011,
|
||||
'theme' => 0b0010,
|
||||
'useBasicAuth' => 0b1010,
|
||||
'referrer' => 0b0011,
|
||||
'forceHttps' => 0b1010,
|
||||
'globalHeadOmfUrl' => 0b0011,
|
||||
'globalHeadMdUrl' => 0b0011,
|
||||
'globalReadmeMdUrl' => 0b0011,
|
||||
'globalFootOmfUrl' => 0b0011,
|
||||
'bcmathUrl' => 0b0011,
|
||||
|
||||
'Driver' => 0b100,
|
||||
'client_id' => 0b100,
|
||||
'client_secret' => 0b101,
|
||||
'sharepointSite' => 0b101,
|
||||
'shareurl' => 0b101,
|
||||
//'sharecookie' => 0b101,
|
||||
'shareapiurl' => 0b101,
|
||||
'siteid' => 0b100,
|
||||
'refresh_token' => 0b100,
|
||||
'token_expires' => 0b100,
|
||||
'activeLimit' => 0b100,
|
||||
'driveId' => 0b100,
|
||||
'Driver' => 0b0100,
|
||||
'client_id' => 0b0100,
|
||||
'client_secret' => 0b0101,
|
||||
'sharepointSite' => 0b0101,
|
||||
'shareurl' => 0b0101,
|
||||
//'sharecookie' => 0b0101,
|
||||
'shareapiurl' => 0b0101,
|
||||
'siteid' => 0b0100,
|
||||
'refresh_token' => 0b0100,
|
||||
'token_expires' => 0b0100,
|
||||
'activeLimit' => 0b0100,
|
||||
'driveId' => 0b0100,
|
||||
|
||||
'diskDisplay' => 0b110,
|
||||
'diskname' => 0b111,
|
||||
'diskDescription' => 0b111,
|
||||
'domain_path' => 0b111,
|
||||
'downloadencrypt' => 0b110,
|
||||
'guestup_path' => 0b111,
|
||||
'domainforproxy' => 0b111,
|
||||
'public_path' => 0b111,
|
||||
'fileConduitSize' => 0b110,
|
||||
'fileConduitCacheTime' => 0b110,
|
||||
'diskDisplay' => 0b0110,
|
||||
'diskname' => 0b0111,
|
||||
'diskDescription' => 0b0111,
|
||||
'domain_path' => 0b0111,
|
||||
'downloadencrypt' => 0b1110,
|
||||
'guestup_path' => 0b0111,
|
||||
'domainforproxy' => 0b0111,
|
||||
'public_path' => 0b0111,
|
||||
'fileConduitSize' => 0b0110,
|
||||
'fileConduitCacheTime' => 0b0110,
|
||||
];
|
||||
|
||||
$timezones = array(
|
||||
|
@ -103,36 +105,37 @@ $timezones = array(
|
|||
'12' => 'Asia/Kamchatka'
|
||||
);
|
||||
|
||||
function isCommonEnv($str)
|
||||
{
|
||||
function isCommonEnv($str) {
|
||||
global $EnvConfigs;
|
||||
if (isset($EnvConfigs[$str])) return ( $EnvConfigs[$str] & 0b100 ) ? false : true;
|
||||
if (isset($EnvConfigs[$str])) return ($EnvConfigs[$str] & 0b0100) ? false : true;
|
||||
else return null;
|
||||
}
|
||||
|
||||
function isInnerEnv($str)
|
||||
{
|
||||
function isInnerEnv($str) {
|
||||
global $EnvConfigs;
|
||||
if (isset($EnvConfigs[$str])) return ( $EnvConfigs[$str] & 0b100 ) ? true : false;
|
||||
if (isset($EnvConfigs[$str])) return ($EnvConfigs[$str] & 0b0100) ? true : false;
|
||||
else return null;
|
||||
}
|
||||
|
||||
function isShowedEnv($str)
|
||||
{
|
||||
function isShowedEnv($str) {
|
||||
global $EnvConfigs;
|
||||
if (isset($EnvConfigs[$str])) return ( $EnvConfigs[$str] & 0b010 ) ? true : false;
|
||||
if (isset($EnvConfigs[$str])) return ($EnvConfigs[$str] & 0b0010) ? true : false;
|
||||
else return null;
|
||||
}
|
||||
|
||||
function isBase64Env($str)
|
||||
{
|
||||
function isBase64Env($str) {
|
||||
global $EnvConfigs;
|
||||
if (isset($EnvConfigs[$str])) return ( $EnvConfigs[$str] & 0b001 ) ? true : false;
|
||||
if (isset($EnvConfigs[$str])) return ($EnvConfigs[$str] & 0b0001) ? true : false;
|
||||
else return null;
|
||||
}
|
||||
|
||||
function main($path)
|
||||
{
|
||||
function isSwitchEnv($str) {
|
||||
global $EnvConfigs;
|
||||
if (isset($EnvConfigs[$str])) return ($EnvConfigs[$str] & 0b1000) ? true : false;
|
||||
else return null;
|
||||
}
|
||||
|
||||
function main($path) {
|
||||
global $exts;
|
||||
global $constStr;
|
||||
global $slash;
|
||||
|
@ -180,7 +183,7 @@ function main($path)
|
|||
if (substr($_GET['jsFile'], -3) != '.js') return output('', 403);
|
||||
if (!($path == '' || $path == '/')) return output('', 308, ['Location' => path_format($_SERVER['base_path'] . '/?jsFile=' . $_GET['jsFile'])]);
|
||||
if (strpos($_GET['jsFile'], '/') > -1) $_GET['jsFile'] = splitlast($_GET['jsFile'], '/')[1];
|
||||
$jsFile = file_get_contents('js/' . $_GET['jsFile']);
|
||||
$jsFile = file_get_contents(__DIR__ . '/js/' . $_GET['jsFile']);
|
||||
if (!!$jsFile) {
|
||||
return output(base64_encode($jsFile), 200, ['Content-Type' => 'text/javascript; charset=utf-8', 'Cache-Control' => 'max-age=' . 3 * 24 * 60 * 60], true);
|
||||
} else {
|
||||
|
@ -526,8 +529,7 @@ function main($path)
|
|||
}
|
||||
}
|
||||
|
||||
function get_content($path)
|
||||
{
|
||||
function get_content($path) {
|
||||
global $drive;
|
||||
$path1 = path_format($_SERVER['list_path'] . path_format($path));
|
||||
if ($path1 != '/' && substr($path1, -1) == '/') $path1 = substr($path1, 0, -1);
|
||||
|
@ -536,8 +538,7 @@ function get_content($path)
|
|||
return $file;
|
||||
}
|
||||
|
||||
function driveisfine($tag, &$drive = null)
|
||||
{
|
||||
function driveisfine($tag, &$drive = null) {
|
||||
global $slash;
|
||||
$disktype = getConfig('Driver', $tag);
|
||||
if (!$disktype) return false;
|
||||
|
@ -547,8 +548,7 @@ function driveisfine($tag, &$drive = null)
|
|||
else return false;
|
||||
}
|
||||
|
||||
function baseclassofdrive($d = null)
|
||||
{
|
||||
function baseclassofdrive($d = null) {
|
||||
global $drive;
|
||||
if (!$d) $dr = $drive;
|
||||
else $dr = $d;
|
||||
|
@ -556,8 +556,7 @@ function baseclassofdrive($d = null)
|
|||
return $dr->show_base_class();
|
||||
}
|
||||
|
||||
function extendShow_diskenv($drive)
|
||||
{
|
||||
function extendShow_diskenv($drive) {
|
||||
if (!$drive) return [];
|
||||
return $drive->ext_show_innerenv();
|
||||
}
|
||||
|
@ -588,15 +587,13 @@ function no_return_curl($method, $url, $data = '') {
|
|||
curl_close($ch);
|
||||
}
|
||||
|
||||
function adminpass2cookie($name, $pass, $timestamp)
|
||||
{
|
||||
function adminpass2cookie($name, $pass, $timestamp) {
|
||||
return md5($name . ':' . md5($pass) . '@' . $timestamp) . "(" . $timestamp . ")";
|
||||
}
|
||||
function adminpass2storage($name, $pass, $timestamp, $rand) {
|
||||
return md5($timestamp . '/' . $pass . '^' . $name . '*' . $rand) . "(" . $rand . ")";
|
||||
}
|
||||
function compareadminmd5($name, $pass, $cookie, $storage = 'default')
|
||||
{
|
||||
function compareadminmd5($name, $pass, $cookie, $storage = 'default') {
|
||||
$c = splitfirst($cookie, '(');
|
||||
$c_md5 = $c[0];
|
||||
$c_time = substr($c[1], 0, -1);
|
||||
|
@ -615,8 +612,7 @@ function compareadminmd5($name, $pass, $cookie, $storage = 'default')
|
|||
return false;
|
||||
}
|
||||
|
||||
function compareadminsha1($adminsha1, $timestamp, $pass)
|
||||
{
|
||||
function compareadminsha1($adminsha1, $timestamp, $pass) {
|
||||
if (!is_numeric($timestamp)) return 'Timestamp not Number';
|
||||
if (abs(time() - $timestamp) > 5 * 60) {
|
||||
date_default_timezone_set('UTC');
|
||||
|
@ -626,8 +622,7 @@ function compareadminsha1($adminsha1, $timestamp, $pass)
|
|||
else return 'Error password';
|
||||
}
|
||||
|
||||
function proxy_replace_domain($url, $domainforproxy, &$header)
|
||||
{
|
||||
function proxy_replace_domain($url, $domainforproxy, &$header) {
|
||||
global $drive;
|
||||
$tmp = splitfirst($url, '//');
|
||||
$http = $tmp[0];
|
||||
|
@ -649,14 +644,14 @@ function proxy_replace_domain($url, $domainforproxy, &$header)
|
|||
|
||||
function bchexdec($hex) {
|
||||
$len = strlen($hex);
|
||||
$dec = 0;
|
||||
for ($i = 1; $i <= $len; $i++)
|
||||
$dec = bcadd($dec, bcmul(strval(hexdec($hex[$i - 1])), bcpow('16', strval($len - $i))));
|
||||
|
||||
return $dec;
|
||||
}
|
||||
|
||||
function isHideFile($name)
|
||||
{
|
||||
function isHideFile($name) {
|
||||
$FunctionalityFile = [
|
||||
'head.md',
|
||||
'readme.md',
|
||||
|
@ -664,6 +659,7 @@ function isHideFile($name)
|
|||
'foot.omf',
|
||||
'favicon.ico',
|
||||
'robots.txt',
|
||||
'index.htm',
|
||||
'index.html',
|
||||
];
|
||||
|
||||
|
@ -673,20 +669,17 @@ function isHideFile($name)
|
|||
return false;
|
||||
}
|
||||
|
||||
function getcache($str, $disktag = '')
|
||||
{
|
||||
function getcache($str, $disktag = '') {
|
||||
$cache = filecache($disktag);
|
||||
return $cache->fetch($str);
|
||||
}
|
||||
|
||||
function savecache($key, $value, $disktag = '', $exp = 1800)
|
||||
{
|
||||
function savecache($key, $value, $disktag = '', $exp = 1800) {
|
||||
$cache = filecache($disktag);
|
||||
return $cache->save($key, $value, $exp);
|
||||
}
|
||||
|
||||
function filecache($disktag)
|
||||
{
|
||||
function filecache($disktag) {
|
||||
$dir = sys_get_temp_dir();
|
||||
if (!is_writable($dir)) {
|
||||
$tmp = __DIR__ . '/tmp/';
|
||||
|
@ -722,8 +715,7 @@ function calcDownKey($filename, $key = '') {
|
|||
}
|
||||
}
|
||||
|
||||
function findIndexPath($rootpath, $path = '')
|
||||
{// find the path of the first 'index.php' that not in rootpath.
|
||||
function findIndexPath($rootpath, $path = '') { // find the path of the first 'index.php' that not in rootpath.
|
||||
global $slash;
|
||||
if (substr($rootpath, -1) == $slash) $rootpath = substr($rootpath, 0, -1);
|
||||
if (substr($path, 0, 1) == $slash) $path = substr($path, 1);
|
||||
|
@ -743,8 +735,7 @@ function findIndexPath($rootpath, $path = '')
|
|||
return '';
|
||||
}
|
||||
|
||||
function sortConfig(&$arr)
|
||||
{
|
||||
function sortConfig(&$arr) {
|
||||
ksort($arr);
|
||||
|
||||
if (isset($arr['disktag'])) {
|
||||
|
@ -777,15 +768,13 @@ function chkTxtCode($str) {
|
|||
return false;
|
||||
}
|
||||
|
||||
function getconstStr($str)
|
||||
{
|
||||
function getconstStr($str) {
|
||||
global $constStr;
|
||||
if ($constStr[$str][$constStr['language']] != '') return $constStr[$str][$constStr['language']];
|
||||
return $constStr[$str]['en-us'];
|
||||
}
|
||||
|
||||
function getListpath($domain)
|
||||
{
|
||||
function getListpath($domain) {
|
||||
$domain_path1 = getConfig('domain_path', $_SERVER['disktag']);
|
||||
$public_path = getConfig('public_path', $_SERVER['disktag']);
|
||||
$tmp_path = '';
|
||||
|
@ -806,8 +795,7 @@ function getListpath($domain)
|
|||
return spurlencode($public_path, '/');
|
||||
}
|
||||
|
||||
function path_format($path)
|
||||
{
|
||||
function path_format($path) {
|
||||
$path = '/' . $path;
|
||||
while (strpos($path, '//') !== FALSE) {
|
||||
$path = str_replace('//', '/', $path);
|
||||
|
@ -815,8 +803,7 @@ function path_format($path)
|
|||
return $path;
|
||||
}
|
||||
|
||||
function spurlencode($str, $split='')
|
||||
{
|
||||
function spurlencode($str, $split = '') {
|
||||
$str = str_replace(' ', '%20', $str);
|
||||
$tmp = '';
|
||||
if ($split != '') {
|
||||
|
@ -833,8 +820,7 @@ function spurlencode($str, $split='')
|
|||
return $tmp;
|
||||
}
|
||||
|
||||
function base64y_encode($str)
|
||||
{
|
||||
function base64y_encode($str) {
|
||||
$str = base64_encode($str);
|
||||
while (substr($str, -1) == '=') $str = substr($str, 0, -1);
|
||||
while (strpos($str, '+') !== false) $str = str_replace('+', '-', $str);
|
||||
|
@ -842,8 +828,7 @@ function base64y_encode($str)
|
|||
return $str;
|
||||
}
|
||||
|
||||
function base64y_decode($str)
|
||||
{
|
||||
function base64y_decode($str) {
|
||||
while (strpos($str, '_') !== false) $str = str_replace('_', '/', $str);
|
||||
while (strpos($str, '-') !== false) $str = str_replace('-', '+', $str);
|
||||
while (strlen($str) % 4) $str .= '=';
|
||||
|
@ -852,13 +837,11 @@ function base64y_decode($str)
|
|||
return $str;
|
||||
}
|
||||
|
||||
function error_log1($str)
|
||||
{
|
||||
function error_log1($str) {
|
||||
error_log($str);
|
||||
}
|
||||
|
||||
function is_guestup_path($path)
|
||||
{
|
||||
function is_guestup_path($path) {
|
||||
if (getConfig('guestup_path', $_SERVER['disktag']) != '') {
|
||||
$a1 = path_format(path_format(urldecode($_SERVER['list_path'] . path_format($path))) . '/');
|
||||
$a2 = path_format(path_format(getConfig('guestup_path', $_SERVER['disktag'])) . '/');
|
||||
|
@ -867,13 +850,11 @@ function is_guestup_path($path)
|
|||
return 0;
|
||||
}
|
||||
|
||||
function array_value_isnot_null($arr)
|
||||
{
|
||||
function array_value_isnot_null($arr) {
|
||||
return $arr !== '';
|
||||
}
|
||||
|
||||
function curl($method, $url, $data = '', $headers = [], $returnheader = 0, $location = 0)
|
||||
{
|
||||
function curl($method, $url, $data = '', $headers = [], $returnheader = 0, $location = 0) {
|
||||
//if (!isset($headers['Accept'])) $headers['Accept'] = '*/*';
|
||||
//if (!isset($headers['Referer'])) $headers['Referer'] = $url;
|
||||
//if (!isset($headers['Content-Type'])) $headers['Content-Type'] = 'application/x-www-form-urlencoded';
|
||||
|
@ -896,8 +877,10 @@ function curl($method, $url, $data = '', $headers = [], $returnheader = 0, $loca
|
|||
if ($location) curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
|
||||
//$response['body'] = curl_exec($ch);
|
||||
if ($returnheader) {
|
||||
$tmpres = splitlast(curl_exec($ch), "\r\n\r\n");
|
||||
$result['body'] = $tmpres[1];
|
||||
$tmpresult = curl_exec($ch);
|
||||
//error_log1($tmpresult);
|
||||
$tmpres = splitlast($tmpresult, "\r\n\r\n");
|
||||
$response['body'] = $tmpres[1];
|
||||
$returnhead = $tmpres[0];
|
||||
//echo "HEAD:" . $returnhead;
|
||||
foreach (explode("\r\n", $returnhead) as $head) {
|
||||
|
@ -913,8 +896,7 @@ function curl($method, $url, $data = '', $headers = [], $returnheader = 0, $loca
|
|||
return $response;
|
||||
}
|
||||
|
||||
function clearbehindvalue($path,$page1,$maxpage,$pageinfocache)
|
||||
{
|
||||
function clearbehindvalue($path, $page1, $maxpage, $pageinfocache) {
|
||||
for ($page = $page1 + 1; $page < $maxpage; $page++) {
|
||||
$pageinfocache['nextlink_' . $path . '_page_' . $page] = '';
|
||||
}
|
||||
|
@ -922,8 +904,7 @@ function clearbehindvalue($path,$page1,$maxpage,$pageinfocache)
|
|||
return $pageinfocache;
|
||||
}
|
||||
|
||||
function comppass($pass)
|
||||
{
|
||||
function comppass($pass) {
|
||||
if ($_POST['password1'] !== '') if (md5($_POST['password1']) === $pass) {
|
||||
date_default_timezone_set('UTC');
|
||||
$_SERVER['Set-Cookie'] = 'password=' . $pass . '; expires=' . date(DATE_COOKIE, strtotime('+1hour'));
|
||||
|
@ -944,8 +925,7 @@ function comppass($pass)
|
|||
return 4;
|
||||
}
|
||||
|
||||
function encode_str_replace($str)
|
||||
{
|
||||
function encode_str_replace($str) {
|
||||
$str = str_replace('%', '%25', $str);
|
||||
if (strpos($str, '&')) $str = str_replace('&', '&amp;', $str);
|
||||
$str = str_replace('+', '%2B', $str);
|
||||
|
@ -953,8 +933,7 @@ function encode_str_replace($str)
|
|||
return $str;
|
||||
}
|
||||
|
||||
function gethiddenpass($path,$passfile)
|
||||
{
|
||||
function gethiddenpass($path, $passfile) {
|
||||
$path1 = path_format($_SERVER['list_path'] . path_format($path));
|
||||
if ($path1 != '/' && substr($path1, -1) == '/') $path1 = substr($path1, 0, -1);
|
||||
$password = getcache('path_' . $path1 . '/?password', $_SERVER['disktag']);
|
||||
|
@ -997,15 +976,13 @@ function gethiddenpass($path,$passfile)
|
|||
// return md5('DefaultP@sswordWhenNetworkError');
|
||||
}
|
||||
|
||||
function get_timezone($timezone = '8')
|
||||
{
|
||||
function get_timezone($timezone = '8') {
|
||||
global $timezones;
|
||||
if ($timezone == '') $timezone = '8';
|
||||
return $timezones[$timezone];
|
||||
}
|
||||
|
||||
function message($message, $title = 'Message', $statusCode = 200, $wainstat = 0)
|
||||
{
|
||||
function message($message, $title = 'Message', $statusCode = 200, $wainstat = 0) {
|
||||
$html = '
|
||||
<html lang="' . $_SERVER['language'] . '">
|
||||
<html>
|
||||
|
@ -1070,8 +1047,7 @@ function message($message, $title = 'Message', $statusCode = 200, $wainstat = 0)
|
|||
return output($html, $statusCode);
|
||||
}
|
||||
|
||||
function needUpdate()
|
||||
{
|
||||
function needUpdate() {
|
||||
global $slash;
|
||||
$current_version = file_get_contents(__DIR__ . $slash . 'version');
|
||||
$current_ver = substr($current_version, strpos($current_version, '.') + 1);
|
||||
|
@ -1097,8 +1073,7 @@ function needUpdate()
|
|||
return 0;
|
||||
}
|
||||
|
||||
function output($body, $statusCode = 200, $headers = ['Content-Type' => 'text/html'], $isBase64Encoded = false)
|
||||
{
|
||||
function output($body, $statusCode = 200, $headers = ['Content-Type' => 'text/html'], $isBase64Encoded = false) {
|
||||
if (isset($_SERVER['Set-Cookie'])) $headers['Set-Cookie'] = $_SERVER['Set-Cookie'];
|
||||
if (baseclassofdrive() == 'Aliyundrive' || baseclassofdrive() == 'BaiduDisk') $headers['Referrer-Policy'] = 'no-referrer';
|
||||
//$headers['Referrer-Policy'] = 'same-origin';
|
||||
|
@ -1111,8 +1086,7 @@ function output($body, $statusCode = 200, $headers = ['Content-Type' => 'text/ht
|
|||
];
|
||||
}
|
||||
|
||||
function passhidden($path)
|
||||
{
|
||||
function passhidden($path) {
|
||||
if ($_SERVER['admin']) return 0;
|
||||
//$path = str_replace('+','%2B',$path);
|
||||
//$path = str_replace('&','&', path_format(urldecode($path)));
|
||||
|
@ -1131,8 +1105,7 @@ function passhidden($path)
|
|||
return 4;
|
||||
}
|
||||
|
||||
function size_format($byte)
|
||||
{
|
||||
function size_format($byte) {
|
||||
$i = 0;
|
||||
while (abs($byte) >= 1024) {
|
||||
$byte = $byte / 1024;
|
||||
|
@ -1144,16 +1117,14 @@ function size_format($byte)
|
|||
return ($ret . ' ' . $units[$i]);
|
||||
}
|
||||
|
||||
function time_format($ISO)
|
||||
{
|
||||
function time_format($ISO) {
|
||||
if ($ISO == '') return date('Y-m-d H:i:s');
|
||||
$ISO = str_replace('T', ' ', $ISO);
|
||||
$ISO = str_replace('Z', ' ', $ISO);
|
||||
return date('Y-m-d H:i:s', strtotime($ISO . " UTC"));
|
||||
}
|
||||
|
||||
function adminform($name = '', $pass = '', $storage = '', $path = '')
|
||||
{
|
||||
function adminform($name = '', $pass = '', $storage = '', $path = '') {
|
||||
$html = '<html>
|
||||
<head>
|
||||
<title>' . getconstStr('AdminLogin') . '</title>
|
||||
|
@ -1234,8 +1205,7 @@ function adminform($name = '', $pass = '', $storage = '', $path = '')
|
|||
return output($html, $statusCode);
|
||||
}
|
||||
|
||||
function adminoperate($path)
|
||||
{
|
||||
function adminoperate($path) {
|
||||
global $drive;
|
||||
if ($_SERVER['REQUEST_METHOD'] == 'POST') if (!driveisfine($_SERVER['disktag'], $drive)) return output($_SERVER['disktag'] ? 'disk [ ' . $_SERVER['disktag'] . ' ] error.' : 'Not in drive', 403);
|
||||
$path1 = path_format($_SERVER['list_path'] . '/' . $path);
|
||||
|
@ -1341,8 +1311,7 @@ function adminoperate($path)
|
|||
return $tmparr;
|
||||
}
|
||||
|
||||
function splitfirst($str, $split)
|
||||
{
|
||||
function splitfirst($str, $split) {
|
||||
$len = strlen($split);
|
||||
$pos = strpos($str, $split);
|
||||
if ($pos === false) {
|
||||
|
@ -1359,8 +1328,7 @@ function splitfirst($str, $split)
|
|||
return $tmp;
|
||||
}
|
||||
|
||||
function splitlast($str, $split)
|
||||
{
|
||||
function splitlast($str, $split) {
|
||||
$len = strlen($split);
|
||||
$pos = strrpos($str, $split);
|
||||
if ($pos === false) {
|
||||
|
@ -1377,8 +1345,7 @@ function splitlast($str, $split)
|
|||
return $tmp;
|
||||
}
|
||||
|
||||
function children_name($children)
|
||||
{
|
||||
function children_name($children) {
|
||||
$tmp = [];
|
||||
foreach ($children as $file) {
|
||||
$tmp[strtolower($file['name'])] = $file;
|
||||
|
@ -1386,13 +1353,13 @@ function children_name($children)
|
|||
return $tmp;
|
||||
}
|
||||
|
||||
function EnvOpt($needUpdate = 0)
|
||||
{
|
||||
function EnvOpt($needUpdate = 0) {
|
||||
global $constStr;
|
||||
global $EnvConfigs;
|
||||
global $timezones;
|
||||
global $slash;
|
||||
global $drive;
|
||||
global $platform;
|
||||
ksort($EnvConfigs);
|
||||
$disktags = explode('|', getConfig('disktag'));
|
||||
$envs = '';
|
||||
|
@ -1416,7 +1383,7 @@ function EnvOpt($needUpdate = 0)
|
|||
if (isset($_POST['submit1'])) if (compareadminmd5('admin', getConfig('admin'), $_COOKIE['admin'], $_POST['_admin'])) {
|
||||
$_SERVER['disk_oprating'] = '';
|
||||
foreach ($_POST as $k => $v) {
|
||||
if (isShowedEnv($k) || $k=='disktag_del' || $k=='disktag_add' || $k=='disktag_rename' || $k=='disktag_copy') {
|
||||
if (isShowedEnv($k) || $k == 'disktag_del' || $k == 'disktag_add' || $k == 'disktag_rename' || $k == 'disktag_copy' || $k == 'client_secret') {
|
||||
$tmp[$k] = $v;
|
||||
}
|
||||
if ($k == 'disktag_newname') {
|
||||
|
@ -1586,7 +1553,7 @@ output:
|
|||
return changeAuthKey();
|
||||
}
|
||||
if ($_GET['setup'] === 'platform') {
|
||||
$frame .= '
|
||||
$frame = '
|
||||
<table border=1 width=100%>
|
||||
<form name="common" action="" method="post">
|
||||
<input name="_admin" type="hidden" value="">';
|
||||
|
@ -1617,6 +1584,13 @@ output:
|
|||
$frame .= '
|
||||
</select>
|
||||
' . getconstStr('EnvironmentsDescription')[$key];
|
||||
} elseif (isSwitchEnv($key)) {
|
||||
$frame .= '
|
||||
<select name="' . $key . '">
|
||||
<option value=""></option>
|
||||
<option value="1"' . (getConfig($key) ? ' selected="selected"' : '') . '>true</option>
|
||||
</select>
|
||||
' . getconstStr('EnvironmentsDescription')[$key];
|
||||
} /*elseif ($key=='domain_path') {
|
||||
$tmp = getConfig($key);
|
||||
$domain_path = '';
|
||||
|
@ -1643,7 +1617,7 @@ output:
|
|||
$disktag = $_GET['disktag'];
|
||||
$disk_tmp = null;
|
||||
$diskok = driveisfine($disktag, $disk_tmp);
|
||||
$frame .= '
|
||||
$frame = '
|
||||
<table width=100%>
|
||||
<tr>
|
||||
<td>
|
||||
|
@ -1674,6 +1648,9 @@ output:
|
|||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<form name="' . $disktag . '" action="" method="post">
|
||||
<input name="_admin" type="hidden" value="">
|
||||
<input type="hidden" name="disk" value="' . $disktag . '">
|
||||
<table border=1 width=100%>
|
||||
<tr>
|
||||
<td>Driver</td>
|
||||
|
@ -1681,6 +1658,18 @@ output:
|
|||
if ($diskok) $frame .= ' <a href="?AddDisk=' . get_class($disk_tmp) . '&disktag=' . $disktag . '&SelectDrive">' . getconstStr('ChangeDrivetype') . '</a>';
|
||||
$frame .= '</td>
|
||||
</tr>';
|
||||
if (getConfig('client_id', $disktag) && getConfig('client_secret', $disktag)) {
|
||||
$frame .= '
|
||||
<tr>
|
||||
<td>client_id</td>
|
||||
<td>' . getConfig('client_id', $disktag) . '</td>
|
||||
</tr>';
|
||||
$frame .= '
|
||||
<tr>
|
||||
<td>client_secret</td>
|
||||
<td><input type="text" name="client_secret" value="' . getConfig('client_secret', $disktag) . '" placeholder="' . getconstStr('EnvironmentsDescription')['client_secret'] . '" style="width:100%"></td>
|
||||
</tr>';
|
||||
}
|
||||
if ($diskok) {
|
||||
$frame .= '
|
||||
<tr>
|
||||
|
@ -1694,35 +1683,36 @@ output:
|
|||
</tr>';
|
||||
}
|
||||
|
||||
$frame .= '
|
||||
<form name="' . $disktag . '" action="" method="post">
|
||||
<input name="_admin" type="hidden" value="">
|
||||
<input type="hidden" name="disk" value="' . $disktag . '">';
|
||||
foreach ($EnvConfigs as $key => $val) if (isInnerEnv($key) && isShowedEnv($key)) {
|
||||
if ($key=='diskDisplay') {
|
||||
$frame .= '
|
||||
<tr>
|
||||
<td><label>' . $key . '</label></td>
|
||||
<td width=100%>
|
||||
<td width=100%>';
|
||||
if ($key == 'diskDisplay') {
|
||||
$frame .= '
|
||||
<select name="' . $key . '">
|
||||
<option value=""' . (getConfig($key, $disktag) === '' ? ' selected' : '') . '> </option>
|
||||
<option value="hidden"' . (getConfig($key, $disktag) === 'hidden' ? ' selected' : '') . '>hidden</option>
|
||||
<option value="disable"' . (getConfig($key, $disktag) === 'disable' ? ' selected' : '') . '>disable</option>
|
||||
</select>
|
||||
' . getconstStr('EnvironmentsDescription')[$key] . '
|
||||
</td>
|
||||
</tr>';
|
||||
' . getconstStr('EnvironmentsDescription')[$key];
|
||||
} elseif (isSwitchEnv($key)) {
|
||||
$frame .= '
|
||||
<select name="' . $key . '">
|
||||
<option value=""></option>
|
||||
<option value="1"' . (getConfig($key) ? ' selected="selected"' : '') . '>true</option>
|
||||
</select>
|
||||
' . getconstStr('EnvironmentsDescription')[$key];
|
||||
} else {
|
||||
$frame .= '
|
||||
<tr>
|
||||
<td><label>' . $key . '</label></td>
|
||||
<td width=100%><input type="text" name="' . $key . '" value="' . getConfig($key, $disktag) . '" placeholder="' . getconstStr('EnvironmentsDescription')[$key] . '" style="width:100%"></td>
|
||||
</tr>';
|
||||
}
|
||||
<input type="text" name="' . $key . '" value="' . getConfig($key, $disktag) . '" placeholder="' . getconstStr('EnvironmentsDescription')[$key] . '" style="width:100%">';
|
||||
}
|
||||
$frame .= '
|
||||
<tr><td></td><td><input type="submit" name="submit1" value="' . getconstStr('Setup') . '"></td></tr>
|
||||
</form>';
|
||||
</td>
|
||||
</tr>';
|
||||
}
|
||||
$frame .= '
|
||||
<tr><td></td><td><input type="submit" name="submit1" value="' . getconstStr('Setup') . '"></td></tr>';
|
||||
} else {
|
||||
$frame .= '
|
||||
<tr>
|
||||
|
@ -1731,6 +1721,7 @@ output:
|
|||
}
|
||||
$frame .= '
|
||||
</table>
|
||||
</form>
|
||||
|
||||
<script>
|
||||
function deldiskconfirm(t) {
|
||||
|
@ -1767,7 +1758,7 @@ output:
|
|||
</script>';
|
||||
} else {
|
||||
if (count($disktags) > 1) {
|
||||
$frame .= '
|
||||
$frame = '
|
||||
<script src="https://www.unpkg.com/sortablejs@1.14.0/Sortable.min.js"></script>
|
||||
<style>
|
||||
.sortable-ghost {
|
||||
|
@ -1866,17 +1857,7 @@ output:
|
|||
</script>';
|
||||
|
||||
$canOneKeyUpate = 0;
|
||||
if (isset($_SERVER['USER'])&&$_SERVER['USER']==='qcloud') {
|
||||
$canOneKeyUpate = 1;
|
||||
} elseif (isset($_SERVER['HEROKU_APP_DIR'])&&$_SERVER['HEROKU_APP_DIR']==='/app') {
|
||||
$canOneKeyUpate = 1;
|
||||
} elseif (isset($_SERVER['FC_FUNC_CODE_PATH'])) {
|
||||
$canOneKeyUpate = 1;
|
||||
} elseif (isset($_SERVER['BCE_CFC_RUNTIME_NAME'])&&$_SERVER['BCE_CFC_RUNTIME_NAME']=='php7') {
|
||||
$canOneKeyUpate = 1;
|
||||
} elseif (isset($_SERVER['_APP_SHARE_DIR'])&&$_SERVER['_APP_SHARE_DIR']==='/var/share/CFF/processrouter') {
|
||||
$canOneKeyUpate = 1;
|
||||
} elseif (isset($_SERVER['DOCUMENT_ROOT'])&&$_SERVER['DOCUMENT_ROOT']==='/var/task/user') {
|
||||
if ('Normal' != $platform) {
|
||||
$canOneKeyUpate = 1;
|
||||
} else {
|
||||
$tmp = time();
|
||||
|
@ -2184,8 +2165,7 @@ output:
|
|||
return message($html, getconstStr('Setup'));
|
||||
}
|
||||
|
||||
function render_list($path = '', $files = [])
|
||||
{
|
||||
function render_list($path = '', $files = []) {
|
||||
global $exts;
|
||||
global $constStr;
|
||||
global $slash;
|
||||
|
@ -2194,6 +2174,10 @@ function render_list($path = '', $files = [])
|
|||
$htmlcontent = get_content(path_format($path . '/index.html'))['content'];
|
||||
return output($htmlcontent['body'], $htmlcontent['stat']);
|
||||
}
|
||||
if (isset($files['list']['index.htm']) && !$_SERVER['admin']) {
|
||||
$htmlcontent = get_content(path_format($path . '/index.htm'))['content'];
|
||||
return output($htmlcontent['body'], $htmlcontent['stat']);
|
||||
}
|
||||
//$path = str_replace('%20','%2520',$path);
|
||||
//$path = str_replace('+','%2B',$path);
|
||||
$path1 = path_format(urldecode($path));
|
||||
|
@ -2273,15 +2257,15 @@ function render_list($path = '', $files = [])
|
|||
} else {
|
||||
if (!($html = getcache('customTheme'))) {
|
||||
$file_path = $theme;
|
||||
$tmp = curl('GET', $file_path, '', [], 1);
|
||||
if ($tmp['stat']==302) {
|
||||
error_log1(json_encode($tmp));
|
||||
$tmp = curl('GET', $tmp["returnhead"]["Location"]);
|
||||
}
|
||||
if (!!$tmp['body']) $html = $tmp['body'];
|
||||
$tmp = curl('GET', $file_path, '', [], 1, 1);
|
||||
//error_log1($file_path . " =+= " . json_encode($tmp));
|
||||
if ($tmp['stat'] == 200) {
|
||||
$html = $tmp['body'];
|
||||
savecache('customTheme', $html, '', 9999);
|
||||
} else {
|
||||
$html = "<pre>" . json_encode($tmp, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES) . "</pre>";
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
$tmp = splitfirst($html, '<!--IconValuesStart-->');
|
||||
|
@ -2360,7 +2344,6 @@ function render_list($path = '', $files = [])
|
|||
while (strpos($html, '<!--constStr@File-->')) $html = str_replace('<!--constStr@File-->', getconstStr('File'), $html);
|
||||
while (strpos($html, '<!--constStr@Name-->')) $html = str_replace('<!--constStr@Name-->', getconstStr('Name'), $html);
|
||||
while (strpos($html, '<!--constStr@Content-->')) $html = str_replace('<!--constStr@Content-->', getconstStr('Content'), $html);
|
||||
|
||||
} else {
|
||||
$tmp[1] = 'a';
|
||||
while ($tmp[1] != '') {
|
||||
|
@ -2782,7 +2765,6 @@ function render_list($path = '', $files = [])
|
|||
$html .= $tmp[1];
|
||||
|
||||
while (strpos($html, '<!--MaxPageNum-->')) $html = str_replace('<!--MaxPageNum-->', $maxpage, $html);
|
||||
|
||||
} else {
|
||||
while (strpos($html, '<!--MorePageStart-->')) {
|
||||
$tmp = splitfirst($html, '<!--MorePageStart-->');
|
||||
|
@ -2791,7 +2773,6 @@ function render_list($path = '', $files = [])
|
|||
$html .= $tmp[1];
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
$html = str_replace('<!--constStr@language-->', $constStr['language'], $html);
|
||||
|
|
|
@ -9,7 +9,10 @@ class Aliyundrive {
|
|||
//$this->auth_url = 'https://websv.aliyundrive.com/token/refresh';
|
||||
$this->auth_url = 'https://auth.aliyundrive.com/v2/account/token';
|
||||
$this->api_url = 'https://api.aliyundrive.com/v2';
|
||||
$this->api_url_v3 = 'https://api.aliyundrive.com/adrive/v3';
|
||||
$this->driveId = getConfig('driveId', $tag);
|
||||
//$this->DownurlStrName = 'download_url';
|
||||
$this->DownurlStrName = 'url';
|
||||
$res = $this->get_access_token(getConfig('refresh_token', $tag));
|
||||
}
|
||||
|
||||
|
@ -50,7 +53,7 @@ class Aliyundrive {
|
|||
$tmp['time'] = $files['updated_at'];
|
||||
$tmp['size'] = $files['size'];
|
||||
$tmp['mime'] = $files['file']['mimeType'];
|
||||
$tmp['url'] = $files['download_url'];
|
||||
$tmp['url'] = $files[$this->DownurlStrName];
|
||||
$tmp['content'] = $files['content'];
|
||||
if (isset($files['exist'])) $tmp['exist'] = $files['exist'];
|
||||
if (isset($files['rapid_upload'])) $tmp['rapid_upload'] = $files['rapid_upload'];
|
||||
|
@ -66,7 +69,7 @@ class Aliyundrive {
|
|||
$filename = strtolower($file['name']);
|
||||
if ($file['type']=='file') {
|
||||
$tmp['list'][$filename]['type'] = 'file';
|
||||
$tmp['list'][$filename]['url'] = $file['download_url'];
|
||||
$tmp['list'][$filename]['url'] = $file[$this->DownurlStrName];
|
||||
$tmp['list'][$filename]['mime'] = $file['file']['content_type'];
|
||||
} elseif ($file['type']=='folder') {
|
||||
$tmp['list'][$filename]['type'] = 'folder';
|
||||
|
@ -122,7 +125,7 @@ class Aliyundrive {
|
|||
if (!(isset($files['content'])&&$files['content']['stat']==200)) {
|
||||
$header['Referer'] = 'https://www.aliyundrive.com/';
|
||||
$header['User-Agent'] = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36';
|
||||
$content1 = curl('GET', $files['download_url'], '', $header);
|
||||
$content1 = curl('GET', $files[$this->DownurlStrName], '', $header);
|
||||
$tmp = null;
|
||||
$tmp = json_decode(json_encode($content1), true);
|
||||
if ($tmp['body']===null) {
|
||||
|
@ -182,7 +185,7 @@ class Aliyundrive {
|
|||
}
|
||||
protected function fileList($parent_file_id)
|
||||
{
|
||||
$url = $this->api_url . '/file/list';
|
||||
$url = $this->api_url_v3 . '/file/list';
|
||||
|
||||
$header["content-type"] = "application/json; charset=utf-8";
|
||||
$header['authorization'] = 'Bearer ' . $this->access_token;
|
||||
|
@ -345,7 +348,7 @@ class Aliyundrive {
|
|||
$r = bchexdec( substr(md5($this->access_token), 0, 16) );
|
||||
$o = bcmod($r, $oldfile['size']);
|
||||
}
|
||||
$res = curl('GET', $oldfile['download_url'], '', [
|
||||
$res = curl('GET', $oldfile[$this->DownurlStrName], '', [
|
||||
'Referer' => ''
|
||||
, 'Range' => 'bytes=' . $o . '-' . ($o+7)
|
||||
]);
|
||||
|
@ -626,7 +629,7 @@ class Aliyundrive {
|
|||
}
|
||||
$res = json_decode($result['body'], true);
|
||||
//if (isset($res['url']))
|
||||
$res['download_url'] = $_SERVER['host'] . path_format($_SERVER['base_disk_path'] . '/' . $path . '/' . $filename);
|
||||
$res[$this->DownurlStrName] = $_SERVER['host'] . path_format($_SERVER['base_disk_path'] . '/' . $path . '/' . $filename);
|
||||
}
|
||||
return output(json_encode($this->files_format($res), JSON_UNESCAPED_SLASHES), $result['stat']);
|
||||
}
|
||||
|
|
File diff suppressed because it is too large
Load Diff
56
index.php
56
index.php
|
@ -1,6 +1,7 @@
|
|||
<?php
|
||||
//error_reporting(E_ALL & ~E_NOTICE);
|
||||
error_reporting(0);
|
||||
|
||||
include 'vendor/autoload.php';
|
||||
include 'conststr.php';
|
||||
include 'common.php';
|
||||
|
@ -8,18 +9,46 @@ include 'common.php';
|
|||
date_default_timezone_set('UTC');
|
||||
//echo '<pre>'. json_encode($_SERVER, JSON_PRETTY_PRINT).'</pre>';
|
||||
//echo '<pre>'. json_encode($_ENV, JSON_PRETTY_PRINT).'</pre>';
|
||||
if (isset($_SERVER['USER'])&&$_SERVER['USER']==='qcloud') {
|
||||
global $platform;
|
||||
$platform = checkPlatform();
|
||||
function checkPlatform() {
|
||||
if (isset($_SERVER['USER'])&&$_SERVER['USER']==='qcloud')
|
||||
return 'SCF';
|
||||
if (isset($_SERVER['FC_FUNC_CODE_PATH']))
|
||||
return 'FC';
|
||||
if (isset($_SERVER['RUNTIME_LOG_PATH']) && $_SERVER['RUNTIME_LOG_PATH']=='/home/snuser/log')
|
||||
return 'FG';
|
||||
if (isset($_SERVER['BCE_CFC_RUNTIME_NAME']) && $_SERVER['BCE_CFC_RUNTIME_NAME']=='php7')
|
||||
return 'CFC';
|
||||
if (isset($_SERVER['HEROKU_APP_DIR'])&&$_SERVER['HEROKU_APP_DIR']==='/app')
|
||||
return 'Heroku';
|
||||
if (isset($_SERVER['DOCUMENT_ROOT'])&&$_SERVER['DOCUMENT_ROOT']==='/var/task/user')
|
||||
return 'Vercel';
|
||||
if (isset($_SERVER['DOCUMENT_ROOT'])&&substr($_SERVER['DOCUMENT_ROOT'], 0, 13)==='/home/runner/')
|
||||
return 'Replit';
|
||||
return 'Normal';
|
||||
}
|
||||
function writebackPlatform($p) {
|
||||
if ('SCF'==$p) $_SERVER['USER']='qcloud';
|
||||
if ('FC'==$p) $_SERVER['FC_FUNC_CODE_PATH']=getenv('FC_FUNC_CODE_PATH');
|
||||
if ('FG'==$p) $_SERVER['RUNTIME_LOG_PATH']='/home/snuser/log';
|
||||
if ('CFC'==$p) $_SERVER['BCE_CFC_RUNTIME_NAME']='php7';
|
||||
//if ('Heroku'==$p) $_SERVER['HEROKU_APP_DIR']='/app';
|
||||
if ('Vercel'==$p) $_SERVER['DOCUMENT_ROOT']='/var/task/user';
|
||||
//if ('Replit'==$p) $_SERVER['DOCUMENT_ROOT']='/home/runner/';
|
||||
}
|
||||
if ('SCF'==$platform) {
|
||||
if (getenv('ONEMANAGER_CONFIG_SAVE')=='file') include 'platform/TencentSCF_file.php';
|
||||
else include 'platform/TencentSCF_env.php';
|
||||
} elseif (isset($_SERVER['FC_FUNC_CODE_PATH'])) {
|
||||
} elseif ('FC'==$platform) {
|
||||
include 'platform/AliyunFC.php';
|
||||
} elseif (isset($_SERVER['_APP_SHARE_DIR']) && $_SERVER['_APP_SHARE_DIR']=='/var/share/CFF/processrouter') {
|
||||
} elseif ('FG'==$platform) {
|
||||
//if (getenv('ONEMANAGER_CONFIG_SAVE')=='file') include 'platform/HuaweiFG_file.php';
|
||||
//else include 'platform/HuaweiFG_env.php';
|
||||
echo 'FG' . PHP_EOL;
|
||||
} elseif (isset($_SERVER['BCE_CFC_RUNTIME_NAME']) && $_SERVER['BCE_CFC_RUNTIME_NAME']=='php7') {
|
||||
} elseif ('CFC'==$platform) {
|
||||
include 'platform/BaiduCFC.php';
|
||||
} elseif (isset($_SERVER['HEROKU_APP_DIR'])&&$_SERVER['HEROKU_APP_DIR']==='/app') {
|
||||
} elseif ('Heroku'==$platform) {
|
||||
include 'platform/Heroku.php';
|
||||
$path = getpath();
|
||||
//echo 'path:'. $path;
|
||||
|
@ -33,9 +62,11 @@ if (isset($_SERVER['USER'])&&$_SERVER['USER']==='qcloud') {
|
|||
http_response_code($re['statusCode']);
|
||||
if ($re['isBase64Encoded']) echo base64_decode($re['body']);
|
||||
else echo $re['body'];
|
||||
} elseif (isset($_SERVER['DOCUMENT_ROOT'])&&$_SERVER['DOCUMENT_ROOT']==='/var/task/user') {
|
||||
} elseif ('Vercel'==$platform) {
|
||||
if (getenv('ONEMANAGER_CONFIG_SAVE')=='env') include 'platform/Vercel_env.php';
|
||||
else include 'platform/Vercel.php';
|
||||
|
||||
writebackPlatform('Vercel');
|
||||
$path = getpath();
|
||||
//echo 'path:'. $path;
|
||||
$_GET = getGET();
|
||||
|
@ -48,7 +79,7 @@ if (isset($_SERVER['USER'])&&$_SERVER['USER']==='qcloud') {
|
|||
http_response_code($re['statusCode']);
|
||||
if ($re['isBase64Encoded']) echo base64_decode($re['body']);
|
||||
else echo $re['body'];
|
||||
} elseif (isset($_SERVER['DOCUMENT_ROOT'])&&substr($_SERVER['DOCUMENT_ROOT'], 0, 13)==='/home/runner/') {
|
||||
} elseif ('Replit'==$platform) {
|
||||
include 'platform/Replit.php';
|
||||
|
||||
$path = getpath();
|
||||
|
@ -98,6 +129,7 @@ function main_handler($event, $context)
|
|||
unset($_GET);
|
||||
unset($_COOKIE);
|
||||
unset($_SERVER);
|
||||
writebackPlatform('SCF');
|
||||
GetGlobalVariable($event);
|
||||
//echo '<pre>'. json_encode($_COOKIE, JSON_PRETTY_PRINT).'</pre>';
|
||||
$path = GetPathSetting($event, $context);
|
||||
|
@ -108,7 +140,8 @@ function main_handler($event, $context)
|
|||
// Aliyun FC & Huawei FG & Baidu CFC
|
||||
function handler($event, $context)
|
||||
{
|
||||
if (isset($_SERVER['FC_FUNC_CODE_PATH'])) {
|
||||
global $platform;
|
||||
if ('FC'==$platform) {
|
||||
// Aliyun FC
|
||||
set_error_handler("myErrorHandler");
|
||||
$tmp = array(
|
||||
|
@ -127,6 +160,7 @@ function handler($event, $context)
|
|||
unset($_GET);
|
||||
unset($_COOKIE);
|
||||
unset($_SERVER);
|
||||
writebackPlatform('FC');
|
||||
GetGlobalVariable($event);
|
||||
$path = GetPathSetting($event, $context);
|
||||
|
||||
|
@ -134,7 +168,7 @@ function handler($event, $context)
|
|||
|
||||
return new RingCentral\Psr7\Response($re['statusCode'], $re['headers'], ($re['isBase64Encoded']?base64_decode($re['body']):$re['body']));
|
||||
|
||||
} elseif ($_SERVER['_APP_SHARE_DIR']=='/var/share/CFF/processrouter') {
|
||||
} elseif ('FG'==$platform) {
|
||||
// Huawei FG
|
||||
global $contextUserData;
|
||||
$contextUserData = $context;
|
||||
|
@ -149,13 +183,14 @@ function handler($event, $context)
|
|||
unset($_GET);
|
||||
unset($_COOKIE);
|
||||
unset($_SERVER);
|
||||
writebackPlatform('FG');
|
||||
GetGlobalVariable($event);
|
||||
//echo '<pre>'. json_encode($_COOKIE, JSON_PRETTY_PRINT).'</pre>';
|
||||
$path = GetPathSetting($event, $context);
|
||||
|
||||
return main($path);
|
||||
|
||||
} elseif ($_SERVER['BCE_CFC_RUNTIME_NAME']=='php7') {
|
||||
} elseif ('CFC'==$platform) {
|
||||
// Baidu CFC
|
||||
//$html = '<pre>'. json_encode($event, JSON_PRETTY_PRINT).'</pre>';
|
||||
//$html .= '<pre>'. json_encode($context, JSON_PRETTY_PRINT).'</pre>';
|
||||
|
@ -169,6 +204,7 @@ function handler($event, $context)
|
|||
unset($_GET);
|
||||
unset($_COOKIE);
|
||||
unset($_SERVER);
|
||||
writebackPlatform('CFC');
|
||||
GetGlobalVariable($event);
|
||||
//echo '<pre>'. json_encode($_COOKIE, JSON_PRETTY_PRINT).'</pre>';
|
||||
$path = GetPathSetting($event, $context);
|
||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
|
@ -67,7 +67,6 @@ function GetPathSetting($event, $context)
|
|||
$_SERVER['host'] = $_SERVER['REQUEST_SCHEME'] . '://' . $_SERVER['HTTP_HOST'];
|
||||
$_SERVER['referhost'] = explode('/', $event['headers']['Referer'][0])[2];
|
||||
$_SERVER['HTTP_IF_MODIFIED_SINCE'] = $event['headers']['If-Modified-Since'][0];
|
||||
$_SERVER['FC_FUNC_CODE_PATH'] = getenv('FC_FUNC_CODE_PATH');
|
||||
$_SERVER['REQUEST_METHOD'] = $event['method'];
|
||||
return $path;
|
||||
//return spurlencode($path, '/');
|
||||
|
|
|
@ -6,7 +6,7 @@ global $contextUserData;
|
|||
|
||||
function printInput($event, $context)
|
||||
{
|
||||
$tmp['eventID'] = $context->geteventID();
|
||||
$tmp['RequestID'] = $context->getRequestID();
|
||||
$tmp['RemainingTimeInMilliSeconds'] = $context->getRemainingTimeInMilliSeconds();
|
||||
$tmp['AccessKey'] = $context->getAccessKey();
|
||||
$tmp['SecretKey'] = $context->getSecretKey();
|
||||
|
@ -17,7 +17,7 @@ function printInput($event, $context)
|
|||
$tmp['MemorySize'] = $context->getMemorySize();
|
||||
$tmp['CPUNumber'] = $context->getCPUNumber();
|
||||
$tmp['ProjectID'] = $context->getProjectID();
|
||||
$tmp['Package'] = $context->Package();
|
||||
$tmp['Package'] = $context->getPackage();
|
||||
$tmp['Token'] = $context->getToken();
|
||||
$tmp['Logger'] = $context->getLogger();
|
||||
|
||||
|
@ -51,13 +51,13 @@ function GetPathSetting($event, $context)
|
|||
$_SERVER['ProjectID'] = $context->getProjectID();
|
||||
$host_name = $event['headers']['host'];
|
||||
$_SERVER['HTTP_HOST'] = $host_name;
|
||||
$path = path_format($event['pathParameters'][''].'/');
|
||||
$path = path_format('/' . $event['pathParameters']['']);
|
||||
$path = str_replace('+', '%2B', $path);
|
||||
$_SERVER['base_path'] = path_format($event['path'].'/');
|
||||
$_SERVER['base_path'] = path_format($event['path']);
|
||||
if ( $_SERVER['base_path'] == $path ) {
|
||||
$_SERVER['base_path'] = '/';
|
||||
} else {
|
||||
$_SERVER['base_path'] = substr($_SERVER['base_path'], 0, -strlen($path));
|
||||
$_SERVER['base_path'] = substr($_SERVER['base_path'], 0, strlen($_SERVER['base_path'])-strlen($path));
|
||||
if ($_SERVER['base_path']=='') $_SERVER['base_path'] = '/';
|
||||
}
|
||||
//$_SERVER['PHP_SELF'] = path_format($_SERVER['base_path'] . $path);
|
||||
|
@ -75,7 +75,6 @@ function GetPathSetting($event, $context)
|
|||
$_SERVER['HTTP_TRANSLATE'] = $event['headers']['translate'];//'f'
|
||||
$_SERVER['HTTP_IF_MODIFIED_SINCE'] = $event['headers']['if-modified-since'];
|
||||
$_SERVER['REQUEST_METHOD'] = $event['httpMethod'];
|
||||
$_SERVER['_APP_SHARE_DIR'] = '/var/share/CFF/processrouter';
|
||||
return $path;
|
||||
}
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@ global $contextUserData;
|
|||
|
||||
function printInput($event, $context)
|
||||
{
|
||||
$tmp['eventID'] = $context->geteventID();
|
||||
$tmp['RequestID'] = $context->getRequestID();
|
||||
$tmp['RemainingTimeInMilliSeconds'] = $context->getRemainingTimeInMilliSeconds();
|
||||
$tmp['AccessKey'] = $context->getAccessKey();
|
||||
$tmp['SecretKey'] = $context->getSecretKey();
|
||||
|
@ -17,7 +17,7 @@ function printInput($event, $context)
|
|||
$tmp['MemorySize'] = $context->getMemorySize();
|
||||
$tmp['CPUNumber'] = $context->getCPUNumber();
|
||||
$tmp['ProjectID'] = $context->getProjectID();
|
||||
$tmp['Package'] = $context->Package();
|
||||
$tmp['Package'] = $context->getPackage();
|
||||
$tmp['Token'] = $context->getToken();
|
||||
$tmp['Logger'] = $context->getLogger();
|
||||
|
||||
|
@ -51,13 +51,13 @@ function GetPathSetting($event, $context)
|
|||
$_SERVER['ProjectID'] = $context->getProjectID();
|
||||
$host_name = $event['headers']['host'];
|
||||
$_SERVER['HTTP_HOST'] = $host_name;
|
||||
$path = path_format($event['pathParameters'][''].'/');
|
||||
$path = path_format('/' . $event['pathParameters']['']);
|
||||
$path = str_replace('+', '%2B', $path);
|
||||
$_SERVER['base_path'] = path_format($event['path'].'/');
|
||||
$_SERVER['base_path'] = path_format($event['path']);
|
||||
if ( $_SERVER['base_path'] == $path ) {
|
||||
$_SERVER['base_path'] = '/';
|
||||
} else {
|
||||
$_SERVER['base_path'] = substr($_SERVER['base_path'], 0, -strlen($path));
|
||||
$_SERVER['base_path'] = substr($_SERVER['base_path'], 0, strlen($_SERVER['base_path'])-strlen($path));
|
||||
if ($_SERVER['base_path']=='') $_SERVER['base_path'] = '/';
|
||||
}
|
||||
//$_SERVER['PHP_SELF'] = path_format($_SERVER['base_path'] . $path);
|
||||
|
@ -75,7 +75,6 @@ function GetPathSetting($event, $context)
|
|||
$_SERVER['HTTP_TRANSLATE'] = $event['headers']['translate'];//'f'
|
||||
$_SERVER['HTTP_IF_MODIFIED_SINCE'] = $event['headers']['if-modified-since'];
|
||||
$_SERVER['REQUEST_METHOD'] = $event['httpMethod'];
|
||||
$_SERVER['_APP_SHARE_DIR'] = '/var/share/CFF/processrouter';
|
||||
return $path;
|
||||
}
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@ function getpath()
|
|||
{
|
||||
$_SERVER['firstacceptlanguage'] = strtolower(splitfirst(splitfirst($_SERVER['HTTP_ACCEPT_LANGUAGE'],';')[0],',')[0]);
|
||||
if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) $_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_X_FORWARDED_FOR'];
|
||||
if (isset($_SERVER['HTTP_FLY_CLIENT_IP'])) $_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_FLY_CLIENT_IP'];
|
||||
if (isset($_SERVER['HTTP_FLY_CLIENT_IP'])) $_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_FLY_CLIENT_IP']; // Glitch
|
||||
if ($_SERVER['HTTP_FLY_FORWARDED_PROTO']!='') $_SERVER['REQUEST_SCHEME'] = $_SERVER['HTTP_FLY_FORWARDED_PROTO'];
|
||||
if ($_SERVER['HTTP_X_FORWARDED_PROTO']!='') {
|
||||
$tmp = explode(',', $_SERVER['HTTP_X_FORWARDED_PROTO'])[0];
|
||||
|
|
|
@ -60,7 +60,6 @@ function GetPathSetting($event, $context)
|
|||
$_SERVER['HTTP_TRANSLATE'] = $event['headers']['translate'];//'f'
|
||||
$_SERVER['HTTP_IF_MODIFIED_SINCE'] = $event['headers']['if-modified-since'];
|
||||
$_SERVER['REQUEST_METHOD'] = $event['httpMethod'];
|
||||
$_SERVER['USER'] = 'qcloud';
|
||||
return $path;
|
||||
}
|
||||
|
||||
|
|
|
@ -60,7 +60,6 @@ function GetPathSetting($event, $context)
|
|||
$_SERVER['HTTP_TRANSLATE'] = $event['headers']['translate'];//'f'
|
||||
$_SERVER['HTTP_IF_MODIFIED_SINCE'] = $event['headers']['if-modified-since'];
|
||||
$_SERVER['REQUEST_METHOD'] = $event['httpMethod'];
|
||||
$_SERVER['USER'] = 'qcloud';
|
||||
return $path;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
<?php
|
||||
// https://vercel.com/docs/api#endpoints/deployments/create-a-new-deployment
|
||||
|
||||
function getpath()
|
||||
{
|
||||
function getpath() {
|
||||
$_SERVER['firstacceptlanguage'] = strtolower(splitfirst(splitfirst($_SERVER['HTTP_ACCEPT_LANGUAGE'], ';')[0], ',')[0]);
|
||||
if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) $_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_X_FORWARDED_FOR'];
|
||||
if (isset($_SERVER['HTTP_FLY_CLIENT_IP'])) $_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_FLY_CLIENT_IP'];
|
||||
|
@ -21,12 +20,10 @@ function getpath()
|
|||
if ($p > 0) $path = substr($_SERVER['REQUEST_URI'], 0, $p);
|
||||
else $path = $_SERVER['REQUEST_URI'];
|
||||
$path = path_format(substr($path, strlen($_SERVER['base_path'])));
|
||||
$_SERVER['DOCUMENT_ROOT'] = '/var/task/user';
|
||||
return $path;
|
||||
}
|
||||
|
||||
function getGET()
|
||||
{
|
||||
function getGET() {
|
||||
if (!$_POST) {
|
||||
if (!!$HTTP_RAW_POST_DATA) {
|
||||
$tmpdata = $HTTP_RAW_POST_DATA;
|
||||
|
@ -65,8 +62,7 @@ function getGET()
|
|||
}
|
||||
}
|
||||
|
||||
function getConfig($str, $disktag = '')
|
||||
{
|
||||
function getConfig($str, $disktag = '') {
|
||||
$projectPath = splitlast(__DIR__, '/')[0];
|
||||
$configPath = $projectPath . '/.data/config.php';
|
||||
$s = file_get_contents($configPath);
|
||||
|
@ -89,8 +85,7 @@ function getConfig($str, $disktag = '')
|
|||
return '';
|
||||
}
|
||||
|
||||
function setConfig($arr, $disktag = '')
|
||||
{
|
||||
function setConfig($arr, $disktag = '') {
|
||||
if ($disktag == '') $disktag = $_SERVER['disktag'];
|
||||
$projectPath = splitlast(__DIR__, '/')[0];
|
||||
$configPath = $projectPath . '/.data/config.php';
|
||||
|
@ -144,6 +139,7 @@ function setConfig($arr, $disktag = '')
|
|||
$envs[$arr['disktag_rename']] = '';
|
||||
} else {
|
||||
$disktags = array_unique($disktags);
|
||||
$disktag_s = "";
|
||||
foreach ($disktags as $disktag) if ($disktag != '') $disktag_s .= $disktag . '|';
|
||||
if ($disktag_s != '') $envs['disktag'] = substr($disktag_s, 0, -1);
|
||||
else $envs['disktag'] = '';
|
||||
|
@ -157,8 +153,7 @@ function setConfig($arr, $disktag = '')
|
|||
return setVercelConfig($envs, getConfig('HerokuappId'), getConfig('APIKey'));
|
||||
}
|
||||
|
||||
function install()
|
||||
{
|
||||
function install() {
|
||||
global $constStr;
|
||||
if ($_GET['install1']) {
|
||||
if ($_POST['admin'] != '') {
|
||||
|
@ -176,9 +171,15 @@ function install()
|
|||
$header["Content-Type"] = "application/json";
|
||||
$aliases = json_decode(curl("GET", "https://api.vercel.com/v3/now/aliases", "", $header)['body'], true);
|
||||
$host = splitfirst($_SERVER["host"], "//")[1];
|
||||
$aliases1 = [];
|
||||
foreach ($aliases["aliases"] as $key => $aliase) {
|
||||
$aliases1[] = $aliase["alias"];
|
||||
if ($host == $aliase["alias"]) $projectId = $aliase["projectId"];
|
||||
}
|
||||
if (!$projectId) {
|
||||
$html = 'Please visit from one of: ' . json_encode($aliases1, JSON_PRETTY_PRINT);
|
||||
return message($html, 'Error', 400);
|
||||
}
|
||||
$tmp['HerokuappId'] = $projectId;
|
||||
|
||||
$response = json_decode(setVercelConfig($tmp, $projectId, $APIKey), true);
|
||||
|
@ -204,12 +205,13 @@ function install()
|
|||
}
|
||||
}, 1000);
|
||||
</script>';
|
||||
$title = "Success";
|
||||
return message($html, $title, 201, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
if ($_GET['install0']) {
|
||||
$html .= '
|
||||
$html = '
|
||||
<form action="?install1" method="post" onsubmit="return notnull(this);">
|
||||
language:<br>';
|
||||
foreach ($constStr['languages'] as $key1 => $value1) {
|
||||
|
@ -258,18 +260,17 @@ language:<br>';
|
|||
return message($html, $title, 201);
|
||||
}
|
||||
|
||||
if (substr($_SERVER["host"], -10)=="vercel.app") {
|
||||
$html .= '<a href="?install0">' . getconstStr('ClickInstall') . '</a>, ' . getconstStr('LogintoBind');
|
||||
//if (substr($_SERVER["host"], -10)=="vercel.app") {
|
||||
$html = '<a href="?install0">' . getconstStr('ClickInstall') . '</a>, ' . getconstStr('LogintoBind');
|
||||
$html .= "<br>Remember: you MUST wait 30-60s after each operate / do some change, that make sure Vercel has done the building<br>";
|
||||
} else {
|
||||
$html.= "Please visit form *.vercel.app";
|
||||
}
|
||||
//} else {
|
||||
// $html.= "Please visit form *.vercel.app";
|
||||
//}
|
||||
$title = 'Install';
|
||||
return message($html, $title, 201);
|
||||
}
|
||||
|
||||
function copyFolder($from, $to)
|
||||
{
|
||||
function copyFolder($from, $to) {
|
||||
if (substr($from, -1) == '/') $from = substr($from, 0, -1);
|
||||
if (substr($to, -1) == '/') $to = substr($to, 0, -1);
|
||||
if (!file_exists($to)) mkdir($to, 0777, 1);
|
||||
|
@ -289,8 +290,7 @@ function copyFolder($from, $to)
|
|||
return 1;
|
||||
}
|
||||
|
||||
function setVercelConfig($envs, $appId, $token)
|
||||
{
|
||||
function setVercelConfig($envs, $appId, $token) {
|
||||
sortConfig($envs);
|
||||
$outPath = '/tmp/code/';
|
||||
$outPath_Api = $outPath . 'api/';
|
||||
|
@ -305,8 +305,7 @@ function setVercelConfig($envs, $appId, $token)
|
|||
return VercelUpdate($appId, $token, $outPath);
|
||||
}
|
||||
|
||||
function VercelUpdate($appId, $token, $sourcePath = "")
|
||||
{
|
||||
function VercelUpdate($appId, $token, $sourcePath = "") {
|
||||
if (checkBuilding($appId, $token)) return '{"error":{"message":"Another building is in progress."}}';
|
||||
$url = "https://api.vercel.com/v13/deployments";
|
||||
$header["Authorization"] = "Bearer " . $token;
|
||||
|
@ -316,7 +315,7 @@ function VercelUpdate($appId, $token, $sourcePath = "")
|
|||
$data["target"] = "production";
|
||||
$data["routes"][0]["src"] = "/(.*)";
|
||||
$data["routes"][0]["dest"] = "/api/index.php";
|
||||
$data["functions"]["api/index.php"]["runtime"] = "vercel-php@0.5.1";
|
||||
$data["functions"]["api/index.php"]["runtime"] = "vercel-php@0.6.0";
|
||||
if ($sourcePath == "") $sourcePath = splitlast(splitlast(__DIR__, "/")[0], "/")[0];
|
||||
//echo $sourcePath . "<br>";
|
||||
getEachFiles($file, $sourcePath);
|
||||
|
@ -330,8 +329,7 @@ function VercelUpdate($appId, $token, $sourcePath = "")
|
|||
return json_encode($result);
|
||||
}
|
||||
|
||||
function checkBuilding($projectId, $token)
|
||||
{
|
||||
function checkBuilding($projectId, $token) {
|
||||
$r = 0;
|
||||
$url = "https://api.vercel.com/v6/deployments/?projectId=" . $projectId;
|
||||
$header["Authorization"] = "Bearer " . $token;
|
||||
|
@ -340,15 +338,14 @@ function checkBuilding($projectId, $token)
|
|||
//echo json_encode($response, JSON_PRETTY_PRINT) . " ,res<br>";
|
||||
$result = json_decode($response["body"], true);
|
||||
foreach ($result['deployments'] as $deployment) {
|
||||
if ($deployment['state']!=="READY") $r++;
|
||||
if ($deployment['state'] !== "READY" && $deployment['state'] !== "ERROR") $r++;
|
||||
}
|
||||
return $r;
|
||||
//if ($r===0) return true;
|
||||
//else return false;
|
||||
}
|
||||
|
||||
function getEachFiles(&$file, $base, $path = "")
|
||||
{
|
||||
function getEachFiles(&$file, $base, $path = "") {
|
||||
//if (substr($base, -1)=="/") $base = substr($base, 0, -1);
|
||||
//if (substr($path, -1)=="/") $path = substr($path, 0, -1);
|
||||
$handler = opendir(path_format($base . "/" . $path));
|
||||
|
@ -371,25 +368,21 @@ function getEachFiles(&$file, $base, $path = "")
|
|||
return json_encode(['response' => 'success']);
|
||||
}
|
||||
|
||||
function api_error($response)
|
||||
{
|
||||
function api_error($response) {
|
||||
return isset($response['error']);
|
||||
}
|
||||
|
||||
function api_error_msg($response)
|
||||
{
|
||||
function api_error_msg($response) {
|
||||
return $response['error']['code'] . '<br>
|
||||
' . $response['error']['message'] . '<br>
|
||||
<button onclick="location.href = location.href;">' . getconstStr('Refresh') . '</button>';
|
||||
}
|
||||
|
||||
function setConfigResponse($response)
|
||||
{
|
||||
function setConfigResponse($response) {
|
||||
return json_decode($response, true);
|
||||
}
|
||||
|
||||
function OnekeyUpate($GitSource = 'Github', $auth = 'qkqpttgf', $project = 'OneManager-php', $branch = 'master')
|
||||
{
|
||||
function OnekeyUpate($GitSource = 'Github', $auth = 'qkqpttgf', $project = 'OneManager-php', $branch = 'master') {
|
||||
$tmppath = '/tmp';
|
||||
|
||||
if ($GitSource == 'Github') {
|
||||
|
@ -425,12 +418,14 @@ function OnekeyUpate($GitSource = 'Github', $auth = 'qkqpttgf', $project = 'OneM
|
|||
}
|
||||
|
||||
function WaitFunction($deployid = '') {
|
||||
if ($buildId=='1') {
|
||||
if ($deployid == '1') {
|
||||
$tmp['stat'] = 400;
|
||||
$tmp['body'] = 'id must provided.';
|
||||
return $tmp;
|
||||
}
|
||||
$header["Authorization"] = "Bearer " . getConfig('APIKey');
|
||||
$token = getConfig('APIKey');
|
||||
if ($token != '') {
|
||||
$header["Authorization"] = "Bearer " . $token;
|
||||
$header["Content-Type"] = "application/json";
|
||||
$url = "https://api.vercel.com/v13/deployments/" . $deployid;
|
||||
$response = curl("GET", $url, "", $header);
|
||||
|
@ -443,6 +438,9 @@ function WaitFunction($deployid = '') {
|
|||
$response['body'] .= $url;
|
||||
return $response;
|
||||
}
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
function changeAuthKey() {
|
||||
|
@ -468,6 +466,7 @@ function changeAuthKey() {
|
|||
}
|
||||
}, 1000);
|
||||
</script>';
|
||||
$title = "Success";
|
||||
return message($html, $title, 201, 1);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -21,7 +21,6 @@ function getpath()
|
|||
if ($p>0) $path = substr($_SERVER['REQUEST_URI'], 0, $p);
|
||||
else $path = $_SERVER['REQUEST_URI'];
|
||||
$path = path_format( substr($path, strlen($_SERVER['base_path'])) );
|
||||
$_SERVER['DOCUMENT_ROOT'] = '/var/task/user';
|
||||
return $path;
|
||||
}
|
||||
|
||||
|
|
19
readme.md
19
readme.md
|
@ -41,19 +41,22 @@
|
|||
|
||||
https://onemanager.qkqpttgf.repl.co/
|
||||
|
||||
### Notice
|
||||
|
||||
> `Import from Github` useing the `.replit` file in code files will cause an empty web page, may someone help me?
|
||||
|
||||
### How to Install
|
||||
A:
|
||||
> 1. Click the "+" or "Create Repl", click the `Import from Github`;
|
||||
> 2. Input `https://github.com/qkqpttgf/OneManager-php` in "GitHub URL", then it will auto show "Language" - "PHP Web Server", Click the "Import from Github";
|
||||
> 3. After done, click the green button "Run", it will show the web page on the right, you MUST open it in a new tab or window.
|
||||
|
||||
B:
|
||||
> 1. Click the "+" or "Create Repl", find template "PHP Web Server" (via input "php"), input a name for your project in "Title" or left it default, Click the "+ Create Repl".
|
||||
> 2. After done, input `git clone https://github.com/qkqpttgf/OneManager-php && mv -b OneManager-php/* ./ && mv -b OneManager-php/.[^.]* ./ && rm -rf *~ && rm -rf OneManager-php` to Console or Shell on the right, press "Enter" to run it.
|
||||
> 3. Click the green button "Run", it will show the web page on the right, you can open it in a new tab or window.
|
||||
> 3. Click the green button "Run", it will show the web page on the right, you MUST open it in a new tab or window.
|
||||
|
||||
---
|
||||
|
||||
# Deploy to Heroku
|
||||
# ~~Deploy to Heroku~~
|
||||
|
||||
## Dyno will no longer free
|
||||
|
||||
### Official
|
||||
|
||||
|
@ -87,7 +90,9 @@
|
|||
|
||||
---
|
||||
|
||||
# Deploy to Tencent Serverless Cloud Function (SCF)
|
||||
# ~~Deploy to Tencent Serverless Cloud Function (SCF)~~
|
||||
|
||||
## SCF no longer free
|
||||
|
||||
### Official
|
||||
|
||||
|
|
17
readme_cn.md
17
readme_cn.md
|
@ -43,19 +43,22 @@
|
|||
|
||||
https://onemanager.qkqpttgf.repl.co/
|
||||
|
||||
### 注意
|
||||
|
||||
> 直接`Import from Github`通过`.replit`文件指定php时,网页会空白,有人帮忙解决吗?
|
||||
|
||||
### 安装
|
||||
A:
|
||||
> 1. 点右上的 "+" 或左上的 "+ Create Repl",点击`Import from Github`;
|
||||
> 2. 在"GitHub URL"中输入`https://github.com/qkqpttgf/OneManager-php`,会自动弹出显示"Language"与"PHP Web Server",点下面的"Import from Github"。
|
||||
> 3. 结束后,点上方的绿色 "Run" 按钮,右边会显示一个网页,你要在新窗口打开它来安装,不然不能登录。
|
||||
|
||||
B:
|
||||
> 1. 点右上的 "+" 或左上的 "+ Create Repl",template中输入php,点选"PHP Web Server",在"Title"里输入你想要的名称或者让它默认, 点下面的"+ Create Repl"。
|
||||
> 2. 结束后,在右边的Console或Shell里输入 `git clone https://github.com/qkqpttgf/OneManager-php && mv -b OneManager-php/* ./ && mv -b OneManager-php/.[^.]* ./ && rm -rf *~ && rm -rf OneManager-php` 敲回车运行。
|
||||
> 3. 点上方的绿色 "Run" 按钮,右边会显示一个网页,你要在新窗口打开它来安装,不然不能登录。
|
||||
|
||||
---
|
||||
|
||||
# 部署到 Heroku
|
||||
# ~~部署到 Heroku~~
|
||||
|
||||
## Dyno套餐不再免费
|
||||
|
||||
### 官网
|
||||
|
||||
|
@ -87,7 +90,9 @@
|
|||
|
||||
---
|
||||
|
||||
# 部署到腾讯无服务器云函数 Serverless Cloud Function (SCF)
|
||||
# ~~部署到腾讯无服务器云函数 Serverless Cloud Function (SCF)~~
|
||||
|
||||
## SCF要收套餐费用了
|
||||
|
||||
### 官网
|
||||
|
||||
|
|
|
@ -484,11 +484,11 @@
|
|||
</body>
|
||||
|
||||
<!--MdRequireStart--><link rel="stylesheet" href="https://unpkg.com/github-markdown-css@3.0.1/github-markdown.css">
|
||||
<script type="text/javascript" src="https://unpkg.com/marked@0.6.2/lib/marked.js"></script><!--MdRequireEnd-->
|
||||
<script type="text/javascript" src="?jsFile=marked.js"></script><!--MdRequireEnd-->
|
||||
<!--ListStart-->
|
||||
<!--GuestUploadStart--><script type="text/javascript" src="//cdn.bootcss.com/spark-md5/3.0.0/spark-md5.min.js"></script><!--GuestUploadEnd-->
|
||||
<!--GuestUploadStart--><script type="text/javascript" src="?jsFile=spark-md5.min.js"></script><!--GuestUploadEnd-->
|
||||
<!--AliyundriveUploadJsStart--><script src="https://unpkg.com/bignumber.js@9.0.2/bignumber.js"></script>
|
||||
<script src="https://www.unpkg.com/js-sha1@0.6.0/src/sha1.js"></script><!--AliyundriveUploadJsEnd-->
|
||||
<script src="?jsFile=sha1.min.js"></script><!--AliyundriveUploadJsEnd-->
|
||||
<!--IsFileStart--><!--IspdfFileStart--><script src="https://unpkg.com/pdfjs-dist@2.4.456/build/pdf.min.js"></script><!--IspdfFileEnd--><!--IsFileEnd-->
|
||||
<!--ListEnd-->
|
||||
<script type="text/javascript">
|
||||
|
@ -655,7 +655,6 @@
|
|||
addVideos(["<!--FileEncodeUrl-->"]);
|
||||
<!--IsvideoFileEnd-->
|
||||
<!--IspdfFileStart-->
|
||||
//cdn.bootcss.com/pdf.js/2.4.456/pdf.worker.min.js
|
||||
pdfjsLib.GlobalWorkerOptions.workerSrc = 'https://unpkg.com/pdfjs-dist@2.4.456/build/pdf.worker.min.js';
|
||||
var loadingTask = pdfjsLib.getDocument({
|
||||
url: "<!--FileDownUrl-->",
|
||||
|
@ -1764,6 +1763,6 @@
|
|||
<!--EncryptedEnd-->
|
||||
</script>
|
||||
<script src="https://www.unpkg.com/ionicons@6.0.1/dist/ionicons.js"></script>
|
||||
<!--LoginStart--><script src="https://www.unpkg.com/js-sha1@0.6.0/src/sha1.js"></script><!--LoginEnd-->
|
||||
<!--LoginStart--><script src="?jsFile=sha1.min.js"></script><!--LoginEnd-->
|
||||
<!--customScript-->
|
||||
</html>
|
||||
|
|
|
@ -510,11 +510,11 @@
|
|||
</body>
|
||||
|
||||
<!--ListStart-->
|
||||
<!--MdRequireStart--><link rel="stylesheet" href="//unpkg.zhimg.com/github-markdown-css@3.0.1/github-markdown.css">
|
||||
<script type="text/javascript" src="//unpkg.zhimg.com/marked@0.6.2/marked.min.js"></script><!--MdRequireEnd-->
|
||||
<!--GuestUploadStart--><script type="text/javascript" src="//cdn.bootcss.com/spark-md5/3.0.0/spark-md5.min.js"></script><!--GuestUploadEnd-->
|
||||
<!--AliyundriveUploadJsStart--><script src="https://cdn.bootcss.com/js-sha1/0.6.0/sha1.min.js"></script><!--AliyundriveUploadJsEnd-->
|
||||
<!--IsFileStart--><!--IspdfFileStart--><script src="//cdn.bootcss.com/pdf.js/2.3.200/pdf.min.js"></script><!--IspdfFileEnd--><!--IsFileEnd-->
|
||||
<!--MdRequireStart--><link rel="stylesheet" href="https://unpkg.com/github-markdown-css@3.0.1/github-markdown.css">
|
||||
<script type="text/javascript" src="?jsFile=marked.js"></script><!--MdRequireEnd-->
|
||||
<!--GuestUploadStart--><script type="text/javascript" src="?jsFile=spark-md5.min.js"></script><!--GuestUploadEnd-->
|
||||
<!--AliyundriveUploadJsStart--><script src="?jsFile=sha1.min.js"></script><!--AliyundriveUploadJsEnd-->
|
||||
<!--IsFileStart--><!--IspdfFileStart--><script src="https://unpkg.com/pdfjs-dist@2.4.456/build/pdf.min.js"></script><!--IspdfFileEnd--><!--IsFileEnd-->
|
||||
<!--ListEnd-->
|
||||
<style type="text/css">
|
||||
.markdown-body{font-size: 14px;}
|
||||
|
@ -642,10 +642,10 @@
|
|||
addVideos(['<!--FileEncodeUrl-->']);
|
||||
<!--IsvideoFileEnd-->
|
||||
<!--IspdfFileStart-->
|
||||
pdfjsLib.GlobalWorkerOptions.workerSrc = '//cdn.bootcss.com/pdf.js/2.3.200/pdf.worker.min.js';
|
||||
pdfjsLib.GlobalWorkerOptions.workerSrc = 'https://unpkg.com/pdfjs-dist@2.4.456/build/pdf.worker.min.js';
|
||||
var loadingTask = pdfjsLib.getDocument({
|
||||
url: '<!--FileDownUrl-->',
|
||||
cMapUrl: "//cdn.jsdelivr.net/npm/pdfjs-dist@2.2.228/cmaps/",
|
||||
cMapUrl: "https://unpkg.com/pdfjs-dist@2.4.456/cmaps/",
|
||||
cMapPacked: true,
|
||||
rangeChunkSize: 65535
|
||||
});
|
||||
|
@ -1698,6 +1698,6 @@
|
|||
<!--EncryptedEnd-->
|
||||
</script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/ionicons@5.5.2/dist/ionicons/ionicons.js"></script>
|
||||
<!--LoginStart--><script src="https://cdn.bootcss.com/js-sha1/0.6.0/sha1.min.js"></script><!--LoginEnd-->
|
||||
<!--LoginStart--><script src="?jsFile=sha1.min.js"></script><!--LoginEnd-->
|
||||
<!--customScript-->
|
||||
</html>
|
||||
|
|
|
@ -89,9 +89,10 @@
|
|||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
</div>
|
||||
<form action="?login=admin" method="post">
|
||||
<form action="<!--IsPreview?-->login=admin" method="post" onsubmit="return sha1loginpass(this);">
|
||||
<div class="modal-body">
|
||||
<input class="form-control" id="login_input" name="password1" type="password" placeholder="<!--constStr@InputPassword-->">
|
||||
<input name="timestamp" type="hidden">
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<input class="btn btn-primary" type="submit" value="<!--constStr@Login-->"></button>
|
||||
|
@ -668,7 +669,7 @@ return false;
|
|||
<!--IsFolderEnd-->
|
||||
<!--AdminEnd-->
|
||||
<!--LoginStart-->
|
||||
|
||||
<script src="?jsFile=sha1.min.js"></script>
|
||||
<!--LoginEnd-->
|
||||
<p class="text-center text-muted"><a href="https://github.com/qkqpttgf/OneManager-php" class="text-muted">OneManager</a> By 逸笙 Theme By Nchyn</p>
|
||||
<p class="text-center" style="color: rgba(247,247,249,0);"><!--FootStr--></p>
|
||||
|
@ -676,11 +677,11 @@ return false;
|
|||
</body>
|
||||
|
||||
<!--ListStart-->
|
||||
<!--MdRequireStart--><link rel="stylesheet" href="//unpkg.zhimg.com/github-markdown-css@3.0.1/github-markdown.css">
|
||||
<script type="text/javascript" src="//unpkg.zhimg.com/marked@0.6.2/marked.min.js"></script><!--MdRequireEnd-->
|
||||
<!--GuestUploadStart--><script type="text/javascript" src="//cdn.bootcss.com/spark-md5/3.0.0/spark-md5.min.js"></script><!--GuestUploadEnd-->
|
||||
<!--AliyundriveUploadJsStart--><script src="//cdn.bootcdn.net/ajax/libs/js-sha1/0.6.0/sha1.min.js"></script><!--AliyundriveUploadJsEnd-->
|
||||
<!--IsFileStart--><!--IspdfFileStart--><script src="//cdn.bootcss.com/pdf.js/2.3.200/pdf.min.js"></script><!--IspdfFileEnd--><!--IsFileEnd-->
|
||||
<!--MdRequireStart--><link rel="stylesheet" href="https://unpkg.com/github-markdown-css@3.0.1/github-markdown.css">
|
||||
<script type="text/javascript" src="?jsFile=marked.js"></script><!--MdRequireEnd-->
|
||||
<!--GuestUploadStart--><script type="text/javascript" src="?jsFile=spark-md5.min.js"></script><!--GuestUploadEnd-->
|
||||
<!--AliyundriveUploadJsStart--><script src="?jsFile=sha1.min.js"></script><!--AliyundriveUploadJsEnd-->
|
||||
<!--IsFileStart--><!--IspdfFileStart--><script src="https://unpkg.com/pdfjs-dist@2.4.456/build/pdf.min.js"></script><!--IspdfFileEnd--><!--IsFileEnd-->
|
||||
<!--ListEnd-->
|
||||
<script type="text/javascript">
|
||||
function changelanguage(str)
|
||||
|
@ -802,10 +803,10 @@ return false;
|
|||
addVideos(['<!--FileEncodeUrl-->']);
|
||||
<!--IsvideoFileEnd-->
|
||||
<!--IspdfFileStart-->
|
||||
pdfjsLib.GlobalWorkerOptions.workerSrc = '//cdn.bootcss.com/pdf.js/2.3.200/pdf.worker.min.js';
|
||||
pdfjsLib.GlobalWorkerOptions.workerSrc = 'https://unpkg.com/pdfjs-dist@2.4.456/build/pdf.worker.min.js';
|
||||
var loadingTask = pdfjsLib.getDocument({
|
||||
url: '<!--FileDownUrl-->',
|
||||
cMapUrl: "//cdn.jsdelivr.net/npm/pdfjs-dist@2.2.228/cmaps/",
|
||||
cMapUrl: "https://unpkg.com/pdfjs-dist@2.4.456/cmaps/",
|
||||
cMapPacked: true,
|
||||
rangeChunkSize: 65535
|
||||
});
|
||||
|
@ -1745,6 +1746,35 @@ return false;
|
|||
document.getElementById('login_div').style.top=(window.innerHeight-document.getElementById('login_div').offsetHeight)/2+document.body.scrollTop +'px';
|
||||
document.getElementById('login_input').focus();
|
||||
}
|
||||
function sha1loginpass(f) {
|
||||
if (f.password1.value=="") return false;
|
||||
try {
|
||||
timestamp = new Date().getTime() + "";
|
||||
timestamp = timestamp.substr(0, timestamp.length-3);
|
||||
f.timestamp.value = timestamp;
|
||||
f.password1.value = sha1(timestamp + "" + f.password1.value);
|
||||
return true;
|
||||
} catch {
|
||||
//alert("sha1.js not loaded.");
|
||||
if (confirm("sha1.js not loaded.\n\nLoad from program?")) loadjs("?jsFile=sha1.min.js");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
function loadjs(url) {
|
||||
var xhr = new XMLHttpRequest;
|
||||
xhr.open("GET", url);
|
||||
xhr.onload = function(e) {
|
||||
if (xhr.status==200) {
|
||||
var script = document.createElement("script");
|
||||
script.type = "text/javascript";
|
||||
script.text = xhr.responseText;
|
||||
document.body.appendChild(script);
|
||||
} else {
|
||||
console.log(xhr.response);
|
||||
}
|
||||
}
|
||||
xhr.send(null);
|
||||
}
|
||||
<!--LoginEnd-->
|
||||
<!--EncryptedStart-->
|
||||
document.getElementById('password1').focus();
|
||||
|
|
|
@ -145,8 +145,8 @@
|
|||
</div>
|
||||
<!--IsofficeFileEnd-->
|
||||
<!--IsvideoFileStart-->
|
||||
<link class="dplayer-css" rel="stylesheet" href="https://cdn.jsdelivr.net/npm/dplayer/dist/DPlayer.min.css">
|
||||
<script src="https://cdn.jsdelivr.net/npm/dplayer/dist/DPlayer.min.js"></script>
|
||||
<link class="dplayer-css" rel="stylesheet" href="https://fastly.jsdelivr.net/npm/dplayer/dist/DPlayer.min.css">
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/dplayer/1.27.0/DPlayer.min.js"></script>
|
||||
<div class="nexmoe-item">
|
||||
<div class="mdui-center" id="dplayer"></div>
|
||||
</div>
|
||||
|
@ -283,8 +283,8 @@
|
|||
<!--ShowThumbnailsEnd-->
|
||||
<!--IsFolderEnd-->
|
||||
<!--ListEnd-->
|
||||
<!--MdRequireStart--><link rel="stylesheet" href="//unpkg.zhimg.com/github-markdown-css@3.0.1/github-markdown.css">
|
||||
<script type="text/javascript" src="//unpkg.zhimg.com/marked@0.6.2/marked.min.js"></script><!--MdRequireEnd-->
|
||||
<!--MdRequireStart--><link rel="stylesheet" href="https://unpkg.com/github-markdown-css@3.0.1/github-markdown.css">
|
||||
<script type="text/javascript" src="?jsFile=marked.js"></script><!--MdRequireEnd-->
|
||||
<script>
|
||||
<!--MorePageStart-->
|
||||
function nextpage(num) {
|
||||
|
|
|
@ -374,8 +374,8 @@
|
|||
<!--ListEnd-->
|
||||
<script src="//cdn.jsdelivr.net/gh/mcstudios/glightbox/dist/js/glightbox.min.js"></script>
|
||||
<script src="//cdn.jsdelivr.net/npm/aplayer/dist/APlayer.min.js"></script>
|
||||
<!--MdRequireStart--><link rel="stylesheet" href="//unpkg.zhimg.com/github-markdown-css@3.0.1/github-markdown.css">
|
||||
<script type="text/javascript" src="//unpkg.zhimg.com/marked@0.6.2/marked.min.js"></script><!--MdRequireEnd-->
|
||||
<!--MdRequireStart--><link rel="stylesheet" href="https://unpkg.com/github-markdown-css@3.0.1/github-markdown.css">
|
||||
<script type="text/javascript" src="?jsFile=marked.js"></script><!--MdRequireEnd-->
|
||||
<script>
|
||||
<!--MorePageStart-->
|
||||
function nextpage(num) {
|
||||
|
|
|
@ -434,11 +434,11 @@
|
|||
</body>
|
||||
|
||||
<!--ListStart-->
|
||||
<!--MdRequireStart--><link rel="stylesheet" href="//unpkg.zhimg.com/github-markdown-css@3.0.1/github-markdown.css">
|
||||
<script type="text/javascript" src="//unpkg.zhimg.com/marked@0.6.2/marked.min.js"></script><!--MdRequireEnd-->
|
||||
<!--GuestUploadStart--><script type="text/javascript" src="//cdn.bootcss.com/spark-md5/3.0.0/spark-md5.min.js"></script><!--GuestUploadEnd-->
|
||||
<!--AliyundriveUploadJsStart--><script src="https://cdn.bootcss.com/js-sha1/0.6.0/sha1.min.js"></script><!--AliyundriveUploadJsEnd-->
|
||||
<!--IsFileStart--><!--IspdfFileStart--><script src="//cdn.bootcss.com/pdf.js/2.3.200/pdf.min.js"></script><!--IspdfFileEnd--><!--IsFileEnd-->
|
||||
<!--MdRequireStart--><link rel="stylesheet" href="https://unpkg.com/github-markdown-css@3.0.1/github-markdown.css">
|
||||
<script type="text/javascript" src="?jsFile=marked.js"></script><!--MdRequireEnd-->
|
||||
<!--GuestUploadStart--><script type="text/javascript" src="?jsFile=spark-md5.min.js"></script><!--GuestUploadEnd-->
|
||||
<!--AliyundriveUploadJsStart--><script src="?jsFile=sha1.min.js"></script><!--AliyundriveUploadJsEnd-->
|
||||
<!--IsFileStart--><!--IspdfFileStart--><script src="https://unpkg.com/pdfjs-dist@2.4.456/build/pdf.min.js"></script><!--IspdfFileEnd--><!--IsFileEnd-->
|
||||
<!--ListEnd-->
|
||||
<script type="text/javascript">
|
||||
function changelanguage(str)
|
||||
|
@ -564,10 +564,10 @@
|
|||
addVideos(['<!--FileEncodeUrl-->']);
|
||||
<!--IsvideoFileEnd-->
|
||||
<!--IspdfFileStart-->
|
||||
pdfjsLib.GlobalWorkerOptions.workerSrc = '//cdn.bootcss.com/pdf.js/2.3.200/pdf.worker.min.js';
|
||||
pdfjsLib.GlobalWorkerOptions.workerSrc = 'https://unpkg.com/pdfjs-dist@2.4.456/build/pdf.worker.min.js';
|
||||
var loadingTask = pdfjsLib.getDocument({
|
||||
url: '<!--FileDownUrl-->',
|
||||
cMapUrl: "//cdn.jsdelivr.net/npm/pdfjs-dist@2.2.228/cmaps/",
|
||||
cMapUrl: "https://unpkg.com/pdfjs-dist@2.4.456/cmaps/",
|
||||
cMapPacked: true,
|
||||
rangeChunkSize: 65535
|
||||
});
|
||||
|
@ -1590,6 +1590,6 @@
|
|||
<!--EncryptedEnd-->
|
||||
</script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/ionicons@5.5.2/dist/ionicons/ionicons.js"></script>
|
||||
<!--LoginStart--><script src="https://cdn.bootcss.com/js-sha1/0.6.0/sha1.min.js"></script><!--LoginEnd-->
|
||||
<!--LoginStart--><script src="?jsFile=sha1.min.js"></script><!--LoginEnd-->
|
||||
<!--customScript-->
|
||||
</html>
|
||||
|
|
|
@ -457,8 +457,9 @@
|
|||
<div style="margin:50px">
|
||||
<a onclick="operatediv_close('login')" class="operatediv_close"><!--constStr@Close--></a>
|
||||
<center>
|
||||
<form action="<!--IsPreview?-->login=admin" method="post">
|
||||
<form action="<!--IsPreview?-->login=admin" method="post" onsubmit="return sha1loginpass(this);">
|
||||
<input id="login_input" name="password1" type="password" placeholder="<!--constStr@InputPassword-->">
|
||||
<input name="timestamp" type="hidden" value="">
|
||||
<input type="submit" value="<!--constStr@Login-->">
|
||||
</form>
|
||||
</center>
|
||||
|
@ -469,10 +470,10 @@
|
|||
</body>
|
||||
|
||||
<!--ListStart-->
|
||||
<!--MdRequireStart--><link rel="stylesheet" href="//unpkg.zhimg.com/github-markdown-css@3.0.1/github-markdown.css">
|
||||
<script type="text/javascript" src="//unpkg.zhimg.com/marked@0.6.2/marked.min.js"></script><!--MdRequireEnd-->
|
||||
<!--GuestUploadStart--><script type="text/javascript" src="//cdn.bootcss.com/spark-md5/3.0.0/spark-md5.min.js"></script><!--GuestUploadEnd-->
|
||||
<!--IsFileStart--><!--IspdfFileStart--><script src="//cdn.bootcss.com/pdf.js/2.3.200/pdf.min.js"></script><!--IspdfFileEnd--><!--IsFileEnd-->
|
||||
<!--MdRequireStart--><link rel="stylesheet" href="https://unpkg.com/github-markdown-css@3.0.1/github-markdown.css">
|
||||
<script type="text/javascript" src="?jsFile=marked.js"></script><!--MdRequireEnd-->
|
||||
<!--GuestUploadStart--><script type="text/javascript" src="?jsFile=spark-md5.min.js"></script><!--GuestUploadEnd-->
|
||||
<!--IsFileStart--><!--IspdfFileStart--><script src="https://unpkg.com/pdfjs-dist@2.4.456/build/pdf.min.js"></script><!--IspdfFileEnd--><!--IsFileEnd-->
|
||||
<!--ListEnd-->
|
||||
<script type="text/javascript">
|
||||
function changelanguage(str)
|
||||
|
@ -594,10 +595,10 @@
|
|||
addVideos(['<!--FileDownUrl-->']);
|
||||
<!--IsvideoFileEnd-->
|
||||
<!--IspdfFileStart-->
|
||||
pdfjsLib.GlobalWorkerOptions.workerSrc = '//cdn.bootcss.com/pdf.js/2.3.200/pdf.worker.min.js';
|
||||
pdfjsLib.GlobalWorkerOptions.workerSrc = 'https://unpkg.com/pdfjs-dist@2.4.456/build/pdf.worker.min.js';
|
||||
var loadingTask = pdfjsLib.getDocument({
|
||||
url: '<!--FileDownUrl-->',
|
||||
cMapUrl: "//cdn.jsdelivr.net/npm/pdfjs-dist@2.2.228/cmaps/",
|
||||
cMapUrl: "https://unpkg.com/pdfjs-dist@2.4.456/cmaps/",
|
||||
cMapPacked: true,
|
||||
rangeChunkSize: 65535
|
||||
});
|
||||
|
@ -1246,11 +1247,43 @@
|
|||
document.getElementById('login_div').style.top=(window.innerHeight-document.getElementById('login_div').offsetHeight)/2+document.body.scrollTop +'px';
|
||||
document.getElementById('login_input').focus();
|
||||
}
|
||||
function sha1loginpass(f) {
|
||||
if (f.password1.value == "") return false;
|
||||
try {
|
||||
timestamp = new Date().getTime() + "";
|
||||
timestamp = timestamp.substr(0, timestamp.length - 3);
|
||||
f.timestamp.value = timestamp;
|
||||
f.password1.value = sha1(timestamp + "" + f.password1.value);
|
||||
return true;
|
||||
} catch {
|
||||
//alert("sha1.js not loaded.");
|
||||
if (confirm("sha1.js not loaded.\n\nLoad from program?")) loadjs("?jsFile=sha1.min.js");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
function loadjs(url) {
|
||||
var xhr = new XMLHttpRequest;
|
||||
xhr.open("GET", url);
|
||||
xhr.onload = function (e) {
|
||||
if (xhr.status == 200) {
|
||||
var script = document.createElement("script");
|
||||
script.type = "text/javascript";
|
||||
script.text = xhr.responseText;
|
||||
document.body.appendChild(script);
|
||||
} else {
|
||||
console.log(xhr.response);
|
||||
}
|
||||
}
|
||||
xhr.send(null);
|
||||
}
|
||||
<!--LoginEnd-->
|
||||
<!--EncryptedStart-->
|
||||
document.getElementById('password1').focus();
|
||||
<!--EncryptedEnd-->
|
||||
</script>
|
||||
<!--LoginStart-->
|
||||
<script src="?jsFile=sha1.min.js"></script>
|
||||
<!--LoginEnd-->
|
||||
<script src="https://cdn.jsdelivr.net/npm/ionicons@5.5.2/dist/ionicons/ionicons.js"></script>
|
||||
<!--customScript-->
|
||||
</html>
|
||||
|
|
1404
theme/tfo.html
1404
theme/tfo.html
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue