update index.php.
This commit is contained in:
parent
eff55d2adf
commit
d78860fe69
85
index.php
85
index.php
@ -1,8 +1,9 @@
|
||||
<?php
|
||||
ini_set('user_agent', 'GeMCAPI/4.5.0 (GeMC API Sync 1.5.0;Release)');
|
||||
$active=array('mojang/launchermeta/mc/game/version_manifest.json','forge/last');
|
||||
$type=array('.com','.net');
|
||||
//[0]:mojang,[1]:fabricmc
|
||||
error_reporting(0);
|
||||
ini_set('user_agent', 'GeMCAPI/5.0.0 (GeMC API Sync 5.0.0;Release)');
|
||||
$active=array('mojang/launchermeta/mc/game/version_manifest.json','forge/last','optifine/versionlist','liteloader/dl/versions/versions.json');
|
||||
$type=array('.com','.net','.com','.moe');
|
||||
//[0]:mojang,[1]:fabricmc,[2]:liteloader,[3]:authlib-injector
|
||||
function url_exists($url){
|
||||
$opts = array(
|
||||
'http'=>array(
|
||||
@ -12,6 +13,9 @@ function url_exists($url){
|
||||
$context = stream_context_create($opts);
|
||||
return @file_get_contents($url, false, $context);
|
||||
}
|
||||
function download_file($url,$file,$other){//下载文件
|
||||
system('python download.py --url "'.$url.'" --file "'.$file.'" --other "'.$other.'"');
|
||||
}
|
||||
function get_main_domain($file){
|
||||
$str=preg_replace('/^[^\/]*\//is','',$file);
|
||||
$str2=str_replace('/'.$str,'',$file);
|
||||
@ -39,6 +43,10 @@ function get_online_domain($file,$id){
|
||||
return $str;
|
||||
}
|
||||
function check_file_update($file,$dir,$url,$time){
|
||||
global $replace_mode;
|
||||
if($replace_mode==true){
|
||||
$file=str_replace('?','/',$file);
|
||||
}
|
||||
header('Content-Disposition: attachment; filename="'.basename($file).'"');
|
||||
$time=time()-@filemtime($file);
|
||||
if($time<$time){//检查文件是否超出过期期限(1天,86400秒)
|
||||
@ -49,9 +57,7 @@ function check_file_update($file,$dir,$url,$time){
|
||||
echo file_get_contents($file);
|
||||
}else{
|
||||
echo file_get_contents($url.'/'.str_replace($dir,'',$file));
|
||||
$jsonwrite = fopen($file, "w") or die('{"wikis":"https://gitee.com/ghink/gemcapi/wikis","code":502,"server_time":"'.time().'"}');
|
||||
fwrite($jsonwrite,file_get_contents($url.'/'.str_replace($dir,'',$file)));
|
||||
fclose($jsonwrite);
|
||||
download_file($url.'/'.str_replace($dir,'',$file),$file,'');
|
||||
}
|
||||
}else{
|
||||
echo file_get_contents($file);
|
||||
@ -59,6 +65,10 @@ function check_file_update($file,$dir,$url,$time){
|
||||
}
|
||||
}
|
||||
function check_file_update_json($file,$dir,$url,$time){
|
||||
global $replace_mode;
|
||||
if($replace_mode==true){
|
||||
$file=str_replace('?','/',$file);
|
||||
}
|
||||
header('Content-Disposition: attachment; filename="'.basename($file).'"');
|
||||
$time=time()-@filemtime($file.'/index.json');
|
||||
if($time<$time){//检查文件是否超出过期期限(1天,86400秒)
|
||||
@ -69,9 +79,7 @@ function check_file_update_json($file,$dir,$url,$time){
|
||||
echo file_get_contents($file);
|
||||
}else{
|
||||
echo file_get_contents($url.'/'.str_replace($dir,'',$file));
|
||||
$jsonwrite = fopen($file.'/index.json', "w") or die('{"wikis":"https://gitee.com/ghink/gemcapi/wikis","code":502,"server_time":"'.time().'"}');
|
||||
fwrite($jsonwrite,file_get_contents($url.'/'.str_replace($dir,'',$file)));
|
||||
fclose($jsonwrite);
|
||||
download_file($url.'/'.str_replace($dir,'',$file),$file.'/index.json','');
|
||||
}
|
||||
}else{
|
||||
echo file_get_contents($file.'/index.json');
|
||||
@ -79,6 +87,10 @@ function check_file_update_json($file,$dir,$url,$time){
|
||||
}
|
||||
}
|
||||
function check_file_update_adv($file,$url,$check_url){
|
||||
global $replace_mode;
|
||||
if($replace_mode==true){
|
||||
$file=str_replace('?','/',$file);
|
||||
}
|
||||
header('Content-Disposition: attachment; filename="'.basename($file).'"');
|
||||
$time=time()-@filemtime($file);
|
||||
if($time<86400){//检查文件是否超出过期期限(1天,86400秒)
|
||||
@ -89,29 +101,29 @@ function check_file_update_adv($file,$url,$check_url){
|
||||
echo file_get_contents($file);
|
||||
}else{
|
||||
echo @file_get_contents($url);
|
||||
|
||||
$jsonwrite = fopen($file, "w") or die('{"wikis":"https://gitee.com/ghink/gemcapi/wikis","code":502,"server_time":"'.time().'"}');
|
||||
fwrite($jsonwrite,file_get_contents($url));
|
||||
fclose($jsonwrite);
|
||||
download_file($url,$file,'');
|
||||
}
|
||||
}else{
|
||||
echo file_get_contents($file);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function download_file($url,$file,$other){//下载文件
|
||||
system('python download.py --url "'.$url.'" --file "'.$file.'" --other "'.$other.'"');
|
||||
if(strstr($_GET['path'],'liteloader')!=False){//替换掉Literloader源中的特殊字符
|
||||
$replace_mode=true;
|
||||
}
|
||||
if(get_main_domain($_GET['path'])=='mojang'){//分配顶级域名尾
|
||||
$id=0;
|
||||
}elseif(get_main_domain($_GET['path'])=='fabricmc'){
|
||||
$id=1;
|
||||
}elseif(get_main_domain($_GET['path'])=='liteloader'){
|
||||
$id=2;
|
||||
}elseif(get_main_domain($_GET['path'])=='yushi'){
|
||||
$id=3;
|
||||
}
|
||||
if($_GET['error']!=""){
|
||||
echo '{"wikis":"https://gitee.com/ghink/gemcapi/wikis","code":'.$_GET['error'].',"server_time":"'.time().'"}';
|
||||
echo '{"wikis":"https://gitee.com/ghink/gemcapi/wikis","code":'.$_GET['error'].',"server_time":'.time().'}';
|
||||
}elseif($_GET['path']==""){
|
||||
echo '{"wikis":"https://gitee.com/ghink/gemcapi/wikis","code":200,"server_time":"'.time().'"}';
|
||||
echo '{"wikis":"https://gitee.com/ghink/gemcapi/wikis","code":200,"server_time":'.time().'}';
|
||||
}else{
|
||||
if(is_file($_GET['path'])){
|
||||
//文件存在
|
||||
@ -124,6 +136,14 @@ if($_GET['error']!=""){
|
||||
if(strstr($_GET['path'],'forge/last')!=False){
|
||||
check_file_update_adv('forge/last','https://download.mcbbs.net/forge/last','https://download.mcbbs.net/maven/net/minecraftforge/forge/1.7.10-10.13.0.1151/forge-1.7.10-10.13.0.1151-installer.jar');
|
||||
}
|
||||
}elseif(strstr($_GET['path'],'optifine/')!=False){//目录分组
|
||||
if(strstr($_GET['path'],'optifine/versionlist')!=False){
|
||||
check_file_update_adv('optifine/versionlist','https://download.mcbbs.net/optifine/versionlist','https://download.mcbbs.net/maven/net/minecraftforge/forge/1.7.10-10.13.0.1151/forge-1.7.10-10.13.0.1151-installer.jar');
|
||||
}
|
||||
}elseif(strstr($_GET['path'],'liteloader/')!=False){//目录分组
|
||||
if(strstr($_GET['path'],'liteloader/dl/versions')!=False){
|
||||
check_file_update_adv('liteloader/dl/versions/versions.json','http://dl.liteloader.com/versions/versions.json','http://dl.liteloader.com/versions/versions.json');
|
||||
}
|
||||
}
|
||||
}else{//无需频繁更新的文件
|
||||
if(@file_get_contents(get_online_url($_GET['path'],$id)=="")){
|
||||
@ -136,6 +156,9 @@ if($_GET['error']!=""){
|
||||
//目录存在
|
||||
if(strstr($_GET['path'],'forge/minecraft')!=False){//特殊目录返回
|
||||
check_file_update_adv('forge/minecraft/index.json','https://download.mcbbs.net/forge/minecraft','https://download.mcbbs.net/maven/net/minecraftforge/forge/1.7.10-10.13.0.1151/forge-1.7.10-10.13.0.1151-installer.jar');
|
||||
}elseif(strstr($_GET['path'],'yushi/authlib-injector')!=False){
|
||||
check_file_update_adv('yushi/authlib-injector/index.json','https://authlib-injector.yushi.moe','https://download.mcbbs.net/maven/net/minecraftforge/forge/1.7.10-10.13.0.1151/forge-1.7.10-10.13.0.1151-installer.jar');
|
||||
//此处暂时使用bmclapi源检测文件欺骗检测authlib-injector,原因见底部注释
|
||||
}elseif(is_file($_GET['path'].'/index.json')){
|
||||
check_file_update($_GET['path'],get_main_domain($_GET['path']).'/'.get_sub_domain($_GET['path']).'/',get_online_domain($_GET['path'],$id),86400);
|
||||
}else{
|
||||
@ -160,9 +183,24 @@ if($_GET['error']!=""){
|
||||
echo file_get_contents($_GET['path']);
|
||||
}
|
||||
}else{
|
||||
echo '{"wikis":"https://gitee.com/ghink/gemcapi/wikis","code":404,"server_time":"'.time().'"}';
|
||||
echo '{"wikis":"https://gitee.com/ghink/gemcapi/wikis","code":404,"server_time":'.time().'}';
|
||||
header('HTTP/1.1 404 Not Found');
|
||||
}
|
||||
}elseif(strstr($_GET['path'],'optifine/')!=False){//Optifine同步
|
||||
if($_GET['path']=='optifine'){
|
||||
echo '{"wikis":"https://gitee.com/ghink/gemcapi/wikis","code":404,"server_time":'.time().'}';
|
||||
header('HTTP/1.1 404 Not Found');
|
||||
}else{
|
||||
check_file_update_adv($_GET['path'],'https://download.mcbbs.net/'.$_GET['path'],'https://download.mcbbs.net/maven/net/minecraftforge/forge/1.7.10-10.13.0.1151/forge-1.7.10-10.13.0.1151-installer.jar');
|
||||
}
|
||||
}elseif(strstr($_GET['path'],'liteloader/')!=False){//Liteloader同步
|
||||
if(strstr($_GET['path'],'liteloader/list')!=False){
|
||||
check_file_update_adv(str_replace('?','/',$_GET['path']).'/index.json','https://download.mcbbs.net/'.$_GET['path'],'https://download.mcbbs.net/maven/net/minecraftforge/forge/1.7.10-10.13.0.1151/forge-1.7.10-10.13.0.1151-installer.jar');
|
||||
}elseif(strstr($_GET['path'],'liteloader/download')!=False){
|
||||
check_file_update_advstr_replace('?','/',($_GET['path']).'/index.jar','https://download.mcbbs.net/'.$_GET['path'],'https://download.mcbbs.net/maven/net/minecraftforge/forge/1.7.10-10.13.0.1151/forge-1.7.10-10.13.0.1151-installer.jar');
|
||||
}else{
|
||||
check_file_update_adv($_GET['path'],get_online_url($_GET['path'],$id),'http://dl.liteloader.com/versions/versions.json');
|
||||
}
|
||||
}else{
|
||||
if(url_exists(get_online_url($_GET['path'],$id))){
|
||||
if(@file_get_contents(get_online_url($_GET['path'],$id)=="")){
|
||||
@ -174,8 +212,13 @@ if($_GET['error']!=""){
|
||||
header('Content-Disposition: attachment; filename="'.basename($_GET['path']).'"');
|
||||
echo file_get_contents($_GET['path'].'/index.json');
|
||||
}
|
||||
}elseif(get_main_domain($_GET['path'])=='yushi'){
|
||||
//暂不明确为何authlib-injector的服务器即使存活文件存在也会被判定为不存在
|
||||
download_file(get_online_url($_GET['path'],$id),$_GET['path'].'/index.json','');
|
||||
header('Content-Disposition: attachment; filename="'.basename($_GET['path']).'"');
|
||||
echo file_get_contents($_GET['path'].'/index.json');
|
||||
}else{
|
||||
echo '{"wikis":"https://gitee.com/ghink/gemcapi/wikis","code":404,"server_time":"'.time().'"}';
|
||||
echo '{"wikis":"https://gitee.com/ghink/gemcapi/wikis","code":404,"server_time":'.time().'}';
|
||||
header('HTTP/1.1 404 Not Found');
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user