Compare commits

..

51 Commits

Author SHA1 Message Date
qkqpttgf 400d531fab
Merge pull request #703 from qkqpttgf/ReplitImportFromGithub
Replit import from GitHub
2023-09-06 18:24:08 +08:00
qkqpttgf a9e113fbf9
Update readme_cn.md 2023-09-06 18:23:31 +08:00
qkqpttgf f51e791072
Update deploy to replit 2023-09-06 18:21:54 +08:00
qkqpttgf 6ff6ae997b
Update deploy to replit 2023-09-06 18:16:50 +08:00
qkqpttgf 1d84a49703
Merge pull request #702 from qkqpttgf/ReplitImportFromGithub
Replit: ImportFromGithub
2023-09-06 18:07:59 +08:00
qkqpttgf ccde6a7772
Update .replit 2023-09-06 17:41:01 +08:00
qkqpttgf e7fa472f74
Merge pull request #700 from qkqpttgf/fixCustomTheme
fix customTheme
2023-08-21 18:14:53 +08:00
qkqpttgf d595234a58
try fix customTheme 2023-08-21 10:40:28 +08:00
qkqpttgf 596955ffe0
Update Vercel-php to 0.6.0 2023-08-20 17:08:48 +08:00
qkqpttgf ef70b6bcb5
Merge pull request #691 from qkqpttgf/qkqpttgf-patch-1
fix bug!
2023-05-20 15:12:49 +00:00
qkqpttgf c44677ad5c
fix 2023-05-20 23:02:47 +08:00
qkqpttgf 6275911942
fix 2023-05-20 23:00:19 +08:00
qkqpttgf b17f9af07b
Merge pull request #690 from qkqpttgf/checkPlatform
check platform
2023-05-20 10:06:14 +00:00
root 37d2697096 check platform 2023-05-12 15:21:25 +00:00
qkqpttgf bb7c865cc3
Merge pull request #689 from qkqpttgf/FGtest
FG platform change server base
2023-05-10 21:18:25 +08:00
qkqpttgf cf6f59b745
Update HuaweiFG_file.php 2023-04-16 17:07:51 +08:00
qkqpttgf 3de4f2bfde
Update HuaweiFG_env.php 2023-04-16 17:07:29 +08:00
qkqpttgf 813663b744
Update common.php 2023-04-16 16:59:15 +08:00
qkqpttgf 3f7887dab5
Update index.php 2023-04-16 16:56:40 +08:00
qkqpttgf 4a9d8c72c8
modify custom client_secret 2023-04-09 14:57:18 +08:00
qkqpttgf 60ac0c2de8
fix nix error
#673 
#677 ,
2023-04-09 14:51:20 +08:00
qkqpttgf f7f5a79d08
Merge pull request #683 from kobe-koto/patch-1
fix: #570 更新 update.sh
2023-04-07 21:20:03 +08:00
kobe koto 5a6b3a2e1c
fix: #570
fix: #570
2023-03-29 18:48:05 +08:00
qkqpttgf 8fadfa5cf0
Merge pull request #679 from BingoKingo/patch-2
Update tfo.html, fix styles
2023-03-12 19:57:49 +08:00
BingoKingo 6ecfee98e6
Update tfo.html 2023-03-11 17:22:40 +08:00
qkqpttgf 57e2c63c03
parse index.htm 2023-03-03 15:02:48 +08:00
qkqpttgf e12169d2de
BaiduDisk for test 2023-03-03 14:17:42 +08:00
qkqpttgf d46cd7c962
fix: no url to download in aliyun 2023-03-03 14:15:21 +08:00
qkqpttgf f6f9687e53
Merge pull request #669 from msterzhang/patch-1
Update Aliyundrive.php
2023-02-16 14:55:18 +08:00
zhangxiang f43dc37630
Update Aliyundrive.php
修复 invalid X-Device-Id
2023-02-16 14:12:36 +08:00
qkqpttgf 26897fc181
Merge pull request #666 from HaoTian22/purecool_login_patch1
修复Purecool主题登录时间戳问题
2023-02-02 10:18:10 +08:00
qkqpttgf 1bc7b692c2
Merge pull request #665 from HaoTian22/nchyn_grey_login_patch1
修复nchyn_grey登录无法post时间戳
2023-02-02 10:17:30 +08:00
Hao_Tian22 f9ce32d899 引入sha1.js 2023-01-28 02:48:19 +08:00
Hao_Tian22 41d0245ac1 purecool Login-Fix 2023-01-28 02:38:57 +08:00
Hao_Tian22 370c0a1f29 修复nchyn_grey登录无法post时间戳 2023-01-28 02:17:03 +08:00
qkqpttgf 2590ca22f4
Merge pull request #653 from EXStevens/master
Change the CDN into the available ones
2022-12-21 13:18:19 +08:00
EXStevens fd6da1a67c Change the CDN into available one
Change the CDN for DPlayer into available CDNs in CN.

cdn.jsdelivr.com
->fastly.jsdelivr.com & cdnjs.cloudflare.com
2022-12-17 20:11:23 +08:00
qkqpttgf 0cc83ddced
Merge pull request #633 from liblaf/bump-vercel-php
build: bump `vercel-php` from 0.5.1 to 0.5.2
2022-10-18 09:04:45 +08:00
qkqpttgf 5eddb34e3a
Merge pull request #634 from BingoKingo/patch-1
tfo theme 20221017
2022-10-18 09:01:44 +08:00
BingoKingo 12d6565eb7
tfo theme 20221017 2022-10-17 23:15:57 +08:00
Qin Li bda5b7c1fc
build: bump `vercel-php` from 0.5.1 to 0.5.2
fix #632
2022-10-06 17:25:00 +08:00
qkqpttgf 0a83622087
fix: get wrong ext 2022-09-21 15:32:15 +08:00
qkqpttgf cc0fd539a1
fix: get wrong ext 2022-09-21 15:31:25 +08:00
qkqpttgf dbb2de5f50
fix: depl state ERROR, app ID not found 2022-08-27 16:22:16 +08:00
qkqpttgf 2e5ea1bc6f
fix: jsFilenot found 2022-08-27 15:55:06 +08:00
qkqpttgf 4c36e56714
Merge pull request #619 from qkqpttgf/testjs
load some js from local
2022-08-26 17:12:02 +08:00
qkqpttgf a9ccd374b8
SCF&heroku will no longer free 2022-08-26 09:13:41 +08:00
qkqpttgf 00973a6496
scf&heroku will no longer free 2022-08-26 09:11:40 +08:00
root 80aca441d0 load marked/md5 js from local 2022-08-19 02:24:16 +00:00
root bb83f493d1 load marked/md5 js from local 2022-08-19 02:23:34 +00:00
qkqpttgf 166f00c3a7
show switch setting as select 2022-07-27 18:14:29 +08:00
26 changed files with 5983 additions and 2079 deletions

View File

@ -1,3 +1,7 @@
language = "php74"
run = "php -S 0.0.0.0:8000 index.php" run = "php -S 0.0.0.0:8000 index.php"
entrypoint = "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"

1231
common.php

File diff suppressed because it is too large Load Diff

View File

@ -9,7 +9,10 @@ class Aliyundrive {
//$this->auth_url = 'https://websv.aliyundrive.com/token/refresh'; //$this->auth_url = 'https://websv.aliyundrive.com/token/refresh';
$this->auth_url = 'https://auth.aliyundrive.com/v2/account/token'; $this->auth_url = 'https://auth.aliyundrive.com/v2/account/token';
$this->api_url = 'https://api.aliyundrive.com/v2'; $this->api_url = 'https://api.aliyundrive.com/v2';
$this->api_url_v3 = 'https://api.aliyundrive.com/adrive/v3';
$this->driveId = getConfig('driveId', $tag); $this->driveId = getConfig('driveId', $tag);
//$this->DownurlStrName = 'download_url';
$this->DownurlStrName = 'url';
$res = $this->get_access_token(getConfig('refresh_token', $tag)); $res = $this->get_access_token(getConfig('refresh_token', $tag));
} }
@ -50,7 +53,7 @@ class Aliyundrive {
$tmp['time'] = $files['updated_at']; $tmp['time'] = $files['updated_at'];
$tmp['size'] = $files['size']; $tmp['size'] = $files['size'];
$tmp['mime'] = $files['file']['mimeType']; $tmp['mime'] = $files['file']['mimeType'];
$tmp['url'] = $files['download_url']; $tmp['url'] = $files[$this->DownurlStrName];
$tmp['content'] = $files['content']; $tmp['content'] = $files['content'];
if (isset($files['exist'])) $tmp['exist'] = $files['exist']; if (isset($files['exist'])) $tmp['exist'] = $files['exist'];
if (isset($files['rapid_upload'])) $tmp['rapid_upload'] = $files['rapid_upload']; if (isset($files['rapid_upload'])) $tmp['rapid_upload'] = $files['rapid_upload'];
@ -66,7 +69,7 @@ class Aliyundrive {
$filename = strtolower($file['name']); $filename = strtolower($file['name']);
if ($file['type']=='file') { if ($file['type']=='file') {
$tmp['list'][$filename]['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']; $tmp['list'][$filename]['mime'] = $file['file']['content_type'];
} elseif ($file['type']=='folder') { } elseif ($file['type']=='folder') {
$tmp['list'][$filename]['type'] = 'folder'; $tmp['list'][$filename]['type'] = 'folder';
@ -122,7 +125,7 @@ class Aliyundrive {
if (!(isset($files['content'])&&$files['content']['stat']==200)) { if (!(isset($files['content'])&&$files['content']['stat']==200)) {
$header['Referer'] = 'https://www.aliyundrive.com/'; $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'; $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 = null;
$tmp = json_decode(json_encode($content1), true); $tmp = json_decode(json_encode($content1), true);
if ($tmp['body']===null) { if ($tmp['body']===null) {
@ -182,7 +185,7 @@ class Aliyundrive {
} }
protected function fileList($parent_file_id) 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["content-type"] = "application/json; charset=utf-8";
$header['authorization'] = 'Bearer ' . $this->access_token; $header['authorization'] = 'Bearer ' . $this->access_token;
@ -345,7 +348,7 @@ class Aliyundrive {
$r = bchexdec( substr(md5($this->access_token), 0, 16) ); $r = bchexdec( substr(md5($this->access_token), 0, 16) );
$o = bcmod($r, $oldfile['size']); $o = bcmod($r, $oldfile['size']);
} }
$res = curl('GET', $oldfile['download_url'], '', [ $res = curl('GET', $oldfile[$this->DownurlStrName], '', [
'Referer' => '' 'Referer' => ''
, 'Range' => 'bytes=' . $o . '-' . ($o+7) , 'Range' => 'bytes=' . $o . '-' . ($o+7)
]); ]);
@ -626,7 +629,7 @@ class Aliyundrive {
} }
$res = json_decode($result['body'], true); $res = json_decode($result['body'], true);
//if (isset($res['url'])) //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']); return output(json_encode($this->files_format($res), JSON_UNESCAPED_SLASHES), $result['stat']);
} }

1256
disk/BaiduDisk.php Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,7 @@
<?php <?php
//error_reporting(E_ALL & ~E_NOTICE); //error_reporting(E_ALL & ~E_NOTICE);
error_reporting(0); error_reporting(0);
include 'vendor/autoload.php'; include 'vendor/autoload.php';
include 'conststr.php'; include 'conststr.php';
include 'common.php'; include 'common.php';
@ -8,18 +9,46 @@ include 'common.php';
date_default_timezone_set('UTC'); date_default_timezone_set('UTC');
//echo '<pre>'. json_encode($_SERVER, JSON_PRETTY_PRINT).'</pre>'; //echo '<pre>'. json_encode($_SERVER, JSON_PRETTY_PRINT).'</pre>';
//echo '<pre>'. json_encode($_ENV, 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'; if (getenv('ONEMANAGER_CONFIG_SAVE')=='file') include 'platform/TencentSCF_file.php';
else include 'platform/TencentSCF_env.php'; else include 'platform/TencentSCF_env.php';
} elseif (isset($_SERVER['FC_FUNC_CODE_PATH'])) { } elseif ('FC'==$platform) {
include 'platform/AliyunFC.php'; 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'; //if (getenv('ONEMANAGER_CONFIG_SAVE')=='file') include 'platform/HuaweiFG_file.php';
//else include 'platform/HuaweiFG_env.php'; //else include 'platform/HuaweiFG_env.php';
echo 'FG' . PHP_EOL; echo 'FG' . PHP_EOL;
} elseif (isset($_SERVER['BCE_CFC_RUNTIME_NAME']) && $_SERVER['BCE_CFC_RUNTIME_NAME']=='php7') { } elseif ('CFC'==$platform) {
include 'platform/BaiduCFC.php'; include 'platform/BaiduCFC.php';
} elseif (isset($_SERVER['HEROKU_APP_DIR'])&&$_SERVER['HEROKU_APP_DIR']==='/app') { } elseif ('Heroku'==$platform) {
include 'platform/Heroku.php'; include 'platform/Heroku.php';
$path = getpath(); $path = getpath();
//echo 'path:'. $path; //echo 'path:'. $path;
@ -33,9 +62,11 @@ if (isset($_SERVER['USER'])&&$_SERVER['USER']==='qcloud') {
http_response_code($re['statusCode']); http_response_code($re['statusCode']);
if ($re['isBase64Encoded']) echo base64_decode($re['body']); if ($re['isBase64Encoded']) echo base64_decode($re['body']);
else echo $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'; if (getenv('ONEMANAGER_CONFIG_SAVE')=='env') include 'platform/Vercel_env.php';
else include 'platform/Vercel.php'; else include 'platform/Vercel.php';
writebackPlatform('Vercel');
$path = getpath(); $path = getpath();
//echo 'path:'. $path; //echo 'path:'. $path;
$_GET = getGET(); $_GET = getGET();
@ -48,7 +79,7 @@ if (isset($_SERVER['USER'])&&$_SERVER['USER']==='qcloud') {
http_response_code($re['statusCode']); http_response_code($re['statusCode']);
if ($re['isBase64Encoded']) echo base64_decode($re['body']); if ($re['isBase64Encoded']) echo base64_decode($re['body']);
else echo $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'; include 'platform/Replit.php';
$path = getpath(); $path = getpath();
@ -98,6 +129,7 @@ function main_handler($event, $context)
unset($_GET); unset($_GET);
unset($_COOKIE); unset($_COOKIE);
unset($_SERVER); unset($_SERVER);
writebackPlatform('SCF');
GetGlobalVariable($event); GetGlobalVariable($event);
//echo '<pre>'. json_encode($_COOKIE, JSON_PRETTY_PRINT).'</pre>'; //echo '<pre>'. json_encode($_COOKIE, JSON_PRETTY_PRINT).'</pre>';
$path = GetPathSetting($event, $context); $path = GetPathSetting($event, $context);
@ -108,7 +140,8 @@ function main_handler($event, $context)
// Aliyun FC & Huawei FG & Baidu CFC // Aliyun FC & Huawei FG & Baidu CFC
function handler($event, $context) function handler($event, $context)
{ {
if (isset($_SERVER['FC_FUNC_CODE_PATH'])) { global $platform;
if ('FC'==$platform) {
// Aliyun FC // Aliyun FC
set_error_handler("myErrorHandler"); set_error_handler("myErrorHandler");
$tmp = array( $tmp = array(
@ -127,6 +160,7 @@ function handler($event, $context)
unset($_GET); unset($_GET);
unset($_COOKIE); unset($_COOKIE);
unset($_SERVER); unset($_SERVER);
writebackPlatform('FC');
GetGlobalVariable($event); GetGlobalVariable($event);
$path = GetPathSetting($event, $context); $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'])); 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 // Huawei FG
global $contextUserData; global $contextUserData;
$contextUserData = $context; $contextUserData = $context;
@ -149,13 +183,14 @@ function handler($event, $context)
unset($_GET); unset($_GET);
unset($_COOKIE); unset($_COOKIE);
unset($_SERVER); unset($_SERVER);
writebackPlatform('FG');
GetGlobalVariable($event); GetGlobalVariable($event);
//echo '<pre>'. json_encode($_COOKIE, JSON_PRETTY_PRINT).'</pre>'; //echo '<pre>'. json_encode($_COOKIE, JSON_PRETTY_PRINT).'</pre>';
$path = GetPathSetting($event, $context); $path = GetPathSetting($event, $context);
return main($path); return main($path);
} elseif ($_SERVER['BCE_CFC_RUNTIME_NAME']=='php7') { } elseif ('CFC'==$platform) {
// Baidu CFC // Baidu CFC
//$html = '<pre>'. json_encode($event, JSON_PRETTY_PRINT).'</pre>'; //$html = '<pre>'. json_encode($event, JSON_PRETTY_PRINT).'</pre>';
//$html .= '<pre>'. json_encode($context, JSON_PRETTY_PRINT).'</pre>'; //$html .= '<pre>'. json_encode($context, JSON_PRETTY_PRINT).'</pre>';
@ -169,6 +204,7 @@ function handler($event, $context)
unset($_GET); unset($_GET);
unset($_COOKIE); unset($_COOKIE);
unset($_SERVER); unset($_SERVER);
writebackPlatform('CFC');
GetGlobalVariable($event); GetGlobalVariable($event);
//echo '<pre>'. json_encode($_COOKIE, JSON_PRETTY_PRINT).'</pre>'; //echo '<pre>'. json_encode($_COOKIE, JSON_PRETTY_PRINT).'</pre>';
$path = GetPathSetting($event, $context); $path = GetPathSetting($event, $context);

1690
js/marked.js Executable file

File diff suppressed because it is too large Load Diff

1
js/spark-md5.min.js vendored Executable file

File diff suppressed because one or more lines are too long

View File

@ -67,7 +67,6 @@ function GetPathSetting($event, $context)
$_SERVER['host'] = $_SERVER['REQUEST_SCHEME'] . '://' . $_SERVER['HTTP_HOST']; $_SERVER['host'] = $_SERVER['REQUEST_SCHEME'] . '://' . $_SERVER['HTTP_HOST'];
$_SERVER['referhost'] = explode('/', $event['headers']['Referer'][0])[2]; $_SERVER['referhost'] = explode('/', $event['headers']['Referer'][0])[2];
$_SERVER['HTTP_IF_MODIFIED_SINCE'] = $event['headers']['If-Modified-Since'][0]; $_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']; $_SERVER['REQUEST_METHOD'] = $event['method'];
return $path; return $path;
//return spurlencode($path, '/'); //return spurlencode($path, '/');

View File

@ -6,7 +6,7 @@ global $contextUserData;
function printInput($event, $context) function printInput($event, $context)
{ {
$tmp['eventID'] = $context->geteventID(); $tmp['RequestID'] = $context->getRequestID();
$tmp['RemainingTimeInMilliSeconds'] = $context->getRemainingTimeInMilliSeconds(); $tmp['RemainingTimeInMilliSeconds'] = $context->getRemainingTimeInMilliSeconds();
$tmp['AccessKey'] = $context->getAccessKey(); $tmp['AccessKey'] = $context->getAccessKey();
$tmp['SecretKey'] = $context->getSecretKey(); $tmp['SecretKey'] = $context->getSecretKey();
@ -17,7 +17,7 @@ function printInput($event, $context)
$tmp['MemorySize'] = $context->getMemorySize(); $tmp['MemorySize'] = $context->getMemorySize();
$tmp['CPUNumber'] = $context->getCPUNumber(); $tmp['CPUNumber'] = $context->getCPUNumber();
$tmp['ProjectID'] = $context->getProjectID(); $tmp['ProjectID'] = $context->getProjectID();
$tmp['Package'] = $context->Package(); $tmp['Package'] = $context->getPackage();
$tmp['Token'] = $context->getToken(); $tmp['Token'] = $context->getToken();
$tmp['Logger'] = $context->getLogger(); $tmp['Logger'] = $context->getLogger();
@ -51,13 +51,13 @@ function GetPathSetting($event, $context)
$_SERVER['ProjectID'] = $context->getProjectID(); $_SERVER['ProjectID'] = $context->getProjectID();
$host_name = $event['headers']['host']; $host_name = $event['headers']['host'];
$_SERVER['HTTP_HOST'] = $host_name; $_SERVER['HTTP_HOST'] = $host_name;
$path = path_format($event['pathParameters'][''].'/'); $path = path_format('/' . $event['pathParameters']['']);
$path = str_replace('+', '%2B', $path); $path = str_replace('+', '%2B', $path);
$_SERVER['base_path'] = path_format($event['path'].'/'); $_SERVER['base_path'] = path_format($event['path']);
if ( $_SERVER['base_path'] == $path ) { if ( $_SERVER['base_path'] == $path ) {
$_SERVER['base_path'] = '/'; $_SERVER['base_path'] = '/';
} else { } 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'] = '/'; if ($_SERVER['base_path']=='') $_SERVER['base_path'] = '/';
} }
//$_SERVER['PHP_SELF'] = path_format($_SERVER['base_path'] . $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_TRANSLATE'] = $event['headers']['translate'];//'f'
$_SERVER['HTTP_IF_MODIFIED_SINCE'] = $event['headers']['if-modified-since']; $_SERVER['HTTP_IF_MODIFIED_SINCE'] = $event['headers']['if-modified-since'];
$_SERVER['REQUEST_METHOD'] = $event['httpMethod']; $_SERVER['REQUEST_METHOD'] = $event['httpMethod'];
$_SERVER['_APP_SHARE_DIR'] = '/var/share/CFF/processrouter';
return $path; return $path;
} }

View File

@ -6,7 +6,7 @@ global $contextUserData;
function printInput($event, $context) function printInput($event, $context)
{ {
$tmp['eventID'] = $context->geteventID(); $tmp['RequestID'] = $context->getRequestID();
$tmp['RemainingTimeInMilliSeconds'] = $context->getRemainingTimeInMilliSeconds(); $tmp['RemainingTimeInMilliSeconds'] = $context->getRemainingTimeInMilliSeconds();
$tmp['AccessKey'] = $context->getAccessKey(); $tmp['AccessKey'] = $context->getAccessKey();
$tmp['SecretKey'] = $context->getSecretKey(); $tmp['SecretKey'] = $context->getSecretKey();
@ -17,7 +17,7 @@ function printInput($event, $context)
$tmp['MemorySize'] = $context->getMemorySize(); $tmp['MemorySize'] = $context->getMemorySize();
$tmp['CPUNumber'] = $context->getCPUNumber(); $tmp['CPUNumber'] = $context->getCPUNumber();
$tmp['ProjectID'] = $context->getProjectID(); $tmp['ProjectID'] = $context->getProjectID();
$tmp['Package'] = $context->Package(); $tmp['Package'] = $context->getPackage();
$tmp['Token'] = $context->getToken(); $tmp['Token'] = $context->getToken();
$tmp['Logger'] = $context->getLogger(); $tmp['Logger'] = $context->getLogger();
@ -51,13 +51,13 @@ function GetPathSetting($event, $context)
$_SERVER['ProjectID'] = $context->getProjectID(); $_SERVER['ProjectID'] = $context->getProjectID();
$host_name = $event['headers']['host']; $host_name = $event['headers']['host'];
$_SERVER['HTTP_HOST'] = $host_name; $_SERVER['HTTP_HOST'] = $host_name;
$path = path_format($event['pathParameters'][''].'/'); $path = path_format('/' . $event['pathParameters']['']);
$path = str_replace('+', '%2B', $path); $path = str_replace('+', '%2B', $path);
$_SERVER['base_path'] = path_format($event['path'].'/'); $_SERVER['base_path'] = path_format($event['path']);
if ( $_SERVER['base_path'] == $path ) { if ( $_SERVER['base_path'] == $path ) {
$_SERVER['base_path'] = '/'; $_SERVER['base_path'] = '/';
} else { } 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'] = '/'; if ($_SERVER['base_path']=='') $_SERVER['base_path'] = '/';
} }
//$_SERVER['PHP_SELF'] = path_format($_SERVER['base_path'] . $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_TRANSLATE'] = $event['headers']['translate'];//'f'
$_SERVER['HTTP_IF_MODIFIED_SINCE'] = $event['headers']['if-modified-since']; $_SERVER['HTTP_IF_MODIFIED_SINCE'] = $event['headers']['if-modified-since'];
$_SERVER['REQUEST_METHOD'] = $event['httpMethod']; $_SERVER['REQUEST_METHOD'] = $event['httpMethod'];
$_SERVER['_APP_SHARE_DIR'] = '/var/share/CFF/processrouter';
return $path; return $path;
} }

View File

@ -4,7 +4,7 @@ function getpath()
{ {
$_SERVER['firstacceptlanguage'] = strtolower(splitfirst(splitfirst($_SERVER['HTTP_ACCEPT_LANGUAGE'],';')[0],',')[0]); $_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_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_FLY_FORWARDED_PROTO']!='') $_SERVER['REQUEST_SCHEME'] = $_SERVER['HTTP_FLY_FORWARDED_PROTO'];
if ($_SERVER['HTTP_X_FORWARDED_PROTO']!='') { if ($_SERVER['HTTP_X_FORWARDED_PROTO']!='') {
$tmp = explode(',', $_SERVER['HTTP_X_FORWARDED_PROTO'])[0]; $tmp = explode(',', $_SERVER['HTTP_X_FORWARDED_PROTO'])[0];

View File

@ -60,7 +60,6 @@ function GetPathSetting($event, $context)
$_SERVER['HTTP_TRANSLATE'] = $event['headers']['translate'];//'f' $_SERVER['HTTP_TRANSLATE'] = $event['headers']['translate'];//'f'
$_SERVER['HTTP_IF_MODIFIED_SINCE'] = $event['headers']['if-modified-since']; $_SERVER['HTTP_IF_MODIFIED_SINCE'] = $event['headers']['if-modified-since'];
$_SERVER['REQUEST_METHOD'] = $event['httpMethod']; $_SERVER['REQUEST_METHOD'] = $event['httpMethod'];
$_SERVER['USER'] = 'qcloud';
return $path; return $path;
} }

View File

@ -60,7 +60,6 @@ function GetPathSetting($event, $context)
$_SERVER['HTTP_TRANSLATE'] = $event['headers']['translate'];//'f' $_SERVER['HTTP_TRANSLATE'] = $event['headers']['translate'];//'f'
$_SERVER['HTTP_IF_MODIFIED_SINCE'] = $event['headers']['if-modified-since']; $_SERVER['HTTP_IF_MODIFIED_SINCE'] = $event['headers']['if-modified-since'];
$_SERVER['REQUEST_METHOD'] = $event['httpMethod']; $_SERVER['REQUEST_METHOD'] = $event['httpMethod'];
$_SERVER['USER'] = 'qcloud';
return $path; return $path;
} }

View File

@ -1,32 +1,29 @@
<?php <?php
// https://vercel.com/docs/api#endpoints/deployments/create-a-new-deployment // 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]);
$_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_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'];
if ($_SERVER['REQUEST_SCHEME']!='http'&&$_SERVER['REQUEST_SCHEME']!='https') { if ($_SERVER['REQUEST_SCHEME'] != 'http' && $_SERVER['REQUEST_SCHEME'] != 'https') {
if ($_SERVER['HTTP_X_FORWARDED_PROTO']!='') { if ($_SERVER['HTTP_X_FORWARDED_PROTO'] != '') {
$tmp = explode(',', $_SERVER['HTTP_X_FORWARDED_PROTO'])[0]; $tmp = explode(',', $_SERVER['HTTP_X_FORWARDED_PROTO'])[0];
if ($tmp=='http'||$tmp=='https') $_SERVER['REQUEST_SCHEME'] = $tmp; if ($tmp == 'http' || $tmp == 'https') $_SERVER['REQUEST_SCHEME'] = $tmp;
} }
if ($_SERVER['HTTP_FLY_FORWARDED_PROTO']!='') $_SERVER['REQUEST_SCHEME'] = $_SERVER['HTTP_FLY_FORWARDED_PROTO']; if ($_SERVER['HTTP_FLY_FORWARDED_PROTO'] != '') $_SERVER['REQUEST_SCHEME'] = $_SERVER['HTTP_FLY_FORWARDED_PROTO'];
} }
$_SERVER['host'] = $_SERVER['REQUEST_SCHEME'] . '://' . $_SERVER['HTTP_HOST']; $_SERVER['host'] = $_SERVER['REQUEST_SCHEME'] . '://' . $_SERVER['HTTP_HOST'];
$_SERVER['referhost'] = explode('/', $_SERVER['HTTP_REFERER'])[2]; $_SERVER['referhost'] = explode('/', $_SERVER['HTTP_REFERER'])[2];
$_SERVER['base_path'] = "/"; $_SERVER['base_path'] = "/";
if (isset($_SERVER['UNENCODED_URL'])) $_SERVER['REQUEST_URI'] = $_SERVER['UNENCODED_URL']; if (isset($_SERVER['UNENCODED_URL'])) $_SERVER['REQUEST_URI'] = $_SERVER['UNENCODED_URL'];
$p = strpos($_SERVER['REQUEST_URI'],'?'); $p = strpos($_SERVER['REQUEST_URI'], '?');
if ($p>0) $path = substr($_SERVER['REQUEST_URI'], 0, $p); if ($p > 0) $path = substr($_SERVER['REQUEST_URI'], 0, $p);
else $path = $_SERVER['REQUEST_URI']; else $path = $_SERVER['REQUEST_URI'];
$path = path_format( substr($path, strlen($_SERVER['base_path'])) ); $path = path_format(substr($path, strlen($_SERVER['base_path'])));
$_SERVER['DOCUMENT_ROOT'] = '/var/task/user';
return $path; return $path;
} }
function getGET() function getGET() {
{
if (!$_POST) { if (!$_POST) {
if (!!$HTTP_RAW_POST_DATA) { if (!!$HTTP_RAW_POST_DATA) {
$tmpdata = $HTTP_RAW_POST_DATA; $tmpdata = $HTTP_RAW_POST_DATA;
@ -36,20 +33,20 @@ function getGET()
if (!!$tmpdata) { if (!!$tmpdata) {
$postbody = explode("&", $tmpdata); $postbody = explode("&", $tmpdata);
foreach ($postbody as $postvalues) { foreach ($postbody as $postvalues) {
$pos = strpos($postvalues,"="); $pos = strpos($postvalues, "=");
$_POST[urldecode(substr($postvalues,0,$pos))]=urldecode(substr($postvalues,$pos+1)); $_POST[urldecode(substr($postvalues, 0, $pos))] = urldecode(substr($postvalues, $pos + 1));
} }
} }
} }
if (isset($_SERVER['UNENCODED_URL'])) $_SERVER['REQUEST_URI'] = $_SERVER['UNENCODED_URL']; if (isset($_SERVER['UNENCODED_URL'])) $_SERVER['REQUEST_URI'] = $_SERVER['UNENCODED_URL'];
$p = strpos($_SERVER['REQUEST_URI'],'?'); $p = strpos($_SERVER['REQUEST_URI'], '?');
if ($p>0) { if ($p > 0) {
$getstr = substr($_SERVER['REQUEST_URI'], $p+1); $getstr = substr($_SERVER['REQUEST_URI'], $p + 1);
$getstrarr = explode("&",$getstr); $getstrarr = explode("&", $getstr);
foreach ($getstrarr as $getvalues) { foreach ($getstrarr as $getvalues) {
if ($getvalues != '') { if ($getvalues != '') {
$pos = strpos($getvalues, "="); $pos = strpos($getvalues, "=");
//echo $pos; //echo $pos;
if ($pos > 0) { if ($pos > 0) {
$getarry[urldecode(substr($getvalues, 0, $pos))] = urldecode(substr($getvalues, $pos + 1)); $getarry[urldecode(substr($getvalues, 0, $pos))] = urldecode(substr($getvalues, $pos + 1));
} else { } else {
@ -65,16 +62,15 @@ function getGET()
} }
} }
function getConfig($str, $disktag = '') function getConfig($str, $disktag = '') {
{
$projectPath = splitlast(__DIR__, '/')[0]; $projectPath = splitlast(__DIR__, '/')[0];
$configPath = $projectPath . '/.data/config.php'; $configPath = $projectPath . '/.data/config.php';
$s = file_get_contents($configPath); $s = file_get_contents($configPath);
$configs = '{' . splitlast(splitfirst($s, '{')[1], '}')[0] . '}'; $configs = '{' . splitlast(splitfirst($s, '{')[1], '}')[0] . '}';
if ($configs!='') { if ($configs != '') {
$envs = json_decode($configs, true); $envs = json_decode($configs, true);
if (isInnerEnv($str)) { if (isInnerEnv($str)) {
if ($disktag=='') $disktag = $_SERVER['disktag']; if ($disktag == '') $disktag = $_SERVER['disktag'];
if (isset($envs[$disktag][$str])) { if (isset($envs[$disktag][$str])) {
if (isBase64Env($str)) return base64y_decode($envs[$disktag][$str]); if (isBase64Env($str)) return base64y_decode($envs[$disktag][$str]);
else return $envs[$disktag][$str]; else return $envs[$disktag][$str];
@ -89,15 +85,14 @@ function getConfig($str, $disktag = '')
return ''; return '';
} }
function setConfig($arr, $disktag = '') function setConfig($arr, $disktag = '') {
{ if ($disktag == '') $disktag = $_SERVER['disktag'];
if ($disktag=='') $disktag = $_SERVER['disktag'];
$projectPath = splitlast(__DIR__, '/')[0]; $projectPath = splitlast(__DIR__, '/')[0];
$configPath = $projectPath . '/.data/config.php'; $configPath = $projectPath . '/.data/config.php';
$s = file_get_contents($configPath); $s = file_get_contents($configPath);
$configs = '{' . splitlast(splitfirst($s, '{')[1], '}')[0] . '}'; $configs = '{' . splitlast(splitfirst($s, '{')[1], '}')[0] . '}';
if ($configs!='') $envs = json_decode($configs, true); if ($configs != '') $envs = json_decode($configs, true);
$disktags = explode("|",getConfig('disktag')); $disktags = explode("|", getConfig('disktag'));
$indisk = 0; $indisk = 0;
$operatedisk = 0; $operatedisk = 0;
foreach ($arr as $k => $v) { foreach ($arr as $k => $v) {
@ -108,20 +103,20 @@ function setConfig($arr, $disktag = '')
if (isBase64Env($k)) $envs[$disktag][$k] = base64y_encode($v); if (isBase64Env($k)) $envs[$disktag][$k] = base64y_encode($v);
else $envs[$disktag][$k] = $v; else $envs[$disktag][$k] = $v;
$indisk = 1; $indisk = 1;
} elseif ($k=='disktag_add') { } elseif ($k == 'disktag_add') {
array_push($disktags, $v); array_push($disktags, $v);
$operatedisk = 1; $operatedisk = 1;
} elseif ($k=='disktag_del') { } elseif ($k == 'disktag_del') {
$disktags = array_diff($disktags, [ $v ]); $disktags = array_diff($disktags, [$v]);
$envs[$v] = ''; $envs[$v] = '';
$operatedisk = 1; $operatedisk = 1;
} elseif ($k=='disktag_copy') { } elseif ($k == 'disktag_copy') {
$newtag = $v . '_' . date("Ymd_His"); $newtag = $v . '_' . date("Ymd_His");
$envs[$newtag] = $envs[$v]; $envs[$newtag] = $envs[$v];
array_push($disktags, $newtag); array_push($disktags, $newtag);
$operatedisk = 1; $operatedisk = 1;
} elseif ($k=='disktag_rename' || $k=='disktag_newname') { } elseif ($k == 'disktag_rename' || $k == 'disktag_newname') {
if ($arr['disktag_rename']!=$arr['disktag_newname']) $operatedisk = 1; if ($arr['disktag_rename'] != $arr['disktag_newname']) $operatedisk = 1;
} else { } else {
$envs[$k] = $v; $envs[$k] = $v;
} }
@ -133,10 +128,10 @@ function setConfig($arr, $disktag = '')
$envs[$disktag] = $diskconfig; $envs[$disktag] = $diskconfig;
} }
if ($operatedisk) { if ($operatedisk) {
if (isset($arr['disktag_newname']) && $arr['disktag_newname']!='') { if (isset($arr['disktag_newname']) && $arr['disktag_newname'] != '') {
$tags = []; $tags = [];
foreach ($disktags as $tag) { foreach ($disktags as $tag) {
if ($tag==$arr['disktag_rename']) array_push($tags, $arr['disktag_newname']); if ($tag == $arr['disktag_rename']) array_push($tags, $arr['disktag_newname']);
else array_push($tags, $tag); else array_push($tags, $tag);
} }
$envs['disktag'] = implode('|', $tags); $envs['disktag'] = implode('|', $tags);
@ -144,8 +139,9 @@ function setConfig($arr, $disktag = '')
$envs[$arr['disktag_rename']] = ''; $envs[$arr['disktag_rename']] = '';
} else { } else {
$disktags = array_unique($disktags); $disktags = array_unique($disktags);
foreach ($disktags as $disktag) if ($disktag!='') $disktag_s .= $disktag . '|'; $disktag_s = "";
if ($disktag_s!='') $envs['disktag'] = substr($disktag_s, 0, -1); foreach ($disktags as $disktag) if ($disktag != '') $disktag_s .= $disktag . '|';
if ($disktag_s != '') $envs['disktag'] = substr($disktag_s, 0, -1);
else $envs['disktag'] = ''; else $envs['disktag'] = '';
} }
} }
@ -157,11 +153,10 @@ function setConfig($arr, $disktag = '')
return setVercelConfig($envs, getConfig('HerokuappId'), getConfig('APIKey')); return setVercelConfig($envs, getConfig('HerokuappId'), getConfig('APIKey'));
} }
function install() function install() {
{
global $constStr; global $constStr;
if ($_GET['install1']) { if ($_GET['install1']) {
if ($_POST['admin']!='') { if ($_POST['admin'] != '') {
$tmp['admin'] = $_POST['admin']; $tmp['admin'] = $_POST['admin'];
//$tmp['language'] = $_POST['language']; //$tmp['language'] = $_POST['language'];
$tmp['timezone'] = $_COOKIE['timezone']; $tmp['timezone'] = $_COOKIE['timezone'];
@ -176,8 +171,14 @@ function install()
$header["Content-Type"] = "application/json"; $header["Content-Type"] = "application/json";
$aliases = json_decode(curl("GET", "https://api.vercel.com/v3/now/aliases", "", $header)['body'], true); $aliases = json_decode(curl("GET", "https://api.vercel.com/v3/now/aliases", "", $header)['body'], true);
$host = splitfirst($_SERVER["host"], "//")[1]; $host = splitfirst($_SERVER["host"], "//")[1];
$aliases1 = [];
foreach ($aliases["aliases"] as $key => $aliase) { foreach ($aliases["aliases"] as $key => $aliase) {
if ($host==$aliase["alias"]) $projectId = $aliase["projectId"]; $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; $tmp['HerokuappId'] = $projectId;
@ -204,17 +205,18 @@ function install()
} }
}, 1000); }, 1000);
</script>'; </script>';
$title = "Success";
return message($html, $title, 201, 1); return message($html, $title, 201, 1);
} }
} }
} }
if ($_GET['install0']) { if ($_GET['install0']) {
$html .= ' $html = '
<form action="?install1" method="post" onsubmit="return notnull(this);"> <form action="?install1" method="post" onsubmit="return notnull(this);">
language:<br>'; language:<br>';
foreach ($constStr['languages'] as $key1 => $value1) { foreach ($constStr['languages'] as $key1 => $value1) {
$html .= ' $html .= '
<label><input type="radio" name="language" value="'.$key1.'" '.($key1==$constStr['language']?'checked':'').' onclick="changelanguage(\''.$key1.'\')">'.$value1.'</label><br>'; <label><input type="radio" name="language" value="' . $key1 . '" ' . ($key1 == $constStr['language'] ? 'checked' : '') . ' onclick="changelanguage(\'' . $key1 . '\')">' . $value1 . '</label><br>';
} }
$html .= '<br> $html .= '<br>
<a href="https://vercel.com/account/tokens" target="_blank">' . getconstStr('Create') . ' token</a><br> <a href="https://vercel.com/account/tokens" target="_blank">' . getconstStr('Create') . ' token</a><br>
@ -222,7 +224,7 @@ language:<br>';
$html .= '<br> $html .= '<br>
<label>Set admin password:<input name="admin" type="password" placeholder="' . getconstStr('EnvironmentsDescription')['admin'] . '" size="' . strlen(getconstStr('EnvironmentsDescription')['admin']) . '"></label><br>'; <label>Set admin password:<input name="admin" type="password" placeholder="' . getconstStr('EnvironmentsDescription')['admin'] . '" size="' . strlen(getconstStr('EnvironmentsDescription')['admin']) . '"></label><br>';
$html .= ' $html .= '
<input type="submit" value="'.getconstStr('Submit').'"> <input type="submit" value="' . getconstStr('Submit') . '">
</form> </form>
<div id="showerror"></div> <div id="showerror"></div>
<script> <script>
@ -258,29 +260,28 @@ language:<br>';
return message($html, $title, 201); return message($html, $title, 201);
} }
if (substr($_SERVER["host"], -10)=="vercel.app") { //if (substr($_SERVER["host"], -10)=="vercel.app") {
$html .= '<a href="?install0">' . getconstStr('ClickInstall') . '</a>, ' . getconstStr('LogintoBind'); $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>" ; $html .= "<br>Remember: you MUST wait 30-60s after each operate / do some change, that make sure Vercel has done the building<br>";
} else { //} else {
$html.= "Please visit form *.vercel.app"; // $html.= "Please visit form *.vercel.app";
} //}
$title = 'Install'; $title = 'Install';
return message($html, $title, 201); return message($html, $title, 201);
} }
function copyFolder($from, $to) function copyFolder($from, $to) {
{ if (substr($from, -1) == '/') $from = substr($from, 0, -1);
if (substr($from, -1)=='/') $from = substr($from, 0, -1); if (substr($to, -1) == '/') $to = substr($to, 0, -1);
if (substr($to, -1)=='/') $to = substr($to, 0, -1);
if (!file_exists($to)) mkdir($to, 0777, 1); if (!file_exists($to)) mkdir($to, 0777, 1);
$handler=opendir($from); $handler = opendir($from);
while($filename=readdir($handler)) { while ($filename = readdir($handler)) {
if($filename != '.' && $filename != '..'){ if ($filename != '.' && $filename != '..') {
$fromfile = $from.'/'.$filename; $fromfile = $from . '/' . $filename;
$tofile = $to.'/'.$filename; $tofile = $to . '/' . $filename;
if(is_dir($fromfile)){// 如果读取的某个对象是文件夹,则递归 if (is_dir($fromfile)) { // 如果读取的某个对象是文件夹,则递归
copyFolder($fromfile, $tofile); copyFolder($fromfile, $tofile);
}else{ } else {
copy($fromfile, $tofile); copy($fromfile, $tofile);
} }
} }
@ -289,8 +290,7 @@ function copyFolder($from, $to)
return 1; return 1;
} }
function setVercelConfig($envs, $appId, $token) function setVercelConfig($envs, $appId, $token) {
{
sortConfig($envs); sortConfig($envs);
$outPath = '/tmp/code/'; $outPath = '/tmp/code/';
$outPath_Api = $outPath . 'api/'; $outPath_Api = $outPath . 'api/';
@ -305,8 +305,7 @@ function setVercelConfig($envs, $appId, $token)
return VercelUpdate($appId, $token, $outPath); 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."}}'; if (checkBuilding($appId, $token)) return '{"error":{"message":"Another building is in progress."}}';
$url = "https://api.vercel.com/v13/deployments"; $url = "https://api.vercel.com/v13/deployments";
$header["Authorization"] = "Bearer " . $token; $header["Authorization"] = "Bearer " . $token;
@ -316,8 +315,8 @@ function VercelUpdate($appId, $token, $sourcePath = "")
$data["target"] = "production"; $data["target"] = "production";
$data["routes"][0]["src"] = "/(.*)"; $data["routes"][0]["src"] = "/(.*)";
$data["routes"][0]["dest"] = "/api/index.php"; $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]; if ($sourcePath == "") $sourcePath = splitlast(splitlast(__DIR__, "/")[0], "/")[0];
//echo $sourcePath . "<br>"; //echo $sourcePath . "<br>";
getEachFiles($file, $sourcePath); getEachFiles($file, $sourcePath);
$data["files"] = $file; $data["files"] = $file;
@ -330,8 +329,7 @@ function VercelUpdate($appId, $token, $sourcePath = "")
return json_encode($result); return json_encode($result);
} }
function checkBuilding($projectId, $token) function checkBuilding($projectId, $token) {
{
$r = 0; $r = 0;
$url = "https://api.vercel.com/v6/deployments/?projectId=" . $projectId; $url = "https://api.vercel.com/v6/deployments/?projectId=" . $projectId;
$header["Authorization"] = "Bearer " . $token; $header["Authorization"] = "Bearer " . $token;
@ -339,27 +337,26 @@ function checkBuilding($projectId, $token)
$response = curl("GET", $url, '', $header); $response = curl("GET", $url, '', $header);
//echo json_encode($response, JSON_PRETTY_PRINT) . " ,res<br>"; //echo json_encode($response, JSON_PRETTY_PRINT) . " ,res<br>";
$result = json_decode($response["body"], true); $result = json_decode($response["body"], true);
foreach ( $result['deployments'] as $deployment ) { foreach ($result['deployments'] as $deployment) {
if ($deployment['state']!=="READY") $r++; if ($deployment['state'] !== "READY" && $deployment['state'] !== "ERROR") $r++;
} }
return $r; return $r;
//if ($r===0) return true; //if ($r===0) return true;
//else return false; //else return false;
} }
function getEachFiles(&$file, $base, $path = "") function getEachFiles(&$file, $base, $path = "") {
{
//if (substr($base, -1)=="/") $base = substr($base, 0, -1); //if (substr($base, -1)=="/") $base = substr($base, 0, -1);
//if (substr($path, -1)=="/") $path = substr($path, 0, -1); //if (substr($path, -1)=="/") $path = substr($path, 0, -1);
$handler=opendir(path_format($base . "/" . $path)); $handler = opendir(path_format($base . "/" . $path));
while($filename=readdir($handler)) { while ($filename = readdir($handler)) {
if($filename != '.' && $filename != '..' && $filename != '.git'){ if ($filename != '.' && $filename != '..' && $filename != '.git') {
$fromfile = path_format($base . "/" . $path . "/" . $filename); $fromfile = path_format($base . "/" . $path . "/" . $filename);
//echo $fromfile . "<br>"; //echo $fromfile . "<br>";
if(is_dir($fromfile)){// 如果读取的某个对象是文件夹,则递归 if (is_dir($fromfile)) { // 如果读取的某个对象是文件夹,则递归
$response = getEachFiles($file, $base, path_format($path . "/" . $filename)); $response = getEachFiles($file, $base, path_format($path . "/" . $filename));
if (api_error(setConfigResponse($response))) return $response; if (api_error(setConfigResponse($response))) return $response;
}else{ } else {
$tmp['file'] = path_format($path . "/" . $filename); $tmp['file'] = path_format($path . "/" . $filename);
$tmp['data'] = file_get_contents($fromfile); $tmp['data'] = file_get_contents($fromfile);
$file[] = $tmp; $file[] = $tmp;
@ -367,48 +364,44 @@ function getEachFiles(&$file, $base, $path = "")
} }
} }
closedir($handler); closedir($handler);
return json_encode( [ 'response' => 'success' ] ); return json_encode(['response' => 'success']);
} }
function api_error($response) function api_error($response) {
{
return isset($response['error']); return isset($response['error']);
} }
function api_error_msg($response) function api_error_msg($response) {
{
return $response['error']['code'] . '<br> return $response['error']['code'] . '<br>
' . $response['error']['message'] . '<br> ' . $response['error']['message'] . '<br>
<button onclick="location.href = location.href;">'.getconstStr('Refresh').'</button>'; <button onclick="location.href = location.href;">' . getconstStr('Refresh') . '</button>';
} }
function setConfigResponse($response) function setConfigResponse($response) {
{
return json_decode($response, true); 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'; $tmppath = '/tmp';
if ($GitSource=='Github') { if ($GitSource == 'Github') {
// 从github下载对应tar.gz并解压 // 从github下载对应tar.gz并解压
$url = 'https://github.com/' . $auth . '/' . $project . '/tarball/' . urlencode($branch) . '/'; $url = 'https://github.com/' . $auth . '/' . $project . '/tarball/' . urlencode($branch) . '/';
} elseif ($GitSource=='HITGitlab') { } elseif ($GitSource == 'HITGitlab') {
$url = 'https://git.hit.edu.cn/' . $auth . '/' . $project . '/-/archive/' . urlencode($branch) . '/' . $project . '-' . urlencode($branch) . '.tar.gz'; $url = 'https://git.hit.edu.cn/' . $auth . '/' . $project . '/-/archive/' . urlencode($branch) . '/' . $project . '-' . urlencode($branch) . '.tar.gz';
} else return json_encode(['error'=>['code'=>'Git Source input Error!']]); } else return json_encode(['error' => ['code' => 'Git Source input Error!']]);
$tarfile = $tmppath . '/github.tar.gz'; $tarfile = $tmppath . '/github.tar.gz';
file_put_contents($tarfile, file_get_contents($url)); file_put_contents($tarfile, file_get_contents($url));
$phar = new PharData($tarfile); $phar = new PharData($tarfile);
$html = $phar->extractTo($tmppath, null, true);//路径 要解压的文件 是否覆盖 $html = $phar->extractTo($tmppath, null, true); //路径 要解压的文件 是否覆盖
unlink($tarfile); unlink($tarfile);
// 获取解压出的目录名 // 获取解压出的目录名
$outPath = findIndexPath($tmppath); $outPath = findIndexPath($tmppath);
if ($outPath=='') return '{"error":{"message":"no outpath"}}'; if ($outPath == '') return '{"error":{"message":"no outpath"}}';
$name = $project . 'CODE'; $name = $project . 'CODE';
mkdir($tmppath . "/" . $name, 0777, 1); mkdir($tmppath . "/" . $name, 0777, 1);
rename($outPath, $tmppath . "/" . $name . '/api'); rename($outPath, $tmppath . "/" . $name . '/api');
@ -425,31 +418,36 @@ function OnekeyUpate($GitSource = 'Github', $auth = 'qkqpttgf', $project = 'OneM
} }
function WaitFunction($deployid = '') { function WaitFunction($deployid = '') {
if ($buildId=='1') { if ($deployid == '1') {
$tmp['stat'] = 400; $tmp['stat'] = 400;
$tmp['body'] = 'id must provided.'; $tmp['body'] = 'id must provided.';
return $tmp; return $tmp;
} }
$header["Authorization"] = "Bearer " . getConfig('APIKey'); $token = getConfig('APIKey');
$header["Content-Type"] = "application/json"; if ($token != '') {
$url = "https://api.vercel.com/v13/deployments/" . $deployid; $header["Authorization"] = "Bearer " . $token;
$response = curl("GET", $url, "", $header); $header["Content-Type"] = "application/json";
if ($response['stat']==200) { $url = "https://api.vercel.com/v13/deployments/" . $deployid;
$result = json_decode($response['body'], true); $response = curl("GET", $url, "", $header);
if ($result['readyState']=="READY") return true; if ($response['stat'] == 200) {
if ($result['readyState']=="ERROR") return $response; $result = json_decode($response['body'], true);
return false; if ($result['readyState'] == "READY") return true;
if ($result['readyState'] == "ERROR") return $response;
return false;
} else {
$response['body'] .= $url;
return $response;
}
} else { } else {
$response['body'] .= $url; return false;
return $response;
} }
} }
function changeAuthKey() { function changeAuthKey() {
if ($_POST['APIKey']!='') { if ($_POST['APIKey'] != '') {
$APIKey = $_POST['APIKey']; $APIKey = $_POST['APIKey'];
$tmp['APIKey'] = $APIKey; $tmp['APIKey'] = $APIKey;
$response = setConfigResponse( setVercelConfig($tmp, getConfig('HerokuappId'), $APIKey) ); $response = setConfigResponse(setVercelConfig($tmp, getConfig('HerokuappId'), $APIKey));
if (api_error($response)) { if (api_error($response)) {
$html = api_error_msg($response); $html = api_error_msg($response);
$title = 'Error'; $title = 'Error';
@ -468,6 +466,7 @@ function changeAuthKey() {
} }
}, 1000); }, 1000);
</script>'; </script>';
$title = "Success";
return message($html, $title, 201, 1); return message($html, $title, 201, 1);
} }
} }
@ -492,6 +491,6 @@ function changeAuthKey() {
function smallfileupload($drive, $path) { function smallfileupload($drive, $path) {
if ($_FILES['file1']['error']) return output($_FILES['file1']['error'], 400); if ($_FILES['file1']['error']) return output($_FILES['file1']['error'], 400);
if ($_FILES['file1']['size']>4*1024*1024) return output('File too large', 400); if ($_FILES['file1']['size'] > 4 * 1024 * 1024) return output('File too large', 400);
return $drive->smallfileupload($path, $_FILES['file1']); return $drive->smallfileupload($path, $_FILES['file1']);
} }

View File

@ -21,7 +21,6 @@ function getpath()
if ($p>0) $path = substr($_SERVER['REQUEST_URI'], 0, $p); if ($p>0) $path = substr($_SERVER['REQUEST_URI'], 0, $p);
else $path = $_SERVER['REQUEST_URI']; else $path = $_SERVER['REQUEST_URI'];
$path = path_format( substr($path, strlen($_SERVER['base_path'])) ); $path = path_format( substr($path, strlen($_SERVER['base_path'])) );
$_SERVER['DOCUMENT_ROOT'] = '/var/task/user';
return $path; return $path;
} }

View File

@ -41,19 +41,22 @@
https://onemanager.qkqpttgf.repl.co/ 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 ### 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". > 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. > 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 ### Official
@ -87,7 +90,9 @@
--- ---
# Deploy to Tencent Serverless Cloud Function (SCF) # ~~Deploy to Tencent Serverless Cloud Function (SCF)~~
## SCF no longer free
### Official ### Official

View File

@ -43,19 +43,22 @@
https://onemanager.qkqpttgf.repl.co/ 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"。 > 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` 敲回车运行。 > 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" 按钮,右边会显示一个网页,你要在新窗口打开它来安装,不然不能登录。 > 3. 点上方的绿色 "Run" 按钮,右边会显示一个网页,你要在新窗口打开它来安装,不然不能登录。
--- ---
# 部署到 Heroku # ~~部署到 Heroku~~
## Dyno套餐不再免费
### 官网 ### 官网
@ -87,7 +90,9 @@
--- ---
# 部署到腾讯无服务器云函数 Serverless Cloud Function (SCF) # ~~部署到腾讯无服务器云函数 Serverless Cloud Function (SCF)~~
## SCF要收套餐费用了
### 官网 ### 官网

View File

@ -484,11 +484,11 @@
</body> </body>
<!--MdRequireStart--><link rel="stylesheet" href="https://unpkg.com/github-markdown-css@3.0.1/github-markdown.css"> <!--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--> <!--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> <!--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--> <!--IsFileStart--><!--IspdfFileStart--><script src="https://unpkg.com/pdfjs-dist@2.4.456/build/pdf.min.js"></script><!--IspdfFileEnd--><!--IsFileEnd-->
<!--ListEnd--> <!--ListEnd-->
<script type="text/javascript"> <script type="text/javascript">
@ -655,7 +655,6 @@
addVideos(["<!--FileEncodeUrl-->"]); addVideos(["<!--FileEncodeUrl-->"]);
<!--IsvideoFileEnd--> <!--IsvideoFileEnd-->
<!--IspdfFileStart--> <!--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'; pdfjsLib.GlobalWorkerOptions.workerSrc = 'https://unpkg.com/pdfjs-dist@2.4.456/build/pdf.worker.min.js';
var loadingTask = pdfjsLib.getDocument({ var loadingTask = pdfjsLib.getDocument({
url: "<!--FileDownUrl-->", url: "<!--FileDownUrl-->",
@ -1764,6 +1763,6 @@
<!--EncryptedEnd--> <!--EncryptedEnd-->
</script> </script>
<script src="https://www.unpkg.com/ionicons@6.0.1/dist/ionicons.js"></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--> <!--customScript-->
</html> </html>

View File

@ -510,11 +510,11 @@
</body> </body>
<!--ListStart--> <!--ListStart-->
<!--MdRequireStart--><link rel="stylesheet" href="//unpkg.zhimg.com/github-markdown-css@3.0.1/github-markdown.css"> <!--MdRequireStart--><link rel="stylesheet" href="https://unpkg.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--> <script type="text/javascript" src="?jsFile=marked.js"></script><!--MdRequireEnd-->
<!--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://cdn.bootcss.com/js-sha1/0.6.0/sha1.min.js"></script><!--AliyundriveUploadJsEnd--> <!--AliyundriveUploadJsStart--><script src="?jsFile=sha1.min.js"></script><!--AliyundriveUploadJsEnd-->
<!--IsFileStart--><!--IspdfFileStart--><script src="//cdn.bootcss.com/pdf.js/2.3.200/pdf.min.js"></script><!--IspdfFileEnd--><!--IsFileEnd--> <!--IsFileStart--><!--IspdfFileStart--><script src="https://unpkg.com/pdfjs-dist@2.4.456/build/pdf.min.js"></script><!--IspdfFileEnd--><!--IsFileEnd-->
<!--ListEnd--> <!--ListEnd-->
<style type="text/css"> <style type="text/css">
.markdown-body{font-size: 14px;} .markdown-body{font-size: 14px;}
@ -642,10 +642,10 @@
addVideos(['<!--FileEncodeUrl-->']); addVideos(['<!--FileEncodeUrl-->']);
<!--IsvideoFileEnd--> <!--IsvideoFileEnd-->
<!--IspdfFileStart--> <!--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({ var loadingTask = pdfjsLib.getDocument({
url: '<!--FileDownUrl-->', 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, cMapPacked: true,
rangeChunkSize: 65535 rangeChunkSize: 65535
}); });
@ -1698,6 +1698,6 @@
<!--EncryptedEnd--> <!--EncryptedEnd-->
</script> </script>
<script src="https://cdn.jsdelivr.net/npm/ionicons@5.5.2/dist/ionicons/ionicons.js"></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--> <!--customScript-->
</html> </html>

View File

@ -89,9 +89,10 @@
<span aria-hidden="true">&times;</span> <span aria-hidden="true">&times;</span>
</button> </button>
</div> </div>
<form action="?login=admin" method="post"> <form action="<!--IsPreview?-->login=admin" method="post" onsubmit="return sha1loginpass(this);">
<div class="modal-body"> <div class="modal-body">
<input class="form-control" id="login_input" name="password1" type="password" placeholder="<!--constStr@InputPassword-->"> <input class="form-control" id="login_input" name="password1" type="password" placeholder="<!--constStr@InputPassword-->">
<input name="timestamp" type="hidden">
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<input class="btn btn-primary" type="submit" value="<!--constStr@Login-->"></button> <input class="btn btn-primary" type="submit" value="<!--constStr@Login-->"></button>
@ -668,7 +669,7 @@ return false;
<!--IsFolderEnd--> <!--IsFolderEnd-->
<!--AdminEnd--> <!--AdminEnd-->
<!--LoginStart--> <!--LoginStart-->
<script src="?jsFile=sha1.min.js"></script>
<!--LoginEnd--> <!--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 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> <p class="text-center" style="color: rgba(247,247,249,0);"><!--FootStr--></p>
@ -676,11 +677,11 @@ return false;
</body> </body>
<!--ListStart--> <!--ListStart-->
<!--MdRequireStart--><link rel="stylesheet" href="//unpkg.zhimg.com/github-markdown-css@3.0.1/github-markdown.css"> <!--MdRequireStart--><link rel="stylesheet" href="https://unpkg.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--> <script type="text/javascript" src="?jsFile=marked.js"></script><!--MdRequireEnd-->
<!--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="//cdn.bootcdn.net/ajax/libs/js-sha1/0.6.0/sha1.min.js"></script><!--AliyundriveUploadJsEnd--> <!--AliyundriveUploadJsStart--><script src="?jsFile=sha1.min.js"></script><!--AliyundriveUploadJsEnd-->
<!--IsFileStart--><!--IspdfFileStart--><script src="//cdn.bootcss.com/pdf.js/2.3.200/pdf.min.js"></script><!--IspdfFileEnd--><!--IsFileEnd--> <!--IsFileStart--><!--IspdfFileStart--><script src="https://unpkg.com/pdfjs-dist@2.4.456/build/pdf.min.js"></script><!--IspdfFileEnd--><!--IsFileEnd-->
<!--ListEnd--> <!--ListEnd-->
<script type="text/javascript"> <script type="text/javascript">
function changelanguage(str) function changelanguage(str)
@ -802,10 +803,10 @@ return false;
addVideos(['<!--FileEncodeUrl-->']); addVideos(['<!--FileEncodeUrl-->']);
<!--IsvideoFileEnd--> <!--IsvideoFileEnd-->
<!--IspdfFileStart--> <!--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({ var loadingTask = pdfjsLib.getDocument({
url: '<!--FileDownUrl-->', 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, cMapPacked: true,
rangeChunkSize: 65535 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_div').style.top=(window.innerHeight-document.getElementById('login_div').offsetHeight)/2+document.body.scrollTop +'px';
document.getElementById('login_input').focus(); 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--> <!--LoginEnd-->
<!--EncryptedStart--> <!--EncryptedStart-->
document.getElementById('password1').focus(); document.getElementById('password1').focus();

View File

@ -145,8 +145,8 @@
</div> </div>
<!--IsofficeFileEnd--> <!--IsofficeFileEnd-->
<!--IsvideoFileStart--> <!--IsvideoFileStart-->
<link class="dplayer-css" rel="stylesheet" href="https://cdn.jsdelivr.net/npm/dplayer/dist/DPlayer.min.css"> <link class="dplayer-css" rel="stylesheet" href="https://fastly.jsdelivr.net/npm/dplayer/dist/DPlayer.min.css">
<script src="https://cdn.jsdelivr.net/npm/dplayer/dist/DPlayer.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/dplayer/1.27.0/DPlayer.min.js"></script>
<div class="nexmoe-item"> <div class="nexmoe-item">
<div class="mdui-center" id="dplayer"></div> <div class="mdui-center" id="dplayer"></div>
</div> </div>
@ -283,8 +283,8 @@
<!--ShowThumbnailsEnd--> <!--ShowThumbnailsEnd-->
<!--IsFolderEnd--> <!--IsFolderEnd-->
<!--ListEnd--> <!--ListEnd-->
<!--MdRequireStart--><link rel="stylesheet" href="//unpkg.zhimg.com/github-markdown-css@3.0.1/github-markdown.css"> <!--MdRequireStart--><link rel="stylesheet" href="https://unpkg.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--> <script type="text/javascript" src="?jsFile=marked.js"></script><!--MdRequireEnd-->
<script> <script>
<!--MorePageStart--> <!--MorePageStart-->
function nextpage(num) { function nextpage(num) {

View File

@ -374,8 +374,8 @@
<!--ListEnd--> <!--ListEnd-->
<script src="//cdn.jsdelivr.net/gh/mcstudios/glightbox/dist/js/glightbox.min.js"></script> <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> <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"> <!--MdRequireStart--><link rel="stylesheet" href="https://unpkg.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--> <script type="text/javascript" src="?jsFile=marked.js"></script><!--MdRequireEnd-->
<script> <script>
<!--MorePageStart--> <!--MorePageStart-->
function nextpage(num) { function nextpage(num) {

View File

@ -434,11 +434,11 @@
</body> </body>
<!--ListStart--> <!--ListStart-->
<!--MdRequireStart--><link rel="stylesheet" href="//unpkg.zhimg.com/github-markdown-css@3.0.1/github-markdown.css"> <!--MdRequireStart--><link rel="stylesheet" href="https://unpkg.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--> <script type="text/javascript" src="?jsFile=marked.js"></script><!--MdRequireEnd-->
<!--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://cdn.bootcss.com/js-sha1/0.6.0/sha1.min.js"></script><!--AliyundriveUploadJsEnd--> <!--AliyundriveUploadJsStart--><script src="?jsFile=sha1.min.js"></script><!--AliyundriveUploadJsEnd-->
<!--IsFileStart--><!--IspdfFileStart--><script src="//cdn.bootcss.com/pdf.js/2.3.200/pdf.min.js"></script><!--IspdfFileEnd--><!--IsFileEnd--> <!--IsFileStart--><!--IspdfFileStart--><script src="https://unpkg.com/pdfjs-dist@2.4.456/build/pdf.min.js"></script><!--IspdfFileEnd--><!--IsFileEnd-->
<!--ListEnd--> <!--ListEnd-->
<script type="text/javascript"> <script type="text/javascript">
function changelanguage(str) function changelanguage(str)
@ -564,10 +564,10 @@
addVideos(['<!--FileEncodeUrl-->']); addVideos(['<!--FileEncodeUrl-->']);
<!--IsvideoFileEnd--> <!--IsvideoFileEnd-->
<!--IspdfFileStart--> <!--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({ var loadingTask = pdfjsLib.getDocument({
url: '<!--FileDownUrl-->', 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, cMapPacked: true,
rangeChunkSize: 65535 rangeChunkSize: 65535
}); });
@ -1590,6 +1590,6 @@
<!--EncryptedEnd--> <!--EncryptedEnd-->
</script> </script>
<script src="https://cdn.jsdelivr.net/npm/ionicons@5.5.2/dist/ionicons/ionicons.js"></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--> <!--customScript-->
</html> </html>

View File

@ -457,8 +457,9 @@
<div style="margin:50px"> <div style="margin:50px">
<a onclick="operatediv_close('login')" class="operatediv_close"><!--constStr@Close--></a> <a onclick="operatediv_close('login')" class="operatediv_close"><!--constStr@Close--></a>
<center> <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 id="login_input" name="password1" type="password" placeholder="<!--constStr@InputPassword-->">
<input name="timestamp" type="hidden" value="">
<input type="submit" value="<!--constStr@Login-->"> <input type="submit" value="<!--constStr@Login-->">
</form> </form>
</center> </center>
@ -469,10 +470,10 @@
</body> </body>
<!--ListStart--> <!--ListStart-->
<!--MdRequireStart--><link rel="stylesheet" href="//unpkg.zhimg.com/github-markdown-css@3.0.1/github-markdown.css"> <!--MdRequireStart--><link rel="stylesheet" href="https://unpkg.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--> <script type="text/javascript" src="?jsFile=marked.js"></script><!--MdRequireEnd-->
<!--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-->
<!--IsFileStart--><!--IspdfFileStart--><script src="//cdn.bootcss.com/pdf.js/2.3.200/pdf.min.js"></script><!--IspdfFileEnd--><!--IsFileEnd--> <!--IsFileStart--><!--IspdfFileStart--><script src="https://unpkg.com/pdfjs-dist@2.4.456/build/pdf.min.js"></script><!--IspdfFileEnd--><!--IsFileEnd-->
<!--ListEnd--> <!--ListEnd-->
<script type="text/javascript"> <script type="text/javascript">
function changelanguage(str) function changelanguage(str)
@ -594,10 +595,10 @@
addVideos(['<!--FileDownUrl-->']); addVideos(['<!--FileDownUrl-->']);
<!--IsvideoFileEnd--> <!--IsvideoFileEnd-->
<!--IspdfFileStart--> <!--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({ var loadingTask = pdfjsLib.getDocument({
url: '<!--FileDownUrl-->', 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, cMapPacked: true,
rangeChunkSize: 65535 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_div').style.top=(window.innerHeight-document.getElementById('login_div').offsetHeight)/2+document.body.scrollTop +'px';
document.getElementById('login_input').focus(); 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--> <!--LoginEnd-->
<!--EncryptedStart--> <!--EncryptedStart-->
document.getElementById('password1').focus(); document.getElementById('password1').focus();
<!--EncryptedEnd--> <!--EncryptedEnd-->
</script> </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> <script src="https://cdn.jsdelivr.net/npm/ionicons@5.5.2/dist/ionicons/ionicons.js"></script>
<!--customScript--> <!--customScript-->
</html> </html>

File diff suppressed because one or more lines are too long

View File

@ -1,4 +1,4 @@
#!bash #!/bin/bash
if [ $# -eq 0 ]; then if [ $# -eq 0 ]; then
echo " echo "