提交 e8a96fb8 编写于 作者: AndroidLeaves's avatar AndroidLeaves

update

上级 2d519b84
......@@ -3,14 +3,18 @@
// icon-color: red; icon-glyph: user-astronaut;
/**
* Author:LSP
* Date:2022-12-12
* Date:2023-02-02
*/
// -------------------------------------------------------
// 是否是开发环境,配合手机端调试使用,正式发布设置为false
const isDev = false;
console.log(`开发环境 👉👉👉👉👉 ${isDev ? 'DEV' : 'RELEASE'}`);
const dependencyLSP = '20230202';
console.log(`当前环境 👉👉👉👉👉 ${isDev ? 'DEV' : 'RELEASE'}`);
console.log(`----------------------------------------`);
const remoteRoot = 'https://gitcode.net/enoyee/scriptable/-/raw/master/';
// 分支
const branch = 'dev';
// 仓库根目录
const remoteRoot = `https://gitcode.net/enoyee/scriptable/-/raw/${branch}`;
// 依赖包目录
const fm = FileManager.local();
const rootDir = fm.documentsDirectory();
......@@ -27,7 +31,6 @@ const { BaseWidget } = require(dependencyFileName);
class Widget extends BaseWidget {
defaultPreference = {
photoHalving: '1',
sourceIndex: '0',
sourceArr: [
{ name: 'dopaminegirl' },
......@@ -36,16 +39,15 @@ class Widget extends BaseWidget {
};
getValueByKey = (key) => this.readWidgetSetting()[key] ?? this.defaultPreference[key];
photoHalving = () => this.getValueByKey('photoHalving');
sourceIndex = () => Number(this.getValueByKey('sourceIndex'));
sourceDesc = (sourceIndex) => this.defaultPreference.sourceArr[sourceIndex].name;
constructor(scriptName) {
super(scriptName);
this.backgroundColor = '#03071e,#03071e';
}
async getAppViewOptions() {
return {
showWidgetBg: false,
widgetProvider: {
small: true, // 是否提供小号组件
medium: true, // 是否提供中号组件
......@@ -55,61 +57,39 @@ class Widget extends BaseWidget {
settingItems: [
{
name: 'photoHalving',
label: '图片等分',
type: 'cell',
icon: { name: 'photo.artframe', color: '#ffca3a' },
alert: {
title: '图片等分设置',
message: "小组件显示多少张图片,最大值为4",
options: [
{
key: 'photoHalving',
hint: '请输入数字进行等分',
}
]
},
needLoading: false,
default: this.photoHalving(),
label: '图片张数',
type: 'select',
icon: { name: 'photo.artframe', color: '#ef233c' },
options: [
{ label: '占满组件', value: '1' },
{ label: '左右互搏', value: '2' },
{ label: '三分天下', value: '3' },
{ label: '四平八稳', value: '4' },
],
default: "1"
},
{
name: 'source',
label: '图源选择',
type: 'cell',
icon: { name: 'tray', color: '#7743DB', },
needLoading: false,
default: this.sourceDesc(this.sourceIndex()),
type: 'select',
icon: { name: 'tray', color: '#a663cc', },
options: [
{ label: 'dopaminegirl', value: '1' },
{ label: 'dounimei', value: '2' },
],
default: "2"
},
],
// cell类型的item点击回调
onItemClick: async (item) => {
let widgetSetting = this.readWidgetSetting();
let insertDesc;
switch (item.name) {
case 'source':
const ufm = this.useFileManager();
const index = await this.presentSheet({
title: '图源设置',
message: '⊱配置图片获取来源⊰',
options: this.defaultPreference.sourceArr,
});
widgetSetting.sourceIndex = `${index}`
insertDesc = this.sourceDesc(index);
break;
}
// 写入更新配置
this.writeWidgetSetting(widgetSetting);
return {
desc: { value: insertDesc },
};
},
};
}
async render({ widgetSetting, family }) {
return await this.provideWidget(family, this.photoHalving());
return await this.provideWidget(family, widgetSetting);
}
async provideWidget(widgetFamily, photoHalving) {
async provideWidget(widgetFamily, widgetSetting) {
const photoHalving = widgetSetting.photoHalving ?? 1;
const sourceIndex = Number(widgetSetting.source ?? '2');
let name = '大号';
switch (widgetFamily) {
case 'small':
......@@ -125,37 +105,45 @@ class Widget extends BaseWidget {
widget.setPadding(0, 0, 0, 0);
//=================================
let stack = widget.addStack();
const imgRes = await this.loadMirrorPhotoRes(this.sourceIndex());
widget.backgroundColor = new Color('#03071e');
const imgRes = await this.loadMirrorPhotoRes(sourceIndex);
const widgetSize = this.getWidgetSize(name);
const widgetWidth = widgetSize.width + 8 * Device.screenScale();
const widgetHeight = widgetSize.height + 8 * Device.screenScale();
// 图片等分
const picHalvingCache = Number(photoHalving);
let imgStack;
const divider = 3;
switch (picHalvingCache) {
case 2:
stack.layoutHorizontally();
imgStack = stack.addStack();
imgStack.size = new Size(widgetWidth / 2, widgetWidth);
imgStack.size = new Size(widgetWidth / 2, widgetHeight);
await this.addStackImg(imgRes, imgStack);
//
stack.addSpacer(divider);
imgStack = stack.addStack();
imgStack.size = new Size(widgetWidth / 2, widgetWidth);
imgStack.size = new Size(widgetWidth / 2, widgetHeight);
await this.addStackImg(imgRes, imgStack);
break;
case 3:
stack.layoutVertically();
stack.layoutHorizontally();
imgStack = stack.addStack();
imgStack.size = new Size(widgetWidth, widgetWidth / 2);
imgStack.size = new Size(widgetWidth / 2, widgetHeight);
await this.addStackImg(imgRes, imgStack);
//
stack.addSpacer(divider);
//
imgStack = stack.addStack();
imgStack.layoutHorizontally();
imgStack.layoutVertically();
let stack_3_1 = imgStack.addStack();
stack_3_1.size = new Size(widgetWidth / 2, widgetWidth / 2);
stack_3_1.size = new Size(widgetWidth / 2, widgetHeight / 2);
await this.addStackImg(imgRes, stack_3_1);
//
imgStack.addSpacer(divider);
let stack_3_2 = imgStack.addStack();
stack_3_2.size = new Size(widgetWidth / 2, widgetWidth / 2);
stack_3_2.size = new Size(widgetWidth / 2, widgetHeight / 2);
await this.addStackImg(imgRes, stack_3_2);
break;
......@@ -164,26 +152,31 @@ class Widget extends BaseWidget {
imgStack = stack.addStack();
imgStack.layoutHorizontally();
let stack_4_1 = imgStack.addStack();
stack_4_1.size = new Size(widgetWidth / 2, widgetWidth / 2);
stack_4_1.size = new Size(widgetWidth / 2, widgetHeight / 2);
await this.addStackImg(imgRes, stack_4_1);
//
imgStack.addSpacer(divider);
let stack_4_2 = imgStack.addStack();
stack_4_2.size = new Size(widgetWidth / 2, widgetWidth / 2);
stack_4_2.size = new Size(widgetWidth / 2, widgetHeight / 2);
await this.addStackImg(imgRes, stack_4_2);
//
stack.addSpacer(divider);
imgStack = stack.addStack();
imgStack.layoutHorizontally();
let stack_4_3 = imgStack.addStack();
stack_4_3.size = new Size(widgetWidth / 2, widgetWidth / 2);
stack_4_3.size = new Size(widgetWidth / 2, widgetHeight / 2);
await this.addStackImg(imgRes, stack_4_3);
//
imgStack.addSpacer(divider);
let stack_4_4 = imgStack.addStack();
stack_4_4.size = new Size(widgetWidth / 2, widgetWidth / 2);
stack_4_4.size = new Size(widgetWidth / 2, widgetHeight / 2);
await this.addStackImg(imgRes, stack_4_4);
break;
default:
stack.layoutHorizontally();
stack.layoutVertically();
imgStack = stack.addStack();
imgStack.size = new Size(widgetWidth, widgetWidth);
imgStack.size = new Size(widgetWidth, widgetHeight);
await this.addStackImg(imgRes, imgStack);
break;
}
......@@ -205,28 +198,27 @@ class Widget extends BaseWidget {
// --------------------------NET START--------------------------
loadMirrorPhotoRes = async (source = 0) => {
loadMirrorPhotoRes = async (source = 2) => {
const imgResArr = [];
switch (source) {
case 0:
const imgRes = await this.httpGet(`https://dopaminegirl.com/api/posts/ranking?offset=${parseInt(Math.random() * 1000) + 100}`);
case 1:
const imgRes = await this.httpGet('https://dopaminegirl.com/api/art');
imgRes.forEach(element => {
imgResArr.push({ url: element.url });
});
break;
case 1:
// 抖你妹数据
case 2:
const url = `https://www.dounimei.co/page/${parseInt(Math.random() * 80) + 1}?orderby=hot`;
const headers = {
"user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.67 Safari/537.36"
};
const webview = new WebView();
const html = await this.httpGet(url, { jsonFormat: false, headers });
await webview.loadHTML(html);
await webview.loadHTML(html); aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
const getData = `
function getData() {
let imgArr = [];
let imgArr = [];
try {
let imgData = document.getElementsByTagName('img');
for (let index = 0; index < imgData.length; index++) {
......@@ -264,15 +256,17 @@ await new Widget(Script.name()).run();
// =================================================================================
async function downloadLSPDependency() {
let fm = FileManager.local();
const dependencyURL = `${remoteRoot}_LSP.js`;
const dependencyURL = `${remoteRoot}/_LSP.js`;
const update = needUpdateDependency();
if (isDev) {
const iCloudPath = FileManager.iCloud().documentsDirectory();
const localIcloudDependencyExit = fm.isFileStoredIniCloud(`${iCloudPath}/_LSP.js`);
const localDependencyExit = fm.fileExists(`${rootDir}/_LSP.js`);
const fileExist = localIcloudDependencyExit || localDependencyExit;
console.log(`🚀 DEV开发依赖文件${fileExist ? '已存在 ✅' : '不存在 🚫'}`);
if (!fileExist) {
console.log(`🤖 DEV 开始下载依赖~`);
if (!fileExist || update) {
console.log(`🤖 DEV 开始${update ? '更新' + dependencyLSP : '下载'}依赖~`);
keySave('VERSION', dependencyLSP);
await downloadFile2Scriptable('_LSP', dependencyURL);
}
return
......@@ -282,20 +276,20 @@ async function downloadLSPDependency() {
console.log(`----------------------------------------`);
const remoteDependencyExit = fm.fileExists(`${cacheDir}/_LSP.js`);
console.log(`🚀 RELEASE依赖文件${remoteDependencyExit ? '已存在 ✅' : '不存在 🚫'}`);
console.log(`----------------------------------------`);
// ------------------------------
if (!remoteDependencyExit) { // 下载依赖
if (!remoteDependencyExit || update) { // 下载依赖
// 创建根目录
if (!fm.fileExists(cacheDir)) {
fm.createDirectory(cacheDir, true);
}
// 下载
console.log('🤖 RELEASE开始下载依赖~');
console.log(`🤖 RELEASE开始${update ? '更新' : '下载'}依赖~`);
console.log(`----------------------------------------`);
const req = new Request(dependencyURL);
const moduleJs = await req.load();
if (moduleJs) {
fm.write(fm.joinPath(cacheDir, '/_LSP.js'), moduleJs);
keySave('VERSION', dependencyLSP);
console.log('✅ LSP远程依赖环境下载成功!');
console.log(`----------------------------------------`);
} else {
......@@ -345,5 +339,25 @@ async function downloadFile2Scriptable(moduleName, url) {
return saveFile2Scriptable(`${moduleName}`, content);
};
/**
* 是否需要更新依赖版本
*/
function needUpdateDependency() {
return dependencyLSP != keyGet('VERSION');
};
function keySave(cacheKey, cache) {
if (cache) {
Keychain.set(Script.name() + cacheKey, cache);
}
}
function keyGet(cacheKey, defaultValue = '') {
if (Keychain.contains(Script.name() + cacheKey)) {
return Keychain.get(Script.name() + cacheKey);
} else {
return defaultValue;
}
}
// =================================================================================
// =================================================================================
\ No newline at end of file
......@@ -140,7 +140,7 @@ class Widget extends BaseWidget {
{ label: '第12套图标', value: '12' },
{ label: '第13套图标', value: '13' },
],
default: "0"
default: "1"
},
{
name: 'quickStart',
......
......@@ -22,16 +22,16 @@ await downloadLSPDependency();
if (typeof require === 'undefined') require = importModule
// 引入相关方法
const {
writeWidgetSetting,
generateAlert,
generateInputAlert,
presentSheet,
readWidgetSetting,
drawTextWithCustomFont,
httpGet,
getDateStr,
getImageByUrl,
presentViewInApp,
writeWidgetSetting,
generateAlert,
generateInputAlert,
presentSheet,
readWidgetSetting,
drawTextWithCustomFont,
httpGet,
getDateStr,
getImageByUrl,
presentViewInApp,
} = require(dependencyFileName);
......@@ -40,7 +40,7 @@ const {
// ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓START↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
//=========================组件默认配置=========================
const defaultPreference = {
caiyun: 'UR8ASaplvIwavDfR',
caiyun: 'UR8ASaplvIwavDfR',
};
const getValueByKey = (key) => readWidgetSetting()[key] ?? defaultPreference[key];
......@@ -52,203 +52,203 @@ const caiyun = () => getValueByKey('caiyun');
// Widget创建
const createWidget = async (widgetSetting, family) => {
//=================================
const widget = new ListWidget();
widget.setPadding(0, 0, 0, 0);
//=================================
let stack = widget.addStack();
stack.layoutHorizontally();
//---------------------------------
const localQuickConfigs = widgetSetting.quickStart;
const quickConfigJSON = localQuickConfigs ? localQuickConfigs : JSON.stringify(defaultPreference.quickConfigs);
const quickConfigArr = JSON.parse(quickConfigJSON);
await quickStack(stack, quickConfigArr);
//---------------------------------
let rightStack = stack.addStack();
rightStack.layoutVertically();
rightStack.addSpacer();
await loadWeatherStack(rightStack);
rightStack.addSpacer();
//=================================
stack.addSpacer();
return widget;
//=================================
const widget = new ListWidget();
widget.setPadding(0, 0, 0, 0);
//=================================
let stack = widget.addStack();
stack.layoutHorizontally();
//---------------------------------
const localQuickConfigs = widgetSetting.quickStart;
const quickConfigJSON = localQuickConfigs ? localQuickConfigs : JSON.stringify(defaultPreference.quickConfigs);
const quickConfigArr = JSON.parse(quickConfigJSON);
await quickStack(stack, quickConfigArr);
//---------------------------------
let rightStack = stack.addStack();
rightStack.layoutVertically();
rightStack.addSpacer();
await loadWeatherStack(rightStack);
rightStack.addSpacer();
//=================================
stack.addSpacer();
return widget;
}
//=========================配置界面=========================
await presentViewInApp({
widgetProvider: {
small: false, // 是否提供小号组件
medium: true, // 是否提供中号组件
large: false, // 是否提供大号组件
},
// 预览界面的组件设置item
settingItems: [
widgetProvider: {
small: false, // 是否提供小号组件
medium: true, // 是否提供中号组件
large: false, // 是否提供大号组件
},
// 预览界面的组件设置item
settingItems: [
{
name: 'otherSetting',
label: '其他设置',
type: 'cell',
icon: 'https://gitcode.net/4qiao/framework/raw/master/img/icon/setting.gif',
needLoading: true,
childItems: [
{
name: 'quickFontSize',
label: '启动文字大小',
type: 'cell',
icon: { name: 'pencil.and.outline', color: '#7743DB', },
needLoading: false,
alert: {
title: '启动文字大小',
options: [
{
key: 'quickFontSize',
hint: '请输入字号',
}
]
},
default: quickFontSize(),
},
{
name: 'otherSetting',
label: '其他设置',
type: 'cell',
icon: 'https://gitcode.net/4qiao/framework/raw/master/img/icon/setting.gif',
needLoading: true,
childItems: [
{
name: 'quickFontSize',
label: '启动文字大小',
type: 'cell',
icon: { name: 'pencil.and.outline', color: '#7743DB', },
needLoading: false,
alert: {
title: '启动文字大小',
options: [
{
key: 'quickFontSize',
hint: '请输入字号',
}
]
},
default: quickFontSize(),
},
{
name: 'quickFontColor',
label: '启动文字颜色',
type: 'color',
icon: { name: 'pencil.and.outline', color: '#7743DB', },
needLoading: false,
default: quickFontColor(),
},
{
name: 'temperatureFontSize',
label: '温度文字大小',
type: 'cell',
icon: { name: 'thermometer.medium', color: '#E0144C', },
needLoading: false,
alert: {
title: '温度文字大小',
options: [
{
key: 'temperatureFontSize',
hint: '请输入字号',
}
]
},
default: temperatureFontSize(),
},
{
name: 'temperatureFontColor',
label: '温度文字颜色',
type: 'color',
icon: { name: 'thermometer.medium', color: '#E0144C', },
needLoading: false,
default: temperatureFontColor(),
},
{
name: 'dateFontSize',
label: '日期文字大小',
type: 'cell',
icon: 'https://s3.uuu.ovh/imgs/2022/12/05/ac2c5b8843ff2719.gif',
needLoading: false,
alert: {
title: '日期文字大小',
options: [
{
key: 'dateFontSize',
hint: '请输入字号',
}
]
},
default: dateFontSize(),
},
{
name: 'dateFontColor',
label: '日期文字颜色',
type: 'color',
icon: 'https://s3.uuu.ovh/imgs/2022/12/05/ac2c5b8843ff2719.gif',
needLoading: false,
default: dateFontColor(),
},
{
name: 'weatherFontSize',
label: '天气文字大小',
type: 'cell',
icon: 'https://s3.uuu.ovh/imgs/2022/12/05/a95f9edce36891d9.gif',
needLoading: false,
alert: {
title: '天气文字大小',
options: [
{
key: 'weatherFontSize',
hint: '请输入字号',
}
]
},
default: weatherFontSize(),
},
{
name: 'weatherFontColor',
label: '天气文字颜色',
type: 'color',
icon: 'https://s3.uuu.ovh/imgs/2022/12/05/a95f9edce36891d9.gif',
needLoading: false,
default: weatherFontColor(),
},
{
name: 'covFontSize',
label: '疫情文字大小',
type: 'cell',
icon: 'https://s3.uuu.ovh/imgs/2022/12/05/2cd3dee47cd0824f.png',
needLoading: false,
alert: {
title: '疫情文字大小',
options: [
{
key: 'covFontSize',
hint: '请输入字号',
}
]
},
default: covFontSize(),
},
{
name: 'covFontColor',
label: '疫情文字颜色',
type: 'color',
icon: 'https://s3.uuu.ovh/imgs/2022/12/05/2cd3dee47cd0824f.png',
needLoading: false,
default: covFontColor(),
},
name: 'quickFontColor',
label: '启动文字颜色',
type: 'color',
icon: { name: 'pencil.and.outline', color: '#7743DB', },
needLoading: false,
default: quickFontColor(),
},
{
name: 'temperatureFontSize',
label: '温度文字大小',
type: 'cell',
icon: { name: 'thermometer.medium', color: '#E0144C', },
needLoading: false,
alert: {
title: '温度文字大小',
options: [
{
key: 'temperatureFontSize',
hint: '请输入字号',
}
]
},
default: temperatureFontSize(),
},
{
name: 'temperatureFontColor',
label: '温度文字颜色',
type: 'color',
icon: { name: 'thermometer.medium', color: '#E0144C', },
needLoading: false,
default: temperatureFontColor(),
},
],
// cell类型的item点击回调
onItemClick: async (item) => {
let widgetSetting = readWidgetSetting();
let insertDesc;
switch (item.name) {
case '':
break
}
// 写入更新配置
writeWidgetSetting(widgetSetting);
return {
desc: { value: insertDesc },
};
{
name: 'dateFontSize',
label: '日期文字大小',
type: 'cell',
icon: 'https://s3.uuu.ovh/imgs/2022/12/05/ac2c5b8843ff2719.gif',
needLoading: false,
alert: {
title: '日期文字大小',
options: [
{
key: 'dateFontSize',
hint: '请输入字号',
}
]
},
default: dateFontSize(),
},
{
name: 'dateFontColor',
label: '日期文字颜色',
type: 'color',
icon: 'https://s3.uuu.ovh/imgs/2022/12/05/ac2c5b8843ff2719.gif',
needLoading: false,
default: dateFontColor(),
},
{
name: 'weatherFontSize',
label: '天气文字大小',
type: 'cell',
icon: 'https://s3.uuu.ovh/imgs/2022/12/05/a95f9edce36891d9.gif',
needLoading: false,
alert: {
title: '天气文字大小',
options: [
{
key: 'weatherFontSize',
hint: '请输入字号',
}
]
},
default: weatherFontSize(),
},
{
name: 'weatherFontColor',
label: '天气文字颜色',
type: 'color',
icon: 'https://s3.uuu.ovh/imgs/2022/12/05/a95f9edce36891d9.gif',
needLoading: false,
default: weatherFontColor(),
},
{
name: 'covFontSize',
label: '疫情文字大小',
type: 'cell',
icon: 'https://s3.uuu.ovh/imgs/2022/12/05/2cd3dee47cd0824f.png',
needLoading: false,
alert: {
title: '疫情文字大小',
options: [
{
key: 'covFontSize',
hint: '请输入字号',
}
]
},
default: covFontSize(),
},
{
name: 'covFontColor',
label: '疫情文字颜色',
type: 'color',
icon: 'https://s3.uuu.ovh/imgs/2022/12/05/2cd3dee47cd0824f.png',
needLoading: false,
default: covFontColor(),
},
]
},
// UI渲染
render: async ({ widgetSetting, family }) => {
Object.assign(defaultPreference, widgetSetting);
try {
return await createWidget(defaultPreference, family);
} catch (e) {
if (config.runsInApp) {
await generateAlert({
title: '❌运行错误',
message: `${e}`,
options: ['确定']
});
}
console.error(e);
}
],
// cell类型的item点击回调
onItemClick: async (item) => {
let widgetSetting = readWidgetSetting();
let insertDesc;
switch (item.name) {
case '':
break
}
// 写入更新配置
writeWidgetSetting(widgetSetting);
return {
desc: { value: insertDesc },
};
},
// UI渲染
render: async ({ widgetSetting, family }) => {
Object.assign(defaultPreference, widgetSetting);
try {
return await createWidget(defaultPreference, family);
} catch (e) {
if (config.runsInApp) {
await generateAlert({
title: '❌运行错误',
message: `${e}`,
options: ['确定']
});
}
console.error(e);
}
}
});
// ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑END↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
......@@ -258,46 +258,46 @@ await presentViewInApp({
// =================================================================================
// =================================================================================
async function downloadLSPDependency() {
let fm = FileManager.local();
const dependencyURL = "https://gitee.com/enjoyee/scriptable/raw/develop/_LSP.js";
if (isDev) {
const iCloudPath = FileManager.iCloud().documentsDirectory();
const localIcloudDependencyExit = fm.isFileStoredIniCloud(`${iCloudPath}/_LSP.js`);
const localDependencyExit = fm.fileExists(`${rootDir}/_LSP.js`);
const fileExist = localIcloudDependencyExit || localDependencyExit;
console.log(`🚀 DEV开发依赖文件${fileExist ? '已存在 ✅' : '不存在 🚫'}`);
if (!fileExist) {
console.log(`🤖 DEV 开始下载依赖~`);
await downloadFile2Scriptable('_LSP', dependencyURL);
}
return
let fm = FileManager.local();
const dependencyURL = "https://gitee.com/enjoyee/scriptable/raw/develop/_LSP.js";
if (isDev) {
const iCloudPath = FileManager.iCloud().documentsDirectory();
const localIcloudDependencyExit = fm.isFileStoredIniCloud(`${iCloudPath}/_LSP.js`);
const localDependencyExit = fm.fileExists(`${rootDir}/_LSP.js`);
const fileExist = localIcloudDependencyExit || localDependencyExit;
console.log(`🚀 DEV开发依赖文件${fileExist ? '已存在 ✅' : '不存在 🚫'}`);
if (!fileExist) {
console.log(`🤖 DEV 开始下载依赖~`);
await downloadFile2Scriptable('_LSP', dependencyURL);
}
return
}
//////////////////////////////////////////////////////////
console.log(`----------------------------------------`);
const remoteDependencyExit = fm.fileExists(`${cacheDir}/_LSP.js`);
console.log(`🚀 RELEASE依赖文件${remoteDependencyExit ? '已存在 ✅' : '不存在 🚫'}`);
//////////////////////////////////////////////////////////
console.log(`----------------------------------------`);
const remoteDependencyExit = fm.fileExists(`${cacheDir}/_LSP.js`);
console.log(`🚀 RELEASE依赖文件${remoteDependencyExit ? '已存在 ✅' : '不存在 🚫'}`);
console.log(`----------------------------------------`);
// ------------------------------
if (!remoteDependencyExit) { // 下载依赖
// 创建根目录
if (!fm.fileExists(cacheDir)) {
fm.createDirectory(cacheDir, true);
}
// 下载
console.log('🤖 RELEASE开始下载依赖~');
console.log(`----------------------------------------`);
// ------------------------------
if (!remoteDependencyExit) { // 下载依赖
// 创建根目录
if (!fm.fileExists(cacheDir)) {
fm.createDirectory(cacheDir, true);
}
// 下载
console.log('🤖 RELEASE开始下载依赖~');
console.log(`----------------------------------------`);
const req = new Request(dependencyURL);
const moduleJs = await req.load();
if (moduleJs) {
fm.write(fm.joinPath(cacheDir, '/_LSP.js'), moduleJs);
console.log('✅ LSP远程依赖环境下载成功!');
console.log(`----------------------------------------`);
} else {
console.error('🚫 获取依赖环境脚本失败,请重试!');
console.log(`----------------------------------------`);
}
const req = new Request(dependencyURL);
const moduleJs = await req.load();
if (moduleJs) {
fm.write(fm.joinPath(cacheDir, '/_LSP.js'), moduleJs);
console.log('✅ LSP远程依赖环境下载成功!');
console.log(`----------------------------------------`);
} else {
console.error('🚫 获取依赖环境脚本失败,请重试!');
console.log(`----------------------------------------`);
}
}
}
/**
......@@ -306,8 +306,8 @@ async function downloadLSPDependency() {
* @returns
*/
function getSaveFileName(fileName) {
const hasSuffix = fileName.lastIndexOf(".") + 1;
return !hasSuffix ? `${fileName}.js` : fileName;
const hasSuffix = fileName.lastIndexOf(".") + 1;
return !hasSuffix ? `${fileName}.js` : fileName;
};
/**
......@@ -317,15 +317,15 @@ function getSaveFileName(fileName) {
* @returns
*/
function saveFile2Scriptable(fileName, content) {
try {
const fm = FileManager.iCloud();
let fileSimpleName = getSaveFileName(fileName);
const filePath = fm.joinPath(fm.documentsDirectory(), fileSimpleName);
fm.writeString(filePath, content);
return true;
} catch (error) {
return false;
}
try {
const fm = FileManager.iCloud();
let fileSimpleName = getSaveFileName(fileName);
const filePath = fm.joinPath(fm.documentsDirectory(), fileSimpleName);
fm.writeString(filePath, content);
return true;
} catch (error) {
return false;
}
};
/**
......@@ -335,9 +335,9 @@ function saveFile2Scriptable(fileName, content) {
* @returns
*/
async function downloadFile2Scriptable(moduleName, url) {
const req = new Request(url);
const content = await req.loadString();
return saveFile2Scriptable(`${moduleName}`, content);
const req = new Request(url);
const content = await req.loadString();
return saveFile2Scriptable(`${moduleName}`, content);
};
// =================================================================================
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册