Files
ZYZ/shared/pubUtils/battleUtils.ts
2023-04-18 11:35:34 +08:00

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;
}