Initial commit

This commit is contained in:
Rene 2023-01-18 19:54:26 +07:00
commit e03e697537
6 changed files with 502 additions and 0 deletions

2
.gitattributes vendored Normal file
View File

@ -0,0 +1,2 @@
# Auto detect text files and perform LF normalization
* text=auto

129
.gitignore vendored Normal file
View File

@ -0,0 +1,129 @@
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class
# C extensions
*.so
# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
pip-wheel-metadata/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST
# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec
# Installer logs
pip-log.txt
pip-delete-this-directory.txt
# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/
.pytest_cache/
# Translations
*.mo
*.pot
# Django stuff:
*.log
local_settings.py
db.sqlite3
db.sqlite3-journal
# Flask stuff:
instance/
.webassets-cache
# Scrapy stuff:
.scrapy
# Sphinx documentation
docs/_build/
# PyBuilder
target/
# Jupyter Notebook
.ipynb_checkpoints
# IPython
profile_default/
ipython_config.py
# pyenv
.python-version
# pipenv
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
# However, in case of collaboration, if having platform-specific dependencies or dependencies
# having no cross-platform support, pipenv may install dependencies that don't work, or not
# install all needed dependencies.
#Pipfile.lock
# PEP 582; used by e.g. github.com/David-OConnor/pyflow
__pypackages__/
# Celery stuff
celerybeat-schedule
celerybeat.pid
# SageMath parsed files
*.sage.py
# Environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/
# Spyder project settings
.spyderproject
.spyproject
# Rope project settings
.ropeproject
# mkdocs documentation
/site
# mypy
.mypy_cache/
.dmypy.json
dmypy.json
# Pyre type checker
.pyre/

30
GenshinCn.py Normal file
View File

@ -0,0 +1,30 @@
# -*- coding: utf-8 -*-
import sys
import json
import requests
import collections
if __name__ == "__main__":
with open('README.md','a+') as readme:
readme.seek(0)
sys.stdout = readme
stringContent=str(requests.get('https://sdk-static.mihoyo.com/hk4e_cn/mdk/launcher/api/resource?key=eYd89JmJ&launcher_id=18').content,'utf-8')
jsonFile=json.loads(readme.read().strip().strip('```'),object_pairs_hook=collections.OrderedDict)
changed = False
pre_download_game=None
try:
pre_download_game=json.loads(stringContent)['data']['pre_download_game']
except:
pre_download_game=""
if jsonFile['pre_download_game']!=pre_download_game:
jsonFile['pre_download_game']=pre_download_game
changed=True
latest=json.loads(stringContent)['data']['game']['latest']
if jsonFile['latest']!=latest:
deprecated_packages=jsonFile['deprecated_packages']
deprecated_packages.append(jsonFile['latest'])
jsonFile['latest']=latest
changed=True
if changed:
readme.seek(0)
readme.truncate()
print('```\n'+json.dumps(jsonFile,ensure_ascii=False,indent=4,separators=(',',':'))+'\n```')

141
GenshinGlobal.php Normal file
View File

@ -0,0 +1,141 @@
<?php
header('Content-Type: application/json');
$curl = curl_init();
curl_setopt_array(
$curl,
array(
CURLOPT_URL => "https://sdk-os-static.mihoyo.com/hk4e_global/mdk/launcher/api/resource?channel_id=1&key=gcStgarh&launcher_id=10&sub_channel_id=0",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
)
);
$ResponcURL = json_decode(curl_exec($curl), true);
curl_close($curl);
// PEMBATAS
$CekAPI = array();
if ($ResponcURL['message'] != "OK") {
$CekAPI['name'] = 'Genshin Impact Data Links';
$CekAPI['site'] = 'genshin.mihoyo.com';
$CekAPI['error'] = true;
$CekAPI['message'] = 'Error fetching from API';
print_r(json_encode($CekAPI));
} else {
$CekAPI['name'] = 'Genshin Impact Data Links';
$CekAPI['site'] = 'genshin.mihoyo.com';
$CekAPI['error'] = false;
$CekAPI['message'] = 'success';
// PEMBATAS
$DataGameTerbaru = array(
'version' => $ResponcURL['data']['game']['latest']['version'],
'path' => $ResponcURL['data']['game']['latest']['path'],
'md5' => $ResponcURL['data']['game']['latest']['md5'],
);
$DataSuaraTerbaru = array();
foreach ($ResponcURL['data']['game']['latest']['voice_packs'] as $k => $v) {
$DataSuaraTerbaru['voice_packs'][$k]['language'] = $ResponcURL['data']['game']['latest']['voice_packs'][$k]['language'];
$DataSuaraTerbaru['voice_packs'][$k]['name'] = $ResponcURL['data']['game']['latest']['voice_packs'][$k]['name'];
$DataSuaraTerbaru['voice_packs'][$k]['path'] = $ResponcURL['data']['game']['latest']['voice_packs'][$k]['path'];
$DataSuaraTerbaru['voice_packs'][$k]['md5'] = $ResponcURL['data']['game']['latest']['voice_packs'][$k]['md5'];
};
$GabungGameSuaraTerbaru = array(
'latest' => array_merge($DataGameTerbaru, $DataSuaraTerbaru),
);
$DataUpgradeTerbaru = array();
foreach ($ResponcURL['data']['game']['diffs'] as $k0 => $v0) {
$DataUpgradeTerbaru[$k0]['version'] = $ResponcURL['data']['game']['diffs'][$k0]['version'];
$DataUpgradeTerbaru[$k0]['name'] = $ResponcURL['data']['game']['diffs'][$k0]['name'];
$DataUpgradeTerbaru[$k0]['path'] = $ResponcURL['data']['game']['diffs'][$k0]['path'];
$DataUpgradeTerbaru[$k0]['md5'] = $ResponcURL['data']['game']['diffs'][$k0]['md5'];
foreach ($ResponcURL['data']['game']['diffs'][$k0]['voice_packs'] as $k1 => $v1) {
$DataUpgradeTerbaru[$k0]['voice_packs'][$k1]['language'] = $ResponcURL['data']['game']['diffs'][$k0]['voice_packs'][$k1]['language'];
$DataUpgradeTerbaru[$k0]['voice_packs'][$k1]['name'] = $ResponcURL['data']['game']['diffs'][$k0]['voice_packs'][$k1]['name'];
$DataUpgradeTerbaru[$k0]['voice_packs'][$k1]['path'] = $ResponcURL['data']['game']['diffs'][$k0]['voice_packs'][$k1]['path'];
$DataUpgradeTerbaru[$k0]['voice_packs'][$k1]['md5'] = $ResponcURL['data']['game']['diffs'][$k0]['voice_packs'][$k1]['md5'];
}
}
$GabungDataUpgradeTerbaru = array(
'diffs' => array_merge($DataUpgradeTerbaru),
);
$GabungDataUpgradeTerbaru = array(
'game' => array_merge($GabungGameSuaraTerbaru, $GabungDataUpgradeTerbaru)
);
// PEMBATAS
$DataPlugin = array();
foreach ($ResponcURL['data']['plugin']['plugins'] as $k => $v) {
$DataPlugin['plugins'][$k]['name'] = $ResponcURL['data']['plugin']['plugins'][$k]['name'];
$DataPlugin['plugins'][$k]['path'] = $ResponcURL['data']['plugin']['plugins'][$k]['path'];
$DataPlugin['plugins'][$k]['md5'] = $ResponcURL['data']['plugin']['plugins'][$k]['md5'];
}
$GabungPlugin = array(
'plugin' => $DataPlugin
);
// PEMBATAS
$DataGamePraUnduh = array(
'version' => $ResponcURL['data']['pre_download_game']['latest']['version'],
'path' => $ResponcURL['data']['pre_download_game']['latest']['path'],
'md5' => $ResponcURL['data']['pre_download_game']['latest']['md5'],
);
$DataSuaraPraUnduh = array();
foreach ($ResponcURL['data']['pre_download_game']['latest']['voice_packs'] as $k => $v) {
$DataSuaraPraUnduh['voice_packs'][$k]['language'] = $ResponcURL['data']['pre_download_game']['latest']['voice_packs'][$k]['language'];
$DataSuaraPraUnduh['voice_packs'][$k]['name'] = $ResponcURL['data']['pre_download_game']['latest']['voice_packs'][$k]['name'];
$DataSuaraPraUnduh['voice_packs'][$k]['path'] = $ResponcURL['data']['pre_download_game']['latest']['voice_packs'][$k]['path'];
$DataSuaraPraUnduh['voice_packs'][$k]['md5'] = $ResponcURL['data']['pre_download_game']['latest']['voice_packs'][$k]['md5'];
};
$DataPraUnduh = array();
foreach ($ResponcURL['data']['pre_download_game']['diffs'] as $k0 => $v0) {
$DataPraUnduh[$k0]['version'] = $ResponcURL['data']['pre_download_game']['diffs'][$k0]['version'];
$DataPraUnduh[$k0]['name'] = $ResponcURL['data']['pre_download_game']['diffs'][$k0]['name'];
$DataPraUnduh[$k0]['path'] = $ResponcURL['data']['pre_download_game']['diffs'][$k0]['path'];
$DataPraUnduh[$k0]['md5'] = $ResponcURL['data']['pre_download_game']['diffs'][$k0]['md5'];
foreach ($ResponcURL['data']['pre_download_game']['diffs'][$k0]['voice_packs'] as $k1 => $v1) {
$DataPraUnduh[$k0]['voice_packs'][$k1]['language'] = $ResponcURL['data']['pre_download_game']['diffs'][$k0]['voice_packs'][$k1]['language'];
$DataPraUnduh[$k0]['voice_packs'][$k1]['name'] = $ResponcURL['data']['pre_download_game']['diffs'][$k0]['voice_packs'][$k1]['name'];
$DataPraUnduh[$k0]['voice_packs'][$k1]['path'] = $ResponcURL['data']['pre_download_game']['diffs'][$k0]['voice_packs'][$k1]['path'];
$DataPraUnduh[$k0]['voice_packs'][$k1]['md5'] = $ResponcURL['data']['pre_download_game']['diffs'][$k0]['voice_packs'][$k1]['md5'];
}
}
$GabungDataPraUnduh = array(
'diffs' => array_merge($DataPraUnduh),
);
$GabungGameSuaraPraUnduh = array(
'pre_download_game' => array_merge($DataGamePraUnduh, $DataSuaraPraUnduh, $GabungDataPraUnduh),
);
// PEMBATAS
$GabungSemua = array(
'data' => array_merge($GabungDataUpgradeTerbaru, $GabungPlugin, $GabungGameSuaraPraUnduh),
);
// PEMBATAS
$Hasil = array_merge($GabungSemua);
print_r(json_encode($Hasil));
}

199
README.md Normal file
View File

@ -0,0 +1,199 @@
```
{
"pre_download_game":null,
"latest":{
"name":"",
"version":"3.4.0",
"path":"https://autopatchcn.yuanshen.com/client_app/download/pc_zip/20230109134623_pLhUB4LFubdudxQa/YuanShen_3.4.0.zip",
"size":"95809731298",
"md5":"a04c6e422656a44924bad95f8648cf9e",
"entry":"YuanShen.exe",
"voice_packs":[
{
"language":"zh-cn",
"name":"",
"path":"https://autopatchcn.yuanshen.com/client_app/download/pc_zip/20230109134623_pLhUB4LFubdudxQa/Audio_Chinese_3.4.0.zip",
"size":"16997081416",
"md5":"56dce864d6eb4780fd2f055263b1ca39",
"package_size":"8493297828"
},
{
"language":"en-us",
"name":"",
"path":"https://autopatchcn.yuanshen.com/client_app/download/pc_zip/20230109134623_pLhUB4LFubdudxQa/Audio_English(US)_3.4.0.zip",
"size":"19423737938",
"md5":"06ca7f33819fbe54f84a3327a927e92d",
"package_size":"9706626089"
},
{
"language":"ja-jp",
"name":"",
"path":"https://autopatchcn.yuanshen.com/client_app/download/pc_zip/20230109134623_pLhUB4LFubdudxQa/Audio_Japanese_3.4.0.zip",
"size":"21764495116",
"md5":"ebd0a2fbeff04a2a36ad9d219c054a91",
"package_size":"10877004678"
},
{
"language":"ko-kr",
"name":"",
"path":"https://autopatchcn.yuanshen.com/client_app/download/pc_zip/20230109134623_pLhUB4LFubdudxQa/Audio_Korean_3.4.0.zip",
"size":"16674958870",
"md5":"c93a3cd67024cdc061b87a8c4d5636e6",
"package_size":"8332236555"
}
],
"decompressed_path":"https://autopatchcn.yuanshen.com/client_app/download/pc_zip/20230109134623_pLhUB4LFubdudxQa/ScatteredFiles",
"segments":[
{
"path":"https://autopatchcn.yuanshen.com/client_app/download/pc_zip/20230109134623_pLhUB4LFubdudxQa/YuanShen_3.4.0.zip.001",
"md5":"c6dffa721b9610a84652258b66402475"
},
{
"path":"https://autopatchcn.yuanshen.com/client_app/download/pc_zip/20230109134623_pLhUB4LFubdudxQa/YuanShen_3.4.0.zip.002",
"md5":"fbd1f0dfac83ca48fda7cf49ccb40052"
},
{
"path":"https://autopatchcn.yuanshen.com/client_app/download/pc_zip/20230109134623_pLhUB4LFubdudxQa/YuanShen_3.4.0.zip.003",
"md5":"157aced7e87c852a5af4fc617fd85f55"
},
{
"path":"https://autopatchcn.yuanshen.com/client_app/download/pc_zip/20230109134623_pLhUB4LFubdudxQa/YuanShen_3.4.0.zip.004",
"md5":"22a2d144a7cc4af59aa401f3c0eff733"
},
{
"path":"https://autopatchcn.yuanshen.com/client_app/download/pc_zip/20230109134623_pLhUB4LFubdudxQa/YuanShen_3.4.0.zip.005",
"md5":"10129a5815eadf8a4571b8652c51c092"
}
],
"package_size":"47899622769"
},
"deprecated_packages":[
{
"name":"",
"version":"1.0.0",
"path":"https://autopatchcn.yuanshen.com/client_app/pc_mihoyo/04874b5ed14055383219644f40b514ca/YuanShen_1.0.0.zip",
"md5":"7D1C0778A7EB4C99F2C19266629E1EB2"
},
{
"name":"",
"version":"1.0.1",
"path":"https://autopatchcn.yuanshen.com/client_app/pc_mihoyo/20201013_f0953d8d130df56f/YuanShen_1.0.1.zip",
"md5":"9F0E001B07BC45F5590190B9FAC942D4"
},
{
"name":"",
"version":"1.1.0",
"path":"https://autopatchcn.yuanshen.com/client_app/pc_mihoyo/20201111_bc67429d0c160eff/YuanShen_1.1.0.zip",
"md5":"16D06247FBDE450FCBFAC6312DAF7B3A"
},
{
"name":"",
"version":"1.2.0",
"path":"https://autopatchcn.yuanshen.com/client_app/pc_mihoyo/20201223_267c0ad2673e87a2/YuanShen_1.2.0.zip",
"md5":"D84EE6B56496F9740274C3B729CB6DBD"
},
{
"name":"",
"version":"1.3.0",
"path":"https://autopatchcn.yuanshen.com/client_app/pc_mihoyo/20210203_e24bc564fc91a013/YuanShen_1.3.0.zip",
"md5":"F7658D1099E5FBDC586BF7F1E7876EC6"
},
{
"name":"",
"version":"1.3.2",
"path":"https://autopatchcn.yuanshen.com/client_app/pc_mihoyo/20210210_78f8a53c55c370fc/YuanShen_1.3.2.zip",
"md5":"802A54E3FFE58377388F0E890DB56540"
},
{
"name":"",
"version":"1.4.0",
"path":"https://autopatchcn.yuanshen.com/client_app/pc_mihoyo/20210317_67c8f1002bb26672/YuanShen_1.4.0.zip",
"md5":"D8FBE65C328069F7981A3A497C53A5A3"
},
{
"name":"",
"version":"1.5.0",
"path":"https://autopatchcn.yuanshen.com/client_app/pc_mihoyo/20210428_4f4c4896195a34be/YuanShen_1.5.0.zip",
"md5":"83E9034FF0E4AFD2EB212E885990AF7B"
},
{
"name":"",
"version":"1.5.1",
"path":"https://autopatchcn.yuanshen.com/client_app/pc_mihoyo/20210430_ecaaf3c411f5f79f/YuanShen_1.5.1.zip",
"size":"27380416512",
"md5":"19C6C706F35A06744896D756B0766AB8",
"entry":"YuanShen.exe",
"voice_packs":[
{
"language":"zh-cn",
"name":"Audio_Chinese_1.5.1.zip",
"path":"https://autopatchcn.yuanshen.com/client_app/pc_mihoyo/20210430_ecaaf3c411f5f79f/Audio_Chinese_1.5.1.zip",
"size":"5905580032",
"md5":"F9329043CBD673D0BA3A4F982047EF5A"
},
{
"language":"en-us",
"name":"Audio_English(US)_1.5.1.zip",
"path":"https://autopatchcn.yuanshen.com/client_app/pc_mihoyo/20210430_ecaaf3c411f5f79f/Audio_English(US)_1.5.1.zip",
"size":"6442450944",
"md5":"9E2F8CC38925D69A25B602CD5EE67A00"
},
{
"language":"ja-jp",
"name":"Audio_Japanese_1.5.1.zip",
"path":"https://autopatchcn.yuanshen.com/client_app/pc_mihoyo/20210430_ecaaf3c411f5f79f/Audio_Japanese_1.5.1.zip",
"size":"6657199308",
"md5":"75B99865DC961E41AE4256E781F47B34"
},
{
"language":"ko-kr",
"name":"Audio_Korean_1.5.1.zip",
"path":"https://autopatchcn.yuanshen.com/client_app/pc_mihoyo/20210430_ecaaf3c411f5f79f/Audio_Korean_1.5.1.zip",
"size":"5583457484",
"md5":"00285C3078007FE88C889807154955D6"
}
],
"decompressed_path":""
},
{
"name":"",
"version":"1.6.0",
"path":"https://autopatchcn.yuanshen.com/client_app/pc_mihoyo/20210609_cda4068353f840c3/YuanShen_1.6.0.zip",
"size":"30172145254",
"md5":"8607C66D55B51E7AB2F94709E0C9C771",
"entry":"YuanShen.exe",
"voice_packs":[
{
"language":"zh-cn",
"name":"Audio_Chinese_1.6.0.zip",
"path":"https://autopatchcn.yuanshen.com/client_app/pc_mihoyo/20210609_cda4068353f840c3/Audio_Chinese_1.6.0.zip",
"size":"6979321856",
"md5":"83D69368B7E4427F4CCB06E199C46F47"
},
{
"language":"en-us",
"name":"Audio_English(US)_1.6.0.zip",
"path":"https://autopatchcn.yuanshen.com/client_app/pc_mihoyo/20210609_cda4068353f840c3/Audio_English(US)_1.6.0.zip",
"size":"7516192768",
"md5":"A10EAAB588EDF8FCABA6C727473E1DDD"
},
{
"language":"ja-jp",
"name":"Audio_Japanese_1.6.0.zip",
"path":"https://autopatchcn.yuanshen.com/client_app/pc_mihoyo/20210609_cda4068353f840c3/Audio_Japanese_1.6.0.zip",
"size":"8053063680",
"md5":"9D20DC6E8071AED6D558A3827F6A3637"
},
{
"language":"ko-kr",
"name":"Audio_Korean_1.6.0.zip",
"path":"https://autopatchcn.yuanshen.com/client_app/pc_mihoyo/20210609_cda4068353f840c3/Audio_Korean_1.6.0.zip",
"size":"6657199308",
"md5":"03A78F6BA6451ABFDE5FCC41C41743E0"
}
],
"decompressed_path":""
}
]
}
```

1
requirements.txt Normal file
View File

@ -0,0 +1 @@
requests