mirror of https://github.com/lhie1/Rules.git
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
87 lines
2.3 KiB
JavaScript
87 lines
2.3 KiB
JavaScript
let githubRawReg = /^https:\/\/raw\.githubusercontent\.com\/(.*?)\/(.*?)\/master\/(.*?)$/
|
|
|
|
const FILE = 'data.js'
|
|
|
|
function getRulesReplacement(content = '') {
|
|
let advanceSettings = content ? content : JSON.parse($file.read(FILE).string)
|
|
if (advanceSettings.customSettings) {
|
|
let cs = advanceSettings.customSettings;
|
|
let pat = cs.match(/\/\/\s*replacement\s*:\s*(.*?)[\n\r]/);
|
|
if (pat && pat[1]) {
|
|
return pat[1];
|
|
}
|
|
}
|
|
return null;
|
|
}
|
|
|
|
function getSoftwareType() {
|
|
let file = JSON.parse($file.read(FILE).string)
|
|
let workspace = file.workspace
|
|
let outputFormat = workspace.outputFormat
|
|
if (outputFormat === 'Surge 3 TF') {
|
|
return 0
|
|
} else if (outputFormat === 'Surge 2') {
|
|
return 2
|
|
} else if (outputFormat === 'Quantumult') {
|
|
return 3
|
|
}
|
|
return 1
|
|
}
|
|
|
|
function checkUpdate(oldSha, newSha) {
|
|
return Object.keys(newSha).some(i => oldSha[i] !== newSha[i])
|
|
}
|
|
|
|
function setFilesSha(sha) {
|
|
let file = JSON.parse($file.read(FILE).string)
|
|
file['repoSha'] = sha
|
|
$file.write({
|
|
data: $data({ "string": JSON.stringify(file) }),
|
|
path: FILE
|
|
})
|
|
}
|
|
|
|
function getFilesSha() {
|
|
let file = JSON.parse($file.read(FILE).string)
|
|
return file['repoSha'] || {}
|
|
}
|
|
|
|
function getGitHubFilesSha(params) {
|
|
params.handler({})
|
|
}
|
|
|
|
function getRepoInfo() {
|
|
let owner = 'lhie1';
|
|
let repoName = 'Rules';
|
|
let filePath = 'Auto';
|
|
let softwareType = getSoftwareType()
|
|
if (softwareType === 0) {
|
|
filePath = 'Auto_New'
|
|
} else if (softwareType === 3) {
|
|
filePath = 'Quantumult'
|
|
}
|
|
console.log(filePath)
|
|
let rulesRep = getRulesReplacement();
|
|
if (rulesRep) {
|
|
let reg = rulesRep.match(githubRawReg);
|
|
if (reg && reg.length === 4) {
|
|
owner = reg[1];
|
|
repoName = reg[2];
|
|
filePath = reg[3];
|
|
}
|
|
}
|
|
return { owner, repoName, filePath };
|
|
}
|
|
|
|
function getLatestCommitMessage(params) {
|
|
params.handler(null)
|
|
}
|
|
|
|
module.exports = {
|
|
checkUpdate: checkUpdate,
|
|
getGitHubFilesSha: getGitHubFilesSha,
|
|
setFilesSha: setFilesSha,
|
|
getFilesSha: getFilesSha,
|
|
getLatestCommitMessage: getLatestCommitMessage,
|
|
getRepoInfo: getRepoInfo
|
|
} |