82 lines
2.9 KiB
TypeScript
82 lines
2.9 KiB
TypeScript
import * as crc from 'crc';
|
|
import { md5 } from './sdkUtil';
|
|
|
|
const BATTLE_CLASS_MOD = 100; // 存档分类模数
|
|
const CDN_URL_PREFIX_SQ = 'https://download-sgzzyz.yev242.com'; // sq cdn 服务器地址前缀
|
|
const CDN_URL_PREFIX_ZYZ = 'http://zyz-download.trgame.cn'; // 公司下载服务器地址前缀
|
|
const CDN_URL_PREFIX_YJZ = 'https://yjz-cdn.yev242.com'; // 公司下载服务器地址前缀
|
|
|
|
// 将字符串 crc32 处理后取模,以将随机字符串分组
|
|
function modStr(str: string, mod: number) {
|
|
if (typeof(str) !== 'string' || typeof(mod) !== 'number') return undefined;
|
|
return crc.crc32(str) % mod;
|
|
}
|
|
|
|
function getPrefixByEnv(env: string) {
|
|
switch (env) {
|
|
case 'dev':
|
|
case 'monitor':
|
|
case 'alpha':
|
|
case 'stable':
|
|
case 'distribute':
|
|
return CDN_URL_PREFIX_ZYZ;
|
|
case 'sq1':
|
|
case 'sq4':
|
|
case 'sq7':
|
|
case 'sq9':
|
|
return CDN_URL_PREFIX_SQ;
|
|
case 'zy1':
|
|
return CDN_URL_PREFIX_YJZ;
|
|
default:
|
|
}
|
|
}
|
|
|
|
export function getLocalRplUrl(roleId: string, warType: number, battleCode: string) {
|
|
const battleClass = modStr(battleCode, BATTLE_CLASS_MOD); // 将存档文件按一定规则分批保存
|
|
const writePath = `/zyz_logs/rpls/${roleId}/${warType}/${battleClass}`;
|
|
return writePath;
|
|
}
|
|
|
|
export function getRemoteRplUrl(env: string, sshHost: string, roleId: string, warType: number, battleCode: string) {
|
|
const battleClass = modStr(battleCode, BATTLE_CLASS_MOD); // 将存档文件按一定规则分批保存
|
|
const rplUrl = `${getPrefixByEnv(env)}/rpls/${md5(sshHost).substring(0, 4)}/${roleId}/${warType}/${battleClass}`;
|
|
return rplUrl;
|
|
}
|
|
|
|
export function getRemoteRplPrefix(env: string) {
|
|
const rplUrl = `${getPrefixByEnv(env)}/rpls/${md5(env).substring(0, 4)}`;
|
|
return rplUrl;
|
|
}
|
|
|
|
export function getRemoteRplFilePath(remoteUrl: string, roleId: string, warType: number, battleCode: string) {
|
|
if(remoteUrl) return remoteUrl;
|
|
const battleClass = modStr(battleCode, BATTLE_CLASS_MOD); // 将存档文件按一定规则分批保存
|
|
const rplUrl = `/${roleId}/${warType}/${battleClass}/${battleCode}.bin`;
|
|
return rplUrl;
|
|
}
|
|
|
|
export function getLocalQrCodeUrl(curEnv: string, env: string) {
|
|
if(curEnv == 'development') {
|
|
return './img'
|
|
} else {
|
|
return `/zyz_logs/img/${md5(env).substring(0, 4)}/qrcode`;
|
|
}
|
|
}
|
|
|
|
export function getRemoteQrCodeUrl(env: string, fileName: string) {
|
|
const rplUrl = `${getPrefixByEnv(env)}/img/${md5(env).substring(0, 4)}/qrcode/` + fileName;
|
|
return rplUrl;
|
|
}
|
|
|
|
export function getLocalImgUrl(curEnv: string, type: string) {
|
|
if(curEnv == 'development') {
|
|
return './img'
|
|
} else {
|
|
return `/zyz_logs/img/${type}`;
|
|
}
|
|
}
|
|
|
|
export function getRemoteImgUrl(curEnv: string, fileName: string, type: string) {
|
|
const rplUrl = `${getPrefixByEnv(curEnv)}/img/${type}/` + fileName;
|
|
return rplUrl;
|
|
} |