diff --git a/Env.js b/Env.js deleted file mode 100644 index 57dfd76..0000000 --- a/Env.js +++ /dev/null @@ -1,496 +0,0 @@ -// Variables used by Scriptable. - -/* ----------------------------------------------- -这是一份模板,可以导入进行使用里面封装的方法变量,谨慎修改!! ------------------------------------------------ */ - -//------------------------------------------------ -const fm = FileManager.local() -let path = "" -let exports = {} -//------------------------------------------------ -let configs = { - previewSize: "Medium", // 预览大小【小:Small,中:Medium,大:Large】 - changePicBg: true, // 是否需要更换背景 - colorMode: false, // 是否是纯色背景 - bgColor: undefined, // 小组件背景色 - topPadding: 0, // 内容区边距 - leftPadding: 0, // 内容区边距 - bottomPadding: 0, // 内容区边距 - rightPadding: 0, // 内容区边距 - refreshInterval: 0 // 刷新间隔,单位分钟,非精准,会有3-5分钟差距 -} -exports.configs = configs -//------------------------------------------------ -// 标题样式定义 -const textStyle = { - stack: undefined, // 加入到哪个内容栈显示 - marginStart: 0, // 开始距离,水平方向的就是左边距离,垂直方向的就是顶部距离 - marginEnd: 0, // 结束距离,水平方向的就是右边距离,垂直方向的就是底部距离 - text: "", // 显示的文字 - width: 0, // 宽 - height: 0, // 长 - lineLimit: 0, // 行数控制,0是全部展示 - font: undefined, // 字体 - textColor: undefined, // 文字颜色 -} -exports.textStyle = textStyle -//------------------------------------------------ -// 图片样式定义 -const imgStyle = { - stack: undefined, // 加入到哪个内容栈显示 - marginStart: 0, // 开始距离,水平方向的就是左边距离,垂直方向的就是顶部距离 - marginEnd: 0, // 结束距离,水平方向的就是右边距离,垂直方向的就是底部距离 - img: undefined, // 图片资源 - width: 50, // 宽 - height: 50, // 长 - tintColor: undefined, // 图片渲染颜色 -} -exports.imgStyle = textStyle -//------------------------------------------------ - - - - -//------------------------------------------------ -exports.run = async function (scriptName, widget) { - let appearance = (await exports.isUsingDarkAppearance()) ? 'dark' : 'light' - let appearanceStr = appearance == 'dark' ? '暗黑模式' : '白天模式' - - - let fileImgName = `${scriptName}-${appearance}.jpg` - path = fm.joinPath(fm.documentsDirectory(), fileImgName) - - if (!exports.configs.changePicBg || exports.configs.colorMode || config.runsInWidget) { - // 结束并且进行预览 - completeWidget(widget) - return - } - - const okTips = `您的小部件【${appearanceStr}】背景已准备就绪,请退到桌面查看即可。` - let message = "图片模式支持相册照片&背景透明" - let options = ["图片选择", "透明背景"] - let isTransparentMode = await generateAlert(message, options) - if (!isTransparentMode) { - let img = await Photos.fromLibrary() - message = okTips - const resultOptions = ["好的"] - await generateAlert(message, resultOptions) - fm.writeImage(path, img) - } else { - message = "以下是【透明背景】生成步骤,如果你没有屏幕截图请退出,并返回主屏幕长按进入编辑模式。滑动到最右边的空白页截图,然后重新运行!" - let exitOptions = ["继续(已有截图)", "退出(没有截图)"] - - let shouldExit = await generateAlert(message, exitOptions) - if (shouldExit) return - - // Get screenshot and determine phone size. - let img = await Photos.fromLibrary() - let height = img.size.height - let phone = phoneSizes()[height] - if (!phone) { - message = "您似乎选择了非iPhone屏幕截图的图像,或者不支持您的iPhone。请使用其他图像再试一次!" - await generateAlert(message, ["好的!我现在去截图"]) - return - } - - // Prompt for widget size and position. - message = "您想要创建什么尺寸的小部件?" - let sizes = ["小号", "中号", "大号"] - let size = await generateAlert(message, sizes) - let widgetSize = sizes[size] - - message = "您想它在什么位置?" - message += (height == 1136 ? " (请注意,您的设备仅支持两行小部件,因此中间和底部选项相同。)" : "") - - // Determine image crop based on phone size. - let crop = { w: "", h: "", x: "", y: "" } - if (widgetSize == "小号") { - crop.w = phone.小号 - crop.h = phone.小号 - let positions = ["顶部 左边", "顶部 右边", "中间 左边", "中间 右边", "底部 左边", "底部 右边"] - let position = await generateAlert(message, positions) - - // Convert the two words into two keys for the phone size dictionary. - let keys = positions[position].split(' ') - crop.y = phone[keys[0]] - crop.x = phone[keys[1]] - - } else if (widgetSize == "中号") { - crop.w = phone.中号 - crop.h = phone.小号 - - // 中号 and 大号 widgets have a fixed x-value. - crop.x = phone.左边 - let positions = ["顶部", "中间", "底部"] - let position = await generateAlert(message, positions) - let key = positions[position].toLowerCase() - crop.y = phone[key] - - } else if (widgetSize == "大号") { - crop.w = phone.中号 - crop.h = phone.大号 - crop.x = phone.左边 - let positions = ["顶部", "底部"] - let position = await generateAlert(message, positions) - - // 大号 widgets at the 底部 have the "中间" y-value. - crop.y = position ? phone.中间 : phone.顶部 - } - - // Crop image and finalize the widget. - let imgCrop = cropImage(img, new Rect(crop.x, crop.y, crop.w, crop.h)) - - message = okTips - const resultOptions = ["好的"] - await generateAlert(message, resultOptions) - fm.writeImage(path, imgCrop) - } - - // 结束并且进行预览 - completeWidget(widget) -} -//------------------------------------------------ -function completeWidget(widget) { - // 刷新间隔 - const refreshInterval = exports.configs.refreshInterval - if (refreshInterval > 0) { - widget.refreshAfterDate = new Date(new Date() + 1000*60*refreshInterval) - } - // 背景 - if (exports.configs.colorMode) { - widget.backgroundColor = exports.configs.bgColor - } else { - widget.backgroundImage = fm.readImage(path) - } - // 设置边距(上,左,下,右) - widget.setPadding(exports.configs.topPadding, exports.configs.leftPadding, exports.configs.bottomPadding, exports.configs.rightPadding) - // 设置组件 - Script.setWidget(widget) - // 完成脚本 - Script.complete() - // 预览 - if (exports.configs.previewSize == "Large") { - widget.presentLarge() - } else if (exports.configs.previewSize == "Medium") { - widget.presentMedium() - } else { - widget.presentSmall() - } -} -//------------------------------------------------ -// Generate an alert with the provided array of options. -async function generateAlert(message, options) { - let alert = new Alert() - alert.message = message - - for (const option of options) { - alert.addAction(option) - } - - let response = await alert.presentAlert() - return response -} -//------------------------------------------------ -// Crop an image into the specified rect. -function cropImage(img, rect) { - let draw = new DrawContext() - draw.size = new Size(rect.width, rect.height) - draw.drawImageAtPoint(img, new Point(-rect.x, -rect.y)) - return draw.getImage() -} -//------------------------------------------------ -// Pixel sizes and positions for widgets on all supported phones. -function phoneSizes() { - let phones = { - "2340": { // 12mini - "小号": 436, - "中号": 936, - "大号": 980, - "左边": 72, - "右边": 570, - "顶部": 212, - "中间": 756, - "底部": 1300, - }, - - "2532": { // 12/12 Pro - "小号": 472, - "中号": 1012, - "大号": 1058, - "左边": 78, - "右边": 618, - "顶部": 230, - "中间": 818, - "底部": 1408, - }, - - "2778": { // 12 Pro Max - "小号": 518, - "中号": 1114, - "大号": 1162, - "左边": 86, - "右边": 678, - "顶部": 252, - "中间": 898, - "底部": 1544, - }, - - "2688": { - "小号": 507, - "中号": 1080, - "大号": 1137, - "左边": 81, - "右边": 654, - "顶部": 228, - "中间": 858, - "底部": 1488 - }, - - "1792": { - "小号": 338, - "中号": 720, - "大号": 758, - "左边": 54, - "右边": 436, - "顶部": 160, - "中间": 580, - "底部": 1000 - }, - - "2436": { - "小号": 465, - "中号": 987, - "大号": 1035, - "左边": 69, - "右边": 591, - "顶部": 213, - "中间": 783, - "底部": 1353 - }, - - "2208": { - "小号": 471, - "中号": 1044, - "大号": 1071, - "左边": 99, - "右边": 672, - "顶部": 114, - "中间": 696, - "底部": 1278 - }, - - "1334": { - "小号": 296, - "中号": 642, - "大号": 648, - "左边": 54, - "右边": 400, - "顶部": 60, - "中间": 412, - "底部": 764 - }, - - "1136": { - "小号": 282, - "中号": 584, - "大号": 622, - "左边": 30, - "右边": 332, - "顶部": 59, - "中间": 399, - "底部": 399 - } - } - return phones -} -//------------------------------------------------ -exports.isUsingDarkAppearance = async function () { - const wv = new WebView() - let js = "(window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches)" - let r = await wv.evaluateJavaScript(js) - return r -} -//================================================ -//================================================ -//================================================ -//================================================ -//================================================ -exports.getImage = async function (url) { - const request = new Request(url) - const data = await request.loadImage() - return data -} -//------------------------------------------------ -exports.getJson = async function (url) { - const request = new Request(url) - const defaultHeaders = { - "Accept": "*/*", - "Content-Type": "application/json" - } - - request.url = url - request.method = 'GET' - request.headers = defaultHeaders - - const data = await request.loadJSON() - - return data -} -//------------------------------------------------ -exports.alignVerticallyCenterStack = function (alignmentStack) { - let returnStack = alignmentStack.addStack() - returnStack.layoutVertically() - returnStack.centerAlignContent() - return returnStack -} -//------------------------------------------------ -exports.alignHorizontallyCenterStack = function (alignmentStack) { - let returnStack = alignmentStack.addStack() - returnStack.layoutHorizontally() - returnStack.centerAlignContent() - return returnStack -} -//------------------------------------------------ -exports.alignBottomStack = function (alignmentStack, marginBottom) { - let contentStack = alignmentStack.addStack() - contentStack.layoutVertically() - contentStack.addSpacer() - - let returnStack = contentStack.addStack() - - // 添加下边距 - if (marginBottom != undefined && marginBottom != 0) { - contentStack.addSpacer(marginBottom) - } - - return returnStack -} -//------------------------------------------------ -exports.alignTopStack = function (alignmentStack, marginTop) { - let contentStack = alignmentStack.addStack() - contentStack.layoutVertically() - - // 添加左边距 - if (marginTop != undefined && marginTop != 0) { - contentStack.addSpacer(marginTop) - } - - let returnStack = contentStack.addStack() - returnStack.layoutVertically() - - contentStack.addSpacer() - return returnStack -} -//------------------------------------------------ -exports.alignLeftStack = function (alignmentStack, marginLeft) { - let contentStack = alignmentStack.addStack() - contentStack.layoutHorizontally() - - let returnStack = contentStack.addStack() - returnStack.layoutHorizontally() - - // 添加左边距 - if (marginLeft != undefined && marginLeft != 0) { - returnStack.addSpacer(marginLeft) - } - - contentStack.addSpacer() - return returnStack -} -//------------------------------------------------ -exports.alignRightStack = function (alignmentStack, marginRight) { - let contentStack = alignmentStack.addStack() - contentStack.layoutHorizontally() - contentStack.addSpacer() - - let returnStack = contentStack.addStack() - - // 添加右边距 - if (marginRight != undefined && marginRight != 0) { - contentStack.addSpacer(marginRight) - } - - return returnStack -} -//------------------------------------------------ -exports.addStyleImg = function () { - const imgStyle = exports.imgStyle - const contentStack = imgStyle.stack - if (contentStack == undefined) { - return - } - - const marginStart = textStyle.marginStart - if (marginStart != undefined && marginStart != 0) { - contentStack.addSpacer(marginStart) - } - - const imgSpan = contentStack.addImage(imgStyle.img) - imgSpan.imageSize = new Size(imgStyle.width, imgStyle.height) - const tintColor = imgStyle.tintColor - if (tintColor != undefined) { - imgSpan.tintColor = tintColor - } - - const marginEnd = textStyle.marginEnd - if (marginStart != undefined && marginStart != 0) { - contentStack.addSpacer(marginEnd) - } - - // 重置样式 - resetImgStyle() -} -//------------------------------------------------ -exports.addStyleText = function () { - const textStyle = exports.textStyle - const contentStack = textStyle.stack - if (contentStack == undefined) { - return - } - - const marginStart = textStyle.marginStart - if (marginStart != undefined && marginStart != 0) { - contentStack.addSpacer(marginStart) - } - - const textSpan = contentStack.addText(`${textStyle.text}`) - contentStack.size = new Size(textStyle.width, textStyle.height) - textSpan.lineLimit = textStyle.lineLimit - textSpan.font = textStyle.font - textSpan.textColor = textStyle.textColor - - const marginEnd = textStyle.marginEnd - if (marginStart != undefined && marginStart != 0) { - contentStack.addSpacer(marginEnd) - } - - // 重置样式 - resetTextStyle() -} -//------------------------------------------------ -function resetImgStyle() { - exports.imgStyle.stack = undefined // 加入到哪个内容栈显示 - exports.textStyle.marginStart = 0 - exports.textStyle.marginEnd = 0 - exports.imgStyle.img = undefined // 图片资源 - exports.imgStyle.width = 0 // 宽 - exports.imgStyle.height = 0 // 长 - exports.imgStyle.tintColor = undefined // 图片渲染颜色 -} -//------------------------------------------------ -function resetTextStyle() { - exports.textStyle.stack = undefined // 加入到哪个内容栈显示 - exports.textStyle.marginStart = 0 - exports.textStyle.marginEnd = 0 - exports.textStyle.text = "" // 显示的文字 - exports.textStyle.width = 0 // 宽 - exports.textStyle.height = 0 // 长 - exports.textStyle.lineLimit = 0 // 行数控制,0是全部展示 - exports.textStyle.font = undefined // 字体 - exports.textStyle.textColor = undefined // 文字颜色 -} - -//------------------------------------------------ -module.exports = exports -//------------------------------------------------ diff --git a/JD.js b/JD.js new file mode 100644 index 0000000..2a01b50 --- /dev/null +++ b/JD.js @@ -0,0 +1,1323 @@ +// Variables used by Scriptable. +// These must be at the very top of the file. Do not edit. +// icon-color: pink; icon-glyph: feather-alt; +/** + * Author:LSP + * Date:2023-08-21 + */ +// ------------------------------------------------------- +// 是否是开发环境,配合手机端调试使用,正式发布设置为false +const isDev = false; +const dependencyLSP = '20230602'; +console.log(`当前环境 👉👉👉👉👉 ${isDev ? 'DEV' : 'RELEASE'}`); +console.log(`----------------------------------------`); +// 分支 +const branch = 'v2'; +// 仓库根目录 +const remoteGithubRoot = `https://raw.githubusercontent.com/Enjoyee/Scriptable/${branch}`; +const remoteHomeLandRoot = `https://glimmerk.coding.net/p/Scriptable/shared-depot/source/git/raw/${branch}`; +// 依赖包目录 +const fm = FileManager.local(); +const rootDir = fm.documentsDirectory(); +const cacheDir = fm.joinPath(rootDir, 'LSP'); +const dependencyFileName = isDev ? "_LSP.js" : `${cacheDir}/_LSP.js`; +// 下载依赖包 +await downloadLSPDependency(); +// ------------------------------------------------------- +if (typeof require === 'undefined') require = importModule +// 引入相关方法 +const { BaseWidget } = require(dependencyFileName); + +// @定义小组件 +class Widget extends BaseWidget { + + defaultPreference = { + link_fruit: 'openApp.jdMobile://virtual?params=%7B%22category%22%3A%22jump%22%2C%22des%22%3A%22m%22%2C%22url%22%3A%22https%3A%2F%2Fcarry.m.jd.com%2FbabelDiy%2FZeus%2F3KSjXqQabiTuD1cJ28QskrpWoBKT%2Findex.html%3FbabelChannel%3D94%22%7D', + link_package: 'openapp.jdmobile://virtual?params=%7B%22category%22%3A%22jump%22%2C%22des%22%3A%22m%22%2C%22url%22%3A%22https%3A%2F%2Ftrade.m.jd.com%2Forder%2Forderlist_jdm.shtml%3Fsceneval%3D2%26jxsid%3D16780988595962555448%26orderType%3DwaitReceipt%26ptag%3D7155.1.13%26source%3Dmy%2Findex%3Fsource%3Dlingjingdoushouye%22%7D', + link_bean_detail: 'openapp.jdmobile://virtual?params=%7B%22category%22%3A%22jump%22%2C%22des%22%3A%22m%22%2C%22url%22%3A%22https%3A%2F%2Fbean.m.jd.com%2FbeanDetail%2Findex.action%3FresourceValue%3Dbean%22%7D', + centerIconUrls: [ + 'img/ic_pikachu_1.png', + 'img/ic_pikachu_4.png', + 'img/ic_pikachu_5.png', + 'img/ic_pikachu_6.png', + 'img/ic_pikachu_7.png', + 'img/ic_pikachu_8.png', + 'img/ic_cat_1.png', + 'img/ic_cat_2.png', + 'img/ic_cat_3.png', + 'img/ic_cat_4.png', + 'img/ic_cat_5.png', + 'img/ic_cat_6.png', + 'img/ic_cat_7.png', + 'img/ic_cat_8.png', + ], + leftStackWidth: 80, + userInfoParam: { + 'functionId': 'jx.userinfo.query', + 'appid': 'jx_h5', + 't': 1692596879037, + 'channel': 'jxh5', + 'client': 'jxh5', + 'cthr': '1', + 'cv': '1.2.5', + 'clientVersion': '1.2.5', + 'loginType': '2', + 'body': JSON.stringify({ "sceneid": 80027, "sceneval": 2, "buid": 325, "appCode": "ms0ca95114", "time": 1692596879037, "signStr": "e3013086b16b6ad04ac13d143d0bda07" }), + }, + myBeanParam: { + 'appid': 'jd-cphdeveloper-m', + 'functionId': 'myBean', + 'body': JSON.stringify({ "tenantCode": "jgm", "bizModelCode": '6', "bizModeClientType": "M", "externalLoginType": '1' }), + 'g_login_type': 0, + 'g_tk': '997104177', + 'g_ty': 'ajax', + 'appCode': 'ms0ca95114', + }, + redPackageParam: { + 'functionId': 'redPacket', + 'appid': 'jd-cphdeveloper-m', + 'loginType': 2, + 'client': 'm', + 'sceneval': 2, + 'g_login_type': 1, + 'g_ty': 'ajax', + 'appCode': 'ms0ca95114', + 'body': JSON.stringify({ "type": 1, "redBalanceFlag": 1, "page": 1, "tenantCode": "jgm", "bizModelCode": "6", "bizModeClientType": "M", "externalLoginType": "1" }), + }, + nicknameDayColor: '#000000', + nicknameNightColor: '#000000', + jvDayColor: '#000000', + jvNightColor: '#000000', + beanDayColor: '#F62910', + beanNightColor: '#F62910', + expiredBeanDayColor: '#AD4731', + expiredBeanNightColor: '#AD4731', + dateBeanTitleDayColor: '#000000', + dateBeanTitleNightColor: '#000000', + dateBeaneDayColor: '#000000', + dateBeanNightColor: '#000000', + redPackageDayColor: '#F62910', + redPackageNightColor: '#F62910', + expiredRedPackageDayColor: '#ff8260', + expiredRedPackageNightColor: '#ff8260', + fruitDayColor: '#84B264', + fruitNightColor: '#84B264', + baiTiaoDayColor: '#F62910', + baiTiaoNightColor: '#F62910', + packageFlowTitleDayColor: '#283149', + packageFlowTitleNightColor: '#283149', + packageFlowDescDayColor: '#494949', + packageFlowDescNightColor: '#494949', + }; + + userInfo = { + levelName: '', // 等级名称 + jvalue: 0, // 京享值 + nickname: '', + headImageUrl: '', + isPlusVip: false, + } + + redPackage = { + amount: 0, + expired: '', + }; + + beanInfo = { + totalAmount: 0, + yesterdayGain: 0, + todayGain: 0, + almostExpired: 0, + } + + packageFlow = { + count: 0, + details: [] + } + + baitiao = { + title: '', + amount: '', + desc: '' + } + + fruit = { + name: '', + simpleName: '', + goodsImage: '', + percent: '' + } + + getValueByKey = (key) => this.readWidgetSetting()[key] ?? this.defaultPreference[key] ?? ''; + + ck = () => this.getValueByKey('cookie'); + + nicknameDayColor = () => this.getValueByKey('nicknameDayColor'); + nicknameNightColor = () => this.getValueByKey('nicknameNightColor'); + + jvDayColor = () => this.getValueByKey('jvDayColor'); + jvNightColor = () => this.getValueByKey('jvNightColor'); + + beanDayColor = () => this.getValueByKey('beanDayColor'); + beanNightColor = () => this.getValueByKey('beanNightColor'); + + expiredBeanDayColor = () => this.getValueByKey('expiredBeanDayColor'); + expiredBeanNightColor = () => this.getValueByKey('expiredBeanNightColor'); + + dateBeanTitleDayColor = () => this.getValueByKey('dateBeanTitleDayColor'); + dateBeanTitleNightColor = () => this.getValueByKey('dateBeanTitleNightColor'); + + dateBeanDayColor = () => this.getValueByKey('dateBeanDayColor'); + dateBeanNightColor = () => this.getValueByKey('dateBeanNightColor'); + + redPackageDayColor = () => this.getValueByKey('redPackageDayColor'); + redPackageNightColor = () => this.getValueByKey('redPackageNightColor'); + + expiredRedPackageDayColor = () => this.getValueByKey('expiredRedPackageDayColor'); + expiredRedPackageNightColor = () => this.getValueByKey('expiredRedPackageNightColor'); + + fruitDayColor = () => this.getValueByKey('fruitDayColor'); + fruitNightColor = () => this.getValueByKey('fruitNightColor'); + + baiTiaoDayColor = () => this.getValueByKey('baiTiaoDayColor'); + baiTiaoNightColor = () => this.getValueByKey('baiTiaoNightColor'); + + packageFlowTitleDayColor = () => this.getValueByKey('packageFlowTitleDayColor'); + packageFlowTitleNightColor = () => this.getValueByKey('packageFlowTitleNightColor'); + + packageFlowDescDayColor = () => this.getValueByKey('packageFlowDescDayColor'); + packageFlowDescNightColor = () => this.getValueByKey('packageFlowDescNightColor'); + + constructor(scriptName) { + super(scriptName); + this.defaultConfig.refreshInterval = '60'; + this.changeBgMode2OnLineBg( + [`${this.getRemoteRootPath()}/img/jd/bg_orange.png`], + { blur: false, darkBlur: false, blurRadius: 50 } + ); + // -------------------------------------------- + this.cookie = this.ck(); + this.defaultHeaders = { + 'cookie': this.cookie, + 'Sec-Fetch-Mode': 'cors', + 'user-agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', + } + if (!this.cookie) { + delete this.defaultHeaders.cookie; + } + this.jdNum = this.useFileManager().readStringCache('jdBean'); + this.jdNumChange = true; + this.vSpacer = 0; + this.useFruitInfoCache = true; + } + + async getAppViewOptions() { + return { + widgetProvider: { + small: false, // 是否提供小号组件 + medium: true, // 是否提供中号组件 + large: false, // 是否提供大号组件 + }, + // 预览界面的组件设置item + settingItems: [ + { + name: 'jdLogin', + label: '登录京东', + type: 'cell', + icon: `${this.getRemoteRootPath()}/img/jd/icon_app_logo.png`, + needLoading: true, + default: this.ck()?.length > 0 ? '已登录' : '未登录', + }, + { + name: 'otherSetting', + label: '其他设置', + type: 'cell', + icon: 'https://cdnjson.com/images/2024/02/05/settings.png', + needLoading: true, + childItems: [ + { + items: [ + { + name: 'nicknameDayColor', + label: '用户名浅色颜色', + type: 'color', + icon: { name: 'pencil.and.outline', color: '#3a86ff', }, + needLoading: false, + default: this.nicknameDayColor(), + }, + { + name: 'nicknameNightColor', + label: '用户名深色颜色', + type: 'color', + icon: { name: 'square.and.pencil', color: '#3a0ca3', }, + needLoading: false, + default: this.nicknameNightColor(), + } + ] + }, + { + items: [ + { + name: 'jvDayColor', + label: '京享值浅色颜色', + type: 'color', + icon: { name: 'pencil.and.outline', color: '#3a86ff', }, + needLoading: false, + default: this.jvDayColor(), + }, + { + name: 'jvNightColor', + label: '京享值深色颜色', + type: 'color', + icon: { name: 'square.and.pencil', color: '#3a0ca3', }, + needLoading: false, + default: this.jvNightColor(), + } + ] + }, + { + items: [ + { + name: 'beanDayColor', + label: '京豆浅色颜色', + type: 'color', + icon: { name: 'pencil.and.outline', color: '#3a86ff', }, + needLoading: false, + default: this.beanDayColor(), + }, + { + name: 'beanNightColor', + label: '京豆深色颜色', + type: 'color', + icon: { name: 'square.and.pencil', color: '#3a0ca3', }, + needLoading: false, + default: this.beanNightColor(), + } + ] + }, + { + items: [ + { + name: 'expiredBeanDayColor', + label: '快过期京豆浅色颜色', + type: 'color', + icon: { name: 'pencil.and.outline', color: '#3a86ff', }, + needLoading: false, + default: this.expiredBeanDayColor(), + }, + { + name: 'expiredBeanNightColor', + label: '快过期京豆深色颜色', + type: 'color', + icon: { name: 'square.and.pencil', color: '#3a0ca3', }, + needLoading: false, + default: this.expiredBeanNightColor(), + } + ] + }, + { + items: [ + { + name: 'dateBeanTitleDayColor', + label: '日期标题浅色颜色', + type: 'color', + icon: { name: 'pencil.and.outline', color: '#3a86ff', }, + needLoading: false, + default: this.dateBeanTitleDayColor(), + }, + { + name: 'dateBeanTitleNightColor', + label: '日期标题深色颜色', + type: 'color', + icon: { name: 'square.and.pencil', color: '#3a0ca3', }, + needLoading: false, + default: this.dateBeanTitleNightColor(), + } + ] + }, + { + items: [ + { + name: 'dateBeanDayColor', + label: '日期京豆浅色颜色', + type: 'color', + icon: { name: 'pencil.and.outline', color: '#3a86ff', }, + needLoading: false, + default: this.dateBeanDayColor(), + }, + { + name: 'dateBeanNightColor', + label: '日期京豆深色颜色', + type: 'color', + icon: { name: 'square.and.pencil', color: '#3a0ca3', }, + needLoading: false, + default: this.dateBeanNightColor(), + } + ] + }, + { + items: [ + { + name: 'redPackageDayColor', + label: '红包浅色颜色', + type: 'color', + icon: { name: 'pencil.and.outline', color: '#3a86ff', }, + needLoading: false, + default: this.redPackageDayColor(), + }, + { + name: 'redPackageNightColor', + label: '红包深色颜色', + type: 'color', + icon: { name: 'square.and.pencil', color: '#3a0ca3', }, + needLoading: false, + default: this.redPackageNightColor(), + } + ] + }, + { + items: [ + { + name: 'expiredRedPackageDayColor', + label: '快过期红包浅色颜色', + type: 'color', + icon: { name: 'pencil.and.outline', color: '#3a86ff', }, + needLoading: false, + default: this.expiredRedPackageDayColor(), + }, + { + name: 'expiredRedPackageNightColor', + label: '快过期红包深色颜色', + type: 'color', + icon: { name: 'square.and.pencil', color: '#3a0ca3', }, + needLoading: false, + default: this.expiredRedPackageNightColor(), + } + ] + }, + { + items: [ + { + name: 'fruitDayColor', + label: '农场浅色颜色', + type: 'color', + icon: { name: 'pencil.and.outline', color: '#3a86ff', }, + needLoading: false, + default: this.fruitDayColor(), + }, + { + name: 'fruitNightColor', + label: '农场深色颜色', + type: 'color', + icon: { name: 'square.and.pencil', color: '#3a0ca3', }, + needLoading: false, + default: this.fruitNightColor(), + } + ] + }, + { + items: [ + { + name: 'baiTiaoDayColor', + label: '白条浅色颜色', + type: 'color', + icon: { name: 'pencil.and.outline', color: '#3a86ff', }, + needLoading: false, + default: this.baiTiaoDayColor(), + }, + { + name: 'baiTiaoNightColor', + label: '白条深色颜色', + type: 'color', + icon: { name: 'square.and.pencil', color: '#3a0ca3', }, + needLoading: false, + default: this.baiTiaoNightColor(), + } + ] + }, + { + items: [ + { + name: 'packageFlowTitleDayColor', + label: '物流标题浅色颜色', + type: 'color', + icon: { name: 'pencil.and.outline', color: '#3a86ff', }, + needLoading: false, + default: this.packageFlowTitleDayColor(), + }, + { + name: 'packageFlowTitleNightColor', + label: '物流标题深色颜色', + type: 'color', + icon: { name: 'square.and.pencil', color: '#3a0ca3', }, + needLoading: false, + default: this.packageFlowTitleNightColor(), + } + ] + }, + { + items: [ + { + name: 'packageFlowDescDayColor', + label: '物流明细浅色颜色', + type: 'color', + icon: { name: 'pencil.and.outline', color: '#3a86ff', }, + needLoading: false, + default: this.packageFlowDescDayColor(), + }, + { + name: 'packageFlowDescNightColor', + label: '物流明细深色颜色', + type: 'color', + icon: { name: 'square.and.pencil', color: '#3a0ca3', }, + needLoading: false, + default: this.packageFlowDescNightColor(), + } + ] + }, + ] + }, + + ], + // cell类型的item点击回调 + onItemClick: async (item) => { + let widgetSetting = this.readWidgetSetting(); + let insertDesc = ''; + switch (item.name) { + case 'jdLogin': + let ck = widgetSetting?.cookie ?? ''; + let selectIndex = await this.generateAlert('登录信息', '1.网页登录\n2.自己抓取填入ck', ['网页登录', '直接填入']); + if (selectIndex == 0) { + const webview = new WebView(); + await webview.loadURL('https://plogin.m.jd.com/login/login?appid=300&returnurl=https%3A%2F%2Fwqs.jd.com%2Fmy%2Faccountv2.shtml%3Fsceneval%3D2%26jxsid%3D16323729562173504755%26ptag%3D7155.1.2&source=wq_passport'); + await webview.present(); + // + const REQ = new Request('https://ms.jr.jd.com/gw/generic/bt/h5/m/firstScreenNew',); + REQ.method = 'POST'; + REQ.body = 'reqData={"clientType":"ios","clientVersion":"13.2.3","deviceId":"","environment":"3"}'; + await REQ.loadJSON(); + const cookies = REQ.response.cookies; + const cookie = []; + cookies.forEach((item) => { + const value = `${item.name}=${item.value}`; + if (item.name === 'pt_key') cookie.push(value); + if (item.name === 'pt_pin') cookie.push(value) + }); + if (cookie.length != 0) { + ck = cookie.join(';'); + widgetSetting['cookie'] = ck; + } + } else { + await this.generateInputAlert({ + title: '登录信息填写', + message: '填入抓取京东的cookie', + options: [ + { hint: '请输入cookie', value: widgetSetting?.cookie ?? '' }, + ] + }, async (inputArr) => { + this.reset = true; + ck = inputArr[0].value; + // 保存配置 + widgetSetting['cookie'] = ck; + }); + } + this.cookie = ck; + console.log("2===================="); + console.log(this.cookie); + console.log("2===================="); + insertDesc = ck?.length > 0 ? '已登录' : '未登录'; + break; + } + // 写入更新配置 + this.writeWidgetSetting(widgetSetting); + return { + desc: { value: insertDesc }, + }; + }, + }; + } + + async render({ widgetSetting }) { + return await this.provideMediumWidget(widgetSetting); + } + + async provideMediumWidget() { + await this.loadData(); + const { details } = this.packageFlow; + // ---------------------------------------- + const widgetSize = this.getWidgetSize('中号'); + //================================= + const widget = new ListWidget(); + widget.setPadding(0, 0, 0, 0); + //================================= + let stack = widget.addStack(); + if (details.length === 0) { + this.vSpacer = 4; + stack.addSpacer(); + } else { + this.vSpacer = 0; + stack.addSpacer(6); + } + stack.setPadding(10, 10, 10, 10); + stack.size = new Size(widgetSize.width, widgetSize.height); + stack.layoutVertically(); + let topStack = stack.addStack(); + topStack.layoutHorizontally(); + let userInfoStack = topStack.addStack(); + //================================= + await this.userInfoStack(userInfoStack); + topStack.addSpacer(14); + let detailInfoStack = topStack.addStack(); + await this.detailInfoStack(detailInfoStack, widgetSize); + //================================= + await this.packageFlowInfoStack(stack, widgetSize.width); + //================================= + if (details.length === 0) { + stack.addSpacer(); + } else { + stack.addSpacer(6); + } + return widget; + } + + async userInfoStack(userInfoStack) { + let stackSize = new Size(this.defaultPreference.leftStackWidth, 0); + const extra = 10; + const avatarSize = new Size(63 + this.vSpacer * 2, 63 + this.vSpacer * 2); + const jvBgColor = new Color('#ffde7d', 0.8); + //================================ + let imgSpan; + let textSpan; + let image; + //================================ + userInfoStack.layoutVertically(); + userInfoStack.size = stackSize; + let infoStack = userInfoStack.addStack(); + infoStack.size = stackSize; + infoStack.centerAlignContent(); + let avatarStack = infoStack.addStack(); + let avatarImage = await this.circleCropImage(this.userInfo.headImageUrl); + const avatarImageSize = avatarImage.size; + let plusBgImage = await this.getImageByUrl(`${this.getRemoteRootPath()}/img/jd/bg_plus_avatar.png`); + // + const ctx = new DrawContext(); + ctx.opaque = false; + ctx.respectScreenScale = true; + let rect = new Rect(0, 0, avatarImageSize.width + extra, avatarImageSize.height + extra); + ctx.size = new Size(rect.width, rect.height); + ctx.drawImageAtPoint(avatarImage, new Point(extra / 2, extra / 2 + 2 * Device.screenScale() - 10)); + avatarStack.size = avatarSize; + avatarStack.backgroundImage = ctx.getImage(); + // + if (this.userInfo.isPlusVip) { + imgSpan = avatarStack.addImage(plusBgImage); + imgSpan.imageSize = avatarSize; + } + //================================ + userInfoStack.addSpacer(10 + this.vSpacer); + let nameStack = userInfoStack.addStack(); + nameStack.size = stackSize; + nameStack.centerAlignContent(); + if (this.userInfo.isPlusVip) { + image = await this.getImageByUrl(`${this.getRemoteRootPath()}/img/jd/icon_plus.jpg`); + imgSpan = nameStack.addImage(image); + imgSpan.imageSize = new Size(15, 15); + nameStack.addSpacer(8); + } + textSpan = nameStack.addText(this.userInfo.nickname); + textSpan.lineLimit = 1; + textSpan.textColor = Color.dynamic(new Color(this.nicknameDayColor()), new Color(this.nicknameNightColor())); + textSpan.font = Font.regularSystemFont(12); + //================================ + userInfoStack.addSpacer(5 + this.vSpacer / 2); + let jvStackContainer = userInfoStack.addStack(); + jvStackContainer.size = stackSize; + jvStackContainer.centerAlignContent(); + let jvStack = jvStackContainer.addStack(); + image = await this.getImageByUrl(`${this.getRemoteRootPath()}/img/jd/bg_red_rect.png`); + jvStack.backgroundColor = jvBgColor; + jvStack.backgroundImage = image; + jvStack.setPadding(2, 8, 2, 8); + textSpan = jvStack.addText(`京享值 ${this.userInfo.jvalue}`); + textSpan.textOpacity = 0.9; + textSpan.textColor = Color.dynamic(new Color(this.jvDayColor()), new Color(this.jvNightColor())); + textSpan.font = Font.regularSystemFont(10); + jvStack.cornerRadius = 10; + } + + async detailInfoStack(detailInfoStack, widgetSize) { + const icon = this.getRandowArrValue(this.defaultPreference.centerIconUrls); + let btInfoIndex = parseInt(this.keyGet('btInfoIndex', '0')); + const bannerSize = new Size(34 + this.vSpacer, 34 + this.vSpacer); + const textBannerSize = new Size(30 + this.vSpacer, 30 + this.vSpacer); + const normalBeanSize = new Size(16, 16); + const expireBeanSize = new Size(13, 13); + const emojiSize = new Size(48, 48); + const beanColor = Color.dynamic(new Color(this.beanDayColor()), new Color(this.beanNightColor())); + const expiredBeanColor = Color.dynamic(new Color(this.expiredBeanDayColor()), new Color(this.expiredBeanNightColor())); + //================================ + let imgSpan; + let textSpan; + let image; + //================================ + detailInfoStack.layoutVertically(); + let totalBeanStack = detailInfoStack.addStack(); + totalBeanStack.centerAlignContent(); + image = await this.getImageByUrl(`${this.getRemoteRootPath()}/img/jd/ic_jd_logo.png`); + imgSpan = totalBeanStack.addImage(image); + imgSpan.imageSize = bannerSize; + // + totalBeanStack.addSpacer(8); + image = await this.getImageByUrl(`${this.getRemoteRootPath()}/img/jd/ic_jd_text.jpg`); + imgSpan = totalBeanStack.addImage(image); + imgSpan.imageSize = textBannerSize; + // + totalBeanStack.addSpacer(12); + textSpan = totalBeanStack.addText(`${this.beanInfo.totalAmount}`); + textSpan.textColor = beanColor; + textSpan.font = Font.boldSystemFont(20); + // + totalBeanStack.addSpacer(2); + image = await this.getImageByUrl(`${this.getRemoteRootPath()}/img/jd/ic_bean_color.jpg`); + imgSpan = totalBeanStack.addImage(image); + imgSpan.imageSize = normalBeanSize; + // ------------------------ + totalBeanStack.addSpacer(12); + textSpan = totalBeanStack.addText(`${this.beanInfo.almostExpired}`); + textSpan.textColor = expiredBeanColor; + textSpan.font = Font.mediumSystemFont(14); + // + totalBeanStack.addSpacer(2); + image = await this.getImageByUrl(`${this.getRemoteRootPath()}/img/jd/icon_bean_yellow.png`); + imgSpan = totalBeanStack.addImage(image); + imgSpan.imageOpacity = 0.6; + imgSpan.imageSize = expireBeanSize; + totalBeanStack.url = this.defaultPreference.link_bean_detail; + //================================ + detailInfoStack.addSpacer(this.vSpacer * 2); + let beanInfoStack = detailInfoStack.addStack(); + beanInfoStack.size = new Size(widgetSize.width - this.defaultPreference.leftStackWidth - 30, 0); + //================================ + beanInfoStack.addSpacer(4); + let yesterdayBeanStack = beanInfoStack.addStack(); + yesterdayBeanStack.layoutVertically(); + textSpan = yesterdayBeanStack.addText(`昨天`); + textSpan.textColor = Color.dynamic(new Color(this.dateBeanTitleDayColor()), new Color(this.dateBeanTitleNightColor())); + textSpan.font = Font.regularSystemFont(12); + yesterdayBeanStack.addSpacer(5); + yesterdayBeanStack.url = this.defaultPreference.link_bean_detail; + // + textSpan = yesterdayBeanStack.addText(`${this.beanInfo.yesterdayGain}`); + textSpan.textColor = Color.dynamic(new Color(this.dateBeanDayColor()), new Color(this.dateBeanNightColor())); + textSpan.font = Font.regularSystemFont(25); + //================================ + beanInfoStack.addSpacer(); + image = await this.getImageByUrl(`${this.getRemoteRootPath()}/${icon}`); + imgSpan = beanInfoStack.addImage(image); + imgSpan.imageSize = emojiSize; + imgSpan.imageOpacity = 0.8; + //================================ + beanInfoStack.addSpacer(); + let todayBeanStack = beanInfoStack.addStack(); + todayBeanStack.layoutVertically(); + textSpan = todayBeanStack.addText(`今天`); + textSpan.textColor = Color.dynamic(new Color(this.dateBeanTitleDayColor()), new Color(this.dateBeanTitleNightColor())); + textSpan.font = Font.regularSystemFont(12); + todayBeanStack.addSpacer(5); + todayBeanStack.url = this.defaultPreference.link_bean_detail; + // + textSpan = todayBeanStack.addText(`${this.beanInfo.todayGain}`); + textSpan.textColor = Color.dynamic(new Color(this.dateBeanDayColor()), new Color(this.dateBeanNightColor())); + textSpan.font = Font.regularSystemFont(25); + beanInfoStack.addSpacer(10); + //================================ + const stackSize = 3; + detailInfoStack.addSpacer(4); + if (btInfoIndex == 1 && this.fruit.simpleName?.length > 0) { + await this.fruitInfoStack(detailInfoStack); + } else if (btInfoIndex == 2 && this.baitiao.amount != 0) { + await this.baiTiaoStack(detailInfoStack); + } else { + await this.redPackageStack(detailInfoStack); + } + btInfoIndex++; + btInfoIndex = btInfoIndex % stackSize; + this.keySave('btInfoIndex', `${btInfoIndex}`); + //================================ + } + + async redPackageStack(detailInfoStack) { + //================================ + let imgSpan; + let textSpan; + let image; + //================================ + const walletSize = new Size(25, 25); + const redPackageColor = Color.dynamic(new Color(this.redPackageDayColor()), new Color(this.redPackageNightColor())); + const expiredRedPackageColor = Color.dynamic(new Color(this.expiredRedPackageDayColor()), new Color(this.expiredRedPackageNightColor())); + //================================ + detailInfoStack.addSpacer(2); + let walletStack = detailInfoStack.addStack(); + walletStack.centerAlignContent(); + walletStack.addSpacer(6); + image = await this.getImageByUrl(`${this.getRemoteRootPath()}/img/jd/icon_wallet.jpg`); + imgSpan = walletStack.addImage(image); + imgSpan.imageSize = walletSize; + // + walletStack.addSpacer(13) + textSpan = walletStack.addText(`${this.redPackage.amount}`); + textSpan.textColor = redPackageColor; + textSpan.font = Font.mediumSystemFont(18); + // + walletStack.addSpacer(4) + textSpan = walletStack.addText(`元`); + textSpan.textColor = redPackageColor; + textSpan.font = Font.mediumSystemFont(11); + // + textSpan = walletStack.addText(`,即将过期: ${this.redPackage.expired}元`); + textSpan.textColor = expiredRedPackageColor; + textSpan.font = Font.mediumSystemFont(11); + } + + async fruitInfoStack(detailInfoStack) { + //================================ + let imgSpan; + let textSpan; + let image; + //================================ + const fruitSize = new Size(18, 18); + const fruitColor = Color.dynamic(new Color(this.fruitDayColor()), new Color(this.fruitNightColor())); + //================================ + detailInfoStack.addSpacer(6); + let fruitStack = detailInfoStack.addStack(); + fruitStack.url = this.defaultPreference.link_fruit; + fruitStack.centerAlignContent(); + fruitStack.addSpacer(6); + image = await this.getImageByUrl(`${this.getRemoteRootPath()}/img/jd/icon_fruit.png`); + imgSpan = fruitStack.addImage(image); + imgSpan.imageSize = fruitSize; + // + fruitStack.addSpacer(8); + const simpleName = this.fruit.simpleName; + let simpleText = simpleName.length >= 6 ? simpleName.slice(0, 7) : simpleName; + let showText = `农场『${simpleText}』进度:`; + textSpan = fruitStack.addText(showText); + textSpan.textColor = fruitColor; + textSpan.font = Font.regularSystemFont(showText.length > 12 ? 11 : 12); + textSpan.lineLimit = 1; + // + fruitStack.addSpacer(6); + textSpan = fruitStack.addText(`${this.fruit.percent}`); + textSpan.textColor = fruitColor; + textSpan.font = Font.boldSystemFont(12); + textSpan.lineLimit = 1; + } + + async baiTiaoStack(detailInfoStack) { + //================================ + let imgSpan; + let textSpan; + let image; + //================================ + const baiTiaoSize = new Size(25, 25); + const baiTiaoColor = Color.dynamic(new Color(this.baiTiaoDayColor()), new Color(this.baiTiaoNightColor()));; + //================================ + detailInfoStack.addSpacer(2); + let baiTiaoStack = detailInfoStack.addStack(); + baiTiaoStack.centerAlignContent(); + baiTiaoStack.addSpacer(6); + image = await this.getImageByUrl(`${this.getRemoteRootPath()}/img/jd/icon_baitiao.jpg`); + imgSpan = baiTiaoStack.addImage(image); + imgSpan.imageSize = baiTiaoSize; + // + baiTiaoStack.addSpacer(8); + const monthIndex = this.baitiao?.desc?.indexOf('月'); + textSpan = baiTiaoStack.addText(`${monthIndex == -1 ? this.baitiao.title : `${this.baitiao.desc}待还款:`}`); + textSpan.textColor = baiTiaoColor; + textSpan.font = Font.regularSystemFont(11); + // + baiTiaoStack.addSpacer(4); + textSpan = baiTiaoStack.addText(`${this.baitiao.amount}`); + textSpan.textColor = baiTiaoColor; + textSpan.font = Font.boldSystemFont(14); + textSpan.lineLimit = 1; + // + if (monthIndex == -1) { + textSpan = baiTiaoStack.addText(`,${this.baitiao.desc}。`); + textSpan.textColor = baiTiaoColor; + textSpan.font = Font.regularSystemFont(11); + textSpan.lineLimit = 1; + } + } + + async packageFlowInfoStack(stack, width) { + const { details } = this.packageFlow; + if (details.length === 0) { + return + } + let keyIndex = this.keyGet('flowIndex', '0'); + keyIndex++; + keyIndex = keyIndex % details.length; + this.keySave('flowIndex', `${keyIndex}`); + const itemFlow = details[keyIndex]; + //================================ + let imgSpan; + let textSpan; + let image; + //================================ + const coverSize = new Size(23, 23); + const titleColor = Color.dynamic(new Color(this.packageFlowTitleDayColor()), new Color(this.packageFlowTitleNightColor())); + const descColor = Color.dynamic(new Color(this.packageFlowDescDayColor()), new Color(this.packageFlowDescNightColor())); + //================================ + stack.addSpacer(4); + let packageFlowStack = stack.addStack(); + packageFlowStack.size = new Size(width - 16, 0); + packageFlowStack.addSpacer(8); + packageFlowStack.centerAlignContent(); + packageFlowStack.url = this.defaultPreference.link_package; + // + image = await this.getImageByUrl(itemFlow.cover); + imgSpan = packageFlowStack.addImage(image); + imgSpan.imageOpacity = 0.8; + imgSpan.imageSize = coverSize; + imgSpan.cornerRadius = 4; + // + packageFlowStack.addSpacer(8); + let infoStack = packageFlowStack.addStack(); + infoStack.layoutVertically(); + // + textSpan = infoStack.addText(`【${this.getDateStr(new Date(itemFlow.time), 'MM-dd HH:mm')}】${itemFlow.title}`); + textSpan.textColor = titleColor; + textSpan.font = Font.regularSystemFont(10); + textSpan.textOpacity = 0.8; + textSpan.lineLimit = 1; + // + textSpan = infoStack.addText(` ${itemFlow.desc}`); + textSpan.textColor = descColor; + textSpan.font = Font.regularSystemFont(9); + textSpan.textOpacity = 0.7; + textSpan.lineLimit = 1; + // + packageFlowStack.addSpacer(); + stack.addSpacer(2); + } + + async loadData() { + await this.userInfoFun(); + await this.redPackageInfoFun(); + await this.loadNearbyBeanDetailsFun(); + await this.myBeanInfoFun(); + await this.packageFlowFun(); + await this.baiTiaoInfoFun(); + await this.fruitInfoFun(); + } + + wrapperValue = (value) => value ?? '--'; + + // --------------------------NET START-------------------------- + joinQueryParams = (param) => { + let params = Object.keys(param).map(key => + `${key}=${param[key]}` + ); + params = params.join('&'); + return `?${encodeURI(params)}`; + } + + /** + * 个人信息 + */ + userInfoFun = async () => { + const url = `https://api.m.jd.com/api${this.joinQueryParams(this.defaultPreference.userInfoParam)}`; + const options = { + headers: { + ...this.defaultHeaders, + 'origin': 'https://wqs.jd.com', + 'referer': 'https://wqs.jd.com/', + }, + }; + const RES = await this.httpGet(url, { ...options, dataSuccess: (res) => res?.retcode == '0' }); + if (RES?.retcode == '0') { + const { base, isPlusVip } = RES; + if (base) { + const { levelName, jvalue, nickname, headImageUrl } = base; + const headImgUrlTmp = headImageUrl?.replace(/_mid/g, '_big'); + this.userInfo = { + ...this.userInfo, + levelName: this.wrapperValue(levelName), + jvalue: this.wrapperValue(jvalue), + nickname: this.wrapperValue(nickname), + headImageUrl: headImgUrlTmp?.length == 0 ? `${this.getRemoteRootPath()}/img/jd/icon_avatar_jd.png` : headImgUrlTmp, + isPlusVip, + } + } + } else { + console.error('用户信息获取失败!'); + } + console.log(`用户信息:`); + console.log( + JSON.stringify(RES, null, 2) + ); + this.logDivider(); + } + + /** + * 红包信息 + */ + redPackageInfoFun = async () => { + const url = `https://api.m.jd.com/api${this.joinQueryParams(this.defaultPreference.redPackageParam)}`; + const options = { + headers: { + ...this.defaultHeaders, + 'origin': 'https://wqs.jd.com', + 'referer': 'https://wqs.jd.com/', + }, + }; + const RES = await this.httpGet(url, { ...options }); + if (RES?.code == 0) { + const { result } = RES; + this.redPackage.amount = result.balance ? result.balance : 0; + if (result.expiredBalance && result.expiredBalance !== '') { + this.redPackage.expired = result.expiredBalance; + } + } else { + console.error('红包信息获取失败!'); + } + console.log(`红包信息:`); + console.log( + JSON.stringify(RES, null, 2) + ); + this.logDivider(); + } + + /** + * 我的京豆 + */ + myBeanInfoFun = async () => { + const url = `https://api.m.jd.com${this.joinQueryParams(this.defaultPreference.myBeanParam)}`; + const options = { + headers: { + ...this.defaultHeaders, + 'origin': 'https://wqs.jd.com', + 'referer': 'https://wqs.jd.com/', + }, + }; + const RES = await this.httpGet(url, { ...options, dataSuccess: (res) => res?.beanNum != undefined }); + const { beanNum, willExpireNum } = RES; + this.jdNumChange = this.jdNum == 0 || beanNum == 0 || this.jdNum != beanNum; + if (RES?.list?.length > 0) { + this.beanInfo = { + ...this.beanInfo, + totalAmount: this.wrapperValue(beanNum), + almostExpired: this.wrapperValue(willExpireNum), + } + } else { + console.error('我的京豆信息获取失败!'); + } + console.log(`京豆总数&快过期京豆数:`); + delete RES.list; + console.log( + JSON.stringify({ beanNum, willExpireNum }, null, 2) + ); + this.logDivider(); + this.useFileManager().writeStringCache('jdBean', `${beanNum}`); + } + + /** + * 获取昨天跟今天的京豆明细 + * @param {Number} page + */ + loadNearbyBeanDetailsFun = async () => { + if (this.jdNumChange) { + const currDate = new Date(); + const todayDateStr = this.getDateStr(currDate, 'yyyy-MM-dd'); + const yesterdayDateStr = this.getDateStr(new Date((+new Date()) - 86400000), 'yyyy-MM-dd'); + let page = 1; + let todayDetails = []; + let yesterdayDetails = []; + + const { details, willExpireNum } = await this.beanDetailsFun(page); + todayDetails = todayDetails.concat(details.filter(detail => detail.date.indexOf(todayDateStr) !== -1)); + yesterdayDetails = yesterdayDetails.concat(details.filter(detail => detail.date.indexOf(yesterdayDateStr) !== -1)); + + let yesterdayGain = 0; + yesterdayDetails.map(detail => yesterdayGain = parseInt(detail.amount) + yesterdayGain); + console.log(`昨日京豆总收获:${yesterdayGain}`); + this.logDivider(); + let todayGain = 0; + todayDetails.map(detail => todayGain = parseInt(detail.amount) + todayGain); + console.log(`今日京豆总收获:${todayGain}`); + this.logDivider(); + this.beanInfo = { + ...this.beanInfo, + willExpireNum, + yesterdayGain: this.wrapperValue(yesterdayGain), + todayGain: this.wrapperValue(todayGain), + } + // + this.useFileManager().writeJSONCache('bean', this.beanInfo); + } else { + console.log(`获取缓存京豆明细->`); + this.beanInfo = this.useFileManager().readJSONCache('bean'); + } + console.log(`我的京豆明细:`); + console.log( + JSON.stringify(this.beanInfo, null, 2) + ); + this.logDivider(); + } + + /** + * 获取京豆明细列表 + */ + beanDetailsFun = async (page = 1) => { + const url = `https://api.m.jd.com/?appid=jd-cphdeveloper-m&functionId=myBean&appCode=ms0ca95114&g_ty=ajax&g_login_type=1&sceneval=2&loginType=2&body=${this.joinQueryParams({ "tenantCode": "jgm", "bizModelCode": 6, "bizModeClientType": "M", "externalLoginType": 1 })}`; + const options = { + useCache: false, + headers: { + ...this.defaultHeaders, + 'origin': `https://wqs.jd.com`, + 'referer': `https://wqs.jd.com`, + }, + }; + const RES = await this.httpGet(url, { ...options, dataSuccess: (res) => res?.list }); + let details = []; + let willExpireNum = 0; + if (RES.list) { + const { list = [] } = RES; + willExpireNum = RES.willExpireNum; + details = list.map(detail => ({ amount: detail.amount, date: detail.createDate })) + } else { + console.error(`京豆明细列表获取失败!`); + } + return { details, willExpireNum }; + } + + /** + * 物流 + */ + packageFlowFun = async () => { + const url = `https://api.m.jd.com/client.action?t=${+new Date()}&loginType=2&loginWQBiz=golden-trade&appid=m_core&client=MacIntel&clientVersion=&build=&osVersion=iOS&screen=390*844&networkType=4g&partner=&forcebot=&d_brand=iPhone&d_model=iPhone&lang=zh-CN&scope=&sdkVersion=&openudid=&uuid=1623999132064880641936&x-api-eid-token=jdd03GJCIKBSNYKA7Z4BCQJDAQY6LWVGIOOL5AN4LK4A5PJ6FTXDW6UOELGTW4NFDWTMBJVAYDGWIWIVSMA6GAIAQKYKK3YAAAAMJFYNLBUQAAAAAC43VSGNQ7GABGMX&functionId=order_list_m&body=%7B%22appType%22%3A3%2C%22bizType%22%3A%222%22%2C%22source%22%3A%22-1%22%2C%22deviceUUId%22%3A%22%22%2C%22platform%22%3A3%2C%22sceneval%22%3A%222%22%2C%22systemBaseInfo%22%3A%22%7B%5C%22pixelRatio%5C%22%3A3%2C%5C%22screenWidth%5C%22%3A390%2C%5C%22screenHeight%5C%22%3A844%2C%5C%22windowWidth%5C%22%3A390%2C%5C%22windowHeight%5C%22%3A844%2C%5C%22statusBarHeight%5C%22%3Anull%2C%5C%22safeArea%5C%22%3A%7B%5C%22bottom%5C%22%3A0%2C%5C%22height%5C%22%3A0%2C%5C%22left%5C%22%3A0%2C%5C%22right%5C%22%3A0%2C%5C%22top%5C%22%3A0%2C%5C%22width%5C%22%3A0%7D%2C%5C%22bluetoothEnabled%5C%22%3Afalse%2C%5C%22locationEnabled%5C%22%3Afalse%2C%5C%22wifiEnabled%5C%22%3Afalse%2C%5C%22deviceOrientation%5C%22%3A%5C%22portrait%5C%22%2C%5C%22benchmarkLevel%5C%22%3A-1%2C%5C%22brand%5C%22%3A%5C%22iPhone%5C%22%2C%5C%22model%5C%22%3A%5C%22iPhone%5C%22%2C%5C%22system%5C%22%3A%5C%22iOS%5C%22%2C%5C%22platform%5C%22%3A%5C%22MacIntel%5C%22%2C%5C%22SDKVersion%5C%22%3A%5C%22%5C%22%2C%5C%22enableDebug%5C%22%3Afalse%2C%5C%22language%5C%22%3A%5C%22zh-CN%5C%22%2C%5C%22version%5C%22%3A%5C%22%5C%22%2C%5C%22theme%5C%22%3A%5C%22light%5C%22%2C%5C%22fontSizeSetting%5C%22%3Anull%2C%5C%22albumAuthorized%5C%22%3Afalse%2C%5C%22cameraAuthorized%5C%22%3Afalse%2C%5C%22locationAuthorized%5C%22%3Afalse%2C%5C%22microphoneAuthorized%5C%22%3Afalse%2C%5C%22notificationAuthorized%5C%22%3Afalse%2C%5C%22notificationAlertAuthorized%5C%22%3Afalse%2C%5C%22notificationBadgeAuthorized%5C%22%3Afalse%2C%5C%22notificationSoundAuthorized%5C%22%3Afalse%2C%5C%22phoneCalendarAuthorized%5C%22%3Afalse%2C%5C%22locationReducedAccuracy%5C%22%3Afalse%2C%5C%22environment%5C%22%3A%5C%22%5C%22%7D%22%2C%22orderListTag%22%3A128%2C%22curTab%22%3A%22waitReceipt%22%2C%22page%22%3A1%2C%22pageSize%22%3A10%2C%22tenantCode%22%3A%22jgm%22%2C%22bizModelCode%22%3A%222%22%2C%22bizModeClientType%22%3A%22M%22%2C%22bizModeFramework%22%3A%22Taro%22%2C%22externalLoginType%22%3A1%2C%22token%22%3A%223852b12f8c4d869b7ed3e2b3c68c9436%22%2C%22appId%22%3A%22m91d27dbf599dff74%22%7D&h5st=20230707101110131%3B55i653mnt9zg6it3%3B44550%3Btk03wbe7f1cc218nzb3KRxPU2bI9P5wmvtQDLxHFdLm-rkwr24jjlhi9hLik3nWEVW2eWjMVKz0ygZneJe9X6YRHYqqE%3B23ff4d1fd278262b7f332b647ddbfe4d%3B4.1%3B1688695870131%3B5f7a486ba29fbc5d176654e46394ec5e0bd88693c61e67c8c7fe08d7d4a9d656c1e3ef12e12f644ae066ec4ea392564125e722195b5d50800bb957380a05952c7d2ffd1e5825ea5e52f63c89d97c65e80c75c93d497fe2d308a6e0e8cf8608fc7cf1e8c3a889f77bc47a60e6df58c66a10828446464bb6205cbeb99c6e107f1e5854ee6f4560872931ef2f39458e418ca6872476d2e7cb032c7b91ad4be9b349bdad1c6d62166c8b7289b414c463623656f7d6a48550c2bae4143c1e9308fc23fa3146b2eca29a4d534f91f9109b9db6`; + const options = { + headers: { + ...this.defaultHeaders, + 'sec-fetch-mode': 'cors', + 'origin': 'https://trade.m.jd.com', + 'referer': 'https://trade.m.jd.com/', + }, + }; + const RES = await this.httpGet(url, { ...options, dataSuccess: (res) => res?.body?.baseInfo != undefined }); + const { code, body = {} } = RES; + console.log(RES); + if (code == '0') { + const orderList = body.orderList; + const count = parseInt(orderList?.length ?? 0); + this.packageFlow.count = count; + if (count > 0) { + this.packageFlow.details = orderList.map(order => ({ + cover: order.wareInfoList[0].imageUrl, + title: this.wrapperValue(order.wareInfoList[0].wareName), + desc: this.wrapperValue(order.progressInfo?.content || order.orderStatusInfo?.orderStatusName), + time: this.wrapperValue(order.progressInfo?.tip || ''), + })); + } + console.log(`物流信息:`); + console.log( + JSON.stringify(this.packageFlow, null, 2) + ); + this.logDivider(); + } else { + console.error('物流信息获取失败!'); + } + } + + baiTiaoInfoFun = async () => { + const url = 'https://ms.jr.jd.com/gw/generic/bt/h5/m/firstScreenNew'; + const options = { + body: 'reqData={"clientType":"ios","clientVersion":"13.2.3","deviceId":"","environment":"3"}', + headers: { + ...this.defaultHeaders + }, + }; + const RES = await this.httpPost(url, { ...options, dataSuccess: (res) => res?.resultCode == '0' }); + const { resultData } = RES; + if (resultData) { + const bill = resultData.data?.bill; + if (bill) { + this.baitiao.title = this.wrapperValue(bill.title); + this.baitiao.amount = this.wrapperValue(bill.amount)?.replace(/,/g, ''); + this.baitiao.desc = this.wrapperValue(bill?.buttonName)?.replace(/最近还款日/, ''); + } + console.log(`白条信息:`); + console.log( + JSON.stringify(this.baitiao, null, 2) + ); + this.logDivider(); + } else { + console.log('可能没开通白条!'); + } + } + + /** + * 东东农场 + */ + fruitInfoFun = async () => { + const url = 'https://api.m.jd.com/client.action?functionId=initForFarm'; + const options = { + useCache: this.useFruitInfoCache, + body: 'body=version:4&appid=wh5&clientVersion=9.1.0', + headers: { + ...this.defaultHeaders + }, + }; + const RES = await this.httpPost(url, { ...options, dataSuccess: (res) => res?.message == null }); + if (RES?.message == null) { + const { farmUserPro } = RES; + if (farmUserPro) { + const { treeState, name, goodsImage, treeTotalEnergy, treeEnergy, simpleName } = farmUserPro; + let percent = '--'; + if (treeState == 2 || treeState == 3) { + this.useFruitInfoCache = true; + percent = "100%"; + this.notify('东东农场', `⊱${simpleName}⊰可以兑换啦~`); + } else { + this.useFruitInfoCache = false; + percent = Math.floor((treeEnergy / treeTotalEnergy) * 100) + "%"; + } + this.fruit = { + name: this.wrapperValue(name), + simpleName: this.wrapperValue(simpleName), + goodsImage, + percent + } + } + } else { + console.error('东东农场信息获取失败!'); + } + console.log(`东东农场信息:`); + console.log( + JSON.stringify(this.fruit, null, 2) + ); + this.logDivider(); + } + + // --------------------------NET END-------------------------- +} + +await new Widget(Script.name()).run(); + +// ================================================================================= +// ================================================================================= +async function downloadLSPDependency() { + let fm = FileManager.local(); + const fileName = fm.joinPath(fm.documentsDirectory(), `LSP/${Script.name()}/settings.json`); + const fileExists = fm.fileExists(fileName); + let cacheString = '{}'; + if (fileExists) { + cacheString = fm.readString(fileName); + } + const use_github = JSON.parse(cacheString)['use_github']; + const dependencyURL = `${use_github ? remoteGithubRoot : remoteHomeLandRoot}/_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 || update) { + console.log(`🤖 DEV 开始${update ? '更新' + dependencyLSP : '下载'}依赖~`); + keySave('VERSION', dependencyLSP); + await downloadFile2Scriptable('_LSP', dependencyURL); + } + return; + } + + ////////////////////////////////////////////////////////// + console.log(`----------------------------------------`); + const remoteDependencyExit = fm.fileExists(`${cacheDir}/_LSP.js`); + console.log(`🚀 RELEASE依赖文件${remoteDependencyExit ? '已存在 ✅' : '不存在 🚫'}`); + // ------------------------------ + if (!remoteDependencyExit || update) { // 下载依赖 + // 创建根目录 + if (!fm.fileExists(cacheDir)) { + fm.createDirectory(cacheDir, true); + } + // 下载 + 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 { + console.error('🚫 获取依赖环境脚本失败,请重试!'); + console.log(`----------------------------------------`); + } + } +} + +/** + * 获取保存的文件名 + * @param {*} fileName + * @returns + */ +function getSaveFileName(fileName) { + const hasSuffix = fileName.lastIndexOf(".") + 1; + return !hasSuffix ? `${fileName}.js` : fileName; +}; + +/** + * 保存文件到Scriptable软件目录,app可看到 + * @param {*} fileName + * @param {*} content + * @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; + } +}; + +/** + * 下载js文件到Scriptable软件目录 + * @param {*} moduleName 名称 + * @param {*} url 在线地址 + * @returns + */ +async function downloadFile2Scriptable(moduleName, url) { + const req = new Request(url); + const content = await req.loadString(); + return saveFile2Scriptable(`${moduleName}`, content); +}; + +/** + * 是否需要更新依赖版本 + */ +function needUpdateDependency() { + return dependencyLSP != keyGet('VERSION'); +}; + +function keySave(cacheKey, cache) { + if (cache) { + Keychain.set(cacheKey, cache); + } +} + +function keyGet(cacheKey, defaultValue = '') { + if (Keychain.contains(cacheKey)) { + return Keychain.get(cacheKey); + } else { + return defaultValue; + } +} +// ================================================================================= +// ================================================================================= \ No newline at end of file diff --git a/README.md b/README.md index 0eb5eb0..8cc3562 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,79 @@ # Scriptable -scriptable App 脚本分享 -新增模板js,可以通过封装函数进行积木一般的搭建进行搭建自己的小组件 -https://www.yuque.com/docs/share/9fa2aed5-b670-4d28-bd5e-9b622041eddd?# 《Scriptable简单教程》 +公众号:杂货万事屋,公众号回复对应关键字获取下载脚本,或者直接源码copy自己新增文件。 + +--- + +![公众号](https://raw.githubusercontent.com/Enjoyee/Scriptable/v2/img/other/wechat_pay.png) + +--- + +### `S13,万年历`: + +![](https://raw.githubusercontent.com/Enjoyee/Scriptable/v2/preview/s13.jpeg) + +### `S12,彩云折线`: + +![](https://raw.githubusercontent.com/Enjoyee/Scriptable/v2/preview/s12.jpeg) + +### `S11,联通`: + +![](https://raw.githubusercontent.com/Enjoyee/Scriptable/v2/preview/s11.jpeg) + +### `S10,电信`: + +![](https://raw.githubusercontent.com/Enjoyee/Scriptable/v2/preview/s10.jpeg) + +### `S9,京东`: + +![](https://raw.githubusercontent.com/Enjoyee/Scriptable/v2/preview/s9.jpeg) + +### `S8,电影日历`: + +![](https://raw.githubusercontent.com/Enjoyee/Scriptable/v2/preview/s8.jpeg) + +### `S7,倒计日`: + +![](https://raw.githubusercontent.com/Enjoyee/Scriptable/v2/preview/s7.jpeg) + +### `S6,今日事项`: + +![](https://raw.githubusercontent.com/Enjoyee/Scriptable/v2/preview/s6.jpeg) + +### `S5,世界杯`: + +![](https://raw.githubusercontent.com/Enjoyee/Scriptable/v2/preview/s5.jpeg) + +### `S4,TopHub热榜`: + +![](https://raw.githubusercontent.com/Enjoyee/Scriptable/v2/preview/s4.jpeg) + +### `S3,随机写真`: + +![](https://raw.githubusercontent.com/Enjoyee/Scriptable/v2/preview/s3.jpeg) + +### `S2,谷歌青蛙天气`: + +![](https://raw.githubusercontent.com/Enjoyee/Scriptable/v2/preview/s2.jpeg) + +### `S1,桌面启动`: + +![](https://raw.githubusercontent.com/Enjoyee/Scriptable/v2/preview/s1.jpeg) + + + + + + + + + + + + + + + + + + diff --git "a/TopHub\346\246\234\345\215\225.js" "b/TopHub\346\246\234\345\215\225.js" new file mode 100644 index 0000000..558a6a5 --- /dev/null +++ "b/TopHub\346\246\234\345\215\225.js" @@ -0,0 +1,997 @@ +// Variables used by Scriptable. +// These must be at the very top of the file. Do not edit. +// icon-color: red; icon-glyph: user-astronaut; +/** + * Author:LSP + * Date:2023-08-21 + * Desc:修复DOM操作无法获取对应信息问题 + */ +// ------------------------------------------------------- +// 是否是开发环境,配合手机端调试使用,正式发布设置为false +const isDev = false; +const dependencyLSP = '20230602'; +console.log(`当前环境 👉👉👉👉👉 ${isDev ? 'DEV' : 'RELEASE'}`); +console.log(`----------------------------------------`); +// 分支 +const branch = 'v2'; +// 仓库根目录 +const remoteGithubRoot = `https://raw.githubusercontent.com/Enjoyee/Scriptable/${branch}`; +const remoteHomeLandRoot = `https://glimmerk.coding.net/p/Scriptable/shared-depot/source/git/raw/${branch}`; +// 依赖包目录 +const fm = FileManager.local(); +const rootDir = fm.documentsDirectory(); +const cacheDir = fm.joinPath(rootDir, 'LSP'); +const dependencyFileName = isDev ? "_LSP.js" : `${cacheDir}/_LSP.js`; +// 下载依赖包 +await downloadLSPDependency(); +// ------------------------------------------------------- +if (typeof require === 'undefined') require = importModule +// 引入相关方法 +const { BaseWidget } = require(dependencyFileName); + +// @定义小组件 +class Widget extends BaseWidget { + + defaultPreference = { + version: 20230203, + domain: 'https://tophub.today', + hotban: [{ title: '微博 · 热搜榜', link: 'https://tophub.today/n/KqndgxeLl9' }], + // -------------------------- + titleFontSize: 16, + titleFontDayColor: '#FFFFFF', + titleFontNightColor: '#FFFFFF', + // + hotTitleFontDayColor: '#ef233c', + hotTitleFontNightColor: '#ef233c', + // + contentFontSize: 13, + contentFontDayColor: '#FFFFFF', + contentFontNightColor: '#FFFFFF', + // + refreshTimeFontSize: 9, + refreshTimeFontDayColor: '#FFFFFF', + refreshTimeFontNightColor: '#FFFFFF', + // + contentLineSpacing: 6, + normalItemCount: 5, + largeItemCount: 13 + }; + + getCookie() { + const { cookie } = this.readWidgetSetting(); + return cookie; + } + + getValueByKey = (key) => this.readWidgetSetting()[key] ?? this.defaultPreference[key]; + + getHotban = (defaultValue) => JSON.parse(this.useFileManager().readStringCache('hotban') ?? (defaultValue ? defaultValue : JSON.stringify(this.defaultPreference.hotban))); + + getTitleFontSize = () => parseInt(this.getValueByKey('titleFontSize')); + getTitleFontDayColor = () => this.getValueByKey('titleFontDayColor'); + getTitleFontNightColor = () => this.getValueByKey('titleFontNightColor'); + + getHotTitleFontDayColor = () => this.getValueByKey('hotTitleFontDayColor'); + getHotTitleFontNightColor = () => this.getValueByKey('hotTitleFontNightColor'); + + getContentFontSize = () => parseInt(this.getValueByKey('contentFontSize')); + getContentFontDayColor = () => this.getValueByKey('contentFontDayColor'); + getContentFontNightColor = () => this.getValueByKey('contentFontNightColor'); + + getRefreshTimeFontSize = () => parseInt(this.getValueByKey('refreshTimeFontSize')); + getRefreshTimeFontDayColor = () => this.getValueByKey('refreshTimeFontDayColor'); + getRefreshTimeFontNightColor = () => this.getValueByKey('refreshTimeFontNightColor'); + + getContentLineSpacing = () => parseInt(this.getValueByKey('contentLineSpacing')); + getNormalItemCount = () => parseInt(this.getValueByKey('normalItemCount')); + getLargeItemCount = () => parseInt(this.getValueByKey('largeItemCount')); + + getCKDesc = () => { + let hasCK = this.getCookie()?.length > 0; + return hasCK ? '已登录' : '未登录' + }; + + constructor(scriptName) { + super(scriptName); + this.changeBgMode2OnLineBg( + [`${this.getRemoteRootPath()}/img/bg_1.jpg`], + { blur: true, blurMode: 'dark', blurRadius: 10 } + ); + } + + async renderSearchResultView(response, onItemClick) { + const { coverArr = [], linkArr = [], titleArr = [], tipArr = [] } = response; + // ========================================================= + const style = ` + :root { + --color-primary: #007aff; + --divider-color: rgba(60,60,67,0.16); + --card-background: #fff; + --card-radius: 8px; + --list-header-color: rgba(60,60,67,0.6); + } + body { + margin: 10px 0; + -webkit-font-smoothing: antialiased; + font-family: "SF Pro Display","SF Pro Icons","Helvetica Neue","Helvetica","Arial",sans-serif; + accent-color: var(--color-primary); + background: #f6f6f6; + } + .list { + margin: 15px; + } + .list__body { + margin-top: 10px; + background: var(--card-background); + border-radius: var(--card-radius); + overflow: hidden; + } + .form-label { + display: flex; + align-items: center; + } + .form-item { + display: flex; + align-items: center; + justify-content: space-between; + min-height: 4em; + padding: 2px 16px; + position: relative; + } + .form-item + .form-item::before { + content: ""; + position: absolute; + top: 0; + left: 0; + right: 0; + border-top: 0.8px solid var(--divider-color); + } + .form-item-cover { + width: 44px; + height: 44px; + border-radius: 6px; + border: 0; + } + .form-item-tite { + margin: 0px 12px; + font-size: 14px; + font-weight: 700; + } + .form-item-desc { + color: #999; + margin: 0px 12px; + font-size: 13px; + } + @media (prefers-color-scheme: dark) { + :root { + --divider-color: rgba(84,84,88,0.65); + --card-background: #1c1c1e; + --list-header-color: rgba(235,235,245,0.6); + } + body { + background: #000; + color: #fff; + } + } + `; + // ========================================================= + const js = ` + (() => { + const coverArr = JSON.parse('${JSON.stringify(coverArr)}') + const titleArr = JSON.parse('${JSON.stringify(titleArr)}') + const tipArr = JSON.parse('${JSON.stringify(tipArr)}') + const linkArr = JSON.parse('${JSON.stringify(linkArr)}') + + window.invoke = (title, link) => { + window.dispatchEvent( + new CustomEvent( + 'JBridge', + { detail: { title, link } } + ) + ) + } + + const fragment = document.createDocumentFragment() + coverArr.forEach((cover, index) => { + const title = titleArr[index]; + const tips = tipArr[index]; + const link = linkArr[index]; + + const label = document.createElement("label"); + label.className = "form-item"; + + const divLabel = document.createElement("div"); + divLabel.className = 'form-label'; + label.appendChild(divLabel); + + const img = document.createElement("img"); + img.src = cover; + img.className = 'form-item-cover'; + divLabel.appendChild(img); + + const divContent = document.createElement("div"); + divLabel.appendChild(divContent); + + const divTitle = document.createElement("div"); + divTitle.className = 'form-item-tite'; + divTitle.innerText = title; + divContent.appendChild(divTitle); + + const divDesc = document.createElement("div"); + divDesc.className = 'form-item-desc'; + divDesc.innerText = tips; + divContent.appendChild(divDesc); + + const icon = document.createElement('i') + icon.className = 'iconfont icon-xuqiudingyue' + label.appendChild(icon) + + label.addEventListener('click', (e) => invoke(title, link)) + + fragment.appendChild(label); + }); + document.getElementById('form').appendChild(fragment) + })()`; + // ========================================================= + const html = ` + + + + + + + +
+
+
+
+ + + `; + + // 预览web + const previewWebView = new WebView(); + await previewWebView.loadHTML(html, 'https://tophub.today'); + + const injectListener = async () => { + const event = await previewWebView.evaluateJavaScript( + `(() => { + try { + const controller = new AbortController() + const listener = (e) => { + completion(e.detail) + controller.abort() + } + window.addEventListener( + 'JBridge', + listener, + { signal: controller.signal } + ) + } catch (e) { + alert("搜索界面出错:" + e); + throw new Error("搜索界面处理出错: " + e); + return; + } + })()`, true).catch((err) => { + console.error(err); + this.ERRS.push(err); + if (!config.runsInApp) { + this.notify('APP主界面', `🚫 ${err}`); + } else { + throw err + } + }); + //////////////////////////////////// + onItemClick?.(event); + injectListener(); + } + + injectListener().catch((e) => { + console.error(e); + }); + + await previewWebView.present(); + } + + async getAppViewOptions() { + return { + widgetProvider: { + small: true, // 是否提供小号组件 + medium: true, // 是否提供中号组件 + large: true, // 是否提供大号组件 + }, + // 预览界面的组件设置item + settingItems: [ + { + name: 'hotban', + label: '热搜榜设置', + type: 'cell', + icon: { name: 'flame', color: '#EB3323', }, + needLoading: true, + showDesc: false, + }, + { + name: 'otherSetting', + label: '其他设置', + type: 'cell', + icon: 'https://cdnjson.com/images/2024/02/05/settings.png', + needLoading: true, + childItems: [ + { + items: [ + { + name: 'hotbanCK', + label: '登录TopHub', + type: 'cell', + icon: 'https://file.ipadown.com/tophub/assets/images/logo.png', + needLoading: true, + desc: this.getCKDesc() + }, + { + name: 'weiboOpenType', + label: '微博打开方式', + type: 'select', + icon: `${this.getRemoteRootPath()}/img/ic_weibo.png`, + needLoading: false, + options: [ + { label: '浏览器', value: '1' }, + { label: '国内版本', value: '2' }, + { label: '国际版本', value: '3' }, + ], + default: '1', + }, + ] + }, + { + items: [ + { + name: 'titleFontSize', + label: '标题文字大小', + type: 'cell', + icon: { name: 'pencil.and.outline', color: '#ff758f', }, + needLoading: false, + alert: { + title: '标题文字大小', + options: [ + { + key: 'titleFontSize', + hint: '标题文字大小', + } + ] + }, + default: `${this.getTitleFontSize()}`, + }, + { + name: 'titleFontDayColor', + label: '标题文字浅色颜色', + type: 'color', + icon: { name: 'sun.min.fill', color: '#3a86ff', }, + needLoading: false, + default: this.getTitleFontDayColor(), + }, + { + name: 'titleFontNightColor', + label: '标题文字深色颜色', + type: 'color', + icon: { name: 'moon.fill', color: '#3a0ca3', }, + needLoading: false, + default: this.getTitleFontNightColor(), + }, + ] + }, + { + items: [ + { + name: 'hotTitleFontDayColor', + label: '前三标题序号浅色颜色', + type: 'color', + icon: { name: 'sun.min.fill', color: '#3a86ff', }, + needLoading: false, + default: this.getHotTitleFontDayColor(), + }, + { + name: 'hotTitleFontNightColor', + label: '前三标题序号深色颜色', + type: 'color', + icon: { name: 'moon.fill', color: '#3a0ca3', }, + needLoading: false, + default: this.getHotTitleFontNightColor(), + }, + ] + }, + { + items: [ + { + name: 'contentFontSize', + label: '榜单文字大小', + type: 'cell', + icon: { name: 'scribble', color: '#ff758f', }, + needLoading: false, + alert: { + title: '榜单文字大小', + options: [ + { + key: 'contentFontSize', + hint: '榜单文字大小', + } + ] + }, + default: `${this.getContentFontSize()}`, + }, + { + name: 'contentFontDayColor', + label: '榜单文字浅色颜色', + type: 'color', + icon: { name: 'sun.min.fill', color: '#3a86ff', }, + needLoading: false, + default: this.getContentFontDayColor(), + }, + { + name: 'contentFontNightColor', + label: '榜单文字深色颜色', + type: 'color', + icon: { name: 'moon.fill', color: '#3a0ca3', }, + needLoading: false, + default: this.getContentFontNightColor(), + }, + ] + }, + { + items: [ + { + name: 'refreshTimeFontSize', + label: '刷新文字大小', + type: 'cell', + icon: { name: 'goforward', color: '#ef233c', }, + needLoading: false, + alert: { + title: '刷新文字大小', + options: [ + { + key: 'refreshTimeFontSize', + hint: '刷新文字大小', + } + ] + }, + default: `${this.getRefreshTimeFontSize()}`, + }, + { + name: 'refreshTimeFontDayColor', + label: '刷新文字浅色颜色', + type: 'color', + icon: { name: 'sun.min.fill', color: '#3a86ff', }, + needLoading: false, + default: this.getRefreshTimeFontDayColor(), + }, + { + name: 'refreshTimeFontNightColor', + label: '刷新文字深色颜色', + type: 'color', + icon: { name: 'moon.fill', color: '#3a0ca3', }, + needLoading: false, + default: this.getRefreshTimeFontNightColor(), + }, + ] + }, + { + items: [ + { + name: 'contentLineSpacing', + label: '榜单行间距', + type: 'cell', + icon: { name: 'square.stack.3d.up.fill', color: '#3a86ff', }, + needLoading: false, + alert: { + title: '榜单行间距', + options: [ + { + key: 'contentLineSpacing', + hint: '榜单行间距', + } + ] + }, + default: `${this.getContentLineSpacing()}`, + }, + { + name: 'banCount', + label: '榜单条数', + type: 'cell', + icon: { name: 'square.stack.3d.down.right.fill', color: '#fb5607' }, + alert: { + title: '榜单显示条数', + message: "小组件每次展示的热榜条数", + options: [ + { + key: 'normalItemCount', + hint: '中/小号组件热榜条数', + }, + { + key: 'largeItemCount', + hint: '大号组件热榜条数', + } + ] + }, + needLoading: false, + }, + ] + }, + ] + }, + ], + // cell类型的item点击回调 + onItemClick: async (item) => { + let widgetSetting = this.readWidgetSetting(); + let insertDesc; + switch (item.name) { + case 'hotbanCK': + const url = "https://tophub.today/login"; + const webview = new WebView(); + await webview.loadURL(url); + await webview.present(); + const cookie = await webview.evaluateJavaScript("document.cookie"); + widgetSetting.cookie = cookie; + insertDesc = cookie?.length > 0 ? '已登录' : '未登录'; + break; + + case 'hotban': + const hotSelectIndex = await this.presentSheet({ + title: '热榜设置', + message: '⊱配置热榜显示榜单内容⊰', + options: [{ name: '查看已添加榜单' }, { name: '搜索添加榜单' }, { name: '重置榜单' }], + }); + if (hotSelectIndex == 0) { + const hotbanArr = this.getHotban('[]'); + const hotbanTitleArr = hotbanArr.map(hotban => hotban.title.replaceAll(" ", "")); + await this.generateAlert('已添加榜单', `${hotbanTitleArr.length > 0 ? hotbanTitleArr.join('、') : '暂无添加,默认微博热搜'}`, ['确定']); + } else if (hotSelectIndex == 1) { + await this.generateInputAlert({ + title: '热榜搜索', + options: [{ hint: '请输入关键字', value: '' }] + }, async (inputArr) => { + const keyword = inputArr[0].value; + let response = undefined; + try { + ////// + const webview = new WebView(); + await webview.loadURL(`${this.defaultPreference.domain}/search?q=${encodeURIComponent(keyword)}`); + let html = await webview.getHTML(); + html = html.replaceAll(html.substring(html.indexOf('') + 6, html.lastIndexOf('')), ''); + await webview.loadHTML(html); + // 通过dom操作把HTML里面的热榜内容提取出来 + const getData = ` + function getData() { + // 图片封面 + coverArr = [] + // 链接 + linkArr = [] + // 标题 + titleArr = [] + // 描述 + tipArr = [] + nodeSize = 0 + totalCount = 20 + // 图片封面 + let allItemNodeList = document.getElementsByClassName('weui-media-box__thumb radius'); + for(let node of allItemNodeList) { + if(nodeSize < totalCount) { + coverArr.push(node.src) + } else { + break + } + nodeSize += 1 + } + // 链接 + nodeSize = 0 + allItemNodeList = document.getElementsByClassName('weui-media-box weui-media-box_appmsg weui-cell'); + for(let node of allItemNodeList) { + if(nodeSize < totalCount) { + linkArr.push(node.href) + } else { + break + } + nodeSize += 1 + } + // 标题 + nodeSize = 0 + allItemNodeList = document.getElementsByClassName('weui-media-box__title'); + for(let node of allItemNodeList) { + if(nodeSize < totalCount) { + titleArr.push(node.innerText) + } else { + break + } + nodeSize += 1 + } + // 订阅人数 + nodeSize = 0 + allItemNodeList = document.getElementsByClassName('weui-media-box__desc'); + for(let node of allItemNodeList) { + if(nodeSize < totalCount) { + tipArr.push(node.innerText) + } else { + break + } + nodeSize += 1 + } + return { coverArr, linkArr, titleArr, tipArr }; + } + getData() + ` + // 热榜数据 + response = await webview.evaluateJavaScript(getData, false); + const { linkArr = [] } = response; + if (linkArr.length === 0) { + await this.generateAlert('热榜搜索', '搜索结果为空', ['确定']); + } else { + await this.renderSearchResultView(response, async (event) => { + let { title, link } = event; + const hotbanArr = this.getHotban('[]'); + const findItem = hotbanArr.find(hotban => hotban.title == title); + if (findItem == undefined) { + try { + link = `${this.defaultPreference.domain}${link}`; + hotbanArr.push({ title, link }); + this.useFileManager().writeStringCache('hotban', JSON.stringify(hotbanArr)); + await this.generateAlert(`热榜内容`, `已成功添加«${title}»\n返回上级点击组件预览即可查看效果`, ['确定']); + } catch (error) { + console.error(error); + } + } + }); + } + ////// + } catch (error) { + await this.generateAlert('🚫 热榜搜索出错', `${error}`, ['确定']); + }; + }); + } else if (hotSelectIndex != -1) { + this.useFileManager().writeStringCache('hotban', JSON.stringify([])); + await this.generateAlert('热榜设置', '热榜已重置成功', ['确定']); + } + break; + + case 'weiboOpenType': + const index = await this.presentSheet({ + title: '微博打开方式', + message: '⊱配置点击微博跳转方式⊰', + options: this.defaultPreference.weiboOpenOptions, + }); + insertDesc = this.defaultPreference.weiboOpenOptions[index].name; + widgetSetting.weiboOpenType = insertDesc; + break + } + // 写入更新配置 + this.writeWidgetSetting(widgetSetting); + return { + desc: { value: insertDesc }, + }; + }, + }; + } + + async render({ widgetSetting, family }) { + let widget; + switch (family) { + case 'small': + widget = await this.provideSmallWidget(widgetSetting); + break; + + case 'medium': + widget = await this.provideMediumWidget(widgetSetting); + break; + + case 'large': + widget = await this.provideLargeWidget(widgetSetting); + break; + } + widget.setPadding(6, 16, 6, 12); + return widget; + } + + /** + * 小型组件 + * @returns + */ + async provideSmallWidget(widgetSetting) { + return await this.provideWidget(widgetSetting, this.getNormalItemCount(), true); + } + + /** + * 中型组件 + * @returns + */ + async provideMediumWidget(widgetSetting) { + return await this.provideWidget(widgetSetting, this.getNormalItemCount()); + } + + /** + * 大型组件 + * @returns + */ + async provideLargeWidget(widgetSetting) { + return await this.provideWidget(widgetSetting, this.getLargeItemCount()); + } + + async provideWidget(widgetSetting, itemCount, small = false) { + const defaultHotArr = this.defaultPreference.hotban; + const cacheHotStr = this.useFileManager().readStringCache('hotban'); + let hotbanArr = cacheHotStr ? JSON.parse(cacheHotStr) : defaultHotArr; + hotbanArr = hotbanArr.length === 0 ? defaultHotArr : hotbanArr; + const index = this.carouselIndex(`HotbanRandom${this.defaultPreference.version}`, hotbanArr.length); + const response = await this.loadHotBanRES(hotbanArr[index].link); + // 数据 + const { hotTitle = '', logoUrl = '', linkArr = [], titleArr = [] } = response; + //================================= + const widget = new ListWidget(); + //================================= + let stack = widget.addStack(); + stack.layoutVertically(); + // 标题 + let titleStack = stack.addStack(); + titleStack.size = new Size(0, 44); + titleStack.centerAlignContent(); + titleStack.layoutHorizontally(); + let img = await this.getImageByUrl(logoUrl); + let imgSpan = titleStack.addImage(img); + imgSpan.imageSize = new Size(23, 23); + imgSpan.cornerRadius = 6; + titleStack.addSpacer(8); + let textSpan = titleStack.addText(hotTitle.replace('\n', '')); + textSpan.textColor = this.dynamicColor(this.getTitleFontDayColor(), this.getTitleFontNightColor()); + let titleSize = this.getTitleFontSize(); + if (small) { + titleSize -= 2; + } + textSpan.font = Font.semiboldSystemFont(titleSize); + textSpan.lineLimit = 1; + // + titleStack.addSpacer(); + if (!small) { + img = this.getSFSymbol('goforward'); + imgSpan = titleStack.addImage(img); + imgSpan.imageSize = new Size(12, 12); + imgSpan.tintColor = this.dynamicColor(this.getRefreshTimeFontDayColor(), this.getRefreshTimeFontNightColor()); + titleStack.addSpacer(4); + textSpan = titleStack.addText(this.getDateStr(new Date(), 'HH:mm')); + textSpan.textColor = this.dynamicColor(this.getRefreshTimeFontDayColor(), this.getRefreshTimeFontNightColor()); + textSpan.font = Font.semiboldSystemFont(this.getRefreshTimeFontSize()); + titleStack.addSpacer(10); + } + // item + for (let index = 0; index < itemCount; index++) { + const name = titleArr[index]; + const link = linkArr[index]; + let nameStack = stack.addStack(); + stack.addSpacer(this.getContentLineSpacing()); + nameStack.layoutHorizontally(); + textSpan = nameStack.addText(`${index + 1}. `); + let hotTop = index <= 2; + let hotTitleColor = this.dynamicColor(this.getTitleFontDayColor(), this.getTitleFontNightColor()); + if (hotTop) { + hotTitleColor = this.dynamicColor(this.getHotTitleFontDayColor(), this.getHotTitleFontNightColor()); + } + textSpan.textColor = hotTitleColor; + let contentSize = this.getContentFontSize(); + textSpan.font = hotTop ? Font.italicSystemFont(contentSize) : Font.systemFont(contentSize); + // + textSpan = nameStack.addText(`${name}`); + textSpan.textColor = this.dynamicColor(this.getContentFontDayColor(), this.getContentFontNightColor()); + textSpan.font = Font.systemFont(contentSize); + textSpan.lineLimit = 1; + // + let linkElement = link; + if (!link?.startsWith('http')) { + linkElement = `https://tophub.today${link}`; + } + if (hotTitle.search("微博") != -1) { + const { weiboOpenType = '1' } = widgetSetting; + if (weiboOpenType == '2') { + // 微博客户端 + linkElement = 'sinaweibo://searchall?q=' + encodeURIComponent(`#${name}#`) + } else if (weiboOpenType == '3') { + // 微博国际版客户端 + linkElement = 'weibointernational://search?q=' + encodeURIComponent(`#${name}#`) + } + } + nameStack.url = linkElement; + } + stack.addSpacer(); + //================================= + return widget; + } + + // --------------------------NET START-------------------------- + async loadHTML(url) { + let req = new Request(url); + req.headers = { + "cookie": this.getCookie(), + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36", + }; + let html = await req.loadString(); + html = html.replaceAll(html.substring(html.indexOf('') + 6, html.lastIndexOf('')), ''); + return html.replace(/(\r\n|\n|\r)/gm, ""); + } + + async loadHotBanRES(link) { + // 热榜数据 + let response = undefined; + try { + const ufm = this.useFileManager(); + const webview = new WebView(); + const cacheFileName = this.md5(link); + const lastCacheTime = ufm.getCacheModifyDate(cacheFileName); + const timeInterval = Math.floor((this.getCurrentTimeStamp() - lastCacheTime) / 60); + // 读取本地缓存 + const localCache = ufm.readStringCache(cacheFileName); + const canUseCache = localCache != null && localCache.length > 0; + // 过时且有本地缓存则直接返回本地缓存数据 + const { refreshInterval = '0' } = this.readWidgetSetting(); + const shouldLoadCache = timeInterval <= Number(refreshInterval) && canUseCache; + let html = ufm.readStringCache(cacheFileName); + if (!shouldLoadCache) { + html = await this.loadHTML(link); + ufm.writeStringCache(cacheFileName, html); + } + await webview.loadHTML(html); + // 通过dom操作把HTML里面的热榜内容提取出来 + const getData = + ` + function getData() { + // logo链接 + logoUrl = document.getElementsByClassName('f-g')[0].getAttribute('src') + // 榜单标题 + hotTitle = document.getElementsByClassName('Xc-ec-L b-L')[0].innerText + // 链接 + linkArr = [] + // 标题 + titleArr = [] + allItemNodeList = document.getElementsByClassName('al') + // 链接&标题 + nodeSize = 0 + for(let node of allItemNodeList) { + if(nodeSize < 30) { + link = node.getElementsByTagName('a')[0].getAttribute('href'); + linkArr.push(link); + title = node.innerText + titleArr.push(title); + } else { + break + } + nodeSize += 1 + } + return { hotTitle, logoUrl, linkArr, titleArr }; + } + getData() + ` + // 热榜数据 + response = await webview.evaluateJavaScript(getData, false); + if (response.titleArr?.length > 0) { + this.useFileManager().writeStringCache('hot', JSON.stringify(response)); + } + } catch (error) { + console.error(`🚫 请求热板数据出错了=>${error}`); + response = JSON.parse(this.useFileManager().readStringCache('hot')); + } + return response; + } + // --------------------------NET END-------------------------- + +} + +await new Widget(Script.name()).run(); + +// ================================================================================= +// ================================================================================= +async function downloadLSPDependency() { + let fm = FileManager.local(); + const fileName = fm.joinPath(fm.documentsDirectory(), `LSP/${Script.name()}/settings.json`); + const fileExists = fm.fileExists(fileName); + let cacheString = '{}'; + if (fileExists) { + cacheString = fm.readString(fileName); + } + const use_github = JSON.parse(cacheString)['use_github']; + const dependencyURL = `${use_github ? remoteGithubRoot : remoteHomeLandRoot}/_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 || update) { + console.log(`🤖 DEV 开始${update ? '更新' + dependencyLSP : '下载'}依赖~`); + keySave('VERSION', dependencyLSP); + await downloadFile2Scriptable('_LSP', dependencyURL); + } + return; + } + + ////////////////////////////////////////////////////////// + console.log(`----------------------------------------`); + const remoteDependencyExit = fm.fileExists(`${cacheDir}/_LSP.js`); + console.log(`🚀 RELEASE依赖文件${remoteDependencyExit ? '已存在 ✅' : '不存在 🚫'}`); + // ------------------------------ + if (!remoteDependencyExit || update) { // 下载依赖 + // 创建根目录 + if (!fm.fileExists(cacheDir)) { + fm.createDirectory(cacheDir, true); + } + // 下载 + 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 { + console.error('🚫 获取依赖环境脚本失败,请重试!'); + console.log(`----------------------------------------`); + } + } +} + +/** + * 获取保存的文件名 + * @param {*} fileName + * @returns + */ +function getSaveFileName(fileName) { + const hasSuffix = fileName.lastIndexOf(".") + 1; + return !hasSuffix ? `${fileName}.js` : fileName; +}; + +/** + * 保存文件到Scriptable软件目录,app可看到 + * @param {*} fileName + * @param {*} content + * @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; + } +}; + +/** + * 下载js文件到Scriptable软件目录 + * @param {*} moduleName 名称 + * @param {*} url 在线地址 + * @returns + */ +async function downloadFile2Scriptable(moduleName, url) { + const req = new Request(url); + const content = await req.loadString(); + 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; + } +} +// ================================================================================= +// ================================================================================= diff --git a/UNSplash.js b/UNSplash.js new file mode 100644 index 0000000..18c2ec0 --- /dev/null +++ b/UNSplash.js @@ -0,0 +1,357 @@ +// Variables used by Scriptable. +// These must be at the very top of the file. Do not edit. +// icon-color: red; icon-glyph: user-astronaut; +/** + * Author:LSP + * Date:2023-11-01 + */ +// ------------------------------------------------------- +// 是否是开发环境,配合手机端调试使用,正式发布设置为false +const isDev = false; +const dependencyLSP = '20230512'; +console.log(`当前环境 👉👉👉👉👉 ${isDev ? 'DEV' : 'RELEASE'}`); +console.log(`----------------------------------------`); +// 分支 +const branch = 'v2'; +// 仓库根目录 +const remoteGithubRoot = `https://raw.githubusercontent.com/Enjoyee/Scriptable/${branch}`; +const remoteHomeLandRoot = `https://glimmerk.coding.net/p/Scriptable/shared-depot/source/git/raw/${branch}`; +// 依赖包目录 +const fm = FileManager.local(); +const rootDir = fm.documentsDirectory(); +const cacheDir = fm.joinPath(rootDir, 'LSP'); +const dependencyFileName = isDev ? "_LSP.js" : `${cacheDir}/_LSP.js`; +// 下载依赖包 +await downloadLSPDependency(); +// ------------------------------------------------------- +if (typeof require === 'undefined') require = importModule +// 引入相关方法 +const { BaseWidget } = require(dependencyFileName); + +// @定义小组件 +class Widget extends BaseWidget { + + defaultPreference = { + pic_name: 'unsplash.json', + accessKey: 'hKDgEyfUw7U5XjWJM1PkrvgdABGEVRrlWfYY1NCbqmc', + }; + + getValueByKey = (key) => this.readWidgetSetting()[key] ?? this.defaultPreference[key]; + + accessKey = () => this.getValueByKey('accessKey'); + + constructor(scriptName) { + super(scriptName); + this.backgroundColor = '#03071e,#03071e'; + this.picJsonArr = []; + } + + async getAppViewOptions() { + return { + showWidgetBg: false, + widgetProvider: { + small: true, // 是否提供小号组件 + medium: true, // 是否提供中号组件 + large: true, // 是否提供大号组件 + }, + // 预览界面的组件设置item + settingItems: [ + { + name: '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: 'photoKeyword', + label: '关键字', + type: 'input', + icon: { name: 'keyboard', color: '#0174BE' }, + default: "Yellow Ferrari" + }, + { + name: 'unsplashKey', + label: 'Access Key', + type: 'cell', + icon: { name: 'key', color: '#ff5e62' }, + alert: { + title: 'Access Key', + message: "已使用默认key,如果不可用了需要自己去申请填入替换", + options: [ + { + key: 'unsplashKey', + hint: '请输入Unsplash Access Key', + } + ] + }, + needLoading: false, + default: 'hKDgEyfUw7U5Xj...', + }, + ], + }; + } + + async render({ widgetSetting, family }) { + // + const keywords = widgetSetting.photoKeyword; + const url = `https://api.unsplash.com/search/photos?page=${Math.floor(Math.random() * 5) + 1}&per_page=4&query=${encodeURIComponent(keywords)}&client_id=${this.accessKey()}`; + const RES = await this.httpGet( + url, + { + useCache: false, + } + ); + const pics = RES['results'].map(result => result.urls.full); + let cacheJsonArr = this.useFileManager().readJSONCache(this.defaultPreference.pic_name); + if (JSON.stringify(cacheJsonArr) == '{}') { + this.useFileManager().writeJSONCache(this.defaultPreference.pic_name, JSON.stringify(pics)); + } + if (pics.length > 0) { + this.picJsonArr = pics; + } else { + this.picJsonArr = JSON.parse(cacheJsonArr); + } + return await this.provideWidget(family, widgetSetting); + } + + async provideWidget(widgetFamily, widgetSetting) { + const photoHalving = widgetSetting.photoHalving ?? 1; + let name = '大号'; + switch (widgetFamily) { + case 'small': + name = '小号'; + break; + + case 'medium': + name = '中号'; + break; + } + //================================= + const widget = new ListWidget(); + widget.setPadding(0, 0, 0, 0); + //================================= + let stack = widget.addStack(); + widget.backgroundColor = new Color('#03071e'); + const imgRes = this.picJsonArr; + const widgetSize = this.getWidgetSize(name); + const widgetWidth = widgetSize.width + 10 * Device.screenScale(); + const widgetHeight = widgetSize.height + 6 * 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, widgetHeight); + await this.addStackImg(imgRes, imgStack); + // + stack.addSpacer(divider); + imgStack = stack.addStack(); + imgStack.size = new Size(widgetWidth / 2, widgetHeight); + await this.addStackImg(imgRes, imgStack); + break; + + case 3: + stack.layoutHorizontally(); + imgStack = stack.addStack(); + imgStack.size = new Size(widgetWidth * 0.6, widgetHeight); + await this.addStackImg(imgRes, imgStack); + // + stack.addSpacer(divider); + // + imgStack = stack.addStack(); + imgStack.layoutVertically(); + let stack_3_1 = imgStack.addStack(); + stack_3_1.size = new Size(widgetWidth * 0.4, 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 * 0.4, widgetHeight / 2); + await this.addStackImg(imgRes, stack_3_2); + break; + + case 4: + stack.layoutVertically(); + imgStack = stack.addStack(); + imgStack.layoutHorizontally(); + let stack_4_1 = imgStack.addStack(); + 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, 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, 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, widgetHeight / 2); + await this.addStackImg(imgRes, stack_4_4); + break; + + default: + stack.layoutVertically(); + imgStack = stack.addStack(); + imgStack.size = new Size(widgetWidth, widgetHeight); + await this.addStackImg(imgRes, imgStack); + break; + } + //================================= + stack.addSpacer(); + return widget; + } + + addStackImg = async (imgRes, imgStack) => { + if (imgRes && imgRes.length > 0) { + const index = parseInt(Math.random() * imgRes.length) + let imgUrl = imgRes[index]; + imgRes.splice(index, 1); + imgStack.url = imgUrl; + let img = await this.getImageByUrl(imgUrl, 'mirror', true); + let imgSpan = imgStack.addImage(img); + imgSpan.applyFillingContentMode(); + } + } + + // --------------------------NET START-------------------------- + + // --------------------------NET END-------------------------- + +} + +await new Widget(Script.name()).run(); + + +// ================================================================================= +// ================================================================================= +async function downloadLSPDependency() { + let fm = FileManager.local(); + const fileName = fm.joinPath(fm.documentsDirectory(), `LSP/${Script.name()}/settings.json`); + const fileExists = fm.fileExists(fileName); + let cacheString = '{}'; + if (fileExists) { + cacheString = fm.readString(fileName); + } + const use_github = JSON.parse(cacheString)['use_github']; + const dependencyURL = `${use_github ? remoteGithubRoot : remoteHomeLandRoot}/_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 || update) { + console.log(`🤖 DEV 开始${update ? '更新' + dependencyLSP : '下载'}依赖~`); + keySave('VERSION', dependencyLSP); + await downloadFile2Scriptable('_LSP', dependencyURL); + } + return; + } + + ////////////////////////////////////////////////////////// + console.log(`----------------------------------------`); + const remoteDependencyExit = fm.fileExists(`${cacheDir}/_LSP.js`); + console.log(`🚀 RELEASE依赖文件${remoteDependencyExit ? '已存在 ✅' : '不存在 🚫'}`); + // ------------------------------ + if (!remoteDependencyExit || update) { // 下载依赖 + // 创建根目录 + if (!fm.fileExists(cacheDir)) { + fm.createDirectory(cacheDir, true); + } + // 下载 + 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 { + console.error('🚫 获取依赖环境脚本失败,请重试!'); + console.log(`----------------------------------------`); + } + } +} + +/** + * 获取保存的文件名 + * @param {*} fileName + * @returns + */ +function getSaveFileName(fileName) { + const hasSuffix = fileName.lastIndexOf(".") + 1; + return !hasSuffix ? `${fileName}.js` : fileName; +}; + +/** + * 保存文件到Scriptable软件目录,app可看到 + * @param {*} fileName + * @param {*} content + * @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; + } +}; + +/** + * 下载js文件到Scriptable软件目录 + * @param {*} moduleName 名称 + * @param {*} url 在线地址 + * @returns + */ +async function downloadFile2Scriptable(moduleName, url) { + const req = new Request(url); + const content = await req.loadString(); + 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 diff --git a/_LSP.js b/_LSP.js new file mode 100644 index 0000000..20d9eab --- /dev/null +++ b/_LSP.js @@ -0,0 +1,3787 @@ +// Variables used by Scriptable. +// These must be at the very top of the file. Do not edit. +// icon-color: gray; icon-glyph: user-astronaut; +/** + * 公众号:杂货万事屋 + * Desc:集合了一些网上各位大神的代码,修改自用,侵权请联系公众号删除 + * Author:LSP +*/ + +// 当前环境版本号 +const VERSION = 20240419_1 +// 组件配置文件名 +const settingConfigName = 'settings.json'; +// 分支 +const branch = 'v2'; +// 仓库根目录 +const remoteGithubRoot = `https://raw.githubusercontent.com/Enjoyee/Scriptable/${branch}`; +const remoteHomeLandRoot = `https://glimmerk.coding.net/p/Scriptable/shared-depot/source/git/raw/${branch}`; + +// @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +// @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +class BaseWidget { + + // 组件默认配置 + defaultConfig = { + useGithub: true, + notify: true, + bgType: '3', // 0:透明,1:在线,2:纯色,3:渐变 + refreshInterval: '20', + }; + + constructor(scriptName) { + //===================== + this.scriptName = scriptName; + this.backgroundColor = '#0c81e4,#161823'; + this.backgroundGradientColor = '#c93756,#243B55'; + this.backgroundGradientAngle = '0'; + this.VERSION = VERSION; + let widgetSetting = this.readWidgetSetting(); + this.widgetSetting = widgetSetting; + console.log(`远程是否使用GitHub:${this.keyGet(this.scriptName, `${this.defaultConfig.useGithub}`)}`); + //===================== + } + + getRemoteRootPath = () => { + const { use_github = this.defaultConfig.useGithub } = this.readWidgetSetting(); + if (use_github) { + return remoteGithubRoot; + } else { + return remoteHomeLandRoot; + } + } + + dayTransparentBgName = () => `${this.scriptName}_day_transparent`; + + dayOnlineBgName = () => `${this.scriptName}_day_online`; + + dayLocalBgName = () => `${this.scriptName}_day_local`; + + nightTransparentBgName = () => `${this.scriptName}_night_transparent`; + + nightOnlineBgName = () => `${this.scriptName}_night_online`; + + nightLocalBgName = () => `${this.scriptName}_night_local`; + + dynamicColor = (dayColorHex, nightColorHex) => Color.dynamic(new Color(dayColorHex), new Color(nightColorHex)); + + changeBgMode2OnLineBg = (bgUrlArr = [], options = {}) => { + this.defaultConfig.bgType = '1'; + let widgetSetting = this.readWidgetSetting(); + const { fm, fullFileName } = this.useFileManager(); + // const styles = ["", "light", "dark", "none"] + const { shadow = false, shadowColor = '#000000', shadowColorAlpha = '0.5', blur = false, blurMode = 'none', blurRadius = 20 } = options; + if (bgUrlArr.length > 0) { + widgetSetting['shadow'] = `${shadow}`; + widgetSetting['shadowColor'] = shadowColor; + widgetSetting['shadowColorAlpha'] = shadowColorAlpha; + widgetSetting['blurBg'] = blur; + widgetSetting['blurMode'] = blurMode; + widgetSetting['blurRadius'] = blurRadius; + if (widgetSetting['dayBackgroundImageUrl']?.length == 0 || widgetSetting['dayBackgroundImageUrl'] != bgUrlArr[0]) { + widgetSetting['dayBackgroundImageUrl'] = bgUrlArr[0]; + widgetSetting['dayBackgroundImagePath'] = this.dayOnlineBgName(); + // + if (fm.fileExists(fullFileName(this.dayOnlineBgName()))) { + fm.remove(fullFileName(this.dayOnlineBgName())); + } + } + // ---------------------------------------------------------------- + if (bgUrlArr.length > 1) { + if (widgetSetting['nightBackgroundImageUrl']?.length == 0 || widgetSetting['nightBackgroundImageUrl'] != bgUrlArr[1]) { + widgetSetting['nightBackgroundImageUrl'] = bgUrlArr[1]; + widgetSetting['nightBackgroundImagePath'] = this.nightOnlineBgName(); + // + if (fm.fileExists(fullFileName(this.nightOnlineBgName()))) { + fm.remove(fullFileName(this.nightOnlineBgName())); + } + } + } + // ---------------------------------------------------------------- + const { bgType } = widgetSetting; + if (bgType == undefined || bgType == '1') { + this.writeWidgetSetting( + { + ...widgetSetting, + picType: 1, + bgType: '1', + } + ); + } + } + } + + readWidgetSetting = () => { + try { + const localFM = this.useFileManager({ useICloud: false }); + let settings = localFM.readJSONCache(settingConfigName); + if (settings) { + if (JSON.stringify(settings) == '{}') { + settings = JSON.parse(JSON.stringify(this.defaultConfig)); + delete settings.bgType; + } + return settings + } + const iCloudFM = this.useFileManager({ useICloud: true }); + settings = iCloudFM.readJSONCache(settingConfigName); + if (settings) { + if (JSON.stringify(settings) == '{}') { + settings = JSON.parse(JSON.stringify(this.defaultConfig)); + delete settings.bgType; + } + } + return settings; + } catch (error) { + console.error(error); + if (!config.runsInApp) { + this.notify('配置读取失败', `${error}`); + } + } + } + + writeWidgetSetting = (data) => { + try { + this.useFileManager().writeJSONCache(settingConfigName, data); + } catch (error) { + console.error(error); + if (!config.runsInApp) { + this.notify('配置写入失败', `${error}`); + } + } + } + + removeWidgetSetting = (retainSetting = true) => { + try { + this.useFileManager().cleanWidgetCache(retainSetting); + Keychain.set(this.scriptName + "VERSION", ""); + } catch (error) { + console.error(error); + if (!config.runsInApp) { + this.notify('配置移除失败', `${error}`); + } + } + } + + useFileManager = (options = {}) => { + try { + const { useICloud = false, scriptName = this.scriptName } = options; + const fm = useICloud ? FileManager.iCloud() : FileManager.local(); + const rootDir = fm.joinPath(fm.documentsDirectory(), 'LSP/'); + + // 创建根目录 + if (!fm.fileExists(rootDir)) { + console.log(`✅ 创建LSP根目录`); + fm.createDirectory(rootDir, true); + this.logDivider(); + } + + // 创建对应脚本的缓存目录 + const cacheDir = fm.joinPath(rootDir, `${scriptName}/`) + if (!fm.fileExists(cacheDir)) { + console.log(`✅ 创建对应脚本缓存目录->${scriptName}`); + fm.createDirectory(cacheDir, true); + this.logDivider(); + } + + /** + * 全路径名 + * @param {*} cacheFileName + * @returns + */ + const fullFileName = (cacheFileName, root = false) => { + return `${root ? rootDir : cacheDir}/${cacheFileName}` + } + + /** + * 获取缓存文件的上次修改时间 + * @param {string} cacheKey 缓存key + * @param {object} options + * @return 返回上次缓存文件修改的时间戳(单位:秒) + */ + const getCacheModifyDate = (cacheKey, root = false) => { + const cacheFileName = fullFileName(cacheKey, root); + const fileExists = fm.fileExists(cacheFileName); + if (fileExists) { + return Math.floor(fm.modificationDate(cacheFileName).getTime() / 1000); + } else { + return 0; + } + } + + /** + * 清空组件缓存 + * @param {bool} retainSetting 是否保留配置文件 + */ + const cleanWidgetCache = (retainSetting = true) => { + if (retainSetting && fm.fileExists(cacheDir)) { + fm.move(`${cacheDir}/${settingConfigName}`, `${rootDir}/${settingConfigName}`); + // + if (fm.fileExists(`${cacheDir}/${this.dayTransparentBgName()}`)) { + fm.move(`${cacheDir}/${this.dayTransparentBgName()}`, `${rootDir}/${this.dayTransparentBgName()}`); + } + if (fm.fileExists(`${cacheDir}/${this.nightTransparentBgName()}`)) { + fm.move(`${cacheDir}/${this.nightTransparentBgName()}`, `${rootDir}/${this.nightTransparentBgName()}`); + } + if (fm.fileExists(`${cacheDir}/${this.dayLocalBgName()}`)) { + fm.move(`${cacheDir}/${this.dayLocalBgName()}`, `${rootDir}/${this.dayLocalBgName()}`); + } + if (fm.fileExists(`${cacheDir}/${this.nightLocalBgName()}`)) { + fm.move(`${cacheDir}/${this.nightLocalBgName()}`, `${rootDir}/${this.nightLocalBgName()}`); + } + } + console.log(`🚫 移除组件内所有缓存->${cacheDir}`); + fm.remove(cacheDir); + if (retainSetting && !fm.fileExists(cacheDir)) { + fm.createDirectory(cacheDir); + fm.move(`${rootDir}/${settingConfigName}`, `${cacheDir}/${settingConfigName}`); + // + if (fm.fileExists(`${rootDir}/${this.dayTransparentBgName()}`)) { + fm.move(`${rootDir}/${this.dayTransparentBgName()}`, `${cacheDir}/${this.dayTransparentBgName()}`); + } + if (fm.fileExists(`${rootDir}/${this.nightTransparentBgName()}`)) { + fm.move(`${rootDir}/${this.nightTransparentBgName()}`, `${cacheDir}/${this.nightTransparentBgName()}`); + } + if (fm.fileExists(`${rootDir}/${this.dayLocalBgName()}`)) { + fm.move(`${rootDir}/${this.dayLocalBgName()}`, `${cacheDir}/${this.dayLocalBgName()}`); + } + if (fm.fileExists(`${rootDir}/${this.nightLocalBgName()}`)) { + fm.move(`${rootDir}/${this.nightLocalBgName()}`, `${cacheDir}/${this.nightLocalBgName()}`); + } + } + this.logDivider(); + } + + /** + * 保存字符串到本地 + * @param {string} cacheFileName 缓存文件名 + * @param {string} content 缓存内容 + */ + const writeStringCache = (cacheFileName, content, root = false) => { + fm.writeString(fullFileName(cacheFileName, root), content); + } + + /** + * 获取本地缓存字符串 + * @param {string} cacheFileName 缓存文件名 + * @return {string} 本地字符串缓存 + */ + const readStringCache = (cacheFileName, root = false) => { + const fileName = fullFileName(cacheFileName, root); + const fileExists = fm.fileExists(fileName); + let cacheString; + if (fileExists) { + cacheString = fm.readString(fileName); + } + return cacheString; + } + + /** + * 获取本地缓存字符串 + * @param {string} cacheFileName 缓存文件名 + * @return {string} 本地字符串缓存 + */ + const readJSONCache = (cacheFileName, root = false) => { + const fileName = fullFileName(cacheFileName, root); + const fileExists = fm.fileExists(fileName); + let cacheString = '{}'; + if (fileExists) { + cacheString = fm.readString(fileName); + } + return JSON.parse(cacheString); + } + + /** + * 保存JSON字符串到本地 + * @param {string} cacheFileName 缓存文件名 + * @param {object} content 缓存对象 + */ + const writeJSONCache = (cacheFileName, content, root = false) => { + fm.writeString(fullFileName(cacheFileName, root), JSON.stringify(content)); + } + + /** + * 保存图片到本地 + * @param {string} cacheFileName 缓存文件名 + * @param {Image} img 缓存图片 + */ + const writeImgCache = (cacheFileName, img, root = false) => { + fm.writeImage(fullFileName(cacheFileName, root), img); + } + + /** + * 获取本地缓存图片 + * @param {string} cacheFileName 缓存文件名 + * @return {Image} 本地图片缓存 + */ + const readImgCache = (cacheFileName, root = false) => { + const fileName = fullFileName(cacheFileName, root); + const fileExists = fm.fileExists(fileName); + let img; + if (fileExists) { + img = fm.readImage(fileName); + } + return img + } + + return { + fm, + rootDir, + cacheDir, + getCacheModifyDate, + fullFileName, + cleanWidgetCache, + writeStringCache, + readStringCache, + readJSONCache, + writeJSONCache, + writeImgCache, + readImgCache, + } + } catch (error) { + console.error(error); + if (!config.runsInApp) { + this.notify('文件操作', `🚫 ${error}`); + } + } + } + + saveFile2Scriptable = (fileName, content) => { + try { + const { fm } = this.useFileManager({ useICloud: true }); + const hasSuffix = fileName.lastIndexOf(".") + 1; + const fullFileName = !hasSuffix ? `${fileName}.js` : fileName; + const filePath = fm.joinPath(fm.documentsDirectory(), fullFileName); + fm.writeString(filePath, content); + return true; + } catch (error) { + console.error(error); + if (!config.runsInApp) { + this.notify('文件保存', `${error}`); + } + } + }; + + downloadFile2Scriptable = async ({ moduleName, url }) => { + const req = new Request(url); + const content = await req.loadString(); + return this.saveFile2Scriptable(`${moduleName}`, content); + }; + + bgType2Text = (bgType) => { + let typeText = ''; + switch (bgType) { + case '0': + typeText = `透明背景`; + break; + + case '1': + typeText = `在线图片`; + break; + + case '2': + typeText = `相册图片`; + break; + + case '3': + typeText = `纯色背景`; + break; + + case '4': + typeText = `渐变背景`; + break; + } + return typeText; + } + + notify = async (title, body, url, opts = {}) => { + const widgetSetting = this.readWidgetSetting(); + if (widgetSetting.notify) { + return await this.realNotify(title, body, url, opts); + } else { + return null; + } + } + + realNotify = async (title, body, url, opts = {}) => { + let n = new Notification(); + n = Object.assign(n, opts); + n.title = title; + n.body = body; + if (url) n.openURL = url; + return await n.schedule(); + } + + scaleFontSize = (defaultFontSize, textLength, startLength) => { + let fontSize = defaultFontSize; + if (textLength >= startLength) { + let count = textLength - startLength; + let loopSize = Math.round(count / 2.0); + fontSize -= loopSize; + fontSize = fontSize < 6 ? 6 : fontSize; + } + return fontSize; + } + + logDivider = () => { + console.log(`@--------------------------------------@`); + } + + splitColors = (color = '') => { + const colors = typeof color === 'string' ? color.split(',') : [] + return colors; + } + + getLinearGradientColor = (colors, angle = 0) => { + try { + const locations = []; + const linearColor = new LinearGradient(); + let x = 0, y = 0; + if (angle < 45) { + y = 0.5 - 0.5 / 45 * angle; + } else if (angle < 135) { + x = 1 / 90 * (angle - 45); + } else if (angle <= 180) { + x = 1; + y = 0.5 / 45 * (angle - 135); + } + linearColor.startPoint = new Point(x, y); + linearColor.endPoint = new Point(1 - x, 1 - y); + let avg = 1 / (colors.length - 1); + linearColor.colors = colors.map((item, index) => { + locations.push(index * avg); + return new Color(item); + }); + linearColor.locations = locations; + return linearColor; + } catch (error) { + console.error(error); + if (!config.runsInApp) { + this.notify('渐变色', `🚫 ${error}`); + } + } + } + + loadSF2B64 = async ( + icon = 'square.grid.2x2', + color = '#56A8D6', + cornerWidth = 42 + ) => { + const sfImg = await this.drawSFIcon(icon, color, cornerWidth); + return `data:image/png;base64,${Data.fromPNG(sfImg).toBase64String()}`; + } + + drawSFIcon = async ( + icon = 'square.grid.2x2', + color = '#e8e8e8', + cornerWidth = 42 + ) => { + try { + let sf = SFSymbol.named(icon); + if (sf == null) { + sf = SFSymbol.named('scribble'); + } + sf.applyFont(Font.mediumSystemFont(30)); + const imgData = Data.fromPNG(sf.image).toBase64String(); + const html = ` + + + + ` + const js = ` + var canvas = document.createElement("canvas"); + var sourceImg = document.getElementById("sourceImg"); + var silhouetteImg = document.getElementById("silhouetteImg"); + var ctx = canvas.getContext('2d'); + var size = sourceImg.width > sourceImg.height ? sourceImg.width : sourceImg.height; + canvas.width = size; + canvas.height = size; + ctx.drawImage(sourceImg, (canvas.width - sourceImg.width) / 2, (canvas.height - sourceImg.height) / 2); + var imgData = ctx.getImageData(0, 0, canvas.width, canvas.height); + var pix = imgData.data; + //convert the image into a silhouette + for (var i=0, n = pix.length; i < n; i+= 4){ + //set red to 0 + pix[i] = 255; + //set green to 0 + pix[i+1] = 255; + //set blue to 0 + pix[i+2] = 255; + //retain the alpha value + pix[i+3] = pix[i+3]; + } + ctx.putImageData(imgData,0,0); + silhouetteImg.src = canvas.toDataURL(); + output=canvas.toDataURL() + ` + + let wv = new WebView(); + await wv.loadHTML(html); + const base64Image = await wv.evaluateJavaScript(js); + const iconImage = await new Request(base64Image).loadImage(); + const size = new Size(160, 160); + const ctx = new DrawContext(); + ctx.opaque = false; + ctx.respectScreenScale = true; + ctx.size = size; + const path = new Path(); + const rect = new Rect(0, 0, size.width, size.width); + + path.addRoundedRect(rect, cornerWidth, cornerWidth); + path.closeSubpath(); + ctx.setFillColor(new Color(color)); + ctx.addPath(path); + ctx.fillPath(); + const rate = 36; + const iw = size.width - rate; + const x = (size.width - iw) / 2; + ctx.drawImageInRect(iconImage, new Rect(x, x, iw, iw)); + return ctx.getImage(); + } catch (error) { + console.error(error); + } + } + + drawTextWithCustomFont = async (fontUrl, text, fontSize, textColor, option = { lineLimit: 1, align: "center", rowSpacing: 8 }) => { + try { + const fontKey = fontUrl + text + fontSize + textColor; + let cache = this.useFileManager().readImgCache(this.md5(fontKey)); + if (cache != undefined && cache != null) { + return cache; + } + const font = new CustomFont(new WebView(), { + fontFamily: 'customFont', // 字体名称 + fontUrl: fontUrl, // 字体地址 + timeout: 60000, // 加载字体的超时时间 + }) // 创建字体 + await font.load() // 加载字体 + const image = await font.drawText(text, { + fontSize: fontSize, // 字体大小 + textWidth: 0, // 文本宽度 + textColor: textColor, // 文本颜色 + scale: 2, // 缩放因子 + ...option + }) + this.useFileManager().writeImgCache(this.md5(text), image); + return image; + } catch (error) { + console.error(error); + } + } + + base64Encode = (str) => { + const data = Data.fromString(str); + return data.toBase64String(); + } + + base64Decode = (b64) => { + const data = Data.fromBase64String(b64); + if (data) { + return data.toRawString(); + } else { + return b64; + } + } + + md5 = (str) => { + function d(n, t) { + var r = (65535 & n) + (65535 & t); + return (((n >> 16) + (t >> 16) + (r >> 16)) << 16) | (65535 & r); + } + + function f(n, t, r, e, o, u) { + return d(((c = d(d(t, n), d(e, u))) << (f = o)) | (c >>> (32 - f)), r); + var c, f; + } + + function l(n, t, r, e, o, u, c) { + return f((t & r) | (~t & e), n, t, o, u, c); + } + + function v(n, t, r, e, o, u, c) { + return f((t & e) | (r & ~e), n, t, o, u, c); + } + + function g(n, t, r, e, o, u, c) { + return f(t ^ r ^ e, n, t, o, u, c); + } + + function m(n, t, r, e, o, u, c) { + return f(r ^ (t | ~e), n, t, o, u, c); + } + + function i(n, t) { + var r, e, o, u; + (n[t >> 5] |= 128 << t % 32), (n[14 + (((t + 64) >>> 9) << 4)] = t); + for ( + var c = 1732584193, + f = -271733879, + i = -1732584194, + a = 271733878, + h = 0; + h < n.length; + h += 16 + ) + (c = l((r = c), (e = f), (o = i), (u = a), n[h], 7, -680876936)), + (a = l(a, c, f, i, n[h + 1], 12, -389564586)), + (i = l(i, a, c, f, n[h + 2], 17, 606105819)), + (f = l(f, i, a, c, n[h + 3], 22, -1044525330)), + (c = l(c, f, i, a, n[h + 4], 7, -176418897)), + (a = l(a, c, f, i, n[h + 5], 12, 1200080426)), + (i = l(i, a, c, f, n[h + 6], 17, -1473231341)), + (f = l(f, i, a, c, n[h + 7], 22, -45705983)), + (c = l(c, f, i, a, n[h + 8], 7, 1770035416)), + (a = l(a, c, f, i, n[h + 9], 12, -1958414417)), + (i = l(i, a, c, f, n[h + 10], 17, -42063)), + (f = l(f, i, a, c, n[h + 11], 22, -1990404162)), + (c = l(c, f, i, a, n[h + 12], 7, 1804603682)), + (a = l(a, c, f, i, n[h + 13], 12, -40341101)), + (i = l(i, a, c, f, n[h + 14], 17, -1502002290)), + (c = v( + c, + (f = l(f, i, a, c, n[h + 15], 22, 1236535329)), + i, + a, + n[h + 1], + 5, + -165796510, + )), + (a = v(a, c, f, i, n[h + 6], 9, -1069501632)), + (i = v(i, a, c, f, n[h + 11], 14, 643717713)), + (f = v(f, i, a, c, n[h], 20, -373897302)), + (c = v(c, f, i, a, n[h + 5], 5, -701558691)), + (a = v(a, c, f, i, n[h + 10], 9, 38016083)), + (i = v(i, a, c, f, n[h + 15], 14, -660478335)), + (f = v(f, i, a, c, n[h + 4], 20, -405537848)), + (c = v(c, f, i, a, n[h + 9], 5, 568446438)), + (a = v(a, c, f, i, n[h + 14], 9, -1019803690)), + (i = v(i, a, c, f, n[h + 3], 14, -187363961)), + (f = v(f, i, a, c, n[h + 8], 20, 1163531501)), + (c = v(c, f, i, a, n[h + 13], 5, -1444681467)), + (a = v(a, c, f, i, n[h + 2], 9, -51403784)), + (i = v(i, a, c, f, n[h + 7], 14, 1735328473)), + (c = g( + c, + (f = v(f, i, a, c, n[h + 12], 20, -1926607734)), + i, + a, + n[h + 5], + 4, + -378558, + )), + (a = g(a, c, f, i, n[h + 8], 11, -2022574463)), + (i = g(i, a, c, f, n[h + 11], 16, 1839030562)), + (f = g(f, i, a, c, n[h + 14], 23, -35309556)), + (c = g(c, f, i, a, n[h + 1], 4, -1530992060)), + (a = g(a, c, f, i, n[h + 4], 11, 1272893353)), + (i = g(i, a, c, f, n[h + 7], 16, -155497632)), + (f = g(f, i, a, c, n[h + 10], 23, -1094730640)), + (c = g(c, f, i, a, n[h + 13], 4, 681279174)), + (a = g(a, c, f, i, n[h], 11, -358537222)), + (i = g(i, a, c, f, n[h + 3], 16, -722521979)), + (f = g(f, i, a, c, n[h + 6], 23, 76029189)), + (c = g(c, f, i, a, n[h + 9], 4, -640364487)), + (a = g(a, c, f, i, n[h + 12], 11, -421815835)), + (i = g(i, a, c, f, n[h + 15], 16, 530742520)), + (c = m( + c, + (f = g(f, i, a, c, n[h + 2], 23, -995338651)), + i, + a, + n[h], + 6, + -198630844, + )), + (a = m(a, c, f, i, n[h + 7], 10, 1126891415)), + (i = m(i, a, c, f, n[h + 14], 15, -1416354905)), + (f = m(f, i, a, c, n[h + 5], 21, -57434055)), + (c = m(c, f, i, a, n[h + 12], 6, 1700485571)), + (a = m(a, c, f, i, n[h + 3], 10, -1894986606)), + (i = m(i, a, c, f, n[h + 10], 15, -1051523)), + (f = m(f, i, a, c, n[h + 1], 21, -2054922799)), + (c = m(c, f, i, a, n[h + 8], 6, 1873313359)), + (a = m(a, c, f, i, n[h + 15], 10, -30611744)), + (i = m(i, a, c, f, n[h + 6], 15, -1560198380)), + (f = m(f, i, a, c, n[h + 13], 21, 1309151649)), + (c = m(c, f, i, a, n[h + 4], 6, -145523070)), + (a = m(a, c, f, i, n[h + 11], 10, -1120210379)), + (i = m(i, a, c, f, n[h + 2], 15, 718787259)), + (f = m(f, i, a, c, n[h + 9], 21, -343485551)), + (c = d(c, r)), + (f = d(f, e)), + (i = d(i, o)), + (a = d(a, u)); + return [c, f, i, a]; + } + + function a(n) { + for (var t = '', r = 32 * n.length, e = 0; e < r; e += 8) + t += String.fromCharCode((n[e >> 5] >>> e % 32) & 255); + return t; + } + + function h(n) { + var t = []; + for (t[(n.length >> 2) - 1] = void 0, e = 0; e < t.length; e += 1) + t[e] = 0; + for (var r = 8 * n.length, e = 0; e < r; e += 8) + t[e >> 5] |= (255 & n.charCodeAt(e / 8)) << e % 32; + return t; + } + + function e(n) { + for (var t, r = '0123456789abcdef', e = '', o = 0; o < n.length; o += 1) + (t = n.charCodeAt(o)), + (e += r.charAt((t >>> 4) & 15) + r.charAt(15 & t)); + return e; + } + + function r(n) { + return unescape(encodeURIComponent(n)); + } + + function o(n) { + return a(i(h((t = r(n))), 8 * t.length)); + var t; + } + + function u(n, t) { + return (function (n, t) { + var r, + e, + o = h(n), + u = [], + c = []; + for ( + u[15] = c[15] = void 0, + 16 < o.length && (o = i(o, 8 * n.length)), + r = 0; + r < 16; + r += 1 + ) + (u[r] = 909522486 ^ o[r]), (c[r] = 1549556828 ^ o[r]); + return ( + (e = i(u.concat(h(t)), 512 + 8 * t.length)), a(i(c.concat(e), 640)) + ); + })(r(n), r(t)); + } + + function t(n, t, r) { + return t ? (r ? u(t, n) : e(u(t, n))) : r ? o(n) : e(o(n)); + } + + return t(str); + } + + rerunWidget = (scriptName = this.scriptName) => { + Safari.open(`scriptable:///run/${encodeURIComponent(scriptName)}`); + } + + getCurrentTimeStamp = () => { + return Math.floor(new Date().getTime() / 1000); + } + + getDateStr = (date, formatter = "yyyy年MM月d日 EEE", locale = "zh_cn") => { + const df = new DateFormatter(); + df.locale = locale; + df.dateFormat = formatter; + return df.string(date); + } + + /** + * Http Get 请求接口 + * @param {string} url 请求的url + * @param {bool} jsonFormat 返回数据是否为json,默认true + * @param {object} headers 请求头 + * @param {boolean} logable 是否打印数据,默认true + * @param {boolean} useICloud 是否使用iCloud + * @param {string} scriptName 脚本名称 + * @return {string | json | null} + */ + httpGet = async (url, options = {}) => { + let data; + try { + const defaultOptions = { + jsonFormat: true, + headers: null, + logable: false, + useICloud: false, + useCache: true, + dataSuccess: (res) => true, + scriptName: this.scriptName + }; + options = { + ...defaultOptions, + ...options + }; + const { jsonFormat, headers, logable, useICloud, useCache, scriptName } = options; + + // 根据URL进行md5生成cacheKey + const cacheFileName = this.md5(url); + const ufm = this.useFileManager({ useICloud, scriptName }); + // 读取本地缓存 + const localCache = ufm.readStringCache(cacheFileName); + // 判断是否需要刷新 + const lastCacheTime = ufm.getCacheModifyDate(cacheFileName); + const timeInterval = Math.floor((this.getCurrentTimeStamp() - lastCacheTime) / 60); + const canUseCache = localCache != null && localCache.length > 0; + if (useCache) { + // 过时且有本地缓存则直接返回本地缓存数据 + const { refreshInterval = '0' } = this.readWidgetSetting(); + const shouldLoadCache = timeInterval <= Number(refreshInterval) && canUseCache; + console.log(`⏰ ${this.getDateStr(new Date(lastCacheTime * 1000), 'HH:mm')}加入缓存,已缓存 ${lastCacheTime > 0 ? timeInterval : 0}min,缓存${shouldLoadCache ? '未过期' : '已过期'}`); + if (shouldLoadCache) { + const RES = jsonFormat ? JSON.parse(localCache) : localCache; + if (options.dataSuccess(RES)) { + console.log(`🤖 Get读取缓存:${url}`); + // 是否打印响应数据 + if (logable) { + console.log(`🤖 Get请求响应:${localCache}`); + } + this.logDivider(); + return RES; + } + } + } + + console.log(`🚀 Get在线请求:${url}`); + let req = new Request(url); + req.method = 'GET'; + if (headers != null && headers != undefined) { + req.headers = headers; + } + data = await (jsonFormat ? req.loadJSON() : req.loadString()); + // 判断数据是否为空(加载失败) + if (!data && canUseCache) { + console.log(`🤖 Get读取缓存:${url}`); + this.logDivider(); + return jsonFormat ? JSON.parse(localCache) : localCache; + } + // 存储缓存 + if (options.dataSuccess(data)) { + ufm.writeStringCache(cacheFileName, jsonFormat ? JSON.stringify(data) : data); + } + // 是否打印响应数据 + if (logable) { + console.log(`🤖 Get请求响应:${JSON.stringify(data)}`); + } + } catch (error) { + console.error(`🚫 Get请求失败:${error}: ${url}`); + } + this.logDivider(); + return data; + } + + /** + * Http Post 请求接口 + * @param {string} url 请求的url + * @param {Array} parameterArr 请求参数键值对数组 + * @param {bool} jsonFormat 返回数据是否为json,默认true + * @param {object} headers 请求头 + * @param {boolean} logable 是否打印数据,默认true + * @param {boolean} useICloud 是否使用iCloud + * @param {string} scriptName 脚本名称 + * @param {any} body body + * @return {string | json | null} + */ + httpPost = async (url, options = {}) => { + let data; + try { + const defaultOptions = { + parameterArr: [], + body: undefined, + jsonFormat: true, + headers: null, + logable: false, + useICloud: false, + useCache: true, + dataSuccess: (res) => true, + scriptName: Script.name() + }; + options = { + ...defaultOptions, + ...options + }; + const { jsonFormat, headers, logable, useICloud, useCache, scriptName } = options; + + // 根据URL进行md5生成cacheKey + const cacheFileName = this.md5(url); + const ufm = this.useFileManager({ useICloud, scriptName }); + // 读取本地缓存 + const localCache = ufm.readStringCache(cacheFileName); + const lastCacheTime = ufm.getCacheModifyDate(cacheFileName); + const timeInterval = Math.floor((this.getCurrentTimeStamp() - lastCacheTime) / 60); + const canUseCache = localCache != null && localCache.length > 0; + if (useCache) { + // 判断是否需要刷新 + // 过时且有本地缓存则直接返回本地缓存数据 + const { refreshInterval = '0' } = this.readWidgetSetting(); + const shouldLoadCache = timeInterval <= Number(refreshInterval) && canUseCache; + console.log(`⏰ ${this.getDateStr(new Date(lastCacheTime * 1000), 'HH:mm')}加入缓存,已缓存 ${lastCacheTime > 0 ? timeInterval : 0}min,缓存${shouldLoadCache ? '未过期' : '已过期'}`); + if (shouldLoadCache) { + const RES = jsonFormat ? JSON.parse(localCache) : localCache; + if (options.dataSuccess(RES)) { + console.log(`🤖 Post读取缓存:${url}`); + // 是否打印响应数据 + if (logable) { + console.log(`🤖 Post请求响应:${localCache}`); + } + this.logDivider(); + return RES; + } + } + } + + console.log(`🚀 Post在线请求:${url}`); + let req = new Request(url); + req.method = 'POST'; + if (headers != null && headers != undefined) { + req.headers = headers; + } + for (const parameter of options?.parameterArr) { + req.addParameterToMultipart(Object.keys(parameter)[0], Object.values(parameter)[0]) + } + if (options?.body) { + req.body = options?.body; + } + data = await (jsonFormat ? req.loadJSON() : req.loadString()); + // 判断数据是否为空(加载失败) + if (!data && canUseCache) { + console.log(`🤖 Post读取缓存:${url}`); + this.logDivider(); + return jsonFormat ? JSON.parse(localCache) : localCache; + } + // 存储缓存 + if (options.dataSuccess(data)) { + ufm.writeStringCache(cacheFileName, jsonFormat ? JSON.stringify(data) : data); + } + // 是否打印响应数据 + if (logable) { + console.log(`🤖 Post请求响应:${JSON.stringify(data)}`); + } + } catch (error) { + console.error(`🚫 Post请求失败:${error}: ${url}`); + } + this.logDivider(); + return data; + } + + getSFSymbol = (name, size = 16) => { + const sf = SFSymbol.named(name) + if (sf != null) { + if (size != undefined && size != null) { + sf.applyFont(Font.systemFont(size)) + } + return sf.image + } else { + return undefined + } + } + + getLocation = async (locale = "zh_cn", options = {}) => { + // 定位信息 + let locationData = { + "latitude": undefined, + "longitude": undefined, + "locality": undefined, + "subLocality": undefined + }; + const { location = true, longitude, latitude } = this.readWidgetSetting(); + if (!location) { + locationData.longitude = longitude; + locationData.latitude = latitude; + if (longitude == null || longitude == undefined || latitude == null || latitude == undefined) { + await this.generateAlert('定位信息', '系统定位已关闭\n配置中找不到指定定位信息\n请开关定位后输入定位\n点击左上角关闭脚本重新运行', ['确定']); + throw new Error('获取定位信息失败,请打开定位或者手动输入定位信息!'); + } + return locationData; + } + // 缓存 + const defaultOptions = { + useICloud: false, + scriptName: this.scriptName + }; + options = { + ...defaultOptions, + ...options + }; + const { useICloud, scriptName } = options; + // 缓存文件 + const cacheFileName = this.md5("lsp-location-cache"); + const ufm = this.useFileManager({ useICloud, scriptName }); + try { + // 读取本地缓存 + const locationCache = ufm.readStringCache(cacheFileName, true); + // 判断是否需要刷新 + const lastCacheTime = ufm.getCacheModifyDate(cacheFileName, true); + const timeInterval = Math.floor((this.getCurrentTimeStamp() - lastCacheTime) / 60); + const canUseCache = locationCache != null && locationCache.length > 0; + const { refreshInterval = '0' } = this.readWidgetSetting(); + const shouldLoadCache = timeInterval <= Number(refreshInterval) && canUseCache; + console.log(`⏰ ${this.getDateStr(new Date(lastCacheTime * 1000), 'HH:mm')}加入缓存,已缓存 ${lastCacheTime > 0 ? timeInterval : 0}min,缓存${shouldLoadCache ? '未过期' : '已过期'}`); + if (shouldLoadCache) { + // 读取缓存数据 + console.log(`🤖 读取定位缓存数据:${locationCache}`); + locationData = JSON.parse(locationCache); + } else { + console.log(`📌 开始调用手机定位`); + const location = await Location.current(); + const geocode = await Location.reverseGeocode(location.latitude, location.longitude, locale); + locationData.latitude = location.latitude; + locationData.longitude = location.longitude; + const geo = geocode[0]; + // 市 + if (locationData.locality == undefined) { + locationData.locality = geo.locality; + } + // 区 + if (locationData.subLocality == undefined) { + locationData.subLocality = geo.subLocality; + } + // 街道 + locationData.street = geo.thoroughfare; + // 缓存数据 + ufm.writeStringCache(cacheFileName, JSON.stringify(locationData), true); + console.log(`🚀 定位信息:latitude=${location.latitude},longitude=${location.longitude},locality=${locationData.locality},subLocality=${locationData.subLocality},street=${locationData.street}`); + } + } catch (error) { + console.error(`🚫 定位出错了,${error.toString()}`); + // 读取缓存数据 + const locationCache = ufm.readStringCache(cacheFileName, true); + console.log(`🤖 读取定位缓存数据:${locationCache}`); + if (locationCache && locationCache.length > 0) { + locationData = JSON.parse(locationCache); + } + } + this.logDivider(); + return locationData; + } + + getSettingValueByKey = (key, defaultValue) => this.readWidgetSetting()[key] ?? defaultValue; + + loadShadowColor2Image = async (img, shadowColor) => { + try { + let drawContext = new DrawContext() + drawContext.size = img.size + drawContext.respectScreenScale = true + // 把图片画上去 + drawContext.drawImageInRect(img, new Rect(0, 0, img.size['width'], img.size['height'])) + // 填充蒙版颜色 + drawContext.setFillColor(shadowColor) + // 填充 + drawContext.fillRect(new Rect(0, 0, img.size['width'], img.size['height'])) + return await drawContext.getImage() + } catch (error) { + console.error(error); + this.logDivider(); + } + } + + /** + * 图片圆形裁剪 + * @param {*} url + * @returns + */ + circleCropImage = async (url) => { + let img = await this.getImageByUrl(url); + const imgData = Data.fromPNG(img).toBase64String(); + const html = ` + + + + ` + const js = ` + let canvas = document.createElement("canvas"); + let sourceImg = document.getElementById("sourceImg"); + let silhouetteImg = document.getElementById("silhouetteImg"); + var diameter = sourceImg.width < sourceImg.height ? sourceImg.width : sourceImg.height; + let ctx = canvas.getContext('2d'); + canvas.width = diameter; + canvas.height = diameter; + ctx.save(); + ctx.beginPath(); + ctx.arc(diameter / 2, diameter / 2, diameter / 2, 0, 2 * Math.PI); + ctx.clip(); + ctx.drawImage(sourceImg, 0, 0); + ctx.restore(); + let imgData = ctx.getImageData(0, 0, diameter, diameter); + ctx.putImageData(imgData, 0, 0); + silhouetteImg.src = canvas.toDataURL(); + output = canvas.toDataURL(); + ` + const wv = new WebView(); + await wv.loadHTML(html); + const base64Image = await wv.evaluateJavaScript(js); + return await new Request(base64Image).loadImage(); + } + + /** + * 在线图片加载 + * @param {string} url 图片链接 + * @param {string} pointCacheKey 指定缓存key + * @param {bool} useCache 是否使用缓存 + * @return {Image} + */ + getImageByUrl = async (url, options = {}) => { + const { pointCacheKey = null, useCache = true } = options; + // 缓存 + options = { + useICloud: false, + scriptName: this.scriptName, + ...options, + }; + const { useICloud, scriptName } = options; + const ufm = this.useFileManager({ useICloud, scriptName }); + // 根据URL进行md5生成cacheKey + let cacheFileName = pointCacheKey; + if (cacheFileName == undefined || cacheFileName == null || cacheFileName.length == 0) { + cacheFileName = this.md5(url); + } + try { + // 缓存数据 + if (useCache) { + const cacheImg = ufm.readImgCache(cacheFileName); + if (cacheImg != undefined && cacheImg != null) { + console.log(`🤖 返回缓存图片:${url}`); + this.logDivider(); + return cacheImg; + } + } + console.log(`🚀 在线请求图片:${url}`); + const req = new Request(url); + let img = await req.loadImage(); + // 存储到缓存 + ufm.writeImgCache(cacheFileName, img); + this.logDivider(); + return img; + } catch (e) { + console.error(`🚫 图片加载失败:${e}`); + // 判断本地是否有缓存,有的话直接返回缓存 + let cacheImg = ufm.readImgCache(cacheFileName); + if (cacheImg != undefined) { + console.error(`🚫 图片加载失败,返回缓存图片`); + this.logDivider(); + return cacheImg; + } + // 没有缓存+失败情况下,返回灰色背景 + console.log(`📵 返回默认图片,原链接:${url}`) + let ctx = new DrawContext(); + ctx.opaque = false; + ctx.respectScreenScale = true; + ctx.size = new Size(80, 80); + ctx.setFillColor(Color.darkGray()); + ctx.fillRect(new Rect(0, 0, 80, 80)); + this.logDivider(); + return await ctx.getImage(); + } + } + + carouselIndex = (cacheKey, size) => { + if (size <= 0) { + return 0; + } + let index = -1; + if (Keychain.contains(cacheKey)) { + let cacheString = this.keyGet(cacheKey); + index = parseInt(cacheString); + } + index = index + 1; + index = index % size; + this.keySave(cacheKey, `${index}`) + return index + } + + getRandowArrValue(arr) { + const key = parseInt(Math.random() * arr.length) + let item = arr[key] + if (item == undefined) { + item = arr[0] + } + return item + } + + keySave = (cacheKey, cache) => { + if (cache) { + Keychain.set(cacheKey, cache); + } + } + + keyGet = (cacheKey, defaultValue = '') => { + if (Keychain.contains(cacheKey)) { + return Keychain.get(cacheKey); + } else { + return defaultValue; + } + } + + generateAlert = async (title, message, options, cancelAction) => { + let alert = new Alert(); + alert.title = title; + if (message?.length > 0) { + alert.message = `\n${message}`; + } + if (!options) { + throw new Error('generateAlert 方法的 "options" 属性不可为空'); + } + for (const option of options) { + alert.addAction(option); + } + if (cancelAction) { + alert.addCancelAction(cancelAction); + } + let response = await alert.presentAlert(); + return response; + } + + generateInputAlert = async (options, confirm) => { + options = { + cancelText: '取消', + confirmText: '确定', + ...options + }; + const inputAlert = new Alert(); + inputAlert.title = options.title; + const message = options.message; + if (message) { + inputAlert.message = `\n${message}`; + } + inputAlert.addAction(options.cancelText); + inputAlert.addAction(options.confirmText); + const fieldArr = options.options; + if (!fieldArr) { + throw new Error('generateInputAlert 方法的 "options" 属性不可为空') + } + for (const option of fieldArr) { + inputAlert.addTextField(option.hint, option.value); + } + let selectIndex = await inputAlert.presentAlert(); + if (selectIndex == 1) { + const inputObj = []; + fieldArr.forEach((_, index) => { + let value = inputAlert.textFieldValue(index); + inputObj.push({ index, value }); + }); + confirm(inputObj); + } + return selectIndex; + } + + presentSheet = async (options) => { + options = { + showCancel: true, + cancelText: '取消', + ...options + }; + const alert = new Alert(); + if (options.title) { + alert.title = options.title; + } + if (options.message) { + alert.message = options.message; + } + if (!options.options) { + throw new Error('presentSheet 方法的 "options" 属性不可为空') + } + for (const option of options.options) { + alert.addAction(option.name); + } + if (options.showCancel) { + alert.addCancelAction(options.cancelText); + } + return await alert.presentSheet(); + }; + + /** + * 手机各大小组件尺寸 + */ + phoneSizes = () => { + return { + // 14 Pro Max + "2796": { 小号: 510, 中号: 1092, 大号: 1146, 左边: 99, 右边: 681, 顶部: 282, 中间: 918, 底部: 1554 }, + // 14 Pro + "2556": { 小号: 474, 中号: 1014, 大号: 1062, 左边: 82, 右边: 622, 顶部: 270, 中间: 858, 底部: 1446 }, + // 12/13 Pro Max + "2778": { 小号: 510, 中号: 1092, 大号: 1146, 左边: 96, 右边: 678, 顶部: 246, 中间: 882, 底部: 1518 }, + // 12/13 and 12/13 Pro + "2532": { 小号: 474, 中号: 1014, 大号: 1062, 左边: 78, 右边: 618, 顶部: 231, 中间: 819, 底部: 1407 }, + // 11 Pro Max, XS Max + "2688": { 小号: 507, 中号: 1080, 大号: 1137, 左边: 81, 右边: 654, 顶部: 228, 中间: 858, 底部: 1488 }, + // 11, XR + "1792": { 小号: 338, 中号: 720, 大号: 758, 左边: 54, 右边: 436, 顶部: 160, 中间: 580, 底部: 1000 }, + // 11 Pro, XS, X, 12 mini + "2436": { + x: { 小号: 465, 中号: 987, 大号: 1035, 左边: 69, 右边: 591, 顶部: 213, 中间: 783, 底部: 1353 }, + mini: { 小号: 465, 中号: 987, 大号: 1035, 左边: 69, 右边: 591, 顶部: 231, 中间: 801, 底部: 1371 } + }, + // Plus phones + "2208": { 小号: 471, 中号: 1044, 大号: 1071, 左边: 99, 右边: 672, 顶部: 114, 中间: 696, 底部: 1278 }, + // SE2 and 6/6S/7/8 + "1334": { 小号: 296, 中号: 642, 大号: 648, 左边: 54, 右边: 400, 顶部: 60, 中间: 412, 底部: 764 }, + // SE1 + "1136": { 小号: 282, 中号: 584, 大号: 622, 左边: 30, 右边: 332, 顶部: 59, 中间: 399, 底部: 399 }, + // 11 and XR in Display Zoom mode + "1624": { 小号: 310, 中号: 658, 大号: 690, 左边: 46, 右边: 394, 顶部: 142, 中间: 522, 底部: 902 }, + // Plus in Display Zoom mode + "2001": { 小号: 444, 中号: 963, 大号: 972, 左边: 81, 右边: 600, 顶部: 90, 中间: 618, 底部: 1146 }, + } + } + + cropImage = (crop, image) => { + let draw = new DrawContext(); + let rect = new Rect(crop.x, crop.y, crop.w, crop.h); + draw.size = new Size(rect.width, rect.height); + draw.drawImageAtPoint(image, new Point(-rect.x, -rect.y)); + return draw.getImage(); + } + + blurImage = async (img, crop, style, blur = 150) => { + const js = ` + var mul_table = [ + 512, 512, 456, 512, 328, 456, 335, 512, 405, 328, 271, 456, 388, 335, 292, 512, + 454, 405, 364, 328, 298, 271, 496, 456, 420, 388, 360, 335, 312, 292, 273, 512, + 482, 454, 428, 405, 383, 364, 345, 328, 312, 298, 284, 271, 259, 496, 475, 456, + 437, 420, 404, 388, 374, 360, 347, 335, 323, 312, 302, 292, 282, 273, 265, 512, + 497, 482, 468, 454, 441, 428, 417, 405, 394, 383, 373, 364, 354, 345, 337, 328, + 320, 312, 305, 298, 291, 284, 278, 271, 265, 259, 507, 496, 485, 475, 465, 456, + 446, 437, 428, 420, 412, 404, 396, 388, 381, 374, 367, 360, 354, 347, 341, 335, + 329, 323, 318, 312, 307, 302, 297, 292, 287, 282, 278, 273, 269, 265, 261, 512, + 505, 497, 489, 482, 475, 468, 461, 454, 447, 441, 435, 428, 422, 417, 411, 405, + 399, 394, 389, 383, 378, 373, 368, 364, 359, 354, 350, 345, 341, 337, 332, 328, + 324, 320, 316, 312, 309, 305, 301, 298, 294, 291, 287, 284, 281, 278, 274, 271, + 268, 265, 262, 259, 257, 507, 501, 496, 491, 485, 480, 475, 470, 465, 460, 456, + 451, 446, 442, 437, 433, 428, 424, 420, 416, 412, 408, 404, 400, 396, 392, 388, + 385, 381, 377, 374, 370, 367, 363, 360, 357, 354, 350, 347, 344, 341, 338, 335, + 332, 329, 326, 323, 320, 318, 315, 312, 310, 307, 304, 302, 299, 297, 294, 292, + 289, 287, 285, 282, 280, 278, 275, 273, 271, 269, 267, 265, 263, 261, 259]; + + var shg_table = [ + 9, 11, 12, 13, 13, 14, 14, 15, 15, 15, 15, 16, 16, 16, 16, 17, + 17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 21, + 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, + 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, + 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, + 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23, + 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, + 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, + 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, + 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, + 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, + 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, + 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, + 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24]; + + function stackBlurCanvasRGB(id, top_x, top_y, width, height, radius) { + if (isNaN(radius) || radius < 1) return; + radius |= 0; + + var canvas = document.getElementById(id); + var context = canvas.getContext("2d"); + var imageData; + + try { + try { + imageData = context.getImageData(top_x, top_y, width, height); + } catch (e) { + // NOTE: this part is supposedly only needed if you want to work with local files + // so it might be okay to remove the whole try/catch block and just use + // imageData = context.getImageData( top_x, top_y, width, height ); + try { + netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead"); + imageData = context.getImageData(top_x, top_y, width, height); + } catch (e) { + alert("Cannot access local image"); + throw new Error("unable to access local image data: " + e); + return; + } + } + } catch (e) { + alert("Cannot access image"); + throw new Error("unable to access image data: " + e); + } + + var pixels = imageData.data; + + var x, y, i, p, yp, yi, yw, r_sum, g_sum, b_sum, + r_out_sum, g_out_sum, b_out_sum, + r_in_sum, g_in_sum, b_in_sum, + pr, pg, pb, rbs; + + var div = radius + radius + 1; + var w4 = width << 2; + var widthMinus1 = width - 1; + var heightMinus1 = height - 1; + var radiusPlus1 = radius + 1; + var sumFactor = radiusPlus1 * (radiusPlus1 + 1) / 2; + + var stackStart = new BlurStack(); + var stack = stackStart; + for (i = 1; i < div; i++) { + stack = stack.next = new BlurStack(); + if (i == radiusPlus1) var stackEnd = stack; + } + stack.next = stackStart; + var stackIn = null; + var stackOut = null; + + yw = yi = 0; + + var mul_sum = mul_table[radius]; + var shg_sum = shg_table[radius]; + + for (y = 0; y < height; y++) { + r_in_sum = g_in_sum = b_in_sum = r_sum = g_sum = b_sum = 0; + + r_out_sum = radiusPlus1 * (pr = pixels[yi]); + g_out_sum = radiusPlus1 * (pg = pixels[yi + 1]); + b_out_sum = radiusPlus1 * (pb = pixels[yi + 2]); + + r_sum += sumFactor * pr; + g_sum += sumFactor * pg; + b_sum += sumFactor * pb; + + stack = stackStart; + + for (i = 0; i < radiusPlus1; i++) { + stack.r = pr; + stack.g = pg; + stack.b = pb; + stack = stack.next; + } + + for (i = 1; i < radiusPlus1; i++) { + p = yi + ((widthMinus1 < i ? widthMinus1 : i) << 2); + r_sum += (stack.r = (pr = pixels[p])) * (rbs = radiusPlus1 - i); + g_sum += (stack.g = (pg = pixels[p + 1])) * rbs; + b_sum += (stack.b = (pb = pixels[p + 2])) * rbs; + + r_in_sum += pr; + g_in_sum += pg; + b_in_sum += pb; + + stack = stack.next; + } + + stackIn = stackStart; + stackOut = stackEnd; + for (x = 0; x < width; x++) { + pixels[yi] = (r_sum * mul_sum) >> shg_sum; + pixels[yi + 1] = (g_sum * mul_sum) >> shg_sum; + pixels[yi + 2] = (b_sum * mul_sum) >> shg_sum; + + r_sum -= r_out_sum; + g_sum -= g_out_sum; + b_sum -= b_out_sum; + + r_out_sum -= stackIn.r; + g_out_sum -= stackIn.g; + b_out_sum -= stackIn.b; + + p = (yw + ((p = x + radius + 1) < widthMinus1 ? p : widthMinus1)) << 2; + + r_in_sum += (stackIn.r = pixels[p]); + g_in_sum += (stackIn.g = pixels[p + 1]); + b_in_sum += (stackIn.b = pixels[p + 2]); + + r_sum += r_in_sum; + g_sum += g_in_sum; + b_sum += b_in_sum; + + stackIn = stackIn.next; + + r_out_sum += (pr = stackOut.r); + g_out_sum += (pg = stackOut.g); + b_out_sum += (pb = stackOut.b); + + r_in_sum -= pr; + g_in_sum -= pg; + b_in_sum -= pb; + + stackOut = stackOut.next; + yi += 4; + } + yw += width; + } + + for (x = 0; x < width; x++) { + g_in_sum = b_in_sum = r_in_sum = g_sum = b_sum = r_sum = 0; + + yi = x << 2; + r_out_sum = radiusPlus1 * (pr = pixels[yi]); + g_out_sum = radiusPlus1 * (pg = pixels[yi + 1]); + b_out_sum = radiusPlus1 * (pb = pixels[yi + 2]); + + r_sum += sumFactor * pr; + g_sum += sumFactor * pg; + b_sum += sumFactor * pb; + + stack = stackStart; + + for (i = 0; i < radiusPlus1; i++) { + stack.r = pr; + stack.g = pg; + stack.b = pb; + stack = stack.next; + } + + yp = width; + + for (i = 1; i <= radius; i++) { + yi = (yp + x) << 2; + + r_sum += (stack.r = (pr = pixels[yi])) * (rbs = radiusPlus1 - i); + g_sum += (stack.g = (pg = pixels[yi + 1])) * rbs; + b_sum += (stack.b = (pb = pixels[yi + 2])) * rbs; + + r_in_sum += pr; + g_in_sum += pg; + b_in_sum += pb; + + stack = stack.next; + + if (i < heightMinus1) { + yp += width; + } + } + + yi = x; + stackIn = stackStart; + stackOut = stackEnd; + for (y = 0; y < height; y++) { + p = yi << 2; + pixels[p] = (r_sum * mul_sum) >> shg_sum; + pixels[p + 1] = (g_sum * mul_sum) >> shg_sum; + pixels[p + 2] = (b_sum * mul_sum) >> shg_sum; + + r_sum -= r_out_sum; + g_sum -= g_out_sum; + b_sum -= b_out_sum; + + r_out_sum -= stackIn.r; + g_out_sum -= stackIn.g; + b_out_sum -= stackIn.b; + + p = (x + (((p = y + radiusPlus1) < heightMinus1 ? p : heightMinus1) * width)) << 2; + + r_sum += (r_in_sum += (stackIn.r = pixels[p])); + g_sum += (g_in_sum += (stackIn.g = pixels[p + 1])); + b_sum += (b_in_sum += (stackIn.b = pixels[p + 2])); + + stackIn = stackIn.next; + + r_out_sum += (pr = stackOut.r); + g_out_sum += (pg = stackOut.g); + b_out_sum += (pb = stackOut.b); + + r_in_sum -= pr; + g_in_sum -= pg; + b_in_sum -= pb; + + stackOut = stackOut.next; + + yi += width; + } + } + + context.putImageData(imageData, top_x, top_y); + } + + function BlurStack() { + this.r = 0; + this.g = 0; + this.b = 0; + this.a = 0; + this.next = null; + } + + // https://gist.github.com/mjackson/5311256 + function rgbToHsl(r, g, b) { + r /= 255, g /= 255, b /= 255; + var max = Math.max(r, g, b), min = Math.min(r, g, b); + var h, s, l = (max + min) / 2; + if (max == min) { + h = s = 0; // achromatic + } else { + var d = max - min; + s = l > 0.5 ? d / (2 - max - min) : d / (max + min); + switch (max) { + case r: h = (g - b) / d + (g < b ? 6 : 0); break; + case g: h = (b - r) / d + 2; break; + case b: h = (r - g) / d + 4; break; + } + h /= 6; + } + return [h, s, l]; + } + + function hslToRgb(h, s, l) { + var r, g, b; + if (s == 0) { + r = g = b = l; // achromatic + } else { + var hue2rgb = function hue2rgb(p, q, t) { + if (t < 0) t += 1; + if (t > 1) t -= 1; + if (t < 1 / 6) return p + (q - p) * 6 * t; + if (t < 1 / 2) return q; + if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6; + return p; + } + var q = l < 0.5 ? l * (1 + s) : l + s - l * s; + var p = 2 * l - q; + r = hue2rgb(p, q, h + 1 / 3); + g = hue2rgb(p, q, h); + b = hue2rgb(p, q, h - 1 / 3); + } + return [Math.round(r * 255), Math.round(g * 255), Math.round(b * 255)]; + } + + function lightBlur(hsl) { + // Adjust the luminance. + let lumCalc = 0.35 + (0.3 / hsl[2]); + if (lumCalc < 1) { lumCalc = 1; } + else if (lumCalc > 3.3) { lumCalc = 3.3; } + const l = hsl[2] * lumCalc; + + // Adjust the saturation. + const colorful = 2 * hsl[1] * l; + const s = hsl[1] * colorful * 1.5; + + return [hsl[0], s, l]; + } + + function darkBlur(hsl) { + // Adjust the saturation. + const colorful = 2 * hsl[1] * hsl[2]; + const s = hsl[1] * (1 - hsl[2]) * 3; + + return [hsl[0], s, hsl[2]]; + } + + // Set up the canvas. + const img = document.getElementById("blurImg"); + const canvas = document.getElementById("mainCanvas"); + const w = img.naturalWidth; + const h = img.naturalHeight; + canvas.style.width = w + "px"; + canvas.style.height = h + "px"; + canvas.width = w; + canvas.height = h; + const context = canvas.getContext("2d"); + context.clearRect(0, 0, w, h); + context.drawImage(img, 0, 0); + + // Get the image data from the context. + var imageData = context.getImageData(0, 0, w, h); + var pix = imageData.data; + + // Set the image function, if any. + var imageFunc; + var style = "${style}"; + if (style == "dark") { imageFunc = darkBlur; } + else if (style == "light") { imageFunc = lightBlur; } + for (let i = 0; i < pix.length; i += 4) { + // Convert to HSL. + let hsl = rgbToHsl(pix[i], pix[i + 1], pix[i + 2]); + + // Apply the image function if it exists. + if (imageFunc) { hsl = imageFunc(hsl); } + + // Convert back to RGB. + const rgb = hslToRgb(hsl[0], hsl[1], hsl[2]); + + // Put the values back into the data. + pix[i] = rgb[0]; + pix[i + 1] = rgb[1]; + pix[i + 2] = rgb[2]; + } + + // Draw over the old image. + context.putImageData(imageData, 0, 0); + // Blur the image. + stackBlurCanvasRGB("mainCanvas", 0, 0, w, h, ${blur}); + + // Perform the additional processing for dark images. + if (style == "dark") { + // Draw the hard light box over it. + context.globalCompositeOperation = "hard-light"; + context.fillStyle = "rgba(55,55,55,0.2)"; + context.fillRect(0, 0, w, h); + // Draw the soft light box over it. + context.globalCompositeOperation = "soft-light"; + context.fillStyle = "rgba(55,55,55,1)"; + context.fillRect(0, 0, w, h); + // Draw the regular box over it. + context.globalCompositeOperation = "source-over"; + context.fillStyle = "rgba(55,55,55,0.4)"; + context.fillRect(0, 0, w, h); + // Otherwise process light images. + } else if (style == "light") { + context.fillStyle = "rgba(255,255,255,0.4)"; + context.fillRect(0, 0, w, h); + } + // Return a base64 representation. + canvas.toDataURL(); + ` + + // Convert the images and create the HTML. + let blurImgData = Data.fromPNG(img).toBase64String() + let html = ` + + + ` + + // Make the web view and get its return value. + let view = new WebView() + await view.loadHTML(html) + let returnValue = await view.evaluateJavaScript(js) + + // Remove the data type from the string and convert to data. + let imageDataString = returnValue.slice(22) + let imageData = Data.fromBase64String(imageDataString) + + // Convert to image and crop before returning. + let imageFromData = Image.fromData(imageData) + if (crop != null && crop != undefined) { + return this.cropImage(crop, imageFromData) + } else { + return imageFromData + } + } + + transparentBg = async (day = true) => { + try { + if (config.runsInApp) { + let alertTitle = `${day ? '白天' : '深色'}背景设置` + let imgCrop = undefined + const tips = "小组件透明背景已经设置完成,\n退到桌面刷新/预览组件即可查看效果" + // Determine if user has taken the screenshot. + let message = "如需实现透明背景\n长按桌面然后滑到桌面最右边进行截图" + let options = ["退出进行截图", "继续选择图片"] + let response = await this.generateAlert(alertTitle, message, options) + // Return if we need to exit. + if (response == 0) return null + // Get screenshot and determine phone size. + let img = await Photos.fromLibrary() + let height = img.size.height + let phone = this.phoneSizes()[height] + if (!phone) { + message = "你似乎选择了非iPhone屏幕截图的图像\n或者不支持你的iPhone\n请使用其他图像再试一次!" + await this.generateAlert(alertTitle, message, ["好的"]) + return null + } + + const ufm = this.useFileManager(); + const { fm, fullFileName, writeStringCache, readStringCache, writeImgCache } = ufm; + + // Extra setup needed for 2436-sized phones. + if (height == 2436) { + let cacheName = "lsp-phone-type" + const cacheFileName = fullFileName(cacheName); + const fileExists = fm.fileExists(cacheFileName); + // If we already cached the phone size, load it. + if (fileExists) { + let typeString = readStringCache(cacheFileName) + phone = phone[typeString] + // Otherwise, prompt the user. + } else { + message = "你使用什么型号的iPhone?" + let types = ["iPhone 12 mini", "iPhone 11 Pro, XS, or X"] + let typeIndex = await this.generateAlert(alertTitle, message, types) + let type = (typeIndex == 0) ? "mini" : "x" + phone = phone[type] + writeStringCache(cacheFileName, type) + } + } + + // Prompt for widget size and position. + message = "你想要创建什么尺寸的小部件?" + let sizes = ["小号", "中号", "大号"] + let size = await this.generateAlert(alertTitle, message, sizes) + let widgetSize = sizes[size] + + message = "你想它应用在什么位置?" + message += (height == 1136 ? " (请注意,你的设备仅支持两行小部件,因此中间和底部选项相同。)" : "") + + // Determine image crop based on phone size. + let crop = { w: "", h: "", x: "", y: "" } + if (widgetSize == "小号") { + crop.w = phone.小号 + crop.h = phone.小号 + let positions = ["顶部 左边", "顶部 右边", "中间 左边", "中间 右边", "底部 左边", "底部 右边"] + let position = await this.generateAlert(alertTitle, message, positions) + // Convert the two words into two keys for the phone size dictionary. + let keys = positions[position].toLowerCase().split(' ') + crop.y = phone[keys[0]] + crop.x = phone[keys[1]] + } else if (widgetSize == "中号") { + crop.w = phone.中号 + crop.h = phone.小号 + // 中号 and 大号 widgets have a fixed x-value. + crop.x = phone.左边 + let positions = ["顶部", "中间", "底部"] + let position = await this.generateAlert(alertTitle, message, positions) + let key = positions[position].toLowerCase() + crop.y = phone[key] + } else if (widgetSize == "大号") { + crop.w = phone.中号 + crop.h = phone.大号 + crop.x = phone.左边 + let positions = ["顶部", "底部"] + let position = await this.generateAlert(alertTitle, message, positions) + // 大号 widgets at the 底部 have the "中间" y-value. + crop.y = position ? phone.中间 : phone.顶部 + } + + // Prompt for blur style. + message = "你想要一个完全透明的小部件,还是半透明的模糊效果?" + let blurOptions = ["透明背景", "浅色模糊", "深色模糊", "完全模糊"] + let blurred = await this.generateAlert(alertTitle, message, blurOptions) + + // We always need the cropped image. + imgCrop = this.cropImage(crop, img) + + // If it's blurred, set the blur style. + if (blurred) { + const styles = ["", "light", "dark", "none"] + const style = styles[blurred] + imgCrop = await this.blurImage(img, crop, style) + } + + message = tips + const exportPhotoOptions = ["导出", "完成"] + const exportToPhoto = await this.generateAlert(alertTitle, message, exportPhotoOptions) + + if (exportToPhoto == 0) { + Photos.save(imgCrop) + } + + // 保存图片缓存 + writeImgCache(day ? this.dayTransparentBgName() : this.nightTransparentBgName(), imgCrop); + return true; + } + } catch (error) { + console.error(error); + } + } + + /** + * 获取组件尺寸大小 + * @param {string} size 组件尺寸【小号】、【中号】、【大号】 + * @param {bool} isIphone12Mini 是否是12mini + */ + getWidgetSize = (size, isIphone12Mini = false) => { + // 屏幕缩放比例 + const screenScale = Device.screenScale(); + // 组件宽度 + let phoneWidgetSize = undefined; + // 手机屏幕高度 + const screenHeight = Device.screenSize().height * screenScale; + if (screenHeight == 2436) { + // 2436尺寸的手机有【11 Pro, XS, X】 & 【12 mini】 + if (isIphone12Mini) { + phoneWidgetSize = this.phoneSizes()[screenHeight].mini; + } else { + phoneWidgetSize = this.phoneSizes()[screenHeight].x; + } + } else { + phoneWidgetSize = this.phoneSizes()[screenHeight]; + } + // + let width = phoneWidgetSize[size] / screenScale; + if (size === '大号') { + width = phoneWidgetSize['中号'] / screenScale; + } + // + let height = phoneWidgetSize['小号'] / screenScale; + if (size === '大号') { + height = phoneWidgetSize['大号'] / screenScale; + } + // + return { width, height }; + } + + // *******************常用api信息接口******************* + /** + * 获取农历信息 + */ + getLunarInfo = async () => { + const datePre = 'lunar_'; + const currDate = new Date(); + let dateStr = this.getDateStr(currDate, 'yyyyMMdd'); + let lunarJsonData = this.useFileManager().readJSONCache(datePre + dateStr); + if (JSON.stringify(lunarJsonData) == '{}') { + console.log(`🚀 在线请求农历数据`); + const day = currDate.getDate() - 1; + // 万年历数据 + const url = "https://wannianrili.bmcx.com/"; + 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 html = await this.httpGet(url, { jsonFormat: false, headers, useCache: false }); + const webview = new WebView(); + await webview.loadHTML(html); + const getData = ` + function getData() { + try { + success = true; + infoLunarText = document.querySelector('div#wnrl_k_you_id_${day}.wnrl_k_you .wnrl_k_you_id_wnrl_nongli').innerText + holidayText = document.querySelectorAll('div.wnrl_k_zuo div.wnrl_riqi')[${day}].querySelector('.wnrl_td_bzl').innerText + lunarYearText = document.querySelector('div.wnrl_k_you_id_wnrl_nongli_ganzhi').innerText + lunarYearText = lunarYearText.slice(0, lunarYearText.indexOf('年') + 1) + if (infoLunarText.search(holidayText) != -1) { + holidayText = '' + } + } catch(e) { + log(e) + success = false; + infoLunarText = '*' + holidayText = '*' + lunarYearText = '*' + } + return { success, infoLunarText, holidayText , lunarYearText } + } + getData() + ` + // 节日数据 + lunarJsonData = await webview.evaluateJavaScript(getData, false); + // + const listFiles = this.useFileManager().fm.listContents(this.useFileManager().cacheDir); + for (let index = listFiles.length - 1; index >= 0; index--) { + const file = listFiles[index]; + if (file.startsWith(datePre)) { + console.log(`删除农历缓存文件:${file}`); + this.useFileManager().fm.remove(this.useFileManager().cacheDir + '/' + file); + } + } + // + if (lunarJsonData?.success) { + this.useFileManager().writeJSONCache(datePre + dateStr, lunarJsonData); + } + } + console.log(`🚀 农历数据:${JSON.stringify(lunarJsonData)}`); + this.logDivider(); + return lunarJsonData; + } + // *************************************************** + + // @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ + + async getAppViewOptions() { + return {}; + } + + async run() { + const viewOptions = await this.getAppViewOptions(); + if (config.runsInWidget) { + await this.providerWidget(viewOptions.widgetProvider); + } else { + this.renderAppView(viewOptions); + } + } + + // @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ + + dismissLoading = (webView) => { + webView.evaluateJavaScript( + 'window.dispatchEvent(new CustomEvent(\'JWeb\', { detail: { code: \'finishLoading\' } }))', + false + ); + } + + insertTextByElementId = (webView, elementId, text) => { + webView.evaluateJavaScript( + 'document.getElementById("' + elementId + '").innerText="' + text + '"', + false + ); + } + + async renderAppView(options = {}, previewWebView = new WebView()) { + this.logDivider(); + console.log(`👉 组件控制面板渲染预览 👇`); + this.logDivider(); + const { + showWidgetSettingBg = false, // 是否显示组件背景设置的图片 + showWidgetBg = true, // 是否显示背景菜单选项 + isChildLevel = false, // 是否是二级菜单 + needLocation = false, // 是否需要定位 + settingItemFontSize = 16, + authorNameFontSize = 20, + authorDescFontSize = 12, + widgetProvider = { defaultBgType: '2', small: true, medium: true, large: true }, + settingItems = [], + onItemClick, + onCheckedChange, + authorAvatar = `data:image/png;base64,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`, + authorName = '杂货万事屋', + authorDesc = '点击查看/添加Scriptable小组件订阅', + homePage = this.getRemoteRootPath(), + } = options; + // 屏幕宽度 + const screenWidth = Device.screenSize().width; + const mediumWidgetHeight = 80; + // 组件配置缓存 + const widgetSetting = this.readWidgetSetting(); + const { dayBackgroundImagePath, nightBackgroundImagePath, dayBackgroundImageUrl, nightBackgroundImageUrl, picType } = widgetSetting; + let dayBackgroundImage = this.useFileManager().readImgCache(dayBackgroundImagePath); + let nightBackgroundImage = this.useFileManager().readImgCache(nightBackgroundImagePath); + if ((picType == 0 || picType == 1 || picType == 2) && showWidgetSettingBg) { + if (picType == 1) { + dayBackgroundImage = dayBackgroundImageUrl ? await this.getImageByUrl(dayBackgroundImageUrl) : null; + nightBackgroundImage = nightBackgroundImageUrl ? await this.getImageByUrl(nightBackgroundImageUrl) : null; + } + } + const showDayImg = dayBackgroundImage ? `data:image/png;base64,${Data.fromPNG(dayBackgroundImage).toBase64String()}` : `${this.getRemoteRootPath()}/img/bg_placeholder.png`; + const showNightImg = nightBackgroundImage ? `data:image/png;base64,${Data.fromPNG(nightBackgroundImage).toBase64String()}` : `${this.getRemoteRootPath()}/img/bg_placeholder.png`; + let bgType = widgetSetting.bgType ?? widgetProvider.defaultBgType ?? this.defaultConfig.bgType; + // ================== 配置界面样式 =================== + const style = ` + :root { + --color-primary: #007aff; + --divider-color: rgba(60,60,67,0.16); + --card-background: #fff; + --card-radius: 8px; + --list-header-color: rgba(60,60,67,0.6); + } + * { + -webkit-user-select: none; + user-select: none; + } + body { + margin: 10px 0; + -webkit-font-smoothing: antialiased; + font-family: "SF Pro Display","SF Pro Icons","Helvetica Neue","Helvetica","Arial",sans-serif; + accent-color: var(--color-primary); + background: #f6f6f6; + } + .list { + margin: 15px; + } + .list__header { + margin: 0 18px; + color: var(--list-header-color); + font-size: 13px; + } + .list__body { + margin-top: 10px; + background: var(--card-background); + border-radius: var(--card-radius); + overflow: hidden; + } + .form-item-auth { + display: flex; + align-items: center; + justify-content: space-between; + min-height: 4em; + padding: 0.5em 18px; + position: relative; + } + .form-item-auth-name { + margin: 0px 12px; + font-size: ${authorNameFontSize}px; + font-weight: 430; + } + .form-item-auth-desc { + margin: 0px 12px; + font-size: ${authorDescFontSize}px; + font-weight: 400; + } + .form-label-author-avatar { + width: 62px; + height: 62px; + border-radius:50%; + border: 1px solid #F6D377; + } + .form-item { + display: flex; + align-items: center; + justify-content: space-between; + font-size: ${settingItemFontSize}px; + font-weight: 400; + min-height: 2.2em; + padding: 0.5em 18px; + position: relative; + } + .form-label { + display: flex; + align-items: center; + } + .form-label-img { + height: 30; + } + .form-label-title { + margin-left: 8px + } + .bottom-bg { + margin: 30px 15px 15px 15px; + } + .form-item--link .icon-arrow-right { + color: #86868b; + } + .form-item-right-desc { + font-size: 13px; + color: #86868b; + margin-right: 4px; + } + .form-item + .form-item::before { + content: ""; + position: absolute; + top: 0; + left: 20px; + right: 0; + border-top: 0.5px solid var(--divider-color); + } + .form-item input[type="checkbox"] { + width: 2em; + height: 2em; + } + input[type='number'] { + width: 6em; + height: 2.3em; + outline-style: none; + text-align: right; + padding: 0px 10px; + border: 1px solid #ddd; + font-size: 14px; + color: #86868b; + } + input[type='input'] { + width: 6em; + height: 2.3em; + outline-style: none; + text-align: right; + padding: 0px 10px; + border: 1px solid #ddd; + font-size: 14px; + color: #86868b; + } + input[type='text'] { + width: 6em; + height: 2.3em; + outline-style: none; + text-align: right; + padding: 0px 10px; + border: 1px solid #ddd; + font-size: 14px; + color: #86868b; + } + input[type='checkbox'][role='switch'] { + position: relative; + display: inline-block; + appearance: none; + width: 40px; + height: 24px; + border-radius: 24px; + background: #ccc; + transition: 0.3s ease-in-out; + } + input[type='checkbox'][role='switch']::before { + content: ''; + position: absolute; + left: 2px; + top: 2px; + width: 20px; + height: 20px; + border-radius: 50%; + background: #fff; + transition: 0.3s ease-in-out; + } + input[type='checkbox'][role='switch']:checked { + background: var(--color-primary); + } + input[type='checkbox'][role='switch']:checked::before { + transform: translateX(16px); + } + .copyright { + display: flex; + align-items: center; + justify-content: space-between; + margin: 15px; + font-size: 10px; + color: #86868b; + } + .copyright a { + color: #515154; + text-decoration: none; + } + .preview.loading { + pointer-events: none; + } + .icon-loading { + display: inline-block; + animation: 1s linear infinite spin; + } + .normal-loading { + display: inline-block; + animation: 20s linear infinite spin; + } + @keyframes spin { + 0% { + transform: rotate(0); + } + 100% { + transform: rotate(1turn); + } + } + @media (prefers-color-scheme: dark) { + :root { + --divider-color: rgba(84,84,88,0.65); + --card-background: #1c1c1e; + --list-header-color: rgba(235,235,245,0.6); + } + body { + background: #000; + color: #fff; + } + }`; + + // 组件背景Icon + const widgetBgIco = await this.loadSF2B64('text.below.photo.fill', '#2176ff'); + // 系统通知Icon + const notifyIco = await this.loadSF2B64('bell.fill', '#FD2953'); + // 仓库Icon + const warehouseIco = await this.loadSF2B64('link.icloud', '#3a86ff'); + // 系统定位Icon + const locationIco = await this.loadSF2B64('location.fill', '#07beb8'); + // 刷新间隔 + const refresIntervalIco = await this.loadSF2B64('clock.arrow.circlepath', '#30C758'); + // 组件更新 + const widgetUpdateIco = await this.loadSF2B64('icloud.and.arrow.down', '#3a86ff'); + // 清理缓存 + const cleanDataIco = await this.loadSF2B64('trash', '#FF7F50'); + // 小号预览 + const smallPreviewIco = await this.loadSF2B64('app', '#504ED5'); + // 中号预览 + const mediumPreviewIco = await this.loadSF2B64('rectangle', '#504ED5'); + // 大号预览 + const largePreviewIco = await this.loadSF2B64('rectangle.portrait', '#504ED5'); + // icon转换 + for (let index = 0; index < settingItems.length; index++) { + const item = settingItems[index]; + if (isChildLevel) { + const childItems = item.items; + for (let childIndex = 0; childIndex < childItems.length; childIndex++) { + const childItem = childItems[childIndex]; + const icon = childItem.icon; + const { name, color } = icon; + if (typeof icon !== 'string') { + childItem.icon = await this.loadSF2B64(name, color); + } + } + } else { + const icon = item.icon; + const { name, color } = icon; + if (typeof icon !== 'string') { + item.icon = await this.loadSF2B64(name, color); + } + } + } + + const js = ` + (() => { + const settings = JSON.parse('${JSON.stringify(widgetSetting)}') + const settingItems = JSON.parse('${JSON.stringify(settingItems)}') + + window.invoke = (code, data) => { + window.dispatchEvent( + new CustomEvent( + 'JBridge', + { detail: { code, data } } + ) + ) + } + + const notify = document.querySelector('input[name="notify"]') + notify.checked = settings.notify ?? true + notify.addEventListener('change', (e) => { + formData['notify'] = e.target.checked + invoke('changeSettings', formData) + }) + + const use_github = document.querySelector('input[name="use_github"]') + use_github.checked = settings.use_github ?? true + use_github.addEventListener('change', (e) => { + formData['use_github'] = e.target.checked + invoke('changeSettings', formData) + }) + + const location = document.querySelector('input[name="location"]') + location.checked = settings.location ?? true + location.addEventListener('change', (e) => { + formData['location'] = e.target.checked + invoke('changeSettings', formData) + }) + + function createSettingItems(fragment, settingItems, formId) { + const formData = {}; + for (const item of settingItems) { + const value = item.desc ?? settings[item.name] ?? item.default ?? null; + if(value && item.type != 'cell') { + formData[item.name] = value; + } + const label = document.createElement("label"); + label.className = "form-item"; + + if(item.id) { + label.id = item.id; + } + + const divLabel = document.createElement("div"); + divLabel.className = 'form-label'; + label.appendChild(divLabel); + + const img = document.createElement("img"); + img.src = item.icon; + img.className = 'form-label-img'; + divLabel.appendChild(img); + + const divTitle = document.createElement("div"); + divTitle.className = 'form-label-title'; + divTitle.innerText = item.label; + divLabel.appendChild(divTitle); + + if (item.type === 'select') { + const select = document.createElement('select'); + select.className = 'form-item__input'; + select.name = item.name; + select.value = value; + for (const opt of (item.options || [])) { + const option = document.createElement('option'); + option.value = opt.value; + option.innerText = opt.label; + option.selected = value === opt.value; + select.appendChild(option); + } + select.addEventListener('change', (e) => { + formData[item.name] = e.target.value; + invoke('changeSettings', formData); + }) + label.appendChild(select); + } else if (item.type === 'cell') { + label.classList.add('form-item--link'); + + const divLabel2 = document.createElement("div"); + divLabel2.className = 'form-label'; + label.appendChild(divLabel2); + + const descDiv = document.createElement("div"); + descDiv.setAttribute('id', item.name); + descDiv.className = 'form-item-right-desc'; + if(item.showDesc != false) { + descDiv.innerText = value ?? ''; + } + divLabel2.appendChild(descDiv); + + const icon = document.createElement('i'); + icon.className = 'iconfont icon-arrow-right'; + divLabel2.appendChild(icon); + label.addEventListener('click', (e) => { + if(item.needLoading) { + toggleIcoLoading(e); + } + let openWeb = item.openWeb; + if(openWeb) { + invoke('safari', openWeb); + } else { + invoke('itemClick', item); + } + }) + } else { + const input = document.createElement("input"); + input.className = 'form-item__input'; + input.name = item.name; + input.type = item.type || "text"; + input.enterKeyHint = 'done'; + input.value = value; + + if (item.type === 'switch') { + input.type = 'checkbox'; + input.role = 'switch'; + input.checked = value; + } + + if (item.type === 'number') { + input.inputMode = 'decimal'; + } + + if (input.type === 'text') { + input.size = 12; + } + + input.addEventListener("change", (e) => { + formData[item.name] = + item.type === 'switch' + ? e.target.checked + : item.type === 'number' + ? Number(e.target.value) + : e.target.value; + invoke('changeSettings', formData) + }); + label.appendChild(input); + } + fragment.appendChild(label); + } + document.getElementById(formId).appendChild(fragment); + return formData; + } + + let formData = {}; + const fragment = document.createDocumentFragment(); + if(${isChildLevel}) { + let subIndex = 0; + let tmpFormData = {}; + for (const item of settingItems) { + subIndex++; + // + const subForm = document.createElement("form"); + let formId = 'form_sub_menu_' + subIndex; + subForm.id = formId; + subForm.className = 'list__body'; + subForm.action = 'javascript:void(0);'; + // + document.getElementById('sub_list').appendChild(subForm); + tmpFormData = createSettingItems(fragment, item.items, formId); + formData = Object.assign(formData, tmpFormData); + } + } else { + formData = createSettingItems(fragment, settingItems, 'form'); + } + + // 切换ico的loading效果 + const toggleIcoLoading = (e) => { + const target = e.currentTarget + target.classList.add('loading') + const icon = e.currentTarget.querySelector('.iconfont') + const className = icon.className + icon.className = 'iconfont icon-loading' + const listener = (event) => { + const { code } = event.detail + if (code === 'finishLoading') { + target.classList.remove('loading') + icon.className = className + window.removeEventListener('JWeb', listener); + } + } + window.addEventListener('JWeb', listener) + }; + + for (const btn of document.querySelectorAll('.preview')) { + btn.addEventListener('click', (e) => { + toggleIcoLoading(e); + invoke('preview', e.currentTarget.dataset.size); + }) + } + + document.getElementById('author').addEventListener('click', (e) => { + toggleIcoLoading(e); + invoke('author', formData); + }) + document.getElementById('widgetBg').addEventListener('click', (e) => { + toggleIcoLoading(e); + invoke('widgetBg', formData); + }) + document.getElementById('refreshTime').addEventListener('click', () => invoke('refreshInterval', formData)) + document.getElementById('widgetUpdate').addEventListener('click', (e) => { + toggleIcoLoading(e); + invoke('widgetUpdate', formData); + }) + document.getElementById('cleanData').addEventListener('click', () => invoke('cleanData', formData)) + })()`; + + const html = ` + + + + + + + + +
+
+ +
+
+ +
+
组件预览
+
+ + + + + + +
+
+ +
+
组件设置
+
+ +
+
+ +
+
通用设置
+
+ + + + + + +
+
+ +
+
+ +
+
+
+
+ +
浅色背景
+
+
+
+
+ +
深色背景
+
+
+
+
+ + + + `; + + // 预览web + await previewWebView.loadHTML(html, homePage); + + const injectListener = async () => { + const event = await previewWebView.evaluateJavaScript( + `(() => { + try { + const controller = new AbortController() + const listener = (e) => { + completion(e.detail) + controller.abort() + } + window.addEventListener( + 'JBridge', + listener, + { signal: controller.signal } + ) + } catch (e) { + alert("预览界面出错:" + e); + throw new Error("界面处理出错: " + e); + return; + } + })()`, true).catch((err) => { + console.error(err); + this.dismissLoading(previewWebView); + }); + //////////////////////////////////// + let widgetSetting = this.readWidgetSetting(); + let { + bgType = widgetProvider.defaultBgType ?? widgetSetting.bgType ?? this.defaultConfig.bgType, + refreshInterval = this.defaultConfig.refreshInterval, + } = widgetSetting; + const { code, data } = event; + switch (code) { + case 'author': + await this.presentSubscribeWidget(); + this.dismissLoading(previewWebView); + break + + case 'widgetBg': + try { + const bgWebView = new WebView(); + let settingItems = []; + const bgTypeIndex = await this.presentSheet({ + title: '组件背景设置', + options: [ + { name: '透明背景' }, + { name: '在线图片' }, + { name: '相册图片' }, + { name: '纯色背景' }, + { name: '渐变背景' }, + ], + }); + if (bgTypeIndex !== -1) { + bgType = `${bgTypeIndex}`; + if (bgTypeIndex == 0 || bgTypeIndex == 1 || bgTypeIndex == 2) { + widgetSetting['picType'] = bgTypeIndex; + widgetSetting['dayBackgroundImagePath'] = bgTypeIndex == 0 ? this.dayTransparentBgName() : (bgTypeIndex == 1 ? this.dayOnlineBgName() : this.dayLocalBgName()); + widgetSetting['nightBackgroundImagePath'] = bgTypeIndex == 0 ? this.nightTransparentBgName() : (bgTypeIndex == 1 ? this.nightOnlineBgName() : this.nightLocalBgName()); + } + this.writeWidgetSetting({ ...widgetSetting, bgType }); + this.insertTextByElementId(previewWebView, 'bgType', this.bgType2Text(bgType)); + } + switch (bgTypeIndex) { + case 0: // 透明背景 + settingItems = [ + { + items: [ + { + name: 'bgDayImg', + label: '浅色背景', + type: 'cell', + icon: { name: 'photo', color: '#11c4d4', }, + needLoading: false, + default: this.useFileManager().readImgCache(this.dayTransparentBgName()) ? '已设置' : '' + }, + { + name: 'bgNightImg', + label: '深色背景', + type: 'cell', + icon: { name: 'photo.fill', color: '#0c81e4', }, + needLoading: false, + default: this.useFileManager().readImgCache(this.nightTransparentBgName()) ? '已设置' : '' + }, + ] + } + ]; + break; + + case 1: // 在线图片 + settingItems = [ + { + items: [ + { + name: 'bgDayImg', + label: '浅色背景', + type: 'cell', + icon: { name: 'photo', color: '#11c4d4', }, + needLoading: false, + default: widgetSetting.dayBackgroundImageUrl ? '已设置' : '' + }, + { + name: 'bgNightImg', + label: '深色背景', + type: 'cell', + icon: { name: 'photo.fill', color: '#0c81e4', }, + needLoading: false, + default: widgetSetting.nightBackgroundImageUrl ? '已设置' : '' + }, + ] + }, + { + items: [ + { + name: 'blurBg', + label: '高斯模糊', + type: 'switch', + icon: { name: 'rectangle.on.rectangle', color: '#938BF0', }, + needLoading: false, + default: false + }, + { + name: 'blurMode', + label: '模糊效果', + type: 'select', + icon: { name: 'rectangle.fill.on.rectangle.fill', color: '#6A63B8', }, + needLoading: false, + options: [ + { label: '浅色模糊', value: 'light' }, + { label: '深色模糊', value: 'dark' }, + { label: '完全模糊', value: 'none' }, + ], + default: "none" + }, + { + name: 'blurRadius', + label: '模糊强度', + type: 'number', + icon: { name: 'plus.rectangle.on.rectangle', color: '#FF59A1', }, + needLoading: false, + default: '50', + }, + ] + }, + { + items: [ + { + name: 'shadow', + label: '颜色蒙层', + type: 'switch', + icon: { name: 'rectangle.grid.1x2', color: '#938BF0', }, + needLoading: false, + default: false + }, + { + name: 'shadowColor', + label: '蒙层颜色', + type: 'color', + icon: { name: 'rectangle.grid.1x2.fill', color: '#6A63B8', }, + needLoading: false, + default: "#000000" + }, + { + name: 'shadowAlpha', + label: '蒙层透明度', + type: 'number', + icon: { name: 'capsule', color: '#FF59A1', }, + needLoading: false, + default: '0.5', + }, + ] + } + ]; + break; + + case 2: // 相册图片 + settingItems = [ + { + items: [ + { + name: 'bgDayImg', + label: '浅色背景', + type: 'cell', + icon: { name: 'photo', color: '#11c4d4', }, + needLoading: false, + default: this.useFileManager().readImgCache(this.dayLocalBgName()) ? '已设置' : '' + }, + { + name: 'bgNightImg', + label: '深色背景', + type: 'cell', + icon: { name: 'photo.fill', color: '#0c81e4', }, + needLoading: false, + default: this.useFileManager().readImgCache(this.nightLocalBgName()) ? '已设置' : '' + }, + ] + }, + { + items: [ + { + name: 'localBlurBg', + label: '高斯模糊', + type: 'switch', + icon: { name: 'rectangle.on.rectangle', color: '#938BF0', }, + needLoading: false, + default: false + }, + { + name: 'localBlurMode', + label: '模糊效果', + type: 'select', + icon: { name: 'rectangle.fill.on.rectangle.fill', color: '#6A63B8', }, + needLoading: false, + options: [ + { label: '浅色模糊', value: 'light' }, + { label: '深色模糊', value: 'dark' }, + { label: '完全模糊', value: 'none' }, + ], + default: 'none' + }, + { + name: 'localBlurRadius', + label: '模糊强度', + type: 'number', + icon: { name: 'plus.rectangle.on.rectangle', color: '#FF59A1', }, + needLoading: false, + default: '50', + }, + ] + }, + { + items: [ + { + name: 'localShadow', + label: '颜色蒙层', + type: 'switch', + icon: { name: 'rectangle.grid.1x2', color: '#938BF0', }, + needLoading: false, + default: false + }, + { + name: 'localShadowColor', + label: '蒙层颜色', + type: 'color', + icon: { name: 'rectangle.grid.1x2.fill', color: '#6A63B8', }, + needLoading: false, + default: "#000000" + }, + { + name: 'localShadowAlpha', + label: '蒙层透明度', + type: 'number', + icon: { name: 'capsule', color: '#FF59A1', }, + needLoading: false, + default: '0.5', + }, + ] + } + ]; + break; + + case 3: // 纯色背景 + settingItems = [ + { + items: [ + { + name: 'bgDayColor', + label: '浅色背景色', + type: 'color', + icon: { name: 'sun.max', color: '#11c4d4', }, + needLoading: false, + default: this.splitColors(this.backgroundColor)[0], + }, + { + name: 'bgNightColor', + label: '深色背景色', + type: 'color', + icon: { name: 'moon.stars', color: '#0c81e4', }, + needLoading: false, + default: this.splitColors(this.backgroundColor)[1], + }, + ] + } + ]; + break; + + case 4: // 渐变背景 + settingItems = [ + { + items: [ + { + name: 'gradientAngle', + label: '渐变角度', + type: 'number', + icon: { name: 'square.stack', color: '#E33049', }, + needLoading: false, + default: `${this.backgroundGradientAngle}`, + }, + { + name: 'startColor', + label: '开始背景色', + type: 'color', + icon: { name: 'play.circle', color: '#11c4d4', }, + needLoading: false, + default: this.splitColors(this.backgroundGradientColor)[0], + }, + { + name: 'endColor', + label: '结束背景色', + type: 'color', + icon: { name: 'pause.circle', color: '#0c81e4', }, + needLoading: false, + default: this.splitColors(this.backgroundGradientColor)[1], + }, + ] + } + ]; + break; + } + + if (settingItems.length > 0) { + // 预览 + await this.renderAppView({ + isChildLevel: true, + showWidgetBg: false, + showWidgetSettingBg: bgTypeIndex == 0 || bgTypeIndex == 1 || bgTypeIndex == 2, + settingItems, + onItemClick: async (item) => { + switch (item.name) { + case 'bgDayImg': + widgetSetting = this.readWidgetSetting(); + if (bgTypeIndex == 0) { + const result = await this.transparentBg(true); + if (result) { + const backgroundImage = this.useFileManager().readImgCache(this.dayTransparentBgName()); + if (backgroundImage) { + widgetSetting['picType'] = 0; + widgetSetting['dayBackgroundImagePath'] = this.dayTransparentBgName(); + this.writeWidgetSetting({ ...widgetSetting }); + this.insertTextByElementId(bgWebView, item.name, '已设置'); + // + bgWebView.evaluateJavaScript( + ` + document.getElementById("previewBg").style.display = ""; + document.getElementById("previewDayBg").style.display = ""; + document.getElementById("dayBg").height = ${this.getWidgetSize('中号').height / 2}; + document.getElementById("dayBg").src="data:image/png;base64,${Data.fromPNG(backgroundImage).toBase64String()}"; + `, + false + ); + } + } + } else if (bgTypeIndex == 1) { + await this.generateInputAlert({ + title: '在线白天图片背景', + message: '填入图片链接设置为组件背景图\n系统自动裁剪中间部分图片使用', + options: [{ hint: '🔗 请输入图片链接', value: '' }] + }, async (inputArr) => { + const imgUrl = inputArr[0].value; + // 保存配置 + widgetSetting['picType'] = 1; + widgetSetting['dayBackgroundImageUrl'] = imgUrl; + widgetSetting['dayBackgroundImagePath'] = this.dayOnlineBgName(); + this.writeWidgetSetting({ ...widgetSetting }); + this.insertTextByElementId(bgWebView, item.name, '已设置'); + bgWebView.evaluateJavaScript( + ` + document.getElementById("previewBg").style.display = ""; + document.getElementById("previewDayBg").style.display = ""; + document.getElementById("dayBg").height = ${this.getWidgetSize('中号').height / 2}; + document.getElementById("dayBg").src="${imgUrl}"; + `, + false + ); + }); + } else if (bgTypeIndex == 2) { + let backgroundImage = await Photos.fromLibrary(); + if (backgroundImage) { + this.useFileManager().writeImgCache(this.dayLocalBgName(), backgroundImage); + // 保存配置 + widgetSetting['picType'] = 2; + widgetSetting['dayBackgroundImagePath'] = this.dayLocalBgName(); + this.writeWidgetSetting({ ...widgetSetting }); + this.insertTextByElementId(bgWebView, item.name, '已设置'); + bgWebView.evaluateJavaScript( + ` + document.getElementById("previewBg").style.display = ""; + document.getElementById("previewDayBg").style.display = ""; + document.getElementById("dayBg").height = ${this.getWidgetSize('中号').height / 2}; + document.getElementById("dayBg").src="data:image/png;base64,${Data.fromPNG(backgroundImage).toBase64String()}"; + `, + false + ); + } + } + break; + + case 'bgNightImg': + widgetSetting = this.readWidgetSetting(); + if (bgTypeIndex == 0) { + const result = await this.transparentBg(false); + if (result) { + const backgroundImage = this.useFileManager().readImgCache(this.nightTransparentBgName()); + if (backgroundImage) { + widgetSetting['picType'] = 0; + widgetSetting['nightBackgroundImagePath'] = this.nightTransparentBgName(); + this.writeWidgetSetting({ ...widgetSetting }); + this.insertTextByElementId(bgWebView, item.name, '已设置'); + // + bgWebView.evaluateJavaScript( + ` + document.getElementById("previewBg").style.display = ""; + document.getElementById("previewDarkBg").style.display = ""; + document.getElementById("darkBg").height = ${this.getWidgetSize('中号').height / 2}; + document.getElementById("darkBg").src="data:image/png;base64,${Data.fromPNG(backgroundImage).toBase64String()}"; + `, + false + ); + } + } + } else if (bgTypeIndex == 1) { + await this.generateInputAlert({ + title: '在线深色图片背景', + message: '填入图片链接设置为组件背景图\n系统自动裁剪中间部分图片使用', + options: [{ hint: '🔗 请输入图片链接', value: '' }] + }, async (inputArr) => { + const imgUrl = inputArr[0].value; + // 保存配置 + widgetSetting['picType'] = 1; + widgetSetting['nightBackgroundImageUrl'] = imgUrl; + widgetSetting['nightBackgroundImagePath'] = this.nightOnlineBgName(); + this.writeWidgetSetting({ ...widgetSetting }); + this.insertTextByElementId(bgWebView, item.name, '已设置'); + bgWebView.evaluateJavaScript( + ` + document.getElementById("previewBg").style.display = ""; + document.getElementById("previewDarkBg").style.display = ""; + document.getElementById("darkBg").height = ${this.getWidgetSize('中号').height / 2}; + document.getElementById("darkBg").src="${imgUrl}"; + `, + false + ); + }); + } else if (bgTypeIndex == 2) { + let backgroundImage = await Photos.fromLibrary(); + if (backgroundImage) { + this.useFileManager().writeImgCache(this.nightLocalBgName(), backgroundImage); + // 保存配置 + widgetSetting['picType'] = 2; + widgetSetting['nightBackgroundImagePath'] = this.nightLocalBgName(); + this.writeWidgetSetting({ ...widgetSetting }); + this.insertTextByElementId(bgWebView, item.name, '已设置'); + bgWebView.evaluateJavaScript( + ` + document.getElementById("previewBg").style.display = ""; + document.getElementById("previewDarkBg").style.display = ""; + document.getElementById("darkBg").height = ${this.getWidgetSize('中号').height / 2}; + document.getElementById("darkBg").src="data:image/png;base64,${Data.fromPNG(backgroundImage).toBase64String()}"; + `, + false + ); + } + } + break; + } + } + }, bgWebView); + } + this.dismissLoading(previewWebView); + } catch (error) { + console.error(error); + } + break + + case 'refreshInterval': + await this.generateInputAlert({ + title: '刷新间隔', + message: '设置小组件刷新的时间间距(单位:分钟)\n系统不一定会按照这个时间进行刷新\n该时间内网络请求数据读取缓存反显', + options: [ + { hint: '⏰ 请输入时间数字', value: refreshInterval }, + ] + }, async (inputArr) => { + refreshInterval = inputArr[0].value; + // 保存配置 + widgetSetting = this.readWidgetSetting(); + widgetSetting.refreshInterval = refreshInterval; + this.logDivider(); + await this.generateAlert('刷新间隔', '已成功设置组件刷新时间间距', ['确定']); + }); + // 写入配置缓存 + this.writeWidgetSetting({ ...widgetSetting }); + this.insertTextByElementId(previewWebView, 'refreshInterval', `${refreshInterval} min`); + break + + case 'widgetUpdate': + await this.downloadUpdate( + this.scriptName, + `${this.getRemoteRootPath()}/${encodeURIComponent(this.scriptName)}.js` + ); + this.dismissLoading(previewWebView); + break + + case 'cleanData': + let res = await this.generateAlert('组件清理', '', ['重置组件', '清理缓存'], '取消'); + if (res != -1) { + this.removeWidgetSetting(res != 0); + await this.generateAlert('组件清理', '清理成功\n请重新运行小组件', ['确定']); + this.rerunWidget(); + } + break + + case 'preview': { + widgetSetting = this.readWidgetSetting(); + const widget = await this.render({ widgetSetting, family: data }); + await this.widgetBaseSetting(widget, widgetSetting, bgType); + // 结束loading + this.dismissLoading(previewWebView); + // 预览 + widget[`present${data.replace(data[0], data[0].toUpperCase())}`](); + break + } + + case 'safari': + Safari.openInApp(data, false); + break + + case 'changeSettings': + widgetSetting = this.readWidgetSetting(); + if (data.location == false) { + await this.generateInputAlert({ + title: '定位信息', + message: '关闭自动定位需要自己输入定位信息', + options: [ + { hint: '请输入经度', value: '' }, + { hint: '请输入维度', value: '' }, + ] + }, async (inputArr) => { + widgetSetting.longitude = inputArr[0].value; + widgetSetting.latitude = inputArr[1].value; + }); + } + this.keySave(this.scriptName, `${data.use_github}`); + this.writeWidgetSetting({ ...widgetSetting, ...data }); + await onCheckedChange?.(data, widgetSetting); + break + + case 'itemClick': + widgetSetting = this.readWidgetSetting(); + const { name, showDesc = true, alert, childItems = [] } = data; + if (childItems.length > 0) { + await this.renderAppView({ + isChildLevel: true, + showWidgetBg: false, + settingItems: childItems, + onCheckedChange, + onItemClick, + }); + } else { + if (alert) { + const { title = '', message, options = [] } = alert; + await this.generateInputAlert({ + title, + message, + options + }, (inputArr) => { + inputArr.forEach((input, index) => { + let value = input.value + if (value && value != 'null' && value.length > 0) { + let { key } = options[index]; + widgetSetting[key] = value; + } + }); + this.writeWidgetSetting({ ...widgetSetting }); + if (options.length == 1 && showDesc) { + this.insertTextByElementId(previewWebView, name, inputArr[0].value); + } + }); + } + //////////////////////////////////////////////// + const callbackRes = await onItemClick?.(data); + const { desc, reStart = false } = callbackRes || {}; + if (reStart) { + rerunWidget(); + return + } + if (desc?.value) { + this.insertTextByElementId(previewWebView, name, desc?.value); + } + } + this.dismissLoading(previewWebView); + break + } + injectListener(); + }; + + injectListener().catch((e) => { + console.error(e); + if (!config.runsInApp) { + this.notify('主界面', `🚫 ${e}`); + } + }); + + previewWebView.present(); + } + + // @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ + + provideDefaultWidget = (family) => { + //==================================== + const widget = new ListWidget(); + widget.setPadding(0, 0, 0, 0); + //==================================== + let stack = widget.addStack(); + let tipsTextSpan = stack.addText(`暂不提供『${family}』组件`); + tipsTextSpan.textColor = Color.black(); + let fontSize = 12; + if (family != 'small') { + fontSize = 22 + } + tipsTextSpan.font = Font.semiboldSystemFont(fontSize); + tipsTextSpan.shadowColor = new Color('#333'); + tipsTextSpan.shadowRadius = 2; + tipsTextSpan.shadowOffset = new Point(1, 1); + stack.centerAlignContent(); + //==================================== + return widget; + } + + async providerWidget(widgetProvider = {}, family = config.widgetFamily) { + let widget; + const widgetSetting = this.readWidgetSetting(); + const { small = true, medium = true, large = true } = widgetProvider; + switch (family) { + case 'small': + if (small) { + widget = await this.render({ widgetSetting, family }); + } else { + widget = this.provideDefaultWidget(family); + } + break; + + case 'medium': + if (medium) { + widget = await this.render({ widgetSetting, family }); + } else { + widget = this.provideDefaultWidget(family); + } + break; + + case 'large': + if (large) { + widget = await this.render({ widgetSetting, family }); + } else { + widget = this.provideDefaultWidget(family); + } + break; + + default: + widget = this.provideDefaultWidget(family); + break; + } + await this.widgetBaseSetting(widget, widgetSetting, widgetSetting.bgType); + Script.setWidget(widget); + Script.complete(); + } + + widgetBaseSetting = async (widget, widgetSetting, bgType) => { + try { + // 背景效果 + const { + refreshInterval, + picType = 0, + blurBg, blurMode, blurRadius, shadow, shadowColor, shadowAlpha, + localBlurBg, localBlurMode, localBlurRadius, localShadow, localShadowColor, localShadowAlpha, + dayBackgroundImageUrl, + nightBackgroundImageUrl, + dayBackgroundImagePath, + nightBackgroundImagePath, + bgDayColor, + bgNightColor, + gradientAngle, + startColor, + endColor, + } = widgetSetting; + let bgImg; + let dayBackgroundImagePathTmp = ''; + let nightBackgroundImagePathTmp = ''; + switch (bgType) { + case '0': + case '1': + case '2': + if (picType == 1) { + if (dayBackgroundImageUrl) { + let dayBgImg = await this.getImageByUrl(dayBackgroundImageUrl); + if (blurBg) { + dayBgImg = await this.blurImage(dayBgImg, { w: dayBgImg.size.width, h: dayBgImg.size.height, x: 0, y: 0 }, blurMode, blurRadius); + } + if (shadow) { + let alpha = Number(shadowAlpha); + alpha = Math.min(1, alpha); + alpha = Math.max(0, alpha); + dayBgImg = await this.loadShadowColor2Image(dayBgImg, new Color(shadowColor, alpha)); + } + this.useFileManager().writeImgCache(this.dayOnlineBgName(), dayBgImg); + } + if (nightBackgroundImageUrl) { + let nightBgImg = await this.getImageByUrl(nightBackgroundImageUrl); + if (blurBg) { + nightBgImg = await this.blurImage(nightBgImg, { w: nightBgImg.size.width, h: nightBgImg.size.height, x: 0, y: 0 }, blurMode, blurRadius); + } + if (shadow) { + let alpha = Number(shadowAlpha); + alpha = Math.min(1, alpha); + alpha = Math.max(0, alpha); + nightBgImg = await this.loadShadowColor2Image(nightBgImg, new Color(shadowColor, alpha)); + } + this.useFileManager().writeImgCache(this.nightOnlineBgName(), nightBgImg); + } + } else if (picType == 2) { + if (dayBackgroundImagePath && !Device.isUsingDarkAppearance()) { + dayBackgroundImagePathTmp = this.dayLocalBgName(); + let dayBgImg = this.useFileManager().readImgCache(dayBackgroundImagePath); + if (localBlurBg) { + dayBgImg = await this.blurImage(dayBgImg, { w: dayBgImg.size.width, h: dayBgImg.size.height, x: 0, y: 0 }, localBlurMode, localBlurRadius); + dayBackgroundImagePathTmp = dayBackgroundImagePathTmp + "_blur"; + } + if (localShadow) { + let alpha = Number(localShadowAlpha); + alpha = Math.min(1, alpha); + alpha = Math.max(0, alpha); + dayBgImg = await this.loadShadowColor2Image(dayBgImg, new Color(localShadowColor, alpha)); + dayBackgroundImagePathTmp = dayBackgroundImagePathTmp + "_shadow"; + } + if (dayBgImg) { + this.useFileManager().writeImgCache(dayBackgroundImagePathTmp, dayBgImg); + } + } + if (nightBackgroundImagePath && Device.isUsingDarkAppearance()) { + nightBackgroundImagePathTmp = this.nightLocalBgName(); + let nightBgImg = this.useFileManager().readImgCache(nightBackgroundImagePath); + if (localBlurBg) { + nightBgImg = await this.blurImage(nightBgImg, { w: nightBgImg.size.width, h: nightBgImg.size.height, x: 0, y: 0 }, localBlurMode, localBlurRadius); + nightBackgroundImagePathTmp = nightBackgroundImagePathTmp + "_blur"; + } + if (localShadow) { + let alpha = Number(localShadowAlpha); + alpha = Math.min(1, alpha); + alpha = Math.max(0, alpha); + nightBgImg = await this.loadShadowColor2Image(nightBgImg, new Color(localShadowColor, alpha)); + nightBackgroundImagePathTmp = nightBackgroundImagePathTmp + "_shadow"; + } + if (nightBgImg) { + this.useFileManager().writeImgCache(nightBackgroundImagePathTmp, nightBgImg); + } + } + } + const dayBackgroundImage = this.useFileManager().readImgCache(dayBackgroundImagePathTmp || dayBackgroundImagePath); + const nightBackgroundImage = this.useFileManager().readImgCache(nightBackgroundImagePathTmp || nightBackgroundImagePath); + bgImg = Device.isUsingDarkAppearance() ? (nightBackgroundImage || dayBackgroundImage) : (dayBackgroundImage || nightBackgroundImage); + if (bgImg) { + widget.backgroundImage = bgImg; + } + break; + + case '3': + let pureColors = this.splitColors(this.backgroundColor); + if (bgDayColor && bgNightColor) { + widget.backgroundColor = Color.dynamic(new Color(bgDayColor), new Color(bgNightColor)); + } else { + widget.backgroundColor = Color.dynamic(new Color(pureColors[0]), new Color(pureColors[1])); + } + break; + + case '4': + let gradientColors = this.splitColors(this.backgroundGradientColor); + if (startColor && endColor) { + gradientColors = [startColor, endColor]; + } + widget.backgroundGradient = this.getLinearGradientColor(gradientColors, gradientAngle || this.backgroundGradientAngle); + break; + } + // 设置刷新间隔 + widget.refreshAfterDate = new Date(Number(refreshInterval) * 60 * 1000); + let msg = `${this.bgType2Text(bgType)},刷新间隔:${refreshInterval}min` + // 日志 + console.log(`🪢🪢🪢 ${msg} 🪢🪢🪢`); + this.logDivider(); + } catch (error) { + console.error(error); + } + } + + // @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ + + fetchEnv = async () => { + const dependencyURL = `${this.getRemoteRootPath()}/_LSP.js`; + const { fm, rootDir } = this.useFileManager({ useICloud: false }); + // 下载 + console.log('🤖 开始更新依赖~'); + this.logDivider(); + let updateResult = false; + const req = new Request(dependencyURL); + const moduleJs = await req.load(); + if (moduleJs) { + updateResult = true; + fm.write(fm.joinPath(rootDir, '/_LSP.js'), moduleJs); + console.log('✅ LSP远程依赖环境更新成功!'); + this.logDivider(); + } else { + console.error('🚫 获取依赖环境脚本失败,请重试!'); + this.logDivider(); + } + return updateResult; + } + + downloadUpdate = async (fileName, downloadURL) => { + let result = await this.fetchEnv(); + if (result) { + try { + result = await this.downloadFile2Scriptable({ + moduleName: fileName, + url: downloadURL, + }); + if (result) { + await this.generateAlert('✅ 组件更新', '已同步远程更新', ["重新运行"]); + this.rerunWidget(); + } else { + console.error("❌ 组件更新失败,请重试~"); + this.logDivider(); + } + } catch (error) { + console.error("❌ 组件更新失败," + error); + await this.generateAlert('❌ 组件更新', '更新失败,请稍后重试', ["好的"]); + this.logDivider(); + } + } + } + + // @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ + + renderWidgetTableList = async (data) => { + // 背景色 + const bgColor = Color.dynamic( + new Color('#F6F6F6'), + new Color('#000000') + ); + const table = new UITable(); + table.showSeparators = true; + + // =================================== + const topRow = new UITableRow(); + topRow.height = 80 * Device.screenScale(); + const topCell = topRow.addImageAtURL(atob('aHR0cHM6Ly9zd2VpeGluZmlsZS5oaXNlbnNlLmNvbS9tZWRpYS9NMDAvNzEvQzgvQ2g0RnlXT0k2b0NBZjRQMUFFZ0trSzZxVVVrNTQyLmdpZg==')); + topCell.centerAligned(); + table.addRow(topRow); + topRow.backgroundColor = bgColor; + + // =================================== + const { scriptURL } = data; + const response = await this.httpGet(scriptURL, { jsonFormat: true }); + const { author, icon, apps } = response; + const headerRow = new UITableRow(); + headerRow.isHeader = true; + headerRow.height = 60; + headerRow.cellSpacing = 10; + // ----------------------------------- + let avatarImg = headerRow.addImageAtURL(icon); + avatarImg.leftAligned(); + avatarImg.widthWeight = 130; + const headText = headerRow.addText(`@${author}`, '先打开Scriptable通知权限再点击下载安装'); + headText.titleFont = Font.semiboldSystemFont(15); + headText.titleColor = new Color('#666'); + headText.widthWeight = 870; + headText.leftAligned(); + // ----------------------------------- + table.addRow(headerRow); + // ----------------------------------- + + // =================================== + const titleDividerRow = new UITableRow(); + titleDividerRow.height = 10; + table.addRow(titleDividerRow); + titleDividerRow.backgroundColor = bgColor; + + // =================================== + apps.forEach((item, index) => { + let { title, description, thumb } = item; + const itemRow = new UITableRow(); + itemRow.height = 80; + itemRow.cellSpacing = 30; + // ----------------------------------- + let itemText = itemRow.addText(`${index + 1}. ${title}`); + itemText.titleFont = Font.blackSystemFont(14); + itemText.titleColor = new Color('#444'); + itemText.leftAligned(); + itemText.widthWeight = 300; + // ----------------------------------- + let itemDescText = itemRow.addText(`${description}`); + itemDescText.titleFont = Font.mediumSystemFont(13); + itemDescText.titleColor = new Color('#666'); + itemDescText.leftAligned(); + itemDescText.widthWeight = 470; + // ----------------------------------- + let itemImg = itemRow.addImageAtURL(thumb); + itemImg.widthWeight = 230; + itemImg.rightAligned(); + // ----------------------------------- + itemRow.dismissOnSelect = false; + itemRow.onSelect = async () => { + await this.realNotify("下载提示", `开始下载小组件『${item.title}』`); + if (item.depend) { + try { + for (let index = 0; index < item.depend.length; index++) { + const relyItem = item.depend[index]; + const _isWrite = await this.downloadFile2Scriptable({ + moduleName: relyItem.name, + url: relyItem.scriptURL, + }); + if (_isWrite) { + await this.realNotify("下载提示", `依赖插件:『${relyItem.name}』下载/更新成功`); + } + } + } catch (e) { + console.error(e); + } + } + const isWrite = await this.downloadFile2Scriptable({ + moduleName: item.name, + url: item.scriptURL, + }); + if (isWrite) { + await this.realNotify("下载提示", `小组件:『${item.title}』 下载/更新成功`, `scriptable:///run/${encodeURIComponent(item.name)}`); + } + }; + // ----------------------------------- + table.addRow(itemRow); + }); + // + QuickLook.present(table, false); + } + + presentSubscribeWidget = async () => { + const cacheKey = `${this.scriptName}_subscribe_list`; + // 默认订阅列表 + const defaultSubscribeList = [{ + author: 'LSP-杂货万事屋', + scriptURL: `${this.getRemoteRootPath()}/install/package.json` + }] + const subscribeList = JSON.parse(this.keyGet(cacheKey, JSON.stringify(defaultSubscribeList))); + // 弹窗 + const mainAlert = new Alert(); + mainAlert.title = "小组件订阅列表"; + mainAlert.message = "可自行添加订阅地址"; + const _actions = []; + subscribeList.forEach((data) => { + const { author } = data; + mainAlert.addAction(author); + _actions.push(async () => { + try { + await this.renderWidgetTableList(data); + } catch (error) { + console.error(error); + } + }); + }); + _actions.push(async () => { + await this.generateInputAlert({ + title: '订阅地址', + options: [ + { hint: '🔗 请输入订阅地址', value: `${this.getRemoteRootPath()}/install/package.json` }, + ] + }, async (inputArr) => { + const scriptURL = inputArr[0].value; + try { + const response = await new Request(scriptURL).loadJSON(); + const newList = []; + let notifyText = ''; + let needPush = true; + for (let item of subscribeList) { + if (response.author === item.author) { + needPush = false; + notifyText = '订阅源更新成功'; + newList.push({ author: response.author, scriptURL }); + } else { + notifyText = '订阅源添加成功'; + newList.push(item); + } + } + if (needPush) newList.push({ author: response.author, scriptURL }); + this.keySave(cacheKey, JSON.stringify(newList)); + notifyText ? await this.notify('小组件订阅', notifyText) : null; + await this.presentSubscribeWidget(); + } catch (error) { + await this.notify('订阅出错', '订阅源格式不符合要求~') + console.error(error); + } + }) + }); + _actions.push(async () => { + this.keySave(cacheKey, JSON.stringify(defaultSubscribeList)); + await this.notify('小组件订阅', '订阅源重置成功'); + await this.presentSubscribeWidget(); + }); + mainAlert.addDestructiveAction("添加订阅"); + mainAlert.addDestructiveAction("重置订阅源"); + mainAlert.addCancelAction("取消操作"); + const _actionsIndex = await mainAlert.presentSheet(); + if (_actions[_actionsIndex]) { + await _actions[_actionsIndex](); + } + } +} + +// @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +// @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ + +class CustomFont { + constructor(webview, config) { + this.webview = webview || new WebView() + this.fontFamily = config.fontFamily || 'customFont' + this.fontUrl = 'url(' + config.fontUrl + ')' + this.timeout = config.timeout || 20000 + } + + async load() { // 加载字体 + return await this.webview.evaluateJavaScript(` + const customFont = new FontFace("${this.fontFamily}", "${this.fontUrl}"); + const canvas = document.createElement("canvas"); + const ctx = canvas.getContext("2d"); + let baseHeight,extendHeight; + log('🚀 开始加载自定义字体.'); + customFont.load().then((font) => { + document.fonts.add(font); + completion(true); + log('✅ 自定义字体加载成功.'); + log('----------------------------------------') + }); + setTimeout(()=>{ + log('🚫 自定义字体加载超时'); + log('----------------------------------------') + completion(false); + },${this.timeout}); + null`, true) + } + + async drawText(text, config) { + try { + // 配置 + const fontSize = config.fontSize || 20 + const textWidth = config.textWidth || 300 + const align = config.align || 'left' // left、right、center + const lineLimit = config.lineLimit || 99 + const rowSpacing = config.rowSpacing || 0 + const textColor = config.textColor || 'white' + const textArray = await this.cutText(text, fontSize, textWidth) + const scale = config.scale || 1 + + let script = '' + for (let i in textArray) { + let content = textArray[i].str + let length = textArray[i].len + + if (i >= lineLimit) break + if (i == lineLimit - 1 && i < textArray.length - 1) + content = content.replace(/(.{1})$/, '…') + + let x = 0, y = Number(i) * fontSize + if (rowSpacing > 0 && i > 0) y = y + rowSpacing + if (i > 0) { + if (align === 'right') { + x = textWidth - length + } else if (align === 'center') { + x = (textWidth - length) / 2 + } + } + script = script + `ctx.fillText("${content}", ${x}, ${y});` + } + + const realWidth = textArray.length > 1 ? textWidth : textArray[0].len + const lineCount = lineLimit < textArray.length ? lineLimit : textArray.length + const returnValue = await this.webview.evaluateJavaScript(` + canvas.width=${realWidth}*${scale}; + ctx.font = "${fontSize}px ${this.fontFamily}"; + ctx.textBaseline= "hanging"; + baseHeight= ${(fontSize + rowSpacing) * (lineCount - 1)}; + extendHeight= ctx.measureText('qypgj').actualBoundingBoxDescent; + canvas.height= (baseHeight + extendHeight)*${scale}; + ctx.scale(${scale}, ${scale}); + + ctx.font = "${fontSize}px ${this.fontFamily}"; + ctx.fillStyle = "${textColor}"; + ctx.textBaseline= "hanging"; + ${script} + canvas.toDataURL()`, false) + + const imageDataString = returnValue.slice(22) + const imageData = Data.fromBase64String(imageDataString) + return Image.fromData(imageData) + } catch (error) { + console.error(error); + } + } + + async cutText(text, fontSize, textWidth) { // 处理文本 + try { + return await this.webview.evaluateJavaScript(` + function cutText(textWidth, text){ + ctx.font = "${fontSize}px ${this.fontFamily}"; + ctx.textBaseline= "hanging"; + + let textArray=[]; + let len=0,str=''; + for(let i=0;i textWidth){ + textArray.push({ + str:str.substring(0,str.length-1), + len:len-width,}); + str=char;len=width; + } + if(i==text.length-1 && str){ + textArray.push({str:str,len:len,}); + } + } + return textArray + } + cutText(${textWidth},"${text}") + `) + } catch (error) { + console.error(error); + } + } +} + +//================================ +module.exports = { + BaseWidget, +} +//================================ \ No newline at end of file diff --git a/file/girls_pic_20230512.json b/file/girls_pic_20230512.json new file mode 100644 index 0000000..b108c24 --- /dev/null +++ b/file/girls_pic_20230512.json @@ -0,0 +1,5649 @@ +[ + "http://dounimei.us/wp-content/uploads/2021/05/2021053115101620.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070600325056.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072022242449.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060209480924.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110493561.webp", + "http://dounimei.us/wp-content/uploads/2021/06/202106052356101.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061516163968.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060210200254.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021063009474825.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110481159.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021060909352840.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061400462427.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106121239356.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070808563767.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060107061295.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061111003484.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070808564130.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072022164018.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060107414920.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070703573911.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106220400223.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061710314315.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061306164849.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061401033122.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061717205159.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/202109121038286.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061413185458.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110400045.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021062712160635.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110441032.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021060208000128.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/20210620001424100.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061515231415.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061611482861.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060612092538.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040402481889.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072013550316.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061212583949.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060107472829.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072013323841.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060106494919.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/20210616010422100.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110433039.webp", + "http://dounimei.us/wp-content/uploads/2021/07/2021070710515861.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061710471533.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021071206544384.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060900544946.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062203564847.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110302179.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021053116075355.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072013373195.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091205344358.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062423580443.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061312373090.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070712251768.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110524690.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021061317002384.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106121245128.jpg", + "http://dounimei.us/wp-content/uploads/2022/11/2022110209485317.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600165745.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061411132384.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060612090759.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060418585446.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021063010223534.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060610103058.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/202107071225152.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106160119206.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060604510575.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106111156294.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091205543193.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060604305281.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060104195652.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061602561831.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061112005781.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060504285351.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060604192036.jpg", + "http://dounimei.us/wp-content/uploads/2022/11/2022111206405170.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060610202828.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061305483974.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060501374952.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060209552993.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062423533277.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061404324746.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021053116245285.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061603422744.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060502340015.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061412000834.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061603382131.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060416393367.jpg", + "http://dounimei.us/wp-content/uploads/2022/11/2022110509384064.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106010532524.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060203075379.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061802021523.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061701503395.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061717404392.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600461521.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061702501840.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061313095290.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060107134972.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060502340970.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060302224133.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070201153371.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060202404319.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060601515444.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060209132828.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106171151116.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060209401557.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062123045012.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060105280582.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021053116080732.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060813164963.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070703153881.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060604464953.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061111395249.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072013293895.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062712052914.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062018210572.jpg", + "http://dounimei.us/wp-content/uploads/2022/08/2022081604380628.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021060608573161.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060202005234.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061223112824.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091205391253.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060501454311.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021071206513915.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040404421793.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091206252950.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021071206595244.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061601223968.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021063009522052.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060611451162.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021063010073040.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110360515.webp", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600404432.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060901270263.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061610512576.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106051111057.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061701440160.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091215311095.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/202205060040012.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060522540180.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040402471964.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061612335994.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061603510190.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061411212857.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060417384369.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070600395769.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061710581068.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070712115645.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061400415571.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/202207011041458.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021060606535019.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600383969.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060202081813.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060610103474.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061700510626.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061201275590.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/20210613131432100.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600285075.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060103215745.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110334780.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021061718102146.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021053116513288.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061802221141.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060512514848.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061403273948.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060419222339.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070703195651.jpg", + "http://dounimei.us/wp-content/uploads/2022/11/2022110209485484.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061802064874.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061719074662.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062712160445.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060510454511.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091205291627.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070202184739.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060212242433.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106140432457.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061412142518.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072013372653.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110513264.webp", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110222548.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021060106005451.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060610021144.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106020850315.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060301544293.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072013501630.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040404571060.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061212472848.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600413972.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091206362819.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070903141976.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062000141045.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110423155.webp", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110345847.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021061710471799.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060612184911.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070703342330.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061701314550.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061719074479.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060504332958.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600301167.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405092695.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060503291099.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061212421574.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110334640.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021060510494083.jpg", + "http://dounimei.us/wp-content/uploads/2022/08/2022081604380598.webp", + "http://dounimei.us/wp-content/uploads/2021/07/2021070711112694.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106211354008.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070712321625.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060207390650.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061702143069.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061802172378.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060813024449.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060523005593.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061403563878.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061413185377.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062103154631.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070713201936.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062923255369.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060207553587.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600422329.jpg", + "http://dounimei.us/wp-content/uploads/2022/08/2022082410443833.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061400341554.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061710314863.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061312312039.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061111003444.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091205444968.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060813053671.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600372399.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061403493213.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061603465950.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070702573431.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061701314960.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061711081594.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061603333671.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070801455821.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060604510250.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021071206473276.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061316384491.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062111105319.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106171912457.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110423050.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021060501454980.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060601465628.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106060430538.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110353251.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021061712093154.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072013450849.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060201564378.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106051251459.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060419222582.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060300595452.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070702573277.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060202005381.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060201043245.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070710591410.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070713240064.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070600373222.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106211400163.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106141232281.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060418102898.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062204080128.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040402460846.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061603253385.jpg", + "http://dounimei.us/wp-content/uploads/2022/11/2022110402411639.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070523543832.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061413310092.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072013253913.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061611280773.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021071207030654.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061719213153.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106171736472.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091205252627.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061701503191.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070808520081.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061710241445.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061409464676.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060203023655.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061603510023.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091210185971.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061306410369.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091209324948.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060708432418.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061611581896.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405044573.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061409521618.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060610231830.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061223074198.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021053116163160.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061314065693.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060416574476.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040402424545.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061313095051.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060609350970.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061701503420.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060909352627.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061404074470.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110473848.webp", + "http://dounimei.us/wp-content/uploads/2022/07/202207011048496.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021060417244194.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600134017.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061402405385.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060510555856.jpg", + "http://dounimei.us/wp-content/uploads/2022/12/2022120503275157.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060510555987.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091210504484.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070702525456.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060207553934.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061801251280.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060212190389.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061212451125.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060201493017.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062711584053.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062000142531.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061610512838.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061405123438.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106061226514.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060610202732.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061718412926.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060613502631.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060502503012.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405072173.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060503290655.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060502594632.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061802242092.jpg", + "http://dounimei.us/wp-content/uploads/2022/12/2022120503232519.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061413144716.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061719152769.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062114051398.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061603381875.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060208055719.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060608451299.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091212533127.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060511110726.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060204432986.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061717285269.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106141221175.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110510016.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021060209401261.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070703272361.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061710282858.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060800175866.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091207113182.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202105311624511.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061401004184.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060416453019.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091205475761.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062111071258.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061318062024.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061801251063.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060711471535.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106071200332.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060100521619.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600285136.jpg", + "http://dounimei.us/wp-content/uploads/2021/05/2021053115065347.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062712102268.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/202109120512388.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110222543.webp", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405025412.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106092354236.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091207161236.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060514361426.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061403432523.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021063009521325.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061608380962.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061313341971.jpg", + "http://dounimei.us/wp-content/uploads/2021/05/2021053115065956.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061411504340.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062113540270.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091205291684.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061111360319.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061413252063.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060711512582.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061603560547.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091206061941.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062103154895.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061305341149.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060604353910.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060612092813.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060708515685.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060611495923.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060609351070.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060522535898.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060207432252.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061602561990.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061403590070.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060107380122.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072013501966.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060800472749.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061612282920.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106140100436.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061312193293.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060209201949.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021053116195267.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600192786.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072014070620.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061312341047.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405010151.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060512430493.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110505960.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021060510363461.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061802314058.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040404412159.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106020307517.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/202205060017435.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061404324181.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061611192014.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061223041581.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106212308325.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405035155.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062712052675.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061711511444.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070809134356.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600404555.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060300312356.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060800231385.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061316384846.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062423581985.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060510275719.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061603142325.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060812591244.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021063009435952.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060502470675.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060601403925.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061611581613.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060417564140.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060502392274.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061719013086.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061413145399.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061603073298.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106020101352.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600430461.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062123083278.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061603301780.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061314153278.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060609530285.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/20220404024718100.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062103122258.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060207523191.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106060446473.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106060641173.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062111175183.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070801572894.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060800473054.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106050246555.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062113540137.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600251992.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061412172233.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021053116163324.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021071206514270.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060613502342.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061603211781.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091210245854.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070803093547.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060610162588.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106271227272.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061718211831.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091207293750.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061201342694.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061612340731.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061702210527.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061312233135.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062111252617.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106211233513.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060711533945.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070202135480.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060208260278.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061413364068.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061306405331.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060901373693.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060502543133.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060711335747.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091205252773.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091210382987.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060612143135.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070523505988.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070808563194.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061314031295.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061603142216.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/202107080908509.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070600295053.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061111041798.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060202082214.jpg", + "http://dounimei.us/wp-content/uploads/2022/08/2022081604442790.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021060601514091.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061409522248.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060202574891.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061717453845.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062501423840.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106292329354.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061211140974.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072013550440.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060107215354.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/202109120534423.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106171740534.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106080052074.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060108231849.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091210341069.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060501454744.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202105311610448.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060610231543.jpg", + "http://dounimei.us/wp-content/uploads/2022/11/2022110509383671.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060609250869.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405205426.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061604001791.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021071206594843.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061411212781.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070903012072.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070201315299.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110383885.webp", + "http://dounimei.us/wp-content/uploads/2021/09/2021091206062099.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060604420450.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061712093071.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061603555589.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060609294355.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072022162051.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/20220701105012100.webp", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110403323.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021061612445127.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600343579.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060416453580.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600380240.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106070525045.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070703272768.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091210504351.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061201123730.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405061467.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061801193873.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061305524971.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061403235125.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110501297.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021061712195950.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060604105764.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091205124422.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060910372264.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600184429.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091215231820.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060107473122.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061312233595.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060813162852.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106141113216.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091210245797.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/20210617021738100.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060610162976.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061403373541.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021053116133440.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060300213694.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600334734.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405044631.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060514010130.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062111354350.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060501524550.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110375638.webp", + "http://dounimei.us/wp-content/uploads/2021/07/2021070704443340.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060208215963.jpg", + "http://dounimei.us/wp-content/uploads/2022/12/202212050326018.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061603301862.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061711200285.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405001076.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061317104333.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060107414822.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060901191126.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061603252751.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060514003734.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062203564679.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062923255451.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060512574923.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060601430945.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062501393894.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061610574193.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106271154132.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060105280350.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061006011358.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061717285167.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060511270854.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061712154876.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040402413746.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060800563570.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060604354298.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110414585.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021061413220888.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060210200416.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060209435060.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060202041933.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061212355890.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060300373632.jpg", + "http://dounimei.us/wp-content/uploads/2021/05/2021053115005689.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061201231716.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061802314152.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061405181127.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060512391432.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060711401515.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060511022680.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106010741491.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061717252863.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106180129424.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061405074243.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091215483558.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061212584630.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061412100872.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062923260057.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062423575742.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110293262.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021060510560098.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060201013339.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110383920.webp", + "http://dounimei.us/wp-content/uploads/2022/04/2022040404403176.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106170236307.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060705251015.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060106040072.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/20210625021827100.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110313912.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021061710243254.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060416415761.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061700510446.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061223013926.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060300503849.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091210283192.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061711044047.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061702173794.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061000045874.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060504372197.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061700510552.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061210585150.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060712124894.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061111360244.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060104272036.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061400463056.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021063010121813.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110364586.webp", + "http://dounimei.us/wp-content/uploads/2021/09/2021091205200010.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060202120197.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060514361169.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070523543677.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070808515412.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/202107120703045.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110444346.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021061005553699.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061211103082.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061601075781.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600304794.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070703342537.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110391852.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021061111534064.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062123043979.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062114050092.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070703272615.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106071151276.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062423532646.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070703023946.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060901231969.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062501423825.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091206364014.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060510275989.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070713314481.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061402434242.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060300504179.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072022284642.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061411212783.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061515434952.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061405243534.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106171725237.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060107061289.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060502302674.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061611193210.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060210200353.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072013450660.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061405244042.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062501392663.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061515445489.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040402403094.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060209201560.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060201411676.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061212553648.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061210584816.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040402481839.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060417244815.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060511111062.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070703543873.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061717410684.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060208000014.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070703153498.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061611482962.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061404202083.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040402491314.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091205200165.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061608404511.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110293257.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021060203023816.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600133813.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060106363644.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062502182272.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106211106595.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062111304543.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600430052.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060711373298.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061411011474.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061717095836.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061601192358.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600372468.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060301544393.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062711583750.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061802242394.jpg", + "http://dounimei.us/wp-content/uploads/2021/08/2021080202552466.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091207113332.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091212533111.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061603423426.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061312372920.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060212090722.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061412142469.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061711141070.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061212503423.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060511072864.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/202205060013394.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061601151178.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061314023349.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061405123057.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110400138.webp", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110254947.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021061212472561.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070710440069.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062711541649.jpg", + "http://dounimei.us/wp-content/uploads/2022/12/2022120503232440.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091210062540.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061719184548.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060300312224.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062203284116.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060204351914.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062111070972.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106160122345.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061111563277.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061404201653.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060909161020.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061611581747.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106061016285.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061403432447.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061710555350.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060523562450.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060800230719.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600160440.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/202107080050094.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061222503855.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060910331132.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106020815246.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060107504922.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091205475797.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405082913.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070712251654.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021071206513496.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061611393632.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061603560481.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060204432712.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061313094969.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070202215392.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061305340665.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091206122493.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062423533072.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061411165964.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061710472920.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070523513122.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021063009440696.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110310375.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021061400340978.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405200921.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060301543598.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061719123786.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061412463414.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061222503955.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060510493412.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061223041495.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061710282334.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070801572383.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062123125598.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060503240575.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061603141271.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060510453425.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060202082395.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/20220506001527100.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091207161482.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110520714.webp", + "http://dounimei.us/wp-content/uploads/2021/06/202106171721224.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061312290578.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091206253350.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060202005162.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061111450415.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062111304895.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405082836.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062112335543.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062712102128.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060712165339.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060106040221.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060900545029.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072014000046.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061212394066.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070712221822.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110342536.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021060208152128.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021053116275955.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061201301882.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060105325168.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070713315247.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060901191027.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061212584440.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060705183995.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061211103267.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060812590943.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061410400095.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061717453235.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061610510766.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061717364129.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061400574643.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060208414095.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061211060451.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060609294152.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070809134195.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062111203867.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061412464164.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070903062412.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110432975.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021060417384029.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061212554217.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062112075211.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110520881.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021061403321316.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110465469.webp", + "http://dounimei.us/wp-content/uploads/2021/07/2021071206444733.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062123130749.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061601040967.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060512472310.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060901191199.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060613590569.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060208350679.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060909352341.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/202205060026378.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061611280636.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061403590372.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405035235.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062712205113.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021071206415075.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060107325959.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110403315.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021060708082326.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060708115365.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061610462571.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110310419.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021060813054279.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106161234124.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061212311383.jpg", + "http://dounimei.us/wp-content/uploads/2022/12/2022120307301034.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060514044198.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060502433169.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060909161232.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091206544861.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072013502122.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600395925.jpg", + "http://dounimei.us/wp-content/uploads/2022/12/2022120307271775.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060504335770.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405082911.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091205391229.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021063010073514.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061711563013.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061404365921.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062123082733.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060416353596.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060212091442.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091205583683.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021053116163524.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021053116081039.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600204577.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060104195572.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061603470594.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060512471380.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062711445590.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061711104168.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060610060856.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070201090611.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106131656188.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060416415540.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060609430141.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021053116245463.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060800350859.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021053116424988.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021063009475312.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070703315787.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021071206545282.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061711562758.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060800521280.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/202109120606204.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110423161.webp", + "http://dounimei.us/wp-content/uploads/2021/07/2021072013451064.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061314100616.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040402491297.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060901231534.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062712205932.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600304818.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110375718.webp", + "http://dounimei.us/wp-content/uploads/2021/07/2021070809134517.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061305431999.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062712205650.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060711335560.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060604240263.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600375960.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070523593846.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061611031338.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091206204099.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070703231650.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106010321569.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060202404548.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070703404528.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060201043481.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021071206472845.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061223013523.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060106040122.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061601003938.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060501575028.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106141200076.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072022421872.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040402460847.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060523561994.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405061686.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060813355958.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060711401185.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060511072270.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110481184.webp", + "http://dounimei.us/wp-content/uploads/2021/09/2021091210283134.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061409521963.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060103215573.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061612131913.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060606565770.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061702142910.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106131704401.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106242348032.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062712012158.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070903062959.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070202251570.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061412405518.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600263692.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060604422425.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106021109327.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060601465563.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060712003645.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062112075669.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060207390723.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060707035280.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061223113177.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405061345.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040404403152.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060510273391.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061317045626.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062711541854.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061403564092.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060416420267.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060201372174.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060901344160.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070711153548.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021071206545746.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060106494856.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061802242498.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061611030853.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061111534175.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091210062636.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061403563541.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061702362799.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106171058161.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091206123021.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106121123068.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040404543256.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061313142597.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062111304867.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091210341056.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106161213099.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061719184617.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600174430.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061412031479.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/202205060042229.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060416392939.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060511201839.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061712020136.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600461684.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070702573060.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070802004172.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060611493913.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061719184790.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040404394781.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061412323232.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060106541862.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060501173745.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061611483014.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061411170028.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070600194169.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061701315182.jpg", + "http://dounimei.us/wp-content/uploads/2022/08/2022081604442666.webp", + "http://dounimei.us/wp-content/uploads/2021/07/2021072014111558.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070703062676.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061601222614.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062923322140.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061405021223.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/202109120729379.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600251823.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060800174170.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061603255035.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061710524558.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060909190053.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106020314319.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060608572945.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060901270189.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061210585275.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061405243745.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091206422752.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405044534.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061718102351.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060210101671.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061702210324.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110461169.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021060207432614.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061718101945.jpg", + "http://dounimei.us/wp-content/uploads/2021/05/2021053115005828.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405205598.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060604145843.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070702525545.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061411503667.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060800180744.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060511270772.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060201531271.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106050117412.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062111134873.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061801193256.jpg", + "http://dounimei.us/wp-content/uploads/2021/08/2021080204093518.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061701244146.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070202251765.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061403181310.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061001581636.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060502392032.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061717365337.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061603505938.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060104195447.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060901131219.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062111174735.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060107184274.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106010747338.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060900544686.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106250218254.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060514044253.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060514003954.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060708432330.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061702403017.jpg", + "http://dounimei.us/wp-content/uploads/2021/05/2021053114544460.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072014111262.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061719245595.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070803093617.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061802171986.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405200963.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061701244055.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060503240970.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061404025839.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060201013594.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060800231756.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040404571086.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060418102310.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061403373743.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062112074983.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061211140640.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061403235449.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021063010032791.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061211005625.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040402451425.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062711445126.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106081312019.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060909190984.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070801573020.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060504285816.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040404412129.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061305432059.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/202107020214059.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060209520980.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061601151841.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060608573036.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106021224234.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061701354735.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062423432261.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061405181367.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061603470676.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070713364486.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600380168.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021053116195587.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060302033058.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060209102199.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061412272729.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060812591495.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061400341075.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061701354899.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/202107080904166.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060511201536.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110481292.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021060510414416.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061601075547.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061601115844.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061413361513.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061006021315.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072022163835.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106020307526.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062103191639.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061412031234.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061317100717.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600292994.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060604191753.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060606410366.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061603073048.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/202107080050086.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061601121233.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061412172153.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061201160911.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/20210612110057100.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061516165588.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106120116072.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060417244662.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070703544138.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091215310935.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062501423790.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600313350.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060107183921.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021071206415661.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060711432029.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060613583652.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061410400495.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060511201924.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110314054.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021061719125448.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091205583692.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091206423331.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061717284524.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061111112024.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061402434330.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062110593587.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061712243869.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106140240569.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061111111723.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060209583436.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060711572542.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061223113055.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060901344441.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060209480959.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060107183580.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061516050651.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600192957.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070600395685.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060108113273.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060208113778.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091209324728.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060502543867.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110255091.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021060708082287.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070703194380.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060416353184.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600334630.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060502392322.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040402442348.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062112291423.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061710393082.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070202140754.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106141331025.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202105311627582.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061702440148.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061305425976.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061603212440.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060418584958.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106020748047.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061604001676.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061411165834.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600292813.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070600193898.jpg", + "http://dounimei.us/wp-content/uploads/2022/12/2022120307301093.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061402434522.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070704082294.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060510361464.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110473959.webp", + "http://dounimei.us/wp-content/uploads/2021/06/202106112219131.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062112205572.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106171156263.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061403404622.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062103122116.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110391811.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021061403404750.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060523010365.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062018213523.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060501575110.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091207161717.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106171901282.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060800350530.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/202207011022247.webp", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600165946.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072013293172.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062111203635.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060106005384.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072022284598.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061702435535.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061612224960.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060302123483.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060604240312.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/20210605015248100.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021053116425396.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061213040521.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110433175.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021061711195319.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061710555720.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060606471173.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106021219041.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062204413297.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060204591064.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060501524973.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060712124948.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060707035598.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106111145088.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061412101054.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091206482883.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060204432224.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062712245023.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091215231979.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110473939.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021061403530421.jpg", + "http://dounimei.us/wp-content/uploads/2021/08/2021080204093236.jpg", + "http://dounimei.us/wp-content/uploads/2022/12/202212030727236.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405101642.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062204002166.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106020755402.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060910372145.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106071157273.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070600373047.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/202205060044264.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060107505098.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110444265.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021060611452668.jpg", + "http://dounimei.us/wp-content/uploads/2022/12/2022120307272218.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070600395413.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061201160381.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060417563924.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061000020370.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070703403417.jpg", + "http://dounimei.us/wp-content/uploads/2022/12/2022120503275623.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061400414660.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061403530924.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060416361868.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060301575921.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060107134987.jpg", + "http://dounimei.us/wp-content/uploads/2022/12/2022120503205940.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070713235240.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070202182639.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060909233631.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040404412142.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070201083037.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060504371063.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061111394998.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091207221455.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061318024714.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070600294665.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070809041785.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070712321388.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070523543976.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060614032478.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061702363316.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060522573642.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091206423087.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091205391317.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061222571228.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/202107020225112.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062712245516.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061312312660.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021071207031066.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106271213119.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600442412.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062923293940.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061802271372.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061700571635.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061201275838.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070703404330.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060208055488.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060901231891.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060204351995.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600452582.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060522573975.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060502470736.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060813054613.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070713314914.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061404025545.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060107505079.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/202109121034109.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060501090980.jpg", + "http://dounimei.us/wp-content/uploads/2022/11/2022111206403423.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061711535775.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060209435138.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/202107080146007.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061802140758.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070703504580.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061404025917.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060100521774.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600471078.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021061719245812.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060418585654.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070704443139.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070703232297.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061312290745.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061201124887.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061403404341.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600160486.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070801413542.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060504333434.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060417014064.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060609531336.jpg", + "http://dounimei.us/wp-content/uploads/2022/11/2022111206402648.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062103120375.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/20210615160449100.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070703504295.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060523005983.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106090126571.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060416574817.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/20210602085034100.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060923541884.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061400525023.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061222571072.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600442551.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062103154153.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060416575052.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060207480124.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061411251119.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070201152754.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/20210912125330100.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062712102125.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060910371718.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061201231340.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021053116133155.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060419222695.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060103130835.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070704083239.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061317001731.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061610462928.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060708514560.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061711195099.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061710393112.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062423480349.jpg", + "http://dounimei.us/wp-content/uploads/2022/12/2022120503205856.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060712124681.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060712003790.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061702210661.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061710353432.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060207480473.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060503291190.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061314101089.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072014070251.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060207432959.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061717205569.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060302223985.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062114001389.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060708515797.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070710480398.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061717320415.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091215310932.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106050304441.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061313143075.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061700571815.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070802004053.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106070811555.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061717091762.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062111032712.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600272639.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070903011926.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062203284610.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061712200136.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110384090.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021061611393744.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091210190012.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060501575290.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060612265727.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061313062384.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070600324565.jpg", + "http://dounimei.us/wp-content/uploads/2021/08/2021080202552394.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060504424178.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061601151722.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062712011661.jpg", + "http://dounimei.us/wp-content/uploads/2022/11/2022110806290263.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106061226559.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060502502942.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061212451322.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061400462964.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060106363992.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061711535338.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060209583369.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091205344377.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060212241897.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405191328.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061601120754.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040402424567.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060417073027.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600372191.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061400574411.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021063010152361.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060210143827.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/202205060036347.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021063009475291.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061400524541.jpg", + "http://dounimei.us/wp-content/uploads/2022/08/2022081604380682.webp", + "http://dounimei.us/wp-content/uploads/2021/06/202106121114101.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061712020085.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060612185494.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600352033.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060813023925.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060910330758.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110441079.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021061411102495.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060901372763.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/20210614043700100.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061802141689.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060202120558.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072014070874.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/20220701102933100.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021061222503684.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061201342859.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060611500636.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106211214032.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061411251318.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110453178.webp", + "http://dounimei.us/wp-content/uploads/2022/11/2022110402411653.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060512515063.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072013595394.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110325989.webp", + "http://dounimei.us/wp-content/uploads/2022/04/2022040404543246.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061802313713.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061711104838.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040402360335.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060201412438.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070711111753.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061710240815.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091205124980.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061801294685.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061111483431.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106140343253.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061604001854.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070201314749.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060512385691.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060208113860.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061316555936.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600400093.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060208260386.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061305344247.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091205252781.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061612450971.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072013294170.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060604103739.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106140359022.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021053116042731.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060104271883.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070702525494.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060800400986.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106051404226.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061612224395.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091206483173.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061603423584.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061719244694.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070713275586.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061412000999.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021063010121768.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061001581449.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061305481984.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062110593941.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061410343397.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061719074719.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060522573773.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070710591274.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106071147144.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061403373610.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070712221521.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060107380217.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061717092292.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062111104710.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040404394639.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060502502575.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405020346.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061312144580.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110360549.webp", + "http://dounimei.us/wp-content/uploads/2021/08/2021080204092915.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070710435859.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060813162358.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061410203313.jpg", + "http://dounimei.us/wp-content/uploads/2022/08/20220816044428100.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021060609430132.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060606342437.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600330816.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061312192894.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062923322587.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060417384220.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060501373668.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070703024394.jpg", + "http://dounimei.us/wp-content/uploads/2021/05/2021053114534524.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021063010073357.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091207245476.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062018213466.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061314065077.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061404074510.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060208503519.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070710591485.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070202184288.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072013324142.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600452631.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061612494098.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061112005837.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106061020274.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040402413762.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110342456.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021061312373981.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060800472350.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106151616445.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060100521519.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061411102370.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040404543293.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/202107071044079.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060504422794.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062103241538.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061403493152.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061410203723.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061612224669.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062112292557.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060300312445.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072013255934.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060901373385.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070803093637.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600263544.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091205475757.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061717251550.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040404552831.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061316560351.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110501111.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021061111360366.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060512325786.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070713363849.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091205543228.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061413221367.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021063010223187.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060800351013.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060606534587.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062111353843.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061201343069.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106171114196.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106301003136.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061212472978.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060611452016.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060416454039.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405001088.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060604354172.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062712273083.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061717321321.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110334618.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021061404201989.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061413363766.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061515433766.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061413251849.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040402403171.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060107215128.jpg", + "http://dounimei.us/wp-content/uploads/2021/05/2021053115010046.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070712192552.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040404394731.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070600194054.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061608405262.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061313062697.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110284477.webp", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110353260.webp", + "http://dounimei.us/wp-content/uploads/2021/07/2021070713275783.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091205445058.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061711510694.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060800400841.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/202204040247196.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060201493146.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070201082622.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061710353317.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061211005823.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060107215243.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062712244020.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106071140141.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091215231272.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061712020666.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110395957.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021061603332547.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061718413528.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/202205060027259.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061403274091.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062301424481.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060909234197.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106161217577.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600383966.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061612494874.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405110874.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060610232017.jpg", + "http://dounimei.us/wp-content/uploads/2021/05/202105311510198.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060512391427.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061403181512.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600430623.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106140502105.jpg", + "http://dounimei.us/wp-content/uploads/2022/11/2022110509383659.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061603024829.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061006012014.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106161244464.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060601403032.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405020269.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070802004152.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060609531261.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600470970.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021060108231762.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062712131110.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061111111933.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060105280423.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070202215654.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061611392125.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/20210605030418100.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062923322887.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061211231091.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061412211659.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061411011340.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062712272098.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040404421645.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062204075250.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600313184.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060612142227.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060202574938.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060502161548.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061702173429.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091210283227.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070703544655.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060613590445.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070713364256.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106211233533.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600413876.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061000020243.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060302224297.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060606471768.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061318024863.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062123130589.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070600324821.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060209480814.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070710515997.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061700571965.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061306164368.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070809010329.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070201151056.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060512580147.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600331098.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061201280061.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060502161044.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061710580354.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061400574549.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070711113150.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060705173655.jpg", + "http://dounimei.us/wp-content/uploads/2022/11/2022110806290433.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091205291643.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110375738.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021062204001925.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061719153484.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062103241410.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072013424073.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091205543130.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062111105735.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070712281293.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021063010152143.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021053116042975.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106010733003.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106051102265.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110411640.webp", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110513252.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021060712263865.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106271201201.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060711512641.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060207522843.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070903012026.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110444385.webp", + "http://dounimei.us/wp-content/uploads/2021/07/2021070703342656.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060501173898.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106160119149.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/202107120644428.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060510414175.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062423480258.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060606410655.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061802271499.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061314064886.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040404552717.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062114001552.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061712092958.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062103191983.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600422043.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061612131363.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061412322687.jpg", + "http://dounimei.us/wp-content/uploads/2022/08/2022082410443835.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040404570962.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106140052482.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106111148411.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061211230932.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061223013856.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060502102940.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061317100255.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060302122549.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060302345618.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060800564074.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060204591232.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060201531399.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060712263549.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110493666.webp", + "http://dounimei.us/wp-content/uploads/2021/06/202106020834552.jpg", + "http://dounimei.us/wp-content/uploads/2022/11/2022110402413782.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061412100935.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061401032943.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060604051951.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405025390.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060923545633.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061603030144.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021053116425297.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061409464749.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070600373684.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061702403589.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091206204119.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061212393994.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060502594750.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070809084373.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061802021244.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091205200175.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106171901237.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061802220781.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106160100405.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070713201590.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060416393699.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060501091056.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070903141760.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091210130918.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072022421791.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070704443539.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110465329.webp", + "http://dounimei.us/wp-content/uploads/2021/09/2021091210130882.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060108113015.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061122192150.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060208055532.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062204412434.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060300503973.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061801345313.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061718213543.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070703024623.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061405074419.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060800521140.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061201230862.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061612283049.jpg", + "http://dounimei.us/wp-content/uploads/2022/11/2022110806290559.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/202207011046089.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021061710282760.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106120112389.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061412211711.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060514160526.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/20210613121442100.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060207595711.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/20220701103022100.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021060209102368.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070703574048.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060201564593.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060301580427.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061314023951.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600304872.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060708082446.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061313063360.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106171104526.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106170124391.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060708115499.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600204446.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061603212663.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062111135098.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/202204040509263.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061318024233.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060211093381.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061201301622.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061702403654.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062110592511.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061608404895.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405010066.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060209131861.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600301310.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070711153581.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061305482466.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072013323591.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106020212042.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060604304150.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040404552875.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061515232471.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061001581857.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060522541718.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061400485129.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106271213096.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061111563397.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061711142390.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061718413320.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/202107080908474.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106020153092.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061413221425.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062111253017.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070712115718.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072014111638.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060511072620.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070703195222.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110465527.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021060603591739.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060606534920.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061612173864.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061404370031.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110485425.webp", + "http://dounimei.us/wp-content/uploads/2021/07/2021070903141562.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061212355676.jpg", + "http://dounimei.us/wp-content/uploads/2022/12/2022120307301032.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021071206471985.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060609240774.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070523594166.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060201371991.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070201204247.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060711471746.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060610103221.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060209553312.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070703504431.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062711492619.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070710515553.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061400485493.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062111354581.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070703153697.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061611283520.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091215483624.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060910331032.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061411011385.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600184332.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600343413.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070712281116.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070801413032.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106271205195.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061111004317.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061317045714.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060800400785.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060512430570.jpg", + "http://dounimei.us/wp-content/uploads/2022/12/2022120503255887.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021053116104219.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061412464026.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061305530717.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060201372020.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070523593491.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405101687.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110325827.webp", + "http://dounimei.us/wp-content/uploads/2022/05/202205060025198.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060604052255.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072022242325.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061312233477.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070202215186.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060510494252.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060613502521.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060604240234.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061211055970.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091210062554.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405111043.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060104271910.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061802172542.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060108113194.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060601432688.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040404562128.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106041707334.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061601004132.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061603071754.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040404562039.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110284517.webp", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110391788.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021060604105662.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091210130831.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060203023712.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060208414125.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110461182.webp", + "http://dounimei.us/wp-content/uploads/2021/07/2021071206414526.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600313499.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070704082918.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405000959.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/202109120654429.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062204075712.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060708431939.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061212554490.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600152674.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060202575034.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070801523273.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106020752345.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106051232589.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061610574214.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060209583226.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061410203447.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061223041378.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061608375180.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600301219.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060107135047.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061401032294.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060603591835.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040402442449.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040402360316.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070600064838.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/20210615152212100.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070703315222.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061412030794.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062112205967.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/202207011034562.webp", + "http://dounimei.us/wp-content/uploads/2021/06/202106170144006.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062111203225.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061702250220.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062123045134.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061405123588.jpg", + "http://dounimei.us/wp-content/uploads/2021/05/2021053114544816.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/202207011031406.webp", + "http://dounimei.us/wp-content/uploads/2021/06/202106060924036.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062711413314.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072013424561.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061802221071.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106070703577.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091210382864.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060300373956.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106010649506.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060601514373.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091206482370.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060208350733.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061314101198.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061718211331.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106211220588.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060209434696.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061601075452.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061601041687.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060909161396.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060609394612.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061710555878.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060208214885.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040404562063.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060901130711.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106180214125.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106170144012.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060106541821.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600174570.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060514364787.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061410400137.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060416515153.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060503044211.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021063009522241.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060302123398.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/202204040458124.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060203142571.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060712165489.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060609395520.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061602562012.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600170053.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062112135511.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600334870.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060202041736.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061719213986.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070712280935.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600351911.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061711104633.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061403321554.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061313341028.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061717320831.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600470863.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021060212181494.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060612142951.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060510413180.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405092594.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060901344326.jpg", + "http://dounimei.us/wp-content/uploads/2021/08/2021080202532731.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110342654.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021060609425645.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061213040644.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106080056434.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062114051069.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061211060347.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060302032939.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060601402841.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061212311153.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/202109120558377.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060610060761.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061005555311.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060210143792.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061306411139.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106171108091.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072013260817.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040404581393.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060209355888.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060207390617.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062203284224.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070703062519.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110440985.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021060300214121.jpg", + "http://dounimei.us/wp-content/uploads/2022/12/2022120503275213.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110305677.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021060608513453.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072022211482.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110485471.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021061802021713.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040404581133.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061801345025.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061717452478.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/20210622044128100.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600343613.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070713202311.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060813115344.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061403273741.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106041701452.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061313342172.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060302345265.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060208414312.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061412172282.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106111104194.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110321811.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021061312144427.jpg", + "http://dounimei.us/wp-content/uploads/2021/05/2021053115101474.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/202107071115311.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600293036.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/202107020131364.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070703232030.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062111252388.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060604193182.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060106541759.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072013595933.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091206204318.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040402442332.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021063010032199.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106060935067.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061611193751.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070201203618.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091207221422.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061412410090.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110321965.webp", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110364585.webp", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600404253.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060300595555.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110524633.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021060512430783.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060711533661.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060502340976.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110453112.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021060604505753.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021053116042869.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060417072693.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060705174124.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061603333320.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106171915268.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062423430218.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061802271271.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062711444779.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060512575922.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106161057307.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061801251311.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091207245475.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060510363219.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106010532527.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060501090867.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070713275376.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040404403157.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061312193138.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060502103071.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061111483999.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061802064426.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060614034528.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061409464025.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110360430.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021060604422338.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021053116195673.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062111174253.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091207113739.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110254920.webp", + "http://dounimei.us/wp-content/uploads/2021/06/202106051102181.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060502543991.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061710352970.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060609394277.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061711535512.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062711492342.jpg", + "http://dounimei.us/wp-content/uploads/2022/12/2022120503255880.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061403235388.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106030234555.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061702250179.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060604052071.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060504291125.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600184558.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060909234124.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600461428.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060503241275.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061411251134.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060209350884.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110345723.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021061719213666.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070809041363.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070801455276.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106151604411.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110453015.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021061413305572.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/202107120644345.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091207245457.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061223074618.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060208260070.jpg", + "http://dounimei.us/wp-content/uploads/2022/12/2022120503232418.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070600293833.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060502593572.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070703315834.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061603023068.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106180129333.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061403493253.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061005553317.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061312341629.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070713240942.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061222571178.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060606565922.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062111032614.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060418102758.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060210101458.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110493637.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021062103240762.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060502103026.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062711413239.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061712200038.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061702503071.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600160583.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062112135995.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106271158414.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091210504434.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060609293684.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091207221468.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106010313065.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021053116133579.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060711372631.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021053116104348.jpg", + "http://dounimei.us/wp-content/uploads/2022/12/2022120503210148.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061314154099.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106131415308.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060711431933.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060604465140.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021071206594969.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061306165117.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061413251624.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/202204040246083.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072022284747.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060209521116.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060212091669.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061312312962.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060512325585.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070809010395.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070600064950.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061403321438.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106020149326.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/202107201342399.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060502302790.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072022242328.jpg", + "http://dounimei.us/wp-content/uploads/2021/05/2021053115065727.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060302033195.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060301580336.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061712154777.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061318061595.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106242343139.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060504422478.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061712244590.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060606565447.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060813122119.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060604145630.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060711534022.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600414058.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060107330163.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060909191055.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/20210708085200100.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040402360241.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061312341414.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070201205121.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040402424531.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106071216527.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061211103361.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062301424374.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021053116280050.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060106364169.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061801193412.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061403181482.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060209132484.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070712115365.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061711045484.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/20210707123211100.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/202204040511099.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061400485490.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110325917.webp", + "http://dounimei.us/wp-content/uploads/2021/09/2021091206363531.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060603590182.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/202204040520552.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061212310437.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061201302046.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060813362880.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072022211525.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091206545482.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072013372356.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060610292227.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091210245716.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106292329387.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061612175644.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091209324845.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060514160215.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600351814.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060417013836.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600152889.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060608513567.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106141110256.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072013545950.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040402481863.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600330918.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106081302421.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061212355893.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110505987.webp", + "http://dounimei.us/wp-content/uploads/2021/06/202106060143222.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405101561.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061801345533.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060502434043.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061413185063.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110403453.webp", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110353184.webp", + "http://dounimei.us/wp-content/uploads/2021/09/2021091205444913.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021063010121329.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061603302048.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060210143691.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060201564022.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405072080.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060209520870.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/202207011041156.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021060202041621.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060504372712.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061111533914.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091207293739.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060608512855.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062711491929.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061405074417.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060511270638.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106061002171.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070712173224.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062112292266.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062103190891.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061404074316.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070801522899.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060107380147.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060813355392.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021063010151753.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/202204040245144.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/20210606121858100.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062203563916.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061608375415.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110414552.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021062711413256.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061702503194.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060711373068.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061412142297.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061710524690.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060614034645.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091210185959.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060106005550.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106131639152.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091206121982.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070712192925.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600363319.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060300595292.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060300373880.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060210101754.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/202107060006437.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110321891.webp", + "http://dounimei.us/wp-content/uploads/2021/07/2021070801413299.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061413145295.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061710523934.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021053116513198.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061712244774.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070523505449.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060608451172.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061411132254.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061412405747.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061000050572.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060711335810.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060712263755.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060209101444.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110524575.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021060107061145.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405071995.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061611031125.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070903063211.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600384076.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061000014337.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060610292496.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061410344041.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106301022365.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061710315229.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060502161365.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060208113918.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061212422071.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060300214078.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060606342740.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060501374856.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060204351744.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040402491316.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061412272919.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070809010078.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106170214288.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040402403135.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061405181458.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040404421714.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106140353103.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061312290391.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061400415632.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110364486.webp", + "http://dounimei.us/wp-content/uploads/2022/05/202205060027279.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091206252892.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405191487.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110520863.webp", + "http://dounimei.us/wp-content/uploads/2021/06/202106121304039.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106161249504.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060711572253.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061111450948.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600363523.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060208215811.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061212422234.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600192817.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405035264.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061318061874.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060610060695.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060705245853.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060502302711.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060711431742.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061112005879.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061402405523.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060604145322.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106211103236.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062712160079.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/202107080050097.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070801523164.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060209201890.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110284566.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021061111395325.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106041651554.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061122192033.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060901131123.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060514162469.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061223074550.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061702440225.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110411540.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021062501393923.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070703573691.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062111135153.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061612282878.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061317004520.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061603382210.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060606471589.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040402451414.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060201412511.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060601465757.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060103130910.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060108231958.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405025277.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405020365.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061711080488.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061405020920.jpg", + "http://dounimei.us/wp-content/uploads/2022/11/202211020948541.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060209401789.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061212503476.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600204328.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061410344197.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405200979.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061712154961.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060208152340.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/202107202242143.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/202207011030221.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021062301424128.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110513387.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021061610462339.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405010142.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070710480395.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106061002165.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060510454974.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106130552516.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070710480419.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600452684.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061212503385.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061802065261.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106021109272.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061401004269.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106020240446.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061111041871.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/202109121548355.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061000050326.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060209553553.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040402413636.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061411504464.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060512472193.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021053116512762.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061710392735.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060417563681.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070703062014.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/202107202221131.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060608451368.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060201043396.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060416515465.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060610292666.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021063009440463.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061701354617.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600285281.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061412273135.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405191386.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061702250328.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060204590719.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/20210602093507100.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/202107071222095.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060502434132.jpg", + "https://o1.fengqingyang.ml/pg/2023/05/01683b04af26da659024413946d38339.jpg", + "https://o1.fengqingyang.ml/pg/2023/05/194f738011048aaa8c48dec4eebeecca.jpg", + "https://o1.fengqingyang.ml/pg/2023/05/f060e0fdc2436c2f4a81869aeb831415.jpg", + "https://o1.fengqingyang.ml/pg/2023/05/b602e74d435ae74afbf143116760976d.jpg", + "https://o1.fengqingyang.ml/pg/2023/05/307e2831cdae19250c9dc1cbf7ca434f.jpg", + "https://o1.fengqingyang.ml/pg/2023/05/aa2579f5c6e89b311f4827c7cff791d4.jpg", + "https://o1.fengqingyang.ml/pg/2023/05/7fe98fa2d93ef5ea0d8878d5c4ac84f2.jpg", + "https://o1.fengqingyang.ml/pg/2023/05/63ff67d847abf0c757dcbb74f559226d.jpg", + "https://o1.fengqingyang.ml/pg/2023/05/71dac1e7cc97fe527272bd6bd5f1256d.jpg", + "https://o1.fengqingyang.ml/pg/2023/05/126e52aa1f89ad1b24541e6db3185f25.jpg", + "https://o1.fengqingyang.ml/pg/2023/04/2c090bd5cd8f074cdfab19eb621871b9.jpg", + "https://o1.fengqingyang.ml/pg/2023/04/87b3e92fef7ecc574614c31350dd00c1.jpg", + "https://o1.fengqingyang.ml/pg/2023/04/6856ae1d731665f42f9911fc323972d7.jpg", + "https://o1.fengqingyang.ml/pg/2023/05/b3afe26ba8a95bf31863cb9ce01ea2e7.jpg", + "https://o1.fengqingyang.ml/pg/2023/05/62b4ce373c7899d9f862bbe6215cc818.jpg", + "https://o1.fengqingyang.ml/pg/2023/05/ca50fc02969a0b38eb6e3302f600ca32.jpg", + "https://o1.fengqingyang.ml/pg/2023/05/efdbc8ee70f11e4df36bd6c12aa15a8c.jpg", + "https://o1.fengqingyang.ml/pg/2023/05/ee421104b762f959df13f9ed0cd04831.jpg", + "https://o1.fengqingyang.ml/pg/2023/05/8ff84fc8e5b5be9bc2e2ef878b9394e6.jpg", + "https://o1.fengqingyang.ml/pg/2023/04/c4a88b1fcd2076ff7a91c3c2ceb59763.jpg", + "https://o1.fengqingyang.ml/pg/2023/04/628e09c82693ff22c51dde32dfc16160.jpg", + "https://o1.fengqingyang.ml/pg/2023/04/cfbfcd50f3487fe2bd330ca67504d765.jpg", + "https://o1.fengqingyang.ml/pg/2023/04/369296f0f18f6bc48a880cb95cd32ffa.jpg", + "https://o1.fengqingyang.ml/pg/2023/04/6146742af0f7c754cc3df5ff0296ecac.jpg", + "https://o1.fengqingyang.ml/pg/2023/04/4810ec985c4edd22776ef8c084571138.jpg", + "https://o1.fengqingyang.ml/pg/2023/04/470dbe945e61e2eb1a8ce947a91f6593.jpg", + "https://o1.fengqingyang.ml/pg/2023/04/1e06b6f31768f83ee32c8435b1b435ee.jpg", + "https://o1.fengqingyang.ml/pg/2023/04/033e92edbaa9d445c3e777d53edcbed9.jpg", + "https://o1.fengqingyang.ml/pg/2023/04/d43b975397fd31d0b91fe82cae422a53.jpg", + "https://o1.fengqingyang.ml/pg/2023/04/b4e03698644c9e7992088b6228f21ef2.jpg", + "https://o1.fengqingyang.ml/pg/2023/04/cb723dc113109649794c63465e3db158.jpg", + "https://o1.fengqingyang.ml/pg/2023/04/2ca26aff6fa1530a09690f34f5775ac6.jpg", + "https://o1.fengqingyang.ml/pg/2023/04/d12de01f3b7f6a4078f1c8fbaf5479b4.jpg", + "https://o1.fengqingyang.ml/pg/2023/04/131463d3cbd14a15c5b38290a38e6bfb.jpg", + "https://o1.fengqingyang.ml/pg/2023/04/4108635b3c62d63c945a67c781f653e9.jpg", + "https://o1.fengqingyang.ml/pg/2023/04/4f3c1e076ce62580fcd15a6e300d1c57.jpg", + "https://o1.fengqingyang.ml/pg/2023/04/c1bc58a6513a7bb6cc834848ff98b6ac.jpg", + "https://o1.fengqingyang.ml/pg/2023/04/34d98bd342f6c912c276e10900cb462b.jpg", + "https://o1.fengqingyang.ml/pg/2023/04/e688cc746bf42276764f6f2042cbdebd.jpg", + "https://o1.fengqingyang.ml/pg/2023/04/f79749e385fb8ecf7fe5b59738dffe01.jpg", + "https://o1.fengqingyang.ml/pg/2023/04/b07896cd00fef3a9032cddda948a17a4.jpg", + "https://o1.fengqingyang.ml/pg/2023/04/93d3ae2243cf66cbf7faad6710f7a296.jpg", + "https://o1.fengqingyang.ml/pg/2023/04/eb1ecd144168ac81838afa26e8a457b5.jpg", + "https://o1.fengqingyang.ml/pg/2023/04/59d5438bdb6674bb28caed988bab32cd.jpg", + "https://o1.fengqingyang.ml/pg/2023/04/d1aeecf00bc424b99204567b5d4ba040.jpg", + "https://o1.fengqingyang.ml/pg/2023/04/b51da0e3091820f6f6f3ba1073cc75a9.jpg", + "https://o1.fengqingyang.ml/pg/2023/04/ef069d5bbb6473db1ba0b341ae93dc86.jpg", + "https://o1.fengqingyang.ml/pg/2023/04/b066239ace6f6ec890e9f325de1348ac.jpg", + "https://o1.fengqingyang.ml/pg/2023/04/59b131904fe3b8238bbe7ca6711c58ba.jpg", + "https://o1.fengqingyang.ml/pg/2023/04/ec75c626fb6b03e5e3c8a3b6df78c5e4.jpg", + "https://o1.fengqingyang.ml/pg/2023/04/4d257d6c9f2027af395f1e2566364863.jpg", + "https://o1.fengqingyang.ml/pg/2023/04/739ea8edf3c411bf1be96a6decccecc2.jpg", + "https://o1.fengqingyang.ml/pg/2023/04/4ebcf06cee9d7771b90aff9166f15d0a.jpg", + "https://o1.fengqingyang.ml/pg/2023/03/d13e00127494efa439dcbe14139ed738.jpg", + "https://o1.fengqingyang.ml/pg/2023/04/ba7d0d488c87c6d2f392db52c17207d4.jpg", + "https://o1.fengqingyang.ml/pg/2023/04/b33c04b8434f69610204bedf9c413fd2.jpg", + "https://o1.fengqingyang.ml/pg/2023/04/a16ad554cbd0efe86792e9d3851c74b8.jpg", + "https://o1.fengqingyang.ml/pg/2023/04/6317e02f05dd0a5706cb5c79b7f92098.jpg", + "https://o1.fengqingyang.ml/pg/2023/04/5a95fffbe85fab1981db35c1b79c1e28.jpg", + "https://o1.fengqingyang.ml/pg/2023/04/8e697cc8cf8207b20327746efe749f62.jpg", + "https://o1.fengqingyang.ml/pg/2023/04/c4f64dfecd6ad1d963adf2ec594c6ac3.jpg", + "https://o1.fengqingyang.ml/pg/2023/04/5343bf5b8bf607beea0fe5dffe2dc86a.jpg", + "https://o1.fengqingyang.ml/pg/2023/04/1be712ba921c901b9c39e9b37ac2a935.jpg", + "https://o1.fengqingyang.ml/pg/2023/04/08103f768600114d3269ea866d8d3a45.jpg", + "https://o1.fengqingyang.ml/pg/2023/04/9c8d44558b9bcf26e3013191e5994040.jpg", + "https://o1.fengqingyang.ml/pg/2023/03/7a111f13da14ad1dd55620d7f191af13.jpg", + "https://o1.fengqingyang.ml/pg/2023/03/75897ff956ae3f6cca91aee046516c8f.jpg", + "https://o1.fengqingyang.ml/pg/2023/03/463154d6934ea052ec6eeb968979aa45.jpg", + "https://o1.fengqingyang.ml/pg/2023/03/0e84d074c6f5b80e63ca760813224c9c.jpg", + "https://o1.fengqingyang.ml/pg/2023/03/ce871d7bbb5d4e66963dabe807f9e1cc.jpg", + "https://o1.fengqingyang.ml/pg/2023/03/41971a4f5c67d31500ca104367781b3d.jpg", + "https://o1.fengqingyang.ml/pg/2023/03/4e8d70fa33e2f0cef22d48d995fe02c3.jpg", + "https://o1.fengqingyang.ml/pg/2023/03/d59ef2b767a468289b463bfd9e01db64.jpg", + "https://o1.fengqingyang.ml/pg/2023/03/bf2219d6cfc5ba780f1ed929589980f1.jpg", + "https://o1.fengqingyang.ml/pg/2023/03/287686ae937c0c18ce31da76f8d97dd8.jpg", + "https://o1.fengqingyang.ml/pg/2023/03/2d34e76ac61a1360772203e9210a4aa7.jpg", + "https://o1.fengqingyang.ml/pg/2023/03/c8fe8665b4d57564e457e4a91f705023.jpg", + "https://o1.fengqingyang.ml/pg/2023/03/411e0e44a5d1f2ca5816202bb9de419c.jpg", + "https://o1.fengqingyang.ml/pg/2023/03/60ec40675885bb9237b3b1e2db7d0784.jpg", + "https://o1.fengqingyang.ml/pg/2023/03/6c4c5b8483c2101bc955b3d417cb5dc5.jpg", + "https://o1.fengqingyang.ml/pg/2023/03/d94932e806cff4b1ca7d48a821f9e562.jpg", + "https://o1.fengqingyang.ml/pg/2023/03/9c601dc77273f846aad5c21677aaa1e8.jpg", + "https://o1.fengqingyang.ml/pg/2023/03/09ec324b79152fd69c5058d50eaac038.jpg", + "https://o1.fengqingyang.ml/pg/2023/03/7fcd32b42e8337bc892d4eaa82565fe0.jpg", + "https://o1.fengqingyang.ml/pg/2023/03/5a5823e8e07f054a7201ffc0db7d78a1.jpg", + "https://o1.fengqingyang.ml/pg/2023/03/6bdf4d599bc884ead0bb302a1c35e2a6.jpg", + "https://o1.fengqingyang.ml/pg/2023/03/d5fbda9031f4ab1457f3ca732959edf9.jpg", + "https://o1.fengqingyang.ml/pg/2023/03/a0f35e1860159988132d52f57c38077b.jpg", + "https://o1.fengqingyang.ml/pg/2023/03/0afbfbaf656a909195c3d002d16e28b1.jpg", + "https://o1.fengqingyang.ml/pg/2023/03/e1257e61dd9600bd4859f8cbcc9d46a8.jpg", + "https://o1.fengqingyang.ml/pg/2023/03/842f2449a4008b4877833184c2545765.jpg", + "https://o1.fengqingyang.ml/pg/2023/03/fecec124560b3cba7af76d5fc55b215d.jpg", + "https://o1.fengqingyang.ml/pg/2023/03/390e50195b624f6b3cd60606920f3721.jpg", + "https://o1.fengqingyang.ml/pg/2023/03/6a993956ebcd3aa33a753222137c8417.jpg", + "https://o1.fengqingyang.ml/pg/2023/03/c8ec9eb4264b78676b1aeaaf397c1af9.jpg", + "https://o1.fengqingyang.ml/pg/2023/03/57fce53cab45423d4d5490b65ca3a9fd.jpg", + "https://o1.fengqingyang.ml/pg/2023/03/5439e4aed60aeb8f5e603c49da6cada9.jpg", + "https://o1.fengqingyang.ml/pg/2023/03/f44e4608e5e1a701cae3b6251886c577.jpg", + "https://o1.fengqingyang.ml/pg/2023/03/dab544ae40b3b923e7d306ac79bad573.jpg", + "https://o1.fengqingyang.ml/pg/2023/03/7f03beb522646a63c7819b6b94bb08e1.jpg", + "https://o1.fengqingyang.ml/pg/2023/03/0b0f21491b48f4434dc93256c1cd2c6d.jpg", + "https://o1.fengqingyang.ml/pg/2023/03/2f225ec70da7b9e2865ae152d57a663c.jpg", + "https://o1.fengqingyang.ml/pg/2023/03/eea3ba20b179216964fc4d043945c4ca.jpg", + "https://o1.fengqingyang.ml/pg/2023/03/5f3e5109e4ce683243379a3a32b72c5c.jpg", + "https://o1.fengqingyang.ml/pg/2023/03/947dc70e0e964064417a15c9085c639b.jpg", + "https://o1.fengqingyang.ml/pg/2023/03/0e5e1ff76c6b66f1a1aaa3a955341f52.jpg", + "https://o1.fengqingyang.ml/pg/2023/03/7d592af080d58faac483e7a7ea5fe864.jpg", + "https://o1.fengqingyang.ml/pg/2023/03/84a423321b79082f4edbb1d4b7917556.jpg", + "https://o1.fengqingyang.ml/pg/2023/03/d3ee5d4300bdcdc8fad5ea56308b549a.jpg", + "https://o1.fengqingyang.ml/pg/2023/03/3c151280359a61a0dc073b350e494094.jpg", + "https://o1.fengqingyang.ml/pg/2023/03/ce60b7f061f170182b3ea04de6f7662c.jpg", + "https://o1.fengqingyang.ml/pg/2023/03/7b580a48945b25b379c6c49c66c7cbab.jpg", + "https://o1.fengqingyang.ml/pg/2023/03/42b4ec01e1d5681ae682712b25d2e459.jpg", + "https://o1.fengqingyang.ml/pg/2023/03/d75055e7347315cc8ed9f02c54e40ae5.jpg", + "https://o1.fengqingyang.ml/pg/2023/03/b75615a2db96b7216c6a6d7e9b45063b.jpg", + "https://o1.fengqingyang.ml/pg/2023/03/c7113840547041d992f35adec2d7cd7b.jpg", + "https://o1.fengqingyang.ml/pg/2023/03/949b69bd4f34ba024660ef77e1d781b8.jpg", + "https://o1.fengqingyang.ml/pg/2023/03/a79f05fa637575ea9a56a10507dc9689.jpg", + "https://o1.fengqingyang.ml/pg/2023/03/8333b3a39b3fbd760b548f227e1e69e5.jpg", + "https://o1.fengqingyang.ml/pg/2023/03/d0c7654fb869580c0044f60e986fc010.jpg", + "https://o1.fengqingyang.ml/pg/2023/03/5ab4524de6b08bbcc08767ebd2122c42.jpg", + "https://o1.fengqingyang.ml/pg/2023/03/a7ed4657886c86d6176bc4b5acded37d.jpg", + "https://o1.fengqingyang.ml/pg/2023/03/37a32e6e3f330c027d3e82ce44094506.jpg", + "https://o1.fengqingyang.ml/pg/2023/03/2be5d45bb9ae99de0febd034f9c4868a.jpg", + "https://o1.fengqingyang.ml/pg/2023/03/35eb01c195732f85af71f19f6e2aec53.jpg", + "https://o1.fengqingyang.ml/pg/2023/03/e03df0501e36854faab8f793b7a01912.jpg", + "https://o1.fengqingyang.ml/pg/2023/03/b09a06a79fafb11620c23150dea49a3d.jpg", + "https://o1.fengqingyang.ml/pg/2023/03/dec6da41a23ca5b78f9bd6706ddf6c2a.jpg", + "https://o1.fengqingyang.ml/pg/2023/03/044005bd007e2f966cca65d54090f2a8.jpg", + "https://o1.fengqingyang.ml/pg/2023/03/461965cbd9277bae4c4f89787f316d9e.jpg", + "https://o1.fengqingyang.ml/pg/2023/03/a1d2ae3aaceea0302cf6792ee11a7a96.jpg", + "https://o1.fengqingyang.ml/pg/2023/03/e60ffc886f83736540780456a71ec224.jpg", + "https://o1.fengqingyang.ml/pg/2023/03/20ec18f83bbe1d925f1a3d409a0f099c.jpg", + "https://o1.fengqingyang.ml/pg/2023/03/732b6d91527842cd7245ef7001e9d076.jpg", + "https://o1.fengqingyang.ml/pg/2023/03/a09b5992974efc85c74f48c816c2a6ff.jpg", + "https://o1.fengqingyang.ml/pg/2023/03/08f30b7c7603981741b94c82d80f6ad3.jpg", + "https://o1.fengqingyang.ml/pg/2023/03/dbba8102e3f28637e1957e599d8e6d2f.jpg", + "https://o1.fengqingyang.ml/pg/2023/02/4858593aa95b4cd59aa87af1040d6756.jpg", + "https://o1.fengqingyang.ml/pg/2023/03/d84f0b745d903597eb20cb843d05cb2a.jpg", + "https://o1.fengqingyang.ml/pg/2023/02/09817cb3259ee4b034ef8d1b59d43cc0.jpg", + "https://o1.fengqingyang.ml/pg/2023/03/a265c7c510d341b5cecc405e17f3c4ed.jpg", + "https://o1.fengqingyang.ml/pg/2023/02/ebc48b47bdd51163d98424a36c16ac22.jpg", + "https://o1.fengqingyang.ml/pg/2023/02/a9e89c5cebb74fdf4de738a41f363b04.jpg", + "https://o1.fengqingyang.ml/pg/2023/02/be71ada96cfca5548fc05f65fa056f49.jpg", + "https://o1.fengqingyang.ml/pg/2023/02/be11ff44b719a58253c39be7971583a4.jpg", + "https://o1.fengqingyang.ml/pg/2023/02/823724ffaef5d0387d5774873927870b.jpg", + "https://o1.fengqingyang.ml/pg/2023/03/8a5dab8385f1d92aefb43f5415008984.jpg", + "https://o1.fengqingyang.ml/pg/2023/02/613c275b382a61e3e9dec8366ddd08b1.jpg", + "https://o1.fengqingyang.ml/pg/2023/02/3b510d0d37aefa71c011d205420557e2.jpg", + "https://o1.fengqingyang.ml/pg/2023/02/5ffd49ce590225484930496a742a5e8f.jpg", + "https://o1.fengqingyang.ml/pg/2023/02/9f5f7eae3fd29dbb7d7856f52509f62f.jpg", + "https://o1.fengqingyang.ml/pg/2023/02/547664ab0fd779daeb253f9fdddb76b7.jpg", + "https://o1.fengqingyang.ml/pg/2023/02/7c4602357c39c2033713c8d0cb2d5fc3.jpg", + "https://o1.fengqingyang.ml/pg/2023/02/7fd7244656ceb48794d347f66cb4b68d.jpg", + "https://o1.fengqingyang.ml/pg/2023/02/c3588d2dc0b3473a26b3ee470f8a0b0f.jpg", + "https://t1.ledchuzu.com/2023/02/22/03e68cce23fce34494ff7d0e102c2dfe.jpg", + "https://t1.ledchuzu.com/2023/02/22/fa394f94b7ec9702e361dbc14d37b656.jpg", + "https://t1.ledchuzu.com/2023/02/22/9bce0ddf3f498d268782221d630fc3ef.jpg", + "https://t1.ledchuzu.com/2023/02/22/ee3f084557c7d8edc51731e0cedf2928.jpg", + "https://t1.ledchuzu.com/2023/02/22/a3c44c1b002d7a6f55d26024caec1617.jpg", + "https://o1.fengqingyang.ml/old/0ba4fa15dce0f865c079453281b80d9e.jpg", + "https://o1.fengqingyang.ml/old/05db3ae72914e09b745e41aeca7fb664.jpg", + "https://o1.fengqingyang.ml/old/5ccd572d51f73d32fd95d270b2f1c73b.jpg", + "https://o1.fengqingyang.ml/old/53b50f8e810426a27945502597b01111.jpg", + "https://o1.fengqingyang.ml/old/6b7225bc0b9d3ba2315168e5d91360d8.jpg", + "https://o1.fengqingyang.ml/old/80ddc6aa36a7199d5124c2abccad8ea6.jpg", + "https://o1.fengqingyang.ml/old/8c601bbb3f4e7c5d98ecf8bd26780648.jpg", + "https://o1.fengqingyang.ml/old/3842a02decc1b004242ddc5edc929d06.jpg", + "https://o1.fengqingyang.ml/old/5c00c454594f214a38abbcd8b81d4d0a.jpg", + "https://o1.fengqingyang.ml/old/bf901e2c4547e3e47fa0dd860a0ab1ec.jpg", + "https://o1.fengqingyang.ml/old/0252eb496c8fc73e29ce8eb93597f682.jpg", + "https://o1.fengqingyang.ml/old/f35f0e54bfcc316b4fb1a298a11a7fc7.jpg", + "https://o1.fengqingyang.ml/old/9073e9eae7619a5484a98c08d223411c.jpg", + "https://o1.fengqingyang.ml/old/340c546249c5c1535c67beb245b35b4d.jpg", + "https://o1.fengqingyang.ml/old/40b35dd42e679fb7f8b10e5de928037d.jpg", + "https://o1.fengqingyang.ml/old/00de20bf87590472f853b98129aec3dd.jpg", + "https://o1.fengqingyang.ml/old/3ef245ac81e1d530c0d1daa4ffb8ed06.jpg", + "https://o1.fengqingyang.ml/old/cc72c8a8e2217e990a6c7e67cfe523f2.jpg", + "https://o1.fengqingyang.ml/old/a26c1fbdf42e69c5f1c4c72a245dd6ea.jpg", + "https://o1.fengqingyang.ml/old/d2f24635dcfcd2eb788ad88dc082e3c2.jpg", + "https://o1.fengqingyang.ml/old/6feb9deccf586e938d6a0c5624e71a46.jpg", + "https://o1.fengqingyang.ml/old/bb6cae4a0b65fc604da0855568ce415a.jpg", + "https://o1.fengqingyang.ml/old/e71f7c2798635a0b8f2866f3534d96ec.jpg", + "https://o1.fengqingyang.ml/old/632a59eb23d437b1689da7a989350d1a.jpg", + "https://o1.fengqingyang.ml/old/c9b1993f20e8baebb3c1fd825b104803.jpg", + "https://o1.fengqingyang.ml/old/7e2d56ad6c6080779ea515be5c200a89.jpg", + "https://o1.fengqingyang.ml/old/07e3bcf4a72b1e7c0ffe64c45fb9a679.jpg", + "https://o1.fengqingyang.ml/old/6f1b4063942287ac1aa96f10cf83c960.jpg", + "https://o1.fengqingyang.ml/old/bc884d8cfd04395c71f5b67bb3b335de.jpg", + "https://o1.fengqingyang.ml/old/c2fe3e50129d691cceb35f915b9bf196.jpg", + "https://o1.fengqingyang.ml/old/2c2214adffd44b648242711381736744.jpg", + "https://o1.fengqingyang.ml/old/6661f24c137efbeb7e9cdc0eb98b0f9a.jpg", + "https://o1.fengqingyang.ml/old/1d7985c383970a0053de44cdf1f312c3.jpg", + "https://o1.fengqingyang.ml/old/4990bfb8e28d2306ce5d59810bf1a5c7.jpg", + "https://o1.fengqingyang.ml/old/62a7995f046fdf0b6093cc2f432cd486.jpg", + "https://o1.fengqingyang.ml/old/51d0da6b9e38ec1dc0a2622949724706.jpg", + "https://o1.fengqingyang.ml/old/1cb50f71f7c5e57c4183364e29484f82.jpg", + "https://o1.fengqingyang.ml/old/72aa33cb62f816b945b214261b4214a2.jpg", + "https://o1.fengqingyang.ml/old/35a578f0a9e84c34c469d00031c8e3e8.jpg", + "https://o1.fengqingyang.ml/old/d8cc3278272746f5b594628aebb38225.jpg", + "https://o1.fengqingyang.ml/old/ed423998f1b3d872292392e4ed4c9456.jpg", + "https://o1.fengqingyang.ml/old/9baa6ba1240e8d01351a12e70ad958c6.jpg", + "https://o1.fengqingyang.ml/old/eea0333b1f4dc589c73df69fc392f49b.jpg", + "https://o1.fengqingyang.ml/old/7d1696b2eebd9276592141086f8c2b54.jpg", + "https://o1.fengqingyang.ml/old/efcdc616c035a2796d544ed4a661ca58.jpg", + "https://o1.fengqingyang.ml/old/e7084b8c2edd91b160ba7a48dd6701c3.jpg", + "https://o1.fengqingyang.ml/old/04c4ac4cb2028b87dd7897d4c73e27bb.jpg", + "https://o1.fengqingyang.ml/old/b76a283e76dfb2ba1bc2053c77eba821.jpg", + "https://o1.fengqingyang.ml/old/62c5366663a59922b2332859556b7e22.jpg", + "https://o1.fengqingyang.ml/old/bad54c0d0846db00c1bebb95af8a0af0.jpg", + "https://o1.fengqingyang.ml/old/2550ff64bfdc1bbb9ea361f5cac7ff9d.jpg", + "https://o1.fengqingyang.ml/old/111c87104a48e4ee6e132f4e103c22b7.jpg", + "https://o1.fengqingyang.ml/old/4b5c0871967325314c542daaaa754d7f.jpg", + "https://o1.fengqingyang.ml/old/8d6f66047bb53ca1cd62c2cf8eb41a83.jpg", + "https://o1.fengqingyang.ml/old/c660d3c91b80858317ba95c4d87eb224.jpg", + "https://o1.fengqingyang.ml/old/24b2f06bff503c0bb9983edf284f46d8.jpg", + "https://o1.fengqingyang.ml/old/1a893a0edc3b5b802aa35b3051a9aa28.jpg", + "https://o1.fengqingyang.ml/old/4fd38c32c3121eaa581ed687c974711e.jpg", + "https://o1.fengqingyang.ml/old/07467218a465771ecc9f9d8f54fa2985.jpg", + "https://o1.fengqingyang.ml/old/6fd9e1e5591e836825a72c9539ec57b7.jpg", + "https://o1.fengqingyang.ml/old/71b6b6e31333ab4c09e9e08512364095.jpg", + "https://o1.fengqingyang.ml/old/d6484fb079f35895ec1c098192f8dd0b.jpg", + "https://o1.fengqingyang.ml/old/c0c063afde43a929956fa9014551dc40.jpg", + "https://o1.fengqingyang.ml/old/38d1ff788c703c450eaf9bf800dbe5f0.jpg", + "https://o1.fengqingyang.ml/old/3e96faed093fe348c42acbe0ad4f4a45.jpg", + "https://o1.fengqingyang.ml/old/658e9647479f890539e4c9e907edff46.jpg", + "https://o1.fengqingyang.ml/old/da9ebc7c5d1f34f3e3dda09a3bdb42b2.jpg", + "https://o1.fengqingyang.ml/old/749c957ec993498ea6a9fb4c70b4d839.jpg", + "https://o1.fengqingyang.ml/old/08bebff53496491ccd54fa358ab7c49f.jpg", + "https://o1.fengqingyang.ml/old/00f07ddf95d4dc85061cacabaa8ffd5f.jpg", + "https://o1.fengqingyang.ml/old/8a31fbad5c9d78ec797895c32cbcf4e9.jpg", + "https://o1.fengqingyang.ml/old/e6f2ff50ad9f86dddde5afba20a6336b.jpg", + "https://o1.fengqingyang.ml/old/c139167233e74503c096bdde4b4f9d4b.jpg", + "https://o1.fengqingyang.ml/old/a0288c6aace7c7a9a406cdc98b5278e8.jpg", + "https://o1.fengqingyang.ml/old/2fcf53dfafc6985815fcc7d415a14acb.jpg", + "https://o1.fengqingyang.ml/old/19a0621c34e3cf268498e93edb257d6d.jpg", + "https://o1.fengqingyang.ml/old/ba038c12386183207ad75bcc986eb8e5.jpg", + "https://o1.fengqingyang.ml/old/320e09bd6392902e9026200b3e37a9f9.jpg", + "https://o1.fengqingyang.ml/old/c2743b4c5ab99f50b806aff8d343a18a.jpg", + "https://o1.fengqingyang.ml/old/87b65efbb27811ff760420a2fd120b81.jpg", + "https://o1.fengqingyang.ml/old/477098bb2f8730c7836b8b05c284af87.jpg", + "https://o1.fengqingyang.ml/old/b69dc23eb2c01e3ae0bb23323470cb84.jpg", + "https://o1.fengqingyang.ml/old/f7f9ca8f1891117d5208084bd2e763b1.jpg", + "https://o1.fengqingyang.ml/old/933bd8e8410a8dfd2c05128645dabb32.jpg", + "https://o1.fengqingyang.ml/old/1b08283d61c4f62cfad03dffe465d412.jpg", + "https://o1.fengqingyang.ml/old/1092a6967eb6e4b36b8837d23f9cdac3.jpg", + "https://o1.fengqingyang.ml/old/546b8623fd2e3e6aa49b4402611bfcd1.jpg", + "https://o1.fengqingyang.ml/old/bf4abcefd59cfe5595aecb62e5c8d131.jpg", + "https://o1.fengqingyang.ml/old/7294d31acc617efc585bbb29f6e54a1a.jpg", + "https://o1.fengqingyang.ml/old/39a823de33f73321c7f5c3b24c56993a.jpg", + "https://o1.fengqingyang.ml/old/b439220cb6bc706ed05b9ce9ba9b6144.jpg", + "https://o1.fengqingyang.ml/old/01c402bd93376114848c9608edb41b34.jpg", + "https://o1.fengqingyang.ml/old/df717dd92d10e9495c9f595330c2623e.jpg", + "https://o1.fengqingyang.ml/old/b3f13bd061f5c1450f04703e04a2544e.jpg", + "https://o1.fengqingyang.ml/old/b250f291547e780861abf0f8d4d0c562.jpg", + "https://o1.fengqingyang.ml/old/8b45062010bc735107b9e46694724ef7.jpg", + "https://o1.fengqingyang.ml/old/21cc1cfd493e22c6921b7f4ab4efed6a.jpg", + "https://o1.fengqingyang.ml/old/619c5ad4b03af77802a643340015095c.jpg", + "https://o1.fengqingyang.ml/old/5541cea439732d506572310e789d3a53.jpg", + "https://o1.fengqingyang.ml/old/bb2bdaaa237d1d6eab8cc1b9705b6f72.jpg", + "https://o1.fengqingyang.ml/old/2b3965ec5973574b114899715b6f003d.jpg", + "https://o1.fengqingyang.ml/old/25231eafff024a94e2c29e774141db0d.jpg", + "https://o1.fengqingyang.ml/old/78eb6ddeefed6636109dbe50978e4176.jpg", + "https://o1.fengqingyang.ml/old/d4efdfffa059888de964a7b57b763fd1.jpg", + "https://o1.fengqingyang.ml/old/e127fd5d6b15a171edfc768921816a8b.jpg", + "https://o1.fengqingyang.ml/old/971a965538b8c5cce2c5158889994b82.jpg", + "https://o1.fengqingyang.ml/old/c54833e2dc3cd78aee8851771b54ad80.jpg", + "https://o1.fengqingyang.ml/old/6ff655b18cacc70190623c22745676e1.jpg", + "https://o1.fengqingyang.ml/old/0dcbc60c80e7153e48bc996e99393fc2.jpg", + "https://o1.fengqingyang.ml/old/05f875f139265aaeff62d9a63e1768f2.jpg", + "https://o1.fengqingyang.ml/old/1283ac0ddf8e8ff99e88e19dd1c4c8c4.jpg", + "https://o1.fengqingyang.ml/old/b609ada964273912c591772f0abab86c.jpg", + "https://o1.fengqingyang.ml/old/32057b93590d4fefe45064b81c85b9d0.jpg", + "https://o1.fengqingyang.ml/old/5f50258340f85100ecfcbe023d2ed00c.jpg", + "https://o1.fengqingyang.ml/old/eeeaa839a6ab312969317e7e1229c12a.jpg", + "https://o1.fengqingyang.ml/old/ebeb8c752c1f0bb9e7a15c5214a99c72.jpg", + "https://o1.fengqingyang.ml/old/d38a3f332211209cd9895e969774b347.jpg", + "https://o1.fengqingyang.ml/old/83df129bb0eea00a2959043191bf862e.jpg", + "https://o1.fengqingyang.ml/old/13808e5962f5cd7d732cb774d227f939.jpg", + "https://o1.fengqingyang.ml/old/c8542d79422edf4c6b9f3d7e09be06c5.jpg", + "https://o1.fengqingyang.ml/old/1e3b8a16392dd10b6e1200a210e1f674.jpg", + "https://o1.fengqingyang.ml/old/731429a0c3f1033e84e798e80cfcde3a.jpg", + "https://o1.fengqingyang.ml/old/35d78c802c6891d1ff8ff9a356aeb48d.jpg", + "https://o1.fengqingyang.ml/old/886b2413557d7ff066d8c7a0bb624923.jpg", + "https://o1.fengqingyang.ml/old/8135c529cb3c70f7367198a3b0507505.jpg", + "https://o1.fengqingyang.ml/old/9f57a4f3428a7ae8a17ac4e62e2a0bc8.jpg", + "https://o1.fengqingyang.ml/old/64d1056049f98f8c98eddb76bb7fbf0e.jpg", + "https://o1.fengqingyang.ml/old/eb7c037899833916181b485a29fb5889.jpg", + "https://o1.fengqingyang.ml/old/4c9659ef76407c8af7c530829008b836.jpg", + "https://o1.fengqingyang.ml/old/be3a80504da29bef2c38832fbec0263a.jpg", + "https://o1.fengqingyang.ml/old/bef97361de41fd0637be23c4fe45c886.jpg", + "https://o1.fengqingyang.ml/old/70b3e64a38d83a306df72001ed0f08f1.jpg", + "https://o1.fengqingyang.ml/old/08f73354e22028cf6801bdc99b379bed.jpg", + "https://o1.fengqingyang.ml/old/ffee16bc922758c61dd7ccd2bab4dd67.jpg", + "https://o1.fengqingyang.ml/old/0f1a33c7af411bc376fe48564b6cd754.jpg", + "https://o1.fengqingyang.ml/old/41fa7ed0dcea3ba32c86afffcff8c8ed.jpg", + "https://o1.fengqingyang.ml/old/a954e45606ff339c7cb55eec190ec7b6.jpg", + "https://o1.fengqingyang.ml/old/f19167b22a0e3c6ee62d94e98ab72e9d.jpg", + "https://o1.fengqingyang.ml/old/f4de0874ca8c5efacdfcb026237ab328.jpg", + "https://o1.fengqingyang.ml/old/253c85599a86ffd9fcf3fa387a561751.jpg", + "https://o1.fengqingyang.ml/old/0919de7bab7d6c754638e47096e05e66.jpg", + "https://o1.fengqingyang.ml/old/8ba7737cde566db0a69675b8044bcedb.jpg", + "https://o1.fengqingyang.ml/old/018bb1cc124d3bc30f5870641da7eabb.jpg", + "https://o1.fengqingyang.ml/old/8082788ee0eba9c7a0d1117f6345513b.jpg", + "https://o1.fengqingyang.ml/old/50ac1d53ceed4db0f6b40a47b1662950.jpg", + "https://o1.fengqingyang.ml/old/bc4799863a21488ee9007d853d07b59f.jpg", + "https://o1.fengqingyang.ml/old/4d766e5cfda02e9f89e0fab87e1f399d.jpg", + "https://o1.fengqingyang.ml/old/3d0b713bedfe7b024fb56d337e9f8c13.jpg", + "https://o1.fengqingyang.ml/old/7c174b0bd677ec84bd4da1660b8943dd.jpg", + "https://o1.fengqingyang.ml/old/cce58980cf68eb5c39b4c3d0ce1ca09d.jpg", + "https://o1.fengqingyang.ml/old/6c278ece0be9bd1c6937ff76d7882e13.jpg", + "https://o1.fengqingyang.ml/old/358fccc08ceb05d8f2251b18a0dc39a1.jpg", + "https://o1.fengqingyang.ml/old/d5f8dcfae6c2d2a9fd111ca930f35252.jpg", + "https://o1.fengqingyang.ml/old/a22adcba17cb8f0e8f2a878b92e1e118.jpg", + "https://o1.fengqingyang.ml/old/6bf93e43ce21ac1ac61c06b782504531.jpg", + "https://o1.fengqingyang.ml/old/0b1d556852e183d01c84b4d02472e90a.jpg", + "https://o1.fengqingyang.ml/old/0ca8d2aff97b9373d44bbf73ad695954.jpg", + "https://o1.fengqingyang.ml/old/a4b119cf948308993c27412ab4453254.jpg", + "https://o1.fengqingyang.ml/old/5f6453becbe5234a840102c3f6e1a3cd.jpg", + "https://o1.fengqingyang.ml/old/453f58da9740b10cab2f578a3fe0391c.jpg", + "https://o1.fengqingyang.ml/old/ec6675e032ce9885d26bda248ad5136d.jpg", + "https://o1.fengqingyang.ml/old/b554e43e7f5f92a5cfef085b4220aba1.jpg", + "https://o1.fengqingyang.ml/old/f7c613ce3c2d20709ffbcd474b727e26.jpg", + "https://o1.fengqingyang.ml/old/a63b70f09844439974bb4aa2b29da69e.jpg", + "https://o1.fengqingyang.ml/old/df4f2d4d92cc6f6a9b97bd9e1429c918.jpg", + "https://o1.fengqingyang.ml/old/a9c25316f7e9e677f51c0473a6fd8f7c.jpg", + "https://o1.fengqingyang.ml/old/395993962a483ec7b6fe69458b0bf4a2.jpg", + "https://o1.fengqingyang.ml/old/dfc8c2f0a03d485a6f5d28f90c7ebe46.jpg", + "https://o1.fengqingyang.ml/old/cc4195071fc9f262e0eb8ecca8896633.jpg", + "https://o1.fengqingyang.ml/old/504a5d366454345057b15c44a8cff8c7.jpg", + "https://o1.fengqingyang.ml/old/d3564628160f4a333a394cfcbc6381f9.jpg", + "https://o1.fengqingyang.ml/old/9c7a1b033de590bc11fc6747e7985a56.jpg", + "https://o1.fengqingyang.ml/old/b877bafddfa6f9d7c0e93427a09d3350.jpg", + "https://o1.fengqingyang.ml/old/e01d09ffdd3287ca78444466f657dfe1.jpg", + "https://o1.fengqingyang.ml/old/3c3a73456e9d3dc7d99c494fe4291813.jpg", + "https://o1.fengqingyang.ml/old/9ffec4538b0be53b1aeb3aa24d0632fd.jpg", + "https://o1.fengqingyang.ml/old/9acfde56a9c282ccd269366c415cd419.jpg", + "https://o1.fengqingyang.ml/old/f5873cb894050117dee9a0881ea1a38a.jpg", + "https://o1.fengqingyang.ml/old/af2773f76cda1f089051c8ff22ab41ae.jpg", + "https://o1.fengqingyang.ml/old/a56565cfdbc7926003cd5863ab5cfd9f.jpg", + "https://o1.fengqingyang.ml/old/ae6e55a96c8386fe3ded1eef18e37900.jpg", + "https://o1.fengqingyang.ml/old/af9b062b187d14ef9ac6370a3b479f51.jpg", + "https://o1.fengqingyang.ml/old/e22f6311f89773ed56843ba518bbbfd2.jpg", + "https://o1.fengqingyang.ml/old/96af61073f5445785e5f55f8558125fe.jpg", + "https://o1.fengqingyang.ml/old/9d288cf400632f64d85ec71a2829a7c2.jpg", + "https://o1.fengqingyang.ml/old/47b108016a885bba0025e9a6c4b280bb.jpg", + "https://o1.fengqingyang.ml/old/27f9b23306fb3738fc7452a1f3022ed9.jpg", + "https://o1.fengqingyang.ml/old/0c02a2a51d449b13303a12fc11e58b8a.jpg", + "https://o1.fengqingyang.ml/old/8d8c125c01f4415281ba5c5777fc0fab.jpg", + "https://o1.fengqingyang.ml/old/b8e95cefe8851e6a1c49fed2f8353e82.jpg", + "https://o1.fengqingyang.ml/old/17e77e5cec90176067057810759610fc.jpg", + "https://o1.fengqingyang.ml/old/01ee8fb8f525c011ec6a5430191b819a.jpg", + "https://o1.fengqingyang.ml/old/3b10800553d6dcf3dbd8360b76d23841.jpg", + "https://o1.fengqingyang.ml/old/56baec5494d9b9542e0e869f58eee16b.jpg", + "https://o1.fengqingyang.ml/old/d3b3672171b836cd42844a999bc457ef.jpg", + "https://o1.fengqingyang.ml/old/f92f105f398c0676bcb0c1a767f49268.jpg", + "https://o1.fengqingyang.ml/old/8a3d3302a6d6135af18fcb53b4547357.jpg", + "https://o1.fengqingyang.ml/old/e0de30cd141864945f161c1dda614832.jpg", + "https://o1.fengqingyang.ml/old/c9ffbad2877caf525571f70ceb881c97.jpg", + "https://o1.fengqingyang.ml/old/4e350f50ca37da21a115cd1df5da2660.jpg", + "https://o1.fengqingyang.ml/old/62619d3ba5834da9b5a8bf0ebb4f0a42.jpg", + "https://o1.fengqingyang.ml/old/41b0d53442c86d7e260910d419525ff5.jpg", + "https://o1.fengqingyang.ml/old/6918b757cd8baf2102ba3c21d7a22412.jpg", + "https://o1.fengqingyang.ml/old/7d9c00811cccaaf99042670f1244b3ac.jpg", + "https://o1.fengqingyang.ml/old/ce138077d377539d5c778729b6d30fa7.jpg", + "https://o1.fengqingyang.ml/old/e69b8355230db11d156bfe8f51c8cfe9.jpg", + "https://o1.fengqingyang.ml/old/c19ce25d3d2cf4e024987e2fd68e4ff3.jpg", + "https://o1.fengqingyang.ml/old/9ddf6bc17976429fc8299b76659efd75.jpg", + "https://o1.fengqingyang.ml/old/2e9d274931305b4a17109cddb818fc2e.jpg", + "https://o1.fengqingyang.ml/old/61a7b918eaf0aef430751fd735a1895d.jpg", + "https://o1.fengqingyang.ml/old/80a3757b2ee2a86a15373babc76346fc.jpg", + "https://o1.fengqingyang.ml/old/11966e9d202e90091182fbd4d61650a2.jpg", + "https://o1.fengqingyang.ml/old/5b6dc55cff718950ea269c855272d621.jpg", + "https://o1.fengqingyang.ml/old/a41089f1de6b56cf97fc2f176f5c59f7.jpg", + "https://o1.fengqingyang.ml/old/4d38c5e53b90b60d725eea6593ad7101.jpg", + "https://o1.fengqingyang.ml/old/eb655aa9dd267d18854fdd0e6c8348e4.jpg", + "https://o1.fengqingyang.ml/old/83b419d827fcc78460160a947628b7c6.jpg", + "https://o1.fengqingyang.ml/old/2c2b418eb482b27f81c6e4af0fe5d1ab.jpg", + "https://o1.fengqingyang.ml/old/81435d19a01220b203d57a731828474b.jpg", + "https://o1.fengqingyang.ml/old/075a92d337ed27f408e4eaf24a3c41ca.jpg", + "https://o1.fengqingyang.ml/old/d6ca76174fbc9d61ad8a7c544b3c4f0d.jpg", + "https://o1.fengqingyang.ml/old/17c42cc591d0e8070c13eebbe3eb08a6.jpg", + "https://o1.fengqingyang.ml/old/46b160bfb782a82ebb39fe6f691a6200.jpg", + "https://o1.fengqingyang.ml/old/73596c51da48cf3a0d271bbfa96ab816.jpg", + "https://o1.fengqingyang.ml/old/acf5d873226839b2b8073d4946f03356.jpg", + "https://o1.fengqingyang.ml/old/bcd1f32430bab0e3d84e5b2e0dc0f22a.jpg", + "https://o1.fengqingyang.ml/old/8d4fd47dd0e983dbe7a16496eba2b620.jpg", + "https://o1.fengqingyang.ml/old/5dae4d35927ff7932d672aee16bc088e.jpg", + "https://o1.fengqingyang.ml/old/6cce63d6bcb138d10648f0178f981a6e.jpg", + "https://o1.fengqingyang.ml/old/ab7d5b7358d1a1a250b33e39337a1c40.jpg", + "https://o1.fengqingyang.ml/old/de6c9d8c710370eae84d94bf1b9f1cc4.jpg", + "https://o1.fengqingyang.ml/old/7b1ef4ae42d6f38abac33a32c0492fc5.jpg", + "https://o1.fengqingyang.ml/old/213768fac9fa911413fd6a3fd89263a5.jpg", + "https://o1.fengqingyang.ml/old/479e01db52681303b0362fc8e96cc8af.jpg", + "https://o1.fengqingyang.ml/old/ac487e856dd51fe2de51154d57dc6b93.jpg", + "https://o1.fengqingyang.ml/old/0315d6f680aa8b496db9f52dcfaddf10.jpg", + "https://o1.fengqingyang.ml/old/1a1b763a6ae136c24fbdbefeb89271a8.jpg", + "https://o1.fengqingyang.ml/old/72078cb1d6a72a9b4c5c87ddc7242d59.jpg", + "https://o1.fengqingyang.ml/old/a2d4c6ab78bccf457ebe96cd119a5bbf.jpg", + "https://o1.fengqingyang.ml/old/067ce1e87772aa2a33232d729b3e6f0b.jpg", + "https://o1.fengqingyang.ml/old/d37f0abfabcdd86bf675d668b86e3b7f.jpg", + "https://o1.fengqingyang.ml/old/5dc754d724a7c3cb8627e493df44cd65.jpg", + "https://o1.fengqingyang.ml/old/18d9dd3bd022f41289f36b5fa16a4749.jpg", + "https://o1.fengqingyang.ml/old/f0b2744c065b7c667a15e90af44647b5.jpg", + "https://o1.fengqingyang.ml/old/e045b29eecf0999de9a02770070cda44.jpg", + "https://o1.fengqingyang.ml/old/1c8d7be2318d4d9cf3fabcab69adb36a.jpg", + "https://o1.fengqingyang.ml/old/41cbf88b0b0e53c8c0430e4d88b70854.jpg", + "https://o1.fengqingyang.ml/old/9f7e1e4ff945800b5b4835d9d94c73fb.jpg", + "https://o1.fengqingyang.ml/old/e8ab1417086f55c0314798f8e2598143.jpg", + "https://o1.fengqingyang.ml/old/9008e29fcfb097d571b808375623900d.jpg", + "https://o1.fengqingyang.ml/old/1d229a28e55ef38cbb49356e3c10744d.jpg", + "https://o1.fengqingyang.ml/old/edd63269e3610e44b1f51049fb4d36d6.jpg", + "https://o1.fengqingyang.ml/old/5301f04c6d82d4a481a501ede9b2a693.jpg", + "https://o1.fengqingyang.ml/old/f7607a2eb42b48a98cc227cfd6b9f50a.jpg", + "https://o1.fengqingyang.ml/old/e6ed3f332dd8d2553d2456c830e62957.jpg", + "https://o1.fengqingyang.ml/old/1215455072671c48c0be0adb9dd0d2bf.jpg", + "https://o1.fengqingyang.ml/old/f701f8e1199fb3f0799e47f9ee2fc5be.jpg", + "https://o1.fengqingyang.ml/old/43a80c6fd8d231733cbc086519293af7.jpg", + "https://o1.fengqingyang.ml/old/cb684ca0b51360d58dd9956aa85d4ced.jpg", + "https://o1.fengqingyang.ml/old/75466f8ffe5a0b851730d71a910c6cd4.jpg", + "https://o1.fengqingyang.ml/old/41f48c33cb293fbc0f01ec6439dec6f0.jpg", + "https://o1.fengqingyang.ml/old/7c5bebfc9269b4aac844afe84f95ba02.jpg", + "https://o1.fengqingyang.ml/old/2e41ac87b1340e94612015e7af6ea7b4.jpg", + "https://o1.fengqingyang.ml/old/38ab6c990d3145c281584a40fe9595c8.jpg", + "https://o1.fengqingyang.ml/old/79054ee654665917f9f3303bc96e7364.jpg", + "https://o1.fengqingyang.ml/old/85870ddff2dd758c6db1dd3b12b562d7.jpg", + "https://o1.fengqingyang.ml/old/d0be22fc61e8689a36fde5f710f09441.jpg", + "https://o1.fengqingyang.ml/old/4f8b93987ddbd378551ca41f872f9944.jpg", + "https://o1.fengqingyang.ml/old/70697a5077be34305c8f4ea792cc5a9b.jpg", + "https://o1.fengqingyang.ml/old/30979e4e3bf768d6b045c2b545381740.jpg", + "https://o1.fengqingyang.ml/old/bed1679f9f7b1f52ee2288b4da75703e.jpg", + "https://o1.fengqingyang.ml/old/faae5fdc302d22f2398f35a84967b1bc.jpg", + "https://o1.fengqingyang.ml/old/fc36f2fe19f289758106e7289343b8cd.jpg", + "https://o1.fengqingyang.ml/old/520bba320da665d2938c11db296baad7.jpg", + "https://o1.fengqingyang.ml/old/04947cccc097c401a357e9b9db3fbdf5.jpg", + "https://o1.fengqingyang.ml/old/63ae8e71b7e11c9570de4e05af9a5b50.jpg", + "https://o1.fengqingyang.ml/old/c49d2fa8a9d7d0f7e741bad23944b3f6.jpg", + "https://o1.fengqingyang.ml/old/ebf2c6c2695cec43ed45ca219c9e84e0.jpg", + "https://o1.fengqingyang.ml/old/4ce110bc55c74a067ea0d7b1f8f4524b.jpg", + "https://o1.fengqingyang.ml/old/56875f6044a8bdde673f60263a82b67f.jpg", + "https://o1.fengqingyang.ml/old/8d9a21312207670bceb03cddd0d0e665.jpg", + "https://o1.fengqingyang.ml/old/344ac0f809917682743b91c5b024f005.jpg", + "https://o1.fengqingyang.ml/old/94e315ea71cab5e48683b819f5aac1a7.jpg", + "https://o1.fengqingyang.ml/old/4274023aeac86a51fda400bf7ec5a0a8.jpg", + "https://o1.fengqingyang.ml/old/5092ba019fdf5ddea5f5d7dc03c017cf.jpg", + "https://o1.fengqingyang.ml/old/b38aedd3476667fef8ab3fea203d5a4b.jpg", + "https://o1.fengqingyang.ml/old/2b3f323bf48ca22b1605d0e954345e8f.jpg", + "https://o1.fengqingyang.ml/old/f800c42479bf4f09e409cb1890506f5d.jpg", + "https://o1.fengqingyang.ml/old/110d3e9f4309607baa251042ecb1352d.jpg", + "https://o1.fengqingyang.ml/old/293c998ad19c1ace185819762847357f.jpg", + "https://o1.fengqingyang.ml/old/f25290d8950e23c0bf01c7af6fab9dfc.jpg", + "https://o1.fengqingyang.ml/old/92e059ddc7ebbbee667d551bc393a75d.jpg", + "https://o1.fengqingyang.ml/old/e747eb41bdfe01c205db213d722a6c46.jpg", + "https://o1.fengqingyang.ml/old/272a41dceb19cd2359f5ce1dba726d6d.jpg", + "https://o1.fengqingyang.ml/old/3bb2c46e053be3bffeefb09f205301d4.jpg", + "https://o1.fengqingyang.ml/old/9922530f57290638d77af3db538db41c.jpg", + "https://o1.fengqingyang.ml/old/84e61ff377573af8ce5abcd62de5f06d.jpg", + "https://o1.fengqingyang.ml/old/9d875f11a40e77f58b24fc0a68eecc47.jpg", + "https://o1.fengqingyang.ml/old/7d6ad0dd3487100849505a31c3c4d987.jpg", + "https://o1.fengqingyang.ml/old/28f090161549c3b9ef07ff2103dc02e9.jpg", + "https://o1.fengqingyang.ml/old/e3d46d2e9b11d297ab9e3bc944b92edc.jpg", + "https://o1.fengqingyang.ml/old/0a3cbe9a44005f19842f47b05a7a2c05.jpg", + "https://o1.fengqingyang.ml/old/2c3c097804eaf0556fb0c33860a95e81.jpg", + "https://o1.fengqingyang.ml/old/aea14ea565c76f97a52b0c4906c8fce3.jpg", + "https://o1.fengqingyang.ml/old/173ec25f4ed0d166f7646374fdad8e8c.jpg", + "https://o1.fengqingyang.ml/old/2b65cc0da5738efacb3da75e4c021b71.jpg", + "https://o1.fengqingyang.ml/old/010dfee9028c6b98a0f7156dff7d77a2.jpg", + "https://o1.fengqingyang.ml/old/a71967d21486edb0d9e584d56c86bd32.jpg", + "https://o1.fengqingyang.ml/old/3f3746bcf199413f013630f39e62216a.jpg", + "https://o1.fengqingyang.ml/old/8c63cec344021bed35fef2c82ca89db1.jpg", + "https://o1.fengqingyang.ml/old/8dd4bbc0f6655835601fed655b31c8ca.jpg", + "https://o1.fengqingyang.ml/old/1102be648bfdf58d80ad3619b0a48bd1.jpg", + "https://o1.fengqingyang.ml/old/79394991eaaf322793895667fb16947c.jpg", + "https://o1.fengqingyang.ml/old/2e4025497dde11d4489d9c1eb715ae0c.jpg", + "https://o1.fengqingyang.ml/old/d877d5bc0a7ff225d92a6910d2d159f5.jpg", + "https://o1.fengqingyang.ml/old/b14ef83baea46b2d80903c7ed9ae5049.jpg", + "https://o1.fengqingyang.ml/old/9f5d5319ec7e32c36b04e501cd2806a3.jpg", + "https://o1.fengqingyang.ml/old/7b48cbc8d9f3d1cf1b4f2e23d4336965.jpg", + "https://o1.fengqingyang.ml/old/e1e3fd375b8b1f5c0fff5dfc67da3c35.jpg", + "https://o1.fengqingyang.ml/old/110ed32ac28290e9d0675652d5ea2e9b.jpg", + "https://o1.fengqingyang.ml/old/a166de3dd136a8abb2c6ac7df76b75ec.jpg", + "https://o1.fengqingyang.ml/old/8f247e81e7a2d4d59658b0d8c28fce09.jpg", + "https://o1.fengqingyang.ml/old/b7444f1756c4f8b2a62e98507ff61dce.jpg", + "https://o1.fengqingyang.ml/old/52de132f5db29c691cf45d2e29c3f0ea.jpg", + "https://o1.fengqingyang.ml/old/8485741b7266dfd7d2155c781363276d.jpg", + "https://o1.fengqingyang.ml/old/db43dfc209a9bafc9ea0a85b6479ef48.jpg", + "https://o1.fengqingyang.ml/old/6cc24200af292a9f2534fdbc125581a2.jpg", + "https://o1.fengqingyang.ml/old/3116f837877365292ba23371ef7bd2a3.jpg", + "https://o1.fengqingyang.ml/old/14748d577ce307656275e4ec7ebb2228.jpg", + "https://o1.fengqingyang.ml/old/f016f17669838c2fe9a6a36827768860.jpg", + "https://o1.fengqingyang.ml/old/5ca91848ecdb03090c3157af89dc5793.jpg", + "https://o1.fengqingyang.ml/old/ffb6c47ccdea3a4d0ca2585c2438dcb1.jpg", + "https://o1.fengqingyang.ml/old/086f209443c196ab26a3e633e98ea9f5.jpg", + "https://o1.fengqingyang.ml/old/8821e6d53aac21652cb38d202ea8c07b.jpg", + "https://o1.fengqingyang.ml/old/b99ee9ae45f419fc35ac52c9f9d27b2a.jpg", + "https://o1.fengqingyang.ml/old/d0b4100afc5e092a9a4e62d054931cbc.jpg", + "https://o1.fengqingyang.ml/old/41b822b012f6109075520e54f05cfebf.jpg", + "https://o1.fengqingyang.ml/old/8b4005539cb19ad285c3a4ad5673a23c.jpg", + "https://o1.fengqingyang.ml/old/71367d805e625a459adc7bf9296c78b9.jpg", + "https://o1.fengqingyang.ml/old/9964e73a10c554ff9bb3da26c8103a44.jpg", + "https://o1.fengqingyang.ml/old/4eb6b3ee23474d4fa676f7dad4a23916.jpg", + "https://o1.fengqingyang.ml/old/4726bfd3d0570cde1f9c76a345d25e22.jpg", + "https://o1.fengqingyang.ml/old/b339c56c9ebbb5d8c92c4a2797211580.jpg", + "https://o1.fengqingyang.ml/old/aec4fadc64297ff77857616e796968f7.jpg", + "https://o1.fengqingyang.ml/old/e395d3ad5bc6fb55282a57dc0be834c4.jpg", + "https://o1.fengqingyang.ml/old/6591d46a8dc7ca34bc1f746d9f6572c9.jpg", + "https://o1.fengqingyang.ml/old/5e443c4de6aba87bd1c4a505b9ae2927.jpg", + "https://o1.fengqingyang.ml/old/a007556985303daa65cfec421bbd9241.jpg", + "https://o1.fengqingyang.ml/old/ad3a016f0268897aed5744414568889d.jpg", + "https://o1.fengqingyang.ml/old/79ea16667d846376f22cd14fc7db5ecf.jpg", + "https://o1.fengqingyang.ml/old/99a9ec045377d8e521fd7d9f0e3a0c19.jpg", + "https://o1.fengqingyang.ml/old/b4f240eceed687ee14425a881a8014d7.jpg", + "https://o1.fengqingyang.ml/old/64e135e3ae9de8a5a5321e08d90f5d05.jpg", + "https://o1.fengqingyang.ml/old/0a771030a62b6447b20233c1ab1ecc45.jpg", + "https://o1.fengqingyang.ml/old/bebca9bb0170c9573f31c3bdc8bcb8cb.jpg", + "https://o1.fengqingyang.ml/old/82c473a81c578a5f05fded21d1cbade5.jpg", + "https://o1.fengqingyang.ml/old/c6c3aa9ecb924b2883144b86eca40507.jpg", + "https://o1.fengqingyang.ml/old/8ee0001c366b9667d042483b362934af.jpg", + "https://o1.fengqingyang.ml/old/52157938f313eba75c3a61c881be9990.jpg", + "https://o1.fengqingyang.ml/old/310aef87dd8566b25788a21fdf26a9a8.jpg", + "https://o1.fengqingyang.ml/old/243942fa8b87ae695849cd4ab13bb162.jpg", + "https://o1.fengqingyang.ml/old/06538d66a94037c5668e7d595d58b7f3.jpg", + "https://o1.fengqingyang.ml/old/422a69c91b450dd590295fb284fa7e36.jpg", + "https://o1.fengqingyang.ml/old/4fd13cec203c8e31a95a25fb95ffd08d.jpg", + "https://o1.fengqingyang.ml/old/55ff1c16ecab9beee755f7c02fdd3679.jpg", + "https://o1.fengqingyang.ml/old/1ec2919a8224d100bfd5b761a5fc24e1.jpg", + "https://o1.fengqingyang.ml/old/b423a44b1e510b371b8eb46cf56b2abe.jpg", + "https://o1.fengqingyang.ml/old/dc19043a96a69bcde67aa9c00bda89c9.jpg", + "https://o1.fengqingyang.ml/old/1b29ef437242d1bdf3ec5ca85b44572a.jpg", + "https://o1.fengqingyang.ml/old/699cb0811295339bb6ad56debaf23e89.jpg", + "https://o1.fengqingyang.ml/old/8736dad8dceb5883469d1160bd193b0f.jpg", + "https://o1.fengqingyang.ml/old/266314739d8a32ad7c901dac7ca5c47c.jpg", + "https://o1.fengqingyang.ml/old/f702f90999ef753d32c3a3f4824acb7b.jpg", + "https://o1.fengqingyang.ml/old/4c4dca27e1a96a2d5088527602ae00e9.jpg", + "https://o1.fengqingyang.ml/old/a7f4aada4e26d5c8bd5d7b9326471d55.jpg", + "https://o1.fengqingyang.ml/old/2216763f2f1c13f3c0b0459241b72378.jpg", + "https://o1.fengqingyang.ml/old/cb2e9c9fe3167af9338905faa07a9db5.jpg", + "https://o1.fengqingyang.ml/old/0adf25d7b08fd558c60167613ef5977f.jpg", + "https://o1.fengqingyang.ml/old/2c2a9bbcd9d5d97d65b7a94f9ab5426e.jpg", + "https://o1.fengqingyang.ml/old/e29f36f4a6749cd547d3c46d6a1ca30d.jpg", + "https://o1.fengqingyang.ml/old/9ddd871ad72fe10e4c9dea540506809b.jpg", + "https://o1.fengqingyang.ml/old/9414cc3be4a12e1c1c9c6af1652c3205.jpg", + "https://o1.fengqingyang.ml/old/c452c35d5c1194d41d60326b21ef0062.jpg", + "https://o1.fengqingyang.ml/old/32208a4ae0eb46f413c827833e6bbe72.jpg", + "https://o1.fengqingyang.ml/old/6dbf5a9a3eaf3d59ab7e06748dabb956.jpg", + "https://o1.fengqingyang.ml/old/99ff0948473071cb2e105fa466406b16.jpg", + "https://o1.fengqingyang.ml/old/fb8f0a5aab379ff13ae82e7dc784db49.jpg", + "https://o1.fengqingyang.ml/old/2a75b6114cfbd0cd0d67dc2e53a672fa.jpg", + "https://o1.fengqingyang.ml/old/ef4e94613a9e2d9539521d91013cb3f2.jpg", + "https://o1.fengqingyang.ml/old/21fd9741f2200dccdcb0dd97a3d7472c.jpg", + "https://o1.fengqingyang.ml/old/dd574dcca8985fe26da2bc5884c65f04.jpg", + "https://o1.fengqingyang.ml/old/d7c7bd852b74bdec307f75bedfdeb1ac.jpg", + "https://o1.fengqingyang.ml/old/8443455ed503c68e1d740e13a7f0f538.jpg", + "https://o1.fengqingyang.ml/old/787167ab2a97a909dc3d417ce9f7ffc8.jpg", + "https://o1.fengqingyang.ml/old/c31c116e4fd7c04b36d92ae0746e2c55.jpg", + "https://o1.fengqingyang.ml/old/9cdfd7b6e39fd7ee78d68129623d78e3.jpg", + "https://o1.fengqingyang.ml/old/4f3bec3bc3c8b846ca18873fd4abea6d.jpg", + "https://o1.fengqingyang.ml/old/fc0a74af744c5f25611465ee96e70645.jpg", + "https://o1.fengqingyang.ml/old/9d7516e06128e9b72786a53ccaabb3c2.jpg", + "https://o1.fengqingyang.ml/old/5359ab317a08049cd7ad17465c5416ab.jpg", + "https://o1.fengqingyang.ml/old/2dbe97241e60c8b1a504a215be5eb900.jpg", + "https://o1.fengqingyang.ml/old/419430804cfc0c245a89762180b0a351.jpg", + "https://o1.fengqingyang.ml/old/b650f00321cf92f1ca1f4161f202525e.jpg", + "https://o1.fengqingyang.ml/old/f7dfaf96cf5d3d62e155116a51cce6d9.jpg", + "https://o1.fengqingyang.ml/old/ddda16ac42ecd35cd69e87be467591a9.jpg", + "https://o1.fengqingyang.ml/old/4a482e8a2945a67ea7fac647fea736fc.jpg", + "https://o1.fengqingyang.ml/old/fb4304b8ddf517b97da5c977c5a82a64.jpg", + "https://o1.fengqingyang.ml/old/3b6a500bc7141f95fc78b98bff2e4b87.jpg", + "https://o1.fengqingyang.ml/old/a75b8432cc26eb14e237a1d683fd9d9b.jpg", + "https://o1.fengqingyang.ml/old/8864629a931f38b76ec1847eee7fb033.jpg", + "https://o1.fengqingyang.ml/old/711bf4e2e779f3861b569ed9f4505c37.jpg", + "https://o1.fengqingyang.ml/old/3e29822f9e5b6b1a453e20a3cece1bf1.jpg", + "https://o1.fengqingyang.ml/old/8990db644d4114a335aae1a06758a88d.jpg", + "https://o1.fengqingyang.ml/old/aeffee6eaa51e24b60b8a5d735644cf8.jpg", + "https://o1.fengqingyang.ml/old/1de9a7104bc415512b0965bb2dc29d78.jpg", + "https://o1.fengqingyang.ml/old/abe60609d26eb603242765e17377e576.jpg", + "https://o1.fengqingyang.ml/old/1fc19661cf26a4ae3cf8f1caa7ef25e4.jpg", + "https://o1.fengqingyang.ml/old/b882028645eb57a9cfa28871a8c18deb.jpg", + "https://o1.fengqingyang.ml/old/c46886c133dbae061ac359cccfe136b3.jpg", + "https://o1.fengqingyang.ml/old/763246eb8f67fa8d17d77d5cbe1cb5b2.jpg", + "https://o1.fengqingyang.ml/old/97be83ab4d70d4ca461810fc26c3d30f.jpg", + "https://o1.fengqingyang.ml/old/9132a91e53b84c49084398d2f61a1974.jpg", + "https://o1.fengqingyang.ml/old/b117c995644dc0feda1a6299e4e1f721.jpg", + "https://o1.fengqingyang.ml/old/3e76bbe0513b9497adb9fd3b0becdada.jpg", + "https://o1.fengqingyang.ml/old/1dac2f505fa599e6bd3c0c49d975682e.jpg", + "https://o1.fengqingyang.ml/old/0955e7e327b06ecd591d11fb6f8179d7.jpg", + "https://o1.fengqingyang.ml/old/2494f65e2764692783104b4bfb1b5b99.jpg", + "https://o1.fengqingyang.ml/old/27372fedbe885e8e400a0569cdc6d607.jpg", + "https://o1.fengqingyang.ml/old/140c630f2c2cf429d8f82fbc044fb532.jpg", + "https://o1.fengqingyang.ml/old/a21157cca1d3198b77793a1ca4039c07.jpg", + "https://o1.fengqingyang.ml/old/64fbd49d3c0f6f1c8587440e8bb0d1ba.jpg", + "https://o1.fengqingyang.ml/old/f0ff7266231ee822fde2c27dc95b40d3.jpg", + "https://o1.fengqingyang.ml/old/9811c41aaa1d15effe0262e5a1244158.jpg", + "https://o1.fengqingyang.ml/old/fb7294f3c5e595fc91846d927ffab36f.jpg", + "https://o1.fengqingyang.ml/old/47e990f2837ee5b043e94454c40c1577.jpg", + "https://o1.fengqingyang.ml/old/2058706975f4030f3684b9482fe18eab.jpg", + "https://o1.fengqingyang.ml/old/d600c1d0aef4d447cc0fe59f97732121.jpg", + "https://o1.fengqingyang.ml/old/f28cd529b2d76b2caf0eb108c6540984.jpg", + "https://o1.fengqingyang.ml/old/e45db39156d07f23a1b5478708905454.jpg", + "https://o1.fengqingyang.ml/old/04d91e3b0673135e2ba166fff8a5becd.jpg", + "https://o1.fengqingyang.ml/old/1efc746a11fdbb50d87865d838558c47.jpg", + "https://o1.fengqingyang.ml/old/07726e09a71eff0aa39f9e4c1c0844e5.jpg", + "https://o1.fengqingyang.ml/old/98f4cd96f6458b5da2260ffa5007266c.jpg", + "https://o1.fengqingyang.ml/old/c2429d12e8c7769747e383c12c6e35b3.jpg", + "https://o1.fengqingyang.ml/old/ea4fbc0e786f69a2df99e91d9ba9d304.jpg", + "https://o1.fengqingyang.ml/old/835c298eeb5822080c629629d0ce7695.jpg", + "https://o1.fengqingyang.ml/old/c384b9738c6bb1da77a68693fa77c5c4.jpg", + "https://o1.fengqingyang.ml/old/1a0dc12f81685a1c21af8fdb6d58225f.jpg", + "https://o1.fengqingyang.ml/old/f0e1d1961e1c19613c2c751072eb82b8.jpg", + "https://o1.fengqingyang.ml/old/194a3e825029e19d0f2cbe0ccbddd6df.jpg", + "https://o1.fengqingyang.ml/old/a09837ec76064c54ef1dcb8be9299200.jpg", + "https://o1.fengqingyang.ml/old/569bc806c81998fd7d72394320b820aa.jpg", + "https://o1.fengqingyang.ml/old/6caefd6ab77f1ffc57333bbff9e4ded3.jpg", + "https://o1.fengqingyang.ml/old/fa273064c43599d5916e18b6dedae7cc.jpg", + "https://o1.fengqingyang.ml/old/9fae8c3c97cd6b7d96a0ef89efc2efb5.jpg", + "https://o1.fengqingyang.ml/old/e151f472ce1adf84822d4cf3cf1c0bdd.jpg", + "https://o1.fengqingyang.ml/old/bd409a532af808ab4d86300258e8c9e6.jpg", + "https://o1.fengqingyang.ml/old/e29ef13a7e6b828658461a8319b789a5.jpg", + "https://o1.fengqingyang.ml/old/ef7ae47de55b2b1af340bc4f8221f15f.jpg", + "https://o1.fengqingyang.ml/old/1b5a4884ab755a5400de8f9802e527e7.jpg", + "https://o1.fengqingyang.ml/old/100a11ff066aed877d81d380d17a2c6d.jpg", + "https://o1.fengqingyang.ml/old/92eae9fe88d379f640f9edaaf603f7df.jpg", + "https://o1.fengqingyang.ml/old/f2ef47643edcd2b8e62ef62be8a0519e.jpg", + "https://o1.fengqingyang.ml/old/cee63671cdd96117a4174e99e80613b0.jpg", + "https://o1.fengqingyang.ml/old/c572a1e634a519556697acb2cf310c81.jpg", + "https://o1.fengqingyang.ml/old/c7812b09fecb81fd31aeb13e747978ca.jpg", + "https://o1.fengqingyang.ml/old/8126ca7e4a1a8b748358228f4b0784e4.jpg", + "https://o1.fengqingyang.ml/old/ca5b0261272485a27a11461e40bbd4df.jpg", + "https://o1.fengqingyang.ml/old/33d9663b0c6ac991ff09722f3798b36a.jpg", + "https://o1.fengqingyang.ml/old/22575f57e349d5f4dc0ae9e0ea659588.jpg", + "https://o1.fengqingyang.ml/old/d90efe158592ac937870579c3a639742.jpg", + "https://o1.fengqingyang.ml/old/5ef1b1d13189641994ea8a781a84f7df.jpg", + "https://o1.fengqingyang.ml/old/6aefccf72b069b8416fc2094b6f8e7d1.jpg", + "https://o1.fengqingyang.ml/old/d9e8e52ffe38f1bd92020588338f2831.jpg", + "https://o1.fengqingyang.ml/old/8fb04c82b969f629a0f4198dd53b6453.jpg", + "https://o1.fengqingyang.ml/old/03a50b218b29b5edf41f8691d77fa6bc.jpg", + "https://o1.fengqingyang.ml/old/ca9d829575dff55fc3683a13d3d134de.jpg", + "https://o1.fengqingyang.ml/old/306982603cf3286bee63eb9ebe8912ef.jpg", + "https://o1.fengqingyang.ml/old/d869f09a5d0e327fa55a4bc89fd635f1.jpg", + "https://o1.fengqingyang.ml/old/a31f231303cbba0a991dcb149c7c4743.jpg", + "https://o1.fengqingyang.ml/old/4cd59609c9ddb216e94af5b03e0c1ddb.jpg", + "https://o1.fengqingyang.ml/old/280e3645c95f87f758c9568193381b5e.jpg", + "https://o1.fengqingyang.ml/old/46fd5d44d3a1130436743fdffdaed62f.jpg", + "https://o1.fengqingyang.ml/old/4c84aafc3c2ab7a49e7a32eed6bcf86e.jpg", + "https://o1.fengqingyang.ml/old/d65e1bdeae66d4be99352083eed83e18.jpg", + "https://o1.fengqingyang.ml/old/2a2a86f07dc870a3d79294091d11e8c6.jpg", + "https://o1.fengqingyang.ml/old/516a153ce3d5d4255696ca1741f72668.jpg", + "https://o1.fengqingyang.ml/old/efac406fc9f601f4b9972089abdb1370.jpg", + "https://o1.fengqingyang.ml/old/3c52c4dfd006850886fd4efb2e3bb3d3.jpg", + "https://o1.fengqingyang.ml/old/ca5340e3045fb8ffb30bb58f6333ee2f.jpg", + "https://o1.fengqingyang.ml/old/bd2befc732d5736df338ea1fd6938de2.jpg", + "https://o1.fengqingyang.ml/old/cd90c2256306574b325c69e62ceecabf.jpg", + "https://o1.fengqingyang.ml/old/4540552f8367999bf06da0068d2205e6.jpg", + "https://o1.fengqingyang.ml/old/274419fedb581cd6f3b52b26fa8fa7a7.jpg", + "https://o1.fengqingyang.ml/old/ba7eb142293158e346b223a99880c21a.jpg", + "https://o1.fengqingyang.ml/old/0ba98bc21c57c03ed917929ead50cad0.jpg", + "https://o1.fengqingyang.ml/old/d7008539899f0a8fa05477a069b65cf9.jpg", + "https://o1.fengqingyang.ml/old/e5550ed1cccd4cbe7b5eefb2485769db.jpg", + "https://o1.fengqingyang.ml/old/46ddc1a92520acf5a9d678c5a00b9dba.jpg", + "https://o1.fengqingyang.ml/old/45b2d9024024c8ca66cc1302f2310589.jpg", + "https://o1.fengqingyang.ml/old/e69ff2f7d947f0069fe0b8707d96a1ec.jpg", + "https://o1.fengqingyang.ml/old/3bf953ea7f5cd5fc2bb05c0d77c801e7.jpg", + "https://o1.fengqingyang.ml/old/5597bc70d80d8ae6c2a08b69587eaf79.jpg", + "https://o1.fengqingyang.ml/old/ac93525d2a27111d45088507348243fd.jpg", + "https://o1.fengqingyang.ml/old/3d4eedc2d889157334d6a7e3ac6e9697.jpg", + "https://o1.fengqingyang.ml/old/064de7e96db012a0db7390ac0a7a2a7e.jpg", + "https://o1.fengqingyang.ml/old/afebc1985edd350e765cea6e4ddf82b7.jpg", + "https://o1.fengqingyang.ml/old/de1c7d7b247a11a03589588c5188c557.jpg", + "https://o1.fengqingyang.ml/old/a046bee54a9dd1576b27a76f91c914f5.jpg", + "https://o1.fengqingyang.ml/old/00eabaa5b8c4d9f825c333050d840331.jpg", + "https://o1.fengqingyang.ml/old/ec85ff00aedea21f2ecf94d9d27d10bf.jpg", + "https://o1.fengqingyang.ml/old/701e1dcfb82b9a9a24012a3fbf4fa347.jpg", + "https://o1.fengqingyang.ml/old/c9ebba1c3710566e63ae98258734f687.jpg", + "https://o1.fengqingyang.ml/old/b956bb60b2b6ed5c3fe97688c1144ea6.jpg", + "https://o1.fengqingyang.ml/old/f1653f2abc3a15027c8c5b24dbdd9a31.jpg", + "https://o1.fengqingyang.ml/old/7f75a091035c13fd9916da69b02dd202.jpg", + "https://o1.fengqingyang.ml/old/b90b5093fe40bc2fdf0944667f356a2e.jpg", + "https://o1.fengqingyang.ml/old/4d17ae99f0ce6a86f7c743e10341f932.jpg", + "https://o1.fengqingyang.ml/old/8f59ccefa6d27c28590f2ad10bbadcdc.jpg", + "https://o1.fengqingyang.ml/old/149c74f36730ae6d3a1d49ff511d8caa.jpg", + "https://o1.fengqingyang.ml/old/da7f2b17fc2ab516cafeafd2119bd841.jpg", + "https://o1.fengqingyang.ml/old/c246a4f6f1e2f73a4fc376a153cb02c2.jpg", + "https://o1.fengqingyang.ml/old/2160af576db83210ec59c50f99d8371a.jpg", + "https://o1.fengqingyang.ml/old/af381825e50048353756e034dca47370.jpg", + "https://o1.fengqingyang.ml/old/1642473fd322d61e3c455552493a1df5.jpg", + "https://o1.fengqingyang.ml/old/72d7f51c0a512e37d27ef67aa3453e7f.jpg", + "https://o1.fengqingyang.ml/old/aeba30c111ee65fe54bf31f7750365ee.jpg", + "https://o1.fengqingyang.ml/old/423b0fed78c95269a293044b9ebc1e69.jpg", + "https://o1.fengqingyang.ml/old/545e53b66dc686ccd2299ff326d853b1.jpg", + "https://o1.fengqingyang.ml/old/72131a7ca916b7301b832bd8800c91ee.jpg", + "https://o1.fengqingyang.ml/old/9b69b8d31533498bfd47ec10ca82c679.jpg", + "https://o1.fengqingyang.ml/old/1518a716a44710c8ede1d5068a5c421f.jpg", + "https://o1.fengqingyang.ml/old/a89f94a220538c121fc3ca94ab5cdeb6.jpg", + "https://o1.fengqingyang.ml/old/09c7e491a3c753bb9a971806aa71c6ba.jpg", + "https://o1.fengqingyang.ml/old/ca2187a2aba72e807d18b53a2a4847b0.jpg", + "https://o1.fengqingyang.ml/old/35b7c42a5487f5582e13d6fee699726d.jpg", + "https://o1.fengqingyang.ml/old/6bdec1b874a9d8cf5b0d26c8eb6dfabc.jpg", + "https://o1.fengqingyang.ml/old/e7b4fd7cbced194ca73bce27687832f5.jpg", + "https://o1.fengqingyang.ml/old/8e63607384848c54f00cb2f1e5824735.jpg", + "https://o1.fengqingyang.ml/old/cda913acf7c8f0d6a07c5b7ead3925ef.jpg", + "https://o1.fengqingyang.ml/old/b1762db5fece9d454549d234cc39ce88.jpg", + "https://o1.fengqingyang.ml/old/c346322a8c44848f0042813738175247.jpg", + "https://o1.fengqingyang.ml/old/ec1fd946502c117195c6f67f6e0f0d71.jpg", + "https://o1.fengqingyang.ml/old/4f88b812fcc2013a02774a80ba357177.jpg", + "https://o1.fengqingyang.ml/old/10a1be041d58245cce05d95c14f6c1ff.jpg", + "https://o1.fengqingyang.ml/old/3340334a5658109d10bcf5af5209e524.jpg", + "https://o1.fengqingyang.ml/old/94d4c6a127fb591c7a819064bdf4a301.jpg", + "https://o1.fengqingyang.ml/old/f2925432d53842c92bbda2d4d34dc3be.jpg", + "https://o1.fengqingyang.ml/old/059e7ab8181a65efef7af5ad85faf16a.jpg", + "https://o1.fengqingyang.ml/old/34978221ee74a88f688036a90551cd77.jpg", + "https://o1.fengqingyang.ml/old/f5ebe442103b6e5ca36f32844fd1f91c.jpg", + "https://o1.fengqingyang.ml/old/1712b9c44eeead0c0bc2e30fb62ec5be.jpg", + "https://o1.fengqingyang.ml/old/0300f427fe7ccdbde75c8effce2adbd3.jpg", + "https://o1.fengqingyang.ml/old/d2571a9fb85388d6e0dcba44dde47981.jpg", + "https://o1.fengqingyang.ml/old/5e8010f8255a096c72c696e93bfc10a2.jpg", + "https://o1.fengqingyang.ml/old/26c54a692ef44b95b736fa5f050eb66d.jpg", + "https://o1.fengqingyang.ml/old/6cc0973407d415710b7926b4a2dae9fd.jpg", + "https://o1.fengqingyang.ml/old/9c20cf78c08affd0576a555ebf9cf9fe.jpg", + "https://o1.fengqingyang.ml/old/c182b7280ec4a26fb56baacded6db149.jpg", + "https://o1.fengqingyang.ml/old/95787777adbb56491618726143fb75b6.jpg", + "https://o1.fengqingyang.ml/old/a855418c3a9848c96498796df21f52ea.jpg", + "https://o1.fengqingyang.ml/old/6c1ceb96f9bd60ff2150129e0c691ac4.jpg", + "https://o1.fengqingyang.ml/old/f4684baf0fa227b3f7ae953163130115.jpg", + "https://o1.fengqingyang.ml/old/b204767432b02cba3322eb9e10797112.jpg", + "https://o1.fengqingyang.ml/old/00a5ea09b2897ecbf55e5debc0f4b84d.jpg", + "https://o1.fengqingyang.ml/old/6fe7421d411fb34d067008de2898a54e.jpg", + "https://o1.fengqingyang.ml/old/3d52bd065f793f633b99e9722c25f34d.jpg", + "https://o1.fengqingyang.ml/old/8e205a85df485f529dfe252391e15e24.jpg", + "https://o1.fengqingyang.ml/old/e89f1519e2937f28fca27b9997f94aba.jpg", + "https://o1.fengqingyang.ml/old/efff9488aef11576121227ff9656f131.jpg", + "https://o1.fengqingyang.ml/old/f7f82e116e7e1cc6e9bd7df349851067.jpg", + "https://o1.fengqingyang.ml/old/7e087cfdae3459b7e289fef515389ae9.jpg", + "https://o1.fengqingyang.ml/old/36f79f1f506be55f9ca68e5af2897ac1.jpg", + "https://o1.fengqingyang.ml/old/12ae68897d51089faed30a9ae6f40bfb.jpg", + "https://o1.fengqingyang.ml/old/a4a170bddc4c5c9dfa2e2b8f39b0c7e7.jpg", + "https://o1.fengqingyang.ml/old/cb00b8e65fc17374489238afaf34e4f4.jpg", + "https://o1.fengqingyang.ml/old/8023f9f0c2cb3f2305122f9e7d402396.jpg", + "https://o1.fengqingyang.ml/old/81df3d3351985290ff631ea46b352329.jpg", + "https://o1.fengqingyang.ml/old/69d430458e5932b701ee6f45a0f85d09.jpg", + "https://o1.fengqingyang.ml/old/acdb1a6e637779d7b41f93f04ff7c257.jpg", + "https://o1.fengqingyang.ml/old/17cc81b671abe99fac9e40709b4b8e0d.jpg", + "https://o1.fengqingyang.ml/old/f1d9b7ccf959e3fc43a805ee692bb0c0.jpg", + "https://o1.fengqingyang.ml/old/8c80a284189d751a47a57d820769477d.jpg", + "https://o1.fengqingyang.ml/old/d62f04395a8b767320173785f7638521.jpg", + "https://o1.fengqingyang.ml/old/5ddb71bcc641baf05c06f0ec0718c56c.jpg", + "https://o1.fengqingyang.ml/old/42490454502a39805e2937efc3b4190b.jpg", + "https://o1.fengqingyang.ml/old/66a424ab52008fc0a3dca48d659533b3.jpg", + "https://o1.fengqingyang.ml/old/b520ba7d99f6d2085b7021dbf8f88f5b.jpg", + "https://o1.fengqingyang.ml/old/634b7c4e862de55052e80bc8a7508b14.jpg", + "https://o1.fengqingyang.ml/old/4fe32e7a5fe57f28bb1e7048714a6f23.jpg", + "https://o1.fengqingyang.ml/old/544e0e9394e8b841e2debe668cb6b000.jpg", + "https://o1.fengqingyang.ml/old/d81c80d0cb42c8181ca4439df79435a4.jpg", + "https://o1.fengqingyang.ml/old/f75a01b9bd5efaa277a7d737409a156b.jpg", + "https://o1.fengqingyang.ml/old/3ef1f4c7ffb3d78be2bf11008ce190d8.jpg", + "https://o1.fengqingyang.ml/old/031451235cd647ab473572827001fbf6.jpg", + "https://o1.fengqingyang.ml/old/8bde124f98b2490b497f8f4797790b71.jpg", + "https://o1.fengqingyang.ml/old/6b10b2997a91a46f8a135717910b49f1.jpg", + "https://o1.fengqingyang.ml/old/8891ef3f775f9b2fa466334e088cebac.jpg", + "https://o1.fengqingyang.ml/old/33921f5b121808a43aad92a15d676696.jpg", + "https://o1.fengqingyang.ml/old/aa62aa3265eb33cd1ebf62a75fc7c275.jpg", + "https://o1.fengqingyang.ml/old/c53cb67cc5f0c4ef3f9a034e7278b002.jpg", + "https://o1.fengqingyang.ml/old/3afa6cf6ada4e4923f7f24abb2dc1490.jpg", + "https://o1.fengqingyang.ml/old/e8c15d5321fc4db9e6fba13834af4fde.jpg", + "https://o1.fengqingyang.ml/old/f04dd86eecb57b5c9b9c47bb748a626f.jpg", + "https://o1.fengqingyang.ml/old/36dc862060e01440ea91dabee891025b.jpg", + "https://o1.fengqingyang.ml/old/7cd572cf5cae7b9863eddd88c8dde7ff.jpg", + "https://o1.fengqingyang.ml/old/f722d00574f70fa67d67f2457bcfe75f.jpg", + "https://o1.fengqingyang.ml/old/43471f41bc79ee4891ec6d80aa55d142.jpg", + "https://o1.fengqingyang.ml/old/02be798767dcf7dd71be0203524fbafb.jpg", + "https://o1.fengqingyang.ml/old/463bf853c0f05f4c72fead64095e5da7.jpg", + "https://o1.fengqingyang.ml/old/53773787b04f92dd0f372266086b8925.jpg", + "https://o1.fengqingyang.ml/old/f5b59a691bcfe7c30641697ae5f4347d.jpg", + "https://o1.fengqingyang.ml/old/ade0c23c5a537a56725a4c7c7adaa369.jpg", + "https://o1.fengqingyang.ml/old/0cf808a71934bfc33346608c36a27374.jpg", + "https://o1.fengqingyang.ml/old/f542c371d4fc22ca487e1d9413a49c3a.jpg", + "https://o1.fengqingyang.ml/old/3e6a5cd6ff8b3a330fcdc8a9a669bb5e.jpg", + "https://o1.fengqingyang.ml/old/d37ef16bec24c49e07bd2953332bba8f.jpg", + "https://o1.fengqingyang.ml/old/fcd37905c62d4ae3e143ad5adcb3940c.jpg", + "https://o1.fengqingyang.ml/old/ffedfd2db7eb3572b5bd714b3c235358.jpg", + "https://o1.fengqingyang.ml/old/fe85dffe64b000ea3329df043f12ba49.jpg", + "https://o1.fengqingyang.ml/old/f33b7c6dcf950418668bd536ae8bf117.jpg", + "https://o1.fengqingyang.ml/old/5d720ccac31e86596faf558917b61ccb.jpg", + "https://o1.fengqingyang.ml/old/4546bcba0f9566b89119e29ec65ba931.jpg", + "https://o1.fengqingyang.ml/old/1e310b51dca22acbf289d638128f62a0.jpg", + "https://o1.fengqingyang.ml/old/b58ab992f0c3aa1c625893d6f18dd480.jpg", + "https://o1.fengqingyang.ml/old/869ae15f8f46fc00c814b9544b657ed4.jpg", + "https://o1.fengqingyang.ml/old/e0f985eaa1c737998e6af2e2ae92bf63.jpg", + "https://o1.fengqingyang.ml/old/2bd76cfff11a965ff5f3bf54dac49a9f.jpg", + "https://o1.fengqingyang.ml/old/1263560b8c71e686919581fe70be7685.jpg", + "https://o1.fengqingyang.ml/old/96d1637f45f2bc447a5736c7258232cd.jpg", + "https://o1.fengqingyang.ml/old/b35a76674c46f16d8823f4a64c95efa0.jpg", + "https://o1.fengqingyang.ml/old/edb58704a3a1bfa7d1b2cb5a66d7bb41.jpg", + "https://o1.fengqingyang.ml/old/b692b198f8468a38af173dbd458bf5dc.jpg", + "https://o1.fengqingyang.ml/old/84db16efadbd023c81fe424160c6ac00.jpg", + "https://o1.fengqingyang.ml/old/bdccaec59875412109a1f917423235c7.jpg", + "https://o1.fengqingyang.ml/old/3dec14a60ba729b75583710611933fa7.jpg", + "https://o1.fengqingyang.ml/old/29325be5600c4962234adf331d03bf56.jpg", + "https://o1.fengqingyang.ml/old/1e7bc9aee0ce8ef7ac44daa2e0322412.jpg", + "https://o1.fengqingyang.ml/old/f2a89d4885255ce3770ef685e3ad87f1.jpg", + "https://o1.fengqingyang.ml/old/5952390ee4095e5d29a5f468d4353045.jpg", + "https://o1.fengqingyang.ml/old/84d2775b30a145d12a3581b38aaaad54.jpg", + "https://o1.fengqingyang.ml/old/2023da77ede339af02686edbb3844883.jpg", + "https://o1.fengqingyang.ml/old/c3865f9eefa0752ba1c52594542b648f.jpg", + "https://o1.fengqingyang.ml/old/2f418790d7956ab9ac1d181d9ed7d166.jpg", + "https://o1.fengqingyang.ml/old/1f1c52ffedd336d821bee0c477a1816e.jpg", + "https://o1.fengqingyang.ml/old/ffee736e6cbd261222b666e7b924832b.jpg", + "https://o1.fengqingyang.ml/old/1a3c02d9e75468389f0791928138ff70.jpg", + "https://o1.fengqingyang.ml/old/6c5ed94303789a7631913544f0e17130.jpg", + "https://o1.fengqingyang.ml/old/965c57d0efd24bc1b3902303c05b13b7.jpg", + "https://o1.fengqingyang.ml/old/c414eea44ab9a6b180b3a7afd61e33af.jpg", + "https://o1.fengqingyang.ml/old/24262c0ab4f7cee8e198fbc2ab4a72bb.jpg", + "https://o1.fengqingyang.ml/old/4094d3bb81f96230241990383af9fd26.jpg", + "https://o1.fengqingyang.ml/old/3ccb0dc0343d8e90c2cd23aaedf6f335.jpg", + "https://o1.fengqingyang.ml/old/6f72eebe45fe1ff3909fa7750fbfd6c5.jpg", + "https://o1.fengqingyang.ml/old/71a120b556a0613435a2dc944953bfc4.jpg", + "https://o1.fengqingyang.ml/old/f48c085179972533f364a87face70cde.jpg", + "https://o1.fengqingyang.ml/old/ab6c5fcc9ac89821954d93c33b812026.jpg", + "https://o1.fengqingyang.ml/old/aa8f6b12606aacd3846ac80c9abd6c8a.jpg", + "https://o1.fengqingyang.ml/old/c4bf83a59c880cbb8682bfec68631ab2.jpg", + "https://o1.fengqingyang.ml/old/a67dc7e798b68ee7033211c30443bc6a.jpg", + "https://o1.fengqingyang.ml/old/99f9aa3fc8cac34a736ed9d19a57da2b.jpg", + "https://o1.fengqingyang.ml/old/e5eacb1f11cf65d4254b341a36504d40.jpg", + "https://o1.fengqingyang.ml/old/8635e60e441e9fa527367cc2e1b81562.jpg", + "https://o1.fengqingyang.ml/old/d722ff3cf832bd5eccc013373ddc686c.jpg", + "https://o1.fengqingyang.ml/old/fa2dc86a55269ad129651ffb11f1415b.jpg", + "https://o1.fengqingyang.ml/old/ed0f23ba6bf880957927b08e68be23a6.jpg", + "https://o1.fengqingyang.ml/old/84c146d045f99e87ac80cda7cfc0363e.jpg", + "https://o1.fengqingyang.ml/old/76e1c984858c695a2e265cb032664141.jpg", + "https://o1.fengqingyang.ml/old/ed1bd4ef0c9702b27ebe122f742b8d47.jpg", + "https://o1.fengqingyang.ml/old/e05ac4b3ca01b6ee8ffe67185f87410d.jpg", + "https://o1.fengqingyang.ml/old/f40d1cb62257ac99c3e8e6c3669bbcf8.jpg", + "https://o1.fengqingyang.ml/old/3e2c45f23deb6e2c4f51d740035acd42.jpg", + "https://o1.fengqingyang.ml/old/df67fddc3cb8420ec6240230a51864da.jpg", + "https://o1.fengqingyang.ml/old/99c04d3eaf4f82c0be7076775f7df461.jpg", + "https://o1.fengqingyang.ml/old/a934bbc891713e3f5b22debf71309efd.jpg", + "https://o1.fengqingyang.ml/old/fbfcf24ef4a0f283e845a566ae9518e1.jpg", + "https://o1.fengqingyang.ml/old/556226eac14f08facb7fe2c9db6c13d0.jpg", + "https://o1.fengqingyang.ml/old/f5eae35246fa2c92a09b6644455c0c91.jpg", + "https://o1.fengqingyang.ml/old/05c9b8985c094c80189ef5505affb015.jpg", + "https://o1.fengqingyang.ml/old/2a7071a73a6a7bc23bcaef15cf7f1946.jpg", + "https://o1.fengqingyang.ml/old/13c77b8473bae1fe0b0dcd119e96a908.jpg", + "https://o1.fengqingyang.ml/old/ba435341f95ea5aa0b98940d5f6225c9.jpg", + "https://o1.fengqingyang.ml/old/02c169077f7e69fa1e0c9a5e3f553379.jpg", + "https://o1.fengqingyang.ml/old/1743e850b0a9042ab530402ac6f4d2d7.jpg", + "https://o1.fengqingyang.ml/old/d7a9ba03edc01c8e9f3e1ea28f663188.jpg", + "https://o1.fengqingyang.ml/old/da75e028b20c64c313f2920114429d48.jpg", + "https://o1.fengqingyang.ml/old/c6e4b5b25e8f818821197556a7e2e18f.jpg", + "https://o1.fengqingyang.ml/old/e8d559614530c18c85a8a2b1cd5a3a0d.jpg", + "https://o1.fengqingyang.ml/old/765bf5886875edd528ccd09ca585d7c6.jpg", + "https://o1.fengqingyang.ml/old/868c137a5760f0cb2f2619ada4b83d69.jpg", + "https://o1.fengqingyang.ml/old/ef359f256f03467673a492ce532e90a5.jpg", + "https://o1.fengqingyang.ml/old/0befaff0d6b05a34201c7efc8f4abdd6.jpg", + "https://o1.fengqingyang.ml/old/53207830e22bafa3290b95dc772089c3.jpg", + "https://o1.fengqingyang.ml/old/3f6be3b8a1114f78196fa28bef94c88a.jpg", + "https://o1.fengqingyang.ml/old/ce7e2e636f6a5e526c4c70af516fd0e2.jpg", + "https://o1.fengqingyang.ml/old/8f101c2c7f3c798cb0d3ad6b37930205.jpg", + "https://o1.fengqingyang.ml/old/70801bed11ec6eb34e5df0af6a787d9c.jpg", + "https://o1.fengqingyang.ml/old/0b084a22cb39e7b59a2a91880eaafa1d.jpg", + "https://o1.fengqingyang.ml/old/d053e2f1ebb78425165b62e2e7d198e1.jpg", + "https://o1.fengqingyang.ml/old/85f9d0b3a996e9b89dd4131d9f65e784.jpg", + "https://o1.fengqingyang.ml/old/2e5a082bd8778dc4bc2c2ad7ad312af7.jpg", + "https://o1.fengqingyang.ml/old/c251a64d65fd40d99cca64dad5143b3e.jpg", + "https://o1.fengqingyang.ml/old/0273294773c78f15b447695aec4ac007.jpg", + "https://o1.fengqingyang.ml/old/936fcbfe4569922a13e5a03f45ff78a3.jpg", + "https://o1.fengqingyang.ml/old/fa00471dccc3a8f1444d5bef49b141e8.jpg", + "https://o1.fengqingyang.ml/old/659a41cc94f86e506bafad9ec53a3d50.jpg", + "https://o1.fengqingyang.ml/old/d8bb7ae102faaeebf1f6db6e4463ce03.jpg", + "https://o1.fengqingyang.ml/old/aa368500df5c332cefbf11fcf7e38bd5.jpg", + "https://o1.fengqingyang.ml/old/dd27b4e18f8d3d790c07d316c9165a29.jpg", + "https://o1.fengqingyang.ml/old/635dcdcc56d728ebb42d4e4da9982ec7.jpg", + "https://o1.fengqingyang.ml/old/24cca49a91bb9e4e818a4b95f7a7ce9c.jpg", + "https://o1.fengqingyang.ml/old/b8e545cc9c4b72dec466e36770298c67.jpg", + "https://o1.fengqingyang.ml/old/2dc858dde5b1a66a177701642c6671be.jpg", + "https://o1.fengqingyang.ml/old/d92b287effecc1bca9ed0c6125b70dbc.jpg", + "https://o1.fengqingyang.ml/old/e57f58c6afd8903d3e7e8b5b6f3c7fc0.jpg", + "https://o1.fengqingyang.ml/old/7fb8f9560e510d2f53a84f4b059a9497.jpg", + "https://o1.fengqingyang.ml/old/53c22b99c64ce1524e448585f12a5c9b.jpg", + "https://o1.fengqingyang.ml/old/8668ce0bf7c4e3275b31114af0285313.jpg", + "https://o1.fengqingyang.ml/old/cdd46f0972ce1b655d491749c8dbc075.jpg", + "https://o1.fengqingyang.ml/old/f8c6c8f1c4bb46e8430617074827f3d5.jpg", + "https://o1.fengqingyang.ml/old/c7f46919c8f8fffbe014277ccf103d28.jpg", + "https://o1.fengqingyang.ml/old/e553b44aa71e6dd30d091b6ffa33deb7.jpg", + "https://o1.fengqingyang.ml/old/80663912dde69a1eb69111e841178979.jpg", + "https://o1.fengqingyang.ml/old/7e4116e6dde99e77d7a0ee6c9e4a29bc.jpg", + "https://o1.fengqingyang.ml/old/bbcefd93b4f64df31d296a3cf55d37c9.jpg", + "https://o1.fengqingyang.ml/old/74473a0769eea20b549c6b9eee29277e.jpg", + "https://o1.fengqingyang.ml/old/c8f5386bc999caa7780a2bd3f0c6ae51.jpg", + "https://o1.fengqingyang.ml/old/dd0270f4c8393c50c947a4dca71ed040.jpg", + "https://o1.fengqingyang.ml/old/88afb8b18e33509794212fc9ca9c1e76.jpg", + "https://o1.fengqingyang.ml/old/483260c39709a4278c28bcf96077439e.jpg", + "https://o1.fengqingyang.ml/old/6e2b833753f2e9b0ec3ba18bfe406782.jpg", + "https://o1.fengqingyang.ml/old/b34fc76fc7ecb90cd48a24399c74438d.jpg", + "https://o1.fengqingyang.ml/old/09b8c3daccc5cdef9656cacf4695847c.jpg", + "https://o1.fengqingyang.ml/old/9e00d4eb30e28f7701e1c83fbd03ec31.jpg", + "https://o1.fengqingyang.ml/old/829c3e556b50af3a636745a044ada40e.jpg", + "https://o1.fengqingyang.ml/old/f04898dfaca2c7c651e6ad5b31e410ec.jpg", + "https://o1.fengqingyang.ml/old/dcdf71aa1621bb3b521548697354c267.jpg", + "https://o1.fengqingyang.ml/old/9a5913e849cacfcadced65c9a4b8cc47.jpg", + "https://o1.fengqingyang.ml/old/499d5bc1a3e0536a00fdb135f10e3e6e.jpg", + "https://o1.fengqingyang.ml/old/43ae19ff7814dcdf7fcbd6b43f79a4f8.jpg", + "https://o1.fengqingyang.ml/old/21ffbc6cb1f1ebcbdc00c1f934ef36d4.jpg", + "https://o1.fengqingyang.ml/old/f8f3bfa769ef5103c4dec631ccceea32.jpg", + "https://o1.fengqingyang.ml/old/5ff4fa7aa2008e0b330892125cdc5656.jpg", + "https://o1.fengqingyang.ml/old/7fd47ba67306e4974e2ba42bec9a3c51.jpg", + "https://o1.fengqingyang.ml/old/6992da987ee2ef0fd0ef95a98de3fdd6.jpg", + "https://o1.fengqingyang.ml/old/931ab1540e37e3b185f7735eb976cd18.jpg", + "https://o1.fengqingyang.ml/old/20f44cac05078a532246a2f669bc10e3.jpg", + "https://o1.fengqingyang.ml/old/e3147cd9a9b850e02338082eb4792d7b.jpg", + "https://o1.fengqingyang.ml/old/8284202323783485d81fd152a7929e2f.jpg", + "https://o1.fengqingyang.ml/old/ceab12bdbb556fb2388073a1a9bd3a54.jpg", + "https://o1.fengqingyang.ml/old/b808f5266e69246fb4ef1a3581cc32d6.jpg", + "https://o1.fengqingyang.ml/old/91d7fbb4ff7a17dadce6ef18e57826c1.jpg", + "https://o1.fengqingyang.ml/old/d8408ec94a6d15a2c2c6ce87b8477850.jpg", + "https://o1.fengqingyang.ml/old/35709a8d48faa8d7ab02192815e0b81c.jpg", + "https://o1.fengqingyang.ml/old/5d6de22a4fb3ce575c39f011bbb36a1d.jpg", + "https://o1.fengqingyang.ml/old/7e4bb56f9540c8c57f5897350ea42311.jpg", + "https://o1.fengqingyang.ml/old/fc625d3dff030aae61a3597cccbf2a9d.jpg", + "https://o1.fengqingyang.ml/old/1c2d77b503d2ad3c60be1700fbc8c6fc.jpg", + "https://o1.fengqingyang.ml/old/b5927ab9c1678dddd81c78c94cd65697.jpg", + "https://o1.fengqingyang.ml/old/3c33556122b96d440f5d25703bc35685.jpg", + "https://o1.fengqingyang.ml/old/3b47dca58e5f5308eaaeb24a487a6f3f.jpg", + "https://o1.fengqingyang.ml/old/8dce4691b26203064548cc57b97c0ade.jpg", + "https://o1.fengqingyang.ml/old/13e395f63835d1d4afe72c95f7b0beb2.jpg", + "https://o1.fengqingyang.ml/old/e5b35d1cef550d0cecb436242e187c24.jpg", + "https://o1.fengqingyang.ml/old/3bed7c4ad1638a4e03c92be8ffbdab90.jpg", + "https://o1.fengqingyang.ml/old/daf7ed907c712c2540a8e2c04d4c0b64.jpg", + "https://o1.fengqingyang.ml/old/fcabc14d31980ab0f67e99173acbddcc.jpg", + "https://o1.fengqingyang.ml/old/ae5f795f881af041a76392b7f6a15f22.jpg", + "https://o1.fengqingyang.ml/old/5b6117c22371d7dfeb39cd51f65f0814.jpg", + "https://o1.fengqingyang.ml/old/dc232bf51758457ee047402a96fd27ba.jpg", + "https://o1.fengqingyang.ml/old/32b9ecbea880fa59cb7fa4e8e2b9e571.jpg", + "https://o1.fengqingyang.ml/old/67c3fccbefdd5b08243c2f506b281d97.jpg", + "https://o1.fengqingyang.ml/old/e1d7bc55ed45e0771fb7551fa711908b.jpg", + "https://o1.fengqingyang.ml/old/1bf07619cc7056486d2e46e662c9798e.jpg", + "https://o1.fengqingyang.ml/old/cdbf8d71188498021d42394fc0ce0429.jpg", + "https://o1.fengqingyang.ml/old/293b88dced04157dbf66130f25ae964e.jpg", + "https://o1.fengqingyang.ml/old/2802122a6dcfc9457e454b532b5bd4d1.jpg", + "https://o1.fengqingyang.ml/old/56a95e4eddcd6306c3fa49f57fe9d54f.jpg", + "https://o1.fengqingyang.ml/old/e427992d2b97cf164f97db1db0142ba2.jpg", + "https://o1.fengqingyang.ml/old/5e1edd84f16439c6e1aeb28ae902e197.jpg", + "https://o1.fengqingyang.ml/old/779a0cbd63ccb91c49b63c16575ad872.jpg", + "https://o1.fengqingyang.ml/old/c7a60be6d5dffa703f65a575765b47d7.jpg", + "https://o1.fengqingyang.ml/old/a8421e2c8fad78def9a3572621fba111.jpg", + "https://o1.fengqingyang.ml/old/891ea8203fe0a106089c26094f419e8b.jpg", + "https://o1.fengqingyang.ml/old/6b46c4741a3fc541bc5c32ab20a2ba8e.jpg", + "https://o1.fengqingyang.ml/old/c961dcc0eb63759f2923a2c0336ee756.jpg", + "https://o1.fengqingyang.ml/old/3e8eeaefab4e548c402b504596ace93a.jpg", + "https://o1.fengqingyang.ml/old/21e740e5226ec891031de2edb1a0233c.jpg", + "https://o1.fengqingyang.ml/old/b814bac4ea181562619926ee1b0e32c8.jpg", + "https://o1.fengqingyang.ml/old/9c0c0f13209a24be01da94d4932d83c1.jpg", + "https://o1.fengqingyang.ml/old/c83d925bc165f27475c5bc3a7350a07b.jpg", + "https://o1.fengqingyang.ml/old/84c128eb8a9ba7c97e6895fba32c3815.jpg", + "https://o1.fengqingyang.ml/old/74fa59c2b0a4f2eea78ef6df68248535.jpg", + "https://o1.fengqingyang.ml/old/e86608ee8e2bdd2ffff7c34b77ac4d6a.jpg", + "https://o1.fengqingyang.ml/old/d86a08a2be65dd421ed71ff99e4d5e92.jpg", + "https://o1.fengqingyang.ml/old/1652e9461cf7a06deb77fc5fa7113124.jpg", + "https://o1.fengqingyang.ml/old/933b89685c31678392d052b93a9018e3.jpg", + "https://o1.fengqingyang.ml/old/d9cd45aa0efdd8a1385d8c0328fe0683.jpg", + "https://o1.fengqingyang.ml/old/0c8de216a12c73a2ce2f7b60d3805ad4.jpg", + "https://o1.fengqingyang.ml/old/be8497fb0ba3bd3847caf98651dfa218.jpg", + "https://o1.fengqingyang.ml/old/ff8a508ca8a72816321ed9a031faa112.jpg", + "https://o1.fengqingyang.ml/old/63bf76bd6a5e22b9e74cc325a642bc90.jpg", + "https://o1.fengqingyang.ml/old/eb5b9daac1c2f992215c703bad737ac8.jpg", + "https://o1.fengqingyang.ml/old/943480a67fdca486fd6568eb3c0166c8.jpg", + "https://o1.fengqingyang.ml/old/2122239f44c60e9e8714ec0e7a8884f7.jpg", + "https://o1.fengqingyang.ml/old/990bad728d9f7e2c9827fa15f9fb7b85.jpg", + "https://o1.fengqingyang.ml/old/9b54073785c4d75194679e4b34405eb2.jpg", + "https://o1.fengqingyang.ml/old/a20e698eb1a7ad9a6135f529e1139de2.jpg", + "https://o1.fengqingyang.ml/old/2a50317284fec82aea880c2f96f71de1.jpg", + "https://o1.fengqingyang.ml/old/a43c85d8ebddf0473d60d8e97e123188.jpg", + "https://o1.fengqingyang.ml/old/eee03a9b3b091e54018d6d4fd9815b2f.jpg", + "https://o1.fengqingyang.ml/old/ebff9c3c80aa0a488895d7efdcf3056a.jpg", + "https://o1.fengqingyang.ml/old/ed887e3d0b28f46df28e9548a4c01497.jpg", + "https://o1.fengqingyang.ml/old/9f045f430d25a750d71b855705bffbe2.jpg", + "https://o1.fengqingyang.ml/old/9920d4712a199991dfa3082abcc6426f.jpg", + "https://o1.fengqingyang.ml/old/5a267cca9f12a792ada6b7612288125f.jpg", + "https://o1.fengqingyang.ml/old/4971d678f0940727d0b9e9bd5d946447.jpg", + "https://o1.fengqingyang.ml/old/cbd1627febdc3ecba7bea069b302c89d.jpg", + "https://o1.fengqingyang.ml/old/3611af12df6963bfa7b6c2be118fd3b1.jpg", + "https://o1.fengqingyang.ml/old/c108a0a18aa912cf04a93fea58d9418c.jpg", + "https://o1.fengqingyang.ml/old/7996586d156dd0938ba4103e4a7bbf77.jpg", + "https://o1.fengqingyang.ml/old/c7f2d7fdcadbaf7d1757c576a26b7d64.jpg", + "https://o1.fengqingyang.ml/old/9b69f1481e96faca22b9a5934e42dbb0.jpg", + "https://o1.fengqingyang.ml/old/4dba76932324ef43022d8de2bf66d6ab.jpg", + "https://o1.fengqingyang.ml/old/11ff8f2797a432f9ab8d94cf76e4eb8f.jpg", + "https://o1.fengqingyang.ml/old/600e7a0174906f6058e2f37aaf6c2063.jpg", + "https://o1.fengqingyang.ml/old/55069a1d7fecb7eb54ba620d89dd9c12.jpg", + "https://o1.fengqingyang.ml/old/5789a78ef38994836a20e4641f635d8f.jpg", + "https://o1.fengqingyang.ml/old/32a076b705010e958141ed2ab65e1702.jpg", + "https://o1.fengqingyang.ml/old/e18066e6eb59409ac5ed59fd7d9670bc.jpg", + "https://o1.fengqingyang.ml/old/e8984b9b9bd2c5c51c82a78335d4ef7a.jpg", + "https://o1.fengqingyang.ml/old/a14046aaf42a43ad8f06e0759c9f1845.jpg", + "https://o1.fengqingyang.ml/old/9eec916fbfea06ca4fb6dacbfd088664.jpg", + "https://o1.fengqingyang.ml/old/53ede87f923f3e3001c6467a1be29b59.jpg", + "https://o1.fengqingyang.ml/old/87b631fa4b6df8b2de2d294fa449da49.jpg", + "https://o1.fengqingyang.ml/old/06480e8a41c88048a613b5ef91abdd9f.jpg", + "https://o1.fengqingyang.ml/old/fe6df9514a51d7807a217afcb9106c1d.jpg", + "https://o1.fengqingyang.ml/old/5b62070402599fc450b73e1de80f6a1e.jpg", + "https://o1.fengqingyang.ml/old/5018b73bb9f6aeff879f1f8fbb761564.jpg", + "https://o1.fengqingyang.ml/old/0edc2bacaa213c58fbd3ff8091b2198e.jpg", + "https://o1.fengqingyang.ml/old/443a2f88bbb5101b0948cf4149cafa91.jpg", + "https://o1.fengqingyang.ml/old/36b43debdf1e8819d4cc6bf38c9e2097.jpg", + "https://o1.fengqingyang.ml/old/a4a654afa7e3f763c8c7e860ad9a33f1.jpg", + "https://o1.fengqingyang.ml/old/9c22dee6a7642a859ddd9900c4a98943.jpg", + "https://o1.fengqingyang.ml/old/21691f2e31fa8e8888911d9f5af43b11.jpg", + "https://o1.fengqingyang.ml/old/4ae1814d90d376a131bbc7329309ea62.jpg", + "https://o1.fengqingyang.ml/old/4e1850d2a8cac74598dfde5c48a6c503.jpg", + "https://o1.fengqingyang.ml/old/56280e4a8a6f593a07371701eeb5ebe3.jpg", + "https://o1.fengqingyang.ml/old/6c55584ab70da97888db25d3e46c1c09.jpg", + "https://o1.fengqingyang.ml/old/d1b31118bfebeee00222c22316ec52cd.jpg", + "https://o1.fengqingyang.ml/old/66d6de233d1e71ac91ec6567448ba32d.jpg", + "https://o1.fengqingyang.ml/old/1f42e15ab3521450660d3c2012295436.jpg", + "https://o1.fengqingyang.ml/old/e2214c08966e2751b10aba95897e07b1.jpg", + "https://o1.fengqingyang.ml/old/e52aaeb4a7989d6851f199d430a162b8.jpg", + "https://o1.fengqingyang.ml/old/08898cdae0c0555e98959b2a9281a3ed.jpg", + "https://o1.fengqingyang.ml/old/cd11173b3553138d0a2b910364c15390.jpg", + "https://o1.fengqingyang.ml/old/1a2af80a4c9480fdc710c1d3a0633d0b.jpg", + "https://o1.fengqingyang.ml/old/ccf9f2b47e3645f66abd1a963bef1c80.jpg", + "https://o1.fengqingyang.ml/old/59974418119f2376076e3f3666af282b.jpg", + "https://o1.fengqingyang.ml/old/8cd03ae3e1cbd8188674eac4e228200a.jpg", + "https://o1.fengqingyang.ml/old/b20a6e8b0681c734e823f0bdc4cb6bda.jpg", + "https://o1.fengqingyang.ml/old/6d0de7f42b77bf77ea71b0ecd4b96373.jpg", + "https://o1.fengqingyang.ml/old/733bf65d7a53e7dd0242730f74370e61.jpg", + "https://o1.fengqingyang.ml/old/5213eb55695d34aa7ef9a308d7c7441f.jpg", + "https://o1.fengqingyang.ml/old/f4682b04aefb53c464a9ed73c408019c.jpg", + "https://o1.fengqingyang.ml/old/b38bfd19a0edca94c59894f49570269d.jpg", + "https://o1.fengqingyang.ml/old/19ae94f8c4add74e67199fab381aac84.jpg", + "https://o1.fengqingyang.ml/old/d60102abaf65a89ba10d0e44460337cd.jpg", + "https://o1.fengqingyang.ml/old/a9413664b6ce839e2559582759800f4b.jpg", + "https://o1.fengqingyang.ml/old/d0b49f09414dfcfcb7159868bb5cf64b.jpg", + "https://o1.fengqingyang.ml/old/0c98a04fd2c5eebd5fa3c234544090c6.jpg", + "https://o1.fengqingyang.ml/old/7796dfdb542f70bc48c991eb2dfb3846.jpg", + "https://o1.fengqingyang.ml/old/582c879b49e145f1b785307c4f687981.jpg", + "https://o1.fengqingyang.ml/old/9b9f4c3b6b1c2e5e6cb165df051aa2d1.jpg", + "https://o1.fengqingyang.ml/old/d637d8d8f99cb0c51b17e58a486484d7.jpg", + "https://o1.fengqingyang.ml/old/1a270fe063ead5e1bc4bcc750b455920.jpg", + "https://o1.fengqingyang.ml/old/9fb4c9229397a417a5bf460fed7a98cc.jpg", + "https://o1.fengqingyang.ml/old/f6d26935d7f181e2713a3b1c9a2e4443.jpg", + "https://o1.fengqingyang.ml/old/2e40d1371fcc14fa8a66f83549cc66e6.jpg", + "https://o1.fengqingyang.ml/old/a732feaac7548ec9829aa1bc76e22efa.jpg", + "https://o1.fengqingyang.ml/old/5d8a194011e34387d5372d60d80d92f3.jpg", + "https://o1.fengqingyang.ml/old/872236655b1c6d70ded137ad69262343.jpg", + "https://o1.fengqingyang.ml/old/be57604debf1a81ffc07ed91cd378c22.jpg", + "https://o1.fengqingyang.ml/old/7cf53b50793acae8b26d87a6cefeafb0.jpg", + "https://o1.fengqingyang.ml/old/6970194849f67d926dc0a09239b816cc.jpg", + "https://o1.fengqingyang.ml/old/b86b1524ab9826482b0dfc3f1da002a0.jpg", + "https://o1.fengqingyang.ml/old/b96ad22d5aba02cd3ed435aad6b44a9e.jpg", + "https://o1.fengqingyang.ml/old/5b75c5db2d479452d699537fa4422056.jpg", + "https://o1.fengqingyang.ml/old/3ab409ecb18a5668c6c057723e24027c.jpg", + "https://o1.fengqingyang.ml/old/d0df958558db49ccc286f611f6502dc0.jpg", + "https://o1.fengqingyang.ml/old/5313aee86a5aa0812e356268d0dfe894.jpg", + "https://o1.fengqingyang.ml/old/770a0c498507a0139a1a10c0c3ee3360.jpg", + "https://o1.fengqingyang.ml/old/a31ffdfe6238eabc372f4cecf4fd086f.jpg", + "https://o1.fengqingyang.ml/old/983adefb03cc0bf356f10cc7d2843776.jpg", + "https://o1.fengqingyang.ml/old/f4b5a271d04b2d1f45cc403e10fb2e35.jpg", + "https://o1.fengqingyang.ml/old/b37bfffaa433db04ef6a5dab9e2cb9ca.jpg", + "https://o1.fengqingyang.ml/old/a153d2567f79e8130367fca1374d9eb4.jpg", + "https://o1.fengqingyang.ml/old/0aaa8d8e218cd7e6cf3caa240346e72a.jpg", + "https://o1.fengqingyang.ml/old/f4915217f20c282d2f57fc2138667de2.jpg", + "https://o1.fengqingyang.ml/old/439f13c65ec3ba6768c6ca539a737ccb.jpg", + "https://o1.fengqingyang.ml/old/3dc042b09ef635792c8f2a4c0d84abe4.jpg", + "https://o1.fengqingyang.ml/old/c0f00c082cd4349dc08fc75289913bfa.jpg", + "https://o1.fengqingyang.ml/old/97653fce97005fba4700c2448d3094ce.jpg", + "https://o1.fengqingyang.ml/old/26f530c1a842e1e61349f5dc9a6de6d7.jpg", + "https://o1.fengqingyang.ml/old/e8aaac9d4d347cc172318ff88a1e3253.jpg", + "https://o1.fengqingyang.ml/old/471914cd851bba7e31f7e41aee2f2900.jpg", + "https://o1.fengqingyang.ml/old/7858d81b681276170788f4ab1a80a8b0.jpg", + "https://o1.fengqingyang.ml/old/a2f923a9edd1aeebcc17aff1cbf7b953.jpg", + "https://o1.fengqingyang.ml/old/9ab61ce829d689176a54565973947e8c.jpg", + "https://o1.fengqingyang.ml/old/638811ce4bc336449c9a50f4414ec48f.jpg", + "https://o1.fengqingyang.ml/old/5fb50d6e321d614262be87f34de18124.jpg", + "https://o1.fengqingyang.ml/old/9248c8dd9479fb27bfceef055afba5aa.jpg", + "https://o1.fengqingyang.ml/old/7ebe990bd6d9ec47f3f0ab6548c7163c.jpg", + "https://o1.fengqingyang.ml/old/5f787ca955f50cef31efe20c2c08df39.jpg", + "https://o1.fengqingyang.ml/old/6b615a6bd5882e21b6db991409a96b91.jpg", + "https://o1.fengqingyang.ml/old/b27a5ae357b8646a09f10bd30bf4969e.jpg", + "https://o1.fengqingyang.ml/old/a10cdac5194a860611c4e6e22584adc4.jpg", + "https://o1.fengqingyang.ml/old/e2c0f923a770e03b2a9f338db32dbc8d.jpg", + "https://o1.fengqingyang.ml/old/581ab5f8617a7d0203a1d8aa8e16eadd.jpg", + "https://o1.fengqingyang.ml/old/fa427f554364db03807ed7f3de9d570e.jpg", + "https://o1.fengqingyang.ml/old/6a06cd5d80b15087e2f1e8dd6c10c491.jpg", + "https://o1.fengqingyang.ml/old/9246d226f7b9c4fb280f417463bf54ae.jpg", + "https://o1.fengqingyang.ml/old/6ade8b4d809386166fe409b4fa087011.jpg", + "https://o1.fengqingyang.ml/old/9f8d46ea670009af6599915d8d42abb3.jpg", + "https://o1.fengqingyang.ml/old/79c655357a874ded45b3444ca7a3c911.jpg", + "https://o1.fengqingyang.ml/old/3df75a82c622e1dee223800047fd4202.jpg", + "https://o1.fengqingyang.ml/old/8978f8e1c7e135927b5a1ef5168f469c.jpg", + "https://o1.fengqingyang.ml/old/83cd32f62428344203f37737b6b2e991.jpg", + "https://o1.fengqingyang.ml/old/9a93f0f0afda27bfa265b988fddf3abf.jpg", + "https://o1.fengqingyang.ml/old/0b26dae4461e81efd5239f2f610c3799.jpg", + "https://o1.fengqingyang.ml/old/1c395fde6dc24235a70c5cbfb565be29.jpg", + "https://o1.fengqingyang.ml/old/9c8d1284fc9d3f00c085d0f181ecb53b.jpg", + "https://o1.fengqingyang.ml/old/bd3dd252508a82abc7b4e4458a71c345.jpg", + "https://o1.fengqingyang.ml/old/b23b13b2445da9faf655feb98b6aa00a.jpg", + "https://o1.fengqingyang.ml/old/95d95a7256f27fb31678754023e72d29.jpg", + "https://o1.fengqingyang.ml/old/d612658afa59a21998cde229ced91a42.jpg", + "https://o1.fengqingyang.ml/old/7f83a02a8d8a5808ed7ee6503e31a84a.jpg", + "https://o1.fengqingyang.ml/old/6536164392778cedc1de955ffe2341ec.jpg", + "https://o1.fengqingyang.ml/old/b9f232f1e0e6a40823c1b4c7da7a267a.jpg", + "https://o1.fengqingyang.ml/old/fc2943eb2bbdba387ba1d5593d0d7fae.jpg", + "https://o1.fengqingyang.ml/old/c1eb4f9facfbe5534f85a8ac4906c235.jpg", + "https://o1.fengqingyang.ml/old/0d21b3d3d5f8706e6513d5e340b7f18c.jpg", + "https://o1.fengqingyang.ml/old/37a48812dd2a334f1c1642088558047d.jpg", + "https://o1.fengqingyang.ml/old/e731dce9ba588dfbc1288fd7331d1ec4.jpg", + "https://o1.fengqingyang.ml/old/b6f30dc33ee87e837b9b9f4616bf7f75.jpg", + "https://o1.fengqingyang.ml/old/3263a3db01bee9ba00daeefb4acb7fe1.jpg", + "https://o1.fengqingyang.ml/old/b2deeab6e80688e8903cb4405faa554e.jpg", + "https://o1.fengqingyang.ml/old/d345f7c73b20bf9c70d912730d739623.jpg", + "https://o1.fengqingyang.ml/old/d1b53848b55fcb2a74a7cdb713dac99b.jpg", + "https://o1.fengqingyang.ml/old/8229e1e0b791b455a0f725cf1e085d63.jpg", + "https://o1.fengqingyang.ml/old/cd505738497d6ad0c203d89b57addbe6.jpg", + "https://o1.fengqingyang.ml/old/3a9f6f09d80d88e20a0060d7114f65e0.jpg", + "https://o1.fengqingyang.ml/old/b5583c9b27cf45a53b5a24b164aaba04.jpg", + "https://o1.fengqingyang.ml/old/bb20da6b73d98b3b2a9998350f08ff5e.jpg", + "https://o1.fengqingyang.ml/old/1feda18c5a56c05af84590f80dba1859.jpg", + "https://o1.fengqingyang.ml/old/b662e61064533935c8e59c20c27625fa.jpg", + "https://o1.fengqingyang.ml/old/ab4e90c2e329ed7c3c905c4e346f8ea5.jpg", + "https://o1.fengqingyang.ml/old/452f9a1bd545d112e820e546da407986.jpg", + "https://o1.fengqingyang.ml/old/a86da474a3499333365c6c55b67de031.jpg", + "https://o1.fengqingyang.ml/old/7439fe69da33bfbeb5f5abf0c5b8945d.jpg", + "https://o1.fengqingyang.ml/old/c6b8815fb4794a8fed22592dcb334998.jpg", + "https://o1.fengqingyang.ml/old/3475eca0f71bc47273ca30ea23d8c8d1.jpg", + "https://o1.fengqingyang.ml/old/66ccb46453ffbe9ade536520d9e5803d.jpg", + "https://o1.fengqingyang.ml/old/1a84fab16a5ddfbb48161d5ff5c6a426.jpg", + "https://o1.fengqingyang.ml/old/472bc0ea7d455e9437e26b2c0ea27274.jpg", + "https://o1.fengqingyang.ml/old/99d1442311277e89533b41f3b8cf5f6b.jpg", + "https://o1.fengqingyang.ml/old/08b42e7503c86dce67ce62d2365296f0.jpg", + "https://o1.fengqingyang.ml/old/c2775f8317b889b2d176bc9349aa5ed7.jpg", + "https://o1.fengqingyang.ml/old/2e1937b8e23aa651e9111178dc3f6a91.jpg", + "https://o1.fengqingyang.ml/old/96bf4b3c6850d678ba984d0d3ba52c4f.jpg", + "https://o1.fengqingyang.ml/old/7c4695d8fef7b22133e6e67f99370775.jpg", + "https://o1.fengqingyang.ml/old/44ebfdfb29d48dffce1f1bc407f4d757.jpg", + "https://o1.fengqingyang.ml/old/0b976d4a25e2c4e5e15cfc10c466c384.jpg", + "https://o1.fengqingyang.ml/old/7e0b77edf4ca6946b83fd95dd5c9a9c0.jpg", + "https://o1.fengqingyang.ml/old/74cc78d322856a33112f602723f74ce8.jpg", + "https://o1.fengqingyang.ml/old/a6f5f42785a9b20e23b3edf91511c865.jpg", + "https://o1.fengqingyang.ml/old/e46d3745558151a20cf2f87aa05c8a9b.jpg", + "https://o1.fengqingyang.ml/old/0501ff348f8822b70705227f78156a99.jpg", + "https://o1.fengqingyang.ml/old/225818778f2a2ed38cb0b76217ca2289.jpg", + "https://o1.fengqingyang.ml/old/8a15ec612544b92a3bdff12f76674fbf.jpg", + "https://o1.fengqingyang.ml/old/bdf1a0072b50392f169ed13db85bcc39.jpg", + "https://o1.fengqingyang.ml/old/2372d45d3e0688e315ed86e67f1ebea8.jpg", + "https://o1.fengqingyang.ml/old/01558dab24b6aaff78bdbc0ac484b895.jpg", + "https://o1.fengqingyang.ml/old/3fff796751a46014bcbe6b29d265e029.jpg", + "https://o1.fengqingyang.ml/old/cecd29eb8a5186fd784c95ee6255249f.jpg", + "https://o1.fengqingyang.ml/old/2c6866e2efb9a9891a27369599a39aea.jpg", + "https://o1.fengqingyang.ml/old/188a52e58f92395543ba4626a0581350.jpg", + "https://o1.fengqingyang.ml/old/b1d9c0234bdab4fa090789ab59fc7d61.jpg", + "https://o1.fengqingyang.ml/old/7393a04e8afdda0d0a10a2cc47626ad6.jpg", + "https://o1.fengqingyang.ml/old/8b14f7e3a54187b8503e3143ab3b38a1.jpg", + "https://o1.fengqingyang.ml/old/2861d6417e1fb064ccc339f19f423b47.jpg", + "https://o1.fengqingyang.ml/old/2efd6ebe66991c6f26b4b58eb1d986f4.jpg", + "https://o1.fengqingyang.ml/old/2ede35f1fe928c7fb6557e1ab998fe5d.jpg", + "https://o1.fengqingyang.ml/old/49c62f3fb558d4a9478be53056a2de25.jpg", + "https://o1.fengqingyang.ml/old/2a5e955ea646481368409501fa41f726.jpg", + "https://o1.fengqingyang.ml/old/41c80e23275db3c85df213eccc8c4f0d.jpg", + "https://o1.fengqingyang.ml/old/b05ab4c0dc731e4ddfa895e400ff9bdc.jpg", + "https://o1.fengqingyang.ml/old/2babf4afbc4ea74de6833f1f47830e8d.jpg", + "https://o1.fengqingyang.ml/old/4927abfbf5bc76214926d6005ae90bbc.jpg", + "https://o1.fengqingyang.ml/old/5bd6d65c6cedfdb78a622acb9754e57e.jpg", + "https://o1.fengqingyang.ml/old/d7028d1ae18f002725181aae239fb0bf.jpg", + "https://o1.fengqingyang.ml/old/9f88ba635a78b44b98953d337297d87b.jpg", + "https://o1.fengqingyang.ml/old/db950ce750779629aa6904dd56ed33f2.jpg", + "https://o1.fengqingyang.ml/old/e7611851de58883642de3c05dabb196c.jpg", + "https://o1.fengqingyang.ml/old/2b91c6825e075efdd808abc2a9bf85f7.jpg", + "https://o1.fengqingyang.ml/old/97cd242005ed5dae3f461f74a4c1c111.jpg", + "https://o1.fengqingyang.ml/old/c0116e0768f729d0d42fceab62e00a6d.jpg", + "https://o1.fengqingyang.ml/old/b27e15d870ed2e8bff1623e41d8f7c40.jpg", + "https://o1.fengqingyang.ml/old/bc2b8728405debc93864631f2c9be6b8.jpg", + "https://o1.fengqingyang.ml/old/2289188037759c53f5e1738ca85ef135.jpg", + "https://o1.fengqingyang.ml/old/e15f16b523cd169e8e728412a8df0fae.jpg", + "https://o1.fengqingyang.ml/old/de5ec8b6509210bb1540b890a859282f.jpg", + "https://o1.fengqingyang.ml/old/d6a656d03c8764a76b84e63fc56973ce.jpg", + "https://o1.fengqingyang.ml/old/5b6e5f747b958571c7f92c44fcc14f41.jpg", + "https://o1.fengqingyang.ml/old/50dbd4cc810512b972f3cda54a1a5b9b.jpg", + "https://o1.fengqingyang.ml/old/1c3095155647bde48b9da399c7f06404.jpg", + "https://o1.fengqingyang.ml/old/df10c158f4abeeba6c20e394809ffd31.jpg", + "https://o1.fengqingyang.ml/old/495337957fe65137adc0f296b64070a6.jpg", + "https://o1.fengqingyang.ml/old/eab8b0db676fd8417f3aaeed15cc379b.jpg", + "https://o1.fengqingyang.ml/old/a380e628d5755a47625e9108647b8051.jpg", + "https://o1.fengqingyang.ml/old/40e983395d1a61213a357c27cfd3c164.jpg", + "https://o1.fengqingyang.ml/old/50bfd40573246d820664c4fc1896ad64.jpg", + "https://o1.fengqingyang.ml/old/2557bc0e0daf7b6a7d6f9364dcca2a43.jpg", + "https://o1.fengqingyang.ml/old/426893aca6e0810907d1564bbea06383.jpg", + "https://o1.fengqingyang.ml/old/493042facbfc9e2e4752578fad0a713c.jpg", + "https://o1.fengqingyang.ml/old/d0142a7f5299eb9402a5a40888648ef2.jpg", + "https://o1.fengqingyang.ml/old/f7faab51616c4241c5d42234947aa9bf.jpg", + "https://o1.fengqingyang.ml/old/8b546346416b4e2cf32b51b794d507fe.jpg", + "https://o1.fengqingyang.ml/old/f6d6942e35b2a6a93f92a33a2fd14f90.jpg", + "https://o1.fengqingyang.ml/old/35ffa20f3b8fac16e0c7bad104303526.jpg", + "https://o1.fengqingyang.ml/old/0c3abe5d65b9781e695bb1f7c98d1b58.jpg", + "https://o1.fengqingyang.ml/old/383dc7c6b7b06befa7dda661cc09aff2.jpg", + "https://o1.fengqingyang.ml/old/a7efddcd9f02e6462be9fe983f882264.jpg", + "https://o1.fengqingyang.ml/old/127ba717d5c64a7affcda43729fee442.jpg", + "https://o1.fengqingyang.ml/old/17ca6fa31ab10868ce96ef677287dc25.jpg", + "https://o1.fengqingyang.ml/old/f79ec23db1889072f74b526f166ed97a.jpg", + "https://o1.fengqingyang.ml/old/7797ff1bd035d29eaa701bee40a0d87e.jpg", + "https://o1.fengqingyang.ml/old/f787c8189bed89658cc85f68092ee8d2.jpg", + "https://o1.fengqingyang.ml/old/ff656de0fa792ac6b53d672e072d57a8.jpg", + "https://o1.fengqingyang.ml/old/24739fddec3b4d2d73bc61b9e08c82d7.jpg", + "https://o1.fengqingyang.ml/old/10744e276eb7d166f44a71cb6c0e48a6.jpg", + "https://o1.fengqingyang.ml/old/34f54b023b3f953c0136a713f17f581e.jpg", + "https://o1.fengqingyang.ml/old/89fc1eacb8ab7947860725ed4b9db5f1.jpg", + "https://o1.fengqingyang.ml/old/380d578396af6ad2041f1faf0cb90016.jpg", + "https://o1.fengqingyang.ml/old/4c354690846ced60ff22c64cf179a118.jpg", + "https://o1.fengqingyang.ml/old/f5ef268114d87af7051f00adb7d98cc2.jpg", + "https://o1.fengqingyang.ml/old/e41bc29f04821bdf0c1ba283265cd4f5.jpg", + "https://o1.fengqingyang.ml/old/4c2a3c0e7f3daa0fd5f9f1aee784782c.jpg", + "https://o1.fengqingyang.ml/old/04fa360b6747bd93b8bdce2aef5b938c.jpg", + "https://o1.fengqingyang.ml/old/209842e6a16876d3a0e21b31a0de03d7.jpg", + "https://o1.fengqingyang.ml/old/3e8aed8d5f74f667676fe0844c994381.jpg", + "https://o1.fengqingyang.ml/old/62c014379d48a0de9916205e7d97fa08.jpg", + "https://o1.fengqingyang.ml/old/f699db5a390566fe0f1403b6b05b55cf.jpg", + "https://o1.fengqingyang.ml/old/4cd72adb5098fffeb4ebeb17f5e5e5c3.jpg", + "https://o1.fengqingyang.ml/old/64f5e3f0c20c4d49c94d85612ac04b7d.jpg", + "https://o1.fengqingyang.ml/old/07c80ea81d58bf21bdc7940cc9102acb.jpg", + "https://o1.fengqingyang.ml/old/12f83d8a53b043cf74ddf3446736dfe5.jpg", + "https://o1.fengqingyang.ml/old/31dcba6a960e4d130efd0cf5d42acbb0.jpg", + "https://o1.fengqingyang.ml/old/b1691c8d20273b6dc81e4a109dba0d60.jpg", + "https://o1.fengqingyang.ml/old/2be031dbf32d2b33aab8c2ec363e53ef.jpg", + "https://o1.fengqingyang.ml/old/3b694bdd271069572e923a43123873da.jpg", + "https://o1.fengqingyang.ml/old/00f219c6313690ff04536d1814f67fc7.jpg", + "https://o1.fengqingyang.ml/old/170d8ca7293a3d6b4dec2ccf12a98433.jpg", + "https://o1.fengqingyang.ml/old/5181ad74c9145956e9599468dd7c79a0.jpg", + "https://o1.fengqingyang.ml/old/727cf4984a9f5d80b4580fed1a687ce7.jpg", + "https://o1.fengqingyang.ml/old/39fa46baea75e4a0db1f07144d468717.jpg", + "https://o1.fengqingyang.ml/old/2f1e90e082ed2a8ddc33436a614f9769.jpg", + "https://o1.fengqingyang.ml/old/8fcc94683bf34648e14eaeb246ec2695.jpg", + "https://o1.fengqingyang.ml/old/dfdf65c9e27658e060cd87ce67f9c00b.jpg", + "https://o1.fengqingyang.ml/old/872052196f02e6f2eb0db2a5408b1272.jpg", + "https://o1.fengqingyang.ml/old/10aadec39da681a84fdd77297f6940f9.jpg", + "https://o1.fengqingyang.ml/old/61176a4a1265e131ba1ec6b6879c19ba.jpg", + "https://o1.fengqingyang.ml/old/b12b17b481b41bda3858ee5ef1f40e2b.jpg", + "https://o1.fengqingyang.ml/old/dc2a6dd88944ad58d1ce4b3f612755e1.jpg", + "https://o1.fengqingyang.ml/old/b88f324a7a73bf46812109a1e3ecbc12.jpg", + "https://o1.fengqingyang.ml/old/54390271f66b97c27c91c1d4e5a42d9c.jpg", + "https://o1.fengqingyang.ml/old/c17299bce029c069c1faf481982588fc.jpg", + "https://o1.fengqingyang.ml/old/bb10a658c73718a371cfb9b06a477b8c.jpg", + "https://o1.fengqingyang.ml/old/63e1a47d28f1cb590a9b7dc557659079.jpg", + "https://o1.fengqingyang.ml/old/19c56581da784775748636cc323ad638.jpg", + "https://o1.fengqingyang.ml/old/e38d448f23753545bfa7f756b3a6982e.jpg", + "https://o1.fengqingyang.ml/old/cfa7a1cc937d35e9157d20f7ddef32c0.jpg", + "https://o1.fengqingyang.ml/old/4c15c489c4bc0ffa50e4e6e2b635cf7f.jpg", + "https://o1.fengqingyang.ml/old/7d1670fd78ecf49c4820627832fd507c.jpg", + "https://o1.fengqingyang.ml/old/0f71cd5a3134be71e81a87f27b0b0575.jpg", + "https://o1.fengqingyang.ml/old/39a667ec149b9ca6eaed217e25516dc2.jpg", + "https://o1.fengqingyang.ml/old/090ef45fbe733a8be0fbef60b7e37029.jpg", + "https://o1.fengqingyang.ml/old/41e7e081bf48bf205b2a9a823dc41469.jpg", + "https://o1.fengqingyang.ml/old/7ecb89613cac4f5b1b278145af894d37.jpg", + "https://o1.fengqingyang.ml/old/c84005e23030ace5e66c8c3e53b40c17.jpg", + "https://o1.fengqingyang.ml/old/203e880890a61679d11176f21b046ca8.jpg", + "https://o1.fengqingyang.ml/old/f62de952e17a55b32f231f7a0edae450.jpg", + "https://o1.fengqingyang.ml/old/88eeacbb05fd2e715fbfa79b99703db1.jpg", + "https://o1.fengqingyang.ml/old/5446aad9ee878e8991e8ffb70f77df09.jpg", + "https://o1.fengqingyang.ml/old/c320baa9693cb8132bcaae409adb03ca.jpg", + "https://o1.fengqingyang.ml/old/7890519ba4d31932b1dfda4d86badf0f.jpg", + "https://o1.fengqingyang.ml/old/3c88dbab521bfcc2e9d62be2f339ad41.jpg", + "https://o1.fengqingyang.ml/old/635f6afa2e38e56855b30c7ef7d28314.jpg", + "https://o1.fengqingyang.ml/old/ff2afdfb6d5aa35193ced65b99451e80.jpg", + "https://o1.fengqingyang.ml/old/65535e292cae4172197456c7e9cf3663.jpg", + "https://o1.fengqingyang.ml/old/a981ac80cc3e40c0d7cf4b1ea16c3e03.jpg", + "https://o1.fengqingyang.ml/old/77f5d6da0e4776ddae70ad13d3028ce0.jpg", + "https://o1.fengqingyang.ml/old/eeb0114c5324417041327e0a6e7c9dd7.jpg", + "https://o1.fengqingyang.ml/old/1f929f7bdfb99dfa5236f45b31630b17.jpg", + "https://o1.fengqingyang.ml/old/4a9bddf53c71188ad475a413eb558cf6.jpg", + "https://o1.fengqingyang.ml/old/481a077c9cd7f64a4d4f05eff284cb8c.jpg", + "https://o1.fengqingyang.ml/old/dd53bb4e8491b00f1478ba6980be57c9.jpg", + "https://o1.fengqingyang.ml/old/78249de81e827f89ea2202bb86935a07.jpg", + "https://o1.fengqingyang.ml/old/5266cfc7021a41b8ea2e0b03cd682153.jpg", + "https://o1.fengqingyang.ml/old/97938f61ebe375e7b961d0c3f6056b09.jpg", + "https://o1.fengqingyang.ml/old/ebf897e92b48378214d44e9d8f0e5190.jpg", + "https://o1.fengqingyang.ml/old/39a582de94262881274ec0d61c333d58.jpg", + "https://o1.fengqingyang.ml/old/d247661a26055926cd76c1c2d898a931.jpg", + "https://o1.fengqingyang.ml/old/cd5c6109f722fe3e964ed2056e9420d7.jpg", + "https://o1.fengqingyang.ml/old/51f1c8d44c21850a9e732147b69b48c3.jpg", + "https://o1.fengqingyang.ml/old/bba1735b0a767978f6a0f9838abb3070.jpg", + "https://o1.fengqingyang.ml/old/145d0e6d794127160e5201c79b426b00.jpg", + "https://o1.fengqingyang.ml/old/e6a943a399fcf5b40c2031e44a56960f.jpg", + "https://o1.fengqingyang.ml/old/fd5a0ff2ede35342edf0a01b5cba7f3a.jpg", + "https://o1.fengqingyang.ml/old/7ccea3ef9f912b94191607a2ce2811c1.jpg", + "https://o1.fengqingyang.ml/old/57eaa41c519deaf793ba40239a3f347d.jpg", + "https://o1.fengqingyang.ml/old/fc9a844bfab31d78e7b8c1f0d9845268.jpg", + "https://o1.fengqingyang.ml/old/1b782cd6f97babd09a2d7afe57484706.jpg", + "https://o1.fengqingyang.ml/old/b2e239241fcab1a5037e900a24cfe3ba.jpg", + "https://o1.fengqingyang.ml/old/ee62fa3218fe07ff1ff3d86be06ebf1a.jpg", + "https://o1.fengqingyang.ml/old/d3312f86d5e6d68a0e668c3ad01dd90d.jpg", + "https://o1.fengqingyang.ml/old/650fe20e9fd6e9aefbadad4ff420fba0.jpg", + "https://o1.fengqingyang.ml/old/202282f18242aad131ded9c496993ce4.jpg", + "https://o1.fengqingyang.ml/old/9c6fd46c095893fd209fbb9454e2e9ef.jpg", + "https://o1.fengqingyang.ml/old/8a0ae368bc4e728e3aa9dcef09b51550.jpg", + "https://o1.fengqingyang.ml/old/7dc75648ccfa9e5d1b440deab577f3f9.jpg", + "https://o1.fengqingyang.ml/old/3bcf001c2672ec733b810f2389f29600.jpg", + "https://o1.fengqingyang.ml/old/706a17ad9e947dee668af6fc8ae10f18.jpg", + "https://o1.fengqingyang.ml/old/0ba4de8b50f825e197a3d44d8fee2b87.jpg", + "https://o1.fengqingyang.ml/old/584bdeeb11092afa3fc29fdca60fdf39.jpg", + "https://o1.fengqingyang.ml/old/7b28aa87123d29e7a9000edbcc92af8f.jpg", + "https://o1.fengqingyang.ml/old/3f2a408e14d4170553536fa21fa1f3ea.jpg", + "https://o1.fengqingyang.ml/old/77c42932a9327294aad15aeb0336ec6a.jpg", + "https://o1.fengqingyang.ml/old/27c58d714ba024fa92bdb70f1beecf41.jpg", + "https://o1.fengqingyang.ml/old/19da416f2b35571458e1e18847135eaa.jpg", + "https://o1.fengqingyang.ml/old/1a6a4bcea7cf3bb527e02b13b3b64d88.jpg", + "https://o1.fengqingyang.ml/old/0fe11c34bec0f1cd020a0fc533976b8b.jpg", + "https://o1.fengqingyang.ml/old/f4e2bcc71b8f99c69f59c6d90e3ba092.jpg", + "https://o1.fengqingyang.ml/old/585e5200d1f0a4bf732f7cb51a79448b.jpg", + "https://o1.fengqingyang.ml/old/771f77be5a2f3f88c1d2ea55aec886b6.jpg", + "https://o1.fengqingyang.ml/old/4ea595c4d697739f94391226f6a7b6ab.jpg", + "https://o1.fengqingyang.ml/old/0c60639b1378db254f58d248e5ed8ab1.jpg", + "https://o1.fengqingyang.ml/old/00daa96fc5ff5b2c1eca5bf7135212ce.jpg", + "https://o1.fengqingyang.ml/old/cbd3d0557a5f50e57f18e30c315b3f67.jpg", + "https://o1.fengqingyang.ml/old/1b38b9fea930cdbe18508911fd90a7b7.jpg", + "https://o1.fengqingyang.ml/old/ecdde090e249cfb89cdd6cdd250cf2bd.jpg", + "https://o1.fengqingyang.ml/old/2313e3ceacf8249ed825c38e6a4286e6.jpg", + "https://o1.fengqingyang.ml/old/bd069f1caf06a68249b0e9e542018f29.jpg", + "https://o1.fengqingyang.ml/old/95445c3f0642e1f6af2d19a552ed176d.jpg", + "https://o1.fengqingyang.ml/old/63f1cfb75b7eb3b4a8a85148a939caa0.jpg", + "https://o1.fengqingyang.ml/old/a001e493d5e965762b7c3a0e8c0538fb.jpg", + "https://o1.fengqingyang.ml/old/cd9844af54a24a882b6cf38c6fad4b5c.jpg", + "https://o1.fengqingyang.ml/old/0fa35b6a3cdc7ae5fb12eafdff577633.jpg", + "https://o1.fengqingyang.ml/old/7ab1e3545edc5f81b3de386fcfd05661.jpg", + "https://o1.fengqingyang.ml/old/b3aea8a1bb52d6a107e301b67824ddae.jpg", + "https://o1.fengqingyang.ml/old/87a91bd082ff2f6f5e26b19a24c21cf7.jpg", + "https://o1.fengqingyang.ml/old/0657322f2094460faf62b5939f84387a.jpg", + "https://o1.fengqingyang.ml/old/cea996dc49688c9cb972d6d6cf2c2c54.jpg", + "https://o1.fengqingyang.ml/old/fcdb0b23e26b586ee3e2b570354538a2.jpg", + "https://o1.fengqingyang.ml/old/7411827e6a9269be84eeb50e2b7b30d6.jpg", + "https://o1.fengqingyang.ml/old/c57b7dae6cbae1fe2e87954c7b445acb.jpg", + "https://o1.fengqingyang.ml/old/12b0fb76034a8b9d8822f8c00ce818bc.jpg", + "https://o1.fengqingyang.ml/old/70928d7ac604a86a44b7540f2a02207f.jpg", + "https://o1.fengqingyang.ml/old/5b528eb5d82227e7725717a716108663.jpg", + "https://o1.fengqingyang.ml/old/682d9e8af594777ad7e1c8a7d24073c1.jpg", + "https://o1.fengqingyang.ml/old/c49d489bb948104f32b3dfad20fe9cb3.jpg", + "https://o1.fengqingyang.ml/old/56f87912258d8aa14a9499a4d3d51f58.jpg", + "https://o1.fengqingyang.ml/old/77bfbd8ca4233f7be594af1e329997ab.jpg", + "https://o1.fengqingyang.ml/old/2d917d9b140deda3c7c88fed527cb992.jpg", + "https://o1.fengqingyang.ml/old/60693acc3c116b103ee75df8d0e2793a.jpg", + "https://o1.fengqingyang.ml/old/2496d99bf79a65e3a3e0eb743db579f1.jpg", + "https://o1.fengqingyang.ml/old/e66792602fa64fabc598d1ebc22671a3.jpg", + "https://o1.fengqingyang.ml/old/d7b72fac0fffd037935bdae2bee641e6.jpg", + "https://o1.fengqingyang.ml/old/1bc201f7d4c02e7f1a86ffc9a4df68eb.jpg", + "https://o1.fengqingyang.ml/old/6fc5f5d74c8bde33c7bcdd0a48e37e24.jpg", + "https://o1.fengqingyang.ml/old/a3e75684d82204a52634c824dbc94aab.jpg", + "https://o1.fengqingyang.ml/old/9356b63f4b12e1c702a0e58212e75014.jpg", + "https://o1.fengqingyang.ml/old/53656fabb543cf3522364578078d6121.jpg", + "https://o1.fengqingyang.ml/old/9ba18fe24bda5d884b268ce8e97a9208.jpg", + "https://o1.fengqingyang.ml/old/c35011376483bf55b7b912f2c986f44e.jpg", + "https://o1.fengqingyang.ml/old/1b3fe7ba5295298d3b10d7f53d1455f9.jpg", + "https://o1.fengqingyang.ml/old/d4b4b6e27cf22677cb757122b635a423.jpg", + "https://o1.fengqingyang.ml/old/deb6c51879b96cd8ac5b99939e9eb398.jpg", + "https://o1.fengqingyang.ml/old/a2eaa28b49afd0c74d1166880f145e6a.jpg", + "https://o1.fengqingyang.ml/old/85a1ab33b43abdbff0b135e4981c52fd.jpg", + "https://o1.fengqingyang.ml/old/1eb9198baa07a27ee79201c16a6aaeff.jpg", + "https://o1.fengqingyang.ml/old/8329d3b35cf7e3f410dcd9d06843d1f8.jpg", + "https://o1.fengqingyang.ml/old/97fa1717522056508c6ab0f2716c6573.jpg", + "https://o1.fengqingyang.ml/old/86ad15ba95180be991ed5fec6b6e3430.jpg", + "https://o1.fengqingyang.ml/old/2aaa0432d8c208fefd636812ae8fd197.jpg", + "https://o1.fengqingyang.ml/old/5379f26ec5083113ba1dd317074de54b.jpg", + "https://o1.fengqingyang.ml/old/8700bf7a031883ea5f20b056ea1cfb75.jpg", + "https://o1.fengqingyang.ml/old/f01aae899f1f175c44056360d04d73ad.jpg", + "https://o1.fengqingyang.ml/old/4ade3ab3c2a7231f0cfe1327ca025088.jpg", + "https://o1.fengqingyang.ml/old/c3f6f0d2e5ebefc4a219b3727e711cf1.jpg", + "https://o1.fengqingyang.ml/old/a4580aa01a7f7bf81f6d099b8158f5dd.jpg", + "https://o1.fengqingyang.ml/old/3bc66ecf72c79c1d2e1e3f578ddccb74.jpg", + "https://o1.fengqingyang.ml/old/9e10c47834933d9a12539fcd92b2b13f.jpg", + "https://o1.fengqingyang.ml/old/f0dec9da5c48d76dfe246405e7970d39.jpg", + "https://o1.fengqingyang.ml/old/f71804f8d88cc0cc6dbe10e73ec226f5.jpg", + "https://o1.fengqingyang.ml/old/1348b507042480280924c2eac6c05b03.jpg", + "https://o1.fengqingyang.ml/old/1017e7c67d6a30a316aad6b80a50d4d9.jpg", + "https://o1.fengqingyang.ml/old/54b1eb1fd313d6777968d08e17ea2a66.jpg", + "https://o1.fengqingyang.ml/old/aefabaf010caafdfd24e54d810add146.jpg", + "https://o1.fengqingyang.ml/old/1ee5daded7facecbd8f0f0c78b2e1124.jpg", + "https://o1.fengqingyang.ml/old/c145b2898a6faa525fb78df0e88a23fc.jpg", + "https://o1.fengqingyang.ml/old/ec07b20552c5a49701907d78128c9948.jpg", + "https://o1.fengqingyang.ml/old/77116e3ab77fd72861872ec0e6bac5be.jpg", + "https://o1.fengqingyang.ml/old/d2d6ac07bed57c70fcb9547afba0df64.jpg", + "https://o1.fengqingyang.ml/old/52de46bfe2afb368eaa599381b1dbd26.jpg", + "https://o1.fengqingyang.ml/old/8286e805ef5e64aa824158f87ae91e51.jpg", + "https://o1.fengqingyang.ml/old/c9111e292c11e1b870b653d1dbca5465.jpg", + "https://o1.fengqingyang.ml/old/d15e7711882066a62e688be591f94f9d.jpg", + "https://o1.fengqingyang.ml/old/7849b600304fccd9edef7a3ad09a4ad5.jpg", + "https://o1.fengqingyang.ml/old/4f2db26c2fc17350a795fe6a571da75f.jpg", + "https://o1.fengqingyang.ml/old/04b7d569dc12a671e5ac0735d502c265.jpg", + "https://o1.fengqingyang.ml/old/c905e253a66cf96da086daa3cba9a567.jpg", + "https://o1.fengqingyang.ml/old/4d0e61a128bbce1060cc11abfb9ae9ad.jpg", + "https://o1.fengqingyang.ml/old/07733f764cfab77fd5e805a3498136e6.jpg", + "https://o1.fengqingyang.ml/old/fd17c3b70d4be0ef99b71d6fc91d5303.jpg", + "https://o1.fengqingyang.ml/old/8e169a7b075731467ff3659c9896a325.jpg", + "https://o1.fengqingyang.ml/old/18ebfbecfbf4d135aeb153d3a29eba59.jpg", + "https://o1.fengqingyang.ml/old/54401216d5f7090fefa3608481b09acb.jpg", + "https://o1.fengqingyang.ml/old/577463ebc496fd8b8b72563d4cea201b.jpg", + "https://o1.fengqingyang.ml/old/30b28b7659841560240b56424cb3c698.jpg", + "https://o1.fengqingyang.ml/old/7094d5697821b5636771678a328d1e7d.jpg", + "https://o1.fengqingyang.ml/old/9ad2d28d646f281d1980118923dc3372.jpg", + "https://o1.fengqingyang.ml/old/c3cd79cd8f0dcf86d2754c3d40873ea3.jpg", + "https://o1.fengqingyang.ml/old/77565fa3aba441b26c7b763d70309732.jpg", + "https://o1.fengqingyang.ml/old/b1c9fb05a6cac44b341327a7181ad36e.jpg", + "https://o1.fengqingyang.ml/old/db7fdf50d7918d00efb8760861545598.jpg", + "https://o1.fengqingyang.ml/old/8b91856ca5874a68579a89a8ad13f18f.jpg", + "https://o1.fengqingyang.ml/old/82022e4c11af970a8c7a3a64b4dff0a4.jpg", + "https://o1.fengqingyang.ml/old/51998d29350a1fa49bc056bcbf653726.jpg", + "https://o1.fengqingyang.ml/old/2492eef164d0f7c94e4f518079d7bc67.jpg", + "https://o1.fengqingyang.ml/old/6ba236145e1f1b88f80988e73ceffae8.jpg", + "https://o1.fengqingyang.ml/old/091dade9caa1f7eaca3a3f7d6f55819d.jpg", + "https://o1.fengqingyang.ml/old/5380236357bfd63584903ffce08cfb85.jpg", + "https://o1.fengqingyang.ml/old/673b88db2052e129123a49a9ca90d625.jpg", + "https://o1.fengqingyang.ml/old/70307a1fdde8ff1c5b8c522fc46f66df.jpg", + "https://o1.fengqingyang.ml/old/c87f19682ba549ee8b021b7158017234.jpg", + "https://o1.fengqingyang.ml/old/69dc1012439d033c00e682ab55122cf3.jpg", + "https://o1.fengqingyang.ml/old/f5b7a61359518b0c7cb4e5965a81ff54.jpg", + "https://o1.fengqingyang.ml/old/76f763380a6ac0f4368c015011749f15.jpg", + "https://o1.fengqingyang.ml/old/46b65d0f7fc7c12052efb061d9abe70d.jpg", + "https://o1.fengqingyang.ml/old/00fd28ec4137de4e24ea525b22e810d1.jpg", + "https://o1.fengqingyang.ml/old/9b0079eda0092135562d541b49470ff4.jpg", + "https://o1.fengqingyang.ml/old/a1776899e0be2b6dfa87982ea70c5981.jpg", + "https://o1.fengqingyang.ml/old/330a11e4024c673490d7f12720aac0a0.jpg", + "https://o1.fengqingyang.ml/old/def65c2125985cae8ae687ea9d5b3952.jpg", + "https://o1.fengqingyang.ml/old/b88d86af4443b127b16d9f4ccb6da086.jpg", + "https://o1.fengqingyang.ml/old/1e5af115b11baf8551f437c167db3558.jpg", + "https://o1.fengqingyang.ml/old/6d2d82eef1d01a2ef30eac62597a52cd.jpg", + "https://o1.fengqingyang.ml/old/8f602fffbf8128740c3943a5e2cb5864.jpg", + "https://o1.fengqingyang.ml/old/545bd802014ded3df5608bd441be3355.jpg", + "https://o1.fengqingyang.ml/old/65ccc5911c009619aafcad9f2b86aa23.jpg", + "https://o1.fengqingyang.ml/old/b03ec08385a2cf182f52ff855765a363.jpg", + "https://o1.fengqingyang.ml/old/d13f7ce172f891a8505dd2cd25ad0b4c.jpg", + "https://o1.fengqingyang.ml/old/82cc25fed277cbca4257c3bd704e8112.jpg", + "https://o1.fengqingyang.ml/old/5712d40f69347bbdeccfea0310f210e9.jpg", + "https://o1.fengqingyang.ml/old/e26ed66934e6760c0ae159051e01af32.jpg", + "https://o1.fengqingyang.ml/old/44b4b69819a7a1466d0fb1ef06a7104f.jpg", + "https://o1.fengqingyang.ml/old/3381dcb0aa676ce0cc55aaf193f8ff63.jpg", + "https://o1.fengqingyang.ml/old/db675185ed687d66a1ac899e53014612.jpg", + "https://o1.fengqingyang.ml/old/1bf96e4a243c001869c325d022c7c238.jpg", + "https://o1.fengqingyang.ml/old/2d4a2b1615fa27e05d2bbf380fde7bce.jpg", + "https://o1.fengqingyang.ml/old/670ca591c2f788761a42a17179cb6eac.jpg", + "https://o1.fengqingyang.ml/old/83ee57fd4be0e07a1dd2069031bb9ee7.jpg", + "https://o1.fengqingyang.ml/old/074d93a8185797aa51ec80dada605ab8.jpg", + "https://o1.fengqingyang.ml/old/7539c4eb165ce2adf49aba42eac98127.jpg", + "https://o1.fengqingyang.ml/old/bb17bfd2091d26f6172da6cf7abfcefc.jpg", + "https://o1.fengqingyang.ml/old/ef9131f74e029dc86745310f6833873f.jpg", + "https://o1.fengqingyang.ml/old/11b2a8708fc84a7b06aef75143c4c878.jpg", + "https://o1.fengqingyang.ml/old/2d4cb45d84e0780f63c2d6ad9bfee002.jpg", + "https://o1.fengqingyang.ml/old/32e4b8363699462c96c685845de29d40.jpg", + "https://o1.fengqingyang.ml/old/9c31222da796d48deb886f758178a57e.jpg", + "https://o1.fengqingyang.ml/old/1cbc083e3810e8a64539ac69b4b212e0.jpg", + "https://o1.fengqingyang.ml/old/d07f7db5fdfd58d92062edf654f37a2f.jpg", + "https://o1.fengqingyang.ml/old/28e36e2c5fa70b42a6afea4a4ef26424.jpg", + "https://o1.fengqingyang.ml/old/e57639c523a7d70d5fcd24730d6159a0.jpg", + "https://o1.fengqingyang.ml/old/fe1c128b74c0c8ad852ec0e2337b93e6.jpg", + "https://o1.fengqingyang.ml/old/69cd96ba952b7820dac767e2018129ce.jpg", + "https://o1.fengqingyang.ml/old/29f22a441627293cfbafbf4826f02380.jpg", + "https://o1.fengqingyang.ml/old/bf195204108c701964bcda07e7472bf8.jpg", + "https://o1.fengqingyang.ml/old/6b887669227836af4ad26c4a9706bd98.jpg", + "https://o1.fengqingyang.ml/old/86d17eb935ef82e9a814af81ba870811.jpg", + "https://o1.fengqingyang.ml/old/4ee35183230e131918c34d5539f92cc1.jpg", + "https://o1.fengqingyang.ml/old/d6d1906200d26b92e5065b965c46a117.jpg", + "https://o1.fengqingyang.ml/old/9f9d9a2854887112f5eb09b5b9ce4834.jpg", + "https://o1.fengqingyang.ml/old/d14f70d05bf0f2f8813b24f2c272447c.jpg", + "https://o1.fengqingyang.ml/old/cbfc2e15738ec48474b8a5c2bc670f8b.jpg", + "https://o1.fengqingyang.ml/old/4c2a305a840b29521c320c0ab520db07.jpg", + "https://o1.fengqingyang.ml/old/2761787c56ee21c7e456d20cb23ab47c.jpg", + "https://o1.fengqingyang.ml/old/36ed8440e3b478970a9afbd69519af46.jpg", + "https://o1.fengqingyang.ml/old/a1e3d7911064008a6b5aa6aba136b6ce.jpg", + "https://o1.fengqingyang.ml/old/562cb1f5258d406417a9b51feef1c402.jpg", + "https://o1.fengqingyang.ml/old/40dfd46f5d8353c0907e0ab0a03a8bf7.jpg", + "https://o1.fengqingyang.ml/old/295b3e27711765a687e1e668307fadaf.jpg", + "https://o1.fengqingyang.ml/old/a44b5623da71f9fad1dfb26ee1d877bf.jpg", + "https://o1.fengqingyang.ml/old/275ae9791199bc120eb5962183f11316.jpg", + "https://o1.fengqingyang.ml/old/95b86c3ac43c0c7b70084cd7d94803d0.jpg", + "https://o1.fengqingyang.ml/old/f339e4c42154f2b7e5bc538d698ccba8.jpg", + "https://o1.fengqingyang.ml/old/4d7fc2dc66b315076d224d2aefecffe3.jpg", + "https://o1.fengqingyang.ml/old/47ab7cb8514ea877d3e772130db5ce52.jpg", + "https://o1.fengqingyang.ml/old/0862ee9034659c7900a1eb4b01df2d42.jpg", + "https://o1.fengqingyang.ml/old/6734441454d4db6dc706765c2281bd1d.jpg", + "https://o1.fengqingyang.ml/old/c7025eaa1f926edb5ebd4b63d58c2860.jpg", + "https://o1.fengqingyang.ml/old/23de29e60a31b293df9cd9c1ad255aad.jpg", + "https://o1.fengqingyang.ml/old/1ea33c232dc1d860716ca132ae032186.jpg", + "https://o1.fengqingyang.ml/old/7bffa1bd53399d66b7a2d790512ed082.jpg", + "https://o1.fengqingyang.ml/old/60c5df1fd4bb2ced3128e1e838fb72f0.jpg", + "https://o1.fengqingyang.ml/old/0e6f233dcfe284da062572c1cbcd98fd.jpg", + "https://o1.fengqingyang.ml/old/7a91a2e377ba8d058502271b9a0a7702.jpg", + "https://o1.fengqingyang.ml/old/3bd1e4e1bef7fde0b694536da38dcd28.jpg", + "https://o1.fengqingyang.ml/old/03549d15a8b43386e88b3dff7a9cbab9.jpg", + "https://o1.fengqingyang.ml/old/c70f9171578a42e93ca38a8823731902.jpg", + "https://o1.fengqingyang.ml/old/48aaf809b39d0a11c0af688af0a1a651.jpg", + "https://o1.fengqingyang.ml/old/5bf28f45ebd2e7b09847d2a63ccff3d8.jpg", + "https://o1.fengqingyang.ml/old/bccd5d2f73ac62c61648790c634edec4.jpg", + "https://o1.fengqingyang.ml/old/30f1de0377f360b147eb22443a001f85.jpg", + "https://o1.fengqingyang.ml/old/28e8618b79c50b76af6181ff3a8c5242.jpg", + "https://o1.fengqingyang.ml/old/295ed967ae609b452066971e69044dfc.jpg", + "https://o1.fengqingyang.ml/old/35a24c7e3c3e243a104eaa96328e8888.jpg", + "https://o1.fengqingyang.ml/old/038cbd5110115dab5a892965853455e8.jpg", + "https://o1.fengqingyang.ml/old/e4ee01de8b85bb20a543f2ee12d220c2.jpg", + "https://o1.fengqingyang.ml/old/aebfe31e56c1a91750091a90aee91063.jpg", + "https://o1.fengqingyang.ml/old/ab2cdaf70bc713b7421ca9efaf7c9f98.jpg", + "https://o1.fengqingyang.ml/old/3ce652c5afa5f3afd931c75ef68779ca.jpg", + "https://o1.fengqingyang.ml/old/23212203d25e3706492207fb04079965.jpg", + "https://o1.fengqingyang.ml/old/3fe6a7b71b587cd6b7c7e242c059e47a.jpg", + "https://o1.fengqingyang.ml/old/7978348c638ff31d1e93f8b9d91a6949.jpg", + "https://o1.fengqingyang.ml/old/eec96164e1c44da1b90516c015fe0f61.jpg", + "https://o1.fengqingyang.ml/old/8514d05c1b3ae67b17d8a836919d555b.jpg", + "https://o1.fengqingyang.ml/old/262320bab9993c5b08f82d9e7ac322bf.jpg", + "https://o1.fengqingyang.ml/old/63824d136c9a8bc0b6022fc1db07c7cf.jpg", + "https://o1.fengqingyang.ml/old/b4fe2d6e10e46aac226879c49379fad3.jpg", + "https://o1.fengqingyang.ml/old/82baefbd8ad85b1dd23c84d8fb23e16f.jpg", + "https://o1.fengqingyang.ml/old/9b2d1c50155bfae9471b72ac58f24f7b.jpg", + "https://o1.fengqingyang.ml/old/c143dc0707daf3de4a93a4a0fa840666.jpg", + "https://o1.fengqingyang.ml/old/61116611252dfbea554cd1048426c8a0.jpg", + "https://o1.fengqingyang.ml/old/f1c43bab39fcdd19c0377ae2b80ec305.jpg", + "https://o1.fengqingyang.ml/old/f06b32db13ab7fdf66cadb7e9a737566.jpg", + "https://o1.fengqingyang.ml/old/cbcc99386eace983ef18b4ae007d3e26.jpg", + "https://o1.fengqingyang.ml/old/d449fbfbaa065e88d27682aeed40be56.jpg", + "https://o1.fengqingyang.ml/old/0893a52f7c88246473fa2703bff5a046.jpg", + "https://o1.fengqingyang.ml/old/106eb91f03ed0182e917e2e1ad57d837.jpg", + "https://o1.fengqingyang.ml/old/0ff4d72c4e384bc0d3905cc77e7b864c.jpg", + "https://o1.fengqingyang.ml/old/22e2e7a50074a45f9d292b3c79491c13.jpg", + "https://o1.fengqingyang.ml/old/c33299a9db0229e7190e6ec1a7775a5a.jpg", + "https://o1.fengqingyang.ml/old/a82f961da975e76416fb45403f66a32b.jpg", + "https://o1.fengqingyang.ml/old/b5a8d829499f3a680998909a3f2aa885.jpg", + "https://o1.fengqingyang.ml/old/a195ee32fe1bcbad0156e03cac09fdd1.jpg", + "https://o1.fengqingyang.ml/old/f616c813c6fb4feb895f6c92c70d3a8b.jpg", + "https://o1.fengqingyang.ml/old/84e70a77e99c6b82f3b3383dbe0fda21.jpg", + "https://o1.fengqingyang.ml/old/e84189a64a5eb1c9284a56a313521813.jpg", + "https://o1.fengqingyang.ml/old/de67b84007afa6d1ba970c9470344ac2.jpg", + "https://o1.fengqingyang.ml/old/17f81195691c091cacc00da21a7130d7.jpg", + "https://o1.fengqingyang.ml/old/4802cfaf5a35a457b7f15a028ddc4f51.jpg", + "https://o1.fengqingyang.ml/old/af62b738139edf83a27e67e447258435.jpg", + "https://o1.fengqingyang.ml/old/53ff98f5358ebddde9c2fb5e7b9f64fc.jpg", + "https://o1.fengqingyang.ml/old/da7aeec84a58bd61c493b231c18f7c4a.jpg", + "https://o1.fengqingyang.ml/old/e5e1c104df59bef98fa921c7b771455d.jpg", + "https://o1.fengqingyang.ml/old/71d3c57e2b110a14fc81fd8f0a1bfc01.jpg", + "https://o1.fengqingyang.ml/old/943092dbf39d18965779c0487dc4663c.jpg", + "https://o1.fengqingyang.ml/old/b1957473aac4dac3a61a5635ba61a7b8.jpg", + "https://o1.fengqingyang.ml/old/c343a1ca86c6cd22858c8f40b8fc4a38.jpg", + "https://o1.fengqingyang.ml/old/0e89e686104cf76a899dddedc4df427d.jpg", + "https://o1.fengqingyang.ml/old/4eaefb622340ad8321a36eebaa83bb4d.jpg", + "https://o1.fengqingyang.ml/old/4815d481ef7dc697dc35858c383edcaa.jpg", + "https://o1.fengqingyang.ml/old/6ae602dc1bc3b134b57c5835bbb6b061.jpg", + "https://o1.fengqingyang.ml/old/2c11b0f56e4be0ce923bdef1d8c1a4c2.jpg", + "https://o1.fengqingyang.ml/old/5b1739b41beacb1abc44f9b3d8a36bb8.jpg", + "https://o1.fengqingyang.ml/old/24f543a7150ecd81279a1bd0bf8b3303.jpg", + "https://o1.fengqingyang.ml/old/851e27e52de4f01bd9b84a427059e27b.jpg", + "https://o1.fengqingyang.ml/old/5b1a4d2718183ead3f01e4ef5f1f1c8a.jpg", + "https://o1.fengqingyang.ml/old/5f79573dd9dd92c4a2e39f46f6903893.jpg", + "https://o1.fengqingyang.ml/old/e0c28d415f82cd9fb7b1b45790dc5c34.jpg", + "https://o1.fengqingyang.ml/old/dd8c7859eda005a6b31036a0f75ae54c.jpg", + "https://o1.fengqingyang.ml/old/ed9b1171227374506a779a5d0efa85f6.jpg", + "https://o1.fengqingyang.ml/old/b20168ab49ec93d0529b45e1e586aa58.jpg", + "https://o1.fengqingyang.ml/old/9f288c8824170a922b7cc36177de435c.jpg", + "https://o1.fengqingyang.ml/old/3ebedc066fca4a4c8c8f74e97295c8dd.jpg", + "https://o1.fengqingyang.ml/old/d2cef221734bebb505594c8e0fc53c18.jpg", + "https://o1.fengqingyang.ml/old/ee5cf603eaf8dbc448e905604a7890e5.jpg", + "https://o1.fengqingyang.ml/old/95b0f776ea4c53842bd2ba4607c727a7.jpg", + "https://o1.fengqingyang.ml/old/255d3a7a2153c93d757ca85e75cdafdf.jpg", + "https://o1.fengqingyang.ml/old/e1f74ef8d25581411f5c4dae5a0a77e5.jpg", + "https://o1.fengqingyang.ml/old/3c994b1fc02d13374d971234313d3e7b.jpg", + "https://o1.fengqingyang.ml/old/b5ccceabefa5b2a2d6fab74181536f61.jpg", + "https://o1.fengqingyang.ml/old/bf7b7eb8b312b53be6ba36ae1acd9dcd.jpg", + "https://o1.fengqingyang.ml/old/ab3028159862701eaff82231a2f9bade.jpg", + "https://o1.fengqingyang.ml/old/9b63d3bc2c0e491059855bf84234ee47.jpg", + "https://o1.fengqingyang.ml/old/9e31330953819c470134c408b031bdcb.jpg", + "https://o1.fengqingyang.ml/old/7a80c1aac8925b2fa1b48d08e469cb48.jpg", + "https://o1.fengqingyang.ml/old/c02b7d0bb9a1b16f2d4d5715b213e31a.jpg", + "https://o1.fengqingyang.ml/old/e896be879ffbd9599d19bc5e43f378b0.jpg", + "https://o1.fengqingyang.ml/old/f2259708e29de433aec577c91b494c05.jpg", + "https://o1.fengqingyang.ml/old/914c1ed478856309b17c8e59e6d65071.jpg", + "https://o1.fengqingyang.ml/old/ce51518f3f86de69916b0f74e9593022.jpg", + "https://o1.fengqingyang.ml/old/17be9161904e58dab1a85799e9427871.jpg", + "https://o1.fengqingyang.ml/old/c140cfa73fa6d2772e8cead9a1d2e77f.jpg", + "https://o1.fengqingyang.ml/old/58487f532d21dabe2a4c6cce029de92b.jpg", + "https://o1.fengqingyang.ml/old/1d9cbddb7e9c5ad45a7dd4fc28256726.jpg", + "https://o1.fengqingyang.ml/old/bed50b05d8fda1f11c366b3d558e1a9e.jpg", + "https://o1.fengqingyang.ml/old/92024d080ae6243f4188f6331bd2afa2.jpg", + "https://o1.fengqingyang.ml/old/93aa73eca129fbfe1d7f2e5a2d489c40.jpg", + "https://o1.fengqingyang.ml/old/e2df544cab22a585116ed9e7ceef01d7.jpg", + "https://o1.fengqingyang.ml/old/812fd8367c656e8d9b58afc96908d8ca.jpg", + "https://o1.fengqingyang.ml/old/2d58544854572a83f0c22e5943647286.jpg", + "https://o1.fengqingyang.ml/old/229218d7d7c7b21dd512b3ea730f9c61.jpg", + "https://o1.fengqingyang.ml/old/afabe7d79b645baa03bf33aff84f12bb.jpg", + "https://o1.fengqingyang.ml/old/a6c4c4ccd85660dfd287d2666bdbac9a.jpg", + "https://o1.fengqingyang.ml/old/616faad809a552bc30d97ae407a04331.jpg", + "https://o1.fengqingyang.ml/old/deb5d1328f0f0cae1bbbee3bbbee2836.jpg", + "https://o1.fengqingyang.ml/old/0b70c2f944b0d2ab54c31008b00b1059.jpg", + "https://o1.fengqingyang.ml/old/80169ed22cc05b876cf2469c4f95e7a5.jpg", + "https://o1.fengqingyang.ml/old/8e99392729c628b47ab44c1146081400.jpg", + "https://o1.fengqingyang.ml/old/3e689b48bef85d3c4f71c0035590f680.jpg", + "https://o1.fengqingyang.ml/old/158d5e23c9e895d67f40d32ee6a2b9c2.jpg", + "https://o1.fengqingyang.ml/old/0d2d2ed63b5b2d6b6b063236725c146b.jpg", + "https://o1.fengqingyang.ml/old/6014f67bae0a8896b02b91f12e57298c.jpg", + "https://o1.fengqingyang.ml/old/aad6d644121025b363f8bc97b1796621.jpg", + "https://o1.fengqingyang.ml/old/65021c6021ab60c4df32ecaffc6f5fc6.jpg", + "https://o1.fengqingyang.ml/old/b6ebb257b5ab9c861e74583f44bc3937.jpg", + "https://o1.fengqingyang.ml/old/ba6c38ff7f0f28b28d8364e854fc683a.jpg", + "https://o1.fengqingyang.ml/old/9714b332a89089543d2302d4dbe11ed7.jpg", + "https://o1.fengqingyang.ml/old/8c59deaf36cd2c2ae0a09240812575e4.jpg", + "https://o1.fengqingyang.ml/old/163f885b3087aab68724ce0abea02dd3.jpg", + "https://o1.fengqingyang.ml/old/9c912b288a185c0f8ebba37300345cb4.jpg", + "https://o1.fengqingyang.ml/old/a24069eefa0a65513cc4e4ffe7584e17.jpg", + "https://o1.fengqingyang.ml/old/256ae0d61a590bbcdbe3b8a466bd6276.jpg", + "https://o1.fengqingyang.ml/old/f7b09766744ca8677037f58158c12137.jpg", + "https://o1.fengqingyang.ml/old/33a1839230d3b36a2b946e7190dd9255.jpg", + "https://o1.fengqingyang.ml/old/b47b8e347e650ce2eb1dab83d01f658a.jpg", + "https://o1.fengqingyang.ml/old/bcb3e6d2c459e6528391e77d083d44dd.jpg", + "https://o1.fengqingyang.ml/old/409f52bf159ad9dc105f3e5ffdd96e5a.jpg", + "https://o1.fengqingyang.ml/old/1af8c72011ab5f1b357988305f1d203e.jpg", + "https://o1.fengqingyang.ml/old/951e9b03afeb586c9e9b2b9ed849891c.jpg", + "https://o1.fengqingyang.ml/old/eabebc8a58724be79abe6c99df740fe4.jpg", + "https://o1.fengqingyang.ml/old/8a2237a57c0afd483f5354a94b39edc3.jpg", + "https://o1.fengqingyang.ml/old/f9007903ee9791fb74fdc35de042d84c.jpg", + "https://o1.fengqingyang.ml/old/528e0a49a50ec473ba72e48f1c75e7d7.jpg", + "https://o1.fengqingyang.ml/old/1406f7d728aabf2732d40bdc3238c387.jpg", + "https://o1.fengqingyang.ml/old/58baa837607a5bb2cefd3f3bb634650e.jpg", + "https://o1.fengqingyang.ml/old/dc9f41eab0a6e127ffbf8da727b7f166.jpg", + "https://o1.fengqingyang.ml/old/cc0f2c25db29067ba782b8505bff268a.jpg", + "https://o1.fengqingyang.ml/old/9c4f02267d10660098d5ace5bf961f3d.jpg", + "https://o1.fengqingyang.ml/old/41bb17041d1ec72f2818ace8810e66f9.jpg", + "https://o1.fengqingyang.ml/old/026eb053f12a3415640235513ceb6b58.jpg", + "https://o1.fengqingyang.ml/old/bc47e5427896e68522375aadfe64b6e8.jpg", + "https://o1.fengqingyang.ml/old/edff685b06d6ae6895ada3d377ec048c.jpg", + "https://o1.fengqingyang.ml/old/3a67c11962aac58dac073ee9058dc0bc.jpg", + "https://o1.fengqingyang.ml/old/f4a9021f4812983ea3f2d2049e318613.jpg", + "https://o1.fengqingyang.ml/old/c71d760ad250a95c9cf807ab16d6a16f.jpg", + "https://o1.fengqingyang.ml/old/ccdd616c4ef151bd7dbd47c099995183.jpg", + "https://o1.fengqingyang.ml/old/db5efe6429234a7d4357a3b8bca414e2.jpg", + "https://o1.fengqingyang.ml/old/17aea4893ff407b2068b4c1094f4d6d3.jpg", + "https://o1.fengqingyang.ml/old/de27747df30ed9c76edbcf7b258b2dec.jpg", + "https://o1.fengqingyang.ml/old/13f05c8ef101a1f6809a24dbecabd587.jpg", + "https://o1.fengqingyang.ml/old/0a62cae691e38ea98be22b7ac4a5ac89.jpg", + "https://o1.fengqingyang.ml/old/af15f9f03a177188f7fc6580b1e0bcbf.jpg", + "https://o1.fengqingyang.ml/old/38ad4926f938afd47ad085d007c23a88.jpg", + "https://o1.fengqingyang.ml/old/2b314278a2695204fb5965d76d4ee2d6.jpg", + "https://o1.fengqingyang.ml/old/2e10099dfe805155b5140536c9636833.jpg", + "https://o1.fengqingyang.ml/old/48446e5267bfa01439daa84797193fa9.jpg", + "https://o1.fengqingyang.ml/old/25bb808b6982b69545ae7935d17cb0de.jpg", + "https://o1.fengqingyang.ml/old/26c28cfcb64ccb33c995580d6e5e26db.jpg", + "https://o1.fengqingyang.ml/old/e2951f9d34130662f8d5ff3c8f132ad1.jpg", + "https://o1.fengqingyang.ml/old/7f2cee33c3e14f2f35894643241e1e60.jpg", + "https://o1.fengqingyang.ml/old/081759a95e78df430e061b5d4c6c4ebb.jpg", + "https://o1.fengqingyang.ml/old/00283e923985d3512b159b514113b102.jpg", + "https://o1.fengqingyang.ml/old/924f2b106aa9dba16a4069c1decf4795.jpg", + "https://o1.fengqingyang.ml/old/3abf913ebf38e98176fdcc7dba66f11b.jpg", + "https://o1.fengqingyang.ml/old/dd40479f5cdedab235e79632c16fa6bd.jpg", + "https://o1.fengqingyang.ml/old/a0376e79d7c9212b8a5c0298a11979d9.jpg", + "https://o1.fengqingyang.ml/old/7b330147a855333581d420bfed08852d.jpg", + "https://o1.fengqingyang.ml/old/67171903fd1ea3e385b80bd157f7e163.jpg", + "https://o1.fengqingyang.ml/old/2430a869ebde385eb9dee08b752338a8.jpg", + "https://o1.fengqingyang.ml/old/3a81943e5bd374b498ac96b619c97a31.jpg", + "https://o1.fengqingyang.ml/old/92821d9d904b9d196cfd1f5c0e7e07e7.jpg", + "https://o1.fengqingyang.ml/old/6b0ac20ba2dc4ccfe1ad42e002a7ff2b.jpg", + "https://o1.fengqingyang.ml/old/f527b0e152aab747365646f8e30667ea.jpg", + "https://o1.fengqingyang.ml/old/437673514ae0f6c728fe7b7095ad386c.jpg", + "https://o1.fengqingyang.ml/old/bbf19e125fc290fad8fea131dbb87475.jpg", + "https://o1.fengqingyang.ml/old/197525fe54619172d373bd59aa01ea3d.jpg", + "https://o1.fengqingyang.ml/old/828c3c013874c648a205957eda52701e.jpg", + "https://o1.fengqingyang.ml/old/123843bd6fb01dc68736d55953d32b38.jpg", + "https://o1.fengqingyang.ml/old/29181a2792912367c164191b81b2805d.jpg", + "https://o1.fengqingyang.ml/old/1cad9fb69251309497720d464c4a41e9.jpg", + "https://o1.fengqingyang.ml/old/d82de5d6772bb96b4c590be45026f655.jpg", + "https://o1.fengqingyang.ml/old/0ed2a563788f78c0e8c82e5b3f71d43f.jpg", + "https://o1.fengqingyang.ml/old/7c31a95265ad23066ec6bb228cdfa470.jpg", + "https://o1.fengqingyang.ml/old/6b602330ea20266108d48e3f98bfbfa1.jpg", + "https://o1.fengqingyang.ml/old/40548d43907b32fd54886cca924d1137.jpg", + "https://o1.fengqingyang.ml/old/0130878a84c8becf337b169040cdbf62.jpg", + "https://o1.fengqingyang.ml/old/c8dad120673083c897f89b8e5ed37f92.jpg", + "https://o1.fengqingyang.ml/old/912ead383162532e02affad09b3fe1a7.jpg", + "https://o1.fengqingyang.ml/old/827637d1785ebcd245bdd329828d7bd1.jpg", + "https://o1.fengqingyang.ml/old/a52b1b8e3566d2c4a462e387b7ae06b4.jpg", + "https://o1.fengqingyang.ml/old/603fe6c7b180574652d039cf2303524f.jpg", + "https://o1.fengqingyang.ml/old/a95bed0f34b9c731882f15e4aeda34ef.jpg", + "https://o1.fengqingyang.ml/old/3db3da183e3d881a1b12547d76aeb1f0.jpg", + "https://o1.fengqingyang.ml/old/34d758f6879aa7f21d26f9d1da23ad06.jpg", + "https://o1.fengqingyang.ml/old/7f408d4d2ef0b122066b0e94f1703025.jpg", + "https://o1.fengqingyang.ml/old/45e074280395685151ca04f5a94bcfc1.jpg", + "https://o1.fengqingyang.ml/old/1ada3f8bd9e1169eb440c5559155dfe5.jpg", + "https://o1.fengqingyang.ml/old/f371133ccddf2fef0f2865f7ae69764c.jpg", + "https://o1.fengqingyang.ml/old/e6876ddfa924653b92ba423b89c19a3a.jpg", + "https://o1.fengqingyang.ml/old/11cebdf30e2bd7c1d2a1f11b0c6873f7.jpg", + "https://o1.fengqingyang.ml/old/20f927383fb992198e8b7081e586d6a5.jpg", + "https://o1.fengqingyang.ml/old/bb9e514f4d761233c4a50c558505deeb.jpg", + "https://o1.fengqingyang.ml/old/d845a27eb0a51071d38f64cd838b2ade.jpg", + "https://o1.fengqingyang.ml/old/8f32b5da29e8b70d802bffe11b85ca77.jpg", + "https://o1.fengqingyang.ml/old/ce5347427b2edc2ffd8cc7b4def526e6.jpg", + "https://o1.fengqingyang.ml/old/104dce1b31eb69551bac2219f40b6b10.jpg", + "https://o1.fengqingyang.ml/old/5db74d0f1b9562769637e17f32a5b4d4.jpg", + "https://o1.fengqingyang.ml/old/35dc9999316873d7c386dc23a7ae61fc.jpg", + "https://o1.fengqingyang.ml/old/4a8b0abb9cfc216225183ada1bf04e2a.jpg", + "https://o1.fengqingyang.ml/old/df0580c767f1a139cb812ce5491ffa7f.jpg", + "https://o1.fengqingyang.ml/old/fe75dc8eb75ec1f3924678c312f125e8.jpg", + "https://o1.fengqingyang.ml/old/b8e8acfa242d374b0d99c31acc162245.jpg", + "https://o1.fengqingyang.ml/old/3182295ab551b9679f9b17386c7e6f4a.jpg", + "https://o1.fengqingyang.ml/old/eaffdebf6092c1768ef27f79432fa799.jpg", + "https://o1.fengqingyang.ml/old/0a3b0cbc529503b66503689a003aef10.jpg", + "https://o1.fengqingyang.ml/old/734d4ceec497c1c7744cb262e8adeaf0.jpg", + "https://o1.fengqingyang.ml/old/5fd2d8cecc22abfcb8abd689b91d509b.jpg", + "https://o1.fengqingyang.ml/old/881e85226f36d4762d4b40f6a984dd25.jpg", + "https://o1.fengqingyang.ml/old/f640ae6ac749961bfc033cc814b359b0.jpg", + "https://o1.fengqingyang.ml/old/dedc77b9509792eac370094e9a1f1121.jpg", + "https://o1.fengqingyang.ml/old/ccfe2e873fabcc2fe1004e799390d98b.jpg", + "https://o1.fengqingyang.ml/old/8f99dd8620d8dc8c6d9519fc595aa770.jpg", + "https://o1.fengqingyang.ml/old/ad81010cc245b496d19b05f2d1a779ec.jpg", + "https://o1.fengqingyang.ml/old/f7dae2899a7e47a7fd5a4381967d6f83.jpg", + "https://o1.fengqingyang.ml/old/f91e1436f644ef7fb6cd931374e41051.jpg", + "https://o1.fengqingyang.ml/old/43febdbc25d2ebed9c04c6e081c05571.jpg", + "https://o1.fengqingyang.ml/old/f86005722e02b68e3e9b0da8969674f8.jpg", + "https://o1.fengqingyang.ml/old/618af9115d311f72fa510d808015f29c.jpg", + "https://o1.fengqingyang.ml/old/8b5a496d441a0c0f736611b4d67d13ee.jpg", + "https://o1.fengqingyang.ml/old/7ebd68d9f4de695957000b3332553119.jpg", + "https://o1.fengqingyang.ml/old/166b71c27521e574aa9c6b8067bd1d8b.jpg", + "https://o1.fengqingyang.ml/old/022406dd55cdb2e9c4e60968dd62393b.jpg", + "https://o1.fengqingyang.ml/old/9b6d22db611d8c9cd9a5af8c336ce029.jpg", + "https://o1.fengqingyang.ml/old/262fd8cadbcb050d499b471df54f1611.jpg", + "https://o1.fengqingyang.ml/old/9392232a2b45bd0d36e5368060ddb797.jpg", + "https://o1.fengqingyang.ml/old/e08aad695c34c39c175a5e8e2102668d.jpg", + "https://o1.fengqingyang.ml/old/d3b01817ed2ff4fb59ef4e8ecfbdc89e.jpg", + "https://o1.fengqingyang.ml/old/8961c9908cf2f659b0c874ac1026075a.jpg", + "https://o1.fengqingyang.ml/old/499f237319326748a3572d751b77961b.jpg", + "https://o1.fengqingyang.ml/old/908f00a8fa5d5889e96aab43996cfbcb.jpg", + "https://o1.fengqingyang.ml/old/fc686aa3a4d4f777841985dcfe2c6ffc.jpg", + "https://o1.fengqingyang.ml/old/384d82d14dab3e2de94520f470970808.jpg", + "https://o1.fengqingyang.ml/old/c8a8015aae5e51525226162ac1d1b2c8.jpg", + "https://o1.fengqingyang.ml/old/998030b18248927e1c54760aa90306b5.jpg", + "https://o1.fengqingyang.ml/old/3e3b6996cca45c5d7b5ac0ab908d2f2a.jpg", + "https://o1.fengqingyang.ml/old/5551d8f91a2c5c571197217a49b636c8.jpg", + "https://o1.fengqingyang.ml/old/1ce138f3c9e2e5e8dda55c43ac36d926.jpg", + "https://o1.fengqingyang.ml/old/d337ec6fb7e11bb3822b255ebc66dead.jpg", + "https://o1.fengqingyang.ml/old/646bd7b654bcd3e3fa8a1bece8a0add0.jpg", + "https://o1.fengqingyang.ml/old/d061e440b1846fe2a5d04386595d1064.jpg", + "https://o1.fengqingyang.ml/old/42eb9d022c697b86b3dd943985df2c68.jpg", + "https://o1.fengqingyang.ml/old/121e5d15e3b43a680716793bb8acaafb.jpg", + "https://o1.fengqingyang.ml/old/65e127d769b8837e77fb313205d64b7d.jpg", + "https://o1.fengqingyang.ml/old/8931b3fb373ac11a47899f100ed8d0d3.jpg", + "https://o1.fengqingyang.ml/old/ce78fbaa9ef7920fd6860bffdf513f9d.jpg", + "https://o1.fengqingyang.ml/old/889eaa099607b67436e949ee49462719.jpg", + "https://o1.fengqingyang.ml/old/9584b2bcf497341386a994fff1c3d865.jpg", + "https://o1.fengqingyang.ml/old/93e4b20881323adc3408c471d66bafde.jpg", + "https://o1.fengqingyang.ml/old/f91aa30ad27a3dd6dce3aa021214dd09.jpg", + "https://o1.fengqingyang.ml/old/ba5e6b682b4268cb6d2159c507b69c05.jpg", + "https://o1.fengqingyang.ml/old/1a4f3bef6ba72bb4c1df5fcb73b763d7.jpg", + "https://o1.fengqingyang.ml/old/699912da6d9bf04d106e59c2b8bc6f9d.jpg", + "https://o1.fengqingyang.ml/old/be4409854292dad8b2aac989b71358bb.jpg", + "https://o1.fengqingyang.ml/old/140d073e7f152af2e0997c92b76083a2.jpg", + "https://o1.fengqingyang.ml/old/9993182a9806ddd071b099eb76eaf459.jpg", + "https://o1.fengqingyang.ml/old/0d18ad3554d808c220ac3aa784d1dafc.jpg", + "https://o1.fengqingyang.ml/old/acaa286ddadff684b62057c83ca90f90.jpg", + "https://o1.fengqingyang.ml/old/7d6441b74272d8bf5f80d5b6f7a80c28.jpg", + "https://o1.fengqingyang.ml/old/1b3f34061c32da21101b1d9dd6cf4205.jpg", + "https://o1.fengqingyang.ml/old/388ba50bd0219cf7102d2ee670770ac5.jpg", + "https://o1.fengqingyang.ml/old/2964649eedf6dacef67ac7c71dc34f59.jpg", + "https://o1.fengqingyang.ml/old/770a9e605b77b23c1cedc85606bcffa4.jpg", + "https://o1.fengqingyang.ml/old/efde722ba4791d6e47c523ff0bd58d95.jpg", + "https://o1.fengqingyang.ml/old/94df279235d0541ce3dedfe4ebf68731.jpg", + "https://o1.fengqingyang.ml/old/142df229ecaafef9acc385bf32e61806.jpg", + "https://o1.fengqingyang.ml/old/86fba1072aa8a978ecc87b981f779dd8.jpg", + "https://o1.fengqingyang.ml/old/a5e43c3dc572bcf55872c0f09713face.jpg", + "https://o1.fengqingyang.ml/old/76c6ebdb8557f13f3c9702d0c36c3d49.jpg", + "https://o1.fengqingyang.ml/old/1bb6e5b7c8b8965c39cc96dc0847e983.jpg", + "https://o1.fengqingyang.ml/old/6f58f7f9cc002ca9d5da52b6409921b4.jpg", + "https://o1.fengqingyang.ml/old/bd2c4901fec1a1e4e30a838f1c06a38b.jpg", + "https://o1.fengqingyang.ml/old/682e58fe16779f193ab5eb8903d731d4.jpg", + "https://o1.fengqingyang.ml/old/7c636db192240d7f8f59c4b74830d8c9.jpg", + "https://o1.fengqingyang.ml/old/10018abac7d1355ec76f1d5c614e956d.jpg", + "https://o1.fengqingyang.ml/old/6ea07fe910005d48db1de6a356ab3f82.jpg", + "https://o1.fengqingyang.ml/old/1036a028a89875a877725f1bb0dd5bbe.jpg", + "https://o1.fengqingyang.ml/old/a3ad9493028c75b1e828d3a8da8d7003.jpg", + "https://o1.fengqingyang.ml/old/bb0625cdb295422da81193153d9c672b.jpg", + "https://o1.fengqingyang.ml/old/3b3426a2ef488b7e67002c0e5476383a.jpg", + "https://o1.fengqingyang.ml/old/ff9dfcaebfd5e1a067190915b32cc3a4.jpg", + "https://o1.fengqingyang.ml/old/09528d9a89c67b671e16db181e759e99.jpg", + "https://o1.fengqingyang.ml/old/e9ccc22e89cf716ec5c7f60fe1e18c0f.jpg", + "https://o1.fengqingyang.ml/old/2148e6492470fc0111fcf00cb7e42183.jpg", + "https://o1.fengqingyang.ml/old/917837277ee740fdbd7c2ca0688d882e.jpg", + "https://o1.fengqingyang.ml/old/078c200d96e3d59f98a4648ea10dd98d.jpg", + "https://o1.fengqingyang.ml/old/420df426cb2f91e68e91a7a7de228854.jpg", + "https://o1.fengqingyang.ml/old/4ef039a7dd4860d3bc329c459875adbc.jpg", + "https://o1.fengqingyang.ml/old/5719218c1e6079a9cf7915fcb45ed38e.jpg", + "https://o1.fengqingyang.ml/old/a4387dcd613392a565bf6077086cf80f.jpg", + "https://o1.fengqingyang.ml/old/7fd865be3037dc6a5f3f503acb442651.jpg", + "https://o1.fengqingyang.ml/old/851b31c2aa6a20a7a3e88b6adfc6e5fc.jpg", + "https://o1.fengqingyang.ml/old/69f66d1e1b4d960e3cc19cb903048351.jpg", + "https://o1.fengqingyang.ml/old/34b7a2d1e3e2b7b7f62b35511c112bfe.jpg", + "https://o1.fengqingyang.ml/old/a042e359e1a016934e7643385f4451a3.jpg", + "https://o1.fengqingyang.ml/old/eebcb82e2a8fff7e4ad426d28cd6175a.jpg", + "https://o1.fengqingyang.ml/old/72dec6c04efb54e622a1d60120921d04.jpg", + "https://o1.fengqingyang.ml/old/d580b65d249e0cfeaaeeb54baf089f98.jpg", + "https://o1.fengqingyang.ml/old/70cd50a3d5c7e54011882a65b9468454.jpg", + "https://o1.fengqingyang.ml/old/2d648a29ea72e8e135b7746259c09c25.jpg", + "https://o1.fengqingyang.ml/old/4c51112b067e8a53fa9ce4d58eb4e05d.jpg", + "https://o1.fengqingyang.ml/old/50667747adc9c2f102d0bc7bb6ff353a.jpg", + "https://o1.fengqingyang.ml/old/97ec5aa3667d5a2831e4258f02e853ab.jpg", + "https://o1.fengqingyang.ml/old/76134e2f4cab77c2ba99867ffdcd2c52.jpg", + "https://o1.fengqingyang.ml/old/751ac3975ea9f576cd85e81e4e538f2c.jpg", + "https://o1.fengqingyang.ml/old/1f5ab23373127354be3ae40a1b3fd623.jpg", + "https://o1.fengqingyang.ml/old/de5b5f8374f0195cdf3198e07ff622fa.jpg", + "https://o1.fengqingyang.ml/old/81903e6c0536ef3a87783a6e7afc3093.jpg", + "https://o1.fengqingyang.ml/old/8327d9eb8a4a58e245e42bdba1088986.jpg", + "https://o1.fengqingyang.ml/old/686b3947982c3d71e858c1cf54a57008.jpg", + "https://o1.fengqingyang.ml/old/fdb180281f91812c308a96086c89c722.jpg", + "https://o1.fengqingyang.ml/old/3bb3d344f44a8902fa992330213cc4c1.jpg", + "https://o1.fengqingyang.ml/old/8c4a65edb3a1cdc2314a21f8f97b85d6.jpg", + "https://o1.fengqingyang.ml/old/46462fd9854b8bffb124c3a7c0ec08f4.jpg", + "https://o1.fengqingyang.ml/old/57cd5f9a67443f4708c90cf0b401d9c0.jpg", + "https://o1.fengqingyang.ml/old/8d049e84ff94652f84b11daae4e8f411.jpg", + "https://o1.fengqingyang.ml/old/92e6d30702489703abcc3c55cb6879de.jpg", + "https://o1.fengqingyang.ml/old/eac7fdfba2c57e73d84badad03145460.jpg", + "https://o1.fengqingyang.ml/old/5242b936219d9b8e3f5c82b6939212a7.jpg", + "https://o1.fengqingyang.ml/old/1a636d84e806996f8de3a401bc5ea3ab.jpg", + "https://o1.fengqingyang.ml/old/734a5d1f28cdde4cd8cd8d31859c6331.jpg", + "https://o1.fengqingyang.ml/old/7d067986b5227d28dda0f445eae5a587.jpg", + "https://o1.fengqingyang.ml/old/b70c150834cff176cdc13290d1d1116a.jpg", + "https://o1.fengqingyang.ml/old/d352954a9d1c831fd0de1d71cd48f5af.jpg", + "https://o1.fengqingyang.ml/old/d615181376186fa7c72ad99b72b3bac6.jpg", + "https://o1.fengqingyang.ml/old/d128755a13a117491fe2529596bea9d6.jpg", + "https://o1.fengqingyang.ml/old/ab4ee025ffda3f8b2b0db5953b07692e.jpg", + "https://o1.fengqingyang.ml/old/1201e68d538bef572c4c945f8a79809e.jpg", + "https://o1.fengqingyang.ml/old/7036dd0e7f6dec616c79393b82442da8.jpg", + "https://o1.fengqingyang.ml/old/3401804189972320ce56a61490dc5d6a.jpg", + "https://o1.fengqingyang.ml/old/8ca1efe91fdfb00be1e2fdc0989621a4.jpg", + "https://o1.fengqingyang.ml/old/f23ced656d59b2d06a83f77faa4af458.jpg", + "https://o1.fengqingyang.ml/old/204bedb807eb9d34a35cec4b4689ff57.jpg", + "https://o1.fengqingyang.ml/old/efa07ca01521140ae4e0869e4a98e73c.jpg", + "https://o1.fengqingyang.ml/old/9fa616589bda7d9eb97829e70c08e516.jpg", + "https://o1.fengqingyang.ml/old/f8b89809a5cd7eb05e1b2d9d7a1e9a05.jpg", + "https://o1.fengqingyang.ml/old/ee2addd901bfd667cf718e74376626eb.jpg", + "https://o1.fengqingyang.ml/old/0437296bc8a55339c629744ecd5f08bc.jpg", + "https://o1.fengqingyang.ml/old/102adc999edcc650f991528c7a7505fd.jpg", + "https://o1.fengqingyang.ml/old/fa41e8df93db546d5237741e265aca10.jpg", + "https://o1.fengqingyang.ml/old/7430cdc3ddc50210666fe4e895c04338.jpg", + "https://o1.fengqingyang.ml/old/ddc67bb0590a4e54bd5fdc600487d65e.jpg", + "https://o1.fengqingyang.ml/old/1d5ac27f01ea76fe0ef0997aea2da8b3.jpg", + "https://o1.fengqingyang.ml/old/5d2d980f61eec4dc3e5ad72c21de6405.jpg", + "https://o1.fengqingyang.ml/old/d18e265dbca6eaa9118d9cebf184d744.jpg", + "https://o1.fengqingyang.ml/old/761ffe5b0f63d267c8e5b84348b276e5.jpg", + "https://o1.fengqingyang.ml/old/a46d070338dd6b7135c6200c9ad750f6.jpg", + "https://o1.fengqingyang.ml/old/1025139ab3da9306b8e49cfd703870ae.jpg", + "https://o1.fengqingyang.ml/old/8a86cc8b38ee76b68b6ecdf7d3ba5d32.jpg", + "https://o1.fengqingyang.ml/old/574b708bd15cdf4555cb490ac53dbbdd.jpg", + "https://o1.fengqingyang.ml/old/da9041db11896228f11b77f69397a6bd.jpg", + "https://o1.fengqingyang.ml/old/4c3e115dc7f091c59ae77ec74f13f973.jpg", + "https://o1.fengqingyang.ml/old/98cb643b524b26948565114fdca4d2ac.jpg", + "https://o1.fengqingyang.ml/old/8a21a42d69608facc753bfdc519ec459.jpg", + "https://o1.fengqingyang.ml/old/6ac1add5c0f411ad5002c7873a55731e.jpg", + "https://o1.fengqingyang.ml/old/84b1cc6a83ae2d60138d0d54cd28b3cd.jpg", + "https://o1.fengqingyang.ml/old/5a4c75fb5496a2b199fef646973fcb72.jpg", + "https://o1.fengqingyang.ml/old/523acfcfe336726c716d27104555c7f4.jpg", + "https://o1.fengqingyang.ml/old/52731a4e7e258a321737cceb4adba464.jpg", + "https://o1.fengqingyang.ml/old/76f4373c0a47dac5f3077c9f007f6267.jpg", + "https://o1.fengqingyang.ml/old/96202752ad25d1d9ac218eab3e2b7f6a.jpg", + "https://o1.fengqingyang.ml/old/8d3603cb7e0d73877edc1583e29d4bf4.jpg", + "https://o1.fengqingyang.ml/old/83a77094700fe59ffc55a059ca312a07.jpg", + "https://o1.fengqingyang.ml/old/7601d27ef053e8b7ca185476011b09bf.jpg", + "https://o1.fengqingyang.ml/old/8a11d6bdc8bf81d562a608f672a41964.jpg", + "https://o1.fengqingyang.ml/old/34d0905790148a214f9d7f177206901b.jpg", + "https://o1.fengqingyang.ml/old/4b1b787fe50b47bd664b3c1d0f8bdbf0.jpg", + "https://o1.fengqingyang.ml/old/0878d1c6d4857a048bc8f4b66bc4fa28.jpg", + "https://o1.fengqingyang.ml/old/fe0e66156bebb50120e344a7b67e6070.jpg", + "https://o1.fengqingyang.ml/old/0cafdd41676a0db0e1c9c953d0fa2e46.jpg", + "https://o1.fengqingyang.ml/old/44e9d231fa3090c2b14e56faf60f696b.jpg", + "https://o1.fengqingyang.ml/old/c7064e26e79747e6ebd61c19c3681fc4.jpg", + "https://o1.fengqingyang.ml/old/398c395ddd4174f50db0eb3f7f061053.jpg", + "https://o1.fengqingyang.ml/old/4dd0759efc6823f4e4b80baba625ab0a.jpg", + "https://o1.fengqingyang.ml/old/32e103fb81270d8535145cbf6f5e7df8.jpg", + "https://o1.fengqingyang.ml/old/83d67b5774b219f7c7c8818f50a52071.jpg", + "https://o1.fengqingyang.ml/old/ebb3894d77eda7e0df3e29f9aa34d4ad.jpg", + "https://o1.fengqingyang.ml/old/f07cf2788d895559bfbe9e697e93b84c.jpg", + "https://o1.fengqingyang.ml/old/be5f5a76369924560643516555fd690b.jpg", + "https://o1.fengqingyang.ml/old/457de73eb9934fd11ed3aa952a6d1617.jpg", + "https://o1.fengqingyang.ml/old/955916ca79a7b33b19b280bd7f056c07.jpg", + "https://o1.fengqingyang.ml/old/4de932148cb457bc6f203803900a623a.jpg", + "https://o1.fengqingyang.ml/old/f5a66840621e7d22c639f96b1242eca5.jpg", + "https://o1.fengqingyang.ml/old/d4e725c1580e2be890dd5e22384bb68b.jpg", + "https://o1.fengqingyang.ml/old/5c0116f2cccb106a2d5b8cfe245ead12.jpg", + "https://o1.fengqingyang.ml/old/8d0d48906c59b34e54f1f7182907bd79.jpg", + "https://o1.fengqingyang.ml/old/4296ffea81bd0882347e651e977bc881.jpg", + "https://o1.fengqingyang.ml/old/d4016388bf7143ed43fcc2019b026f71.jpg", + "https://o1.fengqingyang.ml/old/d614bfc9a2571da229f40dd0b28913f6.jpg", + "https://o1.fengqingyang.ml/old/86d4102b4e257c52c86a0573a277ea93.jpg", + "https://o1.fengqingyang.ml/old/54545cb86d4bfbac154804944a7bee70.jpg", + "https://o1.fengqingyang.ml/old/5e221ae0080b1b6d4f081c1d9b3e22fb.jpg", + "https://o1.fengqingyang.ml/old/a029c21ebecb3ce4134f30b80bc59b1f.jpg", + "https://o1.fengqingyang.ml/old/2ec055c9bdbda85a0cea13d2ce4b2014.jpg", + "https://o1.fengqingyang.ml/old/55ee028b01e074ba95e91f21b478d8d9.jpg", + "https://o1.fengqingyang.ml/old/64f71640f052cebe10f703b9c6e0bef1.jpg", + "https://o1.fengqingyang.ml/old/f9c4a19ccdce9a3e4852195561ca14d1.jpg", + "https://o1.fengqingyang.ml/old/15d8810aabb912e66316f7d30e5f7fa4.jpg", + "https://o1.fengqingyang.ml/old/4b31d8188c907f87d3030b778e75eb89.jpg", + "https://o1.fengqingyang.ml/old/e302ed74d3e25e6d46fbde3359959965.jpg", + "https://o1.fengqingyang.ml/old/d28da4de33af168c487c1c9daabbb83e.jpg", + "https://o1.fengqingyang.ml/old/db9a1473de0bcad26848646dfb773291.jpg", + "https://o1.fengqingyang.ml/old/67feeb0875a9a90319de55614288667e.jpg", + "https://o1.fengqingyang.ml/old/b587a59fd0ea96b14c3b31cc800f6144.jpg", + "https://o1.fengqingyang.ml/old/21c168e280209a7b6dd703c2f8f08979.jpg", + "https://o1.fengqingyang.ml/old/2573e6ae18c85ac53fc3454d1f8e0c7b.jpg", + "https://o1.fengqingyang.ml/old/e285f3d4a11bf995d5a3c62b45096a6a.jpg", + "https://o1.fengqingyang.ml/old/0e8a89edc6059cd8d5748d2d4f7f0fe5.jpg", + "https://o1.fengqingyang.ml/old/28d82f4bf9ea6ccb452cda57e03f601d.jpg", + "https://o1.fengqingyang.ml/old/41b8565871d109e4fb6c9518a834f658.jpg", + "https://o1.fengqingyang.ml/old/7994290d9b61081a8c3a1fd8c56d7ca3.jpg", + "https://o1.fengqingyang.ml/old/7d2927d8aa1ec23b2bbce584d1960018.jpg", + "https://o1.fengqingyang.ml/old/201326f17bcea77050ea62fa76015c47.jpg", + "https://o1.fengqingyang.ml/old/e6ea335a9b5ce123dd3e8c261d9952ac.jpg", + "https://o1.fengqingyang.ml/old/d817c20e9746e18b8bdae37c0086f0fe.jpg", + "https://o1.fengqingyang.ml/old/2152ff2059c4083bce141fca5bc2d8e5.jpg", + "https://o1.fengqingyang.ml/old/79e7d97670b2bddffda9c1f5fad3f0f5.jpg", + "https://o1.fengqingyang.ml/old/8dc9934f13ecf6958684c1e275e2172e.jpg", + "https://o1.fengqingyang.ml/old/a7061a6628f83e21f4e7db7a061c248c.jpg", + "https://o1.fengqingyang.ml/old/2d28cd3d79af9a40abd5c7be5ab202ea.jpg", + "https://o1.fengqingyang.ml/old/3e40807e5c085235bc0400c8150633e6.jpg", + "https://o1.fengqingyang.ml/old/4f3f8bb627fd2f2f42ae2c55b2f3380b.jpg", + "https://o1.fengqingyang.ml/old/72799398b55bf6742d3bb62c8689b167.jpg", + "https://o1.fengqingyang.ml/old/a2aaaecfe92628f6c81e84b8c8faf5d7.jpg", + "https://o1.fengqingyang.ml/old/75c03046e48c81f747cbeae7e4ae0bee.jpg", + "https://o1.fengqingyang.ml/old/9ab47b5ea69313327df654274bad1114.jpg", + "https://o1.fengqingyang.ml/old/7b7e82b0dab7813fc4ed7625f087b6e8.jpg", + "https://o1.fengqingyang.ml/old/3fc6bc9526b4a94b8631b25bbbb2e406.jpg", + "https://o1.fengqingyang.ml/old/6eaf51fed71095b82754389e3cd34847.jpg", + "https://o1.fengqingyang.ml/old/b1624071ba75ec46586e8384ce41d8c1.jpg", + "https://o1.fengqingyang.ml/old/f320df237876e2b32bd96400f89a0c9e.jpg", + "https://o1.fengqingyang.ml/old/3d261e2e20f3b4df559fe1285f841415.jpg", + "https://o1.fengqingyang.ml/old/ef3cee6a575b798f02cd386c25e76344.jpg", + "https://o1.fengqingyang.ml/old/2f43a3e96e650f106f770378e3d1569a.jpg", + "https://o1.fengqingyang.ml/old/ca47c3591d38157db8f77056ec92d61d.jpg", + "https://o1.fengqingyang.ml/old/a8916c43c7d73c6bb610be4cf779c3dc.jpg", + "https://o1.fengqingyang.ml/old/555b8957db366cb6fdf381e2e53cbe6c.jpg", + "https://o1.fengqingyang.ml/old/f5f9ed0705de1f80857061eb9f384285.jpg", + "https://o1.fengqingyang.ml/old/0ae34b17db25d2ba4aa6ba5cecc138f5.jpg", + "https://o1.fengqingyang.ml/old/abf898534487ea886bc92f5a6ae063c9.jpg", + "https://o1.fengqingyang.ml/old/c7f5c29dc69dd3502407b9a9f5478b03.jpg", + "https://o1.fengqingyang.ml/old/6a36415ab6e0a1d5d4e5f5ca9ca2ed89.jpg", + "https://o1.fengqingyang.ml/old/8e7533ab12c61bbcf2ea66eec62defa8.jpg", + "https://o1.fengqingyang.ml/old/54e371346006940468d4d2c8efeb2dfe.jpg", + "https://o1.fengqingyang.ml/old/639c271427f18740d5fb279caf511082.jpg", + "https://o1.fengqingyang.ml/old/cea9ed07d0866bc68cfd21cc552e496d.jpg", + "https://o1.fengqingyang.ml/old/371f01d2c82a267bebeead90a889457f.jpg", + "https://o1.fengqingyang.ml/old/c13680016e9e00b533cb1c77626c194a.jpg", + "https://o1.fengqingyang.ml/old/10903d6b986eb816cb7e71ce4df7f427.jpg", + "https://o1.fengqingyang.ml/old/06de206eeaf2eb7ae5e6a750fb95bcee.jpg", + "https://o1.fengqingyang.ml/old/ae4c4b04b5e6dffbeba9e0c40007c738.jpg", + "https://o1.fengqingyang.ml/old/c976a7b4f025fe03547a5c88e95aebfa.jpg", + "https://o1.fengqingyang.ml/old/190a7b9ad8834be71298889deed80a14.jpg", + "https://o1.fengqingyang.ml/old/2e85e5b7a4b1a95c7f726fd67fe309ac.jpg", + "https://o1.fengqingyang.ml/old/a489ca7245bd847fccc1b3e18906255d.jpg", + "https://o1.fengqingyang.ml/old/e29b0ba33af533fcb12aa40bd3c8f6d3.jpg", + "https://o1.fengqingyang.ml/old/2de457a8c5ce249765fd99d6e5890dad.jpg", + "https://o1.fengqingyang.ml/old/b44c39d714518a770f79a1e462af2bd3.jpg", + "https://o1.fengqingyang.ml/old/45c99f513e2286e870a7e897ea75b705.jpg", + "https://o1.fengqingyang.ml/old/565c1ec1b0310981bff0455cb52eecde.jpg", + "https://o1.fengqingyang.ml/old/7300d48235c580ae77111a69d522d992.jpg", + "https://o1.fengqingyang.ml/old/29c2cc10b75cb09af5b8b04d31e6269b.jpg", + "https://o1.fengqingyang.ml/old/689b23d61201411352d85d0379f30aca.jpg", + "https://o1.fengqingyang.ml/old/81d028826ab0bc9b8ffa5bc8f36bc88d.jpg", + "https://o1.fengqingyang.ml/old/3ceeaf2da90e806eea6b3018f6ce221b.jpg", + "https://o1.fengqingyang.ml/old/7f797598716570b6133beecbcc2a58ed.jpg", + "https://o1.fengqingyang.ml/old/843b9f768667e45686297576eb992d0f.jpg", + "https://o1.fengqingyang.ml/old/e4775c9acb3579fd2361e0631676cdb3.jpg", + "https://o1.fengqingyang.ml/old/37f42416cb2cbffd9476a8df41e6deb3.jpg", + "https://o1.fengqingyang.ml/old/27c3688485c7bf2f65a11c611c3f3723.jpg", + "https://o1.fengqingyang.ml/old/1f830439e1be155b577db3ba8cc88c24.jpg", + "https://o1.fengqingyang.ml/old/c2543a3abc2bc6b9f4e3b0411721561a.jpg", + "https://o1.fengqingyang.ml/old/18f7f6dc8d4d07c850184aea5401f686.jpg", + "https://o1.fengqingyang.ml/old/8799c52c29277b44c24c7539a82a60c8.jpg", + "https://o1.fengqingyang.ml/old/1d253631a7366fa0c40a1597cf87af29.jpg", + "https://o1.fengqingyang.ml/old/a8bcb517e846dd3de9add210fe6b92c0.jpg", + "https://o1.fengqingyang.ml/old/af8e3e529f8e89118ae15ac2e65de320.jpg", + "https://o1.fengqingyang.ml/old/eeba357673379de8371f436d3411223e.jpg", + "https://o1.fengqingyang.ml/old/54d7ee9b49c344f16487994b08d0baf1.jpg", + "https://o1.fengqingyang.ml/old/e2fd5e71ce036e1b4a19228f4e2a9ff6.jpg", + "https://o1.fengqingyang.ml/old/81f0f3729d15041b25298b4a314527a7.jpg", + "https://o1.fengqingyang.ml/old/973512fb3a928346f3c45ea4b499a49f.jpg", + "https://o1.fengqingyang.ml/old/786c2a21da450ac85519ea09471b56fe.jpg", + "https://o1.fengqingyang.ml/old/2a2ff11d3c6700307a01c6710a92bead.jpg", + "https://o1.fengqingyang.ml/old/83650876147c07a2415e2d8df0ff1385.jpg", + "https://o1.fengqingyang.ml/old/d9a4d5490de579acf066f37cdc4a6ff9.jpg", + "https://o1.fengqingyang.ml/old/91c14b08b8259a7f7a20a04534525be1.jpg", + "https://o1.fengqingyang.ml/old/70ce4248ad726087628166f1a1396b5b.jpg", + "https://o1.fengqingyang.ml/old/8b3897555170fc22e93a0b2841f1a5ce.jpg", + "https://o1.fengqingyang.ml/old/b9015203ebd6413b36f5984a89d7db25.jpg", + "https://o1.fengqingyang.ml/old/8967105ad90595c14a7f1cf66ba7b74e.jpg", + "https://o1.fengqingyang.ml/old/cac1e75bbab9b004e1bfe0b6ac688eef.jpg", + "https://o1.fengqingyang.ml/old/db12bc94bc553721e2ecd2a6019e9638.jpg", + "https://o1.fengqingyang.ml/old/188322f56a6e547d956aa6cf9059acfc.jpg", + "https://o1.fengqingyang.ml/old/09170a6cc37cb5f76ef00f2faf1ba49b.jpg", + "https://o1.fengqingyang.ml/old/2c7e0f88d3c1e8a9e3fd6d23f113b571.jpg", + "https://o1.fengqingyang.ml/old/6426728d4659c8349277ea1b5337d208.jpg", + "https://o1.fengqingyang.ml/old/5be00c256159395aed946527c290675a.jpg", + "https://o1.fengqingyang.ml/old/fd720e435a5e446b557f4c7984d336ee.jpg", + "https://o1.fengqingyang.ml/old/c0e3b1697a2ff3ee759f1c7d752db8f5.jpg", + "https://o1.fengqingyang.ml/old/b5501fe1737b88bf67709c6c65ed565e.jpg", + "https://o1.fengqingyang.ml/old/49a3a9b6bad4eaef578ea0e1ca91d098.jpg", + "https://o1.fengqingyang.ml/old/a894d32bedc0777caa280f3e9e67a1d7.jpg", + "https://o1.fengqingyang.ml/old/a70e950824de8fb122614c79b18189d4.jpg", + "https://o1.fengqingyang.ml/old/22775ceabb65b54313fac68fe2d02e5f.jpg", + "https://o1.fengqingyang.ml/old/7d7763baf7d8a8bc6013b2dcdc14d73c.jpg", + "https://o1.fengqingyang.ml/old/becdf84aa440d1840fe069449574dd90.jpg", + "https://o1.fengqingyang.ml/old/50561a6ad669ff6801e4c533409f478b.jpg", + "https://o1.fengqingyang.ml/old/7fe26eb3668949d1267ef8453d57387a.jpg", + "https://o1.fengqingyang.ml/old/886c296188cea775ab8b961e44f3d6cd.jpg", + "https://o1.fengqingyang.ml/old/dfa8372828c9f61b7d299435b0592400.jpg", + "https://o1.fengqingyang.ml/old/8b17d0d6afcca252d6d62c871ea781ad.jpg", + "https://o1.fengqingyang.ml/old/5d2adf3cad859142d6bf181f60cd579f.jpg", + "https://o1.fengqingyang.ml/old/a380d6148c407cffab98a36ac33cb714.jpg", + "https://o1.fengqingyang.ml/old/2f3533886b34ee026c804e11671f52af.jpg", + "https://o1.fengqingyang.ml/old/c86e86e76b3353b68bdc96a375f93505.jpg", + "https://o1.fengqingyang.ml/old/b389298fd9956741a8c2b683c8db4f4b.jpg", + "https://o1.fengqingyang.ml/old/a4ae266dfdc0f2354ff1096af08956ac.jpg", + "https://o1.fengqingyang.ml/old/c088125e125590006b41659f3b9c261a.jpg", + "https://o1.fengqingyang.ml/old/8cb5beeaa75460e99a1febfa09bc6eae.jpg", + "https://o1.fengqingyang.ml/old/c878eb3aeaaf478a97983c55162de4d4.jpg", + "https://o1.fengqingyang.ml/old/bd1667be18a873fa7f4443e9275def95.jpg", + "https://o1.fengqingyang.ml/old/cebec26f093c2203357ae3616910c22c.jpg", + "https://o1.fengqingyang.ml/old/bf2acbb8b565eccf6b2af1f1db85aee6.jpg", + "https://o1.fengqingyang.ml/old/7698c1fe8a36a48d5f1e1badffa53c2d.jpg", + "https://o1.fengqingyang.ml/old/d545f7a0100e85219af89bbcb3f5541c.jpg", + "https://o1.fengqingyang.ml/old/f0eeef90825dddf0698df21e15c93f3c.jpg", + "https://o1.fengqingyang.ml/old/6fc650c12d3139182bbfebb4153d637a.jpg", + "https://o1.fengqingyang.ml/old/08c991221649e9a5d15a7a9f66376abb.jpg", + "https://o1.fengqingyang.ml/old/1ed0431d72f7731f890b73cf64307511.jpg", + "https://o1.fengqingyang.ml/old/2d12cc4366133b8a16c14f6354e3507e.jpg", + "https://o1.fengqingyang.ml/old/c4fe29df9ad90cb376253d57dec5cda0.jpg", + "https://o1.fengqingyang.ml/old/f5687fbec6ddf7105ef4055db1278fe6.jpg", + "https://o1.fengqingyang.ml/old/6f62f90f2665ccdacb4f755ca2cd92d3.jpg", + "https://o1.fengqingyang.ml/old/a84bcf178a155d5a68ec6fe71c2d9508.jpg", + "https://o1.fengqingyang.ml/old/4c8e021c8c0bb5822dd357ca0d072598.jpg", + "https://o1.fengqingyang.ml/old/09b5312444f762a01165f5c2759bea5f.jpg", + "https://o1.fengqingyang.ml/old/f0014e4b616f06e788a24841392fc488.jpg", + "https://o1.fengqingyang.ml/old/31d4a8ac6aeb668db844c4b57aedf1de.jpg", + "https://o1.fengqingyang.ml/old/eb845ec60d9b2e727548ba3925c0788d.jpg", + "https://o1.fengqingyang.ml/old/5e744a3e2b736764b56c4bace00983fa.jpg", + "https://o1.fengqingyang.ml/old/92745483aa6b4af169ea042c1bc2e341.jpg", + "https://o1.fengqingyang.ml/old/0b17ce52da5672019912bec37e028701.jpg", + "https://o1.fengqingyang.ml/old/cb4f2121cc91d0b3ded558d67950c572.jpg", + "https://o1.fengqingyang.ml/old/cfebcc514bf361adf2dbfd6f8a823314.jpg", + "https://o1.fengqingyang.ml/old/6f51cd34020ad49df321a49f87618e42.jpg", + "https://o1.fengqingyang.ml/old/505255399ff6049c920dff8736e15143.jpg", + "https://o1.fengqingyang.ml/old/cc51b2f7ac61376f058d9d4ba4853bf9.jpg", + "https://o1.fengqingyang.ml/old/c82273c8b3111d81958bc2e8d7d07ea5.jpg", + "https://o1.fengqingyang.ml/old/f93402921b5cf7aed19e593d68bfcbde.jpg", + "https://o1.fengqingyang.ml/old/4582fde42068b7237c71033927d32d9a.jpg", + "https://o1.fengqingyang.ml/old/ed7ac4115ca22003250a528f3c0de877.jpg", + "https://o1.fengqingyang.ml/old/65c7178953a5e7a259b4ab3c5dfcdba7.jpg", + "https://o1.fengqingyang.ml/old/7a891fbe682d866b7b9c15744d069d0e.jpg", + "https://o1.fengqingyang.ml/old/da220e0ee48a4a07d118a75114b47afe.jpg", + "https://o1.fengqingyang.ml/old/a16051680d734f05a883fb61e219c2a7.jpg", + "https://o1.fengqingyang.ml/old/9ba2b5de9c3facd2bb3deeba1b2cfe68.jpg", + "https://o1.fengqingyang.ml/old/12b0727da86a718ee140798b1a57e41e.jpg", + "https://o1.fengqingyang.ml/old/db5ae549e1c8cc1822cfa32ff23ab0b4.jpg", + "https://o1.fengqingyang.ml/old/d710f97262ebe319acc689151a3caa18.jpg", + "https://o1.fengqingyang.ml/old/a019c72bb03148c1aa81457d1e4cb1e7.jpg", + "https://o1.fengqingyang.ml/old/6df95a451379033bb1cbdc3ee0bbd0fb.jpg", + "https://o1.fengqingyang.ml/old/c428ae667e7912a28667515ff4a293f2.jpg", + "https://o1.fengqingyang.ml/old/aed6d59943966cba77ac24577c641c2a.jpg", + "https://o1.fengqingyang.ml/old/e3beaebcf9e26aa4ddda7cba9824fd71.jpg", + "https://o1.fengqingyang.ml/old/14d1e981b546e51f95a9d018bc5856be.jpg", + "https://o1.fengqingyang.ml/old/f22fb6cbc62107ff35422a861be63bee.jpg", + "https://o1.fengqingyang.ml/old/d414a712bf248fc7757dd6a59ca365f2.jpg", + "https://o1.fengqingyang.ml/old/fcb02fd61db0cb21a37d0b168b70c726.jpg", + "https://o1.fengqingyang.ml/old/a91d145f55e3e8287c635e79adff5dde.jpg", + "https://o1.fengqingyang.ml/old/082e0b74dd1f1f0340b86b175f771147.jpg", + "https://o1.fengqingyang.ml/old/82d751352878f9dd3d06bf2f057bbae3.jpg", + "https://o1.fengqingyang.ml/old/f0253d4e59211d83441a425050914372.jpg", + "https://o1.fengqingyang.ml/old/af839e407b0f3b2f3d37e9ccada86e4f.jpg", + "https://o1.fengqingyang.ml/old/7da658544e88cf2fc1c3df22ac40c372.jpg", + "https://o1.fengqingyang.ml/old/41062dbf024db3bbb97c782bf2923ca9.jpg", + "https://o1.fengqingyang.ml/old/fd46e2bb5c84d205a4b1d1e23d0bcfb8.jpg", + "https://o1.fengqingyang.ml/old/ed497aa3a86ffb1a31f9e274ad91b15e.jpg", + "https://o1.fengqingyang.ml/old/dbbeca3ef961e6020d5d0c4c5f3cb9a9.jpg", + "https://o1.fengqingyang.ml/old/bfb4dca7e5861cb0db3e57801af765db.jpg", + "https://o1.fengqingyang.ml/old/8060eefb9c9b1abd57216ceadb03f7e6.jpg", + "https://o1.fengqingyang.ml/old/0e7719d6dba94958561422df31fe6919.jpg", + "https://o1.fengqingyang.ml/old/353170425bf1dc1048648677d855e881.jpg", + "https://o1.fengqingyang.ml/old/32ab74e7cf084ca62718eb10f9a20a5b.jpg", + "https://o1.fengqingyang.ml/old/1f2238585c559fc059a801bf011e2d5b.jpg", + "https://o1.fengqingyang.ml/old/6f750b043741af282105c8570edfaa0f.jpg", + "https://o1.fengqingyang.ml/old/b1a006ff37d84058c36bc403fd5c2b3d.jpg", + "https://o1.fengqingyang.ml/old/a2553155f0892852830dd9a241683e3b.jpg", + "https://o1.fengqingyang.ml/old/84fd5a824f3c493c6059ca8d640e088c.jpg", + "https://o1.fengqingyang.ml/old/a1765f0d7da659765c77c7c17d05014c.jpg", + "https://o1.fengqingyang.ml/old/7f525d0cfd3974e8cebdfa9b3c457e4b.jpg", + "https://o1.fengqingyang.ml/old/b8d9617b7f6070e1168dbe14ee14d011.jpg", + "https://o1.fengqingyang.ml/old/ba9c39a7ea513d907a80803b49cfb026.jpg", + "https://o1.fengqingyang.ml/old/ac744b6bd9a74e0ad241ea05251f961f.jpg", + "https://o1.fengqingyang.ml/old/794ebc12eab90f85b64f4bfd50496950.jpg", + "https://o1.fengqingyang.ml/old/3cd6bd33fbdeea2709a7390607a18158.jpg", + "https://o1.fengqingyang.ml/old/bb59a11e2c8e28c10363ad813541b62a.jpg", + "https://o1.fengqingyang.ml/old/4fbfba5bd92b8e570c5e7d39531491df.jpg", + "https://o1.fengqingyang.ml/old/5015fd342ef580372fa553d3a0cd26cd.jpg", + "https://o1.fengqingyang.ml/old/ac8eaaf1d9d6571e89ff97c4f1555054.jpg", + "https://o1.fengqingyang.ml/old/9acf3b0cce9c648bcf227da19f2a9baf.jpg", + "https://o1.fengqingyang.ml/old/f05305257e195d9cf12df76516adaba5.jpg", + "https://o1.fengqingyang.ml/old/1f9adbd96f9a7c6af72e90513f242326.jpg", + "https://o1.fengqingyang.ml/old/51329fde9bfa9f000377d69868994cbc.jpg", + "https://o1.fengqingyang.ml/old/6d2af04055883686672768a960273769.jpg", + "https://o1.fengqingyang.ml/old/8e3dd1fa27bdafac951212d7305eff4d.jpg", + "https://o1.fengqingyang.ml/old/98398417d634384c4688a0a23060149c.jpg", + "https://o1.fengqingyang.ml/old/f874470bbe3070f0a9023e8fec9992e7.jpg", + "https://o1.fengqingyang.ml/old/072410a769569a31d7f6f7e7da9d5248.jpg", + "https://o1.fengqingyang.ml/old/3b20c40d00b50d2ae9c260e9b29408b9.jpg", + "https://o1.fengqingyang.ml/old/09f7ed36e9774e50115ca71634d8e728.jpg", + "https://o1.fengqingyang.ml/old/4c903d8ff49c797996c5de3cd87c823e.jpg", + "https://o1.fengqingyang.ml/old/f9975db942a586589f2480ad7cd6b618.jpg", + "https://o1.fengqingyang.ml/old/1152bb031a1ace2209b719c3394ff58c.jpg", + "https://o1.fengqingyang.ml/old/65f0e44a576343877cd2817132167dfb.jpg", + "https://o1.fengqingyang.ml/old/2805ab47546cd79d3c7f774712b769a0.jpg", + "https://o1.fengqingyang.ml/old/e5ef557fa170ca9f41e05f1621c69bcf.jpg", + "https://o1.fengqingyang.ml/old/59c19087bd0f4e2a11d6e0a56274aa10.jpg", + "https://o1.fengqingyang.ml/old/924ccd67e1f3a8d61657dd2be55ef474.jpg", + "https://o1.fengqingyang.ml/old/1c4a10ad5d7a0ffe46dadfad60e04cbb.jpg", + "https://o1.fengqingyang.ml/old/6a2488f2a3cfdef39dfca5f001ef23b2.jpg", + "https://o1.fengqingyang.ml/old/92b91a12be70dafb287ff36b671d69c1.jpg", + "https://o1.fengqingyang.ml/old/53a3020ab5c69519227df3b9ddcb3398.jpg", + "https://o1.fengqingyang.ml/old/982b594b481a9876e38ebe3db7cbd970.jpg", + "https://o1.fengqingyang.ml/old/1d07fb102de587d59d67e431e09c146b.jpg", + "https://o1.fengqingyang.ml/old/8ee5b17bcfe4dab5d5a2014d00533f95.jpg", + "https://o1.fengqingyang.ml/old/e5880b0aad118eb4d58e52fd8078da81.jpg", + "https://o1.fengqingyang.ml/old/066ad38aa039eed741126e69a510a4cc.jpg", + "https://o1.fengqingyang.ml/old/22bbd0b8db0234a1e943553bcd5358d7.jpg", + "https://o1.fengqingyang.ml/old/ec7dbfb71489be767af268467fe93bb5.jpg", + "https://o1.fengqingyang.ml/old/0126bf28032ea57f9edd53e25658cbc6.jpg", + "https://o1.fengqingyang.ml/old/dd9aa170bbaba75ed99b2bafa080e58b.jpg", + "https://o1.fengqingyang.ml/old/93ba6a06761d5ee0e5147f5c806aa660.jpg", + "https://o1.fengqingyang.ml/old/b1df0f37dcc49bb4ddda6215d32a5757.jpg", + "https://o1.fengqingyang.ml/old/7b459574244af7ce7cc0ef71ed59109e.jpg", + "https://o1.fengqingyang.ml/old/5c60f0da0a39e0d9dce4d7fc5a5af840.jpg", + "https://o1.fengqingyang.ml/old/33ed81a06dd80adaf6c93e7b460460fd.jpg", + "https://o1.fengqingyang.ml/old/45809004086d9478b9fbd50fafcf7df0.jpg", + "https://o1.fengqingyang.ml/old/d451c3393f0150ada4fbb166809910a9.jpg", + "https://o1.fengqingyang.ml/old/5bd2ea9a4f137e4f7c863f864bae370c.jpg", + "https://o1.fengqingyang.ml/old/206ccc5b79fe77ec4d23234df34811fd.jpg", + "https://o1.fengqingyang.ml/old/fdc9d79a82064067bdfcf27e369b01e1.jpg", + "https://o1.fengqingyang.ml/old/08773af3bf9669c3ebe76006db1bee14.jpg", + "https://o1.fengqingyang.ml/old/189409ebc55f093c2b7c77dba1c2f81f.jpg", + "https://o1.fengqingyang.ml/old/9e8d975d1215a38bad46c87277b26f71.jpg", + "https://o1.fengqingyang.ml/old/76ea4d5f658ce736e4ca3943944139cd.jpg", + "https://o1.fengqingyang.ml/old/1399dbaca738a72dab1d91367e66a9e5.jpg", + "https://o1.fengqingyang.ml/old/6cc0778283e1519850eb80a885e1b324.jpg", + "https://o1.fengqingyang.ml/old/481f52ea5bf614c2e97f8dcf84868cb9.jpg", + "https://o1.fengqingyang.ml/old/a785de1317bab30d69e0429bcd218858.jpg", + "https://o1.fengqingyang.ml/old/a462c8530af4bd9ab6d2a0ee69af87a5.jpg", + "https://o1.fengqingyang.ml/old/9dd1f742cba05520dd1cbfaf758d25d7.jpg", + "https://o1.fengqingyang.ml/old/267f93c3a5b27cd66658f6fe64757186.jpg", + "https://o1.fengqingyang.ml/old/4e96a7e1777ac0d48bda9c348c620ec9.jpg", + "https://o1.fengqingyang.ml/old/d9ac5011d43b0b6c7b81ed65b5fdc325.jpg", + "https://o1.fengqingyang.ml/old/447d6ca41702d5083748f524c5bb3453.jpg", + "https://o1.fengqingyang.ml/old/55baa07add0125a7aeadd40a0ecd5c9f.jpg", + "https://o1.fengqingyang.ml/old/fe6af97fb29069118dfdbe3df5168b47.jpg", + "https://o1.fengqingyang.ml/old/00bb9f583cc104ba658aad6b56349ff4.jpg", + "https://o1.fengqingyang.ml/old/b307b863d006c17be8a6f519f6c3fbe5.jpg", + "https://o1.fengqingyang.ml/old/142fc6a52e60c2044a05b3e28e274a18.jpg", + "https://o1.fengqingyang.ml/old/fd88c8d0a1cdd3a9a54c81aa3d229368.jpg", + "https://o1.fengqingyang.ml/old/208f21d9b105a6a0794bb91d7ad3c66d.jpg", + "https://o1.fengqingyang.ml/old/12f48c811c38ed429e201bf70b24591d.jpg", + "https://o1.fengqingyang.ml/old/4b853f8147c7614cb79e2701a0e551a6.jpg", + "https://o1.fengqingyang.ml/old/bbf0f10edf6b22510a437fb2b0311ca5.jpg", + "https://o1.fengqingyang.ml/old/8523c2fd3a510412907054095304f3a5.jpg", + "https://o1.fengqingyang.ml/old/776a0284e650d95aaf61d56033da2332.jpg", + "https://o1.fengqingyang.ml/old/a038165c047db4fe88d7230c7c731483.jpg", + "https://o1.fengqingyang.ml/old/6f98abd71e1c760fe3d21c7cabb78aeb.jpg", + "https://o1.fengqingyang.ml/old/1d862b9cc46bcad87364ce34e5ae51cb.jpg", + "https://o1.fengqingyang.ml/old/c038111904233e7751914e26ab76869f.jpg", + "https://o1.fengqingyang.ml/old/cfb264ccc4f239d296d2657078bdce5a.jpg", + "https://o1.fengqingyang.ml/old/59f16b76cec587367d0cd7b703e244fe.jpg", + "https://o1.fengqingyang.ml/old/81452190e6e49d26d54782518413b394.jpg", + "https://o1.fengqingyang.ml/old/9505597a46c40b8767f2449f7d5e5b06.jpg", + "https://o1.fengqingyang.ml/old/4aa419de8ac3d281a2c3dede1da59c01.jpg", + "https://o1.fengqingyang.ml/old/bb8b1ffaf54013328f924ad95a27bdda.jpg", + "https://o1.fengqingyang.ml/old/53f106e298f09bd4ce7a28c95f3e1959.jpg", + "https://o1.fengqingyang.ml/old/62323e65d2e97acb54909443653d7cb3.jpg", + "https://o1.fengqingyang.ml/old/4575296a9b2246f56bc321ad6811cf13.jpg", + "https://o1.fengqingyang.ml/old/019abdaeaf6dc504b71d726b736c063a.jpg", + "https://o1.fengqingyang.ml/old/b44a0f25fe83d6f694b52b19eea7afc3.jpg", + "https://o1.fengqingyang.ml/old/71a3d887ae9aa05c6c40d960ac7896dd.jpg", + "https://o1.fengqingyang.ml/old/776b591c72327f006eb1179d492c73db.jpg", + "https://o1.fengqingyang.ml/old/e9275782e1f64daecb2964a67cb712a7.jpg", + "https://o1.fengqingyang.ml/old/2e3349f6485319a04792b85ffc84f33e.jpg", + "https://o1.fengqingyang.ml/old/5187ff3c13922efbd281d143571eaa17.jpg", + "https://o1.fengqingyang.ml/old/a1a30cd459712dea3155171522a5b401.jpg", + "https://o1.fengqingyang.ml/old/a3e45bbcd47e607394994aa9ac6ba91e.jpg", + "https://o1.fengqingyang.ml/old/a0cb16d2cf82ac8bc60db50c4492e1e3.jpg", + "https://o1.fengqingyang.ml/old/369a4501ce5631a83bc53c90d19b514d.jpg", + "https://o1.fengqingyang.ml/old/980705b1b4fac6d9aa2f38bbbc798113.jpg", + "https://o1.fengqingyang.ml/old/3716e089eb5ebaab73910e129736fe03.jpg", + "https://o1.fengqingyang.ml/old/6ecda584fc6bef362f8fae7fbb5730ab.jpg", + "https://o1.fengqingyang.ml/old/56964632abbda61f61b796c8bd3fcef2.jpg", + "https://o1.fengqingyang.ml/old/21380a079510123863fa111a3ef9ac5c.jpg", + "https://o1.fengqingyang.ml/old/e505c77428bdd1e2c465a672718a708c.jpg", + "https://o1.fengqingyang.ml/old/670eef39245aba3d656ebd3724d82215.jpg", + "https://o1.fengqingyang.ml/old/14b0be133da2f9d52ee8db7e3e390f18.jpg", + "https://o1.fengqingyang.ml/old/4f4eefedef2476ecfc96296e1b96fbda.jpg", + "https://o1.fengqingyang.ml/old/47a12cc1f0cf3d79ccacfdfd7a3c07f4.jpg", + "https://o1.fengqingyang.ml/old/65f599b3ba4135082a0cc3c07080711e.jpg", + "https://o1.fengqingyang.ml/old/0c806cc829d0ef886a55e220413c3cf2.jpg", + "https://o1.fengqingyang.ml/old/41735b5a05fcd1a88571c7d51c13cf76.jpg", + "https://o1.fengqingyang.ml/old/71c92cf963e3305e3d35370064a8223b.jpg", + "https://o1.fengqingyang.ml/old/40e340dfa2db0ba5dd6c04b76981557c.jpg", + "https://o1.fengqingyang.ml/old/db2302eb13f395980d899e55a95999b2.jpg", + "https://o1.fengqingyang.ml/old/caf45e50c38dc03ecd18289855fbc575.jpg", + "https://o1.fengqingyang.ml/old/444d87ab7caa23968dd7407ed42f5199.jpg", + "https://o1.fengqingyang.ml/old/9bf88fa286a383a1d60e89dbdde18781.jpg", + "https://o1.fengqingyang.ml/old/6efb44c0585275612a6fc038c297ab67.jpg", + "https://o1.fengqingyang.ml/old/624b8e2dcf696960d784015424cfb6f6.jpg", + "https://o1.fengqingyang.ml/old/5f3b0fc30be3baac9638a68aee313552.jpg", + "https://o1.fengqingyang.ml/old/e0a99763fb0875234a9df5cf60639e69.jpg", + "https://o1.fengqingyang.ml/old/d7d4af8469f28c759e525d2a355952a8.jpg", + "https://o1.fengqingyang.ml/old/1177a1c41c94ca20fc5cf80f1f6e5fe7.jpg", + "https://o1.fengqingyang.ml/old/0b08cdc8ded3341c2c2dadb5c3f91347.jpg", + "https://o1.fengqingyang.ml/old/00178280b236e815a9bd8984614b2e22.jpg", + "https://o1.fengqingyang.ml/old/dc0f25dbc1cea7285c938c02dfe658ae.jpg", + "https://o1.fengqingyang.ml/old/da9c92df2908398adde959deb0d4b74d.jpg", + "https://o1.fengqingyang.ml/old/d42d1804246f98f0f74e596f93a140ca.jpg", + "https://o1.fengqingyang.ml/old/93e39b35c49e45de57c12b348241d924.jpg", + "https://o1.fengqingyang.ml/old/d6addd386872851ede4fe1f94e9efc03.jpg", + "https://o1.fengqingyang.ml/old/f1a3325b962e0da8cddc13d46cb279af.jpg", + "https://o1.fengqingyang.ml/old/e95c5cf7fa397215f2ff32d8fc7ce2f4.jpg", + "https://o1.fengqingyang.ml/old/b047eda3dc4b43ba755cece8664a22b1.jpg", + "https://o1.fengqingyang.ml/old/4a44536b700f974da40ba209c2b915a0.jpg", + "https://o1.fengqingyang.ml/old/ec936cab8cf321bb4b521f084666f8b5.jpg", + "https://o1.fengqingyang.ml/old/e1ce2dcdcc443cca2b2451496129dfbc.jpg", + "https://o1.fengqingyang.ml/old/0ab5a2f541b3ea152621916de9bfa640.jpg", + "https://o1.fengqingyang.ml/old/07a2de6326a8a208144070027cb739fa.jpg", + "https://o1.fengqingyang.ml/old/c6a6d5c5eda4ad685158f1a89327e3aa.jpg", + "https://o1.fengqingyang.ml/old/ea0913e1d83b18fc4e46b74a3c2e4890.jpg", + "https://o1.fengqingyang.ml/old/b366aca19774dbbc1481d4259cd29856.jpg", + "https://o1.fengqingyang.ml/old/a1e6648d42fe87c94e38b4689f087904.jpg", + "https://o1.fengqingyang.ml/old/3e7d26ea186ef6716e570b5dd0704e6f.jpg", + "https://o1.fengqingyang.ml/old/be26333c0cafdb4cb4551083b63465e8.jpg", + "https://o1.fengqingyang.ml/old/48410c88ec4f29d445127ea849eb1feb.jpg", + "https://o1.fengqingyang.ml/old/b53610ee9e51511fc003d21eb85c77b9.jpg", + "https://o1.fengqingyang.ml/old/14efbe2249fbd453f785ade1fe2f58bd.jpg", + "https://o1.fengqingyang.ml/old/eb3188c201a248b8829803e5fe9d1207.jpg", + "https://o1.fengqingyang.ml/old/2cddca5b5509e37aeadd5397e292da62.jpg", + "https://o1.fengqingyang.ml/old/19ebd1774afbdb5c12d7b5202867b513.jpg", + "https://o1.fengqingyang.ml/old/96cbf4ed09aacfc3c8e0fbcf0be5e48b.jpg", + "https://o1.fengqingyang.ml/old/b8734ae4017b9587d857f183080a6d17.jpg", + "https://o1.fengqingyang.ml/old/50727a66e0b7b210185e1a8fd8e2f2e1.jpg", + "https://o1.fengqingyang.ml/old/be2b8e01eae8b2caabb1f6b093d9f4b9.jpg", + "https://o1.fengqingyang.ml/old/f8adf596fca7dbd018eac27ed35b4d96.jpg", + "https://o1.fengqingyang.ml/old/e6e1ced38ebad938389c9d06462b4cb5.jpg", + "https://o1.fengqingyang.ml/old/53ac242207b18088f61a11e6245696bc.jpg", + "https://o1.fengqingyang.ml/old/f134c60ef4de6c0db26914977d297a32.jpg", + "https://o1.fengqingyang.ml/old/a296efddac42ae38beb9ffd7fbeb9847.jpg", + "https://o1.fengqingyang.ml/old/692a9f4e89e008019a45cbd100cca872.jpg", + "https://o1.fengqingyang.ml/old/5fe7229b99d73e343a2e1178f9844f84.jpg", + "https://o1.fengqingyang.ml/old/8f6b164d85dd3e834ae240d17eccb807.jpg", + "https://o1.fengqingyang.ml/old/65391c0aee88227cc0de21227edd3b95.jpg", + "https://o1.fengqingyang.ml/old/36925da3b31898403ad4feab3af94ad1.jpg", + "https://o1.fengqingyang.ml/old/77bdbb57dbf53cb1b27d3c8127bda4d7.jpg", + "https://o1.fengqingyang.ml/old/467d324a11f9be7a8017dd90513cf16d.jpg", + "https://o1.fengqingyang.ml/old/67ef7307d8c0143990e23cc2f38c3cad.jpg", + "https://o1.fengqingyang.ml/old/60bd715efa0ad4985b3c6acff14761a7.jpg", + "https://o1.fengqingyang.ml/old/646f9305f5888f35a882438de33dd5c4.jpg", + "https://o1.fengqingyang.ml/old/ab273a9a66d564f0a3254938e77ec81d.jpg", + "https://o1.fengqingyang.ml/old/33c7da87f5356ae333ac45ca3d577982.jpg", + "https://o1.fengqingyang.ml/old/8ef91c22b11ed0a6e97462fd34c1b1c6.jpg", + "https://o1.fengqingyang.ml/old/d04154d7e9c4f40ef4cfacd18f39910e.jpg", + "https://o1.fengqingyang.ml/old/3a64f075ac953c65518a07ae2e03df3d.jpg", + "https://o1.fengqingyang.ml/old/32e1e99fed55781a13cac8f6f16068af.jpg", + "https://o1.fengqingyang.ml/old/79c6e6970aa9dcff22c48c001c70d297.jpg", + "https://o1.fengqingyang.ml/old/00379d7131dd4e9c895461ecef1fda9e.jpg", + "https://o1.fengqingyang.ml/old/91eb77734db28d2094da1bdf9588aecb.jpg", + "https://o1.fengqingyang.ml/old/0386ff164c0e22de5d373a4b71fbab06.jpg", + "https://o1.fengqingyang.ml/old/f69df81a813cdb315abb556af4f42bf9.jpg", + "https://o1.fengqingyang.ml/old/ccb17e7fdabe6107e4988018389b183b.jpg", + "https://o1.fengqingyang.ml/old/ad75d9cef656f6d936b9c8f0bbe2fee6.jpg", + "https://o1.fengqingyang.ml/old/b6570ba68dc7d8bd094630081075ce60.jpg", + "https://o1.fengqingyang.ml/old/1bfbfe216e2d01b0561c7a9bbcd3b77b.jpg", + "https://o1.fengqingyang.ml/old/7eadbaf8d86d3ba5fa6f626383e2d086.jpg", + "https://o1.fengqingyang.ml/old/c5df5a6bd7e79b625c0aa54ee2a3db30.jpg", + "https://o1.fengqingyang.ml/old/41e0f294eb19c161dea380157f2ddce4.jpg", + "https://o1.fengqingyang.ml/old/38bc2bec6cd1ab80aff0d39677034946.jpg", + "https://o1.fengqingyang.ml/old/f101f25ccb1b7fd060c904b3f955b732.jpg", + "https://o1.fengqingyang.ml/old/212b06495977c9c77d183d482a5950b8.jpg", + "https://o1.fengqingyang.ml/old/96d15d95ea403caa896f2692538973b7.jpg", + "https://o1.fengqingyang.ml/old/97db170b8e9b7cc050f477d4b4c9353b.jpg", + "https://o1.fengqingyang.ml/old/6d02f3bd886be5b2a4702dd921333692.jpg", + "https://o1.fengqingyang.ml/old/57f4a8d6bdd25260ab2b66363c20b115.jpg", + "https://o1.fengqingyang.ml/old/63b3fde361801348a706eca5afd83eec.jpg", + "https://o1.fengqingyang.ml/old/617f399a62e453deea3a626281036dc0.jpg", + "https://o1.fengqingyang.ml/old/ecd552910b5a618293adba3836d7a0dd.jpg", + "https://o1.fengqingyang.ml/old/2f40ec9f696a631b992ab6f72e252524.jpg", + "https://o1.fengqingyang.ml/old/82d6c5b7528ba83ed5921f4214d84913.jpg", + "https://o1.fengqingyang.ml/old/519788fc66fe08a2d1a7ab67e040c92f.jpg", + "https://o1.fengqingyang.ml/old/bcaaea80dbebbdf4ed68c8bffeab9bb1.jpg", + "https://o1.fengqingyang.ml/old/fa96ac817e31644366ffa034483b5112.jpg", + "https://o1.fengqingyang.ml/old/5a39cbc257945986bf58a1894244a34f.jpg", + "https://o1.fengqingyang.ml/old/0fe7334fb8e9d08943e4cbc7ecb38378.jpg", + "https://o1.fengqingyang.ml/old/309baeffe887351afa760c6c6275b56c.jpg", + "https://o1.fengqingyang.ml/old/5116b69c597457baeb12fc88585762a2.jpg", + "https://o1.fengqingyang.ml/old/5fac20db11ba5f609c41dc5c817703b9.jpg", + "https://o1.fengqingyang.ml/old/bc71e028eb181f823e024f148b084830.jpg", + "https://o1.fengqingyang.ml/old/b7a1a2add0d1b6651c61af3e878c807b.jpg", + "https://o1.fengqingyang.ml/old/597c68e3e6b9ba3cb67ae098062e9fdb.jpg", + "https://o1.fengqingyang.ml/old/5c87e44d0575c4cf26e1b5a6463f5e72.jpg", + "https://o1.fengqingyang.ml/old/b4ec46fa49acfce253ad6a049994be38.jpg", + "https://o1.fengqingyang.ml/old/100708c9c0bfd3fa855318472969ea52.jpg", + "https://o1.fengqingyang.ml/old/6fde975e7b82f0f550a46c51eac448c1.jpg", + "https://o1.fengqingyang.ml/old/73309257f2015dcbdc008b58718c9f15.jpg", + "https://o1.fengqingyang.ml/old/682d359c50343d3a9aebf457b0dc8154.jpg", + "https://o1.fengqingyang.ml/old/facd68c3c9a96fc20bdaea5f792351c0.jpg", + "https://o1.fengqingyang.ml/old/4355abff4f42ab69cfc6a5cc73c4a13b.jpg", + "https://o1.fengqingyang.ml/old/790bbebdc5b28641000cebb25c94edcc.jpg", + "https://o1.fengqingyang.ml/old/0914689b83c45f5e5bcf7ce8914437f1.jpg", + "https://o1.fengqingyang.ml/old/4afa60486ca85f9f6d357fcb5f5d2bc2.jpg", + "https://o1.fengqingyang.ml/old/2c93859b828b4f2a492f0291dfa01bd8.jpg", + "https://o1.fengqingyang.ml/old/89d9650ffc1e8fca305f38349dea0ef4.jpg", + "https://o1.fengqingyang.ml/old/43f0d4966c1580d70d34e586d861dcac.jpg", + "https://o1.fengqingyang.ml/old/db8b09d40e234e1661d2e8b1e14a5545.jpg", + "https://o1.fengqingyang.ml/old/9d61f7abfe4958163aacd9b551fce2b9.jpg", + "https://o1.fengqingyang.ml/old/ece4fead79a4abafd03e0a4cbccedbf1.jpg", + "https://o1.fengqingyang.ml/old/aa47ed0a52c0685e5246b332ee34ed2b.jpg", + "https://o1.fengqingyang.ml/old/ecd96aa7668af27a61e798e14b95e376.jpg", + "https://o1.fengqingyang.ml/old/df3dc3d76200d2422689e3c63f12536b.jpg", + "https://o1.fengqingyang.ml/old/d5d50615430502a3cb4c8b8f3bc3c098.jpg", + "https://o1.fengqingyang.ml/old/ff71459c76f3e4f756b1d9f88297aad9.jpg", + "https://o1.fengqingyang.ml/old/1685e3e2cf495b7606a898626cd81849.jpg", + "https://o1.fengqingyang.ml/old/60999568ff72a4ac8578e08ce9e4aec8.jpg", + "https://o1.fengqingyang.ml/old/63c01ab629d8fef07f502374bcdafd56.jpg", + "https://o1.fengqingyang.ml/old/5568c6b1eb7a3b5157ea609b5b208542.jpg", + "https://o1.fengqingyang.ml/old/6da4954ad6b6225f5c4f80e42b18c98e.jpg", + "https://o1.fengqingyang.ml/old/1bbd0966daa3953b04d74b99c34a1f6a.jpg", + "https://o1.fengqingyang.ml/old/3bf1396a5f9f2b4b7af2e8ad3380063a.jpg", + "https://o1.fengqingyang.ml/old/461d030ad93953240f894ea46c6edb1e.jpg", + "https://o1.fengqingyang.ml/old/366964ac75a05a2863309c315d653d1b.jpg", + "https://o1.fengqingyang.ml/old/c7b7882559351657582ef07cb4a714bc.jpg", + "https://o1.fengqingyang.ml/old/28b40df05c4f636ace65f738c8d30bd8.jpg", + "https://o1.fengqingyang.ml/old/4d8c7b79783378ccdd5cfb66475f4e1f.jpg", + "https://o1.fengqingyang.ml/old/721672f7734cc9a095c6d878a2b5531e.jpg", + "https://o1.fengqingyang.ml/old/d37b04eff67ca687414124c0cff50116.jpg", + "https://o1.fengqingyang.ml/old/2253bbfa68a1ec3d0f263c79b4c9a642.jpg", + "https://o1.fengqingyang.ml/old/c028048cf5e6f10ef90c1ae63fa0b9fe.jpg", + "https://o1.fengqingyang.ml/old/93eed4f2c9d881b5c315cf56b94fe6e8.jpg", + "https://o1.fengqingyang.ml/old/95a6b113d377485f3e21d671a8cde622.jpg", + "https://o1.fengqingyang.ml/old/6c11f51eb236dc391eb80be0a41f48f8.jpg", + "https://o1.fengqingyang.ml/old/cfdb19af7a72bc839bae7dce1e9b35ce.jpg", + "https://o1.fengqingyang.ml/old/7af3a203d495fc6110baf200eda6f1ed.jpg", + "https://o1.fengqingyang.ml/old/53c0cf64f8631573ad92eaad1708a10b.jpg", + "https://o1.fengqingyang.ml/old/8ecc91e1c9b5153505303a7fcc40e4aa.jpg", + "https://o1.fengqingyang.ml/old/9b540cd9e5c2f1c8416aaecf007df20d.jpg", + "https://o1.fengqingyang.ml/old/2e314ee3ed5f4316ecaab5e0ad96fde3.jpg", + "https://o1.fengqingyang.ml/old/4a11aa0362600f839f31e27c4c16cce5.jpg", + "https://o1.fengqingyang.ml/old/0a60aa1e3de9e81e813bb06d67c670a4.jpg", + "https://o1.fengqingyang.ml/old/b8ba38ad97856ff02cdfb6427f7dca11.jpg", + "https://o1.fengqingyang.ml/old/0cb1382ad1ff0fc0fd55151f380809a9.jpg", + "https://o1.fengqingyang.ml/old/8ff980ff6f8adc56a4075ad68cd4a8df.jpg", + "https://o1.fengqingyang.ml/old/a3aae4a5a623d96c37d281d0f39c30e8.jpg", + "https://o1.fengqingyang.ml/old/e7a27a754892f23f34ea303a6a61acff.jpg", + "https://o1.fengqingyang.ml/old/615bac0514593c1325d4fa33cdc18f0d.jpg", + "https://o1.fengqingyang.ml/old/7a89237d61a61072e959770a5e31c8e9.jpg", + "https://o1.fengqingyang.ml/old/aef5863a9e94f14fc2f2cb18f2dc77d1.jpg", + "https://o1.fengqingyang.ml/old/8dd7156ca96a48257f3333934a997954.jpg", + "https://o1.fengqingyang.ml/old/35269c73226cec30f3df17df4cb4d02e.jpg", + "https://o1.fengqingyang.ml/old/fb767b12170f9f7f18eb7754e99bd2ab.jpg", + "https://o1.fengqingyang.ml/old/e91d99715c9e32ed5d0378c5eb213a92.jpg", + "https://o1.fengqingyang.ml/old/c0d4cb74bd74cdbc0d373acf9677b4aa.jpg", + "https://o1.fengqingyang.ml/old/dfe2ecfe2fdf24b34bda58e556e66ed5.jpg", + "https://o1.fengqingyang.ml/old/3188f1a37f9205328e722994bf4bd0df.jpg", + "https://o1.fengqingyang.ml/old/51bd10b3f92765c40b7437a306570ad8.jpg", + "https://o1.fengqingyang.ml/old/d159f446bf10e56864bf3b14609764f8.jpg", + "https://o1.fengqingyang.ml/old/92398433f33be917ffcd2315be9b30b5.jpg", + "https://o1.fengqingyang.ml/old/77f5ea83cf2d39494ff9f2694d26b632.jpg", + "https://o1.fengqingyang.ml/old/305f8e5a570a4b6347916e04130d3e9b.jpg", + "https://o1.fengqingyang.ml/old/9a471308a73ff6b8dbe20d3c95b48092.jpg", + "https://o1.fengqingyang.ml/old/0d7925b160c395ef46ed5a03e8f94043.jpg", + "https://o1.fengqingyang.ml/old/1ba74d335eacc800d8dca9d2eec9aa50.jpg", + "https://o1.fengqingyang.ml/old/335982b0f3c31d2dab595ff82b2b86a4.jpg", + "https://o1.fengqingyang.ml/old/e63eb981e3e029a4717e73bc421bfd45.jpg", + "https://o1.fengqingyang.ml/old/a815240295b5cf4488fd89e5d8e6acbd.jpg", + "https://o1.fengqingyang.ml/old/731f07189e4309e8f4743861d3dc4c43.jpg", + "https://o1.fengqingyang.ml/old/ef53e4520df2ca1e60b3a36ea38fd8a9.jpg", + "https://o1.fengqingyang.ml/old/a8123e4ec8a50015f552df49a948afb2.jpg", + "https://o1.fengqingyang.ml/old/d3b54fb784aea4d874add96f51393254.jpg", + "https://o1.fengqingyang.ml/old/ea02ff4d796919b156a4a15549fe8ed6.jpg", + "https://o1.fengqingyang.ml/old/0dcb2460702b0581c9626d4e459d2ea2.jpg", + "https://o1.fengqingyang.ml/old/ad33beafd7866da7c60bd9a304004793.jpg", + "https://o1.fengqingyang.ml/old/75049b5b894484b84e81f8c666f996d3.jpg", + "https://o1.fengqingyang.ml/old/1d7e70708f50621eec3f3deaf9f37570.jpg", + "https://o1.fengqingyang.ml/old/3a072877810f55b61887341cf4ccbb58.jpg", + "https://o1.fengqingyang.ml/old/a7185d61f9739ff09fd5849656ac7855.jpg", + "https://o1.fengqingyang.ml/old/d5925cacb4fb56665cbbc78d924bedc2.jpg", + "https://o1.fengqingyang.ml/old/3a9e34bc8cd5462aeeada5fa4f63afa6.jpg", + "https://o1.fengqingyang.ml/old/8d0901e7532077c631e3058a57d16c53.jpg", + "https://o1.fengqingyang.ml/old/4ab4dff0dba2f0f0078c155f3cd3c257.jpg", + "https://o1.fengqingyang.ml/old/2559e5a6d764fc05ac0180adc051db74.jpg", + "https://o1.fengqingyang.ml/old/05c4867a4ee0175033689f468bb2eae5.jpg", + "https://o1.fengqingyang.ml/old/c419c029406682d97fb32e98dc8b4e1d.jpg", + "https://o1.fengqingyang.ml/old/33183ee6f1fe0ad52f0e0c444e6aecbe.jpg", + "https://o1.fengqingyang.ml/old/8e918f4617268aeabf5e9b4107e52ee0.jpg", + "https://o1.fengqingyang.ml/old/056c572df2cf3b1bae431a9011fa0445.jpg", + "https://o1.fengqingyang.ml/old/ada157dd4014631901bd0ea36de73a96.jpg", + "https://o1.fengqingyang.ml/old/787efa0991c7cf46f7964e25819e2cc6.jpg", + "https://o1.fengqingyang.ml/old/cda9244323d93fbfc80f46db9c55b2b7.jpg", + "https://o1.fengqingyang.ml/old/071401670942a021255493343320bc7b.jpg", + "https://o1.fengqingyang.ml/old/a5239a28d201ab25ceba59231d8b8962.jpg", + "https://o1.fengqingyang.ml/old/f9781ed5e75b7d4fd15b88e9478546e0.jpg", + "https://o1.fengqingyang.ml/old/73d19cb18edfccec1c6a8bc0ddeb0586.jpg", + "https://o1.fengqingyang.ml/old/9e447aa7d22e9f9b0cce9425b3927ea4.jpg", + "https://o1.fengqingyang.ml/old/835d8ab4aa2c802df107dec2363afcc9.jpg", + "https://o1.fengqingyang.ml/old/9225654b76799229940e0ef31a955475.jpg", + "https://o1.fengqingyang.ml/old/492e089bf48cc7d4251efa8315f299ab.jpg", + "https://o1.fengqingyang.ml/old/252a9bdf0adcac7b31d88bdfcec93eaf.jpg", + "https://o1.fengqingyang.ml/old/56de751a5edba9a0a58f0c1c20ee27ed.jpg", + "https://o1.fengqingyang.ml/old/2e24bee6a301accf4dd8c728d3503e9b.jpg", + "https://o1.fengqingyang.ml/old/6a0911d49f6520dbd98bc1a54a11dc06.jpg", + "https://o1.fengqingyang.ml/old/cb9ca2b232a383d221b6e171d119c9f4.jpg", + "https://o1.fengqingyang.ml/old/6ebefb78c210c17aecb7b7b712944bc2.jpg", + "https://o1.fengqingyang.ml/old/e9c7a60f1cd433da703ecf1f4e94b132.jpg", + "https://o1.fengqingyang.ml/old/03f38667c323cdd7cb35ba699e856cdb.jpg", + "https://o1.fengqingyang.ml/old/80883ee03554ef602466d8917fd58111.jpg", + "https://o1.fengqingyang.ml/old/f2e55a6832a55381ccb27489351dc923.jpg", + "https://o1.fengqingyang.ml/old/2a5a3ce32d55979e9bbc5d0f42d6378b.jpg", + "https://o1.fengqingyang.ml/old/c6557533db95a5e043e0e16339892b2d.jpg", + "https://o1.fengqingyang.ml/old/8b80132a8c15945fa0b9dd26df469c92.jpg", + "https://o1.fengqingyang.ml/old/150e9a5101baa91cbe59b7e0bff3baf1.jpg", + "https://o1.fengqingyang.ml/old/afea5f6cb9ddc58149832b9515dc030c.jpg", + "https://o1.fengqingyang.ml/old/350ca4ad1c140a5ed22996e504eb73e9.jpg", + "https://o1.fengqingyang.ml/old/dea3e0b2f54e89d435e8c43bb11906ca.jpg", + "https://o1.fengqingyang.ml/old/93886a9ba542f5170d56226804148e7e.jpg", + "https://o1.fengqingyang.ml/old/5e7f91c36afffd58c30420b166f714fb.jpg", + "https://o1.fengqingyang.ml/old/e09b9f89194bfb83ab8160c9383304be.jpg", + "https://o1.fengqingyang.ml/old/543a996bd91cc3c66cc091aeca31dded.jpg", + "https://o1.fengqingyang.ml/old/509f74ab61864fdb87cceb53051e11f1.jpg", + "https://o1.fengqingyang.ml/old/1ef540ecf9b68656cabd3dd819a6d13f.jpg", + "https://o1.fengqingyang.ml/old/85891935ff8dd7644d3a1799043a069f.jpg", + "https://o1.fengqingyang.ml/old/999ad39593de9c6b4b2ceb2a3debc88b.jpg", + "https://o1.fengqingyang.ml/old/34490228e3adc90fc29637bfa54aeed4.jpg", + "https://o1.fengqingyang.ml/old/31183a0bdc6017fae3c4e4a7c75b4f5e.jpg", + "https://o1.fengqingyang.ml/old/733ef25f4361914ea8a3df2dc9a13c52.jpg", + "https://o1.fengqingyang.ml/old/dbbdebabbb156e37b61c0f1c11c9e7f0.jpg", + "https://o1.fengqingyang.ml/old/c3329c8122d418c1b26289408795dda9.jpg", + "https://o1.fengqingyang.ml/old/ff88110fb8118159029c53eea6e6c9fa.jpg", + "https://o1.fengqingyang.ml/old/589f13ff19c98dd217a3435ba56edd7f.jpg", + "https://o1.fengqingyang.ml/old/2a46b80aec29f6fea00e16f5ec0601cd.jpg", + "https://o1.fengqingyang.ml/old/ed4e3f3bb32b9b61498258625226b56f.jpg", + "https://o1.fengqingyang.ml/old/556527f7acdbd2cf9d32dca96b9d3d6e.jpg", + "https://o1.fengqingyang.ml/old/e9ee7ee73abf2143a8627e91d2016f8e.jpg", + "https://o1.fengqingyang.ml/old/8a4e2b89289a82abee30110611d340fb.jpg", + "https://o1.fengqingyang.ml/old/f3200ecbec99df782e3db7355b595be4.jpg", + "https://o1.fengqingyang.ml/old/37483779791c01369fd1832d44ca5dd3.jpg", + "https://o1.fengqingyang.ml/old/9694f0ece8550b149bc5dd8240a4edcc.jpg", + "https://o1.fengqingyang.ml/old/e7dedff6ced864a51b511dfc614e85cc.jpg", + "https://o1.fengqingyang.ml/old/15d5e0f422e4383101c3eaefa4a7c1f7.jpg", + "https://o1.fengqingyang.ml/old/6aef684d4504976d40d20cd84aad8d98.jpg", + "https://o1.fengqingyang.ml/old/82653e3a0eea273d538c6f4631f2d564.jpg", + "https://o1.fengqingyang.ml/old/19fa7a7ed55e07fbe2f409f0ea2bf95e.jpg", + "https://o1.fengqingyang.ml/old/a4bfcd2e9ba76477125ae52ee97c5a02.jpg", + "https://o1.fengqingyang.ml/old/1a072033037b6d4625432acfb889962d.jpg", + "https://o1.fengqingyang.ml/old/13e40553795e8e2e6a020e7c9a86f3aa.jpg", + "https://o1.fengqingyang.ml/old/058953afc1f6d3086801785953ba2769.jpg", + "https://o1.fengqingyang.ml/old/ff8ec1afd252c6dc39b40bcb7337554b.jpg", + "https://o1.fengqingyang.ml/old/8292095d9c678e010ac2cde127291ec4.jpg", + "https://o1.fengqingyang.ml/old/c9c5b2d89f50d1e50f661182c372ab50.jpg", + "https://o1.fengqingyang.ml/old/d5a5830bea6469a9ad6f77a38bb5c99c.jpg", + "https://o1.fengqingyang.ml/old/a0eb327f75792a837bcce95e293dc5e1.jpg", + "https://o1.fengqingyang.ml/old/d2e551716dccbc3aaec3d84ec6c6c86d.jpg", + "https://o1.fengqingyang.ml/old/adaa2efdad72fde3e462ecc3594c46e8.jpg", + "https://o1.fengqingyang.ml/old/23a58d807ef4beef7eb9405905b35e5e.jpg", + "https://o1.fengqingyang.ml/old/00f2600be9fc45d70aa987cb73a9314a.jpg", + "https://o1.fengqingyang.ml/old/1ee6249a273bbf2b1a1653232ec229fd.jpg", + "https://o1.fengqingyang.ml/old/54fce93349268baf407ba364523cc6ef.jpg", + "https://o1.fengqingyang.ml/old/41feda21289d50e3164d8dd5cbafe889.jpg", + "https://o1.fengqingyang.ml/old/463869295cc6c209835ebcfeb522b32c.jpg", + "https://o1.fengqingyang.ml/old/54f69676e3a46f12a7fb853e0e8a0921.jpg", + "https://o1.fengqingyang.ml/old/747fd4b0b8dffb5a09d380a5df2cc48e.jpg", + "https://o1.fengqingyang.ml/old/71baf7ec4c9ea8554b57b8cf8c439641.jpg", + "https://o1.fengqingyang.ml/old/8ca16acbb408fb2130cc7a8c5ebc3495.jpg", + "https://o1.fengqingyang.ml/old/2ca1c00a7624a895e4e5ebd2942c2c82.jpg", + "https://o1.fengqingyang.ml/old/ff94cc38cd5fd366b2294ace6616677a.jpg", + "https://o1.fengqingyang.ml/old/948b096f0bbf2981d7b7331a171a86dc.jpg", + "https://o1.fengqingyang.ml/old/e974de2ac608444956132f87c8cf15dc.jpg", + "https://o1.fengqingyang.ml/old/ea683e11409aad2eed0c642bd074ed7a.jpg", + "https://o1.fengqingyang.ml/old/ba4e42b028dcc4bce910c39ad9976b75.jpg", + "https://o1.fengqingyang.ml/old/23a0ffe40734584deeec23067e3a23f5.jpg", + "https://o1.fengqingyang.ml/old/8a98bd52b4d7b335873e1df4a65c3f76.jpg", + "https://o1.fengqingyang.ml/old/dcb157799b72e0fada11d9c7352b2523.jpg", + "https://o1.fengqingyang.ml/old/6c01965aea2cf4de4f7e19d82d723b49.jpg", + "https://o1.fengqingyang.ml/old/1ae14f57c72706a4a2f76d7d9d37c3f0.jpg", + "https://o1.fengqingyang.ml/old/9720d613d177ece4d350486b231c20de.jpg", + "https://o1.fengqingyang.ml/old/327286aa7d46e15ba859db3baa1b81e0.jpg", + "https://o1.fengqingyang.ml/old/b4bd7f565f1076c8cce96df8d9b0d463.jpg", + "https://o1.fengqingyang.ml/old/11fd019a28fe982604286a99034b1c2e.jpg", + "https://o1.fengqingyang.ml/old/085124879f1aa00477cc479a4bff505c.jpg", + "https://o1.fengqingyang.ml/old/6b8dbf905b092dab757e31dc977210f2.jpg", + "https://o1.fengqingyang.ml/old/b0a460da58eab63fad9e788f3054cf89.jpg", + "https://o1.fengqingyang.ml/old/ea0c471115e4cae00fc696c513d6d943.jpg", + "https://o1.fengqingyang.ml/old/9c9f587b3d2c81731cbd919ac5ce8a8d.jpg", + "https://o1.fengqingyang.ml/old/9384f1ac3c1b7de5e151adf2b235af07.jpg", + "https://o1.fengqingyang.ml/old/d7b888a8f5429f366deaa27ee91f323c.jpg", + "https://o1.fengqingyang.ml/old/7901d8128879f6d0670115acf13300d5.jpg", + "https://o1.fengqingyang.ml/old/79f9217b14ff1fb173701efd61557fc1.jpg", + "https://o1.fengqingyang.ml/old/bfa3c3970562efce7dbb804056302e89.jpg", + "https://o1.fengqingyang.ml/old/94620fd979c1e9a4f97e8129fbd62e1b.jpg", + "https://o1.fengqingyang.ml/old/280c5be82d0578ebd99ec2a12f723b62.jpg", + "https://o1.fengqingyang.ml/old/b95b1df0fad6bb33a6d0bb4d95ba8620.jpg", + "https://o1.fengqingyang.ml/old/7e8af1d295fd058dd0f472f04c9ec3c1.jpg", + "https://o1.fengqingyang.ml/old/7cad5add147bc506749d7821aa26ea27.jpg", + "https://o1.fengqingyang.ml/old/cbec17e32e679ebf41b9f37fa0f7332c.jpg", + "https://o1.fengqingyang.ml/old/13ce7fee6621e2a3424fddc6e4817df7.jpg", + "https://o1.fengqingyang.ml/old/feea6173d0231170c7fff437846a95f8.jpg", + "https://o1.fengqingyang.ml/old/ed18f13502cfab7a9402d42d79524ac8.jpg", + "https://o1.fengqingyang.ml/old/62a95f30a63d1fe9912fe71a4fa5044c.jpg", + "https://o1.fengqingyang.ml/old/a6cc259d6520a983a317c2a2c51101bf.jpg", + "https://o1.fengqingyang.ml/old/c5dc3faf9cb50dd93ce7a3295b06d744.jpg", + "https://o1.fengqingyang.ml/old/9d81c2c88d780e515e29c28ec16006ef.jpg", + "https://o1.fengqingyang.ml/old/cf0b1855b4bff3ba1b41dfcd336213db.jpg", + "https://o1.fengqingyang.ml/old/9b057d6dd50472c24024a8df11e11c73.jpg", + "https://o1.fengqingyang.ml/old/62b4a75d3bbba66fb06ac5a6df446da3.jpg", + "https://o1.fengqingyang.ml/old/702fec5706eb9cb3a8c7527410f67976.jpg", + "https://o1.fengqingyang.ml/old/f531f20904e96fe65915ea4ee22d7dab.jpg", + "https://o1.fengqingyang.ml/old/296b5a9375c2363837ee6ff6157d4e0d.jpg", + "https://o1.fengqingyang.ml/old/00d78c094f2ae33b9aa2c943cddb7d9a.jpg", + "https://o1.fengqingyang.ml/old/4751e2a77beb7486c6a1de6451ecf475.jpg", + "https://o1.fengqingyang.ml/old/590c769f40ed0b940fe7fe834151ffa4.jpg", + "https://o1.fengqingyang.ml/old/7f00e78f8f3f8b7224bd6500379774fa.jpg", + "https://o1.fengqingyang.ml/old/6b55a8e262be42dc821e6f7e03c9e4a1.jpg", + "https://o1.fengqingyang.ml/old/bae830861ea33c549808a25c9ddcf20c.jpg", + "https://o1.fengqingyang.ml/old/39a6d7b55142770dd7f5f31081cd54df.jpg", + "https://o1.fengqingyang.ml/old/71ce0b47f69aed63d5857fb2a982fb2c.jpg", + "https://o1.fengqingyang.ml/old/43fb1ff22204d17898a4e2369b22873e.jpg", + "https://o1.fengqingyang.ml/old/9d6dfddcd7445cf1a1188953aa865063.jpg", + "https://o1.fengqingyang.ml/old/282f75c12c028093881937bb19b78af9.jpg", + "https://o1.fengqingyang.ml/old/dbda1e99ce11507526313a3032b51e5f.jpg", + "https://o1.fengqingyang.ml/old/2d19170be879bbef6c0ad652d4cb1e81.jpg", + "https://o1.fengqingyang.ml/old/e315e353cf07ddf1a363ab162a18ef5b.jpg", + "https://o1.fengqingyang.ml/old/f096522ac77367becfe8241ba04b9d47.jpg", + "https://o1.fengqingyang.ml/old/e53c012ac5a00b73e91ff51f58dcde75.jpg", + "https://o1.fengqingyang.ml/old/6c6707ded5cca2f7e2e622e3ab960a41.jpg", + "https://o1.fengqingyang.ml/old/245a02156cce9ed9fb7cfa8ec894098e.jpg", + "https://o1.fengqingyang.ml/old/96fafa79b52b4646492a6c020c72a452.jpg", + "https://o1.fengqingyang.ml/old/0b441ccc462b5fff280e36466bb15038.jpg", + "https://o1.fengqingyang.ml/old/aedd34e92ca5bd897e32f07972e5857d.jpg", + "https://o1.fengqingyang.ml/old/0e8805a4a926e4b7344185a5d6ba71d2.jpg", + "https://o1.fengqingyang.ml/old/8c877068528a8bb44002da0383a94640.jpg", + "https://o1.fengqingyang.ml/old/2d246846b289253ba5d580851bf8e9f6.jpg", + "https://o1.fengqingyang.ml/old/28315a67744e6d8417537419e0b6694f.jpg", + "https://o1.fengqingyang.ml/old/da6351825d03a70917613225ffa8700a.jpg", + "https://o1.fengqingyang.ml/old/2c32bd2ddc874bafda32b7574c0a0792.jpg", + "https://o1.fengqingyang.ml/old/f0e26962d1741c2cdfe55d1031bf0029.jpg", + "https://o1.fengqingyang.ml/old/7e9be08e5991e24af012b7feac7d1fd7.jpg", + "https://o1.fengqingyang.ml/old/5abf969e53908486f6e7bcb8fb241025.jpg", + "https://o1.fengqingyang.ml/old/b60ede3cc20f92dee79a282a805d958d.jpg", + "https://o1.fengqingyang.ml/old/32266b5a28f38155cd3d846ed138f33a.jpg", + "https://o1.fengqingyang.ml/old/f44076b94079f45251073b17da19f46f.jpg", + "https://o1.fengqingyang.ml/old/794c8a2b3867cdae4f2d9ff5f7bd51a2.jpg", + "https://o1.fengqingyang.ml/old/a1ff6cdc0dbb6af2fe274f263dbe09be.jpg", + "https://o1.fengqingyang.ml/old/287815acc20e1ad9d73522b3e191f110.jpg", + "https://o1.fengqingyang.ml/old/d5d5ef17c867d7dfbd056650deae5cc6.jpg", + "https://o1.fengqingyang.ml/old/72904eb39c319ce89b3006aaaeb25319.jpg", + "https://o1.fengqingyang.ml/old/9143440762b44e798ec3948d48fbaefb.jpg", + "https://o1.fengqingyang.ml/old/c3de5a5425125504b28e7c97dec4e792.jpg", + "https://o1.fengqingyang.ml/old/59f705dc95f345a38086b21ede7992cd.jpg", + "https://o1.fengqingyang.ml/old/4de4302e514f92a0172885dd050f1752.jpg", + "https://o1.fengqingyang.ml/old/04f1cbe95bf148588cc5143a4085eb0c.jpg", + "https://o1.fengqingyang.ml/old/c75b0db562125107f9e0ae7015b5df60.jpg", + "https://o1.fengqingyang.ml/old/7ae84f80863c41ecf85ed878ff4baeb2.jpg", + "https://o1.fengqingyang.ml/old/00d6a1ef136db57a4d639a6f6218ac00.jpg", + "https://o1.fengqingyang.ml/old/e4357a657274c926f5f41c5091d5439b.jpg", + "https://o1.fengqingyang.ml/old/9fff6414021beed981db712acf37a1b5.jpg", + "https://o1.fengqingyang.ml/old/974a2c8abdc245b2f3940bee678ae455.jpg", + "https://o1.fengqingyang.ml/old/19fd7fd34b2b1ead4a243f3329497b7a.jpg", + "https://o1.fengqingyang.ml/old/50c26b6dd388ed27a52612be6920cd01.jpg", + "https://o1.fengqingyang.ml/old/26bd462c72f199781ebff8a801de903e.jpg", + "https://o1.fengqingyang.ml/old/025aed9f38f443d7fd6d7fff1db4c355.jpg", + "https://o1.fengqingyang.ml/old/801b5a576b6a8a14cf597607af8b250a.jpg", + "https://o1.fengqingyang.ml/old/9619cb2e53270e7aac172e53aae5d1bf.jpg", + "https://o1.fengqingyang.ml/old/a538c4a918d693b3778eaa773907f32c.jpg", + "https://o1.fengqingyang.ml/old/80dfe1dce48fbdff97e64ca305af96b3.jpg", + "https://o1.fengqingyang.ml/old/5de789029fc59e4480f2cb4207ab93ad.jpg", + "https://o1.fengqingyang.ml/old/b643a5ccd0ac4f343bba441491fdcf71.jpg", + "https://o1.fengqingyang.ml/old/a0c3f7b9bd5588ca9e64c74603784d47.jpg", + "https://o1.fengqingyang.ml/old/922112d78736de5fbfef5651bd1f37cb.jpg", + "https://o1.fengqingyang.ml/old/f32e81fc4980a6db1ab32fe250a91109.jpg", + "https://o1.fengqingyang.ml/old/55defc3eab457c81abe02f0f784c15b2.jpg", + "https://o1.fengqingyang.ml/old/5a73d86338c8343156f812e2faae64d9.jpg", + "https://o1.fengqingyang.ml/old/1185e8fc425901cd44790b502cda1b83.jpg", + "https://o1.fengqingyang.ml/old/0de7d40becc7cbfdf1b0f958397ae8c2.jpg", + "https://o1.fengqingyang.ml/old/d5793fd905b09b187720d9464bbb3d90.jpg", + "https://o1.fengqingyang.ml/old/e447be497b486b6f5de71b0ae6a0e617.jpg", + "https://o1.fengqingyang.ml/old/2b5ddbbba8b6ed7984be57c9f5747d31.jpg", + "https://o1.fengqingyang.ml/old/a611db141cc3f067039b13de22f6aec5.jpg", + "https://o1.fengqingyang.ml/old/8e7a82b88324afed743a28b2f2134dd7.jpg", + "https://o1.fengqingyang.ml/old/d907dfe01030163a05997b425af05969.jpg", + "https://o1.fengqingyang.ml/old/4090095e0c39003b3438fe4a79a51c65.jpg", + "https://o1.fengqingyang.ml/old/5bc847298dae8ddeb52156e789123cce.jpg", + "https://o1.fengqingyang.ml/old/8df934468d6a8c05db72018e56d17aa7.jpg", + "https://o1.fengqingyang.ml/old/e9e930aa600d99140520079c63bf1e21.jpg", + "https://o1.fengqingyang.ml/old/a05c8fc6c86d619dfec21423f07fb775.jpg", + "https://o1.fengqingyang.ml/old/15552fbbc8097aefe1f50e66f53e051a.jpg", + "https://o1.fengqingyang.ml/old/e144d7d7210acfdc4a774a149748f08a.jpg", + "https://o1.fengqingyang.ml/old/249732c410f99140e87e4a5eed3e2add.jpg", + "https://o1.fengqingyang.ml/old/2f4286d215f6b93ad51c1d4a82c08432.jpg", + "https://o1.fengqingyang.ml/old/e13f5aefaea274f165e04881e0f7e31a.jpg", + "https://o1.fengqingyang.ml/old/7b91bf4697c3b90024a7236cdc2fd9da.jpg", + "https://o1.fengqingyang.ml/old/3cae033ca9131f2ea5a25785a5ee2381.jpg", + "https://o1.fengqingyang.ml/old/b75d812aaee64d6e38fc618729fa3147.jpg", + "https://o1.fengqingyang.ml/old/0d870cfa30d4ad742e8860c88014b2ac.jpg", + "https://o1.fengqingyang.ml/old/907586a0bb0a84219d0e3239a782b214.jpg", + "https://o1.fengqingyang.ml/old/acdac9b70b99ddfae7fe5fc4d71186cd.jpg", + "https://o1.fengqingyang.ml/old/0eb3b2b31e798cb82ff3f298b3ebd646.jpg", + "https://o1.fengqingyang.ml/old/a459d0baea6d4f82014ccf36a3af6e71.jpg", + "https://o1.fengqingyang.ml/old/ffb80ce0c373e8137d24a45ea40e788b.jpg", + "https://o1.fengqingyang.ml/old/f9fee527c87ce448b9ac8c4a95171a51.jpg", + "https://o1.fengqingyang.ml/old/a251a76936aeabd77e7fea261ea1ff2c.jpg", + "https://o1.fengqingyang.ml/old/49813f833da2c24c4957e99383ef25c2.jpg", + "https://o1.fengqingyang.ml/old/0f11e3d913a8d98531fc544f2bbef880.jpg", + "https://o1.fengqingyang.ml/old/4c9374355f3ba0c930ad915b99a44cc0.jpg", + "https://o1.fengqingyang.ml/old/bf062980d8386517c2ae1c664ac77f44.jpg", + "https://o1.fengqingyang.ml/old/13d547b06e364e84830c653ba6aa5223.jpg", + "https://o1.fengqingyang.ml/old/ce2191ff560cc5013b46c66751935150.jpg", + "https://o1.fengqingyang.ml/old/1a7c03b3f5937730bc9e7b7f4dd514cc.jpg", + "https://o1.fengqingyang.ml/old/ae575e8cda56652f87b68b0bc5f1fd60.jpg", + "https://o1.fengqingyang.ml/old/e76984a7d436c8771f916db19d445275.jpg", + "https://o1.fengqingyang.ml/old/1c922cd0dfd101284c663efc6370b815.jpg", + "https://o1.fengqingyang.ml/old/4c0d5084782e8c62377b7b3a0e2b0fbd.jpg", + "https://o1.fengqingyang.ml/old/3b3f782c422dd301f03d81a9be10ecb3.jpg", + "https://o1.fengqingyang.ml/old/bf94e5d061a535439049e65100d107d3.jpg", + "https://o1.fengqingyang.ml/old/0a772a6af734b1c6b33e4c49ffc0cc3c.jpg", + "https://o1.fengqingyang.ml/old/908835ff9382d7f4c4aeb834d08730f9.jpg", + "https://o1.fengqingyang.ml/old/5098b25ec59156ae9f56071498822f64.jpg", + "https://o1.fengqingyang.ml/old/8df23172ffb9cfbc3130d4ff79b8fd4d.jpg", + "https://o1.fengqingyang.ml/old/fb6abef87685689d845b343adb33417c.jpg", + "https://o1.fengqingyang.ml/old/88f47f127c078ae98030ef35bda8c706.jpg", + "https://o1.fengqingyang.ml/old/29c640056f22e3b3189db3fd9c32615b.jpg", + "https://o1.fengqingyang.ml/old/58489172ac07da25bed548855beb1ffc.jpg", + "https://o1.fengqingyang.ml/old/c4d16e99f079f2ad397259eae23c4b8b.jpg", + "https://o1.fengqingyang.ml/old/fce6abda56e939c9bb62066054246e84.jpg", + "https://o1.fengqingyang.ml/old/79670d6a2611a6628144bbe04e5ae2d3.jpg", + "https://o1.fengqingyang.ml/old/71e6122712b35a3f9aefa74badf17772.jpg", + "https://o1.fengqingyang.ml/old/3d4474e11c93623762d1a6c33e7c9fff.jpg", + "https://o1.fengqingyang.ml/old/2cc9c77a19e1e319c06df8a5693f9e11.jpg", + "https://o1.fengqingyang.ml/old/0e148ca9b36495f0806b81817082146a.jpg", + "https://o1.fengqingyang.ml/old/839e182a6c98c02d68d0976c416c5564.jpg", + "https://o1.fengqingyang.ml/old/ce0d100b11142d15fda48b20b1c27766.jpg", + "https://o1.fengqingyang.ml/old/9d3d69227fb6345fa4d516a4c320174c.jpg", + "https://o1.fengqingyang.ml/old/493eb1fee0a31afcf67e1f815256063c.jpg", + "https://o1.fengqingyang.ml/old/d4955d4952406fe5ffb4d25d906ad7b2.jpg", + "https://o1.fengqingyang.ml/old/d6b31f0508e10dec3e3bae27e7a7cfe8.jpg", + "https://o1.fengqingyang.ml/old/cb70ab333626428807da48f00b76e422.jpg", + "https://o1.fengqingyang.ml/old/584e9b3a162f58c12769691e42bf5383.jpg", + "https://o1.fengqingyang.ml/old/1e449a751c5c7804840788aaa482a3d4.jpg", + "https://o1.fengqingyang.ml/old/2e4dc7bf67032487e3366c8b21665c4c.jpg", + "https://o1.fengqingyang.ml/old/278ffcb1ccda0551bb199044219c87a8.jpg", + "https://o1.fengqingyang.ml/old/3c866635541c5285f1d8d054b7ebf124.jpg", + "https://o1.fengqingyang.ml/old/22a61cf4c5b13a33c17d8ee1950d9049.jpg", + "https://o1.fengqingyang.ml/old/b482d10680aac60f7d134f141515cd79.jpg", + "https://o1.fengqingyang.ml/old/32dc13f7933fd7f93381438c31b21ef2.jpg", + "https://o1.fengqingyang.ml/old/08e9e77fd42b6fcd5c5d7d513bb11d77.jpg", + "https://o1.fengqingyang.ml/old/a4af093fd886329ce67728aeb247e4fb.jpg", + "https://o1.fengqingyang.ml/old/b0a8e5452285dc0585db8bfa17315f05.jpg", + "https://o1.fengqingyang.ml/old/06c1c88ff067f054402c844f501022d4.jpg", + "https://o1.fengqingyang.ml/old/c880fca4a4008a1902fc0e3cdb9f61d9.jpg", + "https://o1.fengqingyang.ml/old/a736046fff7120099760bf02ffa3bbb5.jpg", + "https://o1.fengqingyang.ml/old/7912cf4119c9ef64f2c57e92a5d6fe7f.jpg", + "https://o1.fengqingyang.ml/old/48ca753a17b395ccd59b65247cfca164.jpg", + "https://o1.fengqingyang.ml/old/a87f69f75d8eb86f7095cd07d3c7e9ab.jpg", + "https://o1.fengqingyang.ml/old/273cf22153cad9d816ef491c66abe84a.jpg", + "https://o1.fengqingyang.ml/old/21fee07525060c7c14e9156fe86c9ef5.jpg", + "https://o1.fengqingyang.ml/old/af2bc0d9e441087c9da442a704304cb9.jpg", + "https://o1.fengqingyang.ml/old/f073c85ef70c9ce94042d83c3f9111dd.jpg", + "https://o1.fengqingyang.ml/old/72e107c478a2c16405dbbb92ef2b0b31.jpg", + "https://o1.fengqingyang.ml/old/52cf8dd2df2584056d6b48597f836659.jpg", + "https://o1.fengqingyang.ml/old/b1806b0e1450aea7a7579d5c9f5d03f7.jpg", + "https://o1.fengqingyang.ml/old/58df92b784dc51d4d4547b2e6bf9f595.jpg", + "https://o1.fengqingyang.ml/old/98472defc17e1952787ba674acfcf9e0.jpg", + "https://o1.fengqingyang.ml/old/84043ac994b3bae22e8b7e376ca88a6e.jpg", + "https://o1.fengqingyang.ml/old/4f97d7c67139723744d605fd94e9592a.jpg", + "https://o1.fengqingyang.ml/old/a8ee687cd60dc68ac26c36cf199aac15.jpg", + "https://o1.fengqingyang.ml/old/65e37c5082fe974ac327aa44a2c72186.jpg", + "https://o1.fengqingyang.ml/old/6ed009db34680630f534d1dcf348fb2e.jpg", + "https://o1.fengqingyang.ml/old/aa1715a1417e1daf10c7cd10e2ec6e6f.jpg", + "https://o1.fengqingyang.ml/old/37c4961548f57f43cb6a3b29cc905b81.jpg", + "https://o1.fengqingyang.ml/old/6309d375c89e86328a15eb92bcc78fc7.jpg", + "https://o1.fengqingyang.ml/old/df25cc4a0f2a9a17f0f3a2c1f14473f5.jpg", + "https://o1.fengqingyang.ml/old/3581712b34063b13c709f88c83b18d65.jpg", + "https://o1.fengqingyang.ml/old/a4b593ab8518d0852f8148fcb4025f56.jpg", + "https://o1.fengqingyang.ml/old/eaead7cd82cfabcc1dedbee059db84c7.jpg", + "https://o1.fengqingyang.ml/old/3baa6bca9ee5f7475256668f7ba11288.jpg", + "https://o1.fengqingyang.ml/old/aba38721fbe1e1fc68348c8ad6d03548.jpg", + "https://o1.fengqingyang.ml/old/05ba3642dff0bfde3b2bbd5231985196.jpg", + "https://o1.fengqingyang.ml/old/a9c3878fcfe155c53ef3da1c8cf94b9c.jpg", + "https://o1.fengqingyang.ml/old/64a21b086fd5f2dbd8a2439037002921.jpg", + "https://o1.fengqingyang.ml/old/e6b4bacf4675be07d88fb57bd425161d.jpg", + "https://o1.fengqingyang.ml/old/71f64b639e1a72748559f2de6c691532.jpg", + "https://o1.fengqingyang.ml/old/b11afc498806702e776b1a06febf378b.jpg", + "https://o1.fengqingyang.ml/old/9dc6890975a03a4997371282ea8acf23.jpg", + "https://o1.fengqingyang.ml/old/5dbe1b8be52d8f12e38c1f5f9e0fd414.jpg", + "https://o1.fengqingyang.ml/old/3efad20611f3400062e0b13042612248.jpg", + "https://o1.fengqingyang.ml/old/abe5c696cf3f5da902dfa59dc01b2df4.jpg", + "https://o1.fengqingyang.ml/old/86b12a62557532cae7e900885ab79ace.jpg", + "https://o1.fengqingyang.ml/old/93c95ea95f092b51b9465db3c20ad932.jpg", + "https://o1.fengqingyang.ml/old/5fa9be4e17db6ff1e00a240f7d9828ef.jpg", + "https://o1.fengqingyang.ml/old/fd80bffd74b55c7d16f315eb0486d71b.jpg", + "https://o1.fengqingyang.ml/old/d679e37196e660c23444d3d0f1fc3af7.jpg", + "https://o1.fengqingyang.ml/old/adf051366fa0e4dc2036240175b2d87d.jpg", + "https://o1.fengqingyang.ml/old/078b6da4baac0895e4edd225d94272c4.jpg", + "https://o1.fengqingyang.ml/old/ab94519fac7e3d287b4b0991eb677b79.jpg", + "https://o1.fengqingyang.ml/old/b300bd7b6a79b074aa0ae53fa3009aba.jpg", + "https://o1.fengqingyang.ml/old/9e78290230e10103c810e5977f19fb8a.jpg", + "https://o1.fengqingyang.ml/old/faf90bb741a05775e9fd825733abab6f.jpg", + "https://o1.fengqingyang.ml/old/5537447c8d8abd2bff76b1b09330c8ac.jpg", + "https://o1.fengqingyang.ml/old/99edf82ff0d134e655cab06f814632c3.jpg", + "https://o1.fengqingyang.ml/old/6e282b67305db2011280573acdcd30b9.jpg", + "https://o1.fengqingyang.ml/old/292fd0e963c45a8870882807f05a98b9.jpg", + "https://o1.fengqingyang.ml/old/3cdf18dd9b795cf8c983b0b61ca5323a.jpg", + "https://o1.fengqingyang.ml/old/9c0714e231dbe091f7aec1c04e501b09.jpg", + "https://o1.fengqingyang.ml/old/1e12b3f75f96d0809765779c66f51e29.jpg", + "https://o1.fengqingyang.ml/old/8933d602e9722a7963f4112463077c95.jpg", + "https://o1.fengqingyang.ml/old/c283bccaec67e54dfb9eaf1e8921c344.jpg", + "https://o1.fengqingyang.ml/old/486eba9628e0a455eb42ad86a1ca6271.jpg", + "https://o1.fengqingyang.ml/old/567d7f50d321d7c9972a045787a0d34f.jpg", + "https://o1.fengqingyang.ml/old/275e5b8e8f7bdac8ab9f069cc38c8a2e.jpg", + "https://o1.fengqingyang.ml/old/a60d60e203ab302c7951b30f82f92b5f.jpg", + "https://o1.fengqingyang.ml/old/291c4b46ed785e74ea591601eaf14b51.jpg", + "https://o1.fengqingyang.ml/old/ceca5875a7af32ba86d29eac9de9acd4.jpg", + "https://o1.fengqingyang.ml/old/d66f9bab092c0f9f53f2c4fb4962d4d0.jpg", + "https://o1.fengqingyang.ml/old/40eda95c07f5e83958f38faf32624a72.jpg", + "https://o1.fengqingyang.ml/old/2897d2fbb3e7ec739cc487018c71df06.jpg", + "https://o1.fengqingyang.ml/old/ce257adebc67cdf62d0e62603c2571d6.jpg", + "https://o1.fengqingyang.ml/old/1b9ff6c858a6908172e874e0239b56b4.jpg", + "https://o1.fengqingyang.ml/old/b75bb741b484fc7a4322c95b9aea4d3c.jpg", + "https://o1.fengqingyang.ml/old/e13828870eabae69f4c7bb1d86854da0.jpg", + "https://o1.fengqingyang.ml/old/3044da9b663e07545c68cf321804155c.jpg", + "https://o1.fengqingyang.ml/old/2f5b5bf6d0a23b235969c4bc77afcd69.jpg", + "https://o1.fengqingyang.ml/old/0a99ac3975002425c3e7c23d2967ac40.jpg", + "https://o1.fengqingyang.ml/old/ed04d99a759e407e9ed4859f2ad194c7.jpg", + "https://o1.fengqingyang.ml/old/3ce0f19d3822e2f065f9b650dfc77f8e.jpg", + "https://o1.fengqingyang.ml/old/4488211f546cdc217ed8fc9a67b58fdc.jpg", + "https://o1.fengqingyang.ml/old/9b2b0fff4558433f4d129201eb08d00c.jpg", + "https://o1.fengqingyang.ml/old/a02990f151b2bec175ebacb7cdf5e10b.jpg", + "https://o1.fengqingyang.ml/old/56f9f7a853ee4000a2dd79175aa89f4a.jpg", + "https://o1.fengqingyang.ml/old/75ec269b0c3792e229a341ac212e7282.jpg", + "https://o1.fengqingyang.ml/old/4b264aac60c97262884623dba1dc5cd7.jpg", + "https://o1.fengqingyang.ml/old/ad666bb31ff62e28a6c418f9b862d573.jpg", + "https://o1.fengqingyang.ml/old/6ecab848e0155131018c4b1089df7833.jpg", + "https://o1.fengqingyang.ml/old/d2eaf94f0196ebcc3b28b6a83530b990.jpg", + "https://o1.fengqingyang.ml/old/6841c54c4a06fa0bfb7bc859a8e0a14b.jpg", + "https://o1.fengqingyang.ml/old/0409b8343b1bb56e6dcc9e4b1c93afb8.jpg", + "https://o1.fengqingyang.ml/old/ba7cf46133c4fc9ac52951ec519cc1cb.jpg", + "https://o1.fengqingyang.ml/old/86cc3c3d60c4753f59d3d1af8c4d3655.jpg", + "https://o1.fengqingyang.ml/old/7770fbcaba5e123becc5a7c21e8104d1.jpg", + "https://o1.fengqingyang.ml/old/088478300f86ca39b235b22f326e468d.jpg", + "https://o1.fengqingyang.ml/old/9beaa1ef2001005b11673909751b8bcf.jpg", + "https://o1.fengqingyang.ml/old/19c805b952ddb64a549e01e3d845bb1c.jpg", + "https://o1.fengqingyang.ml/old/43b9a8990287672268bc993ca4ac698e.jpg", + "https://o1.fengqingyang.ml/old/c3868a79c9500422f026f59e581e4881.jpg", + "https://o1.fengqingyang.ml/old/85d4c3173faffbdd5f3733ffd0f8d7f4.jpg", + "https://o1.fengqingyang.ml/old/d9e52dbf157bdbc60905f5637b2f579d.jpg", + "https://o1.fengqingyang.ml/old/dd9722be52bd91d1feb98ab903a6aba3.jpg", + "https://o1.fengqingyang.ml/old/be72edb93b3d63998b7ce5a2c5cc0e36.jpg", + "https://o1.fengqingyang.ml/old/8a7fefde9beb29d86a5a1db99eb77a9f.jpg", + "https://o1.fengqingyang.ml/old/d174d7380cd40b617bc25a4f8e56ca90.jpg", + "https://o1.fengqingyang.ml/old/ae1c357fe0d7e33b897ed7a590b6950a.jpg", + "https://o1.fengqingyang.ml/old/2265342f9e6d72a09188014772bf3474.jpg", + "https://o1.fengqingyang.ml/old/c51318791ea77e32cf959a90d4773b06.jpg", + "https://o1.fengqingyang.ml/old/e69f236a557a2156aca2d6330f53fde1.jpg", + "https://o1.fengqingyang.ml/old/5701e9083aec37eb4bc46d092b340508.jpg", + "https://o1.fengqingyang.ml/old/db8e3227891e979e88c6f8435eedb435.jpg", + "https://o1.fengqingyang.ml/old/9bd272d2a4361cfac78e883dda7151ba.jpg", + "https://o1.fengqingyang.ml/old/3e01335e353e4950955e18ffaa8bedab.jpg", + "https://o1.fengqingyang.ml/old/1de44f5c5d635838245a7d424fccdadc.jpg", + "https://o1.fengqingyang.ml/old/914a7a66a79be5f2ce3a92040cfa3385.jpg", + "https://o1.fengqingyang.ml/old/24b34e5f05e849493021d684c297d49b.jpg", + "https://o1.fengqingyang.ml/old/6173d3c4b9ac8b42bc0838124f252bfd.jpg", + "https://o1.fengqingyang.ml/old/37384fc9ff422219843c7a14605f2bf7.jpg", + "https://o1.fengqingyang.ml/old/e4354a7d5052ae08115a0c00023458b9.jpg", + "https://o1.fengqingyang.ml/old/a646fe9eaa560a8d0a96a812c407fa47.jpg", + "https://o1.fengqingyang.ml/old/695570f8f699819a2f360aa802e0ba0c.jpg", + "https://o1.fengqingyang.ml/old/807c081225c3ea14522e2dd02d0c72a9.jpg", + "https://o1.fengqingyang.ml/old/69761ab243eeeda0c061e3bdfd829b1e.jpg", + "https://o1.fengqingyang.ml/old/55c78863369617e22842f6a520d0c234.jpg", + "https://o1.fengqingyang.ml/old/9b5cc0382bc914b60c4b03335bf0d8be.jpg", + "https://o1.fengqingyang.ml/old/0efcd132c5aa45ffd21426f1a3b1f653.jpg", + "https://o1.fengqingyang.ml/old/8c4a1035a5ed48522e71e1573fa9802a.jpg", + "https://o1.fengqingyang.ml/old/bca256602f73ef0661e86392c74d0abc.jpg", + "https://o1.fengqingyang.ml/old/73e4ef5aef8f5a0e623faa9fab941e2d.jpg", + "https://o1.fengqingyang.ml/old/5bb28597c9955481c84479fd09e8614e.jpg", + "https://o1.fengqingyang.ml/old/1c882663caecdd98d25061e8e3d4db3d.jpg", + "https://o1.fengqingyang.ml/old/2d07057d0a83d97f894aa532007096a5.jpg", + "https://o1.fengqingyang.ml/old/c2758c0e64200eed26166fb5504295a1.jpg", + "https://o1.fengqingyang.ml/old/22eab0c0bf521ac719d2abd3e72b1fb5.jpg", + "https://o1.fengqingyang.ml/old/fb53484aca8ed92a5b0e6ca52925ac33.jpg", + "https://o1.fengqingyang.ml/old/c93b78b80903aa06ffa5e40f144b0e86.jpg", + "https://o1.fengqingyang.ml/old/b2a7aa08e8efd99273f0c4c0c4ae971d.jpg", + "https://o1.fengqingyang.ml/old/eff2fb20c064fdcd54eac3f9e4e7a1ad.jpg", + "https://o1.fengqingyang.ml/old/21d10d09ed82ffa3932715eff949cb98.jpg", + "https://o1.fengqingyang.ml/old/3a0d34e7b404b82f26fdc24ff995ae60.jpg", + "https://o1.fengqingyang.ml/old/627b2c5a5288f30c385b506584570ac3.jpg", + "https://o1.fengqingyang.ml/old/caf1a322e67dc5147e6ed244d2c12b13.jpg", + "https://o1.fengqingyang.ml/old/7f3ee9328e37023567065f93ac605f65.jpg", + "https://o1.fengqingyang.ml/old/87e9d333ac93a1085096cf52d299dbbd.jpg", + "https://o1.fengqingyang.ml/old/df756d60cbceba977c3b8e6211c6d5c0.jpg", + "https://o1.fengqingyang.ml/old/e4fe3832bdff7b87f0005f1670cf075a.jpg", + "https://o1.fengqingyang.ml/old/0f3720eeac0e7136165a83295811352e.jpg", + "https://o1.fengqingyang.ml/old/1635959ca03c890205a74978036702a3.jpg", + "https://o1.fengqingyang.ml/old/0d42ddde335213933b4b62f56ebdc225.jpg", + "https://o1.fengqingyang.ml/old/cfb7bd5cba3b5bcf93c3a416a3a46f38.jpg", + "https://o1.fengqingyang.ml/old/9119031b92afae7ef456fcff519fb033.jpg", + "https://o1.fengqingyang.ml/old/9396d4e3439c662454b4ab7f1f5084e5.jpg", + "https://o1.fengqingyang.ml/old/1ddc3c2a158d8fa99969afa5b0ac5ade.jpg", + "https://o1.fengqingyang.ml/old/2773cb265c261d045f6ed8274eb21cbe.jpg", + "https://o1.fengqingyang.ml/old/12adad2fe7fd5a79c07011c65fc87dc1.jpg", + "https://o1.fengqingyang.ml/old/6841c54c4a06fa0bfb7bc859a8e0a14b.jpg", + "https://o1.fengqingyang.ml/old/d2eaf94f0196ebcc3b28b6a83530b990.jpg", + "https://o1.fengqingyang.ml/old/1e51e2ab55f16edc244f01c9cbcb5cbd.jpg", + "https://o1.fengqingyang.ml/old/3de94be5cd16195ad6fa5a5edbe6d2d2.jpg", + "https://o1.fengqingyang.ml/old/65b1df033a45476b1e8e2bba63b90bc1.jpg", + "https://o1.fengqingyang.ml/old/3c202fee4101a43fa9e917a35543e522.jpg", + "https://o1.fengqingyang.ml/old/b24ba5441d714be95ac346b3c8bf7f79.jpg", + "https://o1.fengqingyang.ml/old/ecaaa1a75d7f32dc36e6717a7031b729.jpg", + "https://o1.fengqingyang.ml/old/0b6ee52c5f57fd1cc6c91464d0828185.jpg", + "https://o1.fengqingyang.ml/old/43fa73758a935209959c5b1721ef701e.jpg", + "https://o1.fengqingyang.ml/old/1ddc3c2a158d8fa99969afa5b0ac5ade.jpg", + "https://o1.fengqingyang.ml/old/2773cb265c261d045f6ed8274eb21cbe.jpg", + "https://o1.fengqingyang.ml/old/2cc1d16f6b56ed85cd9269ad8278c6cd.jpg", + "https://o1.fengqingyang.ml/old/eb8ae55fbc25cad1ea07481c93f88831.jpg", + "https://o1.fengqingyang.ml/old/50f8286d10b81cbe1531081baa62bce7.jpg", + "https://o1.fengqingyang.ml/old/ed9321114a492959910f5c7cc8ccd176.jpg", + "https://o1.fengqingyang.ml/old/25cd2df26bbe94132a4015b36c9431a3.jpg", + "https://o1.fengqingyang.ml/old/352a916ce55f2ebc14e6b68d6ebcf286.jpg", + "https://o1.fengqingyang.ml/old/e2dd11dfa91c4350760f1543c84014ef.jpg", + "https://o1.fengqingyang.ml/old/d9ab113c536e83e21f03429a58c7ed13.jpg", + "https://o1.fengqingyang.ml/old/ad772aafa8a338ecdf2baddc67b316bd.jpg", + "https://o1.fengqingyang.ml/old/8099e1b39fc713408864953d540216f0.jpg", + "https://o1.fengqingyang.ml/old/41cf706e8753e57c4dea7491a6db2b0e.jpg", + "https://o1.fengqingyang.ml/old/05828ade7fc0fa4105068d3cb8664b63.jpg", + "https://o1.fengqingyang.ml/old/9ef8becd9ff046289a4d93dea2b00e61.jpg", + "https://o1.fengqingyang.ml/old/757372c4508462b265371bfb6d3e7eec.jpg", + "https://o1.fengqingyang.ml/old/d1fc3b1c4e6327e01f98957fbb76a172.jpg", + "https://o1.fengqingyang.ml/old/eff2437cb6362d9bf5a0a38f19bcfe1d.jpg", + "https://o1.fengqingyang.ml/old/cc10b11dd15047cf48eb2a999e813ef0.jpg", + "https://o1.fengqingyang.ml/old/93b759ef97d5c342b1345b804cfc888b.jpg", + "https://o1.fengqingyang.ml/old/3b97aa8d67960399a42c8a441af7973c.jpg", + "https://o1.fengqingyang.ml/old/e889c43eee10b9cf0e3cb68c16ff05ec.jpg", + "https://o1.fengqingyang.ml/old/14dfdc0508071de653cf35c50ace9fa1.jpg", + "https://o1.fengqingyang.ml/old/96a89f3464451e78604bd1fb672772f2.jpg", + "https://o1.fengqingyang.ml/old/a21e37a819090711076e0418e0e89429.jpg", + "https://o1.fengqingyang.ml/old/10e48f14088681ad4420a68da7393fed.jpg", + "https://o1.fengqingyang.ml/old/a69479e2558f07806a031f79855297fb.jpg", + "https://o1.fengqingyang.ml/old/a21ff9e1000c68e2e2e4538ee22a97cf.jpg", + "https://o1.fengqingyang.ml/old/59618442eac7c12a2e73ea14966a64da.jpg", + "https://o1.fengqingyang.ml/old/b74caff11df27cf983595065aeaee190.jpg", + "https://o1.fengqingyang.ml/old/a13fe445706b9bb60f114a802ec6683e.jpg", + "https://o1.fengqingyang.ml/old/c114fbe45402e5aa9a52b68a85bf6254.jpg", + "https://o1.fengqingyang.ml/old/946fe1ee4ba9202946cf674d914d65b2.jpg", + "https://o1.fengqingyang.ml/old/3878c2c9a812d6e26c4367f7d9905840.jpg", + "https://o1.fengqingyang.ml/old/327579c7bbab3bbb77361d5ed31bd7d2.jpg", + "https://o1.fengqingyang.ml/old/31b0cb039b777884d4258723146cd82a.jpg", + "https://o1.fengqingyang.ml/old/2428b54504febf4cbf07300f0bc972e1.jpg", + "https://o1.fengqingyang.ml/old/7012dd068f64e98bd44d186d367a02b3.jpg", + "https://o1.fengqingyang.ml/old/6cf155270be044bb07e9cd1e32a40402.jpg", + "https://o1.fengqingyang.ml/old/a86ab783ce66864ae88fb37f62a9a641.jpg", + "https://o1.fengqingyang.ml/old/56c41322e2fc4e1e421e688274259b79.jpg", + "https://o1.fengqingyang.ml/old/d9519a1c1c9c1341321a456312b000ec.jpg", + "https://o1.fengqingyang.ml/old/254302bd2f3edc8fbef17b534cd1e524.jpg", + "https://o1.fengqingyang.ml/old/e768ad9ed54eec20c9a3c9a74c936e42.jpg", + "https://o1.fengqingyang.ml/old/8ea1ee7dfd4a4d3b346251f24f768dc6.jpg", + "https://o1.fengqingyang.ml/old/6b264ad719e782b0ccef9c46f7ab1d26.jpg", + "https://o1.fengqingyang.ml/old/5cae38675170661cfa389412457ef28e.jpg", + "https://o1.fengqingyang.ml/old/535852fe6a801cbdad71ee3d2271b6af.jpg", + "https://o1.fengqingyang.ml/old/7e70d028ec0ceb17e4ade85c6a5d7367.jpg", + "https://o1.fengqingyang.ml/old/942d6323d7229c37ff7dcc903bc23ea7.jpg", + "https://o1.fengqingyang.ml/old/168033aa39cb46fce7421ba7259f663d.jpg", + "https://o1.fengqingyang.ml/old/4923ab8995c1173fb884a65479c72277.jpg", + "https://o1.fengqingyang.ml/old/c3861ade337b70304ce748d57b34189b.jpg", + "https://o1.fengqingyang.ml/old/4f20e7d1e81088038a259d0cce62463f.jpg", + "https://o1.fengqingyang.ml/old/acf4bbb00bc143a538e4111715b4eb3f.jpg", + "https://o1.fengqingyang.ml/old/4f6294dc14794203cdde382149302503.jpg", + "https://o1.fengqingyang.ml/old/6f6365bda0b826945184ecd3ed1e37f5.jpg", + "https://o1.fengqingyang.ml/old/40593b719d0f39f31c8d86be823e33d1.jpg", + "https://o1.fengqingyang.ml/old/6c51b12b42c124a0bf5a0faa41dbb8f9.jpg", + "https://o1.fengqingyang.ml/old/f5ddb7db83a50b94fe0e34016f39d6e4.jpg", + "https://o1.fengqingyang.ml/old/58d7df3b3b3991b76725c0b57b7e2427.jpg", + "https://o1.fengqingyang.ml/old/99e409802491a7ce1541617284442c24.jpg", + "https://o1.fengqingyang.ml/old/12f879095822b70a35494fb02ca4126a.jpg", + "https://o1.fengqingyang.ml/old/df9ab0f8bd6b646e97ed9791259c54bf.jpg", + "https://o1.fengqingyang.ml/old/87ee2143399aec5b134221075a267151.jpg", + "https://o1.fengqingyang.ml/old/a1bd456a7042c895297f9c77574df29d.jpg", + "https://o1.fengqingyang.ml/old/b8bd2e47c85bc9ef651d7312f2dd4ab8.jpg", + "https://o1.fengqingyang.ml/old/54db4b36231d2302503d51b930377dfd.jpg", + "https://o1.fengqingyang.ml/old/e34d2eb85367ff66ac1ff86a7b8b76cb.jpg", + "https://o1.fengqingyang.ml/old/d027cb6bd2c695283c93cd3aba89f2f6.jpg", + "https://o1.fengqingyang.ml/old/1ef447960ac68fb401fe1c58b12d81b4.jpg", + "https://o1.fengqingyang.ml/old/4fc06de5af43618d0b288d68f4931244.jpg", + "https://o1.fengqingyang.ml/old/da6a1899ac0d08908f7cbaf707b5f12b.jpg", + "https://o1.fengqingyang.ml/old/22b3e8494d16c3eb0950bc8f961a0a28.jpg", + "https://o1.fengqingyang.ml/old/503752a4f9d322a15a7f3b1fd400da5a.jpg", + "https://o1.fengqingyang.ml/old/842ebc5ce153749fc2a08a67e67a7c80.jpg", + "https://o1.fengqingyang.ml/old/bc42645f26050f87145aa51174a468ae.jpg", + "https://o1.fengqingyang.ml/old/5723118a5363d2f701edae1c15a8c93b.jpg", + "https://o1.fengqingyang.ml/old/e9b22de0e43905fcb0a731608dd30068.jpg", + "https://o1.fengqingyang.ml/old/813d39c0335d47d9c5df2b4599f73f47.jpg", + "https://o1.fengqingyang.ml/old/cde64b2a157ab1a2a27b1feb43c2d08d.jpg", + "https://o1.fengqingyang.ml/old/5332ef4452ae7e1ff2012c43f60e1b6f.jpg", + "https://o1.fengqingyang.ml/old/e2453974ac562b14a9a14c13a51b1d50.jpg", + "https://o1.fengqingyang.ml/old/cab35957deccd42bff46738ee7551f46.jpg", + "https://o1.fengqingyang.ml/old/b6e1504f4347e63f04450981b8e84bf4.jpg", + "https://o1.fengqingyang.ml/old/b0c5269a764954b3b5800f9fb91a2208.jpg", + "https://o1.fengqingyang.ml/old/95745a85e164f6350c3b2aeaa912c322.jpg", + "https://o1.fengqingyang.ml/old/3f2689e8a6d2e9d55010f81898e15f01.jpg", + "https://o1.fengqingyang.ml/old/3ae39e1d3b1c4e58898092cbeda616af.jpg", + "https://o1.fengqingyang.ml/old/4aa66805920d254000af603ed0233ebf.jpg", + "https://o1.fengqingyang.ml/old/a4e6708a04760a0ad0b213e398cd43e1.jpg", + "https://o1.fengqingyang.ml/old/fc3a14c41e5ea7bc2199233f6892a2f9.jpg", + "https://o1.fengqingyang.ml/old/a411f5d1330a822be76ccdd050ea0bc1.jpg", + "https://o1.fengqingyang.ml/old/aa86955335954172c5bc3a8a10a3216e.jpg", + "https://o1.fengqingyang.ml/old/e150179663652eab767669fbf65dd73c.jpg", + "https://o1.fengqingyang.ml/old/25163d9899b3053524af5befc3a4f0fc.jpg", + "https://o1.fengqingyang.ml/old/4b81d149f00c865bd95b35c7e4dc6d24.jpg", + "https://o1.fengqingyang.ml/old/707fd0fa089836875e823e88cb7c5480.jpg", + "https://o1.fengqingyang.ml/old/c8b976c1868c98712775b5ef9c4482d2.jpg", + "https://o1.fengqingyang.ml/old/26dd80068770ac7b5289562a4e0b8c03.jpg", + "https://o1.fengqingyang.ml/old/59318e0e6b30bbdca78276faa930119d.jpg", + "https://o1.fengqingyang.ml/old/c0d0914a4307cdc37f2a255827e4d28a.jpg", + "https://o1.fengqingyang.ml/old/16f6bf2c5360471fe561a046a9a90b25.jpg", + "https://o1.fengqingyang.ml/old/6de720071ed9b6fca0d738054a1a9b30.jpg", + "https://o1.fengqingyang.ml/old/3fc47dd02f0a604506818bce7b22a568.jpg", + "https://o1.fengqingyang.ml/old/6419efb9a6ca86dedfe60430452a29ae.jpg", + "https://o1.fengqingyang.ml/old/6a65de4a09143e94a1d48132b841a790.jpg", + "https://o1.fengqingyang.ml/old/8ec57297168f0d767daa41e36e4bf166.jpg", + "https://o1.fengqingyang.ml/old/5ec234112e85d12248d54382c64d1a91.jpg", + "https://o1.fengqingyang.ml/old/0968ae85d2d90c7e00a33a4299f1f410.jpg", + "https://o1.fengqingyang.ml/old/7fd42b75ce2ca604f779f77faf1a0e5e.jpg", + "https://o1.fengqingyang.ml/old/fd2932c1062bc2c9d21e218be7626faf.jpg", + "https://o1.fengqingyang.ml/old/585eac63f19b669b81799553eef14968.jpg", + "https://o1.fengqingyang.ml/old/be980ff7435493594567f1c16a6bb39f.jpg", + "https://o1.fengqingyang.ml/old/65bdd6a092a5b876c2be964a460c538e.jpg", + "https://o1.fengqingyang.ml/old/42ffb6f22947cdb8a7a339c78adf298d.jpg", + "https://o1.fengqingyang.ml/old/58f066bcf8847711bde96db67f94f9e0.jpg", + "https://o1.fengqingyang.ml/old/75ebd6c017fed8c4f06723b0bfbb58d7.jpg", + "https://o1.fengqingyang.ml/old/4099dca6cbcf183bb92611b186d09fc5.jpg", + "https://o1.fengqingyang.ml/old/43b9a51011cd80852ae3c6735ac3a4b8.jpg", + "https://o1.fengqingyang.ml/old/1f7d9154bf71d80b11e62a2799a64d7a.jpg", + "https://o1.fengqingyang.ml/old/75bff5c92364d9f5d5fd3002e6f1e006.jpg", + "https://o1.fengqingyang.ml/old/47b360679cefab679002867b5308bc77.jpg", + "https://o1.fengqingyang.ml/old/f4249647d4f1bb20502af855945c54d0.jpg", + "https://o1.fengqingyang.ml/old/bb132b70ec769721059321d7f9679348.jpg", + "https://o1.fengqingyang.ml/old/d198784d315dfabbc8f74592e9a993e9.jpg", + "https://o1.fengqingyang.ml/old/d77efdb88de5b4fd23a66e00283bf3b8.jpg", + "https://o1.fengqingyang.ml/old/439401d284b6db2b68a29d92d418543e.jpg", + "https://o1.fengqingyang.ml/old/37b20e571f21d9d38a6701912f4db843.jpg", + "https://o1.fengqingyang.ml/old/0cc4e74c3b4d841bc5d4233ad807fca1.jpg", + "https://o1.fengqingyang.ml/old/d4b69e71fbb7396472d0bc0e5c32f6e8.jpg", + "https://o1.fengqingyang.ml/old/5d599e49842e4f8e031bd3449d83a37e.jpg", + "https://o1.fengqingyang.ml/old/687c25b90883a08d8d9fcf164425c047.jpg", + "https://o1.fengqingyang.ml/old/e6b09f7dbe3cee69fe471a894ce90c21.jpg", + "https://o1.fengqingyang.ml/old/a61b5932c8ec56807ec081adde8a8ed8.jpg", + "https://o1.fengqingyang.ml/old/c7a41f34a30ae69a1a009f4019dddbe8.jpg", + "https://o1.fengqingyang.ml/old/de40dfcff88f2bd10b6ccdc8a5dd00d9.jpg", + "https://o1.fengqingyang.ml/old/27ea400f9b8454b81a3cd26644c57902.jpg", + "https://o1.fengqingyang.ml/old/7923ea8c7ad8988f41ecc56732e36f66.jpg", + "https://o1.fengqingyang.ml/old/2d4485858b4f296ffdc34192f600189a.jpg", + "https://o1.fengqingyang.ml/old/b8f09c000755b1c4a1c8f6ebdc0d2fac.jpg", + "https://o1.fengqingyang.ml/old/1549bc749f1ce1c56e5519bf09808ec9.jpg", + "https://o1.fengqingyang.ml/old/e47009d020929a9571ebba23cdeabe81.jpg", + "https://o1.fengqingyang.ml/old/57a3f33f051af53d084a6c792e3e1cb5.jpg", + "https://o1.fengqingyang.ml/old/d1b184b85207f05415e0bbaab818925b.jpg", + "https://o1.fengqingyang.ml/old/45c0d4941326b367b5c229e13fae17b7.jpg", + "https://o1.fengqingyang.ml/old/78533ac648f0de3683df28283a3689e0.jpg", + "https://o1.fengqingyang.ml/old/f64024c8f934d80368779d348ef0d371.jpg", + "https://o1.fengqingyang.ml/old/d99c11fad530b276142cf8c4de26e645.jpg", + "https://o1.fengqingyang.ml/old/503ead0605ba6312bdca5c11c7a838f5.jpg", + "https://o1.fengqingyang.ml/old/d2a994f193beed38afa5173315d1fabc.jpg", + "https://o1.fengqingyang.ml/old/eab96b04e1c2b0a3d545405b72790564.jpg", + "https://o1.fengqingyang.ml/old/b014dd2246aa869c74cfff829c54b9a4.jpg", + "https://o1.fengqingyang.ml/old/bb662e095980c6f594bd951703fa01f0.jpg", + "https://o1.fengqingyang.ml/old/75254e073c5af712579a30bd98f5ef51.jpg", + "https://o1.fengqingyang.ml/old/39af8c0ad1e0a234d6624b405dc7c76b.jpg", + "https://o1.fengqingyang.ml/old/84f493236d4f70d9247d63e97e6a3eab.jpg", + "https://o1.fengqingyang.ml/old/d7f564c58aa1766ceafeddfcae8fa00f.jpg", + "https://o1.fengqingyang.ml/old/837b4ba4d7b3c868372e3e578fb81857.jpg", + "https://o1.fengqingyang.ml/old/c88b0162df93bba6a8fd5099cfe05770.jpg", + "https://o1.fengqingyang.ml/old/d673e52807b228ed432946416dc29821.jpg", + "https://o1.fengqingyang.ml/old/16407c26de35d9ed07bf417b338672a4.jpg", + "https://o1.fengqingyang.ml/old/bbd89d23b17510446f3199c2d89f0b94.jpg", + "https://o1.fengqingyang.ml/old/a8736a01b4659b03aff7d6892b5cd641.jpg", + "https://o1.fengqingyang.ml/old/3dbe336bcff7215eabed81dcf6ece40d.jpg", + "https://o1.fengqingyang.ml/old/98b423a68306fdc421dfc5cad1005735.jpg", + "https://o1.fengqingyang.ml/old/214aab200fa678a83b61c884a55f9ca8.jpg", + "https://o1.fengqingyang.ml/old/ca04aaddd7b86fe1c42717900c732b14.jpg", + "https://o1.fengqingyang.ml/old/e87b7300696db54bf75de13e7fcb76de.jpg", + "https://o1.fengqingyang.ml/old/60ad6914dd6e78669d9c37fbda7ac3e7.jpg", + "https://o1.fengqingyang.ml/old/a5463e9f3473d7e32450b8f5b3e31c6b.jpg", + "https://o1.fengqingyang.ml/old/6e6f00e6e004fd8137cfebd738836480.jpg", + "https://o1.fengqingyang.ml/old/45dddc9ae9c683b71323a35296e02a3e.jpg", + "https://o1.fengqingyang.ml/old/d0b6f1d802dcf8e50e570c3609715c81.jpg", + "https://o1.fengqingyang.ml/old/79d9c40e4ca110d568ba95894d628a0d.jpg", + "https://o1.fengqingyang.ml/old/eaca304def77fac65a9d4ad56d48ce5b.jpg", + "https://o1.fengqingyang.ml/old/b18f63661bfd1385c90b5fd1f43d2541.jpg", + "https://o1.fengqingyang.ml/old/63223bc7f9a8b425c7e334876403c41e.jpg", + "https://o1.fengqingyang.ml/old/51391450fe3d7ce077f59d04b229793e.jpg", + "https://o1.fengqingyang.ml/old/c31a90180f65aad814a6d256c1690a89.jpg", + "https://o1.fengqingyang.ml/old/9feb74a1261a0d50d953d81bb74590b3.jpg", + "https://o1.fengqingyang.ml/old/14b44e7aa14e8effb1742fc66e1c1300.jpg", + "https://o1.fengqingyang.ml/old/ad73cb0bd7ec856c795f73c8dca6f9d4.jpg", + "https://o1.fengqingyang.ml/old/2303e1d4a5622aa584a51c1602d0f0aa.jpg", + "https://o1.fengqingyang.ml/old/9c122d184e0c9928f05eacfe0d2f02c5.jpg", + "https://o1.fengqingyang.ml/old/819d24627dc2af9115ae5047d38c4fef.jpg", + "https://o1.fengqingyang.ml/old/ab853cdadb890e8ed914a81a490ec1f4.jpg", + "https://o1.fengqingyang.ml/old/34d0c9ab213bb327e1d88a479d72c7c6.jpg", + "https://o1.fengqingyang.ml/old/11ed6f0aa39f2f60125aa0f668d9569b.jpg", + "https://o1.fengqingyang.ml/old/dde3ce57cfae2e110a87560eadf3c452.jpg", + "https://o1.fengqingyang.ml/old/092ce0fe1703cefeb9e9dc71add78f0b.jpg", + "https://o1.fengqingyang.ml/old/255e4708e9ae7c37f4d6b6a553beb667.jpg", + "https://o1.fengqingyang.ml/old/3dde3bc9a0c39c50e4061f1c11148178.jpg", + "https://o1.fengqingyang.ml/old/8c8907b75521e0e93d2674f52e17c439.jpg", + "https://o1.fengqingyang.ml/old/60584e5e4f8d4936bd18381eb015c1b1.jpg", + "https://o1.fengqingyang.ml/old/d30c960f60992bb7a32fbf8d6ade33b6.jpg", + "https://o1.fengqingyang.ml/old/e8cf504631beb7232f2bd2a26da2872f.jpg", + "https://o1.fengqingyang.ml/old/181479fc0829635492f87512299002d2.jpg", + "https://o1.fengqingyang.ml/old/db26fab2ca95849316751d3d769199a5.jpg", + "https://o1.fengqingyang.ml/old/cd670f7987b97d98f9ce9faf701cac35.jpg", + "https://o1.fengqingyang.ml/old/a8af3f0eb2ae52671dcc5ab7302d4faf.jpg", + "https://o1.fengqingyang.ml/old/1f66754abe53963c8f4eb63aee018936.jpg", + "https://o1.fengqingyang.ml/old/f6dcc36d68d3237a1230599fcdafe2f7.jpg", + "https://o1.fengqingyang.ml/old/37df70ed6aeaf90b3601a70be9eded8d.jpg", + "https://o1.fengqingyang.ml/old/2e22a672a0522d3adf0de18cd21b3af1.jpg", + "https://o1.fengqingyang.ml/old/9bff8a3c79118944693f90e60c843951.jpg", + "https://o1.fengqingyang.ml/old/aae822fb7d765f24891a253d22d0c29f.jpg", + "https://o1.fengqingyang.ml/old/00f265f167cbcf0fcdaf51eecdbfb11b.jpg", + "https://o1.fengqingyang.ml/old/fa4f97c81b60a9bdbc8be29db8c7d564.jpg", + "https://o1.fengqingyang.ml/old/8222738b73dfd712a5d7b627196f8d18.jpg", + "https://o1.fengqingyang.ml/old/b77859e2a34dc78d9a6b8c556cf3354b.jpg", + "https://o1.fengqingyang.ml/old/afe79ba293b67f5b2b796bc610a2732c.jpg", + "https://o1.fengqingyang.ml/old/eb7c86c0092adf87d5ef790383c21c8b.jpg", + "https://o1.fengqingyang.ml/old/ff06eb8f54de66648225fe7f99bee6fa.jpg", + "https://o1.fengqingyang.ml/old/a46a1d7af94465b88e492cd2af1868ab.jpg", + "https://o1.fengqingyang.ml/old/f8f4ab65055300bc35e454695ccf0958.jpg", + "https://o1.fengqingyang.ml/old/0c2a5c1a46fb935e2fa45d1a0d92432b.jpg", + "https://o1.fengqingyang.ml/old/dfb7a183f53b231940ec3791c4725271.jpg", + "https://o1.fengqingyang.ml/old/03df1c2cb261837f25890876d027d12c.jpg", + "https://o1.fengqingyang.ml/old/ecf18ea0ccad12d9474e1d207127f632.jpg", + "https://o1.fengqingyang.ml/old/f3a65e844bfb31f688815cef3bba0054.jpg", + "https://o1.fengqingyang.ml/old/736e494374b34bc21555d852c8de34d4.jpg", + "https://o1.fengqingyang.ml/old/bf95031994fec4f15548bd184ce87b5a.jpg", + "https://o1.fengqingyang.ml/old/c756e37b5ae7efa2542a091fc5477fea.jpg", + "https://o1.fengqingyang.ml/old/edf080db257463630c8dc29211dddead.jpg", + "https://o1.fengqingyang.ml/old/ac4fbe02029b5d7f1c95d3451f810435.jpg", + "https://o1.fengqingyang.ml/old/ba5f631d5540ec3219f53aa814d4235b.jpg", + "https://o1.fengqingyang.ml/old/0e894c1ff9738850bafbda786b25c833.jpg", + "https://o1.fengqingyang.ml/old/31a6caf2ebb4554456983166bfc2dcf6.jpg", + "https://o1.fengqingyang.ml/old/987d036efdd396fed8a73e02da58c2c4.jpg", + "https://o1.fengqingyang.ml/old/d14cccfcb8a3116de9b87bcd0132c59f.jpg", + "https://o1.fengqingyang.ml/old/94ad71f11d6133e20962e59c3a815178.jpg", + "https://o1.fengqingyang.ml/old/8b43263ab4c158727cd43311d9a881a6.jpg", + "https://o1.fengqingyang.ml/old/27781e395b2476d945d6ea45bb9bd580.jpg", + "https://o1.fengqingyang.ml/old/fad417901ddfe47a6767703e33859559.jpg", + "https://o1.fengqingyang.ml/old/01b45894d4aaa1c11549e2c7a334d753.jpg", + "https://o1.fengqingyang.ml/old/ba491a8593f776e4be4ff075e90444ae.jpg", + "https://o1.fengqingyang.ml/old/9b947e6ffb844779181497e9df87542e.jpg", + "https://o1.fengqingyang.ml/old/97ba620bffdf411eb9131a654fa2400a.jpg", + "https://o1.fengqingyang.ml/old/0b1c0f61ddea446a7eaa109a070dabad.jpg", + "https://o1.fengqingyang.ml/old/3006c6e428467ac6ac89ed8407db5dcc.jpg", + "https://o1.fengqingyang.ml/old/610a04608aebbaf1aa0ec04f6f6aa139.jpg", + "https://o1.fengqingyang.ml/old/06861feaad13b371865e8608281d8bb4.jpg", + "https://o1.fengqingyang.ml/old/33d8ed80e4c3d05bc5a5f12312b882ee.jpg", + "https://o1.fengqingyang.ml/old/c3e7f52696e149e2fd8ee42b8bbd585e.jpg", + "https://o1.fengqingyang.ml/old/ec03a3bfe273b9a7a4be0639979072af.jpg", + "https://o1.fengqingyang.ml/old/4d7a9be43c6ec09b083a63ac927abe11.jpg", + "https://o1.fengqingyang.ml/old/33064a514f13935f69db1f509f93c823.jpg", + "https://o1.fengqingyang.ml/old/cce7389e1c7e03285aa9dfd203bcb5d4.jpg", + "https://o1.fengqingyang.ml/old/aba192bc368356bacc0598047cf758d3.jpg", + "https://o1.fengqingyang.ml/old/b72efd97f29be45cd2e386413d76cdc6.jpg", + "https://o1.fengqingyang.ml/old/1e1b6812a90da95b193f232e9cf822fc.jpg", + "https://o1.fengqingyang.ml/old/516b1480e1116037ad4b46631af56981.jpg", + "https://o1.fengqingyang.ml/old/88c6741a02f432a2b459ae980dc9a163.jpg", + "https://o1.fengqingyang.ml/old/5db73b8a9803e5b23e15fbecafee77ed.jpg", + "https://o1.fengqingyang.ml/old/66bf57f1b9a8215817ef474535824875.jpg", + "https://o1.fengqingyang.ml/old/fb4d645fb158bfe3062f8ae219d00d80.jpg", + "https://o1.fengqingyang.ml/old/7b1eaf7f5fe5d894a21f17d17d616b80.jpg", + "https://o1.fengqingyang.ml/old/70d03b8cf3355028d3cabed493057edb.jpg", + "https://o1.fengqingyang.ml/old/5260863b741ef9228208d5cd14e2765e.jpg", + "https://o1.fengqingyang.ml/old/85397f4807dfbe65b6033d620ba0f715.jpg", + "https://o1.fengqingyang.ml/old/c213bf4a37d7e010b91af29d01798765.jpg", + "https://o1.fengqingyang.ml/old/4060b6716278ac300230495e8890e16c.jpg", + "https://o1.fengqingyang.ml/old/eb5f05577f7f40a8866ae3cbb3dd8ed6.jpg", + "https://o1.fengqingyang.ml/old/8e064c8fff71175ecd0db77bf6f7d4bf.jpg", + "https://o1.fengqingyang.ml/old/df1598971e2847518d92a450af75369e.jpg", + "https://o1.fengqingyang.ml/old/1f607987bd66549435c8465152d20a24.jpg", + "https://o1.fengqingyang.ml/old/6d84f8ab8d443f431bcbe6de837fdff9.jpg", + "https://o1.fengqingyang.ml/old/03d7b506d2fa0cd78f37247d14a4dc1c.jpg", + "https://o1.fengqingyang.ml/old/8bbe58ae6ca25f32a3f6ba852f8992c4.jpg", + "https://o1.fengqingyang.ml/old/5166e275868cdbf1c0c0d2485b5160ef.jpg", + "https://o1.fengqingyang.ml/old/4ad406d2ebf6ff679de8da92ef25fb67.jpg", + "https://o1.fengqingyang.ml/old/cfbaec34959720cbef20a671397f190c.jpg", + "https://o1.fengqingyang.ml/old/1513cbb91456c57d7330cd832f21c76c.jpg", + "https://o1.fengqingyang.ml/old/0cd7ff933ca52aa9cff43606764a4947.jpg", + "https://o1.fengqingyang.ml/old/107341a41885dcd728927ad1c0eaf311.jpg", + "https://o1.fengqingyang.ml/old/3a82aa1cbceb9f6e4ae7fd1bea7f19a7.jpg", + "https://o1.fengqingyang.ml/old/93eb67c36327a2f3bb4b4216e45de2c3.jpg", + "https://o1.fengqingyang.ml/old/6ad845e66a2fafd1d387a3b6c87d0721.jpg", + "https://o1.fengqingyang.ml/old/f84a66575edc438fe93bcc04a2c430e8.jpg", + "https://o1.fengqingyang.ml/old/0cff64a17025a55e14a916c930ecb1aa.jpg", + "https://o1.fengqingyang.ml/old/d1894a0114da5e2a92b2edc17079e08b.jpg", + "https://o1.fengqingyang.ml/old/8244f48ff9f062be8977ab59e76b3f0c.jpg", + "https://o1.fengqingyang.ml/old/b6bccbab2d4f71b950c5c4d563983871.jpg", + "https://o1.fengqingyang.ml/old/af9b79ad2f8ddc7e6c232e9bce53eb5c.jpg", + "https://o1.fengqingyang.ml/old/bc765e5717063540265da77ea27d883e.jpg", + "https://o1.fengqingyang.ml/old/1014e66a5ca7cb91be374fb5d1f385af.jpg", + "https://o1.fengqingyang.ml/old/9933209f41d4c55ddaa7a50083a95e34.jpg", + "https://o1.fengqingyang.ml/old/bf08f6c70930f9554526dbf6920c2b0f.jpg", + "https://o1.fengqingyang.ml/old/6e1f125dbf507cb084e343b0beff09ca.jpg", + "https://o1.fengqingyang.ml/old/405306de1d4ec5d65a9715a8cd334625.jpg", + "https://o1.fengqingyang.ml/old/844d5edb72b4f8ac4944319e0a5d98a9.jpg", + "https://o1.fengqingyang.ml/old/f71e0e0d2ed02b34d29449ac7a76e8da.jpg", + "https://o1.fengqingyang.ml/old/53b64736525f9f087d578fd87489b81e.jpg", + "https://o1.fengqingyang.ml/old/1ca467a020cd2930bf2704c70405a8d6.jpg", + "https://o1.fengqingyang.ml/old/5b2612bb0ca9f5ba4f1b05f1d7fe01c2.jpg", + "https://o1.fengqingyang.ml/old/a3e0ba1578f2f6316a8a507621cf734c.jpg", + "https://o1.fengqingyang.ml/old/f4e6386ab7a27ab6927bf5ec9ecc1fb9.jpg", + "https://o1.fengqingyang.ml/old/b3bb177d33a781536ae07a19a4f6d95c.jpg", + "https://o1.fengqingyang.ml/old/c9ae2d105d139f994c52954d691b4672.jpg", + "https://o1.fengqingyang.ml/old/98a1a2ee230cc088c858928ce15504b1.jpg", + "https://o1.fengqingyang.ml/old/a1d64df5b1ffa77cb6393367d73ce310.jpg", + "https://o1.fengqingyang.ml/old/45099ae5ffdd1dcb98cee5d75f6266d2.jpg", + "https://o1.fengqingyang.ml/old/0b55c0a64365a4d502cd47550bab7dbc.jpg", + "https://o1.fengqingyang.ml/old/8b9103ea0711fdcc4bfbb3f2b8f0f028.jpg", + "https://o1.fengqingyang.ml/old/2b853e45bd11a8ddcac32cfcf108ba0c.jpg", + "https://o1.fengqingyang.ml/old/d720c64b304bda25614c31501973a4e9.jpg", + "https://o1.fengqingyang.ml/old/0199f6f3cf7e33a10c65ac46675bd3cc.jpg", + "https://o1.fengqingyang.ml/old/49e7032a97789f4966ce47845c8dd1bc.jpg", + "https://o1.fengqingyang.ml/old/048a26eb6f384d1a0e810d0ddeda5964.jpg", + "https://o1.fengqingyang.ml/old/1f1ded04b72d8f6c8c3402b7a5ddca72.jpg", + "https://o1.fengqingyang.ml/old/4357ccbab70bd1ee130c10da4b3d995c.jpg", + "https://o1.fengqingyang.ml/old/1a555b322a6117353a4c9ee37e960173.jpg", + "https://o1.fengqingyang.ml/old/721e169785b7c2dee4b3311085d3ae38.jpg", + "https://o1.fengqingyang.ml/old/0631aea95835522f9c43c67de9f341c5.jpg", + "https://o1.fengqingyang.ml/old/4ff0594c68e501f2b93293ec875e34f9.jpg", + "https://o1.fengqingyang.ml/old/008de4d6fc56723a9bbd796500b6c25f.jpg", + "https://o1.fengqingyang.ml/old/44f4e22f705d9241a05b27926e673a32.jpg", + "https://o1.fengqingyang.ml/old/448545dfd62aae7a06e64961e1ef0ac5.jpg", + "https://o1.fengqingyang.ml/old/b23740f4cba93673a9e5b8f005a7fbf7.jpg", + "https://o1.fengqingyang.ml/old/f20a14ac6775439bf2ba1535c9a480be.jpg", + "https://o1.fengqingyang.ml/old/7dba2a397d56e702546276571b5b1547.jpg", + "https://o1.fengqingyang.ml/old/5355ca6920905f5a71ab179509d29496.jpg", + "https://o1.fengqingyang.ml/old/ae3e48e6fa6967c85d0bbfb47a657863.jpg", + "https://o1.fengqingyang.ml/old/662aa98615ecb3dd3ca8ec4c575c972d.jpg", + "https://o1.fengqingyang.ml/old/74b21610ed243553a95b20fa7bcb4d3c.jpg", + "https://o1.fengqingyang.ml/old/4831ecded3513773964d93178a166715.jpg", + "https://o1.fengqingyang.ml/old/500bd85a34262f1b29c67bade8ea91b0.jpg", + "https://o1.fengqingyang.ml/old/803da85ba71d65d2ddf83fc50aada53f.jpg", + "https://o1.fengqingyang.ml/old/e269474daec86b35b2278555401c1924.jpg", + "https://o1.fengqingyang.ml/old/4512aca676e0d1c859b16c2a5a38b95a.jpg", + "https://o1.fengqingyang.ml/old/4931b9a441609268dfea5c0a76a878e1.jpg", + "https://o1.fengqingyang.ml/old/479a9db470755fb54ff9156bd7d92438.jpg", + "https://o1.fengqingyang.ml/old/bf350492768077b7f14cf0f10f27fe92.jpg", + "https://o1.fengqingyang.ml/old/01496eab519f495e6a5c5a753997dc98.jpg", + "https://o1.fengqingyang.ml/old/5f927ee0c72b951dcd86936e073bfaa2.jpg", + "https://o1.fengqingyang.ml/old/fe586dbc96707a624b4d83b4356af4d9.jpg", + "https://o1.fengqingyang.ml/old/14114061d74ceb4b599a2375cb0a7400.jpg", + "https://o1.fengqingyang.ml/old/964049e2fb65af95122156fe0f8801e7.jpg", + "https://o1.fengqingyang.ml/old/461231d1228ad0a546b9134bbe5c1a5e.jpg", + "https://o1.fengqingyang.ml/old/085a5c434f2a16523ce4472ad2ee3040.jpg", + "https://o1.fengqingyang.ml/old/e81a6ac190f587d4173e07cc089862ce.jpg", + "https://o1.fengqingyang.ml/old/2102d4440d99de420c0f5ba830e22b1c.jpg", + "https://o1.fengqingyang.ml/old/b25fae2d793f0c762f3bfdbaecc11a3a.jpg", + "https://o1.fengqingyang.ml/old/ca8d6beee8dab2d405645b6ce2baedfc.jpg", + "https://o1.fengqingyang.ml/old/d9b1cc7ec895bc527eb44a0bb3a74eab.jpg", + "https://o1.fengqingyang.ml/old/22177fdb5001a4062e32d0c3dbfd6fdf.jpg", + "https://o1.fengqingyang.ml/old/f847a6a7c688dd94548dbb7569e31079.jpg", + "https://o1.fengqingyang.ml/old/182b431a0e8cc9787412d19642e1f0bc.jpg", + "https://o1.fengqingyang.ml/old/f9b69197aaf67d776f12bfb649655264.jpg", + "https://o1.fengqingyang.ml/old/93e50c59c0279b1ec9d6d462f07c8014.jpg", + "https://o1.fengqingyang.ml/old/2255367747e935ff309e8f503a175541.jpg", + "https://o1.fengqingyang.ml/old/98e640312c3ea56e1abdeb9d357a0c98.jpg", + "https://o1.fengqingyang.ml/old/01647b45852385dcc399b3d70c6ba76b.jpg", + "https://o1.fengqingyang.ml/old/77be02df42eb7525944e578f1c3cbc43.jpg", + "https://o1.fengqingyang.ml/old/8a53322be53d72dbb13ab00034cd9ca8.jpg", + "https://o1.fengqingyang.ml/old/4f316320eed4802768d7c47198dd26c0.jpg", + "https://o1.fengqingyang.ml/old/e94793c957e6eb56ef970304d42b9e0f.jpg", + "https://o1.fengqingyang.ml/old/510f3c0554c1cd955efd5e57a000c40c.jpg", + "https://o1.fengqingyang.ml/old/c74006578621be20de290edd28b72855.jpg", + "https://o1.fengqingyang.ml/old/12b08f0c8fb2551827bf22c5e25ffb98.jpg", + "https://o1.fengqingyang.ml/old/8aafc1f1614478427dbef7668c76bf59.jpg", + "https://o1.fengqingyang.ml/old/5cad4a70e2b995b5ce016003925284ce.jpg", + "https://o1.fengqingyang.ml/old/4b319c2f6e597d25961caa94a67f755a.jpg", + "https://o1.fengqingyang.ml/old/acf7f7afc65d1c45746f10bc2fda3a75.jpg", + "https://o1.fengqingyang.ml/old/bd3f2830e6489174ca945dfedcc67709.jpg", + "https://o1.fengqingyang.ml/old/0a89cdecc94cd615d178aa47007b77e0.jpg", + "https://o1.fengqingyang.ml/old/41f748d369c5f917f9d44592d5a7eac7.jpg", + "https://o1.fengqingyang.ml/old/efe24499bf723eeea7f35e3296d92cd0.jpg", + "https://o1.fengqingyang.ml/old/66d9143557c22f36eff6bd40db5eb12f.jpg", + "https://o1.fengqingyang.ml/old/aec033f2573278b5604b6b1ee5454369.jpg", + "https://o1.fengqingyang.ml/old/bef95d820b22960fd42c413d81bac9b1.jpg", + "https://o1.fengqingyang.ml/old/2cff99a2dfc700e61571da1a0cec5be1.jpg", + "https://o1.fengqingyang.ml/old/c053e4e66b1708616f5a7cadc4566ae5.jpg", + "https://o1.fengqingyang.ml/old/f8396a7a5219e0e7a50d839cd2c5642c.jpg", + "https://o1.fengqingyang.ml/old/6add59feaba35e05c014e5ba68be5e1c.jpg", + "https://o1.fengqingyang.ml/old/1800dde53a34c7da374ffa9ce4c53731.jpg", + "https://o1.fengqingyang.ml/old/5f8cd074304aa5f659cd55dc150eda15.jpg", + "https://o1.fengqingyang.ml/old/7cf2eda47c7982cc4311fdd248a90788.jpg", + "https://o1.fengqingyang.ml/old/4d9c45dc3a46843434fe20ce964e741a.jpg", + "https://o1.fengqingyang.ml/old/5006f2ec8e6b1577a1d9723128ca92cd.jpg", + "https://o1.fengqingyang.ml/old/22117a7736b4b298f5aa36b17d50fd5b.jpg", + "https://o1.fengqingyang.ml/old/5225f2f00f89f24ac40b64ba3d38eaf6.jpg", + "https://o1.fengqingyang.ml/old/3d52683b0d7cb5650dfcf3469baa42df.jpg", + "https://o1.fengqingyang.ml/old/16005f8b26a123c348df5cfa02cddb48.jpg", + "https://o1.fengqingyang.ml/old/0a2eab1a724819d618cf684a061c112c.jpg", + "https://o1.fengqingyang.ml/old/64074929c0b6902e669aa16e58cabbbe.jpg", + "https://o1.fengqingyang.ml/old/19c15fc57de635d3ab9ffc96edd2979d.jpg", + "https://o1.fengqingyang.ml/old/29b1b2a1abbbb320248bfa8df92a53dd.jpg", + "https://o1.fengqingyang.ml/old/ad1c256b60c60deb9f999e6ca1f037c0.jpg", + "https://o1.fengqingyang.ml/old/0609747702d7a9a7ea2b06b8b8e18c56.jpg", + "https://o1.fengqingyang.ml/old/705e3c94b5072be51c8635963ead4067.jpg", + "https://o1.fengqingyang.ml/old/a275cea24bad345db3d2cfbed770e34a.jpg", + "https://o1.fengqingyang.ml/old/2e7bcca986f21d8909b016b70e0ef2b8.jpg", + "https://o1.fengqingyang.ml/old/a676a8184820a1d912b34cf93eac8459.jpg", + "https://o1.fengqingyang.ml/old/5fba9b7dfb34a6b7723c1a5e3d1399d5.jpg", + "https://o1.fengqingyang.ml/old/18e07c50120fee6349d94b2961fe4c6c.jpg", + "https://o1.fengqingyang.ml/old/cf901d2f0ea8d5096e861cba16971799.jpg", + "https://o1.fengqingyang.ml/old/0bbd5a8225d0a75dcc68c846e2fb9b7c.jpg", + "https://o1.fengqingyang.ml/old/d27e833ae3e12eed41a6e962cd6f3e01.jpg", + "https://o1.fengqingyang.ml/old/8220173807b4c6594fef32e7547ad6dc.jpg", + "https://o1.fengqingyang.ml/old/92104a6a131a9c2f955bdf78e24b68f4.jpg", + "https://o1.fengqingyang.ml/old/6ef80cf265ac95db727df855eebf0ef9.jpg", + "https://o1.fengqingyang.ml/old/0b896e013765e95bba110a018557f26d.jpg", + "https://o1.fengqingyang.ml/old/5e0635b8bc3355d518a4a71d9094d46c.jpg", + "https://o1.fengqingyang.ml/old/360a1882a7fbe9b42020522c8a342e74.jpg", + "https://o1.fengqingyang.ml/old/69b67cd0df3bbd24b55ffa1c754c4335.jpg", + "https://o1.fengqingyang.ml/old/ace3a7763678df52894310fea8af3aab.jpg", + "https://o1.fengqingyang.ml/old/208ae60da546a1bb9c664013b0481bc5.jpg", + "https://o1.fengqingyang.ml/old/35da79b12ebb123dca41acd7c4cd0400.jpg", + "https://o1.fengqingyang.ml/old/a5a471ec02278bcb1dc7e5d0bed5e66e.jpg", + "https://o1.fengqingyang.ml/old/f2375396313b6247dee595ef49cab84d.jpg", + "https://o1.fengqingyang.ml/old/eece520258aed921baf99ad7903a5d3f.jpg", + "https://o1.fengqingyang.ml/old/b49236059ec15d6326df6310b0debfd7.jpg", + "https://o1.fengqingyang.ml/old/1f7cf8bd22c439c02837ad8a99ee02d1.jpg", + "https://o1.fengqingyang.ml/old/72f3eaff68567d65ed812071f4535e4f.jpg", + "https://o1.fengqingyang.ml/old/81f242ee53b0147f837a857e0bb186ca.jpg", + "https://o1.fengqingyang.ml/old/cbdc87bd0bdbf9658069cadd271e5549.jpg", + "https://o1.fengqingyang.ml/old/bca7672925abcf7ebb19fdc96cc2a097.jpg", + "https://o1.fengqingyang.ml/old/5b6516e3ddc8f68ab4d732a387ac6e9f.jpg", + "https://o1.fengqingyang.ml/old/73cc1231656e3e30a19e734d61ab1e90.jpg", + "https://o1.fengqingyang.ml/old/ff87222fef643cc363f314d4e3d419c4.jpg", + "https://o1.fengqingyang.ml/old/4d83037e3848160663542138bf17cb3d.jpg", + "https://o1.fengqingyang.ml/old/f9af09ad17356b9e3ff5928590b6fe6e.jpg", + "https://o1.fengqingyang.ml/old/5a4f5f590e1c9ed73455c9066d215ffb.jpg", + "https://o1.fengqingyang.ml/old/75a4e8101f98305fc58beab56dcfc1a5.jpg", + "https://o1.fengqingyang.ml/old/35a2feb492dad5fde4d68c7e3b8ec6db.jpg", + "https://o1.fengqingyang.ml/old/2dd57d4cdeb92329da4789887cf1f7bc.jpg", + "https://o1.fengqingyang.ml/old/599fd96eb69187c9d0a17ddc8202d1e9.jpg", + "https://o1.fengqingyang.ml/old/0997390c5e3765f6b16fd8b85564e807.jpg", + "https://o1.fengqingyang.ml/old/52a1350eedf009ac1f2ce93ae5500227.jpg", + "https://o1.fengqingyang.ml/old/005d1de550301993bebd240d87b910af.jpg", + "https://o1.fengqingyang.ml/old/c7495429ea714d85d96fa61466cc5ba6.jpg", + "https://o1.fengqingyang.ml/old/ace6c29bdd62c75e88585f8ae1ab461b.jpg", + "https://o1.fengqingyang.ml/old/8ee91edc6aa48779c6597316fd5df84e.jpg", + "https://o1.fengqingyang.ml/old/0117481df6c6bbf6c2c9c4011e153510.jpg", + "https://o1.fengqingyang.ml/old/ced0ab6b3135afcfdcfd7d3db3d00499.jpg", + "https://o1.fengqingyang.ml/old/4b23ad173efbe906f805f087342ec77a.jpg", + "https://o1.fengqingyang.ml/old/225dda3977ba7a87fd1c7e70f9951d0c.jpg" +] \ No newline at end of file diff --git a/file/girls_pic_20230515.json b/file/girls_pic_20230515.json new file mode 100644 index 0000000..f724c39 --- /dev/null +++ b/file/girls_pic_20230515.json @@ -0,0 +1,2405 @@ +[ + "http://dounimei.us/wp-content/uploads/2021/05/2021053115101620.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070600325056.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072022242449.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060209480924.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110493561.webp", + "http://dounimei.us/wp-content/uploads/2021/06/202106052356101.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061516163968.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060210200254.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021063009474825.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110481159.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021060909352840.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061400462427.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106121239356.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070808563767.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060107061295.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061111003484.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070808564130.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072022164018.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060107414920.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070703573911.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106220400223.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061710314315.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061306164849.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061401033122.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061717205159.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/202109121038286.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061413185458.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110400045.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021062712160635.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110441032.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021060208000128.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/20210620001424100.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061515231415.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061611482861.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060612092538.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040402481889.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072013550316.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061212583949.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060107472829.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072013323841.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060106494919.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/20210616010422100.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110433039.webp", + "http://dounimei.us/wp-content/uploads/2021/07/2021070710515861.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061710471533.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021071206544384.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060900544946.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062203564847.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110302179.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021053116075355.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072013373195.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091205344358.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062423580443.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061312373090.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070712251768.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110524690.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021061317002384.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106121245128.jpg", + "http://dounimei.us/wp-content/uploads/2022/11/2022110209485317.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600165745.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061411132384.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060612090759.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060418585446.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021063010223534.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060610103058.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/202107071225152.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106160119206.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060604510575.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106111156294.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091205543193.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060604305281.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060104195652.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061602561831.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061112005781.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060504285351.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060604192036.jpg", + "http://dounimei.us/wp-content/uploads/2022/11/2022111206405170.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060610202828.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061305483974.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060501374952.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060209552993.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062423533277.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061404324746.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021053116245285.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061603422744.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060502340015.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061412000834.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061603382131.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060416393367.jpg", + "http://dounimei.us/wp-content/uploads/2022/11/2022110509384064.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106010532524.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060203075379.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061802021523.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061701503395.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061717404392.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600461521.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061702501840.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061313095290.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060107134972.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060502340970.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060302224133.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070201153371.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060202404319.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060601515444.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060209132828.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106171151116.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060209401557.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062123045012.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060105280582.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021053116080732.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060813164963.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070703153881.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060604464953.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061111395249.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072013293895.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062712052914.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062018210572.jpg", + "http://dounimei.us/wp-content/uploads/2022/08/2022081604380628.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021060608573161.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060202005234.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061223112824.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091205391253.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060501454311.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021071206513915.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040404421793.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091206252950.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021071206595244.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061601223968.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021063009522052.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060611451162.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021063010073040.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110360515.webp", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600404432.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060901270263.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061610512576.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106051111057.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061701440160.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091215311095.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/202205060040012.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060522540180.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040402471964.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061612335994.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061603510190.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061411212857.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060417384369.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070600395769.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061710581068.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070712115645.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061400415571.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/202207011041458.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021060606535019.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600383969.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060202081813.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060610103474.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061700510626.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061201275590.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/20210613131432100.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600285075.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060103215745.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110334780.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021061718102146.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021053116513288.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061802221141.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060512514848.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061403273948.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060419222339.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070703195651.jpg", + "http://dounimei.us/wp-content/uploads/2022/11/2022110209485484.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061802064874.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061719074662.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062712160445.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060510454511.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091205291627.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070202184739.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060212242433.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106140432457.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061412142518.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072013372653.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110513264.webp", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110222548.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021060106005451.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060610021144.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106020850315.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060301544293.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072013501630.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040404571060.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061212472848.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600413972.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091206362819.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070903141976.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062000141045.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110423155.webp", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110345847.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021061710471799.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060612184911.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070703342330.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061701314550.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061719074479.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060504332958.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600301167.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405092695.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060503291099.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061212421574.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110334640.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021060510494083.jpg", + "http://dounimei.us/wp-content/uploads/2022/08/2022081604380598.webp", + "http://dounimei.us/wp-content/uploads/2021/07/2021070711112694.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106211354008.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070712321625.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060207390650.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061702143069.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061802172378.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060813024449.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060523005593.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061403563878.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061413185377.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062103154631.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070713201936.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062923255369.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060207553587.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600422329.jpg", + "http://dounimei.us/wp-content/uploads/2022/08/2022082410443833.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061400341554.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061710314863.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061312312039.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061111003444.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091205444968.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060813053671.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600372399.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061403493213.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061603465950.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070702573431.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061701314960.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061711081594.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061603333671.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070801455821.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060604510250.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021071206473276.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061316384491.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062111105319.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106171912457.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110423050.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021060501454980.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060601465628.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106060430538.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110353251.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021061712093154.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072013450849.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060201564378.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106051251459.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060419222582.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060300595452.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070702573277.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060202005381.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060201043245.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070710591410.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070713240064.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070600373222.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106211400163.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106141232281.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060418102898.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062204080128.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040402460846.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061603253385.jpg", + "http://dounimei.us/wp-content/uploads/2022/11/2022110402411639.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070523543832.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061413310092.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072013253913.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061611280773.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021071207030654.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061719213153.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106171736472.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091205252627.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061701503191.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070808520081.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061710241445.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061409464676.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060203023655.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061603510023.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091210185971.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061306410369.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091209324948.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060708432418.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061611581896.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405044573.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061409521618.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060610231830.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061223074198.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021053116163160.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061314065693.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060416574476.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040402424545.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061313095051.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060609350970.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061701503420.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060909352627.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061404074470.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110473848.webp", + "http://dounimei.us/wp-content/uploads/2022/07/202207011048496.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021060417244194.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600134017.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061402405385.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060510555856.jpg", + "http://dounimei.us/wp-content/uploads/2022/12/2022120503275157.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060510555987.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091210504484.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070702525456.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060207553934.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061801251280.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060212190389.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061212451125.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060201493017.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062711584053.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062000142531.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061610512838.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061405123438.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106061226514.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060610202732.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061718412926.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060613502631.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060502503012.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405072173.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060503290655.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060502594632.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061802242092.jpg", + "http://dounimei.us/wp-content/uploads/2022/12/2022120503232519.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061413144716.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061719152769.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062114051398.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061603381875.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060208055719.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060608451299.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091212533127.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060511110726.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060204432986.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061717285269.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106141221175.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110510016.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021060209401261.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070703272361.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061710282858.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060800175866.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091207113182.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202105311624511.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061401004184.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060416453019.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091205475761.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062111071258.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061318062024.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061801251063.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060711471535.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106071200332.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060100521619.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600285136.jpg", + "http://dounimei.us/wp-content/uploads/2021/05/2021053115065347.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062712102268.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/202109120512388.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110222543.webp", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405025412.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106092354236.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091207161236.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060514361426.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061403432523.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021063009521325.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061608380962.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061313341971.jpg", + "http://dounimei.us/wp-content/uploads/2021/05/2021053115065956.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061411504340.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062113540270.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091205291684.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061111360319.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061413252063.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060711512582.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061603560547.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091206061941.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062103154895.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061305341149.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060604353910.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060612092813.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060708515685.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060611495923.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060609351070.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060522535898.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060207432252.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061602561990.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061403590070.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060107380122.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072013501966.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060800472749.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061612282920.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106140100436.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061312193293.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060209201949.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021053116195267.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600192786.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072014070620.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061312341047.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405010151.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060512430493.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110505960.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021060510363461.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061802314058.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040404412159.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106020307517.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/202205060017435.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061404324181.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061611192014.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061223041581.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106212308325.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405035155.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062712052675.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061711511444.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070809134356.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600404555.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060300312356.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060800231385.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061316384846.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062423581985.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060510275719.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061603142325.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060812591244.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021063009435952.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060502470675.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060601403925.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061611581613.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060417564140.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060502392274.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061719013086.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061413145399.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061603073298.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106020101352.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600430461.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062123083278.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061603301780.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061314153278.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060609530285.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/20220404024718100.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062103122258.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060207523191.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106060446473.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106060641173.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062111175183.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070801572894.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060800473054.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106050246555.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062113540137.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600251992.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061412172233.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021053116163324.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021071206514270.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060613502342.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061603211781.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091210245854.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070803093547.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060610162588.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106271227272.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061718211831.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091207293750.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061201342694.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061612340731.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061702210527.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061312233135.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062111252617.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106211233513.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060711533945.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070202135480.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060208260278.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061413364068.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061306405331.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060901373693.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060502543133.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060711335747.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091205252773.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091210382987.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060612143135.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070523505988.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070808563194.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061314031295.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061603142216.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/202107080908509.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070600295053.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061111041798.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060202082214.jpg", + "http://dounimei.us/wp-content/uploads/2022/08/2022081604442790.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021060601514091.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061409522248.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060202574891.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061717453845.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062501423840.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106292329354.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061211140974.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072013550440.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060107215354.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/202109120534423.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106171740534.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106080052074.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060108231849.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091210341069.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060501454744.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202105311610448.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060610231543.jpg", + "http://dounimei.us/wp-content/uploads/2022/11/2022110509383671.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060609250869.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405205426.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061604001791.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021071206594843.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061411212781.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070903012072.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070201315299.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110383885.webp", + "http://dounimei.us/wp-content/uploads/2021/09/2021091206062099.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060604420450.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061712093071.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061603555589.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060609294355.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072022162051.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/20220701105012100.webp", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110403323.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021061612445127.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600343579.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060416453580.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600380240.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106070525045.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070703272768.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091210504351.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061201123730.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405061467.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061801193873.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061305524971.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061403235125.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110501297.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021061712195950.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060604105764.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091205124422.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060910372264.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600184429.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091215231820.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060107473122.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061312233595.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060813162852.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106141113216.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091210245797.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/20210617021738100.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060610162976.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061403373541.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021053116133440.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060300213694.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600334734.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405044631.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060514010130.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062111354350.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060501524550.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110375638.webp", + "http://dounimei.us/wp-content/uploads/2021/07/2021070704443340.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060208215963.jpg", + "http://dounimei.us/wp-content/uploads/2022/12/202212050326018.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061603301862.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061711200285.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405001076.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061317104333.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060107414822.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060901191126.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061603252751.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060514003734.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062203564679.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062923255451.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060512574923.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060601430945.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062501393894.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061610574193.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106271154132.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060105280350.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061006011358.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061717285167.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060511270854.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061712154876.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040402413746.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060800563570.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060604354298.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110414585.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021061413220888.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060210200416.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060209435060.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060202041933.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061212355890.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060300373632.jpg", + "http://dounimei.us/wp-content/uploads/2021/05/2021053115005689.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061201231716.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061802314152.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061405181127.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060512391432.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060711401515.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060511022680.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106010741491.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061717252863.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106180129424.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061405074243.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091215483558.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061212584630.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061412100872.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062923260057.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062423575742.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110293262.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021060510560098.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060201013339.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110383920.webp", + "http://dounimei.us/wp-content/uploads/2022/04/2022040404403176.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106170236307.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060705251015.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060106040072.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/20210625021827100.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110313912.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021061710243254.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060416415761.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061700510446.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061223013926.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060300503849.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091210283192.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061711044047.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061702173794.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061000045874.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060504372197.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061700510552.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061210585150.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060712124894.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061111360244.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060104272036.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061400463056.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021063010121813.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110364586.webp", + "http://dounimei.us/wp-content/uploads/2021/09/2021091205200010.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060202120197.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060514361169.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070523543677.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070808515412.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/202107120703045.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110444346.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021061005553699.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061211103082.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061601075781.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600304794.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070703342537.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110391852.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021061111534064.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062123043979.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062114050092.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070703272615.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106071151276.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062423532646.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070703023946.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060901231969.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062501423825.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091206364014.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060510275989.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070713314481.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061402434242.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060300504179.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072022284642.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061411212783.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061515434952.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061405243534.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106171725237.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060107061289.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060502302674.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061611193210.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060210200353.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072013450660.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061405244042.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062501392663.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061515445489.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040402403094.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060209201560.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060201411676.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061212553648.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061210584816.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040402481839.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060417244815.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060511111062.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070703543873.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061717410684.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060208000014.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070703153498.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061611482962.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061404202083.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040402491314.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091205200165.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061608404511.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110293257.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021060203023816.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600133813.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060106363644.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062502182272.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106211106595.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062111304543.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600430052.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060711373298.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061411011474.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061717095836.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061601192358.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600372468.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060301544393.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062711583750.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061802242394.jpg", + "http://dounimei.us/wp-content/uploads/2021/08/2021080202552466.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091207113332.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091212533111.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061603423426.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061312372920.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060212090722.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061412142469.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061711141070.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061212503423.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060511072864.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/202205060013394.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061601151178.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061314023349.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061405123057.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110400138.webp", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110254947.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021061212472561.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070710440069.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062711541649.jpg", + "http://dounimei.us/wp-content/uploads/2022/12/2022120503232440.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091210062540.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061719184548.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060300312224.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062203284116.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060204351914.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062111070972.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106160122345.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061111563277.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061404201653.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060909161020.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061611581747.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106061016285.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061403432447.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061710555350.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060523562450.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060800230719.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600160440.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/202107080050094.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061222503855.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060910331132.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106020815246.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060107504922.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091205475797.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405082913.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070712251654.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021071206513496.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061611393632.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061603560481.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060204432712.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061313094969.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070202215392.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061305340665.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091206122493.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062423533072.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061411165964.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061710472920.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070523513122.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021063009440696.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110310375.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021061400340978.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405200921.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060301543598.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061719123786.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061412463414.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061222503955.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060510493412.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061223041495.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061710282334.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070801572383.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062123125598.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060503240575.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061603141271.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060510453425.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060202082395.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/20220506001527100.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091207161482.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110520714.webp", + "http://dounimei.us/wp-content/uploads/2021/06/202106171721224.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061312290578.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091206253350.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060202005162.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061111450415.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062111304895.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405082836.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062112335543.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062712102128.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060712165339.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060106040221.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060900545029.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072014000046.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061212394066.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070712221822.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110342536.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021060208152128.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021053116275955.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061201301882.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060105325168.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070713315247.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060901191027.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061212584440.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060705183995.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061211103267.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060812590943.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061410400095.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061717453235.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061610510766.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061717364129.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061400574643.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060208414095.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061211060451.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060609294152.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070809134195.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062111203867.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061412464164.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070903062412.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110432975.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021060417384029.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061212554217.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062112075211.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110520881.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021061403321316.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110465469.webp", + "http://dounimei.us/wp-content/uploads/2021/07/2021071206444733.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062123130749.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061601040967.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060512472310.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060901191199.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060613590569.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060208350679.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060909352341.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/202205060026378.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061611280636.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061403590372.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405035235.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062712205113.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021071206415075.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060107325959.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110403315.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021060708082326.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060708115365.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061610462571.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110310419.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021060813054279.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106161234124.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061212311383.jpg", + "http://dounimei.us/wp-content/uploads/2022/12/2022120307301034.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060514044198.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060502433169.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060909161232.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091206544861.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072013502122.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600395925.jpg", + "http://dounimei.us/wp-content/uploads/2022/12/2022120307271775.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060504335770.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405082911.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091205391229.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021063010073514.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061711563013.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061404365921.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062123082733.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060416353596.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060212091442.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091205583683.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021053116163524.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021053116081039.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600204577.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060104195572.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061603470594.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060512471380.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062711445590.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061711104168.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060610060856.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070201090611.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106131656188.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060416415540.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060609430141.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021053116245463.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060800350859.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021053116424988.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021063009475312.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070703315787.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021071206545282.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061711562758.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060800521280.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/202109120606204.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110423161.webp", + "http://dounimei.us/wp-content/uploads/2021/07/2021072013451064.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061314100616.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040402491297.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060901231534.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062712205932.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600304818.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110375718.webp", + "http://dounimei.us/wp-content/uploads/2021/07/2021070809134517.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061305431999.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062712205650.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060711335560.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060604240263.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600375960.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070523593846.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061611031338.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091206204099.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070703231650.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106010321569.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060202404548.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070703404528.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060201043481.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021071206472845.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061223013523.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060106040122.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061601003938.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060501575028.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106141200076.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072022421872.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040402460847.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060523561994.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405061686.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060813355958.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060711401185.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060511072270.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110481184.webp", + "http://dounimei.us/wp-content/uploads/2021/09/2021091210283134.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061409521963.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060103215573.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061612131913.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060606565770.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061702142910.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106131704401.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106242348032.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062712012158.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070903062959.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070202251570.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061412405518.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600263692.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060604422425.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106021109327.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060601465563.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060712003645.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062112075669.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060207390723.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060707035280.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061223113177.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405061345.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040404403152.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060510273391.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061317045626.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062711541854.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061403564092.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060416420267.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060201372174.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060901344160.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070711153548.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021071206545746.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060106494856.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061802242498.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061611030853.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061111534175.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091210062636.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061403563541.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061702362799.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106171058161.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091206123021.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106121123068.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040404543256.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061313142597.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062111304867.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091210341056.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106161213099.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061719184617.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600174430.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061412031479.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/202205060042229.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060416392939.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060511201839.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061712020136.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600461684.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070702573060.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070802004172.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060611493913.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061719184790.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040404394781.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061412323232.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060106541862.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060501173745.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061611483014.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061411170028.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070600194169.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061701315182.jpg", + "http://dounimei.us/wp-content/uploads/2022/08/2022081604442666.webp", + "http://dounimei.us/wp-content/uploads/2021/07/2021072014111558.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070703062676.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061601222614.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062923322140.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061405021223.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/202109120729379.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600251823.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060800174170.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061603255035.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061710524558.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060909190053.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106020314319.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060608572945.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060901270189.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061210585275.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061405243745.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091206422752.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405044534.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061718102351.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060210101671.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061702210324.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110461169.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021060207432614.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061718101945.jpg", + "http://dounimei.us/wp-content/uploads/2021/05/2021053115005828.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405205598.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060604145843.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070702525545.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061411503667.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060800180744.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060511270772.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060201531271.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106050117412.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062111134873.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061801193256.jpg", + "http://dounimei.us/wp-content/uploads/2021/08/2021080204093518.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061701244146.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070202251765.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061403181310.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061001581636.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060502392032.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061717365337.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061603505938.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060104195447.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060901131219.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062111174735.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060107184274.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106010747338.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060900544686.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106250218254.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060514044253.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060514003954.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060708432330.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061702403017.jpg", + "http://dounimei.us/wp-content/uploads/2021/05/2021053114544460.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072014111262.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061719245595.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070803093617.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061802171986.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405200963.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061701244055.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060503240970.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061404025839.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060201013594.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060800231756.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040404571086.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060418102310.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061403373743.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062112074983.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061211140640.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061403235449.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021063010032791.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061211005625.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040402451425.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062711445126.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106081312019.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060909190984.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070801573020.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060504285816.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040404412129.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061305432059.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/202107020214059.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060209520980.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061601151841.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060608573036.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106021224234.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061701354735.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062423432261.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061405181367.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061603470676.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070713364486.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600380168.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021053116195587.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060302033058.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060209102199.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061412272729.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060812591495.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061400341075.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061701354899.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/202107080904166.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060511201536.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110481292.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021060510414416.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061601075547.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061601115844.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061413361513.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061006021315.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072022163835.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106020307526.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062103191639.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061412031234.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061317100717.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600292994.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060604191753.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060606410366.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061603073048.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/202107080050086.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061601121233.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061412172153.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061201160911.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/20210612110057100.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061516165588.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106120116072.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060417244662.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070703544138.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091215310935.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062501423790.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600313350.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060107183921.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021071206415661.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060711432029.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060613583652.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061410400495.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060511201924.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110314054.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021061719125448.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091205583692.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091206423331.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061717284524.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061111112024.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061402434330.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062110593587.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061712243869.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106140240569.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061111111723.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060209583436.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060711572542.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061223113055.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060901344441.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060209480959.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060107183580.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061516050651.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600192957.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070600395685.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060108113273.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060208113778.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091209324728.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060502543867.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110255091.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021060708082287.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070703194380.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060416353184.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600334630.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060502392322.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040402442348.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062112291423.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061710393082.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070202140754.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106141331025.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202105311627582.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061702440148.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061305425976.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061603212440.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060418584958.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106020748047.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061604001676.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061411165834.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600292813.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070600193898.jpg", + "http://dounimei.us/wp-content/uploads/2022/12/2022120307301093.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061402434522.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070704082294.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060510361464.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110473959.webp", + "http://dounimei.us/wp-content/uploads/2021/06/202106112219131.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062112205572.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106171156263.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061403404622.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062103122116.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110391811.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021061403404750.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060523010365.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062018213523.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060501575110.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091207161717.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106171901282.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060800350530.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/202207011022247.webp", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600165946.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072013293172.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062111203635.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060106005384.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072022284598.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061702435535.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061612224960.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060302123483.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060604240312.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/20210605015248100.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021053116425396.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061213040521.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110433175.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021061711195319.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061710555720.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060606471173.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106021219041.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062204413297.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060204591064.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060501524973.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060712124948.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060707035598.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106111145088.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061412101054.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091206482883.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060204432224.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062712245023.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091215231979.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110473939.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021061403530421.jpg", + "http://dounimei.us/wp-content/uploads/2021/08/2021080204093236.jpg", + "http://dounimei.us/wp-content/uploads/2022/12/202212030727236.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405101642.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062204002166.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106020755402.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060910372145.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106071157273.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070600373047.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/202205060044264.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060107505098.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110444265.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021060611452668.jpg", + "http://dounimei.us/wp-content/uploads/2022/12/2022120307272218.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070600395413.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061201160381.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060417563924.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061000020370.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070703403417.jpg", + "http://dounimei.us/wp-content/uploads/2022/12/2022120503275623.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061400414660.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061403530924.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060416361868.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060301575921.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060107134987.jpg", + "http://dounimei.us/wp-content/uploads/2022/12/2022120503205940.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070713235240.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070202182639.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060909233631.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040404412142.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070201083037.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060504371063.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061111394998.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091207221455.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061318024714.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070600294665.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070809041785.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070712321388.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070523543976.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060614032478.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061702363316.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060522573642.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091206423087.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091205391317.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061222571228.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/202107020225112.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062712245516.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061312312660.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021071207031066.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106271213119.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600442412.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062923293940.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061802271372.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061700571635.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061201275838.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070703404330.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060208055488.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060901231891.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060204351995.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600452582.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060522573975.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060502470736.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060813054613.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070713314914.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061404025545.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060107505079.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/202109121034109.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060501090980.jpg", + "http://dounimei.us/wp-content/uploads/2022/11/2022111206403423.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061711535775.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060209435138.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/202107080146007.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061802140758.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070703504580.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061404025917.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060100521774.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600471078.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021061719245812.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060418585654.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070704443139.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070703232297.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061312290745.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061201124887.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061403404341.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600160486.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070801413542.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060504333434.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060417014064.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060609531336.jpg", + "http://dounimei.us/wp-content/uploads/2022/11/2022111206402648.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062103120375.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/20210615160449100.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070703504295.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060523005983.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106090126571.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060416574817.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/20210602085034100.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060923541884.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061400525023.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061222571072.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600442551.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062103154153.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060416575052.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060207480124.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061411251119.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070201152754.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/20210912125330100.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062712102125.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060910371718.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061201231340.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021053116133155.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060419222695.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060103130835.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070704083239.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061317001731.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061610462928.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060708514560.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061711195099.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061710393112.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062423480349.jpg", + "http://dounimei.us/wp-content/uploads/2022/12/2022120503205856.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060712124681.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060712003790.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061702210661.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061710353432.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060207480473.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060503291190.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061314101089.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072014070251.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060207432959.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061717205569.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060302223985.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062114001389.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060708515797.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070710480398.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061717320415.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091215310932.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106050304441.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061313143075.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061700571815.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070802004053.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106070811555.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061717091762.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062111032712.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600272639.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070903011926.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062203284610.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061712200136.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110384090.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021061611393744.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091210190012.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060501575290.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060612265727.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061313062384.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070600324565.jpg", + "http://dounimei.us/wp-content/uploads/2021/08/2021080202552394.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060504424178.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061601151722.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062712011661.jpg", + "http://dounimei.us/wp-content/uploads/2022/11/2022110806290263.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106061226559.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060502502942.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061212451322.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061400462964.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060106363992.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061711535338.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060209583369.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091205344377.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060212241897.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405191328.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061601120754.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040402424567.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060417073027.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600372191.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061400574411.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021063010152361.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060210143827.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/202205060036347.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021063009475291.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061400524541.jpg", + "http://dounimei.us/wp-content/uploads/2022/08/2022081604380682.webp", + "http://dounimei.us/wp-content/uploads/2021/06/202106121114101.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061712020085.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060612185494.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600352033.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060813023925.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060910330758.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110441079.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021061411102495.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060901372763.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/20210614043700100.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061802141689.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060202120558.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072014070874.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/20220701102933100.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021061222503684.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061201342859.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060611500636.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106211214032.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061411251318.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110453178.webp", + "http://dounimei.us/wp-content/uploads/2022/11/2022110402411653.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060512515063.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072013595394.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110325989.webp", + "http://dounimei.us/wp-content/uploads/2022/04/2022040404543246.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061802313713.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061711104838.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040402360335.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060201412438.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070711111753.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061710240815.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091205124980.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061801294685.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061111483431.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106140343253.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061604001854.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070201314749.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060512385691.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060208113860.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061316555936.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600400093.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060208260386.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061305344247.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091205252781.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061612450971.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072013294170.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060604103739.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106140359022.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021053116042731.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060104271883.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070702525494.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060800400986.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106051404226.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061612224395.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091206483173.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061603423584.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061719244694.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070713275586.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061412000999.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021063010121768.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061001581449.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061305481984.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062110593941.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061410343397.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061719074719.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060522573773.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070710591274.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106071147144.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061403373610.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070712221521.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060107380217.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061717092292.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062111104710.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040404394639.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060502502575.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405020346.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061312144580.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110360549.webp", + "http://dounimei.us/wp-content/uploads/2021/08/2021080204092915.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070710435859.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060813162358.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061410203313.jpg", + "http://dounimei.us/wp-content/uploads/2022/08/20220816044428100.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021060609430132.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060606342437.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600330816.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061312192894.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062923322587.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060417384220.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060501373668.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070703024394.jpg", + "http://dounimei.us/wp-content/uploads/2021/05/2021053114534524.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021063010073357.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091207245476.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062018213466.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061314065077.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061404074510.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060208503519.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070710591485.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070202184288.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072013324142.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600452631.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061612494098.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061112005837.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106061020274.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040402413762.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110342456.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021061312373981.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060800472350.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106151616445.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060100521519.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061411102370.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040404543293.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/202107071044079.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060504422794.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062103241538.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061403493152.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061410203723.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061612224669.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062112292557.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060300312445.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072013255934.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060901373385.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070803093637.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600263544.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091205475757.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061717251550.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040404552831.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061316560351.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110501111.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021061111360366.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060512325786.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070713363849.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091205543228.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061413221367.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021063010223187.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060800351013.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060606534587.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062111353843.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061201343069.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106171114196.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106301003136.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061212472978.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060611452016.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060416454039.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405001088.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060604354172.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062712273083.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061717321321.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110334618.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021061404201989.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061413363766.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061515433766.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061413251849.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040402403171.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060107215128.jpg", + "http://dounimei.us/wp-content/uploads/2021/05/2021053115010046.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070712192552.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040404394731.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070600194054.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061608405262.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061313062697.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110284477.webp", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110353260.webp", + "http://dounimei.us/wp-content/uploads/2021/07/2021070713275783.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091205445058.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061711510694.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060800400841.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/202204040247196.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060201493146.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070201082622.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061710353317.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061211005823.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060107215243.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062712244020.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106071140141.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091215231272.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061712020666.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110395957.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021061603332547.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061718413528.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/202205060027259.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061403274091.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062301424481.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060909234197.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106161217577.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600383966.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061612494874.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405110874.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060610232017.jpg", + "http://dounimei.us/wp-content/uploads/2021/05/202105311510198.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060512391427.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061403181512.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600430623.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106140502105.jpg", + "http://dounimei.us/wp-content/uploads/2022/11/2022110509383659.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061603024829.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061006012014.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106161244464.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060601403032.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405020269.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070802004152.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060609531261.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600470970.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021060108231762.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062712131110.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061111111933.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060105280423.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070202215654.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061611392125.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/20210605030418100.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062923322887.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061211231091.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061412211659.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061411011340.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062712272098.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040404421645.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062204075250.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600313184.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060612142227.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060202574938.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060502161548.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061702173429.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091210283227.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070703544655.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060613590445.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070713364256.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106211233533.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600413876.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061000020243.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060302224297.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060606471768.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061318024863.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062123130589.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070600324821.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060209480814.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070710515997.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061700571965.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061306164368.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070809010329.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070201151056.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060512580147.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600331098.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061201280061.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060502161044.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061710580354.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061400574549.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070711113150.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060705173655.jpg", + "http://dounimei.us/wp-content/uploads/2022/11/2022110806290433.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091205291643.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110375738.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021062204001925.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061719153484.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062103241410.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072013424073.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091205543130.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062111105735.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070712281293.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021063010152143.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021053116042975.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106010733003.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106051102265.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110411640.webp", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110513252.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021060712263865.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106271201201.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060711512641.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060207522843.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070903012026.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110444385.webp", + "http://dounimei.us/wp-content/uploads/2021/07/2021070703342656.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060501173898.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106160119149.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/202107120644428.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060510414175.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062423480258.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060606410655.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061802271499.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061314064886.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040404552717.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062114001552.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061712092958.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062103191983.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600422043.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061612131363.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061412322687.jpg", + "http://dounimei.us/wp-content/uploads/2022/08/2022082410443835.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040404570962.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106140052482.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106111148411.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061211230932.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061223013856.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060502102940.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061317100255.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060302122549.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060302345618.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060800564074.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060204591232.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060201531399.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060712263549.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110493666.webp", + "http://dounimei.us/wp-content/uploads/2021/06/202106020834552.jpg", + "http://dounimei.us/wp-content/uploads/2022/11/2022110402413782.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061412100935.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061401032943.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060604051951.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405025390.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060923545633.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061603030144.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021053116425297.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061409464749.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070600373684.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061702403589.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091206204119.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061212393994.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060502594750.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070809084373.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061802021244.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091205200175.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106171901237.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061802220781.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106160100405.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070713201590.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060416393699.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060501091056.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070903141760.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091210130918.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072022421791.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070704443539.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110465329.webp", + "http://dounimei.us/wp-content/uploads/2021/09/2021091210130882.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060108113015.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061122192150.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060208055532.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062204412434.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060300503973.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061801345313.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061718213543.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070703024623.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061405074419.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060800521140.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061201230862.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061612283049.jpg", + "http://dounimei.us/wp-content/uploads/2022/11/2022110806290559.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/202207011046089.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021061710282760.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106120112389.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061412211711.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060514160526.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/20210613121442100.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060207595711.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/20220701103022100.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021060209102368.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070703574048.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060201564593.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060301580427.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061314023951.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600304872.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060708082446.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061313063360.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106171104526.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106170124391.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060708115499.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600204446.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061603212663.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062111135098.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/202204040509263.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061318024233.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060211093381.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061201301622.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061702403654.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062110592511.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061608404895.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405010066.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060209131861.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600301310.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070711153581.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061305482466.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072013323591.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106020212042.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060604304150.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040404552875.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061515232471.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061001581857.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060522541718.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061400485129.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106271213096.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061111563397.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061711142390.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061718413320.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/202107080908474.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106020153092.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061413221425.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062111253017.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070712115718.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072014111638.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060511072620.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070703195222.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110465527.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021060603591739.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060606534920.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061612173864.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061404370031.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110485425.webp", + "http://dounimei.us/wp-content/uploads/2021/07/2021070903141562.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061212355676.jpg", + "http://dounimei.us/wp-content/uploads/2022/12/2022120307301032.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021071206471985.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060609240774.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070523594166.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060201371991.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070201204247.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060711471746.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060610103221.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060209553312.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070703504431.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062711492619.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070710515553.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061400485493.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062111354581.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070703153697.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061611283520.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091215483624.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060910331032.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061411011385.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600184332.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600343413.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070712281116.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070801413032.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106271205195.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061111004317.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061317045714.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060800400785.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060512430570.jpg", + "http://dounimei.us/wp-content/uploads/2022/12/2022120503255887.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021053116104219.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061412464026.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061305530717.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060201372020.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070523593491.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405101687.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110325827.webp", + "http://dounimei.us/wp-content/uploads/2022/05/202205060025198.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060604052255.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072022242325.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061312233477.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070202215186.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060510494252.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060613502521.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060604240234.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061211055970.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091210062554.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405111043.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060104271910.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061802172542.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060108113194.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060601432688.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040404562128.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106041707334.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061601004132.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061603071754.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040404562039.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110284517.webp", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110391788.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021060604105662.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091210130831.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060203023712.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060208414125.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110461182.webp", + "http://dounimei.us/wp-content/uploads/2021/07/2021071206414526.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600313499.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070704082918.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405000959.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/202109120654429.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062204075712.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060708431939.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061212554490.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600152674.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060202575034.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070801523273.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106020752345.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106051232589.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061610574214.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060209583226.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061410203447.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061223041378.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061608375180.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600301219.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060107135047.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061401032294.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060603591835.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040402442449.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040402360316.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070600064838.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/20210615152212100.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070703315222.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061412030794.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062112205967.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/202207011034562.webp", + "http://dounimei.us/wp-content/uploads/2021/06/202106170144006.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062111203225.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061702250220.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062123045134.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061405123588.jpg", + "http://dounimei.us/wp-content/uploads/2021/05/2021053114544816.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/202207011031406.webp", + "http://dounimei.us/wp-content/uploads/2021/06/202106060924036.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062711413314.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072013424561.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061802221071.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106070703577.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091210382864.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060300373956.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106010649506.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060601514373.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091206482370.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060208350733.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061314101198.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061718211331.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106211220588.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060209434696.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061601075452.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061601041687.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060909161396.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060609394612.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061710555878.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060208214885.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040404562063.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060901130711.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106180214125.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106170144012.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060106541821.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600174570.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060514364787.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061410400137.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060416515153.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060503044211.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021063009522241.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060302123398.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/202204040458124.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060203142571.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060712165489.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060609395520.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061602562012.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600170053.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062112135511.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600334870.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060202041736.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061719213986.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070712280935.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600351911.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061711104633.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061403321554.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061313341028.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061717320831.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600470863.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021060212181494.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060612142951.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060510413180.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405092594.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060901344326.jpg", + "http://dounimei.us/wp-content/uploads/2021/08/2021080202532731.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110342654.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021060609425645.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061213040644.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106080056434.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062114051069.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061211060347.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060302032939.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060601402841.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061212311153.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/202109120558377.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060610060761.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061005555311.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060210143792.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061306411139.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106171108091.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072013260817.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040404581393.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060209355888.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060207390617.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062203284224.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070703062519.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110440985.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021060300214121.jpg", + "http://dounimei.us/wp-content/uploads/2022/12/2022120503275213.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110305677.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021060608513453.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072022211482.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110485471.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021061802021713.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040404581133.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061801345025.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061717452478.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/20210622044128100.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600343613.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070713202311.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060813115344.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061403273741.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106041701452.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061313342172.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060302345265.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060208414312.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061412172282.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106111104194.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110321811.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021061312144427.jpg", + "http://dounimei.us/wp-content/uploads/2021/05/2021053115101474.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/202107071115311.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600293036.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/202107020131364.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070703232030.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062111252388.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060604193182.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060106541759.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072013595933.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091206204318.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040402442332.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021063010032199.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106060935067.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061611193751.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070201203618.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091207221422.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061412410090.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110321965.webp", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110364585.webp", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600404253.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060300595555.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110524633.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021060512430783.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060711533661.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060502340976.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110453112.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021060604505753.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021053116042869.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060417072693.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060705174124.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061603333320.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106171915268.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062423430218.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061802271271.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062711444779.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060512575922.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106161057307.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061801251311.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091207245475.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060510363219.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106010532527.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060501090867.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070713275376.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040404403157.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061312193138.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060502103071.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061111483999.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061802064426.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060614034528.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061409464025.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110360430.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021060604422338.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021053116195673.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062111174253.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091207113739.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110254920.webp", + "http://dounimei.us/wp-content/uploads/2021/06/202106051102181.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060502543991.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061710352970.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060609394277.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061711535512.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062711492342.jpg", + "http://dounimei.us/wp-content/uploads/2022/12/2022120503255880.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061403235388.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106030234555.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061702250179.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060604052071.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060504291125.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600184558.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060909234124.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600461428.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060503241275.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061411251134.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060209350884.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110345723.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021061719213666.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070809041363.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070801455276.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106151604411.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110453015.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021061413305572.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/202107120644345.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091207245457.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061223074618.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060208260070.jpg", + "http://dounimei.us/wp-content/uploads/2022/12/2022120503232418.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070600293833.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060502593572.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070703315834.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061603023068.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106180129333.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061403493253.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061005553317.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061312341629.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070713240942.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061222571178.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060606565922.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062111032614.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060418102758.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060210101458.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110493637.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021062103240762.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060502103026.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062711413239.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061712200038.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061702503071.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600160583.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062112135995.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106271158414.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091210504434.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060609293684.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091207221468.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106010313065.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021053116133579.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060711372631.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021053116104348.jpg", + "http://dounimei.us/wp-content/uploads/2022/12/2022120503210148.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061314154099.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106131415308.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060711431933.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060604465140.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021071206594969.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061306165117.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061413251624.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/202204040246083.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072022284747.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060209521116.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060212091669.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061312312962.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060512325585.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070809010395.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070600064950.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061403321438.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106020149326.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/202107201342399.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060502302790.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072022242328.jpg", + "http://dounimei.us/wp-content/uploads/2021/05/2021053115065727.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060302033195.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060301580336.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061712154777.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061318061595.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106242343139.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060504422478.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061712244590.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060606565447.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060813122119.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060604145630.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060711534022.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600414058.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060107330163.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060909191055.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/20210708085200100.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040402360241.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061312341414.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070201205121.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040402424531.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106071216527.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061211103361.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062301424374.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021053116280050.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060106364169.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061801193412.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061403181482.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060209132484.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070712115365.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061711045484.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/20210707123211100.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/202204040511099.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061400485490.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110325917.webp", + "http://dounimei.us/wp-content/uploads/2021/09/2021091206363531.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060603590182.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/202204040520552.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061212310437.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061201302046.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060813362880.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072022211525.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091206545482.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072013372356.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060610292227.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091210245716.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106292329387.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061612175644.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091209324845.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060514160215.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600351814.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060417013836.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600152889.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060608513567.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106141110256.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021072013545950.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040402481863.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600330918.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106081302421.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061212355893.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110505987.webp", + "http://dounimei.us/wp-content/uploads/2021/06/202106060143222.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405101561.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061801345533.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060502434043.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061413185063.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110403453.webp", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110353184.webp", + "http://dounimei.us/wp-content/uploads/2021/09/2021091205444913.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021063010121329.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061603302048.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060210143691.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060201564022.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405072080.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060209520870.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/202207011041156.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021060202041621.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060504372712.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061111533914.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091207293739.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060608512855.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062711491929.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061405074417.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060511270638.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106061002171.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070712173224.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062112292266.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062103190891.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061404074316.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070801522899.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060107380147.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060813355392.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021063010151753.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/202204040245144.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/20210606121858100.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062203563916.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061608375415.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110414552.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021062711413256.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061702503194.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060711373068.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061412142297.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061710524690.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060614034645.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091210185959.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060106005550.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106131639152.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091206121982.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070712192925.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600363319.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060300595292.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060300373880.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060210101754.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/202107060006437.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110321891.webp", + "http://dounimei.us/wp-content/uploads/2021/07/2021070801413299.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061413145295.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061710523934.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021053116513198.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061712244774.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070523505449.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060608451172.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061411132254.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061412405747.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061000050572.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060711335810.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060712263755.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060209101444.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110524575.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021060107061145.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405071995.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061611031125.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070903063211.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600384076.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061000014337.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060610292496.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061410344041.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106301022365.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061710315229.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060502161365.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060208113918.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061212422071.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060300214078.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060606342740.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060501374856.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060204351744.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040402491316.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061412272919.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070809010078.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106170214288.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040402403135.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061405181458.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040404421714.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106140353103.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061312290391.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061400415632.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110364486.webp", + "http://dounimei.us/wp-content/uploads/2022/05/202205060027279.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/2021091206252892.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405191487.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110520863.webp", + "http://dounimei.us/wp-content/uploads/2021/06/202106121304039.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106161249504.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060711572253.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061111450948.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600363523.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060208215811.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061212422234.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600192817.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405035264.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061318061874.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060610060695.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060705245853.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060502302711.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060711431742.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061112005879.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061402405523.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060604145322.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106211103236.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062712160079.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/202107080050097.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070801523164.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060209201890.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110284566.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021061111395325.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106041651554.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061122192033.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060901131123.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060514162469.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061223074550.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061702440225.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110411540.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021062501393923.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070703573691.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021062111135153.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061612282878.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061317004520.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061603382210.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060606471589.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040402451414.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060201412511.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060601465757.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060103130910.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060108231958.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405025277.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405020365.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061711080488.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061405020920.jpg", + "http://dounimei.us/wp-content/uploads/2022/11/202211020948541.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060209401789.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061212503476.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600204328.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061410344197.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405200979.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061712154961.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060208152340.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/202107202242143.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/202207011030221.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021062301424128.jpg", + "http://dounimei.us/wp-content/uploads/2022/07/2022070110513387.webp", + "http://dounimei.us/wp-content/uploads/2021/06/2021061610462339.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405010142.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070710480395.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106061002165.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060510454974.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106130552516.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070710480419.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600452684.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061212503385.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061802065261.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106021109272.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061401004269.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/202106020240446.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061111041871.jpg", + "http://dounimei.us/wp-content/uploads/2021/09/202109121548355.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061000050326.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060209553553.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040402413636.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061411504464.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060512472193.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021053116512762.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061710392735.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060417563681.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/2021070703062014.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/202107202221131.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060608451368.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060201043396.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060416515465.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060610292666.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021063009440463.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061701354617.jpg", + "http://dounimei.us/wp-content/uploads/2022/05/2022050600285281.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061412273135.jpg", + "http://dounimei.us/wp-content/uploads/2022/04/2022040405191386.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021061702250328.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060204590719.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/20210602093507100.jpg", + "http://dounimei.us/wp-content/uploads/2021/07/202107071222095.jpg", + "http://dounimei.us/wp-content/uploads/2021/06/2021060502434132.jpg" +] \ No newline at end of file diff --git a/font/Facon.ttf b/font/Facon.ttf new file mode 100644 index 0000000..3d1cced Binary files /dev/null and b/font/Facon.ttf differ diff --git a/font/SmileySans-Oblique.otf b/font/SmileySans-Oblique.otf new file mode 100644 index 0000000..ee08095 Binary files /dev/null and b/font/SmileySans-Oblique.otf differ diff --git a/font/maokenyuan.ttf b/font/maokenyuan.ttf new file mode 100644 index 0000000..1084439 Binary files /dev/null and b/font/maokenyuan.ttf differ diff --git a/img/.gitkeep b/img/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/img/balloon.png b/img/balloon.png new file mode 100644 index 0000000..d8bd9e2 Binary files /dev/null and b/img/balloon.png differ diff --git a/img/bg/frog/CLEAR_DAY.png b/img/bg/frog/CLEAR_DAY.png new file mode 100644 index 0000000..d2130f0 Binary files /dev/null and b/img/bg/frog/CLEAR_DAY.png differ diff --git a/img/bg/frog/CLEAR_NIGHT.png b/img/bg/frog/CLEAR_NIGHT.png new file mode 100644 index 0000000..e526648 Binary files /dev/null and b/img/bg/frog/CLEAR_NIGHT.png differ diff --git a/img/bg/frog/CLOUDY.png b/img/bg/frog/CLOUDY.png new file mode 100644 index 0000000..b0cda8d Binary files /dev/null and b/img/bg/frog/CLOUDY.png differ diff --git a/img/bg/frog/DUST.png b/img/bg/frog/DUST.png new file mode 100644 index 0000000..7961369 Binary files /dev/null and b/img/bg/frog/DUST.png differ diff --git a/img/bg/frog/FOG.png b/img/bg/frog/FOG.png new file mode 100644 index 0000000..a0f559a Binary files /dev/null and b/img/bg/frog/FOG.png differ diff --git a/img/bg/frog/HEAVY_HAZE.png b/img/bg/frog/HEAVY_HAZE.png new file mode 100644 index 0000000..b72b897 Binary files /dev/null and b/img/bg/frog/HEAVY_HAZE.png differ diff --git a/img/bg/frog/HEAVY_RAIN.png b/img/bg/frog/HEAVY_RAIN.png new file mode 100644 index 0000000..e78e70f Binary files /dev/null and b/img/bg/frog/HEAVY_RAIN.png differ diff --git a/img/bg/frog/HEAVY_SNOW.png b/img/bg/frog/HEAVY_SNOW.png new file mode 100644 index 0000000..d4eca3a Binary files /dev/null and b/img/bg/frog/HEAVY_SNOW.png differ diff --git a/img/bg/frog/LIGHT_HAZE.png b/img/bg/frog/LIGHT_HAZE.png new file mode 100644 index 0000000..8d7ded7 Binary files /dev/null and b/img/bg/frog/LIGHT_HAZE.png differ diff --git a/img/bg/frog/LIGHT_RAIN.png b/img/bg/frog/LIGHT_RAIN.png new file mode 100644 index 0000000..b7776e1 Binary files /dev/null and b/img/bg/frog/LIGHT_RAIN.png differ diff --git a/img/bg/frog/LIGHT_SNOW.png b/img/bg/frog/LIGHT_SNOW.png new file mode 100644 index 0000000..6354165 Binary files /dev/null and b/img/bg/frog/LIGHT_SNOW.png differ diff --git a/img/bg/frog/MODERATE_HAZE.png b/img/bg/frog/MODERATE_HAZE.png new file mode 100644 index 0000000..3751e31 Binary files /dev/null and b/img/bg/frog/MODERATE_HAZE.png differ diff --git a/img/bg/frog/MODERATE_RAIN.png b/img/bg/frog/MODERATE_RAIN.png new file mode 100644 index 0000000..0e7d307 Binary files /dev/null and b/img/bg/frog/MODERATE_RAIN.png differ diff --git a/img/bg/frog/MODERATE_SNOW.png b/img/bg/frog/MODERATE_SNOW.png new file mode 100644 index 0000000..82b3e33 Binary files /dev/null and b/img/bg/frog/MODERATE_SNOW.png differ diff --git a/img/bg/frog/PARTLY_CLOUDY_DAY.png b/img/bg/frog/PARTLY_CLOUDY_DAY.png new file mode 100644 index 0000000..9022227 Binary files /dev/null and b/img/bg/frog/PARTLY_CLOUDY_DAY.png differ diff --git a/img/bg/frog/PARTLY_CLOUDY_NIGHT.png b/img/bg/frog/PARTLY_CLOUDY_NIGHT.png new file mode 100644 index 0000000..651fb89 Binary files /dev/null and b/img/bg/frog/PARTLY_CLOUDY_NIGHT.png differ diff --git a/img/bg/frog/SAND.png b/img/bg/frog/SAND.png new file mode 100644 index 0000000..fc41375 Binary files /dev/null and b/img/bg/frog/SAND.png differ diff --git a/img/bg/frog/STORM_RAIN.png b/img/bg/frog/STORM_RAIN.png new file mode 100644 index 0000000..22e0ef3 Binary files /dev/null and b/img/bg/frog/STORM_RAIN.png differ diff --git a/img/bg/frog/STORM_SNOW.png b/img/bg/frog/STORM_SNOW.png new file mode 100644 index 0000000..a32c264 Binary files /dev/null and b/img/bg/frog/STORM_SNOW.png differ diff --git a/img/bg/frog/WINDY.png b/img/bg/frog/WINDY.png new file mode 100644 index 0000000..f5e35a9 Binary files /dev/null and b/img/bg/frog/WINDY.png differ diff --git a/img/bg/weather1/CLEAR_DAY.png b/img/bg/weather1/CLEAR_DAY.png new file mode 100644 index 0000000..31b0f45 Binary files /dev/null and b/img/bg/weather1/CLEAR_DAY.png differ diff --git a/img/bg/weather1/CLEAR_NIGHT.jpg b/img/bg/weather1/CLEAR_NIGHT.jpg new file mode 100644 index 0000000..1db9672 Binary files /dev/null and b/img/bg/weather1/CLEAR_NIGHT.jpg differ diff --git a/img/bg/weather1/CLOUDY.png b/img/bg/weather1/CLOUDY.png new file mode 100644 index 0000000..068b758 Binary files /dev/null and b/img/bg/weather1/CLOUDY.png differ diff --git a/img/bg/weather1/DUST.png b/img/bg/weather1/DUST.png new file mode 100644 index 0000000..0f4da01 Binary files /dev/null and b/img/bg/weather1/DUST.png differ diff --git a/img/bg/weather1/FOG.png b/img/bg/weather1/FOG.png new file mode 100644 index 0000000..0f4da01 Binary files /dev/null and b/img/bg/weather1/FOG.png differ diff --git a/img/bg/weather1/HEAVY_HAZE.png b/img/bg/weather1/HEAVY_HAZE.png new file mode 100644 index 0000000..0f4da01 Binary files /dev/null and b/img/bg/weather1/HEAVY_HAZE.png differ diff --git a/img/bg/weather1/HEAVY_RAIN.png b/img/bg/weather1/HEAVY_RAIN.png new file mode 100644 index 0000000..9a4c7dd Binary files /dev/null and b/img/bg/weather1/HEAVY_RAIN.png differ diff --git a/img/bg/weather1/HEAVY_SNOW.png b/img/bg/weather1/HEAVY_SNOW.png new file mode 100644 index 0000000..b723fd1 Binary files /dev/null and b/img/bg/weather1/HEAVY_SNOW.png differ diff --git a/img/bg/weather1/LIGHT_HAZE.png b/img/bg/weather1/LIGHT_HAZE.png new file mode 100644 index 0000000..0f4da01 Binary files /dev/null and b/img/bg/weather1/LIGHT_HAZE.png differ diff --git a/img/bg/weather1/LIGHT_RAIN.png b/img/bg/weather1/LIGHT_RAIN.png new file mode 100644 index 0000000..9a4c7dd Binary files /dev/null and b/img/bg/weather1/LIGHT_RAIN.png differ diff --git a/img/bg/weather1/LIGHT_SNOW.png b/img/bg/weather1/LIGHT_SNOW.png new file mode 100644 index 0000000..b723fd1 Binary files /dev/null and b/img/bg/weather1/LIGHT_SNOW.png differ diff --git a/img/bg/weather1/MODERATE_HAZE.png b/img/bg/weather1/MODERATE_HAZE.png new file mode 100644 index 0000000..0f4da01 Binary files /dev/null and b/img/bg/weather1/MODERATE_HAZE.png differ diff --git a/img/bg/weather1/MODERATE_RAIN.png b/img/bg/weather1/MODERATE_RAIN.png new file mode 100644 index 0000000..9a4c7dd Binary files /dev/null and b/img/bg/weather1/MODERATE_RAIN.png differ diff --git a/img/bg/weather1/MODERATE_SNOW.png b/img/bg/weather1/MODERATE_SNOW.png new file mode 100644 index 0000000..b723fd1 Binary files /dev/null and b/img/bg/weather1/MODERATE_SNOW.png differ diff --git a/img/bg/weather1/PARTLY_CLOUDY_DAY.png b/img/bg/weather1/PARTLY_CLOUDY_DAY.png new file mode 100644 index 0000000..504acef Binary files /dev/null and b/img/bg/weather1/PARTLY_CLOUDY_DAY.png differ diff --git a/img/bg/weather1/PARTLY_CLOUDY_NIGHT.jpg b/img/bg/weather1/PARTLY_CLOUDY_NIGHT.jpg new file mode 100644 index 0000000..1db9672 Binary files /dev/null and b/img/bg/weather1/PARTLY_CLOUDY_NIGHT.jpg differ diff --git a/img/bg/weather1/SAND.png b/img/bg/weather1/SAND.png new file mode 100644 index 0000000..0f4da01 Binary files /dev/null and b/img/bg/weather1/SAND.png differ diff --git a/img/bg/weather1/STORM_RAIN.png b/img/bg/weather1/STORM_RAIN.png new file mode 100644 index 0000000..9a4c7dd Binary files /dev/null and b/img/bg/weather1/STORM_RAIN.png differ diff --git a/img/bg/weather1/STORM_SNOW.png b/img/bg/weather1/STORM_SNOW.png new file mode 100644 index 0000000..b723fd1 Binary files /dev/null and b/img/bg/weather1/STORM_SNOW.png differ diff --git a/img/bg/weather1/WIND.jpg b/img/bg/weather1/WIND.jpg new file mode 100644 index 0000000..7137c01 Binary files /dev/null and b/img/bg/weather1/WIND.jpg differ diff --git a/img/bg/weather2/CLEAR_DAY.png b/img/bg/weather2/CLEAR_DAY.png new file mode 100644 index 0000000..6fadb04 Binary files /dev/null and b/img/bg/weather2/CLEAR_DAY.png differ diff --git a/img/bg/weather2/CLEAR_NIGHT.png b/img/bg/weather2/CLEAR_NIGHT.png new file mode 100644 index 0000000..ed30c09 Binary files /dev/null and b/img/bg/weather2/CLEAR_NIGHT.png differ diff --git a/img/bg/weather2/CLOUDY.png b/img/bg/weather2/CLOUDY.png new file mode 100644 index 0000000..89bcb44 Binary files /dev/null and b/img/bg/weather2/CLOUDY.png differ diff --git a/img/bg/weather2/DUST.jpg b/img/bg/weather2/DUST.jpg new file mode 100644 index 0000000..d9063f6 Binary files /dev/null and b/img/bg/weather2/DUST.jpg differ diff --git a/img/bg/weather2/FOG.jpg b/img/bg/weather2/FOG.jpg new file mode 100644 index 0000000..d9063f6 Binary files /dev/null and b/img/bg/weather2/FOG.jpg differ diff --git a/img/bg/weather2/HEAVY_HAZE.jpg b/img/bg/weather2/HEAVY_HAZE.jpg new file mode 100644 index 0000000..d9063f6 Binary files /dev/null and b/img/bg/weather2/HEAVY_HAZE.jpg differ diff --git a/img/bg/weather2/HEAVY_RAIN.jpg b/img/bg/weather2/HEAVY_RAIN.jpg new file mode 100644 index 0000000..e23f75c Binary files /dev/null and b/img/bg/weather2/HEAVY_RAIN.jpg differ diff --git a/img/bg/weather2/HEAVY_SNOW.jpg b/img/bg/weather2/HEAVY_SNOW.jpg new file mode 100644 index 0000000..0bd5abd Binary files /dev/null and b/img/bg/weather2/HEAVY_SNOW.jpg differ diff --git a/img/bg/weather2/LIGHT_HAZE.jpg b/img/bg/weather2/LIGHT_HAZE.jpg new file mode 100644 index 0000000..d9063f6 Binary files /dev/null and b/img/bg/weather2/LIGHT_HAZE.jpg differ diff --git a/img/bg/weather2/LIGHT_RAIN.jpg b/img/bg/weather2/LIGHT_RAIN.jpg new file mode 100644 index 0000000..e23f75c Binary files /dev/null and b/img/bg/weather2/LIGHT_RAIN.jpg differ diff --git a/img/bg/weather2/LIGHT_SNOW.jpg b/img/bg/weather2/LIGHT_SNOW.jpg new file mode 100644 index 0000000..0bd5abd Binary files /dev/null and b/img/bg/weather2/LIGHT_SNOW.jpg differ diff --git a/img/bg/weather2/MODERATE_HAZE.jpg b/img/bg/weather2/MODERATE_HAZE.jpg new file mode 100644 index 0000000..d9063f6 Binary files /dev/null and b/img/bg/weather2/MODERATE_HAZE.jpg differ diff --git a/img/bg/weather2/MODERATE_RAIN.jpg b/img/bg/weather2/MODERATE_RAIN.jpg new file mode 100644 index 0000000..e23f75c Binary files /dev/null and b/img/bg/weather2/MODERATE_RAIN.jpg differ diff --git a/img/bg/weather2/MODERATE_SNOW.jpg b/img/bg/weather2/MODERATE_SNOW.jpg new file mode 100644 index 0000000..0bd5abd Binary files /dev/null and b/img/bg/weather2/MODERATE_SNOW.jpg differ diff --git a/img/bg/weather2/PARTLY_CLOUDY_DAY.png b/img/bg/weather2/PARTLY_CLOUDY_DAY.png new file mode 100644 index 0000000..5561918 Binary files /dev/null and b/img/bg/weather2/PARTLY_CLOUDY_DAY.png differ diff --git a/img/bg/weather2/PARTLY_CLOUDY_NIGHT.png b/img/bg/weather2/PARTLY_CLOUDY_NIGHT.png new file mode 100644 index 0000000..490aa20 Binary files /dev/null and b/img/bg/weather2/PARTLY_CLOUDY_NIGHT.png differ diff --git a/img/bg/weather2/SAND.jpg b/img/bg/weather2/SAND.jpg new file mode 100644 index 0000000..d9063f6 Binary files /dev/null and b/img/bg/weather2/SAND.jpg differ diff --git a/img/bg/weather2/STORM_RAIN.jpg b/img/bg/weather2/STORM_RAIN.jpg new file mode 100644 index 0000000..e23f75c Binary files /dev/null and b/img/bg/weather2/STORM_RAIN.jpg differ diff --git a/img/bg/weather2/STORM_SNOW.jpg b/img/bg/weather2/STORM_SNOW.jpg new file mode 100644 index 0000000..0bd5abd Binary files /dev/null and b/img/bg/weather2/STORM_SNOW.jpg differ diff --git a/img/bg/weather2/WIND.jpg b/img/bg/weather2/WIND.jpg new file mode 100644 index 0000000..fd433d3 Binary files /dev/null and b/img/bg/weather2/WIND.jpg differ diff --git a/img/bg/weather3/CLEAR_DAY.png b/img/bg/weather3/CLEAR_DAY.png new file mode 100644 index 0000000..617a56b Binary files /dev/null and b/img/bg/weather3/CLEAR_DAY.png differ diff --git a/img/bg/weather3/CLEAR_NIGHT.png b/img/bg/weather3/CLEAR_NIGHT.png new file mode 100644 index 0000000..617a56b Binary files /dev/null and b/img/bg/weather3/CLEAR_NIGHT.png differ diff --git a/img/bg/weather3/CLOUDY.png b/img/bg/weather3/CLOUDY.png new file mode 100644 index 0000000..d6d086b Binary files /dev/null and b/img/bg/weather3/CLOUDY.png differ diff --git a/img/bg/weather3/DUST.png b/img/bg/weather3/DUST.png new file mode 100644 index 0000000..b1fbf13 Binary files /dev/null and b/img/bg/weather3/DUST.png differ diff --git a/img/bg/weather3/FOG.png b/img/bg/weather3/FOG.png new file mode 100644 index 0000000..b1fbf13 Binary files /dev/null and b/img/bg/weather3/FOG.png differ diff --git a/img/bg/weather3/HEAVY_HAZE.png b/img/bg/weather3/HEAVY_HAZE.png new file mode 100644 index 0000000..b1fbf13 Binary files /dev/null and b/img/bg/weather3/HEAVY_HAZE.png differ diff --git a/img/bg/weather3/HEAVY_RAIN.png b/img/bg/weather3/HEAVY_RAIN.png new file mode 100644 index 0000000..62529a4 Binary files /dev/null and b/img/bg/weather3/HEAVY_RAIN.png differ diff --git a/img/bg/weather3/HEAVY_SNOW.png b/img/bg/weather3/HEAVY_SNOW.png new file mode 100644 index 0000000..26fb1c2 Binary files /dev/null and b/img/bg/weather3/HEAVY_SNOW.png differ diff --git a/img/bg/weather3/LIGHT_HAZE.png b/img/bg/weather3/LIGHT_HAZE.png new file mode 100644 index 0000000..b1fbf13 Binary files /dev/null and b/img/bg/weather3/LIGHT_HAZE.png differ diff --git a/img/bg/weather3/LIGHT_RAIN.png b/img/bg/weather3/LIGHT_RAIN.png new file mode 100644 index 0000000..62529a4 Binary files /dev/null and b/img/bg/weather3/LIGHT_RAIN.png differ diff --git a/img/bg/weather3/LIGHT_SNOW.png b/img/bg/weather3/LIGHT_SNOW.png new file mode 100644 index 0000000..26fb1c2 Binary files /dev/null and b/img/bg/weather3/LIGHT_SNOW.png differ diff --git a/img/bg/weather3/MODERATE_HAZE.png b/img/bg/weather3/MODERATE_HAZE.png new file mode 100644 index 0000000..b1fbf13 Binary files /dev/null and b/img/bg/weather3/MODERATE_HAZE.png differ diff --git a/img/bg/weather3/MODERATE_RAIN.png b/img/bg/weather3/MODERATE_RAIN.png new file mode 100644 index 0000000..62529a4 Binary files /dev/null and b/img/bg/weather3/MODERATE_RAIN.png differ diff --git a/img/bg/weather3/MODERATE_SNOW.png b/img/bg/weather3/MODERATE_SNOW.png new file mode 100644 index 0000000..26fb1c2 Binary files /dev/null and b/img/bg/weather3/MODERATE_SNOW.png differ diff --git a/img/bg/weather3/PARTLY_CLOUDY_DAY.png b/img/bg/weather3/PARTLY_CLOUDY_DAY.png new file mode 100644 index 0000000..7511d0f Binary files /dev/null and b/img/bg/weather3/PARTLY_CLOUDY_DAY.png differ diff --git a/img/bg/weather3/PARTLY_CLOUDY_NIGHT.png b/img/bg/weather3/PARTLY_CLOUDY_NIGHT.png new file mode 100644 index 0000000..7511d0f Binary files /dev/null and b/img/bg/weather3/PARTLY_CLOUDY_NIGHT.png differ diff --git a/img/bg/weather3/SAND.png b/img/bg/weather3/SAND.png new file mode 100644 index 0000000..b1fbf13 Binary files /dev/null and b/img/bg/weather3/SAND.png differ diff --git a/img/bg/weather3/STORM_RAIN.png b/img/bg/weather3/STORM_RAIN.png new file mode 100644 index 0000000..62529a4 Binary files /dev/null and b/img/bg/weather3/STORM_RAIN.png differ diff --git a/img/bg/weather3/STORM_SNOW.png b/img/bg/weather3/STORM_SNOW.png new file mode 100644 index 0000000..26fb1c2 Binary files /dev/null and b/img/bg/weather3/STORM_SNOW.png differ diff --git a/img/bg/weather3/WIND.png b/img/bg/weather3/WIND.png new file mode 100644 index 0000000..bc50e9d Binary files /dev/null and b/img/bg/weather3/WIND.png differ diff --git a/img/bg/weather4/CLEAR_DAY.jpg b/img/bg/weather4/CLEAR_DAY.jpg new file mode 100644 index 0000000..3b7194a Binary files /dev/null and b/img/bg/weather4/CLEAR_DAY.jpg differ diff --git a/img/bg/weather4/CLEAR_NIGHT.jpg b/img/bg/weather4/CLEAR_NIGHT.jpg new file mode 100644 index 0000000..d045d80 Binary files /dev/null and b/img/bg/weather4/CLEAR_NIGHT.jpg differ diff --git a/img/bg/weather4/CLOUDY.jpg b/img/bg/weather4/CLOUDY.jpg new file mode 100644 index 0000000..d958621 Binary files /dev/null and b/img/bg/weather4/CLOUDY.jpg differ diff --git a/img/bg/weather4/DUST.jpg b/img/bg/weather4/DUST.jpg new file mode 100644 index 0000000..d79a242 Binary files /dev/null and b/img/bg/weather4/DUST.jpg differ diff --git a/img/bg/weather4/FOG.jpg b/img/bg/weather4/FOG.jpg new file mode 100644 index 0000000..d79a242 Binary files /dev/null and b/img/bg/weather4/FOG.jpg differ diff --git a/img/bg/weather4/HEAVY_HAZE.jpg b/img/bg/weather4/HEAVY_HAZE.jpg new file mode 100644 index 0000000..d79a242 Binary files /dev/null and b/img/bg/weather4/HEAVY_HAZE.jpg differ diff --git a/img/bg/weather4/HEAVY_RAIN.jpg b/img/bg/weather4/HEAVY_RAIN.jpg new file mode 100644 index 0000000..15e5292 Binary files /dev/null and b/img/bg/weather4/HEAVY_RAIN.jpg differ diff --git a/img/bg/weather4/HEAVY_SNOW.jpg b/img/bg/weather4/HEAVY_SNOW.jpg new file mode 100644 index 0000000..0bd5abd Binary files /dev/null and b/img/bg/weather4/HEAVY_SNOW.jpg differ diff --git a/img/bg/weather4/LIGHT_HAZE.jpg b/img/bg/weather4/LIGHT_HAZE.jpg new file mode 100644 index 0000000..d79a242 Binary files /dev/null and b/img/bg/weather4/LIGHT_HAZE.jpg differ diff --git a/img/bg/weather4/LIGHT_RAIN.jpg b/img/bg/weather4/LIGHT_RAIN.jpg new file mode 100644 index 0000000..15e5292 Binary files /dev/null and b/img/bg/weather4/LIGHT_RAIN.jpg differ diff --git a/img/bg/weather4/LIGHT_SNOW.jpg b/img/bg/weather4/LIGHT_SNOW.jpg new file mode 100644 index 0000000..0bd5abd Binary files /dev/null and b/img/bg/weather4/LIGHT_SNOW.jpg differ diff --git a/img/bg/weather4/MODERATE_HAZE.jpg b/img/bg/weather4/MODERATE_HAZE.jpg new file mode 100644 index 0000000..d79a242 Binary files /dev/null and b/img/bg/weather4/MODERATE_HAZE.jpg differ diff --git a/img/bg/weather4/MODERATE_RAIN.jpg b/img/bg/weather4/MODERATE_RAIN.jpg new file mode 100644 index 0000000..15e5292 Binary files /dev/null and b/img/bg/weather4/MODERATE_RAIN.jpg differ diff --git a/img/bg/weather4/MODERATE_SNOW.jpg b/img/bg/weather4/MODERATE_SNOW.jpg new file mode 100644 index 0000000..0bd5abd Binary files /dev/null and b/img/bg/weather4/MODERATE_SNOW.jpg differ diff --git a/img/bg/weather4/PARTLY_CLOUDY_DAY.jpg b/img/bg/weather4/PARTLY_CLOUDY_DAY.jpg new file mode 100644 index 0000000..d958621 Binary files /dev/null and b/img/bg/weather4/PARTLY_CLOUDY_DAY.jpg differ diff --git a/img/bg/weather4/PARTLY_CLOUDY_NIGHT.jpg b/img/bg/weather4/PARTLY_CLOUDY_NIGHT.jpg new file mode 100644 index 0000000..9ee4afc Binary files /dev/null and b/img/bg/weather4/PARTLY_CLOUDY_NIGHT.jpg differ diff --git a/img/bg/weather4/SAND.jpg b/img/bg/weather4/SAND.jpg new file mode 100644 index 0000000..d79a242 Binary files /dev/null and b/img/bg/weather4/SAND.jpg differ diff --git a/img/bg/weather4/STORM_RAIN.jpg b/img/bg/weather4/STORM_RAIN.jpg new file mode 100644 index 0000000..15e5292 Binary files /dev/null and b/img/bg/weather4/STORM_RAIN.jpg differ diff --git a/img/bg/weather4/STORM_SNOW.jpg b/img/bg/weather4/STORM_SNOW.jpg new file mode 100644 index 0000000..0bd5abd Binary files /dev/null and b/img/bg/weather4/STORM_SNOW.jpg differ diff --git a/img/bg/weather4/WIND.jpg b/img/bg/weather4/WIND.jpg new file mode 100644 index 0000000..fd433d3 Binary files /dev/null and b/img/bg/weather4/WIND.jpg differ diff --git a/img/bg/weather5/CLEAR_DAY.png b/img/bg/weather5/CLEAR_DAY.png new file mode 100644 index 0000000..10067f3 Binary files /dev/null and b/img/bg/weather5/CLEAR_DAY.png differ diff --git a/img/bg/weather5/CLEAR_NIGHT.png b/img/bg/weather5/CLEAR_NIGHT.png new file mode 100644 index 0000000..4421dbc Binary files /dev/null and b/img/bg/weather5/CLEAR_NIGHT.png differ diff --git a/img/bg/weather5/CLOUDY.png b/img/bg/weather5/CLOUDY.png new file mode 100644 index 0000000..c8e7490 Binary files /dev/null and b/img/bg/weather5/CLOUDY.png differ diff --git a/img/bg/weather5/DUST.png b/img/bg/weather5/DUST.png new file mode 100644 index 0000000..f9c5f5e Binary files /dev/null and b/img/bg/weather5/DUST.png differ diff --git a/img/bg/weather5/FOG.png b/img/bg/weather5/FOG.png new file mode 100644 index 0000000..9e5ea8f Binary files /dev/null and b/img/bg/weather5/FOG.png differ diff --git a/img/bg/weather5/HEAVY_HAZE.png b/img/bg/weather5/HEAVY_HAZE.png new file mode 100644 index 0000000..f9c5f5e Binary files /dev/null and b/img/bg/weather5/HEAVY_HAZE.png differ diff --git a/img/bg/weather5/HEAVY_RAIN.png b/img/bg/weather5/HEAVY_RAIN.png new file mode 100644 index 0000000..70ae5e3 Binary files /dev/null and b/img/bg/weather5/HEAVY_RAIN.png differ diff --git a/img/bg/weather5/HEAVY_SNOW.png b/img/bg/weather5/HEAVY_SNOW.png new file mode 100644 index 0000000..1c2dd1a Binary files /dev/null and b/img/bg/weather5/HEAVY_SNOW.png differ diff --git a/img/bg/weather5/LIGHT_HAZE.png b/img/bg/weather5/LIGHT_HAZE.png new file mode 100644 index 0000000..f9c5f5e Binary files /dev/null and b/img/bg/weather5/LIGHT_HAZE.png differ diff --git a/img/bg/weather5/LIGHT_RAIN.png b/img/bg/weather5/LIGHT_RAIN.png new file mode 100644 index 0000000..70ae5e3 Binary files /dev/null and b/img/bg/weather5/LIGHT_RAIN.png differ diff --git a/img/bg/weather5/LIGHT_SNOW.png b/img/bg/weather5/LIGHT_SNOW.png new file mode 100644 index 0000000..1c2dd1a Binary files /dev/null and b/img/bg/weather5/LIGHT_SNOW.png differ diff --git a/img/bg/weather5/MODERATE_HAZE.png b/img/bg/weather5/MODERATE_HAZE.png new file mode 100644 index 0000000..f9c5f5e Binary files /dev/null and b/img/bg/weather5/MODERATE_HAZE.png differ diff --git a/img/bg/weather5/MODERATE_RAIN.png b/img/bg/weather5/MODERATE_RAIN.png new file mode 100644 index 0000000..70ae5e3 Binary files /dev/null and b/img/bg/weather5/MODERATE_RAIN.png differ diff --git a/img/bg/weather5/MODERATE_SNOW.png b/img/bg/weather5/MODERATE_SNOW.png new file mode 100644 index 0000000..1c2dd1a Binary files /dev/null and b/img/bg/weather5/MODERATE_SNOW.png differ diff --git a/img/bg/weather5/PARTLY_CLOUDY_DAY.png b/img/bg/weather5/PARTLY_CLOUDY_DAY.png new file mode 100644 index 0000000..c8e7490 Binary files /dev/null and b/img/bg/weather5/PARTLY_CLOUDY_DAY.png differ diff --git a/img/bg/weather5/PARTLY_CLOUDY_NIGHT.png b/img/bg/weather5/PARTLY_CLOUDY_NIGHT.png new file mode 100644 index 0000000..c8e7490 Binary files /dev/null and b/img/bg/weather5/PARTLY_CLOUDY_NIGHT.png differ diff --git a/img/bg/weather5/SAND.png b/img/bg/weather5/SAND.png new file mode 100644 index 0000000..f9c5f5e Binary files /dev/null and b/img/bg/weather5/SAND.png differ diff --git a/img/bg/weather5/STORM_RAIN.png b/img/bg/weather5/STORM_RAIN.png new file mode 100644 index 0000000..70ae5e3 Binary files /dev/null and b/img/bg/weather5/STORM_RAIN.png differ diff --git a/img/bg/weather5/STORM_SNOW.png b/img/bg/weather5/STORM_SNOW.png new file mode 100644 index 0000000..1c2dd1a Binary files /dev/null and b/img/bg/weather5/STORM_SNOW.png differ diff --git a/img/bg/weather5/WIND.png b/img/bg/weather5/WIND.png new file mode 100644 index 0000000..9e5ea8f Binary files /dev/null and b/img/bg/weather5/WIND.png differ diff --git a/img/bg/weather6/CLEAR_DAY.jpg b/img/bg/weather6/CLEAR_DAY.jpg new file mode 100644 index 0000000..9a549ea Binary files /dev/null and b/img/bg/weather6/CLEAR_DAY.jpg differ diff --git a/img/bg/weather6/CLEAR_NIGHT.jpg b/img/bg/weather6/CLEAR_NIGHT.jpg new file mode 100644 index 0000000..81eacaa Binary files /dev/null and b/img/bg/weather6/CLEAR_NIGHT.jpg differ diff --git a/img/bg/weather6/CLOUDY.jpg b/img/bg/weather6/CLOUDY.jpg new file mode 100644 index 0000000..e6d4500 Binary files /dev/null and b/img/bg/weather6/CLOUDY.jpg differ diff --git a/img/bg/weather6/DUST.jpg b/img/bg/weather6/DUST.jpg new file mode 100644 index 0000000..63c41e9 Binary files /dev/null and b/img/bg/weather6/DUST.jpg differ diff --git a/img/bg/weather6/FOG.jpg b/img/bg/weather6/FOG.jpg new file mode 100644 index 0000000..a0e3d59 Binary files /dev/null and b/img/bg/weather6/FOG.jpg differ diff --git a/img/bg/weather6/HEAVY_HAZE.jpg b/img/bg/weather6/HEAVY_HAZE.jpg new file mode 100644 index 0000000..63c41e9 Binary files /dev/null and b/img/bg/weather6/HEAVY_HAZE.jpg differ diff --git a/img/bg/weather6/HEAVY_RAIN.jpg b/img/bg/weather6/HEAVY_RAIN.jpg new file mode 100644 index 0000000..f190349 Binary files /dev/null and b/img/bg/weather6/HEAVY_RAIN.jpg differ diff --git a/img/bg/weather6/HEAVY_SNOW.jpg b/img/bg/weather6/HEAVY_SNOW.jpg new file mode 100644 index 0000000..44e4a51 Binary files /dev/null and b/img/bg/weather6/HEAVY_SNOW.jpg differ diff --git a/img/bg/weather6/LIGHT_HAZE.jpg b/img/bg/weather6/LIGHT_HAZE.jpg new file mode 100644 index 0000000..63c41e9 Binary files /dev/null and b/img/bg/weather6/LIGHT_HAZE.jpg differ diff --git a/img/bg/weather6/LIGHT_RAIN.jpg b/img/bg/weather6/LIGHT_RAIN.jpg new file mode 100644 index 0000000..f190349 Binary files /dev/null and b/img/bg/weather6/LIGHT_RAIN.jpg differ diff --git a/img/bg/weather6/LIGHT_SNOW.jpg b/img/bg/weather6/LIGHT_SNOW.jpg new file mode 100644 index 0000000..44e4a51 Binary files /dev/null and b/img/bg/weather6/LIGHT_SNOW.jpg differ diff --git a/img/bg/weather6/MODERATE_HAZE.jpg b/img/bg/weather6/MODERATE_HAZE.jpg new file mode 100644 index 0000000..63c41e9 Binary files /dev/null and b/img/bg/weather6/MODERATE_HAZE.jpg differ diff --git a/img/bg/weather6/MODERATE_RAIN.jpg b/img/bg/weather6/MODERATE_RAIN.jpg new file mode 100644 index 0000000..f190349 Binary files /dev/null and b/img/bg/weather6/MODERATE_RAIN.jpg differ diff --git a/img/bg/weather6/MODERATE_SNOW.jpg b/img/bg/weather6/MODERATE_SNOW.jpg new file mode 100644 index 0000000..44e4a51 Binary files /dev/null and b/img/bg/weather6/MODERATE_SNOW.jpg differ diff --git a/img/bg/weather6/PARTLY_CLOUDY_DAY.jpg b/img/bg/weather6/PARTLY_CLOUDY_DAY.jpg new file mode 100644 index 0000000..e6d4500 Binary files /dev/null and b/img/bg/weather6/PARTLY_CLOUDY_DAY.jpg differ diff --git a/img/bg/weather6/PARTLY_CLOUDY_NIGHT.jpg b/img/bg/weather6/PARTLY_CLOUDY_NIGHT.jpg new file mode 100644 index 0000000..72dc7c7 Binary files /dev/null and b/img/bg/weather6/PARTLY_CLOUDY_NIGHT.jpg differ diff --git a/img/bg/weather6/SAND.jpg b/img/bg/weather6/SAND.jpg new file mode 100644 index 0000000..63c41e9 Binary files /dev/null and b/img/bg/weather6/SAND.jpg differ diff --git a/img/bg/weather6/STORM_RAIN.jpg b/img/bg/weather6/STORM_RAIN.jpg new file mode 100644 index 0000000..183ed90 Binary files /dev/null and b/img/bg/weather6/STORM_RAIN.jpg differ diff --git a/img/bg/weather6/STORM_SNOW.jpg b/img/bg/weather6/STORM_SNOW.jpg new file mode 100644 index 0000000..44e4a51 Binary files /dev/null and b/img/bg/weather6/STORM_SNOW.jpg differ diff --git a/img/bg/weather6/WIND.jpg b/img/bg/weather6/WIND.jpg new file mode 100644 index 0000000..63c41e9 Binary files /dev/null and b/img/bg/weather6/WIND.jpg differ diff --git a/img/bg_1.jpg b/img/bg_1.jpg new file mode 100644 index 0000000..ea34d67 Binary files /dev/null and b/img/bg_1.jpg differ diff --git a/img/bg_celebrate_100.png b/img/bg_celebrate_100.png new file mode 100644 index 0000000..e981ae7 Binary files /dev/null and b/img/bg_celebrate_100.png differ diff --git a/img/bg_celebrate_25.png b/img/bg_celebrate_25.png new file mode 100644 index 0000000..8c8ef0b Binary files /dev/null and b/img/bg_celebrate_25.png differ diff --git a/img/bg_celebrate_50.png b/img/bg_celebrate_50.png new file mode 100644 index 0000000..e61479e Binary files /dev/null and b/img/bg_celebrate_50.png differ diff --git a/img/bg_celebrate_75.png b/img/bg_celebrate_75.png new file mode 100644 index 0000000..6ae3f51 Binary files /dev/null and b/img/bg_celebrate_75.png differ diff --git a/img/bg_doraemon_1.png b/img/bg_doraemon_1.png new file mode 100644 index 0000000..2cd6d03 Binary files /dev/null and b/img/bg_doraemon_1.png differ diff --git a/img/bg_memorial_day.png b/img/bg_memorial_day.png new file mode 100644 index 0000000..9720c7f Binary files /dev/null and b/img/bg_memorial_day.png differ diff --git a/img/bg_placeholder.png b/img/bg_placeholder.png new file mode 100644 index 0000000..9a95159 Binary files /dev/null and b/img/bg_placeholder.png differ diff --git a/img/bg_tt1.png b/img/bg_tt1.png new file mode 100644 index 0000000..2cd6d03 Binary files /dev/null and b/img/bg_tt1.png differ diff --git a/img/bg_wedding_2.jpg b/img/bg_wedding_2.jpg new file mode 100644 index 0000000..e21d87c Binary files /dev/null and b/img/bg_wedding_2.jpg differ diff --git a/img/delivery-man_white.png b/img/delivery-man_white.png new file mode 100644 index 0000000..8ce9e3c Binary files /dev/null and b/img/delivery-man_white.png differ diff --git a/img/garlands.png b/img/garlands.png new file mode 100644 index 0000000..f4947c4 Binary files /dev/null and b/img/garlands.png differ diff --git a/img/ic_10000.png b/img/ic_10000.png new file mode 100644 index 0000000..a739a4e Binary files /dev/null and b/img/ic_10000.png differ diff --git a/img/ic__china_mobile.png b/img/ic__china_mobile.png new file mode 100644 index 0000000..4fb25fb Binary files /dev/null and b/img/ic__china_mobile.png differ diff --git a/img/ic_avatar_lsp.jpg b/img/ic_avatar_lsp.jpg new file mode 100644 index 0000000..6a58f8c Binary files /dev/null and b/img/ic_avatar_lsp.jpg differ diff --git a/img/ic_avatar_lsp_circle.png b/img/ic_avatar_lsp_circle.png new file mode 100644 index 0000000..8256fb8 Binary files /dev/null and b/img/ic_avatar_lsp_circle.png differ diff --git a/img/ic_avatar_lsp_round.png b/img/ic_avatar_lsp_round.png new file mode 100644 index 0000000..cbbc44b Binary files /dev/null and b/img/ic_avatar_lsp_round.png differ diff --git a/img/ic_calendar.gif b/img/ic_calendar.gif new file mode 100644 index 0000000..a0edb48 Binary files /dev/null and b/img/ic_calendar.gif differ diff --git a/img/ic_calendar.png b/img/ic_calendar.png new file mode 100644 index 0000000..cbb1a9f Binary files /dev/null and b/img/ic_calendar.png differ diff --git a/img/ic_calendar_2.gif b/img/ic_calendar_2.gif new file mode 100644 index 0000000..a05d3be Binary files /dev/null and b/img/ic_calendar_2.gif differ diff --git a/img/ic_cat_1.png b/img/ic_cat_1.png new file mode 100644 index 0000000..74ff2c2 Binary files /dev/null and b/img/ic_cat_1.png differ diff --git a/img/ic_cat_2.png b/img/ic_cat_2.png new file mode 100644 index 0000000..c893164 Binary files /dev/null and b/img/ic_cat_2.png differ diff --git a/img/ic_cat_3.png b/img/ic_cat_3.png new file mode 100644 index 0000000..0a412a0 Binary files /dev/null and b/img/ic_cat_3.png differ diff --git a/img/ic_cat_4.png b/img/ic_cat_4.png new file mode 100644 index 0000000..42ee2a2 Binary files /dev/null and b/img/ic_cat_4.png differ diff --git a/img/ic_cat_5.png b/img/ic_cat_5.png new file mode 100644 index 0000000..5a69bd3 Binary files /dev/null and b/img/ic_cat_5.png differ diff --git a/img/ic_cat_6.png b/img/ic_cat_6.png new file mode 100644 index 0000000..422b5a9 Binary files /dev/null and b/img/ic_cat_6.png differ diff --git a/img/ic_cat_7.png b/img/ic_cat_7.png new file mode 100644 index 0000000..605b66d Binary files /dev/null and b/img/ic_cat_7.png differ diff --git a/img/ic_cat_8.png b/img/ic_cat_8.png new file mode 100644 index 0000000..f031096 Binary files /dev/null and b/img/ic_cat_8.png differ diff --git a/img/ic_china_telecom.png b/img/ic_china_telecom.png new file mode 100644 index 0000000..980d9f9 Binary files /dev/null and b/img/ic_china_telecom.png differ diff --git a/img/ic_clock.png b/img/ic_clock.png new file mode 100644 index 0000000..7a8427e Binary files /dev/null and b/img/ic_clock.png differ diff --git a/img/ic_corona_virus.png b/img/ic_corona_virus.png new file mode 100644 index 0000000..14c9202 Binary files /dev/null and b/img/ic_corona_virus.png differ diff --git a/img/ic_filter.png b/img/ic_filter.png new file mode 100644 index 0000000..606ca37 Binary files /dev/null and b/img/ic_filter.png differ diff --git a/img/ic_fireworks_a20.png b/img/ic_fireworks_a20.png new file mode 100644 index 0000000..4e3e300 Binary files /dev/null and b/img/ic_fireworks_a20.png differ diff --git a/img/ic_holiday.png b/img/ic_holiday.png new file mode 100644 index 0000000..4255e72 Binary files /dev/null and b/img/ic_holiday.png differ diff --git a/img/ic_logo_10000.jpg b/img/ic_logo_10000.jpg new file mode 100644 index 0000000..e7d060f Binary files /dev/null and b/img/ic_logo_10000.jpg differ diff --git a/img/ic_logo_10010.png b/img/ic_logo_10010.png new file mode 100644 index 0000000..46dcb69 Binary files /dev/null and b/img/ic_logo_10010.png differ diff --git a/img/ic_pikachu_1.png b/img/ic_pikachu_1.png new file mode 100644 index 0000000..c9e908a Binary files /dev/null and b/img/ic_pikachu_1.png differ diff --git a/img/ic_pikachu_2.png b/img/ic_pikachu_2.png new file mode 100644 index 0000000..bee9f3e Binary files /dev/null and b/img/ic_pikachu_2.png differ diff --git a/img/ic_pikachu_3.png b/img/ic_pikachu_3.png new file mode 100644 index 0000000..25ae41e Binary files /dev/null and b/img/ic_pikachu_3.png differ diff --git a/img/ic_pikachu_4.png b/img/ic_pikachu_4.png new file mode 100644 index 0000000..4ee899c Binary files /dev/null and b/img/ic_pikachu_4.png differ diff --git a/img/ic_pikachu_5.png b/img/ic_pikachu_5.png new file mode 100644 index 0000000..a4174f8 Binary files /dev/null and b/img/ic_pikachu_5.png differ diff --git a/img/ic_pikachu_6.png b/img/ic_pikachu_6.png new file mode 100644 index 0000000..953a527 Binary files /dev/null and b/img/ic_pikachu_6.png differ diff --git a/img/ic_pikachu_7.png b/img/ic_pikachu_7.png new file mode 100644 index 0000000..3b5af1a Binary files /dev/null and b/img/ic_pikachu_7.png differ diff --git a/img/ic_pikachu_8.png b/img/ic_pikachu_8.png new file mode 100644 index 0000000..6c9bbb6 Binary files /dev/null and b/img/ic_pikachu_8.png differ diff --git a/img/ic_weather.gif b/img/ic_weather.gif new file mode 100644 index 0000000..46dc879 Binary files /dev/null and b/img/ic_weather.gif differ diff --git a/img/ic_weather.png b/img/ic_weather.png new file mode 100644 index 0000000..50e50b8 Binary files /dev/null and b/img/ic_weather.png differ diff --git a/img/ic_weather_loop.gif b/img/ic_weather_loop.gif new file mode 100644 index 0000000..11f66b0 Binary files /dev/null and b/img/ic_weather_loop.gif differ diff --git a/img/ic_weibo.png b/img/ic_weibo.png new file mode 100644 index 0000000..c18df5f Binary files /dev/null and b/img/ic_weibo.png differ diff --git a/img/icon/line-bear/CLEAR_DAY.png b/img/icon/line-bear/CLEAR_DAY.png new file mode 100644 index 0000000..6ec941d Binary files /dev/null and b/img/icon/line-bear/CLEAR_DAY.png differ diff --git a/img/icon/line-bear/CLEAR_NIGHT.png b/img/icon/line-bear/CLEAR_NIGHT.png new file mode 100644 index 0000000..66a7f4d Binary files /dev/null and b/img/icon/line-bear/CLEAR_NIGHT.png differ diff --git a/img/icon/line-bear/CLOUDY.png b/img/icon/line-bear/CLOUDY.png new file mode 100644 index 0000000..cb36bc0 Binary files /dev/null and b/img/icon/line-bear/CLOUDY.png differ diff --git a/img/icon/line-bear/DUST.png b/img/icon/line-bear/DUST.png new file mode 100644 index 0000000..449e5cd Binary files /dev/null and b/img/icon/line-bear/DUST.png differ diff --git a/img/icon/line-bear/FOG.png b/img/icon/line-bear/FOG.png new file mode 100644 index 0000000..a52e914 Binary files /dev/null and b/img/icon/line-bear/FOG.png differ diff --git a/img/icon/line-bear/HEAVY_HAZE.png b/img/icon/line-bear/HEAVY_HAZE.png new file mode 100644 index 0000000..7c45b8b Binary files /dev/null and b/img/icon/line-bear/HEAVY_HAZE.png differ diff --git a/img/icon/line-bear/HEAVY_RAIN.png b/img/icon/line-bear/HEAVY_RAIN.png new file mode 100644 index 0000000..dd5a7da Binary files /dev/null and b/img/icon/line-bear/HEAVY_RAIN.png differ diff --git a/img/icon/line-bear/HEAVY_SNOW.png b/img/icon/line-bear/HEAVY_SNOW.png new file mode 100644 index 0000000..53caf2b Binary files /dev/null and b/img/icon/line-bear/HEAVY_SNOW.png differ diff --git a/img/icon/line-bear/LIGHT_HAZE.png b/img/icon/line-bear/LIGHT_HAZE.png new file mode 100644 index 0000000..a52e914 Binary files /dev/null and b/img/icon/line-bear/LIGHT_HAZE.png differ diff --git a/img/icon/line-bear/LIGHT_RAIN.png b/img/icon/line-bear/LIGHT_RAIN.png new file mode 100644 index 0000000..41269fc Binary files /dev/null and b/img/icon/line-bear/LIGHT_RAIN.png differ diff --git a/img/icon/line-bear/LIGHT_SNOW.png b/img/icon/line-bear/LIGHT_SNOW.png new file mode 100644 index 0000000..15e6f6e Binary files /dev/null and b/img/icon/line-bear/LIGHT_SNOW.png differ diff --git a/img/icon/line-bear/MODERATE_HAZE.png b/img/icon/line-bear/MODERATE_HAZE.png new file mode 100644 index 0000000..4304626 Binary files /dev/null and b/img/icon/line-bear/MODERATE_HAZE.png differ diff --git a/img/icon/line-bear/MODERATE_RAIN.png b/img/icon/line-bear/MODERATE_RAIN.png new file mode 100644 index 0000000..03776dd Binary files /dev/null and b/img/icon/line-bear/MODERATE_RAIN.png differ diff --git a/img/icon/line-bear/MODERATE_SNOW.png b/img/icon/line-bear/MODERATE_SNOW.png new file mode 100644 index 0000000..85074c6 Binary files /dev/null and b/img/icon/line-bear/MODERATE_SNOW.png differ diff --git a/img/icon/line-bear/PARTLY_CLOUDY_DAY.png b/img/icon/line-bear/PARTLY_CLOUDY_DAY.png new file mode 100644 index 0000000..09893fd Binary files /dev/null and b/img/icon/line-bear/PARTLY_CLOUDY_DAY.png differ diff --git a/img/icon/line-bear/PARTLY_CLOUDY_NIGHT.png b/img/icon/line-bear/PARTLY_CLOUDY_NIGHT.png new file mode 100644 index 0000000..aef4d75 Binary files /dev/null and b/img/icon/line-bear/PARTLY_CLOUDY_NIGHT.png differ diff --git a/img/icon/line-bear/SAND.png b/img/icon/line-bear/SAND.png new file mode 100644 index 0000000..fd06590 Binary files /dev/null and b/img/icon/line-bear/SAND.png differ diff --git a/img/icon/line-bear/STORM_RAIN.png b/img/icon/line-bear/STORM_RAIN.png new file mode 100644 index 0000000..2bd7468 Binary files /dev/null and b/img/icon/line-bear/STORM_RAIN.png differ diff --git a/img/icon/line-bear/STORM_SNOW.png b/img/icon/line-bear/STORM_SNOW.png new file mode 100644 index 0000000..538447a Binary files /dev/null and b/img/icon/line-bear/STORM_SNOW.png differ diff --git a/img/icon/line-bear/WIND.png b/img/icon/line-bear/WIND.png new file mode 100644 index 0000000..58a538e Binary files /dev/null and b/img/icon/line-bear/WIND.png differ diff --git a/img/icon/weather1/CLEAR_DAY.png b/img/icon/weather1/CLEAR_DAY.png new file mode 100644 index 0000000..d14b7ca Binary files /dev/null and b/img/icon/weather1/CLEAR_DAY.png differ diff --git a/img/icon/weather1/CLEAR_NIGHT.png b/img/icon/weather1/CLEAR_NIGHT.png new file mode 100644 index 0000000..6e44011 Binary files /dev/null and b/img/icon/weather1/CLEAR_NIGHT.png differ diff --git a/img/icon/weather1/CLOUDY.png b/img/icon/weather1/CLOUDY.png new file mode 100644 index 0000000..5b4c56d Binary files /dev/null and b/img/icon/weather1/CLOUDY.png differ diff --git a/img/icon/weather1/DUST.png b/img/icon/weather1/DUST.png new file mode 100644 index 0000000..8c3f188 Binary files /dev/null and b/img/icon/weather1/DUST.png differ diff --git a/img/icon/weather1/FOG.png b/img/icon/weather1/FOG.png new file mode 100644 index 0000000..0ae34f4 Binary files /dev/null and b/img/icon/weather1/FOG.png differ diff --git a/img/icon/weather1/HEAVY_HAZE.png b/img/icon/weather1/HEAVY_HAZE.png new file mode 100644 index 0000000..0ae34f4 Binary files /dev/null and b/img/icon/weather1/HEAVY_HAZE.png differ diff --git a/img/icon/weather1/HEAVY_RAIN.png b/img/icon/weather1/HEAVY_RAIN.png new file mode 100644 index 0000000..adab24b Binary files /dev/null and b/img/icon/weather1/HEAVY_RAIN.png differ diff --git a/img/icon/weather1/HEAVY_SNOW.png b/img/icon/weather1/HEAVY_SNOW.png new file mode 100644 index 0000000..0b29089 Binary files /dev/null and b/img/icon/weather1/HEAVY_SNOW.png differ diff --git a/img/icon/weather1/LIGHT_HAZE.png b/img/icon/weather1/LIGHT_HAZE.png new file mode 100644 index 0000000..0ae34f4 Binary files /dev/null and b/img/icon/weather1/LIGHT_HAZE.png differ diff --git a/img/icon/weather1/LIGHT_RAIN.png b/img/icon/weather1/LIGHT_RAIN.png new file mode 100644 index 0000000..adab24b Binary files /dev/null and b/img/icon/weather1/LIGHT_RAIN.png differ diff --git a/img/icon/weather1/LIGHT_SNOW.png b/img/icon/weather1/LIGHT_SNOW.png new file mode 100644 index 0000000..0b29089 Binary files /dev/null and b/img/icon/weather1/LIGHT_SNOW.png differ diff --git a/img/icon/weather1/MODERATE_HAZE.png b/img/icon/weather1/MODERATE_HAZE.png new file mode 100644 index 0000000..0ae34f4 Binary files /dev/null and b/img/icon/weather1/MODERATE_HAZE.png differ diff --git a/img/icon/weather1/MODERATE_RAIN.png b/img/icon/weather1/MODERATE_RAIN.png new file mode 100644 index 0000000..adab24b Binary files /dev/null and b/img/icon/weather1/MODERATE_RAIN.png differ diff --git a/img/icon/weather1/MODERATE_SNOW.png b/img/icon/weather1/MODERATE_SNOW.png new file mode 100644 index 0000000..0b29089 Binary files /dev/null and b/img/icon/weather1/MODERATE_SNOW.png differ diff --git a/img/icon/weather1/PARTLY_CLOUDY_DAY.png b/img/icon/weather1/PARTLY_CLOUDY_DAY.png new file mode 100644 index 0000000..d1b939f Binary files /dev/null and b/img/icon/weather1/PARTLY_CLOUDY_DAY.png differ diff --git a/img/icon/weather1/PARTLY_CLOUDY_NIGHT.png b/img/icon/weather1/PARTLY_CLOUDY_NIGHT.png new file mode 100644 index 0000000..6162320 Binary files /dev/null and b/img/icon/weather1/PARTLY_CLOUDY_NIGHT.png differ diff --git a/img/icon/weather1/SAND.png b/img/icon/weather1/SAND.png new file mode 100644 index 0000000..8c3f188 Binary files /dev/null and b/img/icon/weather1/SAND.png differ diff --git a/img/icon/weather1/STORM_RAIN.png b/img/icon/weather1/STORM_RAIN.png new file mode 100644 index 0000000..adab24b Binary files /dev/null and b/img/icon/weather1/STORM_RAIN.png differ diff --git a/img/icon/weather1/STORM_SNOW.png b/img/icon/weather1/STORM_SNOW.png new file mode 100644 index 0000000..0b29089 Binary files /dev/null and b/img/icon/weather1/STORM_SNOW.png differ diff --git a/img/icon/weather1/WIND.png b/img/icon/weather1/WIND.png new file mode 100644 index 0000000..8c3f188 Binary files /dev/null and b/img/icon/weather1/WIND.png differ diff --git a/img/icon/weather10/CLEAR_DAY.png b/img/icon/weather10/CLEAR_DAY.png new file mode 100644 index 0000000..ccc9658 Binary files /dev/null and b/img/icon/weather10/CLEAR_DAY.png differ diff --git a/img/icon/weather10/CLEAR_NIGHT.png b/img/icon/weather10/CLEAR_NIGHT.png new file mode 100644 index 0000000..8ba45c3 Binary files /dev/null and b/img/icon/weather10/CLEAR_NIGHT.png differ diff --git a/img/icon/weather10/CLOUDY.png b/img/icon/weather10/CLOUDY.png new file mode 100644 index 0000000..182dc8f Binary files /dev/null and b/img/icon/weather10/CLOUDY.png differ diff --git a/img/icon/weather10/DUST.png b/img/icon/weather10/DUST.png new file mode 100644 index 0000000..ac53079 Binary files /dev/null and b/img/icon/weather10/DUST.png differ diff --git a/img/icon/weather10/FOG.png b/img/icon/weather10/FOG.png new file mode 100644 index 0000000..39e0e1e Binary files /dev/null and b/img/icon/weather10/FOG.png differ diff --git a/img/icon/weather10/HEAVY_HAZE.png b/img/icon/weather10/HEAVY_HAZE.png new file mode 100644 index 0000000..9312b0c Binary files /dev/null and b/img/icon/weather10/HEAVY_HAZE.png differ diff --git a/img/icon/weather10/HEAVY_RAIN.png b/img/icon/weather10/HEAVY_RAIN.png new file mode 100644 index 0000000..8460a73 Binary files /dev/null and b/img/icon/weather10/HEAVY_RAIN.png differ diff --git a/img/icon/weather10/HEAVY_SNOW.png b/img/icon/weather10/HEAVY_SNOW.png new file mode 100644 index 0000000..2e5d64d Binary files /dev/null and b/img/icon/weather10/HEAVY_SNOW.png differ diff --git a/img/icon/weather10/LIGHT_HAZE.png b/img/icon/weather10/LIGHT_HAZE.png new file mode 100644 index 0000000..9312b0c Binary files /dev/null and b/img/icon/weather10/LIGHT_HAZE.png differ diff --git a/img/icon/weather10/LIGHT_RAIN.png b/img/icon/weather10/LIGHT_RAIN.png new file mode 100644 index 0000000..baff240 Binary files /dev/null and b/img/icon/weather10/LIGHT_RAIN.png differ diff --git a/img/icon/weather10/LIGHT_SNOW.png b/img/icon/weather10/LIGHT_SNOW.png new file mode 100644 index 0000000..2e5d64d Binary files /dev/null and b/img/icon/weather10/LIGHT_SNOW.png differ diff --git a/img/icon/weather10/MODERATE_HAZE.png b/img/icon/weather10/MODERATE_HAZE.png new file mode 100644 index 0000000..9312b0c Binary files /dev/null and b/img/icon/weather10/MODERATE_HAZE.png differ diff --git a/img/icon/weather10/MODERATE_RAIN.png b/img/icon/weather10/MODERATE_RAIN.png new file mode 100644 index 0000000..69eb37b Binary files /dev/null and b/img/icon/weather10/MODERATE_RAIN.png differ diff --git a/img/icon/weather10/MODERATE_SNOW.png b/img/icon/weather10/MODERATE_SNOW.png new file mode 100644 index 0000000..2e5d64d Binary files /dev/null and b/img/icon/weather10/MODERATE_SNOW.png differ diff --git a/img/icon/weather10/PARTLY_CLOUDY_DAY.png b/img/icon/weather10/PARTLY_CLOUDY_DAY.png new file mode 100644 index 0000000..4c9f26b Binary files /dev/null and b/img/icon/weather10/PARTLY_CLOUDY_DAY.png differ diff --git a/img/icon/weather10/PARTLY_CLOUDY_NIGHT.png b/img/icon/weather10/PARTLY_CLOUDY_NIGHT.png new file mode 100644 index 0000000..ea554e4 Binary files /dev/null and b/img/icon/weather10/PARTLY_CLOUDY_NIGHT.png differ diff --git a/img/icon/weather10/SAND.png b/img/icon/weather10/SAND.png new file mode 100644 index 0000000..ac53079 Binary files /dev/null and b/img/icon/weather10/SAND.png differ diff --git a/img/icon/weather10/STORM_RAIN.png b/img/icon/weather10/STORM_RAIN.png new file mode 100644 index 0000000..8460a73 Binary files /dev/null and b/img/icon/weather10/STORM_RAIN.png differ diff --git a/img/icon/weather10/STORM_SNOW.png b/img/icon/weather10/STORM_SNOW.png new file mode 100644 index 0000000..2e5d64d Binary files /dev/null and b/img/icon/weather10/STORM_SNOW.png differ diff --git a/img/icon/weather10/WIND.png b/img/icon/weather10/WIND.png new file mode 100644 index 0000000..7320622 Binary files /dev/null and b/img/icon/weather10/WIND.png differ diff --git a/img/icon/weather11/CLEAR_DAY.png b/img/icon/weather11/CLEAR_DAY.png new file mode 100644 index 0000000..ebfda3b Binary files /dev/null and b/img/icon/weather11/CLEAR_DAY.png differ diff --git a/img/icon/weather11/CLEAR_NIGHT.png b/img/icon/weather11/CLEAR_NIGHT.png new file mode 100644 index 0000000..65fa0e0 Binary files /dev/null and b/img/icon/weather11/CLEAR_NIGHT.png differ diff --git a/img/icon/weather11/CLOUDY.png b/img/icon/weather11/CLOUDY.png new file mode 100644 index 0000000..b0e13d8 Binary files /dev/null and b/img/icon/weather11/CLOUDY.png differ diff --git a/img/icon/weather11/DUST.png b/img/icon/weather11/DUST.png new file mode 100644 index 0000000..12c4ea9 Binary files /dev/null and b/img/icon/weather11/DUST.png differ diff --git a/img/icon/weather11/FOG.png b/img/icon/weather11/FOG.png new file mode 100644 index 0000000..99fbf80 Binary files /dev/null and b/img/icon/weather11/FOG.png differ diff --git a/img/icon/weather11/HEAVY_HAZE.png b/img/icon/weather11/HEAVY_HAZE.png new file mode 100644 index 0000000..12c4ea9 Binary files /dev/null and b/img/icon/weather11/HEAVY_HAZE.png differ diff --git a/img/icon/weather11/HEAVY_RAIN.png b/img/icon/weather11/HEAVY_RAIN.png new file mode 100644 index 0000000..0471a3c Binary files /dev/null and b/img/icon/weather11/HEAVY_RAIN.png differ diff --git a/img/icon/weather11/HEAVY_SNOW.png b/img/icon/weather11/HEAVY_SNOW.png new file mode 100644 index 0000000..636815b Binary files /dev/null and b/img/icon/weather11/HEAVY_SNOW.png differ diff --git a/img/icon/weather11/LIGHT_HAZE.png b/img/icon/weather11/LIGHT_HAZE.png new file mode 100644 index 0000000..12c4ea9 Binary files /dev/null and b/img/icon/weather11/LIGHT_HAZE.png differ diff --git a/img/icon/weather11/LIGHT_RAIN.png b/img/icon/weather11/LIGHT_RAIN.png new file mode 100644 index 0000000..69b6fa4 Binary files /dev/null and b/img/icon/weather11/LIGHT_RAIN.png differ diff --git a/img/icon/weather11/LIGHT_SNOW.png b/img/icon/weather11/LIGHT_SNOW.png new file mode 100644 index 0000000..abfbb93 Binary files /dev/null and b/img/icon/weather11/LIGHT_SNOW.png differ diff --git a/img/icon/weather11/MODERATE_HAZE.png b/img/icon/weather11/MODERATE_HAZE.png new file mode 100644 index 0000000..12c4ea9 Binary files /dev/null and b/img/icon/weather11/MODERATE_HAZE.png differ diff --git a/img/icon/weather11/MODERATE_RAIN.png b/img/icon/weather11/MODERATE_RAIN.png new file mode 100644 index 0000000..69b6fa4 Binary files /dev/null and b/img/icon/weather11/MODERATE_RAIN.png differ diff --git a/img/icon/weather11/MODERATE_SNOW.png b/img/icon/weather11/MODERATE_SNOW.png new file mode 100644 index 0000000..f71db9d Binary files /dev/null and b/img/icon/weather11/MODERATE_SNOW.png differ diff --git a/img/icon/weather11/PARTLY_CLOUDY_DAY.png b/img/icon/weather11/PARTLY_CLOUDY_DAY.png new file mode 100644 index 0000000..b0e13d8 Binary files /dev/null and b/img/icon/weather11/PARTLY_CLOUDY_DAY.png differ diff --git a/img/icon/weather11/PARTLY_CLOUDY_NIGHT.png b/img/icon/weather11/PARTLY_CLOUDY_NIGHT.png new file mode 100644 index 0000000..6223bef Binary files /dev/null and b/img/icon/weather11/PARTLY_CLOUDY_NIGHT.png differ diff --git a/img/icon/weather11/SAND.png b/img/icon/weather11/SAND.png new file mode 100644 index 0000000..e0661c3 Binary files /dev/null and b/img/icon/weather11/SAND.png differ diff --git a/img/icon/weather11/STORM_RAIN.png b/img/icon/weather11/STORM_RAIN.png new file mode 100644 index 0000000..77bd2b3 Binary files /dev/null and b/img/icon/weather11/STORM_RAIN.png differ diff --git a/img/icon/weather11/STORM_SNOW.png b/img/icon/weather11/STORM_SNOW.png new file mode 100644 index 0000000..636815b Binary files /dev/null and b/img/icon/weather11/STORM_SNOW.png differ diff --git a/img/icon/weather11/WIND.png b/img/icon/weather11/WIND.png new file mode 100644 index 0000000..e0661c3 Binary files /dev/null and b/img/icon/weather11/WIND.png differ diff --git a/img/icon/weather12/CLEAR_DAY.png b/img/icon/weather12/CLEAR_DAY.png new file mode 100644 index 0000000..30aa439 Binary files /dev/null and b/img/icon/weather12/CLEAR_DAY.png differ diff --git a/img/icon/weather12/CLEAR_NIGHT.png b/img/icon/weather12/CLEAR_NIGHT.png new file mode 100644 index 0000000..fd07538 Binary files /dev/null and b/img/icon/weather12/CLEAR_NIGHT.png differ diff --git a/img/icon/weather12/CLOUDY.png b/img/icon/weather12/CLOUDY.png new file mode 100644 index 0000000..69032b0 Binary files /dev/null and b/img/icon/weather12/CLOUDY.png differ diff --git a/img/icon/weather12/DUST.png b/img/icon/weather12/DUST.png new file mode 100644 index 0000000..3d2e004 Binary files /dev/null and b/img/icon/weather12/DUST.png differ diff --git a/img/icon/weather12/FOG.png b/img/icon/weather12/FOG.png new file mode 100644 index 0000000..337f902 Binary files /dev/null and b/img/icon/weather12/FOG.png differ diff --git a/img/icon/weather12/HEAVY_HAZE.png b/img/icon/weather12/HEAVY_HAZE.png new file mode 100644 index 0000000..3d2e004 Binary files /dev/null and b/img/icon/weather12/HEAVY_HAZE.png differ diff --git a/img/icon/weather12/HEAVY_RAIN.png b/img/icon/weather12/HEAVY_RAIN.png new file mode 100644 index 0000000..7961e16 Binary files /dev/null and b/img/icon/weather12/HEAVY_RAIN.png differ diff --git a/img/icon/weather12/HEAVY_SNOW.png b/img/icon/weather12/HEAVY_SNOW.png new file mode 100644 index 0000000..3611a7b Binary files /dev/null and b/img/icon/weather12/HEAVY_SNOW.png differ diff --git a/img/icon/weather12/LIGHT_HAZE.png b/img/icon/weather12/LIGHT_HAZE.png new file mode 100644 index 0000000..3d2e004 Binary files /dev/null and b/img/icon/weather12/LIGHT_HAZE.png differ diff --git a/img/icon/weather12/LIGHT_RAIN.png b/img/icon/weather12/LIGHT_RAIN.png new file mode 100644 index 0000000..753bf1a Binary files /dev/null and b/img/icon/weather12/LIGHT_RAIN.png differ diff --git a/img/icon/weather12/LIGHT_SNOW.png b/img/icon/weather12/LIGHT_SNOW.png new file mode 100644 index 0000000..06a0cfe Binary files /dev/null and b/img/icon/weather12/LIGHT_SNOW.png differ diff --git a/img/icon/weather12/MODERATE_HAZE.png b/img/icon/weather12/MODERATE_HAZE.png new file mode 100644 index 0000000..3d2e004 Binary files /dev/null and b/img/icon/weather12/MODERATE_HAZE.png differ diff --git a/img/icon/weather12/MODERATE_RAIN.png b/img/icon/weather12/MODERATE_RAIN.png new file mode 100644 index 0000000..753bf1a Binary files /dev/null and b/img/icon/weather12/MODERATE_RAIN.png differ diff --git a/img/icon/weather12/MODERATE_SNOW.png b/img/icon/weather12/MODERATE_SNOW.png new file mode 100644 index 0000000..7856dfb Binary files /dev/null and b/img/icon/weather12/MODERATE_SNOW.png differ diff --git a/img/icon/weather12/PARTLY_CLOUDY_DAY.png b/img/icon/weather12/PARTLY_CLOUDY_DAY.png new file mode 100644 index 0000000..69032b0 Binary files /dev/null and b/img/icon/weather12/PARTLY_CLOUDY_DAY.png differ diff --git a/img/icon/weather12/PARTLY_CLOUDY_NIGHT.png b/img/icon/weather12/PARTLY_CLOUDY_NIGHT.png new file mode 100644 index 0000000..2176aac Binary files /dev/null and b/img/icon/weather12/PARTLY_CLOUDY_NIGHT.png differ diff --git a/img/icon/weather12/SAND.png b/img/icon/weather12/SAND.png new file mode 100644 index 0000000..5644276 Binary files /dev/null and b/img/icon/weather12/SAND.png differ diff --git a/img/icon/weather12/STORM_RAIN.png b/img/icon/weather12/STORM_RAIN.png new file mode 100644 index 0000000..1b22ada Binary files /dev/null and b/img/icon/weather12/STORM_RAIN.png differ diff --git a/img/icon/weather12/STORM_SNOW.png b/img/icon/weather12/STORM_SNOW.png new file mode 100644 index 0000000..3611a7b Binary files /dev/null and b/img/icon/weather12/STORM_SNOW.png differ diff --git a/img/icon/weather12/WIND.png b/img/icon/weather12/WIND.png new file mode 100644 index 0000000..5644276 Binary files /dev/null and b/img/icon/weather12/WIND.png differ diff --git a/img/icon/weather13/CLEAR_DAY.png b/img/icon/weather13/CLEAR_DAY.png new file mode 100644 index 0000000..1caec21 Binary files /dev/null and b/img/icon/weather13/CLEAR_DAY.png differ diff --git a/img/icon/weather13/CLEAR_NIGHT.png b/img/icon/weather13/CLEAR_NIGHT.png new file mode 100644 index 0000000..8b97870 Binary files /dev/null and b/img/icon/weather13/CLEAR_NIGHT.png differ diff --git a/img/icon/weather13/CLOUDY.png b/img/icon/weather13/CLOUDY.png new file mode 100644 index 0000000..6453d1c Binary files /dev/null and b/img/icon/weather13/CLOUDY.png differ diff --git a/img/icon/weather13/DUST.png b/img/icon/weather13/DUST.png new file mode 100644 index 0000000..11188de Binary files /dev/null and b/img/icon/weather13/DUST.png differ diff --git a/img/icon/weather13/FOG.png b/img/icon/weather13/FOG.png new file mode 100644 index 0000000..786df59 Binary files /dev/null and b/img/icon/weather13/FOG.png differ diff --git a/img/icon/weather13/HEAVY_HAZE.png b/img/icon/weather13/HEAVY_HAZE.png new file mode 100644 index 0000000..686a0fd Binary files /dev/null and b/img/icon/weather13/HEAVY_HAZE.png differ diff --git a/img/icon/weather13/HEAVY_RAIN.png b/img/icon/weather13/HEAVY_RAIN.png new file mode 100644 index 0000000..7b8dff8 Binary files /dev/null and b/img/icon/weather13/HEAVY_RAIN.png differ diff --git a/img/icon/weather13/HEAVY_SNOW.png b/img/icon/weather13/HEAVY_SNOW.png new file mode 100644 index 0000000..09a2592 Binary files /dev/null and b/img/icon/weather13/HEAVY_SNOW.png differ diff --git a/img/icon/weather13/LIGHT_HAZE.png b/img/icon/weather13/LIGHT_HAZE.png new file mode 100644 index 0000000..686a0fd Binary files /dev/null and b/img/icon/weather13/LIGHT_HAZE.png differ diff --git a/img/icon/weather13/LIGHT_RAIN.png b/img/icon/weather13/LIGHT_RAIN.png new file mode 100644 index 0000000..1629dd1 Binary files /dev/null and b/img/icon/weather13/LIGHT_RAIN.png differ diff --git a/img/icon/weather13/LIGHT_SNOW.png b/img/icon/weather13/LIGHT_SNOW.png new file mode 100644 index 0000000..09a2592 Binary files /dev/null and b/img/icon/weather13/LIGHT_SNOW.png differ diff --git a/img/icon/weather13/MODERATE_HAZE.png b/img/icon/weather13/MODERATE_HAZE.png new file mode 100644 index 0000000..686a0fd Binary files /dev/null and b/img/icon/weather13/MODERATE_HAZE.png differ diff --git a/img/icon/weather13/MODERATE_RAIN.png b/img/icon/weather13/MODERATE_RAIN.png new file mode 100644 index 0000000..9b81780 Binary files /dev/null and b/img/icon/weather13/MODERATE_RAIN.png differ diff --git a/img/icon/weather13/MODERATE_SNOW.png b/img/icon/weather13/MODERATE_SNOW.png new file mode 100644 index 0000000..09a2592 Binary files /dev/null and b/img/icon/weather13/MODERATE_SNOW.png differ diff --git a/img/icon/weather13/PARTLY_CLOUDY_DAY.png b/img/icon/weather13/PARTLY_CLOUDY_DAY.png new file mode 100644 index 0000000..39c313b Binary files /dev/null and b/img/icon/weather13/PARTLY_CLOUDY_DAY.png differ diff --git a/img/icon/weather13/PARTLY_CLOUDY_NIGHT.png b/img/icon/weather13/PARTLY_CLOUDY_NIGHT.png new file mode 100644 index 0000000..fcf5eaa Binary files /dev/null and b/img/icon/weather13/PARTLY_CLOUDY_NIGHT.png differ diff --git a/img/icon/weather13/SAND.png b/img/icon/weather13/SAND.png new file mode 100644 index 0000000..786df59 Binary files /dev/null and b/img/icon/weather13/SAND.png differ diff --git a/img/icon/weather13/STORM_RAIN.png b/img/icon/weather13/STORM_RAIN.png new file mode 100644 index 0000000..33ec878 Binary files /dev/null and b/img/icon/weather13/STORM_RAIN.png differ diff --git a/img/icon/weather13/STORM_SNOW.png b/img/icon/weather13/STORM_SNOW.png new file mode 100644 index 0000000..09a2592 Binary files /dev/null and b/img/icon/weather13/STORM_SNOW.png differ diff --git a/img/icon/weather13/WIND.png b/img/icon/weather13/WIND.png new file mode 100644 index 0000000..11188de Binary files /dev/null and b/img/icon/weather13/WIND.png differ diff --git a/img/icon/weather2/CLEAR_DAY.png b/img/icon/weather2/CLEAR_DAY.png new file mode 100644 index 0000000..221cefa Binary files /dev/null and b/img/icon/weather2/CLEAR_DAY.png differ diff --git a/img/icon/weather2/CLEAR_NIGHT.png b/img/icon/weather2/CLEAR_NIGHT.png new file mode 100644 index 0000000..f8bbaee Binary files /dev/null and b/img/icon/weather2/CLEAR_NIGHT.png differ diff --git a/img/icon/weather2/CLOUDY.png b/img/icon/weather2/CLOUDY.png new file mode 100644 index 0000000..430edff Binary files /dev/null and b/img/icon/weather2/CLOUDY.png differ diff --git a/img/icon/weather2/DUST.png b/img/icon/weather2/DUST.png new file mode 100644 index 0000000..775e827 Binary files /dev/null and b/img/icon/weather2/DUST.png differ diff --git a/img/icon/weather2/FOG.png b/img/icon/weather2/FOG.png new file mode 100644 index 0000000..897c4c8 Binary files /dev/null and b/img/icon/weather2/FOG.png differ diff --git a/img/icon/weather2/HEAVY_HAZE.png b/img/icon/weather2/HEAVY_HAZE.png new file mode 100644 index 0000000..a0174b0 Binary files /dev/null and b/img/icon/weather2/HEAVY_HAZE.png differ diff --git a/img/icon/weather2/HEAVY_RAIN.png b/img/icon/weather2/HEAVY_RAIN.png new file mode 100644 index 0000000..3dbbe43 Binary files /dev/null and b/img/icon/weather2/HEAVY_RAIN.png differ diff --git a/img/icon/weather2/HEAVY_SNOW.png b/img/icon/weather2/HEAVY_SNOW.png new file mode 100644 index 0000000..23aa1d4 Binary files /dev/null and b/img/icon/weather2/HEAVY_SNOW.png differ diff --git a/img/icon/weather2/LIGHT_HAZE.png b/img/icon/weather2/LIGHT_HAZE.png new file mode 100644 index 0000000..a0174b0 Binary files /dev/null and b/img/icon/weather2/LIGHT_HAZE.png differ diff --git a/img/icon/weather2/LIGHT_RAIN.png b/img/icon/weather2/LIGHT_RAIN.png new file mode 100644 index 0000000..3dbbe43 Binary files /dev/null and b/img/icon/weather2/LIGHT_RAIN.png differ diff --git a/img/icon/weather2/LIGHT_SNOW.png b/img/icon/weather2/LIGHT_SNOW.png new file mode 100644 index 0000000..23aa1d4 Binary files /dev/null and b/img/icon/weather2/LIGHT_SNOW.png differ diff --git a/img/icon/weather2/MODERATE_HAZE.png b/img/icon/weather2/MODERATE_HAZE.png new file mode 100644 index 0000000..a0174b0 Binary files /dev/null and b/img/icon/weather2/MODERATE_HAZE.png differ diff --git a/img/icon/weather2/MODERATE_RAIN.png b/img/icon/weather2/MODERATE_RAIN.png new file mode 100644 index 0000000..3dbbe43 Binary files /dev/null and b/img/icon/weather2/MODERATE_RAIN.png differ diff --git a/img/icon/weather2/MODERATE_SNOW.png b/img/icon/weather2/MODERATE_SNOW.png new file mode 100644 index 0000000..23aa1d4 Binary files /dev/null and b/img/icon/weather2/MODERATE_SNOW.png differ diff --git a/img/icon/weather2/PARTLY_CLOUDY_DAY.png b/img/icon/weather2/PARTLY_CLOUDY_DAY.png new file mode 100644 index 0000000..0aae760 Binary files /dev/null and b/img/icon/weather2/PARTLY_CLOUDY_DAY.png differ diff --git a/img/icon/weather2/PARTLY_CLOUDY_NIGHT.png b/img/icon/weather2/PARTLY_CLOUDY_NIGHT.png new file mode 100644 index 0000000..950467d Binary files /dev/null and b/img/icon/weather2/PARTLY_CLOUDY_NIGHT.png differ diff --git a/img/icon/weather2/SAND.png b/img/icon/weather2/SAND.png new file mode 100644 index 0000000..775e827 Binary files /dev/null and b/img/icon/weather2/SAND.png differ diff --git a/img/icon/weather2/STORM_RAIN.png b/img/icon/weather2/STORM_RAIN.png new file mode 100644 index 0000000..3dbbe43 Binary files /dev/null and b/img/icon/weather2/STORM_RAIN.png differ diff --git a/img/icon/weather2/STORM_SNOW.png b/img/icon/weather2/STORM_SNOW.png new file mode 100644 index 0000000..3dbbe43 Binary files /dev/null and b/img/icon/weather2/STORM_SNOW.png differ diff --git a/img/icon/weather2/WIND.png b/img/icon/weather2/WIND.png new file mode 100644 index 0000000..32a6331 Binary files /dev/null and b/img/icon/weather2/WIND.png differ diff --git a/img/icon/weather3/CLEAR_DAY.png b/img/icon/weather3/CLEAR_DAY.png new file mode 100644 index 0000000..a9a9e4c Binary files /dev/null and b/img/icon/weather3/CLEAR_DAY.png differ diff --git a/img/icon/weather3/CLEAR_NIGHT.png b/img/icon/weather3/CLEAR_NIGHT.png new file mode 100644 index 0000000..035c047 Binary files /dev/null and b/img/icon/weather3/CLEAR_NIGHT.png differ diff --git a/img/icon/weather3/CLOUDY.png b/img/icon/weather3/CLOUDY.png new file mode 100644 index 0000000..2beab06 Binary files /dev/null and b/img/icon/weather3/CLOUDY.png differ diff --git a/img/icon/weather3/DUST.png b/img/icon/weather3/DUST.png new file mode 100644 index 0000000..f9e01aa Binary files /dev/null and b/img/icon/weather3/DUST.png differ diff --git a/img/icon/weather3/FOG.png b/img/icon/weather3/FOG.png new file mode 100644 index 0000000..f9e01aa Binary files /dev/null and b/img/icon/weather3/FOG.png differ diff --git a/img/icon/weather3/HEAVY_HAZE.png b/img/icon/weather3/HEAVY_HAZE.png new file mode 100644 index 0000000..f9e01aa Binary files /dev/null and b/img/icon/weather3/HEAVY_HAZE.png differ diff --git a/img/icon/weather3/HEAVY_RAIN.png b/img/icon/weather3/HEAVY_RAIN.png new file mode 100644 index 0000000..5dd5004 Binary files /dev/null and b/img/icon/weather3/HEAVY_RAIN.png differ diff --git a/img/icon/weather3/HEAVY_SNOW.png b/img/icon/weather3/HEAVY_SNOW.png new file mode 100644 index 0000000..aa1729c Binary files /dev/null and b/img/icon/weather3/HEAVY_SNOW.png differ diff --git a/img/icon/weather3/LIGHT_HAZE.png b/img/icon/weather3/LIGHT_HAZE.png new file mode 100644 index 0000000..f9e01aa Binary files /dev/null and b/img/icon/weather3/LIGHT_HAZE.png differ diff --git a/img/icon/weather3/LIGHT_RAIN.png b/img/icon/weather3/LIGHT_RAIN.png new file mode 100644 index 0000000..e94fea3 Binary files /dev/null and b/img/icon/weather3/LIGHT_RAIN.png differ diff --git a/img/icon/weather3/LIGHT_SNOW.png b/img/icon/weather3/LIGHT_SNOW.png new file mode 100644 index 0000000..7af2e24 Binary files /dev/null and b/img/icon/weather3/LIGHT_SNOW.png differ diff --git a/img/icon/weather3/MODERATE_HAZE.png b/img/icon/weather3/MODERATE_HAZE.png new file mode 100644 index 0000000..f9e01aa Binary files /dev/null and b/img/icon/weather3/MODERATE_HAZE.png differ diff --git a/img/icon/weather3/MODERATE_RAIN.png b/img/icon/weather3/MODERATE_RAIN.png new file mode 100644 index 0000000..e94fea3 Binary files /dev/null and b/img/icon/weather3/MODERATE_RAIN.png differ diff --git a/img/icon/weather3/MODERATE_SNOW.png b/img/icon/weather3/MODERATE_SNOW.png new file mode 100644 index 0000000..7af2e24 Binary files /dev/null and b/img/icon/weather3/MODERATE_SNOW.png differ diff --git a/img/icon/weather3/PARTLY_CLOUDY_DAY.png b/img/icon/weather3/PARTLY_CLOUDY_DAY.png new file mode 100644 index 0000000..92e36d0 Binary files /dev/null and b/img/icon/weather3/PARTLY_CLOUDY_DAY.png differ diff --git a/img/icon/weather3/PARTLY_CLOUDY_NIGHT.png b/img/icon/weather3/PARTLY_CLOUDY_NIGHT.png new file mode 100644 index 0000000..585d853 Binary files /dev/null and b/img/icon/weather3/PARTLY_CLOUDY_NIGHT.png differ diff --git a/img/icon/weather3/SAND.png b/img/icon/weather3/SAND.png new file mode 100644 index 0000000..48724c4 Binary files /dev/null and b/img/icon/weather3/SAND.png differ diff --git a/img/icon/weather3/STORM_RAIN.png b/img/icon/weather3/STORM_RAIN.png new file mode 100644 index 0000000..5dd5004 Binary files /dev/null and b/img/icon/weather3/STORM_RAIN.png differ diff --git a/img/icon/weather3/STORM_SNOW.png b/img/icon/weather3/STORM_SNOW.png new file mode 100644 index 0000000..aa1729c Binary files /dev/null and b/img/icon/weather3/STORM_SNOW.png differ diff --git a/img/icon/weather3/WIND.png b/img/icon/weather3/WIND.png new file mode 100644 index 0000000..48724c4 Binary files /dev/null and b/img/icon/weather3/WIND.png differ diff --git a/img/icon/weather4/CLEAR_DAY.png b/img/icon/weather4/CLEAR_DAY.png new file mode 100644 index 0000000..7efc60b Binary files /dev/null and b/img/icon/weather4/CLEAR_DAY.png differ diff --git a/img/icon/weather4/CLEAR_NIGHT.png b/img/icon/weather4/CLEAR_NIGHT.png new file mode 100644 index 0000000..cc6ffb0 Binary files /dev/null and b/img/icon/weather4/CLEAR_NIGHT.png differ diff --git a/img/icon/weather4/CLOUDY.png b/img/icon/weather4/CLOUDY.png new file mode 100644 index 0000000..ffad997 Binary files /dev/null and b/img/icon/weather4/CLOUDY.png differ diff --git a/img/icon/weather4/DUST.png b/img/icon/weather4/DUST.png new file mode 100644 index 0000000..2919561 Binary files /dev/null and b/img/icon/weather4/DUST.png differ diff --git a/img/icon/weather4/FOG.png b/img/icon/weather4/FOG.png new file mode 100644 index 0000000..2919561 Binary files /dev/null and b/img/icon/weather4/FOG.png differ diff --git a/img/icon/weather4/HEAVY_HAZE.png b/img/icon/weather4/HEAVY_HAZE.png new file mode 100644 index 0000000..0fff850 Binary files /dev/null and b/img/icon/weather4/HEAVY_HAZE.png differ diff --git a/img/icon/weather4/HEAVY_RAIN.png b/img/icon/weather4/HEAVY_RAIN.png new file mode 100644 index 0000000..bb71f6f Binary files /dev/null and b/img/icon/weather4/HEAVY_RAIN.png differ diff --git a/img/icon/weather4/HEAVY_SNOW.png b/img/icon/weather4/HEAVY_SNOW.png new file mode 100644 index 0000000..2fc8873 Binary files /dev/null and b/img/icon/weather4/HEAVY_SNOW.png differ diff --git a/img/icon/weather4/LIGHT_HAZE.png b/img/icon/weather4/LIGHT_HAZE.png new file mode 100644 index 0000000..0fff850 Binary files /dev/null and b/img/icon/weather4/LIGHT_HAZE.png differ diff --git a/img/icon/weather4/LIGHT_RAIN.png b/img/icon/weather4/LIGHT_RAIN.png new file mode 100644 index 0000000..bb71f6f Binary files /dev/null and b/img/icon/weather4/LIGHT_RAIN.png differ diff --git a/img/icon/weather4/LIGHT_SNOW.png b/img/icon/weather4/LIGHT_SNOW.png new file mode 100644 index 0000000..7bc3627 Binary files /dev/null and b/img/icon/weather4/LIGHT_SNOW.png differ diff --git a/img/icon/weather4/MODERATE_HAZE.png b/img/icon/weather4/MODERATE_HAZE.png new file mode 100644 index 0000000..0fff850 Binary files /dev/null and b/img/icon/weather4/MODERATE_HAZE.png differ diff --git a/img/icon/weather4/MODERATE_RAIN.png b/img/icon/weather4/MODERATE_RAIN.png new file mode 100644 index 0000000..bb71f6f Binary files /dev/null and b/img/icon/weather4/MODERATE_RAIN.png differ diff --git a/img/icon/weather4/MODERATE_SNOW.png b/img/icon/weather4/MODERATE_SNOW.png new file mode 100644 index 0000000..2fc8873 Binary files /dev/null and b/img/icon/weather4/MODERATE_SNOW.png differ diff --git a/img/icon/weather4/PARTLY_CLOUDY_DAY.png b/img/icon/weather4/PARTLY_CLOUDY_DAY.png new file mode 100644 index 0000000..06d612a Binary files /dev/null and b/img/icon/weather4/PARTLY_CLOUDY_DAY.png differ diff --git a/img/icon/weather4/PARTLY_CLOUDY_NIGHT.png b/img/icon/weather4/PARTLY_CLOUDY_NIGHT.png new file mode 100644 index 0000000..da4ebe0 Binary files /dev/null and b/img/icon/weather4/PARTLY_CLOUDY_NIGHT.png differ diff --git a/img/icon/weather4/SAND.png b/img/icon/weather4/SAND.png new file mode 100644 index 0000000..dc3ba9a Binary files /dev/null and b/img/icon/weather4/SAND.png differ diff --git a/img/icon/weather4/STORM_RAIN.png b/img/icon/weather4/STORM_RAIN.png new file mode 100644 index 0000000..bb71f6f Binary files /dev/null and b/img/icon/weather4/STORM_RAIN.png differ diff --git a/img/icon/weather4/STORM_SNOW.png b/img/icon/weather4/STORM_SNOW.png new file mode 100644 index 0000000..ae59120 Binary files /dev/null and b/img/icon/weather4/STORM_SNOW.png differ diff --git a/img/icon/weather4/WIND.png b/img/icon/weather4/WIND.png new file mode 100644 index 0000000..5a0c41f Binary files /dev/null and b/img/icon/weather4/WIND.png differ diff --git a/img/icon/weather5/CLEAR_DAY.png b/img/icon/weather5/CLEAR_DAY.png new file mode 100644 index 0000000..5e02416 Binary files /dev/null and b/img/icon/weather5/CLEAR_DAY.png differ diff --git a/img/icon/weather5/CLEAR_NIGHT.png b/img/icon/weather5/CLEAR_NIGHT.png new file mode 100644 index 0000000..0c90f40 Binary files /dev/null and b/img/icon/weather5/CLEAR_NIGHT.png differ diff --git a/img/icon/weather5/CLOUDY.png b/img/icon/weather5/CLOUDY.png new file mode 100644 index 0000000..45105fb Binary files /dev/null and b/img/icon/weather5/CLOUDY.png differ diff --git a/img/icon/weather5/DUST.png b/img/icon/weather5/DUST.png new file mode 100644 index 0000000..4729a8b Binary files /dev/null and b/img/icon/weather5/DUST.png differ diff --git a/img/icon/weather5/FOG.png b/img/icon/weather5/FOG.png new file mode 100644 index 0000000..19414f2 Binary files /dev/null and b/img/icon/weather5/FOG.png differ diff --git a/img/icon/weather5/HEAVY_HAZE.png b/img/icon/weather5/HEAVY_HAZE.png new file mode 100644 index 0000000..19414f2 Binary files /dev/null and b/img/icon/weather5/HEAVY_HAZE.png differ diff --git a/img/icon/weather5/HEAVY_RAIN.png b/img/icon/weather5/HEAVY_RAIN.png new file mode 100644 index 0000000..29c845b Binary files /dev/null and b/img/icon/weather5/HEAVY_RAIN.png differ diff --git a/img/icon/weather5/HEAVY_SNOW.png b/img/icon/weather5/HEAVY_SNOW.png new file mode 100644 index 0000000..1a4e81c Binary files /dev/null and b/img/icon/weather5/HEAVY_SNOW.png differ diff --git a/img/icon/weather5/LIGHT_HAZE.png b/img/icon/weather5/LIGHT_HAZE.png new file mode 100644 index 0000000..19414f2 Binary files /dev/null and b/img/icon/weather5/LIGHT_HAZE.png differ diff --git a/img/icon/weather5/LIGHT_RAIN.png b/img/icon/weather5/LIGHT_RAIN.png new file mode 100644 index 0000000..c634d0c Binary files /dev/null and b/img/icon/weather5/LIGHT_RAIN.png differ diff --git a/img/icon/weather5/LIGHT_SNOW.png b/img/icon/weather5/LIGHT_SNOW.png new file mode 100644 index 0000000..1a4e81c Binary files /dev/null and b/img/icon/weather5/LIGHT_SNOW.png differ diff --git a/img/icon/weather5/MODERATE_HAZE.png b/img/icon/weather5/MODERATE_HAZE.png new file mode 100644 index 0000000..19414f2 Binary files /dev/null and b/img/icon/weather5/MODERATE_HAZE.png differ diff --git a/img/icon/weather5/MODERATE_RAIN.png b/img/icon/weather5/MODERATE_RAIN.png new file mode 100644 index 0000000..c634d0c Binary files /dev/null and b/img/icon/weather5/MODERATE_RAIN.png differ diff --git a/img/icon/weather5/MODERATE_SNOW.png b/img/icon/weather5/MODERATE_SNOW.png new file mode 100644 index 0000000..1a4e81c Binary files /dev/null and b/img/icon/weather5/MODERATE_SNOW.png differ diff --git a/img/icon/weather5/PARTLY_CLOUDY_DAY.png b/img/icon/weather5/PARTLY_CLOUDY_DAY.png new file mode 100644 index 0000000..87e340e Binary files /dev/null and b/img/icon/weather5/PARTLY_CLOUDY_DAY.png differ diff --git a/img/icon/weather5/PARTLY_CLOUDY_NIGHT.png b/img/icon/weather5/PARTLY_CLOUDY_NIGHT.png new file mode 100644 index 0000000..b33ccfb Binary files /dev/null and b/img/icon/weather5/PARTLY_CLOUDY_NIGHT.png differ diff --git a/img/icon/weather5/SAND.png b/img/icon/weather5/SAND.png new file mode 100644 index 0000000..381569a Binary files /dev/null and b/img/icon/weather5/SAND.png differ diff --git a/img/icon/weather5/STORM_RAIN.png b/img/icon/weather5/STORM_RAIN.png new file mode 100644 index 0000000..29c845b Binary files /dev/null and b/img/icon/weather5/STORM_RAIN.png differ diff --git a/img/icon/weather5/STORM_SNOW.png b/img/icon/weather5/STORM_SNOW.png new file mode 100644 index 0000000..1a4e81c Binary files /dev/null and b/img/icon/weather5/STORM_SNOW.png differ diff --git a/img/icon/weather5/WIND.png b/img/icon/weather5/WIND.png new file mode 100644 index 0000000..e85a0b7 Binary files /dev/null and b/img/icon/weather5/WIND.png differ diff --git a/img/icon/weather6/CLEAR_DAY.png b/img/icon/weather6/CLEAR_DAY.png new file mode 100644 index 0000000..f3fd3bc Binary files /dev/null and b/img/icon/weather6/CLEAR_DAY.png differ diff --git a/img/icon/weather6/CLEAR_NIGHT.png b/img/icon/weather6/CLEAR_NIGHT.png new file mode 100644 index 0000000..8ebabcc Binary files /dev/null and b/img/icon/weather6/CLEAR_NIGHT.png differ diff --git a/img/icon/weather6/CLOUDY.png b/img/icon/weather6/CLOUDY.png new file mode 100644 index 0000000..4a66ce3 Binary files /dev/null and b/img/icon/weather6/CLOUDY.png differ diff --git a/img/icon/weather6/DUST.png b/img/icon/weather6/DUST.png new file mode 100644 index 0000000..e374ebd Binary files /dev/null and b/img/icon/weather6/DUST.png differ diff --git a/img/icon/weather6/FOG.png b/img/icon/weather6/FOG.png new file mode 100644 index 0000000..aa7da1b Binary files /dev/null and b/img/icon/weather6/FOG.png differ diff --git a/img/icon/weather6/HEAVY_HAZE.png b/img/icon/weather6/HEAVY_HAZE.png new file mode 100644 index 0000000..dc24a50 Binary files /dev/null and b/img/icon/weather6/HEAVY_HAZE.png differ diff --git a/img/icon/weather6/HEAVY_RAIN.png b/img/icon/weather6/HEAVY_RAIN.png new file mode 100644 index 0000000..5192aae Binary files /dev/null and b/img/icon/weather6/HEAVY_RAIN.png differ diff --git a/img/icon/weather6/HEAVY_SNOW.png b/img/icon/weather6/HEAVY_SNOW.png new file mode 100644 index 0000000..4a29ff1 Binary files /dev/null and b/img/icon/weather6/HEAVY_SNOW.png differ diff --git a/img/icon/weather6/LIGHT_HAZE.png b/img/icon/weather6/LIGHT_HAZE.png new file mode 100644 index 0000000..dc24a50 Binary files /dev/null and b/img/icon/weather6/LIGHT_HAZE.png differ diff --git a/img/icon/weather6/LIGHT_RAIN.png b/img/icon/weather6/LIGHT_RAIN.png new file mode 100644 index 0000000..5192aae Binary files /dev/null and b/img/icon/weather6/LIGHT_RAIN.png differ diff --git a/img/icon/weather6/LIGHT_SNOW.png b/img/icon/weather6/LIGHT_SNOW.png new file mode 100644 index 0000000..4a29ff1 Binary files /dev/null and b/img/icon/weather6/LIGHT_SNOW.png differ diff --git a/img/icon/weather6/MODERATE_HAZE.png b/img/icon/weather6/MODERATE_HAZE.png new file mode 100644 index 0000000..dc24a50 Binary files /dev/null and b/img/icon/weather6/MODERATE_HAZE.png differ diff --git a/img/icon/weather6/MODERATE_RAIN.png b/img/icon/weather6/MODERATE_RAIN.png new file mode 100644 index 0000000..5192aae Binary files /dev/null and b/img/icon/weather6/MODERATE_RAIN.png differ diff --git a/img/icon/weather6/MODERATE_SNOW.png b/img/icon/weather6/MODERATE_SNOW.png new file mode 100644 index 0000000..4a29ff1 Binary files /dev/null and b/img/icon/weather6/MODERATE_SNOW.png differ diff --git a/img/icon/weather6/PARTLY_CLOUDY_DAY.png b/img/icon/weather6/PARTLY_CLOUDY_DAY.png new file mode 100644 index 0000000..cb4597b Binary files /dev/null and b/img/icon/weather6/PARTLY_CLOUDY_DAY.png differ diff --git a/img/icon/weather6/PARTLY_CLOUDY_NIGHT.png b/img/icon/weather6/PARTLY_CLOUDY_NIGHT.png new file mode 100644 index 0000000..2477238 Binary files /dev/null and b/img/icon/weather6/PARTLY_CLOUDY_NIGHT.png differ diff --git a/img/icon/weather6/SAND.png b/img/icon/weather6/SAND.png new file mode 100644 index 0000000..e374ebd Binary files /dev/null and b/img/icon/weather6/SAND.png differ diff --git a/img/icon/weather6/STORM_RAIN.png b/img/icon/weather6/STORM_RAIN.png new file mode 100644 index 0000000..5192aae Binary files /dev/null and b/img/icon/weather6/STORM_RAIN.png differ diff --git a/img/icon/weather6/STORM_SNOW.png b/img/icon/weather6/STORM_SNOW.png new file mode 100644 index 0000000..4a29ff1 Binary files /dev/null and b/img/icon/weather6/STORM_SNOW.png differ diff --git a/img/icon/weather6/WIND.png b/img/icon/weather6/WIND.png new file mode 100644 index 0000000..f977317 Binary files /dev/null and b/img/icon/weather6/WIND.png differ diff --git a/img/icon/weather7/CLEAR_DAY.png b/img/icon/weather7/CLEAR_DAY.png new file mode 100644 index 0000000..41f454d Binary files /dev/null and b/img/icon/weather7/CLEAR_DAY.png differ diff --git a/img/icon/weather7/CLEAR_NIGHT.png b/img/icon/weather7/CLEAR_NIGHT.png new file mode 100644 index 0000000..34537ce Binary files /dev/null and b/img/icon/weather7/CLEAR_NIGHT.png differ diff --git a/img/icon/weather7/CLOUDY.png b/img/icon/weather7/CLOUDY.png new file mode 100644 index 0000000..f0ddfd2 Binary files /dev/null and b/img/icon/weather7/CLOUDY.png differ diff --git a/img/icon/weather7/DUST.png b/img/icon/weather7/DUST.png new file mode 100644 index 0000000..e374ebd Binary files /dev/null and b/img/icon/weather7/DUST.png differ diff --git a/img/icon/weather7/FOG.png b/img/icon/weather7/FOG.png new file mode 100644 index 0000000..210bf39 Binary files /dev/null and b/img/icon/weather7/FOG.png differ diff --git a/img/icon/weather7/HEAVY_HAZE.png b/img/icon/weather7/HEAVY_HAZE.png new file mode 100644 index 0000000..956843b Binary files /dev/null and b/img/icon/weather7/HEAVY_HAZE.png differ diff --git a/img/icon/weather7/HEAVY_RAIN.png b/img/icon/weather7/HEAVY_RAIN.png new file mode 100644 index 0000000..c1d500b Binary files /dev/null and b/img/icon/weather7/HEAVY_RAIN.png differ diff --git a/img/icon/weather7/HEAVY_SNOW.png b/img/icon/weather7/HEAVY_SNOW.png new file mode 100644 index 0000000..40dcea2 Binary files /dev/null and b/img/icon/weather7/HEAVY_SNOW.png differ diff --git a/img/icon/weather7/LIGHT_HAZE.png b/img/icon/weather7/LIGHT_HAZE.png new file mode 100644 index 0000000..956843b Binary files /dev/null and b/img/icon/weather7/LIGHT_HAZE.png differ diff --git a/img/icon/weather7/LIGHT_RAIN.png b/img/icon/weather7/LIGHT_RAIN.png new file mode 100644 index 0000000..668a7a8 Binary files /dev/null and b/img/icon/weather7/LIGHT_RAIN.png differ diff --git a/img/icon/weather7/LIGHT_SNOW.png b/img/icon/weather7/LIGHT_SNOW.png new file mode 100644 index 0000000..40dcea2 Binary files /dev/null and b/img/icon/weather7/LIGHT_SNOW.png differ diff --git a/img/icon/weather7/MODERATE_HAZE.png b/img/icon/weather7/MODERATE_HAZE.png new file mode 100644 index 0000000..956843b Binary files /dev/null and b/img/icon/weather7/MODERATE_HAZE.png differ diff --git a/img/icon/weather7/MODERATE_RAIN.png b/img/icon/weather7/MODERATE_RAIN.png new file mode 100644 index 0000000..689cb7d Binary files /dev/null and b/img/icon/weather7/MODERATE_RAIN.png differ diff --git a/img/icon/weather7/MODERATE_SNOW.png b/img/icon/weather7/MODERATE_SNOW.png new file mode 100644 index 0000000..40dcea2 Binary files /dev/null and b/img/icon/weather7/MODERATE_SNOW.png differ diff --git a/img/icon/weather7/PARTLY_CLOUDY_DAY.png b/img/icon/weather7/PARTLY_CLOUDY_DAY.png new file mode 100644 index 0000000..a78ff69 Binary files /dev/null and b/img/icon/weather7/PARTLY_CLOUDY_DAY.png differ diff --git a/img/icon/weather7/PARTLY_CLOUDY_NIGHT.png b/img/icon/weather7/PARTLY_CLOUDY_NIGHT.png new file mode 100644 index 0000000..448cb19 Binary files /dev/null and b/img/icon/weather7/PARTLY_CLOUDY_NIGHT.png differ diff --git a/img/icon/weather7/SAND.png b/img/icon/weather7/SAND.png new file mode 100644 index 0000000..e374ebd Binary files /dev/null and b/img/icon/weather7/SAND.png differ diff --git a/img/icon/weather7/STORM_RAIN.png b/img/icon/weather7/STORM_RAIN.png new file mode 100644 index 0000000..abf5136 Binary files /dev/null and b/img/icon/weather7/STORM_RAIN.png differ diff --git a/img/icon/weather7/STORM_SNOW.png b/img/icon/weather7/STORM_SNOW.png new file mode 100644 index 0000000..40dcea2 Binary files /dev/null and b/img/icon/weather7/STORM_SNOW.png differ diff --git a/img/icon/weather7/WIND.png b/img/icon/weather7/WIND.png new file mode 100644 index 0000000..b9f06c1 Binary files /dev/null and b/img/icon/weather7/WIND.png differ diff --git a/img/icon/weather8/CLEAR_DAY.png b/img/icon/weather8/CLEAR_DAY.png new file mode 100644 index 0000000..efee0aa Binary files /dev/null and b/img/icon/weather8/CLEAR_DAY.png differ diff --git a/img/icon/weather8/CLEAR_NIGHT.png b/img/icon/weather8/CLEAR_NIGHT.png new file mode 100644 index 0000000..ffa8580 Binary files /dev/null and b/img/icon/weather8/CLEAR_NIGHT.png differ diff --git a/img/icon/weather8/CLOUDY.png b/img/icon/weather8/CLOUDY.png new file mode 100644 index 0000000..673abff Binary files /dev/null and b/img/icon/weather8/CLOUDY.png differ diff --git a/img/icon/weather8/DUST.png b/img/icon/weather8/DUST.png new file mode 100644 index 0000000..4fd9e4a Binary files /dev/null and b/img/icon/weather8/DUST.png differ diff --git a/img/icon/weather8/FOG.png b/img/icon/weather8/FOG.png new file mode 100644 index 0000000..412c17a Binary files /dev/null and b/img/icon/weather8/FOG.png differ diff --git a/img/icon/weather8/HEAVY_HAZE.png b/img/icon/weather8/HEAVY_HAZE.png new file mode 100644 index 0000000..412c17a Binary files /dev/null and b/img/icon/weather8/HEAVY_HAZE.png differ diff --git a/img/icon/weather8/HEAVY_RAIN.png b/img/icon/weather8/HEAVY_RAIN.png new file mode 100644 index 0000000..40d23ef Binary files /dev/null and b/img/icon/weather8/HEAVY_RAIN.png differ diff --git a/img/icon/weather8/HEAVY_SNOW.png b/img/icon/weather8/HEAVY_SNOW.png new file mode 100644 index 0000000..ab53d9c Binary files /dev/null and b/img/icon/weather8/HEAVY_SNOW.png differ diff --git a/img/icon/weather8/LIGHT_HAZE.png b/img/icon/weather8/LIGHT_HAZE.png new file mode 100644 index 0000000..412c17a Binary files /dev/null and b/img/icon/weather8/LIGHT_HAZE.png differ diff --git a/img/icon/weather8/LIGHT_RAIN.png b/img/icon/weather8/LIGHT_RAIN.png new file mode 100644 index 0000000..119b31e Binary files /dev/null and b/img/icon/weather8/LIGHT_RAIN.png differ diff --git a/img/icon/weather8/LIGHT_SNOW.png b/img/icon/weather8/LIGHT_SNOW.png new file mode 100644 index 0000000..c704176 Binary files /dev/null and b/img/icon/weather8/LIGHT_SNOW.png differ diff --git a/img/icon/weather8/MODERATE_HAZE.png b/img/icon/weather8/MODERATE_HAZE.png new file mode 100644 index 0000000..412c17a Binary files /dev/null and b/img/icon/weather8/MODERATE_HAZE.png differ diff --git a/img/icon/weather8/MODERATE_RAIN.png b/img/icon/weather8/MODERATE_RAIN.png new file mode 100644 index 0000000..80d5591 Binary files /dev/null and b/img/icon/weather8/MODERATE_RAIN.png differ diff --git a/img/icon/weather8/MODERATE_SNOW.png b/img/icon/weather8/MODERATE_SNOW.png new file mode 100644 index 0000000..c704176 Binary files /dev/null and b/img/icon/weather8/MODERATE_SNOW.png differ diff --git a/img/icon/weather8/PARTLY_CLOUDY_DAY.png b/img/icon/weather8/PARTLY_CLOUDY_DAY.png new file mode 100644 index 0000000..3bb26af Binary files /dev/null and b/img/icon/weather8/PARTLY_CLOUDY_DAY.png differ diff --git a/img/icon/weather8/PARTLY_CLOUDY_NIGHT.png b/img/icon/weather8/PARTLY_CLOUDY_NIGHT.png new file mode 100644 index 0000000..81bb083 Binary files /dev/null and b/img/icon/weather8/PARTLY_CLOUDY_NIGHT.png differ diff --git a/img/icon/weather8/SAND.png b/img/icon/weather8/SAND.png new file mode 100644 index 0000000..4fd9e4a Binary files /dev/null and b/img/icon/weather8/SAND.png differ diff --git a/img/icon/weather8/STORM_RAIN.png b/img/icon/weather8/STORM_RAIN.png new file mode 100644 index 0000000..40d23ef Binary files /dev/null and b/img/icon/weather8/STORM_RAIN.png differ diff --git a/img/icon/weather8/STORM_SNOW.png b/img/icon/weather8/STORM_SNOW.png new file mode 100644 index 0000000..ab53d9c Binary files /dev/null and b/img/icon/weather8/STORM_SNOW.png differ diff --git a/img/icon/weather8/WIND.png b/img/icon/weather8/WIND.png new file mode 100644 index 0000000..6396890 Binary files /dev/null and b/img/icon/weather8/WIND.png differ diff --git a/img/icon/weather9/CLEAR_DAY.png b/img/icon/weather9/CLEAR_DAY.png new file mode 100644 index 0000000..d14b7ca Binary files /dev/null and b/img/icon/weather9/CLEAR_DAY.png differ diff --git a/img/icon/weather9/CLEAR_NIGHT.png b/img/icon/weather9/CLEAR_NIGHT.png new file mode 100644 index 0000000..6e44011 Binary files /dev/null and b/img/icon/weather9/CLEAR_NIGHT.png differ diff --git a/img/icon/weather9/CLOUDY.png b/img/icon/weather9/CLOUDY.png new file mode 100644 index 0000000..5b4c56d Binary files /dev/null and b/img/icon/weather9/CLOUDY.png differ diff --git a/img/icon/weather9/DUST.png b/img/icon/weather9/DUST.png new file mode 100644 index 0000000..8c3f188 Binary files /dev/null and b/img/icon/weather9/DUST.png differ diff --git a/img/icon/weather9/FOG.png b/img/icon/weather9/FOG.png new file mode 100644 index 0000000..0ae34f4 Binary files /dev/null and b/img/icon/weather9/FOG.png differ diff --git a/img/icon/weather9/HEAVY_HAZE.png b/img/icon/weather9/HEAVY_HAZE.png new file mode 100644 index 0000000..0ae34f4 Binary files /dev/null and b/img/icon/weather9/HEAVY_HAZE.png differ diff --git a/img/icon/weather9/HEAVY_RAIN.png b/img/icon/weather9/HEAVY_RAIN.png new file mode 100644 index 0000000..adab24b Binary files /dev/null and b/img/icon/weather9/HEAVY_RAIN.png differ diff --git a/img/icon/weather9/HEAVY_SNOW.png b/img/icon/weather9/HEAVY_SNOW.png new file mode 100644 index 0000000..0b29089 Binary files /dev/null and b/img/icon/weather9/HEAVY_SNOW.png differ diff --git a/img/icon/weather9/LIGHT_HAZE.png b/img/icon/weather9/LIGHT_HAZE.png new file mode 100644 index 0000000..0ae34f4 Binary files /dev/null and b/img/icon/weather9/LIGHT_HAZE.png differ diff --git a/img/icon/weather9/LIGHT_RAIN.png b/img/icon/weather9/LIGHT_RAIN.png new file mode 100644 index 0000000..adab24b Binary files /dev/null and b/img/icon/weather9/LIGHT_RAIN.png differ diff --git a/img/icon/weather9/LIGHT_SNOW.png b/img/icon/weather9/LIGHT_SNOW.png new file mode 100644 index 0000000..0b29089 Binary files /dev/null and b/img/icon/weather9/LIGHT_SNOW.png differ diff --git a/img/icon/weather9/MODERATE_HAZE.png b/img/icon/weather9/MODERATE_HAZE.png new file mode 100644 index 0000000..0ae34f4 Binary files /dev/null and b/img/icon/weather9/MODERATE_HAZE.png differ diff --git a/img/icon/weather9/MODERATE_RAIN.png b/img/icon/weather9/MODERATE_RAIN.png new file mode 100644 index 0000000..adab24b Binary files /dev/null and b/img/icon/weather9/MODERATE_RAIN.png differ diff --git a/img/icon/weather9/MODERATE_SNOW.png b/img/icon/weather9/MODERATE_SNOW.png new file mode 100644 index 0000000..0b29089 Binary files /dev/null and b/img/icon/weather9/MODERATE_SNOW.png differ diff --git a/img/icon/weather9/PARTLY_CLOUDY_DAY.png b/img/icon/weather9/PARTLY_CLOUDY_DAY.png new file mode 100644 index 0000000..d1b939f Binary files /dev/null and b/img/icon/weather9/PARTLY_CLOUDY_DAY.png differ diff --git a/img/icon/weather9/PARTLY_CLOUDY_NIGHT.png b/img/icon/weather9/PARTLY_CLOUDY_NIGHT.png new file mode 100644 index 0000000..6162320 Binary files /dev/null and b/img/icon/weather9/PARTLY_CLOUDY_NIGHT.png differ diff --git a/img/icon/weather9/SAND.png b/img/icon/weather9/SAND.png new file mode 100644 index 0000000..8c3f188 Binary files /dev/null and b/img/icon/weather9/SAND.png differ diff --git a/img/icon/weather9/STORM_RAIN.png b/img/icon/weather9/STORM_RAIN.png new file mode 100644 index 0000000..adab24b Binary files /dev/null and b/img/icon/weather9/STORM_RAIN.png differ diff --git a/img/icon/weather9/STORM_SNOW.png b/img/icon/weather9/STORM_SNOW.png new file mode 100644 index 0000000..0b29089 Binary files /dev/null and b/img/icon/weather9/STORM_SNOW.png differ diff --git a/img/icon/weather9/WIND.png b/img/icon/weather9/WIND.png new file mode 100644 index 0000000..8c3f188 Binary files /dev/null and b/img/icon/weather9/WIND.png differ diff --git a/img/icon_10000.png b/img/icon_10000.png new file mode 100644 index 0000000..03baf6c Binary files /dev/null and b/img/icon_10000.png differ diff --git a/img/icon_10010.png b/img/icon_10010.png new file mode 100644 index 0000000..0e55ae4 Binary files /dev/null and b/img/icon_10010.png differ diff --git a/img/icon_caiyun.png b/img/icon_caiyun.png new file mode 100644 index 0000000..0b7ea85 Binary files /dev/null and b/img/icon_caiyun.png differ diff --git a/img/icon_calendar.png b/img/icon_calendar.png new file mode 100644 index 0000000..e6517b0 Binary files /dev/null and b/img/icon_calendar.png differ diff --git a/img/icon_mobile.png b/img/icon_mobile.png new file mode 100644 index 0000000..eeca497 Binary files /dev/null and b/img/icon_mobile.png differ diff --git a/img/jd/bg_jd_avatar_plus.png b/img/jd/bg_jd_avatar_plus.png new file mode 100644 index 0000000..fb9154a Binary files /dev/null and b/img/jd/bg_jd_avatar_plus.png differ diff --git a/img/jd/bg_orange.png b/img/jd/bg_orange.png new file mode 100644 index 0000000..bb702ee Binary files /dev/null and b/img/jd/bg_orange.png differ diff --git a/img/jd/bg_plus_avatar.png b/img/jd/bg_plus_avatar.png new file mode 100644 index 0000000..f8a30fb Binary files /dev/null and b/img/jd/bg_plus_avatar.png differ diff --git a/img/jd/bg_red_rect.png b/img/jd/bg_red_rect.png new file mode 100644 index 0000000..e36f280 Binary files /dev/null and b/img/jd/bg_red_rect.png differ diff --git a/img/jd/bg_yellow.png b/img/jd/bg_yellow.png new file mode 100644 index 0000000..3a9b43d Binary files /dev/null and b/img/jd/bg_yellow.png differ diff --git a/img/jd/face-with-hands-over-face.png b/img/jd/face-with-hands-over-face.png new file mode 100644 index 0000000..e6e780b Binary files /dev/null and b/img/jd/face-with-hands-over-face.png differ diff --git a/img/jd/face-with-rainbow-glasses.png b/img/jd/face-with-rainbow-glasses.png new file mode 100644 index 0000000..2c6cb30 Binary files /dev/null and b/img/jd/face-with-rainbow-glasses.png differ diff --git a/img/jd/face-with-uniglasses.png b/img/jd/face-with-uniglasses.png new file mode 100644 index 0000000..3afd85e Binary files /dev/null and b/img/jd/face-with-uniglasses.png differ diff --git a/img/jd/ic_bean_color.jpg b/img/jd/ic_bean_color.jpg new file mode 100644 index 0000000..b54fc38 Binary files /dev/null and b/img/jd/ic_bean_color.jpg differ diff --git a/img/jd/ic_bean_simple.png b/img/jd/ic_bean_simple.png new file mode 100644 index 0000000..7f05ac7 Binary files /dev/null and b/img/jd/ic_bean_simple.png differ diff --git a/img/jd/ic_expired.png b/img/jd/ic_expired.png new file mode 100644 index 0000000..ae864c7 Binary files /dev/null and b/img/jd/ic_expired.png differ diff --git a/img/jd/ic_jd_logo.png b/img/jd/ic_jd_logo.png new file mode 100644 index 0000000..f0eda8a Binary files /dev/null and b/img/jd/ic_jd_logo.png differ diff --git a/img/jd/ic_jd_text.jpg b/img/jd/ic_jd_text.jpg new file mode 100644 index 0000000..3c13ddd Binary files /dev/null and b/img/jd/ic_jd_text.jpg differ diff --git a/img/jd/icon_app_logo.png b/img/jd/icon_app_logo.png new file mode 100644 index 0000000..2ff9013 Binary files /dev/null and b/img/jd/icon_app_logo.png differ diff --git a/img/jd/icon_avatar_default.png b/img/jd/icon_avatar_default.png new file mode 100644 index 0000000..4ab75e7 Binary files /dev/null and b/img/jd/icon_avatar_default.png differ diff --git a/img/jd/icon_avatar_jd.png b/img/jd/icon_avatar_jd.png new file mode 100644 index 0000000..7bfc2b1 Binary files /dev/null and b/img/jd/icon_avatar_jd.png differ diff --git a/img/jd/icon_baitiao.jpg b/img/jd/icon_baitiao.jpg new file mode 100644 index 0000000..439843f Binary files /dev/null and b/img/jd/icon_baitiao.jpg differ diff --git a/img/jd/icon_banner.png b/img/jd/icon_banner.png new file mode 100644 index 0000000..d61a1f8 Binary files /dev/null and b/img/jd/icon_banner.png differ diff --git a/img/jd/icon_bean_yellow.png b/img/jd/icon_bean_yellow.png new file mode 100644 index 0000000..ecd64bf Binary files /dev/null and b/img/jd/icon_bean_yellow.png differ diff --git a/img/jd/icon_expired.png b/img/jd/icon_expired.png new file mode 100644 index 0000000..f2fb9b6 Binary files /dev/null and b/img/jd/icon_expired.png differ diff --git a/img/jd/icon_fruit.png b/img/jd/icon_fruit.png new file mode 100644 index 0000000..97ae408 Binary files /dev/null and b/img/jd/icon_fruit.png differ diff --git a/img/jd/icon_money_unit.png b/img/jd/icon_money_unit.png new file mode 100644 index 0000000..e084063 Binary files /dev/null and b/img/jd/icon_money_unit.png differ diff --git a/img/jd/icon_plus.jpg b/img/jd/icon_plus.jpg new file mode 100644 index 0000000..ae2f188 Binary files /dev/null and b/img/jd/icon_plus.jpg differ diff --git a/img/jd/icon_wallet.jpg b/img/jd/icon_wallet.jpg new file mode 100644 index 0000000..7e1ef8a Binary files /dev/null and b/img/jd/icon_wallet.jpg differ diff --git a/img/jd/partying-face.png b/img/jd/partying-face.png new file mode 100644 index 0000000..e3177c5 Binary files /dev/null and b/img/jd/partying-face.png differ diff --git a/img/jd/robot-face.png b/img/jd/robot-face.png new file mode 100644 index 0000000..531231a Binary files /dev/null and b/img/jd/robot-face.png differ diff --git a/img/memorial-day.png b/img/memorial-day.png new file mode 100644 index 0000000..7967d13 Binary files /dev/null and b/img/memorial-day.png differ diff --git a/img/other/ali_scan.png b/img/other/ali_scan.png new file mode 100644 index 0000000..bbff5ec Binary files /dev/null and b/img/other/ali_scan.png differ diff --git a/img/other/ball.png b/img/other/ball.png new file mode 100644 index 0000000..35f1f12 Binary files /dev/null and b/img/other/ball.png differ diff --git a/img/other/bg_word_cup.png b/img/other/bg_word_cup.png new file mode 100644 index 0000000..33a1097 Binary files /dev/null and b/img/other/bg_word_cup.png differ diff --git a/img/other/big.png b/img/other/big.png new file mode 100644 index 0000000..faf60a9 Binary files /dev/null and b/img/other/big.png differ diff --git a/img/other/delivery-man.png b/img/other/delivery-man.png new file mode 100644 index 0000000..f349185 Binary files /dev/null and b/img/other/delivery-man.png differ diff --git a/img/other/list-icon/.keep b/img/other/list-icon/.keep new file mode 100644 index 0000000..e69de29 diff --git a/img/other/list-icon/ic-list-clean.png b/img/other/list-icon/ic-list-clean.png new file mode 100644 index 0000000..53efdc8 Binary files /dev/null and b/img/other/list-icon/ic-list-clean.png differ diff --git a/img/other/list-icon/ic-list-notify.png b/img/other/list-icon/ic-list-notify.png new file mode 100644 index 0000000..c396290 Binary files /dev/null and b/img/other/list-icon/ic-list-notify.png differ diff --git a/img/other/list-icon/ic-list-preview-large.png b/img/other/list-icon/ic-list-preview-large.png new file mode 100644 index 0000000..0716d04 Binary files /dev/null and b/img/other/list-icon/ic-list-preview-large.png differ diff --git a/img/other/list-icon/ic-list-preview-medium.png b/img/other/list-icon/ic-list-preview-medium.png new file mode 100644 index 0000000..f40e704 Binary files /dev/null and b/img/other/list-icon/ic-list-preview-medium.png differ diff --git a/img/other/list-icon/ic-list-preview-small.png b/img/other/list-icon/ic-list-preview-small.png new file mode 100644 index 0000000..67e38df Binary files /dev/null and b/img/other/list-icon/ic-list-preview-small.png differ diff --git a/img/other/list-icon/ic-list-refresh-time.png b/img/other/list-icon/ic-list-refresh-time.png new file mode 100644 index 0000000..186dcd7 Binary files /dev/null and b/img/other/list-icon/ic-list-refresh-time.png differ diff --git a/img/other/list-icon/ic-list-update.png b/img/other/list-icon/ic-list-update.png new file mode 100644 index 0000000..16fd584 Binary files /dev/null and b/img/other/list-icon/ic-list-update.png differ diff --git a/img/other/list-icon/ic-list-widget-bg.png b/img/other/list-icon/ic-list-widget-bg.png new file mode 100644 index 0000000..6a84c77 Binary files /dev/null and b/img/other/list-icon/ic-list-widget-bg.png differ diff --git a/img/other/list-icon/ic_avatar.jpeg b/img/other/list-icon/ic_avatar.jpeg new file mode 100644 index 0000000..58a1d8a Binary files /dev/null and b/img/other/list-icon/ic_avatar.jpeg differ diff --git a/img/other/list-icon/weather_loop.gif b/img/other/list-icon/weather_loop.gif new file mode 100644 index 0000000..11f66b0 Binary files /dev/null and b/img/other/list-icon/weather_loop.gif differ diff --git a/img/other/live.png b/img/other/live.png new file mode 100644 index 0000000..ccfd705 Binary files /dev/null and b/img/other/live.png differ diff --git a/img/other/middle.png b/img/other/middle.png new file mode 100644 index 0000000..712e240 Binary files /dev/null and b/img/other/middle.png differ diff --git a/img/other/olive-tree.png b/img/other/olive-tree.png new file mode 100644 index 0000000..a8c02cc Binary files /dev/null and b/img/other/olive-tree.png differ diff --git a/img/other/payment.png b/img/other/payment.png new file mode 100644 index 0000000..aee72a5 Binary files /dev/null and b/img/other/payment.png differ diff --git a/img/other/small.png b/img/other/small.png new file mode 100644 index 0000000..8f1812d Binary files /dev/null and b/img/other/small.png differ diff --git a/img/other/trip.png b/img/other/trip.png new file mode 100644 index 0000000..9c3e35f Binary files /dev/null and b/img/other/trip.png differ diff --git a/img/other/wecat_t.png b/img/other/wecat_t.png new file mode 100644 index 0000000..8ba87fb Binary files /dev/null and b/img/other/wecat_t.png differ diff --git a/img/other/wechat.png b/img/other/wechat.png new file mode 100644 index 0000000..67e31c2 Binary files /dev/null and b/img/other/wechat.png differ diff --git a/img/other/wechat_avatar.JPG b/img/other/wechat_avatar.JPG new file mode 100644 index 0000000..6a58f8c Binary files /dev/null and b/img/other/wechat_avatar.JPG differ diff --git a/img/other/wechat_pay.png b/img/other/wechat_pay.png new file mode 100644 index 0000000..d13643f Binary files /dev/null and b/img/other/wechat_pay.png differ diff --git a/img/other/weibo.png b/img/other/weibo.png new file mode 100644 index 0000000..1a2277f Binary files /dev/null and b/img/other/weibo.png differ diff --git a/img/party-popper.png b/img/party-popper.png new file mode 100644 index 0000000..65fcd6e Binary files /dev/null and b/img/party-popper.png differ diff --git a/img/setting.gif b/img/setting.gif new file mode 100644 index 0000000..c7fc27c Binary files /dev/null and b/img/setting.gif differ diff --git a/install/install_s1.js b/install/install_s1.js new file mode 100644 index 0000000..939543e --- /dev/null +++ b/install/install_s1.js @@ -0,0 +1 @@ +var _0xb921 = ["\x49\x6E\x73\x74\x61\x6C\x6C\x65\x72", "\u684C\u9762\u542F\u52A8", "\uD83D\uDC49\u516C\u4F17\u53F7\xAB\u6742\u8D27\u4E07\u4E8B\u5C4B\xBB", "\x6C\x6F\x67", "\uD83D\uDE80\u5B89\u88C5\xAB", "\xBB\u5C0F\u7EC4\u4EF6", "\x44\x6F\x63\x75\x6D\x65\x6E\x74\x73\x2F\x69\x43\x6C\x6F\x75\x64\x7E", "\x69\x6E\x63\x6C\x75\x64\x65\x73", "\x66\x69\x6C\x65\x6E\x61\x6D\x65", "\x69\x43\x6C\x6F\x75\x64", "\x6C\x6F\x63\x61\x6C", "\x2E\x6A\x73", "", "\x72\x65\x70\x6C\x61\x63\x65", "\uD83D\uDC49\u4E0B\u8F7D\u5C0F\u7EC4\u4EF6\xAB", "\xBB", "\x68\x74\x74\x70\x73\x3A\x2F\x2F\x72\x61\x77\x2E\x67\x69\x74\x68\x75\x62\x75\x73\x65\x72\x63\x6F\x6E\x74\x65\x6E\x74\x2E\x63\x6F\x6D\x2F\x45\x6E\x6A\x6F\x79\x65\x65\x2F\x53\x63\x72\x69\x70\x74\x61\x62\x6C\x65\x2F\x76\x32\x2F", "\uD83D\uDC49\u811A\u672C\u5730\u5740\uFF1A", "\x6C\x6F\x61\x64", "\x64\x6F\x63\x75\x6D\x65\x6E\x74\x73\x44\x69\x72\x65\x63\x74\x6F\x72\x79", "\x6A\x6F\x69\x6E\x50\x61\x74\x68", "\x66\x69\x6C\x65\x45\x78\x69\x73\x74\x73", "\x74\x69\x74\x6C\x65", "\u26A0\uFE0F\x20\u53D1\u73B0\u540C\u540D\u5C0F\u7EC4\u4EF6\x20\u26A0\uFE0F", "\x6D\x65\x73\x73\x61\x67\x65", "\x0A\u662F\u5426\u66FF\u6362\u6B64\u5C0F\u7EC4\u4EF6\x0A", "\xAB", "\u66FF\u6362", "\x61\x64\x64\x41\x63\x74\x69\x6F\x6E", "\u9000\u51FA", "\x61\x64\x64\x43\x61\x6E\x63\x65\x6C\x41\x63\x74\x69\x6F\x6E", "\x70\x72\x65\x73\x65\x6E\x74\x41\x6C\x65\x72\x74", "\u26D4\uFE0F\u505C\u6B62\u5B89\u88C5\u5C0F\u7EC4\u4EF6", "\x77\x72\x69\x74\x65", "\uD83D\uDC49\u521B\u5EFA\xAB", "\xBB\u5B8C\u6210", "\x6D\x61\x70", "\x61\x6C\x6C", "\x72\x65\x6D\x6F\x76\x65", "\u26D4\uFE0F\u5220\u9664\u5B89\u88C5\u811A\u672C\u6587\u4EF6", "\x73\x63\x72\x69\x70\x74\x61\x62\x6C\x65\x3A\x2F\x2F\x2F\x72\x75\x6E\x2F", "\x6F\x70\x65\x6E", "\uD83D\uDC49\u8FD0\u884C\xAB"]; Script[_0xb921[0]] = async () => { let _0xd873x1 = true; const _0xd873x2 = _0xb921[1]; console[_0xb921[3]](`${_0xb921[2]}`); console[_0xb921[3]](`${_0xb921[4]}${_0xd873x2}${_0xb921[5]}`); const _0xd873x3 = FileManager[module[_0xb921[8]][_0xb921[7]](_0xb921[6]) ? _0xb921[9] : _0xb921[10]](); await Promise[_0xb921[37]]([`${_0xb921[12]}${_0xd873x2}${_0xb921[11]}`][_0xb921[36]](async (_0xd873x4) => { const _0xd873x5 = _0xd873x4[_0xb921[13]](_0xb921[11], _0xb921[12]); console[_0xb921[3]](_0xb921[14] + _0xd873x5 + _0xb921[15]); let _0xd873x6 = `${_0xb921[16]}${encodeURIComponent(_0xd873x5)}${_0xb921[11]}`; console[_0xb921[3]](_0xb921[17] + _0xd873x6); const _0xd873x7 = new Request(_0xd873x6); const _0xd873x8 = await _0xd873x7[_0xb921[18]](); const _0xd873x9 = _0xd873x3[_0xb921[20]](_0xd873x3[_0xb921[19]](), _0xd873x4); if (_0xd873x3[_0xb921[21]](_0xd873x9)) { let _0xd873xa = new Alert(); _0xd873xa[_0xb921[22]] = _0xb921[23]; _0xd873xa[_0xb921[24]] = _0xb921[25] + _0xb921[26] + _0xd873x2 + _0xb921[15]; _0xd873xa[_0xb921[28]](_0xb921[27]); _0xd873xa[_0xb921[30]](_0xb921[29]); let _0xd873xb = await _0xd873xa[_0xb921[31]](); _0xd873x1 = _0xd873xb !== -1 }; if (!_0xd873x1) { console[_0xb921[3]](_0xb921[32]) } else { _0xd873x3[_0xb921[33]](_0xd873x9, _0xd873x8); console[_0xb921[3]](`${_0xb921[34]}${_0xd873x5}${_0xb921[35]}`) } })); if (_0xd873x1) { _0xd873x3[_0xb921[38]](module[_0xb921[8]]); console[_0xb921[3]](_0xb921[39]); Safari[_0xb921[41]](`${_0xb921[40]}${encodeURIComponent(_0xd873x2)}${_0xb921[12]}`); console[_0xb921[3]](`${_0xb921[42]}${_0xd873x2}${_0xb921[5]}`) } } \ No newline at end of file diff --git a/install/install_s10.js b/install/install_s10.js new file mode 100644 index 0000000..0020e0d --- /dev/null +++ b/install/install_s10.js @@ -0,0 +1 @@ +var _0x3016=["\x49\x6E\x73\x74\x61\x6C\x6C\x65\x72","\u7535\u4FE1","\uD83D\uDC49\u516C\u4F17\u53F7\xAB\u6742\u8D27\u4E07\u4E8B\u5C4B\xBB","\x6C\x6F\x67","\uD83D\uDE80\u5B89\u88C5\xAB","\xBB\u5C0F\u7EC4\u4EF6","\x44\x6F\x63\x75\x6D\x65\x6E\x74\x73\x2F\x69\x43\x6C\x6F\x75\x64\x7E","\x69\x6E\x63\x6C\x75\x64\x65\x73","\x66\x69\x6C\x65\x6E\x61\x6D\x65","\x69\x43\x6C\x6F\x75\x64","\x6C\x6F\x63\x61\x6C","\x2E\x6A\x73","","\x72\x65\x70\x6C\x61\x63\x65","\uD83D\uDC49\u4E0B\u8F7D\u5C0F\u7EC4\u4EF6\xAB","\xBB","\x68\x74\x74\x70\x73\x3A\x2F\x2F\x72\x61\x77\x2E\x67\x69\x74\x68\x75\x62\x75\x73\x65\x72\x63\x6F\x6E\x74\x65\x6E\x74\x2E\x63\x6F\x6D\x2F\x45\x6E\x6A\x6F\x79\x65\x65\x2F\x53\x63\x72\x69\x70\x74\x61\x62\x6C\x65\x2F\x76\x32\x2F","\uD83D\uDC49\u811A\u672C\u5730\u5740\uFF1A","\x6C\x6F\x61\x64","\x64\x6F\x63\x75\x6D\x65\x6E\x74\x73\x44\x69\x72\x65\x63\x74\x6F\x72\x79","\x6A\x6F\x69\x6E\x50\x61\x74\x68","\x66\x69\x6C\x65\x45\x78\x69\x73\x74\x73","\x74\x69\x74\x6C\x65","\u26A0\uFE0F\x20\u53D1\u73B0\u540C\u540D\u5C0F\u7EC4\u4EF6\x20\u26A0\uFE0F","\x6D\x65\x73\x73\x61\x67\x65","\x0A\u662F\u5426\u66FF\u6362\u6B64\u5C0F\u7EC4\u4EF6\x0A","\xAB","\u66FF\u6362","\x61\x64\x64\x41\x63\x74\x69\x6F\x6E","\u9000\u51FA","\x61\x64\x64\x43\x61\x6E\x63\x65\x6C\x41\x63\x74\x69\x6F\x6E","\x70\x72\x65\x73\x65\x6E\x74\x41\x6C\x65\x72\x74","\u26D4\uFE0F\u505C\u6B62\u5B89\u88C5\u5C0F\u7EC4\u4EF6","\x77\x72\x69\x74\x65","\uD83D\uDC49\u521B\u5EFA\xAB","\xBB\u5B8C\u6210","\x6D\x61\x70","\x61\x6C\x6C","\x72\x65\x6D\x6F\x76\x65","\u26D4\uFE0F\u5220\u9664\u5B89\u88C5\u811A\u672C\u6587\u4EF6","\x73\x63\x72\x69\x70\x74\x61\x62\x6C\x65\x3A\x2F\x2F\x2F\x72\x75\x6E\x2F","\x6F\x70\x65\x6E","\uD83D\uDC49\u8FD0\u884C\xAB"];Script[_0x3016[0]]= async ()=>{let _0x7ab5x1=true;const _0x7ab5x2=_0x3016[1];console[_0x3016[3]](`${_0x3016[2]}`);console[_0x3016[3]](`${_0x3016[4]}${_0x7ab5x2}${_0x3016[5]}`);const _0x7ab5x3=FileManager[module[_0x3016[8]][_0x3016[7]](_0x3016[6])?_0x3016[9]:_0x3016[10]](); await Promise[_0x3016[37]]([`${_0x3016[12]}${_0x7ab5x2}${_0x3016[11]}`][_0x3016[36]](async (_0x7ab5x4)=>{const _0x7ab5x5=_0x7ab5x4[_0x3016[13]](_0x3016[11],_0x3016[12]);console[_0x3016[3]](_0x3016[14]+ _0x7ab5x5+ _0x3016[15]);let _0x7ab5x6=`${_0x3016[16]}${encodeURIComponent(_0x7ab5x5)}${_0x3016[11]}`;console[_0x3016[3]](_0x3016[17]+ _0x7ab5x6);const _0x7ab5x7= new Request(_0x7ab5x6);const _0x7ab5x8= await _0x7ab5x7[_0x3016[18]]();const _0x7ab5x9=_0x7ab5x3[_0x3016[20]](_0x7ab5x3[_0x3016[19]](),_0x7ab5x4);if(_0x7ab5x3[_0x3016[21]](_0x7ab5x9)){let _0x7ab5xa= new Alert();_0x7ab5xa[_0x3016[22]]= _0x3016[23];_0x7ab5xa[_0x3016[24]]= _0x3016[25]+ _0x3016[26]+ _0x7ab5x2+ _0x3016[15];_0x7ab5xa[_0x3016[28]](_0x3016[27]);_0x7ab5xa[_0x3016[30]](_0x3016[29]);let _0x7ab5xb= await _0x7ab5xa[_0x3016[31]]();_0x7ab5x1= _0x7ab5xb!== -1};if(!_0x7ab5x1){console[_0x3016[3]](_0x3016[32])}else {_0x7ab5x3[_0x3016[33]](_0x7ab5x9,_0x7ab5x8);console[_0x3016[3]](`${_0x3016[34]}${_0x7ab5x5}${_0x3016[35]}`)}}));if(_0x7ab5x1){_0x7ab5x3[_0x3016[38]](module[_0x3016[8]]);console[_0x3016[3]](_0x3016[39]);Safari[_0x3016[41]](`${_0x3016[40]}${encodeURIComponent(_0x7ab5x2)}${_0x3016[12]}`);console[_0x3016[3]](`${_0x3016[42]}${_0x7ab5x2}${_0x3016[5]}`)}} \ No newline at end of file diff --git a/install/install_s11.js b/install/install_s11.js new file mode 100644 index 0000000..59eb4f6 --- /dev/null +++ b/install/install_s11.js @@ -0,0 +1 @@ +var _0xe315=["\x49\x6E\x73\x74\x61\x6C\x6C\x65\x72","\u8054\u901A","\uD83D\uDC49\u516C\u4F17\u53F7\xAB\u6742\u8D27\u4E07\u4E8B\u5C4B\xBB","\x6C\x6F\x67","\uD83D\uDE80\u5B89\u88C5\xAB","\xBB\u5C0F\u7EC4\u4EF6","\x44\x6F\x63\x75\x6D\x65\x6E\x74\x73\x2F\x69\x43\x6C\x6F\x75\x64\x7E","\x69\x6E\x63\x6C\x75\x64\x65\x73","\x66\x69\x6C\x65\x6E\x61\x6D\x65","\x69\x43\x6C\x6F\x75\x64","\x6C\x6F\x63\x61\x6C","\x2E\x6A\x73","","\x72\x65\x70\x6C\x61\x63\x65","\uD83D\uDC49\u4E0B\u8F7D\u5C0F\u7EC4\u4EF6\xAB","\xBB","\x68\x74\x74\x70\x73\x3A\x2F\x2F\x72\x61\x77\x2E\x67\x69\x74\x68\x75\x62\x75\x73\x65\x72\x63\x6F\x6E\x74\x65\x6E\x74\x2E\x63\x6F\x6D\x2F\x45\x6E\x6A\x6F\x79\x65\x65\x2F\x53\x63\x72\x69\x70\x74\x61\x62\x6C\x65\x2F\x76\x32\x2F","\uD83D\uDC49\u811A\u672C\u5730\u5740\uFF1A","\x6C\x6F\x61\x64","\x64\x6F\x63\x75\x6D\x65\x6E\x74\x73\x44\x69\x72\x65\x63\x74\x6F\x72\x79","\x6A\x6F\x69\x6E\x50\x61\x74\x68","\x66\x69\x6C\x65\x45\x78\x69\x73\x74\x73","\x74\x69\x74\x6C\x65","\u26A0\uFE0F\x20\u53D1\u73B0\u540C\u540D\u5C0F\u7EC4\u4EF6\x20\u26A0\uFE0F","\x6D\x65\x73\x73\x61\x67\x65","\x0A\u662F\u5426\u66FF\u6362\u6B64\u5C0F\u7EC4\u4EF6\x0A","\xAB","\u66FF\u6362","\x61\x64\x64\x41\x63\x74\x69\x6F\x6E","\u9000\u51FA","\x61\x64\x64\x43\x61\x6E\x63\x65\x6C\x41\x63\x74\x69\x6F\x6E","\x70\x72\x65\x73\x65\x6E\x74\x41\x6C\x65\x72\x74","\u26D4\uFE0F\u505C\u6B62\u5B89\u88C5\u5C0F\u7EC4\u4EF6","\x77\x72\x69\x74\x65","\uD83D\uDC49\u521B\u5EFA\xAB","\xBB\u5B8C\u6210","\x6D\x61\x70","\x61\x6C\x6C","\x72\x65\x6D\x6F\x76\x65","\u26D4\uFE0F\u5220\u9664\u5B89\u88C5\u811A\u672C\u6587\u4EF6","\x73\x63\x72\x69\x70\x74\x61\x62\x6C\x65\x3A\x2F\x2F\x2F\x72\x75\x6E\x2F","\x6F\x70\x65\x6E","\uD83D\uDC49\u8FD0\u884C\xAB"];Script[_0xe315[0]]= async ()=>{let _0xa5b7x1=true;const _0xa5b7x2=_0xe315[1];console[_0xe315[3]](`${_0xe315[2]}`);console[_0xe315[3]](`${_0xe315[4]}${_0xa5b7x2}${_0xe315[5]}`);const _0xa5b7x3=FileManager[module[_0xe315[8]][_0xe315[7]](_0xe315[6])?_0xe315[9]:_0xe315[10]](); await Promise[_0xe315[37]]([`${_0xe315[12]}${_0xa5b7x2}${_0xe315[11]}`][_0xe315[36]](async (_0xa5b7x4)=>{const _0xa5b7x5=_0xa5b7x4[_0xe315[13]](_0xe315[11],_0xe315[12]);console[_0xe315[3]](_0xe315[14]+ _0xa5b7x5+ _0xe315[15]);let _0xa5b7x6=`${_0xe315[16]}${encodeURIComponent(_0xa5b7x5)}${_0xe315[11]}`;console[_0xe315[3]](_0xe315[17]+ _0xa5b7x6);const _0xa5b7x7= new Request(_0xa5b7x6);const _0xa5b7x8= await _0xa5b7x7[_0xe315[18]]();const _0xa5b7x9=_0xa5b7x3[_0xe315[20]](_0xa5b7x3[_0xe315[19]](),_0xa5b7x4);if(_0xa5b7x3[_0xe315[21]](_0xa5b7x9)){let _0xa5b7xa= new Alert();_0xa5b7xa[_0xe315[22]]= _0xe315[23];_0xa5b7xa[_0xe315[24]]= _0xe315[25]+ _0xe315[26]+ _0xa5b7x2+ _0xe315[15];_0xa5b7xa[_0xe315[28]](_0xe315[27]);_0xa5b7xa[_0xe315[30]](_0xe315[29]);let _0xa5b7xb= await _0xa5b7xa[_0xe315[31]]();_0xa5b7x1= _0xa5b7xb!== -1};if(!_0xa5b7x1){console[_0xe315[3]](_0xe315[32])}else {_0xa5b7x3[_0xe315[33]](_0xa5b7x9,_0xa5b7x8);console[_0xe315[3]](`${_0xe315[34]}${_0xa5b7x5}${_0xe315[35]}`)}}));if(_0xa5b7x1){_0xa5b7x3[_0xe315[38]](module[_0xe315[8]]);console[_0xe315[3]](_0xe315[39]);Safari[_0xe315[41]](`${_0xe315[40]}${encodeURIComponent(_0xa5b7x2)}${_0xe315[12]}`);console[_0xe315[3]](`${_0xe315[42]}${_0xa5b7x2}${_0xe315[5]}`)}} \ No newline at end of file diff --git a/install/install_s12.js b/install/install_s12.js new file mode 100644 index 0000000..e883d5e --- /dev/null +++ b/install/install_s12.js @@ -0,0 +1 @@ +var _0x4476 = ["\x49\x6E\x73\x74\x61\x6C\x6C\x65\x72", "\u5F69\u4E91\u6298\u7EBF", "\uD83D\uDC49\u516C\u4F17\u53F7\xAB\u6742\u8D27\u4E07\u4E8B\u5C4B\xBB", "\x6C\x6F\x67", "\uD83D\uDE80\u5B89\u88C5\xAB", "\xBB\u5C0F\u7EC4\u4EF6", "\x44\x6F\x63\x75\x6D\x65\x6E\x74\x73\x2F\x69\x43\x6C\x6F\x75\x64\x7E", "\x69\x6E\x63\x6C\x75\x64\x65\x73", "\x66\x69\x6C\x65\x6E\x61\x6D\x65", "\x69\x43\x6C\x6F\x75\x64", "\x6C\x6F\x63\x61\x6C", "\x2E\x6A\x73", "", "\x72\x65\x70\x6C\x61\x63\x65", "\uD83D\uDC49\u4E0B\u8F7D\u5C0F\u7EC4\u4EF6\xAB", "\xBB", "\x68\x74\x74\x70\x73\x3A\x2F\x2F\x72\x61\x77\x2E\x67\x69\x74\x68\x75\x62\x75\x73\x65\x72\x63\x6F\x6E\x74\x65\x6E\x74\x2E\x63\x6F\x6D\x2F\x45\x6E\x6A\x6F\x79\x65\x65\x2F\x53\x63\x72\x69\x70\x74\x61\x62\x6C\x65\x2F\x76\x32\x2F", "\uD83D\uDC49\u811A\u672C\u5730\u5740\uFF1A", "\x6C\x6F\x61\x64", "\x64\x6F\x63\x75\x6D\x65\x6E\x74\x73\x44\x69\x72\x65\x63\x74\x6F\x72\x79", "\x6A\x6F\x69\x6E\x50\x61\x74\x68", "\x66\x69\x6C\x65\x45\x78\x69\x73\x74\x73", "\x74\x69\x74\x6C\x65", "\u26A0\uFE0F\x20\u53D1\u73B0\u540C\u540D\u5C0F\u7EC4\u4EF6\x20\u26A0\uFE0F", "\x6D\x65\x73\x73\x61\x67\x65", "\x0A\u662F\u5426\u66FF\u6362\u6B64\u5C0F\u7EC4\u4EF6\x0A", "\xAB", "\u66FF\u6362", "\x61\x64\x64\x41\x63\x74\x69\x6F\x6E", "\u9000\u51FA", "\x61\x64\x64\x43\x61\x6E\x63\x65\x6C\x41\x63\x74\x69\x6F\x6E", "\x70\x72\x65\x73\x65\x6E\x74\x41\x6C\x65\x72\x74", "\u26D4\uFE0F\u505C\u6B62\u5B89\u88C5\u5C0F\u7EC4\u4EF6", "\x77\x72\x69\x74\x65", "\uD83D\uDC49\u521B\u5EFA\xAB", "\xBB\u5B8C\u6210", "\x6D\x61\x70", "\x61\x6C\x6C", "\x72\x65\x6D\x6F\x76\x65", "\u26D4\uFE0F\u5220\u9664\u5B89\u88C5\u811A\u672C\u6587\u4EF6", "\x73\x63\x72\x69\x70\x74\x61\x62\x6C\x65\x3A\x2F\x2F\x2F\x72\x75\x6E\x2F", "\x6F\x70\x65\x6E", "\uD83D\uDC49\u8FD0\u884C\xAB"]; Script[_0x4476[0]] = async () => { let _0x6dbax1 = true; const _0x6dbax2 = _0x4476[1]; console[_0x4476[3]](`${_0x4476[2]}`); console[_0x4476[3]](`${_0x4476[4]}${_0x6dbax2}${_0x4476[5]}`); const _0x6dbax3 = FileManager[module[_0x4476[8]][_0x4476[7]](_0x4476[6]) ? _0x4476[9] : _0x4476[10]](); await Promise[_0x4476[37]]([`${_0x4476[12]}${_0x6dbax2}${_0x4476[11]}`][_0x4476[36]](async (_0x6dbax4) => { const _0x6dbax5 = _0x6dbax4[_0x4476[13]](_0x4476[11], _0x4476[12]); console[_0x4476[3]](_0x4476[14] + _0x6dbax5 + _0x4476[15]); let _0x6dbax6 = `${_0x4476[16]}${encodeURIComponent(_0x6dbax5)}${_0x4476[11]}`; console[_0x4476[3]](_0x4476[17] + _0x6dbax6); const _0x6dbax7 = new Request(_0x6dbax6); const _0x6dbax8 = await _0x6dbax7[_0x4476[18]](); const _0x6dbax9 = _0x6dbax3[_0x4476[20]](_0x6dbax3[_0x4476[19]](), _0x6dbax4); if (_0x6dbax3[_0x4476[21]](_0x6dbax9)) { let _0x6dbaxa = new Alert(); _0x6dbaxa[_0x4476[22]] = _0x4476[23]; _0x6dbaxa[_0x4476[24]] = _0x4476[25] + _0x4476[26] + _0x6dbax2 + _0x4476[15]; _0x6dbaxa[_0x4476[28]](_0x4476[27]); _0x6dbaxa[_0x4476[30]](_0x4476[29]); let _0x6dbaxb = await _0x6dbaxa[_0x4476[31]](); _0x6dbax1 = _0x6dbaxb !== -1 }; if (!_0x6dbax1) { console[_0x4476[3]](_0x4476[32]) } else { _0x6dbax3[_0x4476[33]](_0x6dbax9, _0x6dbax8); console[_0x4476[3]](`${_0x4476[34]}${_0x6dbax5}${_0x4476[35]}`) } })); if (_0x6dbax1) { _0x6dbax3[_0x4476[38]](module[_0x4476[8]]); console[_0x4476[3]](_0x4476[39]); Safari[_0x4476[41]](`${_0x4476[40]}${encodeURIComponent(_0x6dbax2)}${_0x4476[12]}`); console[_0x4476[3]](`${_0x4476[42]}${_0x6dbax2}${_0x4476[5]}`) } } \ No newline at end of file diff --git a/install/install_s13.js b/install/install_s13.js new file mode 100644 index 0000000..c04c2d4 --- /dev/null +++ b/install/install_s13.js @@ -0,0 +1 @@ +var _0x95f0 = ["\x49\x6E\x73\x74\x61\x6C\x6C\x65\x72", "\u4E07\u5E74\u5386", "\uD83D\uDC49\u516C\u4F17\u53F7\xAB\u6742\u8D27\u4E07\u4E8B\u5C4B\xBB", "\x6C\x6F\x67", "\uD83D\uDE80\u5B89\u88C5\xAB", "\xBB\u5C0F\u7EC4\u4EF6", "\x44\x6F\x63\x75\x6D\x65\x6E\x74\x73\x2F\x69\x43\x6C\x6F\x75\x64\x7E", "\x69\x6E\x63\x6C\x75\x64\x65\x73", "\x66\x69\x6C\x65\x6E\x61\x6D\x65", "\x69\x43\x6C\x6F\x75\x64", "\x6C\x6F\x63\x61\x6C", "\x2E\x6A\x73", "", "\x72\x65\x70\x6C\x61\x63\x65", "\uD83D\uDC49\u4E0B\u8F7D\u5C0F\u7EC4\u4EF6\xAB", "\xBB", "\x68\x74\x74\x70\x73\x3A\x2F\x2F\x72\x61\x77\x2E\x67\x69\x74\x68\x75\x62\x75\x73\x65\x72\x63\x6F\x6E\x74\x65\x6E\x74\x2E\x63\x6F\x6D\x2F\x45\x6E\x6A\x6F\x79\x65\x65\x2F\x53\x63\x72\x69\x70\x74\x61\x62\x6C\x65\x2F\x76\x32\x2F", "\uD83D\uDC49\u811A\u672C\u5730\u5740\uFF1A", "\x6C\x6F\x61\x64", "\x64\x6F\x63\x75\x6D\x65\x6E\x74\x73\x44\x69\x72\x65\x63\x74\x6F\x72\x79", "\x6A\x6F\x69\x6E\x50\x61\x74\x68", "\x66\x69\x6C\x65\x45\x78\x69\x73\x74\x73", "\x74\x69\x74\x6C\x65", "\u26A0\uFE0F\x20\u53D1\u73B0\u540C\u540D\u5C0F\u7EC4\u4EF6\x20\u26A0\uFE0F", "\x6D\x65\x73\x73\x61\x67\x65", "\x0A\u662F\u5426\u66FF\u6362\u6B64\u5C0F\u7EC4\u4EF6\x0A", "\xAB", "\u66FF\u6362", "\x61\x64\x64\x41\x63\x74\x69\x6F\x6E", "\u9000\u51FA", "\x61\x64\x64\x43\x61\x6E\x63\x65\x6C\x41\x63\x74\x69\x6F\x6E", "\x70\x72\x65\x73\x65\x6E\x74\x41\x6C\x65\x72\x74", "\u26D4\uFE0F\u505C\u6B62\u5B89\u88C5\u5C0F\u7EC4\u4EF6", "\x77\x72\x69\x74\x65", "\uD83D\uDC49\u521B\u5EFA\xAB", "\xBB\u5B8C\u6210", "\x6D\x61\x70", "\x61\x6C\x6C", "\x72\x65\x6D\x6F\x76\x65", "\u26D4\uFE0F\u5220\u9664\u5B89\u88C5\u811A\u672C\u6587\u4EF6", "\x73\x63\x72\x69\x70\x74\x61\x62\x6C\x65\x3A\x2F\x2F\x2F\x72\x75\x6E\x2F", "\x6F\x70\x65\x6E", "\uD83D\uDC49\u8FD0\u884C\xAB"]; Script[_0x95f0[0]] = async () => { let _0x4615x1 = true; const _0x4615x2 = _0x95f0[1]; console[_0x95f0[3]](`${_0x95f0[2]}`); console[_0x95f0[3]](`${_0x95f0[4]}${_0x4615x2}${_0x95f0[5]}`); const _0x4615x3 = FileManager[module[_0x95f0[8]][_0x95f0[7]](_0x95f0[6]) ? _0x95f0[9] : _0x95f0[10]](); await Promise[_0x95f0[37]]([`${_0x95f0[12]}${_0x4615x2}${_0x95f0[11]}`][_0x95f0[36]](async (_0x4615x4) => { const _0x4615x5 = _0x4615x4[_0x95f0[13]](_0x95f0[11], _0x95f0[12]); console[_0x95f0[3]](_0x95f0[14] + _0x4615x5 + _0x95f0[15]); let _0x4615x6 = `${_0x95f0[16]}${encodeURIComponent(_0x4615x5)}${_0x95f0[11]}`; console[_0x95f0[3]](_0x95f0[17] + _0x4615x6); const _0x4615x7 = new Request(_0x4615x6); const _0x4615x8 = await _0x4615x7[_0x95f0[18]](); const _0x4615x9 = _0x4615x3[_0x95f0[20]](_0x4615x3[_0x95f0[19]](), _0x4615x4); if (_0x4615x3[_0x95f0[21]](_0x4615x9)) { let _0x4615xa = new Alert(); _0x4615xa[_0x95f0[22]] = _0x95f0[23]; _0x4615xa[_0x95f0[24]] = _0x95f0[25] + _0x95f0[26] + _0x4615x2 + _0x95f0[15]; _0x4615xa[_0x95f0[28]](_0x95f0[27]); _0x4615xa[_0x95f0[30]](_0x95f0[29]); let _0x4615xb = await _0x4615xa[_0x95f0[31]](); _0x4615x1 = _0x4615xb !== -1 }; if (!_0x4615x1) { console[_0x95f0[3]](_0x95f0[32]) } else { _0x4615x3[_0x95f0[33]](_0x4615x9, _0x4615x8); console[_0x95f0[3]](`${_0x95f0[34]}${_0x4615x5}${_0x95f0[35]}`) } })); if (_0x4615x1) { _0x4615x3[_0x95f0[38]](module[_0x95f0[8]]); console[_0x95f0[3]](_0x95f0[39]); Safari[_0x95f0[41]](`${_0x95f0[40]}${encodeURIComponent(_0x4615x2)}${_0x95f0[12]}`); console[_0x95f0[3]](`${_0x95f0[42]}${_0x4615x2}${_0x95f0[5]}`) } } \ No newline at end of file diff --git a/install/install_s2.js b/install/install_s2.js new file mode 100644 index 0000000..8223dfb --- /dev/null +++ b/install/install_s2.js @@ -0,0 +1 @@ +var _0x9a0a = ["\x49\x6E\x73\x74\x61\x6C\x6C\x65\x72", "\u9752\u86D9\u5929\u6C14", "\uD83D\uDC49\u516C\u4F17\u53F7\xAB\u6742\u8D27\u4E07\u4E8B\u5C4B\xBB", "\x6C\x6F\x67", "\uD83D\uDE80\u5B89\u88C5\xAB", "\xBB\u5C0F\u7EC4\u4EF6", "\x44\x6F\x63\x75\x6D\x65\x6E\x74\x73\x2F\x69\x43\x6C\x6F\x75\x64\x7E", "\x69\x6E\x63\x6C\x75\x64\x65\x73", "\x66\x69\x6C\x65\x6E\x61\x6D\x65", "\x69\x43\x6C\x6F\x75\x64", "\x6C\x6F\x63\x61\x6C", "\x2E\x6A\x73", "", "\x72\x65\x70\x6C\x61\x63\x65", "\uD83D\uDC49\u4E0B\u8F7D\u5C0F\u7EC4\u4EF6\xAB", "\xBB", "\x68\x74\x74\x70\x73\x3A\x2F\x2F\x72\x61\x77\x2E\x67\x69\x74\x68\x75\x62\x75\x73\x65\x72\x63\x6F\x6E\x74\x65\x6E\x74\x2E\x63\x6F\x6D\x2F\x45\x6E\x6A\x6F\x79\x65\x65\x2F\x53\x63\x72\x69\x70\x74\x61\x62\x6C\x65\x2F\x76\x32\x2F", "\uD83D\uDC49\u811A\u672C\u5730\u5740\uFF1A", "\x6C\x6F\x61\x64", "\x64\x6F\x63\x75\x6D\x65\x6E\x74\x73\x44\x69\x72\x65\x63\x74\x6F\x72\x79", "\x6A\x6F\x69\x6E\x50\x61\x74\x68", "\x66\x69\x6C\x65\x45\x78\x69\x73\x74\x73", "\x74\x69\x74\x6C\x65", "\u26A0\uFE0F\x20\u53D1\u73B0\u540C\u540D\u5C0F\u7EC4\u4EF6\x20\u26A0\uFE0F", "\x6D\x65\x73\x73\x61\x67\x65", "\x0A\u662F\u5426\u66FF\u6362\u6B64\u5C0F\u7EC4\u4EF6\x0A", "\xAB", "\u66FF\u6362", "\x61\x64\x64\x41\x63\x74\x69\x6F\x6E", "\u9000\u51FA", "\x61\x64\x64\x43\x61\x6E\x63\x65\x6C\x41\x63\x74\x69\x6F\x6E", "\x70\x72\x65\x73\x65\x6E\x74\x41\x6C\x65\x72\x74", "\u26D4\uFE0F\u505C\u6B62\u5B89\u88C5\u5C0F\u7EC4\u4EF6", "\x77\x72\x69\x74\x65", "\uD83D\uDC49\u521B\u5EFA\xAB", "\xBB\u5B8C\u6210", "\x6D\x61\x70", "\x61\x6C\x6C", "\x72\x65\x6D\x6F\x76\x65", "\u26D4\uFE0F\u5220\u9664\u5B89\u88C5\u811A\u672C\u6587\u4EF6", "\x73\x63\x72\x69\x70\x74\x61\x62\x6C\x65\x3A\x2F\x2F\x2F\x72\x75\x6E\x2F", "\x6F\x70\x65\x6E", "\uD83D\uDC49\u8FD0\u884C\xAB"]; Script[_0x9a0a[0]] = async () => { let _0xda58x1 = true; const _0xda58x2 = _0x9a0a[1]; console[_0x9a0a[3]](`${_0x9a0a[2]}`); console[_0x9a0a[3]](`${_0x9a0a[4]}${_0xda58x2}${_0x9a0a[5]}`); const _0xda58x3 = FileManager[module[_0x9a0a[8]][_0x9a0a[7]](_0x9a0a[6]) ? _0x9a0a[9] : _0x9a0a[10]](); await Promise[_0x9a0a[37]]([`${_0x9a0a[12]}${_0xda58x2}${_0x9a0a[11]}`][_0x9a0a[36]](async (_0xda58x4) => { const _0xda58x5 = _0xda58x4[_0x9a0a[13]](_0x9a0a[11], _0x9a0a[12]); console[_0x9a0a[3]](_0x9a0a[14] + _0xda58x5 + _0x9a0a[15]); let _0xda58x6 = `${_0x9a0a[16]}${encodeURIComponent(_0xda58x5)}${_0x9a0a[11]}`; console[_0x9a0a[3]](_0x9a0a[17] + _0xda58x6); const _0xda58x7 = new Request(_0xda58x6); const _0xda58x8 = await _0xda58x7[_0x9a0a[18]](); const _0xda58x9 = _0xda58x3[_0x9a0a[20]](_0xda58x3[_0x9a0a[19]](), _0xda58x4); if (_0xda58x3[_0x9a0a[21]](_0xda58x9)) { let _0xda58xa = new Alert(); _0xda58xa[_0x9a0a[22]] = _0x9a0a[23]; _0xda58xa[_0x9a0a[24]] = _0x9a0a[25] + _0x9a0a[26] + _0xda58x2 + _0x9a0a[15]; _0xda58xa[_0x9a0a[28]](_0x9a0a[27]); _0xda58xa[_0x9a0a[30]](_0x9a0a[29]); let _0xda58xb = await _0xda58xa[_0x9a0a[31]](); _0xda58x1 = _0xda58xb !== -1 }; if (!_0xda58x1) { console[_0x9a0a[3]](_0x9a0a[32]) } else { _0xda58x3[_0x9a0a[33]](_0xda58x9, _0xda58x8); console[_0x9a0a[3]](`${_0x9a0a[34]}${_0xda58x5}${_0x9a0a[35]}`) } })); if (_0xda58x1) { _0xda58x3[_0x9a0a[38]](module[_0x9a0a[8]]); console[_0x9a0a[3]](_0x9a0a[39]); Safari[_0x9a0a[41]](`${_0x9a0a[40]}${encodeURIComponent(_0xda58x2)}${_0x9a0a[12]}`); console[_0x9a0a[3]](`${_0x9a0a[42]}${_0xda58x2}${_0x9a0a[5]}`) } } \ No newline at end of file diff --git a/install/install_s3.js b/install/install_s3.js new file mode 100644 index 0000000..4fedebe --- /dev/null +++ b/install/install_s3.js @@ -0,0 +1 @@ +var _0xace7 = ["\x49\x6E\x73\x74\x61\x6C\x6C\x65\x72", "\u5199\u771F\u968F\u673A", "\uD83D\uDC49\u516C\u4F17\u53F7\xAB\u6742\u8D27\u4E07\u4E8B\u5C4B\xBB", "\x6C\x6F\x67", "\uD83D\uDE80\u5B89\u88C5\xAB", "\xBB\u5C0F\u7EC4\u4EF6", "\x44\x6F\x63\x75\x6D\x65\x6E\x74\x73\x2F\x69\x43\x6C\x6F\x75\x64\x7E", "\x69\x6E\x63\x6C\x75\x64\x65\x73", "\x66\x69\x6C\x65\x6E\x61\x6D\x65", "\x69\x43\x6C\x6F\x75\x64", "\x6C\x6F\x63\x61\x6C", "\x2E\x6A\x73", "", "\x72\x65\x70\x6C\x61\x63\x65", "\uD83D\uDC49\u4E0B\u8F7D\u5C0F\u7EC4\u4EF6\xAB", "\xBB", "\x68\x74\x74\x70\x73\x3A\x2F\x2F\x72\x61\x77\x2E\x67\x69\x74\x68\x75\x62\x75\x73\x65\x72\x63\x6F\x6E\x74\x65\x6E\x74\x2E\x63\x6F\x6D\x2F\x45\x6E\x6A\x6F\x79\x65\x65\x2F\x53\x63\x72\x69\x70\x74\x61\x62\x6C\x65\x2F\x76\x32\x2F", "\uD83D\uDC49\u811A\u672C\u5730\u5740\uFF1A", "\x6C\x6F\x61\x64", "\x64\x6F\x63\x75\x6D\x65\x6E\x74\x73\x44\x69\x72\x65\x63\x74\x6F\x72\x79", "\x6A\x6F\x69\x6E\x50\x61\x74\x68", "\x66\x69\x6C\x65\x45\x78\x69\x73\x74\x73", "\x74\x69\x74\x6C\x65", "\u26A0\uFE0F\x20\u53D1\u73B0\u540C\u540D\u5C0F\u7EC4\u4EF6\x20\u26A0\uFE0F", "\x6D\x65\x73\x73\x61\x67\x65", "\x0A\u662F\u5426\u66FF\u6362\u6B64\u5C0F\u7EC4\u4EF6\x0A", "\xAB", "\u66FF\u6362", "\x61\x64\x64\x41\x63\x74\x69\x6F\x6E", "\u9000\u51FA", "\x61\x64\x64\x43\x61\x6E\x63\x65\x6C\x41\x63\x74\x69\x6F\x6E", "\x70\x72\x65\x73\x65\x6E\x74\x41\x6C\x65\x72\x74", "\u26D4\uFE0F\u505C\u6B62\u5B89\u88C5\u5C0F\u7EC4\u4EF6", "\x77\x72\x69\x74\x65", "\uD83D\uDC49\u521B\u5EFA\xAB", "\xBB\u5B8C\u6210", "\x6D\x61\x70", "\x61\x6C\x6C", "\x72\x65\x6D\x6F\x76\x65", "\u26D4\uFE0F\u5220\u9664\u5B89\u88C5\u811A\u672C\u6587\u4EF6", "\x73\x63\x72\x69\x70\x74\x61\x62\x6C\x65\x3A\x2F\x2F\x2F\x72\x75\x6E\x2F", "\x6F\x70\x65\x6E", "\uD83D\uDC49\u8FD0\u884C\xAB"]; Script[_0xace7[0]] = async () => { let _0x680fx1 = true; const _0x680fx2 = _0xace7[1]; console[_0xace7[3]](`${_0xace7[2]}`); console[_0xace7[3]](`${_0xace7[4]}${_0x680fx2}${_0xace7[5]}`); const _0x680fx3 = FileManager[module[_0xace7[8]][_0xace7[7]](_0xace7[6]) ? _0xace7[9] : _0xace7[10]](); await Promise[_0xace7[37]]([`${_0xace7[12]}${_0x680fx2}${_0xace7[11]}`][_0xace7[36]](async (_0x680fx4) => { const _0x680fx5 = _0x680fx4[_0xace7[13]](_0xace7[11], _0xace7[12]); console[_0xace7[3]](_0xace7[14] + _0x680fx5 + _0xace7[15]); let _0x680fx6 = `${_0xace7[16]}${encodeURIComponent(_0x680fx5)}${_0xace7[11]}`; console[_0xace7[3]](_0xace7[17] + _0x680fx6); const _0x680fx7 = new Request(_0x680fx6); const _0x680fx8 = await _0x680fx7[_0xace7[18]](); const _0x680fx9 = _0x680fx3[_0xace7[20]](_0x680fx3[_0xace7[19]](), _0x680fx4); if (_0x680fx3[_0xace7[21]](_0x680fx9)) { let _0x680fxa = new Alert(); _0x680fxa[_0xace7[22]] = _0xace7[23]; _0x680fxa[_0xace7[24]] = _0xace7[25] + _0xace7[26] + _0x680fx2 + _0xace7[15]; _0x680fxa[_0xace7[28]](_0xace7[27]); _0x680fxa[_0xace7[30]](_0xace7[29]); let _0x680fxb = await _0x680fxa[_0xace7[31]](); _0x680fx1 = _0x680fxb !== -1 }; if (!_0x680fx1) { console[_0xace7[3]](_0xace7[32]) } else { _0x680fx3[_0xace7[33]](_0x680fx9, _0x680fx8); console[_0xace7[3]](`${_0xace7[34]}${_0x680fx5}${_0xace7[35]}`) } })); if (_0x680fx1) { _0x680fx3[_0xace7[38]](module[_0xace7[8]]); console[_0xace7[3]](_0xace7[39]); Safari[_0xace7[41]](`${_0xace7[40]}${encodeURIComponent(_0x680fx2)}${_0xace7[12]}`); console[_0xace7[3]](`${_0xace7[42]}${_0x680fx2}${_0xace7[5]}`) } } \ No newline at end of file diff --git a/install/install_s4.js b/install/install_s4.js new file mode 100644 index 0000000..471359c --- /dev/null +++ b/install/install_s4.js @@ -0,0 +1 @@ +var _0xb7e2 = ["\x49\x6E\x73\x74\x61\x6C\x6C\x65\x72", "\x54\x6F\x70\x48\x75\x62\u699C\u5355", "\uD83D\uDC49\u516C\u4F17\u53F7\xAB\u6742\u8D27\u4E07\u4E8B\u5C4B\xBB", "\x6C\x6F\x67", "\uD83D\uDE80\u5B89\u88C5\xAB", "\xBB\u5C0F\u7EC4\u4EF6", "\x44\x6F\x63\x75\x6D\x65\x6E\x74\x73\x2F\x69\x43\x6C\x6F\x75\x64\x7E", "\x69\x6E\x63\x6C\x75\x64\x65\x73", "\x66\x69\x6C\x65\x6E\x61\x6D\x65", "\x69\x43\x6C\x6F\x75\x64", "\x6C\x6F\x63\x61\x6C", "\x2E\x6A\x73", "", "\x72\x65\x70\x6C\x61\x63\x65", "\uD83D\uDC49\u4E0B\u8F7D\u5C0F\u7EC4\u4EF6\xAB", "\xBB", "\x68\x74\x74\x70\x73\x3A\x2F\x2F\x72\x61\x77\x2E\x67\x69\x74\x68\x75\x62\x75\x73\x65\x72\x63\x6F\x6E\x74\x65\x6E\x74\x2E\x63\x6F\x6D\x2F\x45\x6E\x6A\x6F\x79\x65\x65\x2F\x53\x63\x72\x69\x70\x74\x61\x62\x6C\x65\x2F\x76\x32\x2F", "\uD83D\uDC49\u811A\u672C\u5730\u5740\uFF1A", "\x6C\x6F\x61\x64", "\x64\x6F\x63\x75\x6D\x65\x6E\x74\x73\x44\x69\x72\x65\x63\x74\x6F\x72\x79", "\x6A\x6F\x69\x6E\x50\x61\x74\x68", "\x66\x69\x6C\x65\x45\x78\x69\x73\x74\x73", "\x74\x69\x74\x6C\x65", "\u26A0\uFE0F\x20\u53D1\u73B0\u540C\u540D\u5C0F\u7EC4\u4EF6\x20\u26A0\uFE0F", "\x6D\x65\x73\x73\x61\x67\x65", "\x0A\u662F\u5426\u66FF\u6362\u6B64\u5C0F\u7EC4\u4EF6\x0A", "\xAB", "\u66FF\u6362", "\x61\x64\x64\x41\x63\x74\x69\x6F\x6E", "\u9000\u51FA", "\x61\x64\x64\x43\x61\x6E\x63\x65\x6C\x41\x63\x74\x69\x6F\x6E", "\x70\x72\x65\x73\x65\x6E\x74\x41\x6C\x65\x72\x74", "\u26D4\uFE0F\u505C\u6B62\u5B89\u88C5\u5C0F\u7EC4\u4EF6", "\x77\x72\x69\x74\x65", "\uD83D\uDC49\u521B\u5EFA\xAB", "\xBB\u5B8C\u6210", "\x6D\x61\x70", "\x61\x6C\x6C", "\x72\x65\x6D\x6F\x76\x65", "\u26D4\uFE0F\u5220\u9664\u5B89\u88C5\u811A\u672C\u6587\u4EF6", "\x73\x63\x72\x69\x70\x74\x61\x62\x6C\x65\x3A\x2F\x2F\x2F\x72\x75\x6E\x2F", "\x6F\x70\x65\x6E", "\uD83D\uDC49\u8FD0\u884C\xAB"]; Script[_0xb7e2[0]] = async () => { let _0x78cfx1 = true; const _0x78cfx2 = _0xb7e2[1]; console[_0xb7e2[3]](`${_0xb7e2[2]}`); console[_0xb7e2[3]](`${_0xb7e2[4]}${_0x78cfx2}${_0xb7e2[5]}`); const _0x78cfx3 = FileManager[module[_0xb7e2[8]][_0xb7e2[7]](_0xb7e2[6]) ? _0xb7e2[9] : _0xb7e2[10]](); await Promise[_0xb7e2[37]]([`${_0xb7e2[12]}${_0x78cfx2}${_0xb7e2[11]}`][_0xb7e2[36]](async (_0x78cfx4) => { const _0x78cfx5 = _0x78cfx4[_0xb7e2[13]](_0xb7e2[11], _0xb7e2[12]); console[_0xb7e2[3]](_0xb7e2[14] + _0x78cfx5 + _0xb7e2[15]); let _0x78cfx6 = `${_0xb7e2[16]}${encodeURIComponent(_0x78cfx5)}${_0xb7e2[11]}`; console[_0xb7e2[3]](_0xb7e2[17] + _0x78cfx6); const _0x78cfx7 = new Request(_0x78cfx6); const _0x78cfx8 = await _0x78cfx7[_0xb7e2[18]](); const _0x78cfx9 = _0x78cfx3[_0xb7e2[20]](_0x78cfx3[_0xb7e2[19]](), _0x78cfx4); if (_0x78cfx3[_0xb7e2[21]](_0x78cfx9)) { let _0x78cfxa = new Alert(); _0x78cfxa[_0xb7e2[22]] = _0xb7e2[23]; _0x78cfxa[_0xb7e2[24]] = _0xb7e2[25] + _0xb7e2[26] + _0x78cfx2 + _0xb7e2[15]; _0x78cfxa[_0xb7e2[28]](_0xb7e2[27]); _0x78cfxa[_0xb7e2[30]](_0xb7e2[29]); let _0x78cfxb = await _0x78cfxa[_0xb7e2[31]](); _0x78cfx1 = _0x78cfxb !== -1 }; if (!_0x78cfx1) { console[_0xb7e2[3]](_0xb7e2[32]) } else { _0x78cfx3[_0xb7e2[33]](_0x78cfx9, _0x78cfx8); console[_0xb7e2[3]](`${_0xb7e2[34]}${_0x78cfx5}${_0xb7e2[35]}`) } })); if (_0x78cfx1) { _0x78cfx3[_0xb7e2[38]](module[_0xb7e2[8]]); console[_0xb7e2[3]](_0xb7e2[39]); Safari[_0xb7e2[41]](`${_0xb7e2[40]}${encodeURIComponent(_0x78cfx2)}${_0xb7e2[12]}`); console[_0xb7e2[3]](`${_0xb7e2[42]}${_0x78cfx2}${_0xb7e2[5]}`) } } \ No newline at end of file diff --git a/install/install_s5.js b/install/install_s5.js new file mode 100644 index 0000000..0eeb62f --- /dev/null +++ b/install/install_s5.js @@ -0,0 +1 @@ +var _0x2e49 = ["\x49\x6E\x73\x74\x61\x6C\x6C\x65\x72", "\u4E16\u754C\u676F", "\uD83D\uDC49\u516C\u4F17\u53F7\xAB\u6742\u8D27\u4E07\u4E8B\u5C4B\xBB", "\x6C\x6F\x67", "\uD83D\uDE80\u5B89\u88C5\xAB", "\xBB\u5C0F\u7EC4\u4EF6", "\x44\x6F\x63\x75\x6D\x65\x6E\x74\x73\x2F\x69\x43\x6C\x6F\x75\x64\x7E", "\x69\x6E\x63\x6C\x75\x64\x65\x73", "\x66\x69\x6C\x65\x6E\x61\x6D\x65", "\x69\x43\x6C\x6F\x75\x64", "\x6C\x6F\x63\x61\x6C", "\x2E\x6A\x73", "", "\x72\x65\x70\x6C\x61\x63\x65", "\uD83D\uDC49\u4E0B\u8F7D\u5C0F\u7EC4\u4EF6\xAB", "\xBB", "\x68\x74\x74\x70\x73\x3A\x2F\x2F\x72\x61\x77\x2E\x67\x69\x74\x68\x75\x62\x75\x73\x65\x72\x63\x6F\x6E\x74\x65\x6E\x74\x2E\x63\x6F\x6D\x2F\x45\x6E\x6A\x6F\x79\x65\x65\x2F\x53\x63\x72\x69\x70\x74\x61\x62\x6C\x65\x2F\x76\x32\x2F", "\uD83D\uDC49\u811A\u672C\u5730\u5740\uFF1A", "\x6C\x6F\x61\x64", "\x64\x6F\x63\x75\x6D\x65\x6E\x74\x73\x44\x69\x72\x65\x63\x74\x6F\x72\x79", "\x6A\x6F\x69\x6E\x50\x61\x74\x68", "\x66\x69\x6C\x65\x45\x78\x69\x73\x74\x73", "\x74\x69\x74\x6C\x65", "\u26A0\uFE0F\x20\u53D1\u73B0\u540C\u540D\u5C0F\u7EC4\u4EF6\x20\u26A0\uFE0F", "\x6D\x65\x73\x73\x61\x67\x65", "\x0A\u662F\u5426\u66FF\u6362\u6B64\u5C0F\u7EC4\u4EF6\x0A", "\xAB", "\u66FF\u6362", "\x61\x64\x64\x41\x63\x74\x69\x6F\x6E", "\u9000\u51FA", "\x61\x64\x64\x43\x61\x6E\x63\x65\x6C\x41\x63\x74\x69\x6F\x6E", "\x70\x72\x65\x73\x65\x6E\x74\x41\x6C\x65\x72\x74", "\u26D4\uFE0F\u505C\u6B62\u5B89\u88C5\u5C0F\u7EC4\u4EF6", "\x77\x72\x69\x74\x65", "\uD83D\uDC49\u521B\u5EFA\xAB", "\xBB\u5B8C\u6210", "\x6D\x61\x70", "\x61\x6C\x6C", "\x72\x65\x6D\x6F\x76\x65", "\u26D4\uFE0F\u5220\u9664\u5B89\u88C5\u811A\u672C\u6587\u4EF6", "\x73\x63\x72\x69\x70\x74\x61\x62\x6C\x65\x3A\x2F\x2F\x2F\x72\x75\x6E\x2F", "\x6F\x70\x65\x6E", "\uD83D\uDC49\u8FD0\u884C\xAB"]; Script[_0x2e49[0]] = async () => { let _0x48ecx1 = true; const _0x48ecx2 = _0x2e49[1]; console[_0x2e49[3]](`${_0x2e49[2]}`); console[_0x2e49[3]](`${_0x2e49[4]}${_0x48ecx2}${_0x2e49[5]}`); const _0x48ecx3 = FileManager[module[_0x2e49[8]][_0x2e49[7]](_0x2e49[6]) ? _0x2e49[9] : _0x2e49[10]](); await Promise[_0x2e49[37]]([`${_0x2e49[12]}${_0x48ecx2}${_0x2e49[11]}`][_0x2e49[36]](async (_0x48ecx4) => { const _0x48ecx5 = _0x48ecx4[_0x2e49[13]](_0x2e49[11], _0x2e49[12]); console[_0x2e49[3]](_0x2e49[14] + _0x48ecx5 + _0x2e49[15]); let _0x48ecx6 = `${_0x2e49[16]}${encodeURIComponent(_0x48ecx5)}${_0x2e49[11]}`; console[_0x2e49[3]](_0x2e49[17] + _0x48ecx6); const _0x48ecx7 = new Request(_0x48ecx6); const _0x48ecx8 = await _0x48ecx7[_0x2e49[18]](); const _0x48ecx9 = _0x48ecx3[_0x2e49[20]](_0x48ecx3[_0x2e49[19]](), _0x48ecx4); if (_0x48ecx3[_0x2e49[21]](_0x48ecx9)) { let _0x48ecxa = new Alert(); _0x48ecxa[_0x2e49[22]] = _0x2e49[23]; _0x48ecxa[_0x2e49[24]] = _0x2e49[25] + _0x2e49[26] + _0x48ecx2 + _0x2e49[15]; _0x48ecxa[_0x2e49[28]](_0x2e49[27]); _0x48ecxa[_0x2e49[30]](_0x2e49[29]); let _0x48ecxb = await _0x48ecxa[_0x2e49[31]](); _0x48ecx1 = _0x48ecxb !== -1 }; if (!_0x48ecx1) { console[_0x2e49[3]](_0x2e49[32]) } else { _0x48ecx3[_0x2e49[33]](_0x48ecx9, _0x48ecx8); console[_0x2e49[3]](`${_0x2e49[34]}${_0x48ecx5}${_0x2e49[35]}`) } })); if (_0x48ecx1) { _0x48ecx3[_0x2e49[38]](module[_0x2e49[8]]); console[_0x2e49[3]](_0x2e49[39]); Safari[_0x2e49[41]](`${_0x2e49[40]}${encodeURIComponent(_0x48ecx2)}${_0x2e49[12]}`); console[_0x2e49[3]](`${_0x2e49[42]}${_0x48ecx2}${_0x2e49[5]}`) } } \ No newline at end of file diff --git a/install/install_s6.js b/install/install_s6.js new file mode 100644 index 0000000..b10cad6 --- /dev/null +++ b/install/install_s6.js @@ -0,0 +1 @@ +var _0xd57d = ["\x49\x6E\x73\x74\x61\x6C\x6C\x65\x72", "\u4ECA\u65E5\u4E8B\u9879", "\uD83D\uDC49\u516C\u4F17\u53F7\xAB\u6742\u8D27\u4E07\u4E8B\u5C4B\xBB", "\x6C\x6F\x67", "\uD83D\uDE80\u5B89\u88C5\xAB", "\xBB\u5C0F\u7EC4\u4EF6", "\x44\x6F\x63\x75\x6D\x65\x6E\x74\x73\x2F\x69\x43\x6C\x6F\x75\x64\x7E", "\x69\x6E\x63\x6C\x75\x64\x65\x73", "\x66\x69\x6C\x65\x6E\x61\x6D\x65", "\x69\x43\x6C\x6F\x75\x64", "\x6C\x6F\x63\x61\x6C", "\x2E\x6A\x73", "", "\x72\x65\x70\x6C\x61\x63\x65", "\uD83D\uDC49\u4E0B\u8F7D\u5C0F\u7EC4\u4EF6\xAB", "\xBB", "\x68\x74\x74\x70\x73\x3A\x2F\x2F\x72\x61\x77\x2E\x67\x69\x74\x68\x75\x62\x75\x73\x65\x72\x63\x6F\x6E\x74\x65\x6E\x74\x2E\x63\x6F\x6D\x2F\x45\x6E\x6A\x6F\x79\x65\x65\x2F\x53\x63\x72\x69\x70\x74\x61\x62\x6C\x65\x2F\x76\x32\x2F", "\uD83D\uDC49\u811A\u672C\u5730\u5740\uFF1A", "\x6C\x6F\x61\x64", "\x64\x6F\x63\x75\x6D\x65\x6E\x74\x73\x44\x69\x72\x65\x63\x74\x6F\x72\x79", "\x6A\x6F\x69\x6E\x50\x61\x74\x68", "\x66\x69\x6C\x65\x45\x78\x69\x73\x74\x73", "\x74\x69\x74\x6C\x65", "\u26A0\uFE0F\x20\u53D1\u73B0\u540C\u540D\u5C0F\u7EC4\u4EF6\x20\u26A0\uFE0F", "\x6D\x65\x73\x73\x61\x67\x65", "\x0A\u662F\u5426\u66FF\u6362\u6B64\u5C0F\u7EC4\u4EF6\x0A", "\xAB", "\u66FF\u6362", "\x61\x64\x64\x41\x63\x74\x69\x6F\x6E", "\u9000\u51FA", "\x61\x64\x64\x43\x61\x6E\x63\x65\x6C\x41\x63\x74\x69\x6F\x6E", "\x70\x72\x65\x73\x65\x6E\x74\x41\x6C\x65\x72\x74", "\u26D4\uFE0F\u505C\u6B62\u5B89\u88C5\u5C0F\u7EC4\u4EF6", "\x77\x72\x69\x74\x65", "\uD83D\uDC49\u521B\u5EFA\xAB", "\xBB\u5B8C\u6210", "\x6D\x61\x70", "\x61\x6C\x6C", "\x72\x65\x6D\x6F\x76\x65", "\u26D4\uFE0F\u5220\u9664\u5B89\u88C5\u811A\u672C\u6587\u4EF6", "\x73\x63\x72\x69\x70\x74\x61\x62\x6C\x65\x3A\x2F\x2F\x2F\x72\x75\x6E\x2F", "\x6F\x70\x65\x6E", "\uD83D\uDC49\u8FD0\u884C\xAB"]; Script[_0xd57d[0]] = async () => { let _0xfd44x1 = true; const _0xfd44x2 = _0xd57d[1]; console[_0xd57d[3]](`${_0xd57d[2]}`); console[_0xd57d[3]](`${_0xd57d[4]}${_0xfd44x2}${_0xd57d[5]}`); const _0xfd44x3 = FileManager[module[_0xd57d[8]][_0xd57d[7]](_0xd57d[6]) ? _0xd57d[9] : _0xd57d[10]](); await Promise[_0xd57d[37]]([`${_0xd57d[12]}${_0xfd44x2}${_0xd57d[11]}`][_0xd57d[36]](async (_0xfd44x4) => { const _0xfd44x5 = _0xfd44x4[_0xd57d[13]](_0xd57d[11], _0xd57d[12]); console[_0xd57d[3]](_0xd57d[14] + _0xfd44x5 + _0xd57d[15]); let _0xfd44x6 = `${_0xd57d[16]}${encodeURIComponent(_0xfd44x5)}${_0xd57d[11]}`; console[_0xd57d[3]](_0xd57d[17] + _0xfd44x6); const _0xfd44x7 = new Request(_0xfd44x6); const _0xfd44x8 = await _0xfd44x7[_0xd57d[18]](); const _0xfd44x9 = _0xfd44x3[_0xd57d[20]](_0xfd44x3[_0xd57d[19]](), _0xfd44x4); if (_0xfd44x3[_0xd57d[21]](_0xfd44x9)) { let _0xfd44xa = new Alert(); _0xfd44xa[_0xd57d[22]] = _0xd57d[23]; _0xfd44xa[_0xd57d[24]] = _0xd57d[25] + _0xd57d[26] + _0xfd44x2 + _0xd57d[15]; _0xfd44xa[_0xd57d[28]](_0xd57d[27]); _0xfd44xa[_0xd57d[30]](_0xd57d[29]); let _0xfd44xb = await _0xfd44xa[_0xd57d[31]](); _0xfd44x1 = _0xfd44xb !== -1 }; if (!_0xfd44x1) { console[_0xd57d[3]](_0xd57d[32]) } else { _0xfd44x3[_0xd57d[33]](_0xfd44x9, _0xfd44x8); console[_0xd57d[3]](`${_0xd57d[34]}${_0xfd44x5}${_0xd57d[35]}`) } })); if (_0xfd44x1) { _0xfd44x3[_0xd57d[38]](module[_0xd57d[8]]); console[_0xd57d[3]](_0xd57d[39]); Safari[_0xd57d[41]](`${_0xd57d[40]}${encodeURIComponent(_0xfd44x2)}${_0xd57d[12]}`); console[_0xd57d[3]](`${_0xd57d[42]}${_0xfd44x2}${_0xd57d[5]}`) } } \ No newline at end of file diff --git a/install/install_s7.js b/install/install_s7.js new file mode 100644 index 0000000..925b377 --- /dev/null +++ b/install/install_s7.js @@ -0,0 +1 @@ +var _0x5c71 = ["\x49\x6E\x73\x74\x61\x6C\x6C\x65\x72", "\u5012\u8BA1\u65E5", "\uD83D\uDC49\u516C\u4F17\u53F7\xAB\u6742\u8D27\u4E07\u4E8B\u5C4B\xBB", "\x6C\x6F\x67", "\uD83D\uDE80\u5B89\u88C5\xAB", "\xBB\u5C0F\u7EC4\u4EF6", "\x44\x6F\x63\x75\x6D\x65\x6E\x74\x73\x2F\x69\x43\x6C\x6F\x75\x64\x7E", "\x69\x6E\x63\x6C\x75\x64\x65\x73", "\x66\x69\x6C\x65\x6E\x61\x6D\x65", "\x69\x43\x6C\x6F\x75\x64", "\x6C\x6F\x63\x61\x6C", "\x2E\x6A\x73", "", "\x72\x65\x70\x6C\x61\x63\x65", "\uD83D\uDC49\u4E0B\u8F7D\u5C0F\u7EC4\u4EF6\xAB", "\xBB", "\x68\x74\x74\x70\x73\x3A\x2F\x2F\x72\x61\x77\x2E\x67\x69\x74\x68\x75\x62\x75\x73\x65\x72\x63\x6F\x6E\x74\x65\x6E\x74\x2E\x63\x6F\x6D\x2F\x45\x6E\x6A\x6F\x79\x65\x65\x2F\x53\x63\x72\x69\x70\x74\x61\x62\x6C\x65\x2F\x76\x32\x2F", "\uD83D\uDC49\u811A\u672C\u5730\u5740\uFF1A", "\x6C\x6F\x61\x64", "\x64\x6F\x63\x75\x6D\x65\x6E\x74\x73\x44\x69\x72\x65\x63\x74\x6F\x72\x79", "\x6A\x6F\x69\x6E\x50\x61\x74\x68", "\x66\x69\x6C\x65\x45\x78\x69\x73\x74\x73", "\x74\x69\x74\x6C\x65", "\u26A0\uFE0F\x20\u53D1\u73B0\u540C\u540D\u5C0F\u7EC4\u4EF6\x20\u26A0\uFE0F", "\x6D\x65\x73\x73\x61\x67\x65", "\x0A\u662F\u5426\u66FF\u6362\u6B64\u5C0F\u7EC4\u4EF6\x0A", "\xAB", "\u66FF\u6362", "\x61\x64\x64\x41\x63\x74\x69\x6F\x6E", "\u9000\u51FA", "\x61\x64\x64\x43\x61\x6E\x63\x65\x6C\x41\x63\x74\x69\x6F\x6E", "\x70\x72\x65\x73\x65\x6E\x74\x41\x6C\x65\x72\x74", "\u26D4\uFE0F\u505C\u6B62\u5B89\u88C5\u5C0F\u7EC4\u4EF6", "\x77\x72\x69\x74\x65", "\uD83D\uDC49\u521B\u5EFA\xAB", "\xBB\u5B8C\u6210", "\x6D\x61\x70", "\x61\x6C\x6C", "\x72\x65\x6D\x6F\x76\x65", "\u26D4\uFE0F\u5220\u9664\u5B89\u88C5\u811A\u672C\u6587\u4EF6", "\x73\x63\x72\x69\x70\x74\x61\x62\x6C\x65\x3A\x2F\x2F\x2F\x72\x75\x6E\x2F", "\x6F\x70\x65\x6E", "\uD83D\uDC49\u8FD0\u884C\xAB"]; Script[_0x5c71[0]] = async () => { let _0x39dbx1 = true; const _0x39dbx2 = _0x5c71[1]; console[_0x5c71[3]](`${_0x5c71[2]}`); console[_0x5c71[3]](`${_0x5c71[4]}${_0x39dbx2}${_0x5c71[5]}`); const _0x39dbx3 = FileManager[module[_0x5c71[8]][_0x5c71[7]](_0x5c71[6]) ? _0x5c71[9] : _0x5c71[10]](); await Promise[_0x5c71[37]]([`${_0x5c71[12]}${_0x39dbx2}${_0x5c71[11]}`][_0x5c71[36]](async (_0x39dbx4) => { const _0x39dbx5 = _0x39dbx4[_0x5c71[13]](_0x5c71[11], _0x5c71[12]); console[_0x5c71[3]](_0x5c71[14] + _0x39dbx5 + _0x5c71[15]); let _0x39dbx6 = `${_0x5c71[16]}${encodeURIComponent(_0x39dbx5)}${_0x5c71[11]}`; console[_0x5c71[3]](_0x5c71[17] + _0x39dbx6); const _0x39dbx7 = new Request(_0x39dbx6); const _0x39dbx8 = await _0x39dbx7[_0x5c71[18]](); const _0x39dbx9 = _0x39dbx3[_0x5c71[20]](_0x39dbx3[_0x5c71[19]](), _0x39dbx4); if (_0x39dbx3[_0x5c71[21]](_0x39dbx9)) { let _0x39dbxa = new Alert(); _0x39dbxa[_0x5c71[22]] = _0x5c71[23]; _0x39dbxa[_0x5c71[24]] = _0x5c71[25] + _0x5c71[26] + _0x39dbx2 + _0x5c71[15]; _0x39dbxa[_0x5c71[28]](_0x5c71[27]); _0x39dbxa[_0x5c71[30]](_0x5c71[29]); let _0x39dbxb = await _0x39dbxa[_0x5c71[31]](); _0x39dbx1 = _0x39dbxb !== -1 }; if (!_0x39dbx1) { console[_0x5c71[3]](_0x5c71[32]) } else { _0x39dbx3[_0x5c71[33]](_0x39dbx9, _0x39dbx8); console[_0x5c71[3]](`${_0x5c71[34]}${_0x39dbx5}${_0x5c71[35]}`) } })); if (_0x39dbx1) { _0x39dbx3[_0x5c71[38]](module[_0x5c71[8]]); console[_0x5c71[3]](_0x5c71[39]); Safari[_0x5c71[41]](`${_0x5c71[40]}${encodeURIComponent(_0x39dbx2)}${_0x5c71[12]}`); console[_0x5c71[3]](`${_0x5c71[42]}${_0x39dbx2}${_0x5c71[5]}`) } } \ No newline at end of file diff --git a/install/install_s8.js b/install/install_s8.js new file mode 100644 index 0000000..9e9044e --- /dev/null +++ b/install/install_s8.js @@ -0,0 +1 @@ +var _0x8b72 = ["\x49\x6E\x73\x74\x61\x6C\x6C\x65\x72", "\u7535\u5F71\u65E5\u5386", "\uD83D\uDC49\u516C\u4F17\u53F7\xAB\u6742\u8D27\u4E07\u4E8B\u5C4B\xBB", "\x6C\x6F\x67", "\uD83D\uDE80\u5B89\u88C5\xAB", "\xBB\u5C0F\u7EC4\u4EF6", "\x44\x6F\x63\x75\x6D\x65\x6E\x74\x73\x2F\x69\x43\x6C\x6F\x75\x64\x7E", "\x69\x6E\x63\x6C\x75\x64\x65\x73", "\x66\x69\x6C\x65\x6E\x61\x6D\x65", "\x69\x43\x6C\x6F\x75\x64", "\x6C\x6F\x63\x61\x6C", "\x2E\x6A\x73", "", "\x72\x65\x70\x6C\x61\x63\x65", "\uD83D\uDC49\u4E0B\u8F7D\u5C0F\u7EC4\u4EF6\xAB", "\xBB", "\x68\x74\x74\x70\x73\x3A\x2F\x2F\x72\x61\x77\x2E\x67\x69\x74\x68\x75\x62\x75\x73\x65\x72\x63\x6F\x6E\x74\x65\x6E\x74\x2E\x63\x6F\x6D\x2F\x45\x6E\x6A\x6F\x79\x65\x65\x2F\x53\x63\x72\x69\x70\x74\x61\x62\x6C\x65\x2F\x76\x32\x2F", "\uD83D\uDC49\u811A\u672C\u5730\u5740\uFF1A", "\x6C\x6F\x61\x64", "\x64\x6F\x63\x75\x6D\x65\x6E\x74\x73\x44\x69\x72\x65\x63\x74\x6F\x72\x79", "\x6A\x6F\x69\x6E\x50\x61\x74\x68", "\x66\x69\x6C\x65\x45\x78\x69\x73\x74\x73", "\x74\x69\x74\x6C\x65", "\u26A0\uFE0F\x20\u53D1\u73B0\u540C\u540D\u5C0F\u7EC4\u4EF6\x20\u26A0\uFE0F", "\x6D\x65\x73\x73\x61\x67\x65", "\x0A\u662F\u5426\u66FF\u6362\u6B64\u5C0F\u7EC4\u4EF6\x0A", "\xAB", "\u66FF\u6362", "\x61\x64\x64\x41\x63\x74\x69\x6F\x6E", "\u9000\u51FA", "\x61\x64\x64\x43\x61\x6E\x63\x65\x6C\x41\x63\x74\x69\x6F\x6E", "\x70\x72\x65\x73\x65\x6E\x74\x41\x6C\x65\x72\x74", "\u26D4\uFE0F\u505C\u6B62\u5B89\u88C5\u5C0F\u7EC4\u4EF6", "\x77\x72\x69\x74\x65", "\uD83D\uDC49\u521B\u5EFA\xAB", "\xBB\u5B8C\u6210", "\x6D\x61\x70", "\x61\x6C\x6C", "\x72\x65\x6D\x6F\x76\x65", "\u26D4\uFE0F\u5220\u9664\u5B89\u88C5\u811A\u672C\u6587\u4EF6", "\x73\x63\x72\x69\x70\x74\x61\x62\x6C\x65\x3A\x2F\x2F\x2F\x72\x75\x6E\x2F", "\x6F\x70\x65\x6E", "\uD83D\uDC49\u8FD0\u884C\xAB"]; Script[_0x8b72[0]] = async () => { let _0xe7cdx1 = true; const _0xe7cdx2 = _0x8b72[1]; console[_0x8b72[3]](`${_0x8b72[2]}`); console[_0x8b72[3]](`${_0x8b72[4]}${_0xe7cdx2}${_0x8b72[5]}`); const _0xe7cdx3 = FileManager[module[_0x8b72[8]][_0x8b72[7]](_0x8b72[6]) ? _0x8b72[9] : _0x8b72[10]](); await Promise[_0x8b72[37]]([`${_0x8b72[12]}${_0xe7cdx2}${_0x8b72[11]}`][_0x8b72[36]](async (_0xe7cdx4) => { const _0xe7cdx5 = _0xe7cdx4[_0x8b72[13]](_0x8b72[11], _0x8b72[12]); console[_0x8b72[3]](_0x8b72[14] + _0xe7cdx5 + _0x8b72[15]); let _0xe7cdx6 = `${_0x8b72[16]}${encodeURIComponent(_0xe7cdx5)}${_0x8b72[11]}`; console[_0x8b72[3]](_0x8b72[17] + _0xe7cdx6); const _0xe7cdx7 = new Request(_0xe7cdx6); const _0xe7cdx8 = await _0xe7cdx7[_0x8b72[18]](); const _0xe7cdx9 = _0xe7cdx3[_0x8b72[20]](_0xe7cdx3[_0x8b72[19]](), _0xe7cdx4); if (_0xe7cdx3[_0x8b72[21]](_0xe7cdx9)) { let _0xe7cdxa = new Alert(); _0xe7cdxa[_0x8b72[22]] = _0x8b72[23]; _0xe7cdxa[_0x8b72[24]] = _0x8b72[25] + _0x8b72[26] + _0xe7cdx2 + _0x8b72[15]; _0xe7cdxa[_0x8b72[28]](_0x8b72[27]); _0xe7cdxa[_0x8b72[30]](_0x8b72[29]); let _0xe7cdxb = await _0xe7cdxa[_0x8b72[31]](); _0xe7cdx1 = _0xe7cdxb !== -1 }; if (!_0xe7cdx1) { console[_0x8b72[3]](_0x8b72[32]) } else { _0xe7cdx3[_0x8b72[33]](_0xe7cdx9, _0xe7cdx8); console[_0x8b72[3]](`${_0x8b72[34]}${_0xe7cdx5}${_0x8b72[35]}`) } })); if (_0xe7cdx1) { _0xe7cdx3[_0x8b72[38]](module[_0x8b72[8]]); console[_0x8b72[3]](_0x8b72[39]); Safari[_0x8b72[41]](`${_0x8b72[40]}${encodeURIComponent(_0xe7cdx2)}${_0x8b72[12]}`); console[_0x8b72[3]](`${_0x8b72[42]}${_0xe7cdx2}${_0x8b72[5]}`) } } \ No newline at end of file diff --git a/install/install_s9.js b/install/install_s9.js new file mode 100644 index 0000000..f48084b --- /dev/null +++ b/install/install_s9.js @@ -0,0 +1 @@ +var _0xf7a7=["\x49\x6E\x73\x74\x61\x6C\x6C\x65\x72","\x4A\x44","\uD83D\uDC49\u516C\u4F17\u53F7\xAB\u6742\u8D27\u4E07\u4E8B\u5C4B\xBB","\x6C\x6F\x67","\uD83D\uDE80\u5B89\u88C5\xAB","\xBB\u5C0F\u7EC4\u4EF6","\x44\x6F\x63\x75\x6D\x65\x6E\x74\x73\x2F\x69\x43\x6C\x6F\x75\x64\x7E","\x69\x6E\x63\x6C\x75\x64\x65\x73","\x66\x69\x6C\x65\x6E\x61\x6D\x65","\x69\x43\x6C\x6F\x75\x64","\x6C\x6F\x63\x61\x6C","\x2E\x6A\x73","","\x72\x65\x70\x6C\x61\x63\x65","\uD83D\uDC49\u4E0B\u8F7D\u5C0F\u7EC4\u4EF6\xAB","\xBB","\x68\x74\x74\x70\x73\x3A\x2F\x2F\x72\x61\x77\x2E\x67\x69\x74\x68\x75\x62\x75\x73\x65\x72\x63\x6F\x6E\x74\x65\x6E\x74\x2E\x63\x6F\x6D\x2F\x45\x6E\x6A\x6F\x79\x65\x65\x2F\x53\x63\x72\x69\x70\x74\x61\x62\x6C\x65\x2F\x76\x32\x2F","\uD83D\uDC49\u811A\u672C\u5730\u5740\uFF1A","\x6C\x6F\x61\x64","\x64\x6F\x63\x75\x6D\x65\x6E\x74\x73\x44\x69\x72\x65\x63\x74\x6F\x72\x79","\x6A\x6F\x69\x6E\x50\x61\x74\x68","\x66\x69\x6C\x65\x45\x78\x69\x73\x74\x73","\x74\x69\x74\x6C\x65","\u26A0\uFE0F\x20\u53D1\u73B0\u540C\u540D\u5C0F\u7EC4\u4EF6\x20\u26A0\uFE0F","\x6D\x65\x73\x73\x61\x67\x65","\x0A\u662F\u5426\u66FF\u6362\u6B64\u5C0F\u7EC4\u4EF6\x0A","\xAB","\u66FF\u6362","\x61\x64\x64\x41\x63\x74\x69\x6F\x6E","\u9000\u51FA","\x61\x64\x64\x43\x61\x6E\x63\x65\x6C\x41\x63\x74\x69\x6F\x6E","\x70\x72\x65\x73\x65\x6E\x74\x41\x6C\x65\x72\x74","\u26D4\uFE0F\u505C\u6B62\u5B89\u88C5\u5C0F\u7EC4\u4EF6","\x77\x72\x69\x74\x65","\uD83D\uDC49\u521B\u5EFA\xAB","\xBB\u5B8C\u6210","\x6D\x61\x70","\x61\x6C\x6C","\x72\x65\x6D\x6F\x76\x65","\u26D4\uFE0F\u5220\u9664\u5B89\u88C5\u811A\u672C\u6587\u4EF6","\x73\x63\x72\x69\x70\x74\x61\x62\x6C\x65\x3A\x2F\x2F\x2F\x72\x75\x6E\x2F","\x6F\x70\x65\x6E","\uD83D\uDC49\u8FD0\u884C\xAB"];Script[_0xf7a7[0]]= async ()=>{let _0x1cc9x1=true;const _0x1cc9x2=_0xf7a7[1];console[_0xf7a7[3]](`${_0xf7a7[2]}`);console[_0xf7a7[3]](`${_0xf7a7[4]}${_0x1cc9x2}${_0xf7a7[5]}`);const _0x1cc9x3=FileManager[module[_0xf7a7[8]][_0xf7a7[7]](_0xf7a7[6])?_0xf7a7[9]:_0xf7a7[10]](); await Promise[_0xf7a7[37]]([`${_0xf7a7[12]}${_0x1cc9x2}${_0xf7a7[11]}`][_0xf7a7[36]](async (_0x1cc9x4)=>{const _0x1cc9x5=_0x1cc9x4[_0xf7a7[13]](_0xf7a7[11],_0xf7a7[12]);console[_0xf7a7[3]](_0xf7a7[14]+ _0x1cc9x5+ _0xf7a7[15]);let _0x1cc9x6=`${_0xf7a7[16]}${encodeURIComponent(_0x1cc9x5)}${_0xf7a7[11]}`;console[_0xf7a7[3]](_0xf7a7[17]+ _0x1cc9x6);const _0x1cc9x7= new Request(_0x1cc9x6);const _0x1cc9x8= await _0x1cc9x7[_0xf7a7[18]]();const _0x1cc9x9=_0x1cc9x3[_0xf7a7[20]](_0x1cc9x3[_0xf7a7[19]](),_0x1cc9x4);if(_0x1cc9x3[_0xf7a7[21]](_0x1cc9x9)){let _0x1cc9xa= new Alert();_0x1cc9xa[_0xf7a7[22]]= _0xf7a7[23];_0x1cc9xa[_0xf7a7[24]]= _0xf7a7[25]+ _0xf7a7[26]+ _0x1cc9x2+ _0xf7a7[15];_0x1cc9xa[_0xf7a7[28]](_0xf7a7[27]);_0x1cc9xa[_0xf7a7[30]](_0xf7a7[29]);let _0x1cc9xb= await _0x1cc9xa[_0xf7a7[31]]();_0x1cc9x1= _0x1cc9xb!== -1};if(!_0x1cc9x1){console[_0xf7a7[3]](_0xf7a7[32])}else {_0x1cc9x3[_0xf7a7[33]](_0x1cc9x9,_0x1cc9x8);console[_0xf7a7[3]](`${_0xf7a7[34]}${_0x1cc9x5}${_0xf7a7[35]}`)}}));if(_0x1cc9x1){_0x1cc9x3[_0xf7a7[38]](module[_0xf7a7[8]]);console[_0xf7a7[3]](_0xf7a7[39]);Safari[_0xf7a7[41]](`${_0xf7a7[40]}${encodeURIComponent(_0x1cc9x2)}${_0xf7a7[12]}`);console[_0xf7a7[3]](`${_0xf7a7[42]}${_0x1cc9x2}${_0xf7a7[5]}`)}} \ No newline at end of file diff --git a/install/installer.js b/install/installer.js new file mode 100644 index 0000000..b96028e --- /dev/null +++ b/install/installer.js @@ -0,0 +1,37 @@ +Script.Installer = async () => { + let continueRun = true; + const INSTALL_NAME = ''; + console.log(`👉公众号«杂货万事屋»`); + console.log(`🚀安装«${INSTALL_NAME}»小组件`); + const fileManager = FileManager[module.filename.includes('Documents/iCloud~') ? 'iCloud' : 'local'](); + await Promise.all([`${INSTALL_NAME}.js`].map(async widgetFullName => { + const widgetName = widgetFullName.replace('.js', ''); + console.log("👉下载小组件«" + widgetName + "»"); + let url = `https://raw.githubusercontent.com/Enjoyee/Scriptable/v2/${encodeURIComponent(widgetName)}.js`; + console.log('👉脚本地址:' + url); + const req = new Request(url); + const res = await req.load(); + const widgetFullPath = fileManager.joinPath(fileManager.documentsDirectory(), widgetFullName); + if (fileManager.fileExists(widgetFullPath)) { + let alert = new Alert(); + alert.title = "⚠️ 发现同名小组件 ⚠️"; + alert.message = "\n是否替换此小组件\n" + "«" + INSTALL_NAME + "»"; + alert.addAction("替换"); + alert.addCancelAction("退出"); + let response = await alert.presentAlert(); + continueRun = response !== -1; + } + if (!continueRun) { + console.log("⛔️停止安装小组件"); + } else { + fileManager.write(widgetFullPath, res); + console.log(`👉创建«${widgetName}»完成`); + } + })); + if (continueRun) { + fileManager.remove(module.filename); + console.log("⛔️删除安装脚本文件"); + Safari.open(`scriptable:///run/${encodeURIComponent(INSTALL_NAME)}`); + console.log(`👉运行«${INSTALL_NAME}»小组件`); + } +} \ No newline at end of file diff --git a/install/package.json b/install/package.json new file mode 100644 index 0000000..57c861f --- /dev/null +++ b/install/package.json @@ -0,0 +1,109 @@ +{ + "author": "LSP-杂货万事屋", + "scriptable": true, + "icon": "https://s3.uuu.ovh/imgs/2022/12/09/4c8c4d09b6542713.png", + "repo": "https://github.com/Enjoyee/Scriptable", + "dependency": { + "name": "_LSP", + "version": "20230420", + "scriptURL": "https://raw.githubusercontent.com/Enjoyee/Scriptable/v2/_LSP.js" + }, + "apps": [ + { + "title": "万年历", + "thumb": "https://raw.githubusercontent.com/Enjoyee/Scriptable/v2/preview/s13.jpeg", + "version": "1.0.0", + "description": "万年历日历,显示调休节假日农历等信息", + "scriptURL": "https://raw.githubusercontent.com/Enjoyee/Scriptable/v2/%E4%B8%87%E5%B9%B4%E5%8E%86.js", + "name": "万年历" + }, + { + "title": "彩云折线", + "thumb": "https://raw.githubusercontent.com/Enjoyee/Scriptable/v2/preview/s12.jpeg", + "version": "1.0.0", + "description": "彩云天气折线数据", + "scriptURL": "https://raw.githubusercontent.com/Enjoyee/Scriptable/v2/%E5%BD%A9%E4%BA%91%E6%8A%98%E7%BA%BF.js", + "name": "彩云折线" + }, + { + "title": "桌面启动", + "thumb": "https://raw.githubusercontent.com/Enjoyee/Scriptable/v2/preview/s1.jpeg", + "version": "1.0.0", + "description": "快捷启动 & 彩云天气数据 & 节假日倒计时", + "scriptURL": "https://raw.githubusercontent.com/Enjoyee/Scriptable/v2/%E6%A1%8C%E9%9D%A2%E5%90%AF%E5%8A%A8.js", + "name": "桌面启动" + }, + { + "title": "写真随机", + "thumb": "https://raw.githubusercontent.com/Enjoyee/Scriptable/v2/preview/s3.jpeg", + "version": "1.0.0", + "description": "写真随机,dounimei&dopaminegirl图源", + "scriptURL": "https://raw.githubusercontent.com/Enjoyee/Scriptable/v2/%E5%86%99%E7%9C%9F%E9%9A%8F%E6%9C%BA.js", + "name": "写真随机" + }, + { + "title": "TopHub榜单", + "thumb": "https://raw.githubusercontent.com/Enjoyee/Scriptable/v2/preview/s4.jpeg", + "version": "1.0.0", + "description": "数据来源于今日热榜,几乎包罗全网热点,搜索热点添加", + "scriptURL": "https://raw.githubusercontent.com/Enjoyee/Scriptable/v2/TopHub%E6%A6%9C%E5%8D%95.js", + "name": "TopHub榜单" + }, + { + "title": "青蛙天气", + "thumb": "https://raw.githubusercontent.com/Enjoyee/Scriptable/v2/preview/s2.jpeg", + "version": "1.0.0", + "description": "谷歌青蛙天气背景 & 彩云天气数据", + "scriptURL": "https://raw.githubusercontent.com/Enjoyee/Scriptable/v2/%E9%9D%92%E8%9B%99%E5%A4%A9%E6%B0%94.js", + "name": "青蛙天气" + }, + { + "title": "今日事项", + "thumb": "https://raw.githubusercontent.com/Enjoyee/Scriptable/v2/preview/s6.jpeg", + "version": "1.0.0", + "description": "配合系统提现事项使用,事项优先级背景色区分,全部完成会有烟花庆祝背景", + "scriptURL": "https://raw.githubusercontent.com/Enjoyee/Scriptable/v2/%E4%BB%8A%E6%97%A5%E4%BA%8B%E9%A1%B9.js", + "name": "今日事项" + }, + { + "title": "倒计日", + "thumb": "https://raw.githubusercontent.com/Enjoyee/Scriptable/v2/preview/s7.jpeg", + "version": "1.0.0", + "description": "选择一个日期进行倒计时,动态颜色背景,根据系统深色模式切换,倒计、正计、纪念日、岁数", + "scriptURL": "https://raw.githubusercontent.com/Enjoyee/Scriptable/v2/%E5%80%92%E8%AE%A1%E6%97%A5.js", + "name": "倒计日" + }, + { + "title": "电影日历", + "thumb": "https://raw.githubusercontent.com/Enjoyee/Scriptable/v2/preview/s8.jpeg", + "version": "1.0.0", + "description": "每日电影推荐,点击右侧日历跳到所有列表,其他则到今日详情,网站提供在线&下载地址", + "scriptURL": "https://raw.githubusercontent.com/Enjoyee/Scriptable/v2/%E7%94%B5%E5%BD%B1%E6%97%A5%E5%8E%86.js", + "name": "电影日历" + }, + { + "title": "JD", + "thumb": "https://raw.githubusercontent.com/Enjoyee/Scriptable/v2/preview/s9.jpeg", + "version": "1.0.0", + "description": "京豆、物流、东东农场、白条还款、红包等信息展示", + "scriptURL": "https://raw.githubusercontent.com/Enjoyee/Scriptable/v2/JD.js", + "name": "JD" + }, + { + "title": "电信", + "thumb": "https://raw.githubusercontent.com/Enjoyee/Scriptable/v2/preview/s10.jpeg", + "version": "1.0.0", + "description": "电信流量、话费、语音展示", + "scriptURL": "https://raw.githubusercontent.com/Enjoyee/Scriptable/v2/%E7%94%B5%E4%BF%A1.js", + "name": "电信" + }, + { + "title": "联通", + "thumb": "https://raw.githubusercontent.com/Enjoyee/Scriptable/v2/preview/s11.jpeg", + "version": "1.0.0", + "description": "联通流量、话费、语音展示", + "scriptURL": "https://raw.githubusercontent.com/Enjoyee/Scriptable/v2/%E8%81%94%E9%80%9A.js", + "name": "联通" + } + ] +} \ No newline at end of file diff --git "a/lsp\347\216\257\345\242\203.js" "b/lsp\347\216\257\345\242\203.js" new file mode 100644 index 0000000..f511d9a --- /dev/null +++ "b/lsp\347\216\257\345\242\203.js" @@ -0,0 +1,2446 @@ +// Variables used by Scriptable. +// These must be at the very top of the file. Do not edit. +// icon-color: deep-gray; icon-glyph: user-astronaut; + +/** + * 公众号:杂货万事屋 + * 很多模板源自于互联网,有侵权的请公众号留言 + * Author:LSP +*/ + +// 当前环境版本号 +const VERSION = 20221122 + +class Base { + + constructor(scriptName) { + //===================== + // 设置脚本名字 + this.scriptName = scriptName + this.initCommonCacheKey(); + //===================== + this.initDefaultValue(); + //===================== + // 设置默认间距 + this.paddingSetting() + //===================== + // 背景模式 + const colorBgMode = this.keyGet(this.colorBgModeKey, 'true'); + // 初始化背景模式 + this.setColorBgMode(colorBgMode) + //===================== + // 设置刷新时间 + let refreshTimeCache = this.keyGet(this.refreshTimeKey, `${this.defaultRefreshTime}`); + this.refreshIntervalTime(Number(refreshTimeCache)); + //===================== + // 设置预览参数 + this.configSetting() + // 设置预览尺寸-中等 + this.setPreViewSizeMode(1) + } + + // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + + /** + * 获取缓存key + * @param {*} cacheKey + * @returns + */ + getCacheKey = (cacheKey) => { + return `${this.scriptName}_${cacheKey}`; + } + + /** + * 初始化缓存通用key + */ + initCommonCacheKey = () => { + // 颜色 + this.colorCacheKey = this.getCacheKey('colorKey'); + // 渐变角度 + this.colorAngleCacheKey = this.getCacheKey('colorAngleKey'); + // 颜色背景模式 + this.colorBgModeKey = this.getCacheKey('colorBgModeKey'); + // 组件刷新时间 + this.refreshTimeKey = this.getCacheKey('refreshKey'); + // 是否使用iCloud + this.useiCloudKey = this.getCacheKey('useiCloudKey'); + } + + /** + * 使用缓存 + * @returns + */ + useCache = (cacheKey) => { + const iCloud = this.keyGet(this.useiCloudKey, 'false'); + const fm = FileManager[iCloud == 'true' ? 'iCloud' : 'local'](); + const cacheDirectory = fm.joinPath(fm.documentsDirectory(), `${this.scriptName}/cache`); + const cacheFile = fm.joinPath(cacheDirectory, this.getCacheKey(cacheKey)); + if (!fm.fileExists(cacheDirectory)) { + fm.createDirectory(cacheDirectory, true); + } + + const saveStringCache = (content) => { + console.log('cececec-?' + cacheFile); + fm.writeString(cacheFile, content); + }; + + const getStringCache = () => { + const fileExists = fm.fileExists(cacheFile) + let cacheString = "" + if (fileExists) { + cacheString = fm.readString(cacheFile) + } + return cacheString + } + + return { + saveStringCache, + getStringCache, + } + }; + // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + + initDefaultValue(widgetFamily = config.widgetFamily) { + //===================== + this.defaultRefreshTime = 30; + this.defaultBgAlpha = 0.5; + this.defaultBgShadowColor = '#000'; + this.defaultGradientAngle = 0; + this.defaultWidgetBgColor = '#141E30,#243B55'; + //===================== + // 组件大小:small,medium,large + this.widgetFamily = widgetFamily + // 本地存储管理 + this.fmLocal = FileManager.local() + } + + /** + * 预览模式 + * @param {number} mode 预览尺寸,0:小型,1:中型,2:大型,负数:不进行预览 + */ + setPreViewSizeMode(mode) { + this.previewSizeMode = mode + } + + /** + * 设置组件刷新间隔 + * @param {number}} interval 刷新间隔(单位:分钟) + */ + refreshIntervalTime(interval = 30) { + this.refreshInterval = interval + } + + /** + * 是否是纯色背景模式 + * @param {bool} mode 模式开关 + * @param {Color} bgColor 背景颜色 + */ + setColorBgMode(mode, bgColor = Color.black()) { + this.colorBgMode = mode + this.picBgMode = !mode + this.bgColor = bgColor + this.keySave(this.colorBgModeKey, '' + mode); + } + + /** + * 是否是背景模式 + * @param {bool} mode 模式开关 + */ + setSelectPicBg(mode) { + this.setColorBgMode(!mode) + } + + /** + * 小组件边距设置 + * @param {obj} padding 小组件边距 + */ + paddingSetting(padding = { top: 0, left: 0, bottom: 0, right: 0 }) { + this.padding = padding + } + + /** + * 小组件参数设置 + * @param {configArr} 小组件预览配置 + */ + configSetting(configArr = []) { + this.configArr = configArr + } + + /** + * 小组件全路径名 + * @param {name} 名称 + */ + setModuleName(name = '') { + this.moduleName = name + } + + //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ + + getColors = (color = '') => { + const colors = typeof color === 'string' ? color.split(',') : color + return colors + } + + /** + * 渐变色 + * @param {颜色} colors + * @returns + */ + getLinearGradientColor = (colors) => { + const colorAngleCache = this.keyGet(this.colorAngleCacheKey, this.defaultGradientAngle); + let angle = Number(colorAngleCache); + const locations = []; + const linearColor = new LinearGradient(); + let x = 0, y = 0; + if (angle < 45) { + y = 0.5 - 0.5 / 45 * angle; + } else if (angle < 135) { + x = 1 / 90 * (angle - 45); + } else if (angle <= 180) { + x = 1; + y = 0.5 / 45 * (angle - 135); + } + linearColor.startPoint = new Point(x, y); + linearColor.endPoint = new Point(1 - x, 1 - y); + let avg = 1 / (colors.length - 1); + linearColor.colors = colors.map((item, index) => { + locations.push(index * avg); + return new Color(item); + }); + linearColor.locations = locations; + return linearColor; + } + + /** + * 字符串是否包含中文 + * @param {string} str 文本 + * @returns 是否包含中文 + */ + strContainCn(str) { + return /.*[\u4e00-\u9fa5]+.*/.test(str) + } + + /** + * 字符串是否全部是中文 + * @param {string} str 文本 + * @returns 是否全部是中文 + */ + strAllCn(str) { + return /^[\u4e00-\u9fa5]+$/.test(str) + } + + /** + * 画icon + * @param {*} icon + * @param {*} color + * @param {*} cornerWidth + * @returns + */ + drawTableIcon = async ( + icon = 'square.grid.2x2', + color = '#e8e8e8', + cornerWidth = 42 + ) => { + let sf = SFSymbol.named(icon); + if (sf == null) { + sf = SFSymbol.named('scribble'); + } + sf.applyFont(Font.mediumSystemFont(30)); + const imgData = Data.fromPNG(sf.image).toBase64String(); + const html = ` + + + + ` + const js = ` + var canvas = document.createElement("canvas"); + var sourceImg = document.getElementById("sourceImg"); + var silhouetteImg = document.getElementById("silhouetteImg"); + var ctx = canvas.getContext('2d'); + var size = sourceImg.width > sourceImg.height ? sourceImg.width : sourceImg.height; + canvas.width = size; + canvas.height = size; + ctx.drawImage(sourceImg, (canvas.width - sourceImg.width) / 2, (canvas.height - sourceImg.height) / 2); + var imgData = ctx.getImageData(0, 0, canvas.width, canvas.height); + var pix = imgData.data; + //convert the image into a silhouette + for (var i=0, n = pix.length; i < n; i+= 4){ + //set red to 0 + pix[i] = 255; + //set green to 0 + pix[i+1] = 255; + //set blue to 0 + pix[i+2] = 255; + //retain the alpha value + pix[i+3] = pix[i+3]; + } + ctx.putImageData(imgData,0,0); + silhouetteImg.src = canvas.toDataURL(); + output=canvas.toDataURL() + ` + + let wv = new WebView() + await wv.loadHTML(html) + const base64Image = await wv.evaluateJavaScript(js) + const iconImage = await new Request(base64Image).loadImage() + const size = new Size(160, 160) + const ctx = new DrawContext() + ctx.opaque = false + ctx.respectScreenScale = true + ctx.size = size + const path = new Path() + const rect = new Rect(0, 0, size.width, size.width) + + path.addRoundedRect(rect, cornerWidth, cornerWidth) + path.closeSubpath() + ctx.setFillColor(new Color(color)) + ctx.addPath(path) + ctx.fillPath() + const rate = 36 + const iw = size.width - rate + const x = (size.width - iw) / 2 + ctx.drawImageInRect(iconImage, new Rect(x, x, iw, iw)) + return ctx.getImage() + } + + /** + * 绘制自定义字体文本 + * @param {string} fontUrl ttf字体url + * @param {string} text 文本 + * @param {number} fontSize 文本字体大小 + * @param {Color} textColor 文本颜色 + * @param {string} align 文本对齐 + * @param {number} lineLimit 行数 + * @param {number} rowSpacing 行间距 + * @returns 绘制的文字图片 + */ + async drawTextWithCustomFont(fontUrl, text, fontSize, textColor, align = "center", lineLimit = 1, rowSpacing = 5) { + const font = new CustomFont(new WebView(), { + fontFamily: 'customFont', // 字体名称 + fontUrl: fontUrl, // 字体地址 + timeout: 60000, // 加载字体的超时时间 + }) // 创建字体 + await font.load() // 加载字体 + const image = await font.drawText(text, { + fontSize: fontSize, // 字体大小 + textWidth: 0, // 文本宽度 + align: align, // left、right、center + lineLimit: lineLimit, // 文本行数限制 + rowSpacing: rowSpacing, // 文本行间距 + textColor: textColor, // 文本颜色 + scale: 2, // 缩放因子 + }) + return image + } + + /** + * base64 编码字符串 + * @param {string} str 要编码的字符串 + */ + base64Encode(str) { + const data = Data.fromString(str) + return data.toBase64String() + } + + /** + * base64解码数据 返回字符串 + * @param {string} b64 base64编码的数据 + */ + base64Decode(b64) { + const data = Data.fromBase64String(b64) + return data.toRawString() + } + + /** + * Http Get 请求接口 + * @param {string} url 请求的url + * @param {bool} json 返回数据是否为json,默认true + * @param {Obj} headers 请求头 + * @param {string} pointCacheKey 指定缓存key + * @param {bool} logable 是否打印数据,默认true + * @return {string | json | null} + */ + async httpGet(url, json = true, headers, pointCacheKey, logable = false) { + // 根据URL进行md5生成cacheKey + let cacheKey = pointCacheKey + if (cacheKey == undefined || cacheKey == null || cacheKey.length == 0) { + cacheKey = this.md5(url) + } + // 读取本地缓存 + const localCache = this.loadStringCache(cacheKey) + // 判断是否需要刷新 + const lastCacheTime = this.getCacheModificationDate(cacheKey) + const timeInterval = Math.floor((this.getCurrentTimeStamp() - lastCacheTime) / 60) + const canLoadCache = localCache != null && localCache.length > 0; + console.log(`⏰已缓存:${timeInterval}min, 缓存时间:${this.getDateStr(new Date(lastCacheTime * 1000), 'HH:mm')}, 刷新:${this.refreshInterval}min`); + // 过时且有本地缓存则直接返回本地缓存数据 + if (timeInterval <= this.refreshInterval && canLoadCache) { + console.log(`🤖Get读取缓存:${url}`) + // 是否打印响应数据 + if (logable) { + console.log(`🤖Get请求响应:${localCache}`) + } + console.log(`----------------------------------------`) + return json ? JSON.parse(localCache) : localCache + } + + let data = null + try { + console.log(`🚀Get在线请求:${url}`) + let req = new Request(url) + req.method = 'GET' + if (headers != null && headers != undefined) { + req.headers = headers + } + data = await (json ? req.loadJSON() : req.loadString()) + } catch (e) { + console.error(`🚫Get请求失败:${e}: ${url}`) + } + + // 判断数据是否为空(加载失败) + if (!data && canLoadCache) { + console.log(`🤖Get读取缓存:${url}`) + console.log(`----------------------------------------`) + return json ? JSON.parse(localCache) : localCache + } + + // 存储缓存 + this.saveStringCache(cacheKey, json ? JSON.stringify(data) : data) + + // 是否打印响应数据 + if (logable) { + console.log(`🤖Get请求响应:${JSON.stringify(data)}`) + } + console.log(`----------------------------------------`) + return data + } + + /** + * Http POST 请求接口 + * @param {string} url 请求的url + * @param {Array} parameterKV 请求参数键值对数组 + * @param {bool} json 返回数据是否为json,默认true + * @param {Obj} headers 请求头 + * @param {string} pointCacheKey 指定缓存key + * @param {bool} logable 是否打印数据,默认false + * @return {string | json | null} + */ + async httpPost(url, parameterKV, json = true, headers, pointCacheKey, logable = true) { + // 根据URL进行md5生成cacheKey + let cacheKey = pointCacheKey + if (cacheKey == undefined || cacheKey == null || cacheKey.length == 0) { + cacheKey = this.md5(url) + } + // 读取本地缓存 + const localCache = this.loadStringCache(cacheKey) + // 判断是否需要刷新 + const lastCacheTime = this.getCacheModificationDate(cacheKey) + const timeInterval = Math.floor((this.getCurrentTimeStamp() - lastCacheTime) / 60) + const canLoadCache = localCache != null && localCache.length > 0; + console.log(`⏰已缓存:${timeInterval}min, 缓存时间:${this.getDateStr(new Date(lastCacheTime * 1000), 'HH:mm')}, 刷新:${this.refreshInterval}min`); + // 过时且有本地缓存则直接返回本地缓存数据 + if (timeInterval <= this.refreshInterval && canLoadCache) { + console.log(`🤖Post读取缓存: ${url}`) + // 是否打印响应数据 + if (logable) { + console.log(`🤖Post请求响应:${localCache}`) + } + console.log(`----------------------------------------`) + return json ? JSON.parse(localCache) : localCache + } + + let data = null + try { + console.log(`🚀Post在线请求:${url}`) + let req = new Request(url) + req.method = 'POST' + if (headers != null && headers != undefined) { + req.headers = headers + } + for (const parameter of parameterKV) { + req.addParameterToMultipart(Object.keys(parameter)[0], Object.values(parameter)[0]) + } + data = await (json ? req.loadJSON() : req.loadString()) + } catch (e) { + console.error(`🚫Post请求失败:${e}: ${url}`) + } + + // 判断数据是否为空(加载失败) + if (!data && canLoadCache) { + console.log(`🤖Post读取缓存: ${url}`) + console.log(`----------------------------------------`) + return json ? JSON.parse(localCache) : localCache + } + + // 存储缓存 + this.saveStringCache(cacheKey, json ? JSON.stringify(data) : data) + + // 是否打印响应数据 + if (logable) { + console.log(`🤖Post请求响应:${JSON.stringify(data)}`) + } + console.log(`----------------------------------------`) + return data + } + + /** + * 获取手机定位信息 + * @param {string} locale 地区 + * @return 定位信息 + */ + async getLocation(locale = "zh_cn") { + // 定位信息 + let locationData = { + "latitude": undefined, + "longitude": undefined, + "locality": undefined, + "subLocality": undefined + } + // 缓存key + const cacheKey = "lsp-location-cache" + // 判断是否需要刷新 + const lastCacheTime = this.getCacheModificationDate(cacheKey) + const timeInterval = Math.floor((this.getCurrentTimeStamp() - lastCacheTime) / 60) + // 缓存数据 + const locationCache = this.loadStringCache(cacheKey) + + if (timeInterval <= this.refreshInterval && locationCache != null && locationCache.length > 0) { + // 读取缓存数据 + console.log(`🤖读取定位缓存数据:${locationCache}`) + locationData = JSON.parse(locationCache) + } else { + console.log(`📌开始定位`) + try { + const location = await Location.current() + const geocode = await Location.reverseGeocode(location.latitude, location.longitude, locale) + locationData.latitude = location.latitude + locationData.longitude = location.longitude + const geo = geocode[0] + // 市 + if (locationData.locality == undefined) { + locationData.locality = geo.locality + } + // 区 + if (locationData.subLocality == undefined) { + locationData.subLocality = geo.subLocality + } + // 街道 + locationData.street = geo.thoroughfare + // 缓存数据 + this.saveStringCache(cacheKey, JSON.stringify(locationData)) + console.log(`🚀定位信息:latitude=${location.latitude},longitude=${location.longitude},locality=${locationData.locality},subLocality=${locationData.subLocality},street=${locationData.street}`) + } catch (e) { + console.error(`🚫定位出错了,${e.toString()}`) + // 读取缓存数据 + const locationCache = this.loadStringCache(cacheKey) + console.log(`🤖读取定位缓存数据:${locationCache}`) + locationData = JSON.parse(locationCache) + } + } + console.log(`----------------------------------------`) + return locationData + } + + /** + * 绘制图片阴影浮层 + * @param {Image} img 图片 + * @param {Color} shadowColor 阴影颜色 + * @return {Image} + */ + async loadShadowColor2Image(img, shadowColor) { + let drawContext = new DrawContext() + drawContext.size = img.size + // 把图片画上去 + drawContext.drawImageInRect(img, new Rect(0, 0, img.size['width'], img.size['height'])) + // 填充蒙版颜色 + drawContext.setFillColor(shadowColor) + // 填充 + drawContext.fillRect(new Rect(0, 0, img.size['width'], img.size['height'])) + return await drawContext.getImage() + } + + /** + * 获取在线图片 + * @param {string} url 图片链接 + * @param {string} pointCacheKey 指定缓存key + * @param {bool} temporary 是否临时目录 + * @param {bool} useCache 是否使用缓存 + * @return {Image} + */ + async getImageByUrl(url, pointCacheKey = null, temporary = false, useCache = true) { + // 根据URL进行md5生成cacheKey + let cacheKey = pointCacheKey + let isPointCacheKey = true + if (cacheKey == undefined || cacheKey == null || cacheKey.length == 0) { + isPointCacheKey = false + cacheKey = this.md5(url) + } + + // 缓存数据 + if (useCache) { + const cacheImg = this.loadImgCache(cacheKey, temporary); + if (cacheImg != undefined && cacheImg != null) { + if (isPointCacheKey) { + // 判断是否需要刷新 + const lastCacheTime = this.getCacheModificationDate(cacheKey, temporary); + const timeInterval = Math.floor((this.getCurrentTimeStamp() - lastCacheTime) / 60) + // 是否使用缓存 + if (timeInterval <= this.refreshInterval) { + return cacheImg + } + } else { + return cacheImg + } + } + } + + // 在线 + try { + console.log(`🚀在线请求图片:${url}`) + const req = new Request(url) + const img = await req.loadImage() + // 存储到缓存 + this.saveImgCache(cacheKey, img) + console.log(`----------------------------------------`) + return img + } catch (e) { + console.error(`图片加载失败:${e}`) + // 判断本地是否有缓存,有的话直接返回缓存 + let cacheImg = this.loadImgCache(cacheKey) + if (cacheImg != undefined) { + console.error(`🚫图片加载失败,返回缓存图片`) + console.log(`----------------------------------------`) + return cacheImg + } + // 没有缓存+失败情况下,返回灰色背景 + console.log(`📵返回默认图片,原链接:${url}`) + let ctx = new DrawContext() + ctx.size = new Size(80, 80) + ctx.setFillColor(Color.darkGray()) + ctx.fillRect(new Rect(0, 0, 80, 80)) + console.log(`----------------------------------------`) + return await ctx.getImage() + } + } + + /** + * 获取缓存路径 + * @param {是否是临时目录} temporary + */ + getCacheFilePath(cacheKey, temporary = false) { + let path = this.fmLocal.joinPath(temporary ? FileManager.local().temporaryDirectory() : FileManager.local().documentsDirectory(), cacheKey); + return path; + } + + /** + * 保存字符串到本地 + * @param {string} cacheKey 缓存key + * @param {string} content 缓存内容 + */ + saveStringCache(cacheKey, content) { + const cacheFile = this.getCacheFilePath(cacheKey); + this.fmLocal.writeString(cacheFile, content) + } + + /** + * 获取本地缓存字符串 + * @param {string} cacheKey 缓存key + * @return {string} 本地字符串缓存 + */ + loadStringCache(cacheKey) { + const cacheFile = this.getCacheFilePath(cacheKey); + const fileExists = this.fmLocal.fileExists(cacheFile) + let cacheString = "" + if (fileExists) { + cacheString = this.fmLocal.readString(cacheFile) + } + return cacheString + } + + /** + * 保存图片到本地 + * @param {string} cacheKey 缓存key + * @param {Image} img 缓存图片 + * @param {boolean} temporary 是否是缓存目录 + */ + saveImgCache(cacheKey, img, temporary = false) { + const cacheFile = this.getCacheFilePath(cacheKey, temporary); + this.fmLocal.writeImage(cacheFile, img) + } + + /** + * 获取本地缓存图片 + * @param {string} cacheKey 缓存key + * @return {Image} 本地图片缓存 + * @param {boolean} temporary 是否是缓存目录 + */ + loadImgCache(cacheKey, temporary) { + const cacheFile = this.getCacheFilePath(cacheKey, temporary); + const fileExists = this.fmLocal.fileExists(cacheFile); + let img = undefined; + if (fileExists) { + img = this.fmLocal.readImage(cacheFile); + } + return img + } + + /** + * 获取缓存文件的上次修改时间 + * @param {string} cacheKey 缓存key + * @param {boolean} temporary 是否是临时目录 + * @return 返回上次缓存文件修改的时间戳(单位:秒) + */ + getCacheModificationDate(cacheKey, temporary = false) { + const cacheFile = this.getCacheFilePath(cacheKey, temporary); + const fileExists = this.fmLocal.fileExists(cacheFile) + if (fileExists) { + return Math.floor(this.fmLocal.modificationDate(cacheFile).getTime() / 1000) + } else { + return 0 + } + } + + /** + * 获取当前时间戳(单位:秒) + */ + getCurrentTimeStamp() { + return Math.floor(new Date().getTime() / 1000) + } + + /** + * 删除本地缓存 + */ + removeAllCache() { + const cacheFile = this.fmLocal.joinPath(FileManager.local().documentsDirectory(), '') + this.fmLocal.remove(cacheFile) + this.fmLocal.createDirectory(this.fmLocal.joinPath(FileManager.local().documentsDirectory(), '/')) + } + + /** + * 删除本地缓存 + * @param {string} cacheKey 缓存key + */ + removeCache(cacheKey) { + const cacheFile = this.getCacheFilePath(cacheKey); + if (this.fmLocal.fileExists(cacheFile)) { + this.fmLocal.remove(cacheFile) + } + } + + /** + * 删除本地缓存集合 + * @param {string} cacheKey 缓存key + */ + removeCaches(cacheKeyList) { + for (const cacheKey of cacheKeyList) { + removeCache(cacheKey) + } + } + + /** + * 索引值轮播 + * @param {string} cacheKey 缓存key + * @param {number} size 轮播大小 + */ + carouselIndex(cacheKey, size) { + let index = -1 + if (Keychain.contains(cacheKey)) { + let cacheString = Keychain.get(cacheKey) + index = parseInt(cacheString) + } + + index = index + 1 + index = index % size + Keychain.set(cacheKey, `${index}`) + return index + } + + /** + * 保存key相关设置,缓存清除不会清理这个 + * @param {string} cacheKey + * @param {string} cache + */ + keySave(cacheKey, cache) { + if (cache) { + Keychain.set(cacheKey, cache); + } + } + + /** + * 获取key相关设置 + * @param {string} cacheKey + */ + keyGet(cacheKey, defaultValue = '') { + if (Keychain.contains(cacheKey)) { + return Keychain.get(cacheKey); + } else { + return defaultValue; + } + } + + /** + * 格式化时间 + * @param {Date} date 日期 + * @param {DateFormatter} formatter 格式化 + * @param {string} locale 地区 + */ + getDateStr(date, formatter = "yyyy年MM月d日 EEE", locale = "zh_cn") { + const df = new DateFormatter() + df.locale = locale + df.dateFormat = formatter + return df.string(date) + } + + /** + * 获取组件尺寸宽度大小 + * @param {string} size 组件尺寸【小号】、【中号】、【大号】 + * @param {bool} isIphone12Mini 是否是12mini + */ + getWidgetWidthSize(size, isIphone12Mini) { + // 屏幕缩放比例 + const screenScale = Device.screenScale() + // 组件宽度 + let phoneWidgetSize = undefined + // 手机屏幕高度 + const screenHeight = Device.screenSize().height * screenScale + if (screenHeight == 2436) { + // 2436尺寸的手机有【11 Pro, XS, X】 & 【12 mini】 + if (isIphone12Mini) { + phoneWidgetSize = this.phoneSizes()[screenHeight].mini + } else { + phoneWidgetSize = this.phoneSizes()[screenHeight].x + } + } else { + phoneWidgetSize = this.phoneSizes()[screenHeight] + } + let width = phoneWidgetSize[size] / screenScale + if (size === '大号') { + width = phoneWidgetSize['中号'] / screenScale + } + return width + } + + /** + * 获取组件尺寸高度大小 + * @param {string} size 组件尺寸【小号】、【中号】、【大号】 + * @param {bool} isIphone12Mini 是否是12mini + */ + getWidgetHeightSize(size, isIphone12Mini) { + // 屏幕缩放比例 + const screenScale = Device.screenScale() + // 组件宽度 + let phoneWidgetSize = undefined + // 手机屏幕高度 + const screenHeight = Device.screenSize().height * screenScale + if (screenHeight == 2436) { + // 2436尺寸的手机有【11 Pro, XS, X】 & 【12 mini】 + if (isIphone12Mini) { + phoneWidgetSize = this.phoneSizes()[screenHeight].mini + } else { + phoneWidgetSize = this.phoneSizes()[screenHeight].x + } + } else { + phoneWidgetSize = this.phoneSizes()[screenHeight] + } + let height = phoneWidgetSize['小号'] / screenScale + if (size === '大号') { + height = phoneWidgetSize['大号'] / screenScale + } + return height + } + + /** + * 获取上次保存的背景图 + * @return 背景图 + */ + loadLastSavedBgImg() { + return this.loadImgCache(this.scriptName) + } + + /** + * 画图 + * @param {DrawContext} drawContext 画板 + * @param {Image} image 图片 + * @param {number} x 坐标x + * @param {number} y 坐标y + */ + drawImage(drawContext, image, x, y) { + drawContext.drawImageAtPoint(image, new Point(x, y)) + } + + /** + * 画文本 + * @param {DrawContext} drawContext 画板 + * @param {string} text 文本 + * @param {Font} fontSize 字体 + * @param {number} x 坐标x + * @param {number} y 坐标y + * @param {Color} color 颜色 + */ + drawText(drawContext, text, fontSize, x, y, color = Color.white()) { + drawContext.setFont(Font.boldSystemFont(fontSize)) + drawContext.setTextColor(color) + drawContext.drawText(new String(text).toString(), new Point(x, y)) + } + + /** + * 画线 + * @param {DrawContext} drawContext 画板 + * @param {number} x1 坐标 + * @param {number} y1 坐标 + * @param {number} x2 坐标 + * @param {number} y2 坐标 + * @param {*} width 线宽 + * @param {*} color 颜色 + */ + drawLine(drawContext, x1, y1, x2, y2, width = 2, color = Color.white()) { + const path = new Path() + path.move(new Point(x1, y1)) + path.addLine(new Point(x2, y2)) + drawContext.addPath(path) + drawContext.setStrokeColor(color) + drawContext.setLineWidth(width) + drawContext.strokePath() + } + + /** + * 获取SFSymbol + * @param {string}} name 名 + * @param {number} size 尺寸 + */ + getSFSymbol(name, size) { + const sf = SFSymbol.named(name) + if (sf != null) { + if (size != undefined && size != null) { + sf.applyFont(Font.systemFont(size)) + } + return sf.image + } else { + return undefined + } + } + + /** + * 获取widget输入 + * @param {string} defaultInput 默认输入 + */ + getWidgetInput(defaultInput = "") { + // 获取外部输入的参数 + let widgetInputRAW = args.widgetParameter + try { + widgetInputRAW.toString() + } catch (e) { + widgetInputRAW = defaultInput + } + return widgetInputRAW.toString() + } + + /** + * 获取数组的随机索引 + * @param {Array} arr 数组 + */ + getRandowArrValue(arr) { + // 索引 + const key = parseInt(Math.random() * arr.length) + let item = arr[key] + if (item == undefined) { + item = arr[0] + } + return item + } + + /** + * md5 加密字符串 + * @param {string} str 要加密成md5的数据 + */ + md5(str) { + function d(n, t) { + var r = (65535 & n) + (65535 & t); + return (((n >> 16) + (t >> 16) + (r >> 16)) << 16) | (65535 & r); + } + + function f(n, t, r, e, o, u) { + return d(((c = d(d(t, n), d(e, u))) << (f = o)) | (c >>> (32 - f)), r); + var c, f; + } + + function l(n, t, r, e, o, u, c) { + return f((t & r) | (~t & e), n, t, o, u, c); + } + + function v(n, t, r, e, o, u, c) { + return f((t & e) | (r & ~e), n, t, o, u, c); + } + + function g(n, t, r, e, o, u, c) { + return f(t ^ r ^ e, n, t, o, u, c); + } + + function m(n, t, r, e, o, u, c) { + return f(r ^ (t | ~e), n, t, o, u, c); + } + + function i(n, t) { + var r, e, o, u; + (n[t >> 5] |= 128 << t % 32), (n[14 + (((t + 64) >>> 9) << 4)] = t); + for ( + var c = 1732584193, + f = -271733879, + i = -1732584194, + a = 271733878, + h = 0; + h < n.length; + h += 16 + ) + (c = l((r = c), (e = f), (o = i), (u = a), n[h], 7, -680876936)), + (a = l(a, c, f, i, n[h + 1], 12, -389564586)), + (i = l(i, a, c, f, n[h + 2], 17, 606105819)), + (f = l(f, i, a, c, n[h + 3], 22, -1044525330)), + (c = l(c, f, i, a, n[h + 4], 7, -176418897)), + (a = l(a, c, f, i, n[h + 5], 12, 1200080426)), + (i = l(i, a, c, f, n[h + 6], 17, -1473231341)), + (f = l(f, i, a, c, n[h + 7], 22, -45705983)), + (c = l(c, f, i, a, n[h + 8], 7, 1770035416)), + (a = l(a, c, f, i, n[h + 9], 12, -1958414417)), + (i = l(i, a, c, f, n[h + 10], 17, -42063)), + (f = l(f, i, a, c, n[h + 11], 22, -1990404162)), + (c = l(c, f, i, a, n[h + 12], 7, 1804603682)), + (a = l(a, c, f, i, n[h + 13], 12, -40341101)), + (i = l(i, a, c, f, n[h + 14], 17, -1502002290)), + (c = v( + c, + (f = l(f, i, a, c, n[h + 15], 22, 1236535329)), + i, + a, + n[h + 1], + 5, + -165796510, + )), + (a = v(a, c, f, i, n[h + 6], 9, -1069501632)), + (i = v(i, a, c, f, n[h + 11], 14, 643717713)), + (f = v(f, i, a, c, n[h], 20, -373897302)), + (c = v(c, f, i, a, n[h + 5], 5, -701558691)), + (a = v(a, c, f, i, n[h + 10], 9, 38016083)), + (i = v(i, a, c, f, n[h + 15], 14, -660478335)), + (f = v(f, i, a, c, n[h + 4], 20, -405537848)), + (c = v(c, f, i, a, n[h + 9], 5, 568446438)), + (a = v(a, c, f, i, n[h + 14], 9, -1019803690)), + (i = v(i, a, c, f, n[h + 3], 14, -187363961)), + (f = v(f, i, a, c, n[h + 8], 20, 1163531501)), + (c = v(c, f, i, a, n[h + 13], 5, -1444681467)), + (a = v(a, c, f, i, n[h + 2], 9, -51403784)), + (i = v(i, a, c, f, n[h + 7], 14, 1735328473)), + (c = g( + c, + (f = v(f, i, a, c, n[h + 12], 20, -1926607734)), + i, + a, + n[h + 5], + 4, + -378558, + )), + (a = g(a, c, f, i, n[h + 8], 11, -2022574463)), + (i = g(i, a, c, f, n[h + 11], 16, 1839030562)), + (f = g(f, i, a, c, n[h + 14], 23, -35309556)), + (c = g(c, f, i, a, n[h + 1], 4, -1530992060)), + (a = g(a, c, f, i, n[h + 4], 11, 1272893353)), + (i = g(i, a, c, f, n[h + 7], 16, -155497632)), + (f = g(f, i, a, c, n[h + 10], 23, -1094730640)), + (c = g(c, f, i, a, n[h + 13], 4, 681279174)), + (a = g(a, c, f, i, n[h], 11, -358537222)), + (i = g(i, a, c, f, n[h + 3], 16, -722521979)), + (f = g(f, i, a, c, n[h + 6], 23, 76029189)), + (c = g(c, f, i, a, n[h + 9], 4, -640364487)), + (a = g(a, c, f, i, n[h + 12], 11, -421815835)), + (i = g(i, a, c, f, n[h + 15], 16, 530742520)), + (c = m( + c, + (f = g(f, i, a, c, n[h + 2], 23, -995338651)), + i, + a, + n[h], + 6, + -198630844, + )), + (a = m(a, c, f, i, n[h + 7], 10, 1126891415)), + (i = m(i, a, c, f, n[h + 14], 15, -1416354905)), + (f = m(f, i, a, c, n[h + 5], 21, -57434055)), + (c = m(c, f, i, a, n[h + 12], 6, 1700485571)), + (a = m(a, c, f, i, n[h + 3], 10, -1894986606)), + (i = m(i, a, c, f, n[h + 10], 15, -1051523)), + (f = m(f, i, a, c, n[h + 1], 21, -2054922799)), + (c = m(c, f, i, a, n[h + 8], 6, 1873313359)), + (a = m(a, c, f, i, n[h + 15], 10, -30611744)), + (i = m(i, a, c, f, n[h + 6], 15, -1560198380)), + (f = m(f, i, a, c, n[h + 13], 21, 1309151649)), + (c = m(c, f, i, a, n[h + 4], 6, -145523070)), + (a = m(a, c, f, i, n[h + 11], 10, -1120210379)), + (i = m(i, a, c, f, n[h + 2], 15, 718787259)), + (f = m(f, i, a, c, n[h + 9], 21, -343485551)), + (c = d(c, r)), + (f = d(f, e)), + (i = d(i, o)), + (a = d(a, u)); + return [c, f, i, a]; + } + + function a(n) { + for (var t = '', r = 32 * n.length, e = 0; e < r; e += 8) + t += String.fromCharCode((n[e >> 5] >>> e % 32) & 255); + return t; + } + + function h(n) { + var t = []; + for (t[(n.length >> 2) - 1] = void 0, e = 0; e < t.length; e += 1) + t[e] = 0; + for (var r = 8 * n.length, e = 0; e < r; e += 8) + t[e >> 5] |= (255 & n.charCodeAt(e / 8)) << e % 32; + return t; + } + + function e(n) { + for (var t, r = '0123456789abcdef', e = '', o = 0; o < n.length; o += 1) + (t = n.charCodeAt(o)), + (e += r.charAt((t >>> 4) & 15) + r.charAt(15 & t)); + return e; + } + + function r(n) { + return unescape(encodeURIComponent(n)); + } + + function o(n) { + return a(i(h((t = r(n))), 8 * t.length)); + var t; + } + + function u(n, t) { + return (function (n, t) { + var r, + e, + o = h(n), + u = [], + c = []; + for ( + u[15] = c[15] = void 0, + 16 < o.length && (o = i(o, 8 * n.length)), + r = 0; + r < 16; + r += 1 + ) + (u[r] = 909522486 ^ o[r]), (c[r] = 1549556828 ^ o[r]); + return ( + (e = i(u.concat(h(t)), 512 + 8 * t.length)), a(i(c.concat(e), 640)) + ); + })(r(n), r(t)); + } + + function t(n, t, r) { + return t ? (r ? u(t, n) : e(u(t, n))) : r ? o(n) : e(o(n)); + } + + return t(str); + } + + /** + * ------------------------------------------------------------------------------ + */ + + /** + * 透明背景 + * created by Max Zeryck @mzeryck + */ + async transparentBg() { + if (config.runsInApp) { + let imgCrop = undefined + const tips = "您的小部件背景已准备就绪,退到桌面刷新小组件查看即可" + // Determine if user has taken the screenshot. + var message + message = "如需实现透明背景请先滑到最右边的空白页并截图" + let options = ["继续选择图片", "退出进行截图"] + let response = await this.generateAlert(message, options) + // Return if we need to exit. + if (response == 1) return null + // Get screenshot and determine phone size. + let img = await Photos.fromLibrary() + let height = img.size.height + let phone = this.phoneSizes()[height] + if (!phone) { + message = "您似乎选择了非iPhone屏幕截图的图像,或者不支持您的iPhone。请使用其他图像再试一次!" + await this.generateAlert(message, ["好的"]) + return + } + + // Extra setup needed for 2436-sized phones. + if (height == 2436) { + let files = FileManager.local() + let cacheName = "lsp-phone-type" + let cachePath = files.joinPath(files.libraryDirectory(), cacheName) + // If we already cached the phone size, load it. + if (files.fileExists(cachePath)) { + let typeString = files.readString(cachePath) + phone = phone[typeString] + // Otherwise, prompt the user. + } else { + message = "你使用什么型号的iPhone?" + let types = ["iPhone 12 mini", "iPhone 11 Pro, XS, or X"] + let typeIndex = await this.generateAlert(message, types) + let type = (typeIndex == 0) ? "mini" : "x" + phone = phone[type] + files.writeString(cachePath, type) + } + } + + // Prompt for widget size and position. + message = "您想要创建什么尺寸的小部件?" + let sizes = ["小号", "中号", "大号"] + let size = await this.generateAlert(message, sizes) + let widgetSize = sizes[size] + + message = "您想它应用在什么位置?" + message += (height == 1136 ? " (请注意,您的设备仅支持两行小部件,因此中间和底部选项相同。)" : "") + + // Determine image crop based on phone size. + let crop = { w: "", h: "", x: "", y: "" } + if (widgetSize == "小号") { + crop.w = phone.小号 + crop.h = phone.小号 + let positions = ["顶部 左边", "顶部 右边", "中间 左边", "中间 右边", "底部 左边", "底部 右边"] + let position = await this.generateAlert(message, positions) + + // Convert the two words into two keys for the phone size dictionary. + let keys = positions[position].toLowerCase().split(' ') + crop.y = phone[keys[0]] + crop.x = phone[keys[1]] + + } else if (widgetSize == "中号") { + crop.w = phone.中号 + crop.h = phone.小号 + + // 中号 and 大号 widgets have a fixed x-value. + crop.x = phone.左边 + let positions = ["顶部", "中间", "底部"] + let position = await this.generateAlert(message, positions) + let key = positions[position].toLowerCase() + crop.y = phone[key] + + } else if (widgetSize == "大号") { + crop.w = phone.中号 + crop.h = phone.大号 + crop.x = phone.左边 + let positions = ["顶部", "底部"] + let position = await this.generateAlert(message, positions) + + // 大号 widgets at the 底部 have the "中间" y-value. + crop.y = position ? phone.中间 : phone.顶部 + } + + // Prompt for blur style. + message = "您想要一个完全透明的小部件,还是半透明的模糊效果?" + let blurOptions = ["透明背景", "浅色模糊", "深色模糊", "完全模糊"] + let blurred = await this.generateAlert(message, blurOptions) + + // We always need the cropped image. + imgCrop = this.cropImage(crop, img) + + // If it's blurred, set the blur style. + if (blurred) { + const styles = ["", "light", "dark", "none"] + const style = styles[blurred] + imgCrop = await this.blurImage(img, crop, style) + } + + message = tips + const exportPhotoOptions = ["完成", "导出"] + const exportToPhoto = await this.generateAlert(message, exportPhotoOptions) + + if (exportToPhoto) { + Photos.save(imgCrop) + } + + // 保存 + this.saveImgCache(this.scriptName, imgCrop) + } + } + + /** + * 裁剪图片 + * @param {Rect} crop 裁剪矩形 + * @param {Image} image 图片 + */ + cropImage(crop, image) { + let draw = new DrawContext() + let rect = new Rect(crop.x, crop.y, crop.w, crop.h) + draw.size = new Size(rect.width, rect.height) + + draw.drawImageAtPoint(image, new Point(-rect.x, -rect.y)) + return draw.getImage() + } + + /** + * 高斯模糊 + * @param {Image} img 图片 + * @param {Rect} crop 裁剪的矩形 + * @param {string} style 高斯模糊样式:dark、light + * @param {number} blur 高斯模糊强度 + */ + async blurImage(img, crop, style, blur = 150) { + const js = ` + /* + StackBlur - a fast almost Gaussian Blur For Canvas + Version: 0.5 + Author: Mario Klingemann + Contact: mario@quasimondo.com + Website: http://quasimondo.com/StackBlurForCanvas/StackBlurDemo.html + Twitter: @quasimondo + In case you find this class useful - especially in commercial projects - + I am not totally unhappy for a small donation to my PayPal account + mario@quasimondo.de + Or support me on flattr: + https://flattr.com/thing/72791/StackBlur-a-fast-almost-Gaussian-Blur-Effect-for-CanvasJavascript + Copyright (c) 2010 Mario Klingemann + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation + files (the "Software"), to deal in the Software without + restriction, including without limitation the rights to use, + copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following + conditions: + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + OTHER DEALINGS IN THE SOFTWARE. + */ + var mul_table = [ + 512, 512, 456, 512, 328, 456, 335, 512, 405, 328, 271, 456, 388, 335, 292, 512, + 454, 405, 364, 328, 298, 271, 496, 456, 420, 388, 360, 335, 312, 292, 273, 512, + 482, 454, 428, 405, 383, 364, 345, 328, 312, 298, 284, 271, 259, 496, 475, 456, + 437, 420, 404, 388, 374, 360, 347, 335, 323, 312, 302, 292, 282, 273, 265, 512, + 497, 482, 468, 454, 441, 428, 417, 405, 394, 383, 373, 364, 354, 345, 337, 328, + 320, 312, 305, 298, 291, 284, 278, 271, 265, 259, 507, 496, 485, 475, 465, 456, + 446, 437, 428, 420, 412, 404, 396, 388, 381, 374, 367, 360, 354, 347, 341, 335, + 329, 323, 318, 312, 307, 302, 297, 292, 287, 282, 278, 273, 269, 265, 261, 512, + 505, 497, 489, 482, 475, 468, 461, 454, 447, 441, 435, 428, 422, 417, 411, 405, + 399, 394, 389, 383, 378, 373, 368, 364, 359, 354, 350, 345, 341, 337, 332, 328, + 324, 320, 316, 312, 309, 305, 301, 298, 294, 291, 287, 284, 281, 278, 274, 271, + 268, 265, 262, 259, 257, 507, 501, 496, 491, 485, 480, 475, 470, 465, 460, 456, + 451, 446, 442, 437, 433, 428, 424, 420, 416, 412, 408, 404, 400, 396, 392, 388, + 385, 381, 377, 374, 370, 367, 363, 360, 357, 354, 350, 347, 344, 341, 338, 335, + 332, 329, 326, 323, 320, 318, 315, 312, 310, 307, 304, 302, 299, 297, 294, 292, + 289, 287, 285, 282, 280, 278, 275, 273, 271, 269, 267, 265, 263, 261, 259]; + + + var shg_table = [ + 9, 11, 12, 13, 13, 14, 14, 15, 15, 15, 15, 16, 16, 16, 16, 17, + 17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 21, + 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, + 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, + 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, + 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23, + 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, + 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, + 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, + 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, + 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, + 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, + 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, + 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24]; + function stackBlurCanvasRGB(id, top_x, top_y, width, height, radius) { + if (isNaN(radius) || radius < 1) return; + radius |= 0; + + var canvas = document.getElementById(id); + var context = canvas.getContext("2d"); + var imageData; + + try { + try { + imageData = context.getImageData(top_x, top_y, width, height); + } catch (e) { + + // NOTE: this part is supposedly only needed if you want to work with local files + // so it might be okay to remove the whole try/catch block and just use + // imageData = context.getImageData( top_x, top_y, width, height ); + try { + netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead"); + imageData = context.getImageData(top_x, top_y, width, height); + } catch (e) { + alert("Cannot access local image"); + throw new Error("unable to access local image data: " + e); + return; + } + } + } catch (e) { + alert("Cannot access image"); + throw new Error("unable to access image data: " + e); + } + + var pixels = imageData.data; + + var x, y, i, p, yp, yi, yw, r_sum, g_sum, b_sum, + r_out_sum, g_out_sum, b_out_sum, + r_in_sum, g_in_sum, b_in_sum, + pr, pg, pb, rbs; + + var div = radius + radius + 1; + var w4 = width << 2; + var widthMinus1 = width - 1; + var heightMinus1 = height - 1; + var radiusPlus1 = radius + 1; + var sumFactor = radiusPlus1 * (radiusPlus1 + 1) / 2; + + var stackStart = new BlurStack(); + var stack = stackStart; + for (i = 1; i < div; i++) { + stack = stack.next = new BlurStack(); + if (i == radiusPlus1) var stackEnd = stack; + } + stack.next = stackStart; + var stackIn = null; + var stackOut = null; + + yw = yi = 0; + + var mul_sum = mul_table[radius]; + var shg_sum = shg_table[radius]; + + for (y = 0; y < height; y++) { + r_in_sum = g_in_sum = b_in_sum = r_sum = g_sum = b_sum = 0; + + r_out_sum = radiusPlus1 * (pr = pixels[yi]); + g_out_sum = radiusPlus1 * (pg = pixels[yi + 1]); + b_out_sum = radiusPlus1 * (pb = pixels[yi + 2]); + + r_sum += sumFactor * pr; + g_sum += sumFactor * pg; + b_sum += sumFactor * pb; + + stack = stackStart; + + for (i = 0; i < radiusPlus1; i++) { + stack.r = pr; + stack.g = pg; + stack.b = pb; + stack = stack.next; + } + + for (i = 1; i < radiusPlus1; i++) { + p = yi + ((widthMinus1 < i ? widthMinus1 : i) << 2); + r_sum += (stack.r = (pr = pixels[p])) * (rbs = radiusPlus1 - i); + g_sum += (stack.g = (pg = pixels[p + 1])) * rbs; + b_sum += (stack.b = (pb = pixels[p + 2])) * rbs; + + r_in_sum += pr; + g_in_sum += pg; + b_in_sum += pb; + + stack = stack.next; + } + + + stackIn = stackStart; + stackOut = stackEnd; + for (x = 0; x < width; x++) { + pixels[yi] = (r_sum * mul_sum) >> shg_sum; + pixels[yi + 1] = (g_sum * mul_sum) >> shg_sum; + pixels[yi + 2] = (b_sum * mul_sum) >> shg_sum; + + r_sum -= r_out_sum; + g_sum -= g_out_sum; + b_sum -= b_out_sum; + + r_out_sum -= stackIn.r; + g_out_sum -= stackIn.g; + b_out_sum -= stackIn.b; + + p = (yw + ((p = x + radius + 1) < widthMinus1 ? p : widthMinus1)) << 2; + + r_in_sum += (stackIn.r = pixels[p]); + g_in_sum += (stackIn.g = pixels[p + 1]); + b_in_sum += (stackIn.b = pixels[p + 2]); + + r_sum += r_in_sum; + g_sum += g_in_sum; + b_sum += b_in_sum; + + stackIn = stackIn.next; + + r_out_sum += (pr = stackOut.r); + g_out_sum += (pg = stackOut.g); + b_out_sum += (pb = stackOut.b); + + r_in_sum -= pr; + g_in_sum -= pg; + b_in_sum -= pb; + + stackOut = stackOut.next; + yi += 4; + } + yw += width; + } + + for (x = 0; x < width; x++) { + g_in_sum = b_in_sum = r_in_sum = g_sum = b_sum = r_sum = 0; + + yi = x << 2; + r_out_sum = radiusPlus1 * (pr = pixels[yi]); + g_out_sum = radiusPlus1 * (pg = pixels[yi + 1]); + b_out_sum = radiusPlus1 * (pb = pixels[yi + 2]); + + r_sum += sumFactor * pr; + g_sum += sumFactor * pg; + b_sum += sumFactor * pb; + + stack = stackStart; + + for (i = 0; i < radiusPlus1; i++) { + stack.r = pr; + stack.g = pg; + stack.b = pb; + stack = stack.next; + } + + yp = width; + + for (i = 1; i <= radius; i++) { + yi = (yp + x) << 2; + + r_sum += (stack.r = (pr = pixels[yi])) * (rbs = radiusPlus1 - i); + g_sum += (stack.g = (pg = pixels[yi + 1])) * rbs; + b_sum += (stack.b = (pb = pixels[yi + 2])) * rbs; + + r_in_sum += pr; + g_in_sum += pg; + b_in_sum += pb; + + stack = stack.next; + + if (i < heightMinus1) { + yp += width; + } + } + + yi = x; + stackIn = stackStart; + stackOut = stackEnd; + for (y = 0; y < height; y++) { + p = yi << 2; + pixels[p] = (r_sum * mul_sum) >> shg_sum; + pixels[p + 1] = (g_sum * mul_sum) >> shg_sum; + pixels[p + 2] = (b_sum * mul_sum) >> shg_sum; + + r_sum -= r_out_sum; + g_sum -= g_out_sum; + b_sum -= b_out_sum; + + r_out_sum -= stackIn.r; + g_out_sum -= stackIn.g; + b_out_sum -= stackIn.b; + + p = (x + (((p = y + radiusPlus1) < heightMinus1 ? p : heightMinus1) * width)) << 2; + + r_sum += (r_in_sum += (stackIn.r = pixels[p])); + g_sum += (g_in_sum += (stackIn.g = pixels[p + 1])); + b_sum += (b_in_sum += (stackIn.b = pixels[p + 2])); + + stackIn = stackIn.next; + + r_out_sum += (pr = stackOut.r); + g_out_sum += (pg = stackOut.g); + b_out_sum += (pb = stackOut.b); + + r_in_sum -= pr; + g_in_sum -= pg; + b_in_sum -= pb; + + stackOut = stackOut.next; + + yi += width; + } + } + + context.putImageData(imageData, top_x, top_y); + + } + function BlurStack() { + this.r = 0; + this.g = 0; + this.b = 0; + this.a = 0; + this.next = null; + } + + // https://gist.github.com/mjackson/5311256 + function rgbToHsl(r, g, b) { + r /= 255, g /= 255, b /= 255; + var max = Math.max(r, g, b), min = Math.min(r, g, b); + var h, s, l = (max + min) / 2; + if (max == min) { + h = s = 0; // achromatic + } else { + var d = max - min; + s = l > 0.5 ? d / (2 - max - min) : d / (max + min); + switch (max) { + case r: h = (g - b) / d + (g < b ? 6 : 0); break; + case g: h = (b - r) / d + 2; break; + case b: h = (r - g) / d + 4; break; + } + h /= 6; + } + return [h, s, l]; + } + function hslToRgb(h, s, l) { + var r, g, b; + if (s == 0) { + r = g = b = l; // achromatic + } else { + var hue2rgb = function hue2rgb(p, q, t) { + if (t < 0) t += 1; + if (t > 1) t -= 1; + if (t < 1 / 6) return p + (q - p) * 6 * t; + if (t < 1 / 2) return q; + if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6; + return p; + } + var q = l < 0.5 ? l * (1 + s) : l + s - l * s; + var p = 2 * l - q; + r = hue2rgb(p, q, h + 1 / 3); + g = hue2rgb(p, q, h); + b = hue2rgb(p, q, h - 1 / 3); + } + return [Math.round(r * 255), Math.round(g * 255), Math.round(b * 255)]; + } + + function lightBlur(hsl) { + // Adjust the luminance. + let lumCalc = 0.35 + (0.3 / hsl[2]); + if (lumCalc < 1) { lumCalc = 1; } + else if (lumCalc > 3.3) { lumCalc = 3.3; } + const l = hsl[2] * lumCalc; + + // Adjust the saturation. + const colorful = 2 * hsl[1] * l; + const s = hsl[1] * colorful * 1.5; + + return [hsl[0], s, l]; + } + + function darkBlur(hsl) { + // Adjust the saturation. + const colorful = 2 * hsl[1] * hsl[2]; + const s = hsl[1] * (1 - hsl[2]) * 3; + + return [hsl[0], s, hsl[2]]; + } + // Set up the canvas. + const img = document.getElementById("blurImg"); + const canvas = document.getElementById("mainCanvas"); + const w = img.naturalWidth; + const h = img.naturalHeight; + canvas.style.width = w + "px"; + canvas.style.height = h + "px"; + canvas.width = w; + canvas.height = h; + const context = canvas.getContext("2d"); + context.clearRect(0, 0, w, h); + context.drawImage(img, 0, 0); + + // Get the image data from the context. + var imageData = context.getImageData(0, 0, w, h); + var pix = imageData.data; + + // Set the image function, if any. + var imageFunc; + var style = "${style}"; + if (style == "dark") { imageFunc = darkBlur; } + else if (style == "light") { imageFunc = lightBlur; } + for (let i = 0; i < pix.length; i += 4) { + // Convert to HSL. + let hsl = rgbToHsl(pix[i], pix[i + 1], pix[i + 2]); + + // Apply the image function if it exists. + if (imageFunc) { hsl = imageFunc(hsl); } + + // Convert back to RGB. + const rgb = hslToRgb(hsl[0], hsl[1], hsl[2]); + + // Put the values back into the data. + pix[i] = rgb[0]; + pix[i + 1] = rgb[1]; + pix[i + 2] = rgb[2]; + } + // Draw over the old image. + context.putImageData(imageData, 0, 0); + // Blur the image. + stackBlurCanvasRGB("mainCanvas", 0, 0, w, h, ${blur}); + + // Perform the additional processing for dark images. + if (style == "dark") { + + // Draw the hard light box over it. + context.globalCompositeOperation = "hard-light"; + context.fillStyle = "rgba(55,55,55,0.2)"; + context.fillRect(0, 0, w, h); + // Draw the soft light box over it. + context.globalCompositeOperation = "soft-light"; + context.fillStyle = "rgba(55,55,55,1)"; + context.fillRect(0, 0, w, h); + // Draw the regular box over it. + context.globalCompositeOperation = "source-over"; + context.fillStyle = "rgba(55,55,55,0.4)"; + context.fillRect(0, 0, w, h); + + // Otherwise process light images. + } else if (style == "light") { + context.fillStyle = "rgba(255,255,255,0.4)"; + context.fillRect(0, 0, w, h); + } + // Return a base64 representation. + canvas.toDataURL(); + ` + + // Convert the images and create the HTML. + let blurImgData = Data.fromPNG(img).toBase64String() + let html = ` + + + ` + + // Make the web view and get its return value. + let view = new WebView() + await view.loadHTML(html) + let returnValue = await view.evaluateJavaScript(js) + + // Remove the data type from the string and convert to data. + let imageDataString = returnValue.slice(22) + let imageData = Data.fromBase64String(imageDataString) + + // Convert to image and crop before returning. + let imageFromData = Image.fromData(imageData) + if (crop != null && crop != undefined) { + return this.cropImage(crop, imageFromData) + } else { + return imageFromData + } + } + + /** + * 弹窗 + * @param {string} message 信息 + * @param {Array} options 选项 + */ + async generateAlert(message, options) { + let alert = new Alert() + alert.message = message + + for (const option of options) { + alert.addAction(option) + } + + let response = await alert.presentAlert() + return response + } + + async generateInputAlert(title, message, hint, value, confirm) { + const urlInputAlert = new Alert(); + urlInputAlert.title = title; + urlInputAlert.message = message; + urlInputAlert.addAction("取消"); + urlInputAlert.addAction("确定"); + urlInputAlert.addTextField(hint, value); + let selectIndex = await urlInputAlert.presentAlert(); + if (selectIndex == 1) { + const content = urlInputAlert.textFieldValue(); + if (content.length == 0) return; + confirm(content); + } + return selectIndex; + } + + /** + * 手机各大小组件尺寸 + */ + phoneSizes() { + let phones = { + // 14 Pro Max + "2796": { 小号: 510, 中号: 1092, 大号: 1146, 左边: 99, 右边: 681, 顶部: 282, 中间: 918, 底部: 1554 }, + // 14 Pro + "2556": { 小号: 474, 中号: 1014, 大号: 1062, 左边: 82, 右边: 622, 顶部: 270, 中间: 858, 底部: 1446 }, + // 12 Pro Max + "2778": { 小号: 510, 中号: 1092, 大号: 1146, 左边: 96, 右边: 678, 顶部: 246, 中间: 882, 底部: 1518 }, + // 12 and 12 Pro + "2532": { 小号: 474, 中号: 1014, 大号: 1062, 左边: 78, 右边: 618, 顶部: 231, 中间: 819, 底部: 1407 }, + // 11 Pro Max, XS Max + "2688": { 小号: 507, 中号: 1080, 大号: 1137, 左边: 81, 右边: 654, 顶部: 228, 中间: 858, 底部: 1488 }, + // 11, XR + "1792": { 小号: 338, 中号: 720, 大号: 758, 左边: 54, 右边: 436, 顶部: 160, 中间: 580, 底部: 1000 }, + // 11 Pro, XS, X, 12 mini + "2436": { + x: { 小号: 465, 中号: 987, 大号: 1035, 左边: 69, 右边: 591, 顶部: 213, 中间: 783, 底部: 1353, }, + mini: { 小号: 465, 中号: 987, 大号: 1035, 左边: 69, 右边: 591, 顶部: 231, 中间: 801, 底部: 1371, } + }, + // Plus phones + "2208": { 小号: 471, 中号: 1044, 大号: 1071, 左边: 99, 右边: 672, 顶部: 114, 中间: 696, 底部: 1278 }, + // SE2 and 6/6S/7/8 + "1334": { 小号: 296, 中号: 642, 大号: 648, 左边: 54, 右边: 400, 顶部: 60, 中间: 412, 底部: 764 }, + // SE1 + "1136": { 小号: 282, 中号: 584, 大号: 622, 左边: 30, 右边: 332, 顶部: 59, 中间: 399, 底部: 399 }, + // 11 and XR in Display Zoom mode + "1624": { 小号: 310, 中号: 658, 大号: 690, 左边: 46, 右边: 394, 顶部: 142, 中间: 522, 底部: 902 }, + // Plus in Display Zoom mode + "2001": { 小号: 444, 中号: 963, 大号: 972, 左边: 81, 右边: 600, 顶部: 90, 中间: 618, 底部: 1146 }, + } + return phones + } + + /** + * ------------------------------------------------------------------------------ + */ + + /** + * 获取农历信息 + */ + async getLunar() { + const day = new Date().getDate() - 1 + // 万年历数据 + const url = "https://wannianrili.51240.com/" + const defaultHeaders = { + "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 html = await this.httpGet(url, false, defaultHeaders) + let webview = new WebView() + await webview.loadHTML(html) + var getData = ` + function getData() { + try { + infoLunarText = document.querySelector('div#wnrl_k_you_id_${day}.wnrl_k_you .wnrl_k_you_id_wnrl_nongli').innerText + holidayText = document.querySelectorAll('div.wnrl_k_zuo div.wnrl_riqi')[${day}].querySelector('.wnrl_td_bzl').innerText + lunarYearText = document.querySelector('div.wnrl_k_you_id_wnrl_nongli_ganzhi').innerText + lunarYearText = lunarYearText.slice(0, lunarYearText.indexOf('年') + 1) + if (infoLunarText.search(holidayText) != -1) { + holidayText = '' + } + } catch { + infoLunarText = '*' + holidayText = '*' + lunarYearText = '*' + } + return { infoLunarText: infoLunarText, holidayText: holidayText , lunarYearText: lunarYearText} + } + getData() + ` + // 节日数据 + const response = await webview.evaluateJavaScript(getData, false) + console.log(`🤖农历数据:${JSON.stringify(response)}`); + console.log(`----------------------------------------`) + return response + } + + //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ + + provideDefaultWidget() { + //==================================== + const widget = new ListWidget(); + //==================================== + let stack = widget.addStack(); + stack.addText("未提供此组件"); + stack.centerAlignContent(); + //==================================== + return widget; + } + + /** + * 菜单渲染 + * @param {配置菜单} configArr + */ + async renderTable(configArr, table = new UITable()) { + table.showSeparators = true; + table.removeAllRows(); + for (const config of configArr) { + //------------------------------------------- + const header = new UITableRow(); + const heading = header.addText(config.header); + heading.titleFont = Font.semiboldMonospacedSystemFont(17); + heading.titleColor = new Color('#444'); + heading.leftAligned(); + table.addRow(header); + //------------------------------------------- + for (const child of config.children) { + const row = new UITableRow(); + if (child.cellSpacing) { + row.cellSpacing = child.cellSpacing; + } + row.height = child.height || 44; + let image; + let icon = child.icon; + if ((icon + '').startsWith('http')) { + image = await this.getImageByUrl(icon); + } else { + image = await this.drawTableIcon( + icon.name, + icon.color, + child.cornerWidth + ) + } + const imageCell = row.addImage(image); + imageCell.widthWeight = 100; + // + const rowTitle = row.addText(child.title); + rowTitle.widthWeight = 600; + rowTitle.titleFont = Font.regularMonospacedSystemFont(15); + rowTitle.titleColor = child.titleColor || new Color('#6C5CE9'); + // + const valText = row.addText(`${child.subTitle || ''} ›`); + valText.widthWeight = 300; + valText.rightAligned(); + valText.titleColor = child.subTitleColor || new Color('#6C5CE9'); + valText.titleFont = Font.regularMonospacedSystemFont(14); + // + row.dismissOnSelect = child.clickDismiss || false; + row.onSelect = async () => { + try { + await child.onClick(child); + } catch (e) { + console.error(e); + } + }; + table.addRow(row); + }; + } + //------------------------------------------- + const gzhRow = new UITableRow(); + gzhRow.height = 200; + let gzhImage = await this.getImageByUrl('https://gitee.com/enjoyee/img/raw/master/other/wechat_pay.png'); + gzhRow.addImage(gzhImage); + gzhRow.dismissOnSelect = false; + table.addRow(gzhRow); + //------------------------------------------- + table.reload(); + table.present(false); + } + + /** + * 环境同步更新 + * @returns + */ + async fetchEnv() { + let updateResult = false; + const envFileName = module.filename; + const envDownloadUrl = 'https://gitee.com/enjoyee/scriptable/raw/develop/lsp%E7%8E%AF%E5%A2%83.js'; + let fileManager = FileManager.local(); + try { + const iCloudInUse = fileManager.isFileStoredIniCloud(envFileName); + fileManager = iCloudInUse ? FileManager.iCloud() : fileManager; + const req = new Request(envDownloadUrl); + const codeString = await req.loadString(); + fileManager.writeString(envFileName, codeString); + updateResult = true; + console.log("✅环境同步更新完成"); + } catch { + this.generateAlert('❌环境同步更新失败', ["好的"]); + console.log("❌环境同步更新失败"); + } + console.log(`----------------------------------------`) + return updateResult; + } + + /** + * 下载更新 + */ + async downloadUpdate(filename, downloadURL) { + const result = await this.fetchEnv(); + console.log(`✋🏻filename=${filename}, downloadURL=${downloadURL}`); + if (result) { + let fileManager = FileManager.local(); + try { + const iCloudInUse = fileManager.isFileStoredIniCloud(filename); + fileManager = iCloudInUse ? FileManager.iCloud() : fileManager; + const req = new Request(downloadURL); + const codeString = await req.loadString(); + fileManager.writeString(filename, codeString); + await this.generateAlert('✅同步更新完成', ["重新运行"]); + console.log("✅组件更新完成"); + console.log(`----------------------------------------`) + Safari.open(`scriptable:///run/${encodeURIComponent(this.scriptName)}`); + } catch { + this.generateAlert('❌组件更新失败,请稍后重试', ["好的"]); + console.error("❌组件更新失败,请稍后重试"); + console.log(`----------------------------------------`) + } + } + } + + /** + * 兼容旧版本 + * @param {*} needSetBg + */ + async _oldPreSet(needSetBg = true) { + if (needSetBg) { + // 需要选择图片 + if (this.picBgMode) { + await this.transparentBg() + } + } + } + + /** + * 运行小组件 + * @param {ListWidget} widget 小组件 + * @param {bool} needSetBg 是否需要设置背景 + * @param {bool} visualMode 可视化编辑模式 + */ + async runWidget(widget, needSetBg = true, visualMode = false) { + // 设置边距(上,左,下,右) + widget.setPadding(this.padding.top, this.padding.left, this.padding.bottom, this.padding.right) + // 设置刷新间隔 + widget.refreshAfterDate = new Date(this.refreshInterval * 60 * 1000) + // 兼容旧版本 + if (!visualMode) { + await this._oldPreSet(needSetBg); + } + // 设置图片背景 + const colorBgMode = this.keyGet(this.colorBgModeKey, 'true'); + if (colorBgMode == 'true') { + // 设置渐变色背景 + console.log(`🪢纯色背景🪢`); + let colorCache = this.keyGet(this.colorCacheKey, this.defaultWidgetBgColor); + widget.backgroundGradient = this.getLinearGradientColor(this.getColors(colorCache)); + } else { + console.log(`🪢图片背景🪢`); + const bgImg = this.loadImgCache(this.scriptName) + if (bgImg != undefined && bgImg != null) { + widget.backgroundImage = bgImg + } + } + if (this.previewSizeMode >= 0) { + // 预览 + if (config.runsInApp) { + switch (this.previewSizeMode) { + case 1: + widget.presentMedium(); + break; + case 2: + widget.presentLarge(); + break; + default: + widget.presentSmall(); + break; + } + } + } + // 设置组件 + Script.setWidget(widget) + // 完成脚本 + Script.complete() + } + +} +//================================================================================================ +const Running = async (Widget, scriptName, needSetBg = true, newConfig = { visualMode: false, small: false, medium: false, large: false, accessoryCircular: false, accessoryRectangular: false, accessoryInline: false }) => { + const M = new Widget(scriptName) + if (newConfig.visualMode) { + if (config.runsInApp) { + // 预览点击 + const previewClick = async (item) => { + try { + let W; + switch ((item.subTitle || '').toLowerCase()) { + case 'medium': + M.setPreViewSizeMode(1); + W = newConfig.medium ? await M.provideMediumWidget() : M.provideDefaultWidget(); + break; + + case 'large': + M.setPreViewSizeMode(2); + W = newConfig.large ? await M.provideLargeWidget() : M.provideDefaultWidget(); + break; + + default: + M.setPreViewSizeMode(0); + W = newConfig.small ? await M.provideSmallWidget() : M.provideDefaultWidget(); + break; + } + if (W != undefined) { + await M.runWidget(W, false, true); + } + } catch (err) { + M.generateAlert(`运行错误❌\n${err}`, ["好的"]); + console.error(err); + } + } + // 通用设置点击 + const commonClick = async (item) => { + switch (item.title) { + case '组件背景': + await M.renderTable(widgetBgSettingArr); + break; + + case '刷新时间': + const refreshTimeCache = M.keyGet(M.refreshTimeKey, '30'); + M.generateInputAlert('组件刷新时间', '1.刷新时间仅供参考\n2.具体刷新间隔由系统决定,单位:分钟', "请输入时间", refreshTimeCache, (content) => { + // 保存本地 + M.keySave(M.refreshTimeKey, content); + M.refreshIntervalTime(Number(content)); + }); + break; + + case '组件更新': + await M.downloadUpdate(M.moduleName, `https://gitee.com/enjoyee/scriptable/raw/develop/${encodeURIComponent(M.scriptName)}.js`); + break; + + case '清理缓存': + let response = await M.generateAlert('是否清理所有组件缓存?\n注意:包括所有组件背景图!', ['取消', '清理']); + if (response === 1) { + M.removeAllCache(); + response = await M.generateAlert('缓存已清理完成', ['重新运行']); + if (response === 0) { + Safari.open(`scriptable:///run/${encodeURIComponent(M.scriptName)}`); + } + } + break; + } + }; + // 组件背景点击 + const bgItemClick = async (item) => { + switch (item.title) { + case '透明背景': + await M.transparentBg(); + M.keySave(M.colorBgModeKey, 'false'); + M.setColorBgMode(false); + break; + + case '在线背景': + try { + //====================================================== + const cacheUrlKey = M.scriptName + '_online_bg'; + let cacheUrl = M.keyGet(cacheUrlKey, ''); + const cacheColorKey = M.scriptName + '_online_color'; + let cacheColor = M.keyGet(cacheColorKey, M.defaultBgShadowColor); + const cacheAlphaKey = M.scriptName + '_online_alpha'; + let cacheAlpha = M.keyGet(cacheAlphaKey, `${M.defaultBgAlpha}`); + //====================================================== + let alert = new Alert(); + alert.title = '在线图片'; + alert.message = '图片尺寸不要过大\n要不然可能会设置失败\n最好自己裁剪成合适尺寸'; + alert.addTextField('请输入图片地址', cacheUrl); + alert.addTextField('请输入图片蒙层颜色', cacheColor); + alert.addTextField('请输入图片蒙层透明度0~1', cacheAlpha); + alert.addCancelAction("取消"); + alert.addAction("确定"); + let selectIndex = await alert.presentAlert(); + if (selectIndex !== -1) { + let imgUrl = alert.textFieldValue(0); + if (imgUrl.length == 0) return; + let image = await M.getImageByUrl(imgUrl); + M.keySave(cacheUrlKey, imgUrl); + // + let shadowColor = alert.textFieldValue(1) || M.defaultBgShadowColor; + M.keySave(cacheColorKey, shadowColor); + let shadowColorAlph = alert.textFieldValue(2); + M.keySave(cacheAlphaKey, shadowColorAlph); + image = await M.loadShadowColor2Image(image, new Color(shadowColor, Number(shadowColorAlph))); + // + M.saveImgCache(M.scriptName, image); + M.keySave(M.colorBgModeKey, 'false'); + M.setColorBgMode(false); + await M.generateAlert('✅在线图片背景设置完成', ['好的']); + } + } catch (error) { + M.generateAlert(`填写格式❌\n${error}`, ["好的"]); + console.error(error); + } + break; + + case '颜色背景': + const colorCache = M.keyGet(M.colorCacheKey, M.defaultWidgetBgColor); + const colorAngleCache = M.keyGet(M.colorAngleCacheKey, M.defaultGradientAngle); + let alert = new Alert(); + alert.title = '小组件背景颜色'; + alert.message = '1.颜色,各颜色之间以英文逗号分隔\n2.请自行去网站上搜寻颜色(Hex 颜色)'; + alert.addTextField('请输入颜色组', `${colorCache}`); + alert.addTextField('请输入渐变角度0~180', `${colorAngleCache}`); + alert.addCancelAction("取消"); + alert.addAction("确定"); + let selectIndex = await alert.presentAlert(); + if (selectIndex !== -1) { + let colors = alert.textFieldValue(0); + if (colors.length == 0) return; + M.keySave(M.colorCacheKey, colors); + M.setColorBgMode(true); + //========================================== + let colorAngle = alert.textFieldValue(1) || M.defaultGradientAngle; + M.keySave(M.colorAngleCacheKey, colorAngle); + M.keySave(M.colorBgModeKey, 'true'); + // + await M.generateAlert('✅颜色背景设置完成', ['好的']); + } + break; + } + } + const widgetPreviewArr = []; + if (newConfig.small) { + widgetPreviewArr.push({ + icon: { name: 'app', color: '#9B97E8', cornerWidth: 40 }, + title: '小尺寸', + subTitle: 'Small', + onClick: previewClick + }); + } + if (newConfig.medium) { + widgetPreviewArr.push({ + icon: { name: 'rectangle', color: '#9B97E8', cornerWidth: 40 }, + title: '中尺寸', + subTitle: 'Medium', + onClick: previewClick + }); + } + if (newConfig.large) { + widgetPreviewArr.push({ + icon: { name: 'rectangle.portrait', color: '#9B97E8', cornerWidth: 40 }, + title: '大尺寸', + subTitle: 'Large', + onClick: previewClick + }); + } + // 组件设置菜单 + const widgetSettingConfigArr = M.configArr; + widgetSettingConfigArr.push({ + icon: { name: 'text.below.photo.fill', color: '#E6639B', cornerWidth: 40 }, + title: '组件背景', + onClick: commonClick + }); + const widgetSettingArr = [ + { + header: '组件设置', + children: widgetSettingConfigArr + }, + { + header: '通用设置', + children: [ + { + icon: { name: 'clock.arrow.circlepath', color: '#FF8066', cornerWidth: 40 }, + title: '刷新时间', + onClick: commonClick + }, + { + icon: { name: 'arrow.down.doc', color: '#00C9A7', cornerWidth: 40 }, + title: '组件更新', + onClick: commonClick + }, + { + icon: { name: 'trash', color: '#6794C7', cornerWidth: 40 }, + title: '清理缓存', + onClick: commonClick + }, + ] + }, + { + header: '组件预览', + children: widgetPreviewArr + } + ]; + // 组件背景设置菜单 + const widgetBgSettingArr = [ + { + header: '组件背景设置', + children: [ + { + icon: { name: 'photo.on.rectangle.angled', color: '#FC867D', cornerWidth: 40 }, + title: '透明背景', + onClick: bgItemClick + }, + { + icon: { name: 'photo.artframe', color: '#EF5064', cornerWidth: 40 }, + title: '在线背景', + onClick: bgItemClick + }, + { + icon: { name: 'photo.stack', color: '#c02c38', cornerWidth: 40 }, + title: '颜色背景', + onClick: bgItemClick + }, + ] + }, + ]; + // 渲染 + await M.renderTable(widgetSettingArr); + } else { + let W; + const widgetFamily = config.widgetFamily; + switch (widgetFamily) { + case 'medium': + W = newConfig.medium ? await M.provideMediumWidget() : M.provideDefaultWidget(); + break; + + case 'large': + W = newConfig.large ? await M.provideLargeWidget() : M.provideDefaultWidget(); + break; + + case 'accessoryCircular': // 锁屏小 + W = newConfig.accessoryCircular ? await M.provideCircularWidget() : M.provideDefaultWidget(); + break; + + case 'accessoryRectangular': // 锁屏大 + W = newConfig.accessoryRectangular ? await M.provideRectangularWidget() : M.provideDefaultWidget(); + break; + + case 'accessoryInline': // 锁屏顶部长条 + W = newConfig.accessoryInline ? await M.provideInlineWidget() : M.provideDefaultWidget(); + break; + + default: + W = newConfig.small ? await M.provideSmallWidget() : M.provideDefaultWidget(); + break; + } + if (W != undefined) { + await M.runWidget(W, false, true); + } + } + } else { + const W = await M.render() + if (W != undefined) { + await M.runWidget(W, needSetBg) + } + } + +} + +//================================================================================================ +/** +* 自定义字体渲染 +*/ +class CustomFont { + constructor(webview, config) { + this.webview = webview || new WebView() + this.fontFamily = config.fontFamily || 'customFont' + this.fontUrl = 'url(' + config.fontUrl + ')' + this.timeout = config.timeout || 20000 + } + + async load() { // 加载字体 + return await this.webview.evaluateJavaScript(` + const customFont = new FontFace("${this.fontFamily}", "${this.fontUrl}"); + const canvas = document.createElement("canvas"); + const ctx = canvas.getContext("2d"); + let baseHeight,extendHeight; + log('🚀开始加载自定义字体.'); + customFont.load().then((font) => { + document.fonts.add(font); + completion(true); + log('✅自定义字体加载成功.'); + log('----------------------------------------') + }); + setTimeout(()=>{ + log('🚫自定义字体加载超时'); + log('----------------------------------------') + completion(false); + },${this.timeout}); + null`, true) + } + + async drawText(text, config) { + // 配置 + const fontSize = config.fontSize || 20 + const textWidth = config.textWidth || 300 + const align = config.align || 'left' // left、right、center + const lineLimit = config.lineLimit || 99 + const rowSpacing = config.rowSpacing || 0 + const textColor = config.textColor || 'white' + const textArray = await this.cutText(text, fontSize, textWidth) + const scale = config.scale || 1 + + let script = '' + for (let i in textArray) { + let content = textArray[i].str + let length = textArray[i].len + + if (i >= lineLimit) break + if (i == lineLimit - 1 && i < textArray.length - 1) + content = content.replace(/(.{1})$/, '…') + + let x = 0, y = Number(i) * fontSize + if (rowSpacing > 0 && i > 0) y = y + rowSpacing + if (i > 0) { + if (align === 'right') { + x = textWidth - length + } else if (align === 'center') { + x = (textWidth - length) / 2 + } + } + script = script + `ctx.fillText("${content}", ${x}, ${y});` + } + + const realWidth = textArray.length > 1 ? textWidth : textArray[0].len + const lineCount = lineLimit < textArray.length ? lineLimit : textArray.length + const returnValue = await this.webview.evaluateJavaScript(` + canvas.width=${realWidth}*${scale}; + ctx.font = "${fontSize}px ${this.fontFamily}"; + ctx.textBaseline= "hanging"; + baseHeight= ${(fontSize + rowSpacing) * (lineCount - 1)}; + extendHeight= ctx.measureText('qypgj').actualBoundingBoxDescent; + canvas.height= (baseHeight + extendHeight)*${scale}; + ctx.scale(${scale}, ${scale}); + + ctx.font = "${fontSize}px ${this.fontFamily}"; + ctx.fillStyle = "${textColor}"; + ctx.textBaseline= "hanging"; + ${script} + canvas.toDataURL()`, false) + + const imageDataString = returnValue.slice(22) + const imageData = Data.fromBase64String(imageDataString) + return Image.fromData(imageData) + } + + async cutText(text, fontSize, textWidth) { // 处理文本 + return await this.webview.evaluateJavaScript(` + function cutText(textWidth, text){ + ctx.font = "${fontSize}px ${this.fontFamily}"; + ctx.textBaseline= "hanging"; + + let textArray=[]; + let len=0,str=''; + for(let i=0;i textWidth){ + textArray.push({ + str:str.substring(0,str.length-1), + len:len-width,}); + str=char;len=width; + } + if(i==text.length-1 && str){ + textArray.push({str:str,len:len,}); + } + } + return textArray + } + cutText(${textWidth},"${text}") + `) + } +} + +//================================ +module.exports = { + Base, + Running, +} +//================================ \ No newline at end of file diff --git a/preview/s1.jpeg b/preview/s1.jpeg new file mode 100644 index 0000000..c318ff7 Binary files /dev/null and b/preview/s1.jpeg differ diff --git a/preview/s10.jpeg b/preview/s10.jpeg new file mode 100644 index 0000000..d134f8a Binary files /dev/null and b/preview/s10.jpeg differ diff --git a/preview/s11.jpeg b/preview/s11.jpeg new file mode 100644 index 0000000..e3a7131 Binary files /dev/null and b/preview/s11.jpeg differ diff --git a/preview/s12.jpeg b/preview/s12.jpeg new file mode 100644 index 0000000..7d2b00f Binary files /dev/null and b/preview/s12.jpeg differ diff --git a/preview/s13.jpeg b/preview/s13.jpeg new file mode 100644 index 0000000..6d43e2d Binary files /dev/null and b/preview/s13.jpeg differ diff --git a/preview/s2.jpeg b/preview/s2.jpeg new file mode 100644 index 0000000..b6581d9 Binary files /dev/null and b/preview/s2.jpeg differ diff --git a/preview/s3.jpeg b/preview/s3.jpeg new file mode 100644 index 0000000..8986d01 Binary files /dev/null and b/preview/s3.jpeg differ diff --git a/preview/s4.jpeg b/preview/s4.jpeg new file mode 100644 index 0000000..0789a0a Binary files /dev/null and b/preview/s4.jpeg differ diff --git a/preview/s5.jpeg b/preview/s5.jpeg new file mode 100644 index 0000000..8c56c04 Binary files /dev/null and b/preview/s5.jpeg differ diff --git a/preview/s6.jpeg b/preview/s6.jpeg new file mode 100644 index 0000000..efbf478 Binary files /dev/null and b/preview/s6.jpeg differ diff --git a/preview/s7.jpeg b/preview/s7.jpeg new file mode 100644 index 0000000..a85a0bb Binary files /dev/null and b/preview/s7.jpeg differ diff --git a/preview/s8.jpeg b/preview/s8.jpeg new file mode 100644 index 0000000..daa3064 Binary files /dev/null and b/preview/s8.jpeg differ diff --git a/preview/s9.jpeg b/preview/s9.jpeg new file mode 100644 index 0000000..35f3a31 Binary files /dev/null and b/preview/s9.jpeg differ diff --git "a/\344\270\207\345\271\264\345\216\206.js" "b/\344\270\207\345\271\264\345\216\206.js" new file mode 100644 index 0000000..40523c3 --- /dev/null +++ "b/\344\270\207\345\271\264\345\216\206.js" @@ -0,0 +1,717 @@ +/** + * Author:LSP + * Date:2024-02-05 + */ +// ------------------------------------------------------- +// 是否是开发环境,配合手机端调试使用,正式发布设置为false +const isDev = false; +const dependencyLSP = '20230511'; +console.log(`当前环境 👉👉👉👉👉 ${isDev ? 'DEV' : 'RELEASE'}`); +console.log(`----------------------------------------`); +// 分支 +const branch = 'v2'; +// 仓库根目录 +const remoteGithubRoot = `https://raw.githubusercontent.com/Enjoyee/Scriptable/${branch}`; +const remoteHomeLandRoot = `https://glimmerk.coding.net/p/Scriptable/shared-depot/source/git/raw/${branch}`; +// 依赖包目录 +const fm = FileManager.local(); +const rootDir = fm.documentsDirectory(); +const cacheDir = fm.joinPath(rootDir, 'LSP'); +const dependencyFileName = isDev ? '_LSP.js' : `${cacheDir}/_LSP.js`; +// 下载依赖包 +await downloadLSPDependency(); +// ------------------------------------------------------- +if (typeof require === 'undefined') require = importModule; +// 引入相关方法 +const { BaseWidget } = require(dependencyFileName); + +// @定义小组件 +class Widget extends BaseWidget { + mondayFirstTitleArr = ['一', '二', '三', '四', '五', '六', '日']; + sundayFirstTitleArr = ['日', '一', '二', '三', '四', '五', '六']; + + defaultPreference = { + weekdayTitleDayColor: '#333333', + weekdayTitleNightColor: '#eeeeee', + + weekendTitleDayColor: '#333333', + weekendTitleNightColor: '#eeeeee', + + notCurrMonthDayColor: '#bbbbbb', + notCurrMonthNightColor: '#555555', + + weekdayDateDayColor: '#000000', + weekdayDateNightColor: '#ffffff', + + holidayDateDayColor: '#F73131', + holidayDateNightColor: '#F73131', + + todayDayColor: '#5371EA', + todayNightColor: '#5371EA', + + monthBgTextDayColor: '#F0F3FC', + monthBgTextNightColor: '#222222', + }; + + getValueByKey = (key) => this.readWidgetSetting()[key] ?? this.defaultPreference[key] ?? ''; + + weekdayTitleDayColor = () => this.getValueByKey('weekdayTitleDayColor'); + weekdayTitleNightColor = () => this.getValueByKey('weekdayTitleNightColor'); + + weekendTitleDayColor = () => this.getValueByKey('weekendTitleDayColor'); + weekendTitleNightColor = () => this.getValueByKey('weekendTitleNightColor'); + + notCurrMonthDayColor = () => this.getValueByKey('notCurrMonthDayColor'); + notCurrMonthNightColor = () => this.getValueByKey('notCurrMonthNightColor'); + + weekdayDateDayColor = () => this.getValueByKey('weekdayDateDayColor'); + weekdayDateNightColor = () => this.getValueByKey('weekdayDateNightColor'); + + holidayDateDayColor = () => this.getValueByKey('holidayDateDayColor'); + holidayDateNightColor = () => this.getValueByKey('holidayDateNightColor'); + + todayDayColor = () => this.getValueByKey('todayDayColor'); + todayNightColor = () => this.getValueByKey('todayNightColor'); + + monthBgTextDayColor = () => this.getValueByKey('monthBgTextDayColor'); + monthBgTextNightColor = () => this.getValueByKey('monthBgTextNightColor'); + + constructor(scriptName) { + super(scriptName); + this.defaultConfig.bgType = '3'; + this.backgroundColor = '#FFFFFF,#000000'; + } + + async getAppViewOptions() { + return { + widgetProvider: { + small: false, // 是否提供小号组件 + medium: true, // 是否提供中号组件 + large: true, // 是否提供大号组件 + }, + // 预览界面的组件设置item + settingItems: [ + { + name: 'startDay', + label: '每周起始日', + type: 'select', + icon: { name: 'tray.full.fill', color: '#4cc9f0' }, + options: [ + { label: '周一', value: '1' }, + { label: '周日', value: '2' }, + ], + default: "1" + }, + { + name: 'jumpType', + label: '点击跳转', + type: 'select', + icon: { name: 'link', color: '#ef233c' }, + options: [ + { label: '网页黄历', value: '1' }, + { label: '系统日历', value: '2' }, + ], + default: "1" + }, + { + name: 'openSchedule', + label: '日程指示器', + type: 'switch', + icon: { name: 'calendar', color: '#27E1C1' }, + default: false, + needLoading: false, + }, + { + name: 'otherSetting', + label: '其他设置', + type: 'cell', + icon: 'https://cdnjson.com/images/2024/02/05/settings.png', + needLoading: true, + childItems: [ + { + items: [ + { + name: 'weekdayTitleDayColor', + label: '工作日标题浅色颜色', + type: 'color', + icon: { name: 'pencil.and.outline', color: '#3a86ff' }, + needLoading: false, + default: this.weekdayTitleDayColor(), + }, + { + name: 'weekdayTitleNightColor', + label: '工作日标题深色颜色', + type: 'color', + icon: { name: 'square.and.pencil', color: '#3a0ca3' }, + needLoading: false, + default: this.weekdayTitleNightColor(), + }, + ], + }, + { + items: [ + { + name: 'weekendTitleDayColor', + label: '周末标题浅色颜色', + type: 'color', + icon: { name: 'pencil.and.outline', color: '#3a86ff' }, + needLoading: false, + default: this.weekendTitleDayColor(), + }, + { + name: 'weekendTitleNightColor', + label: '周末标题深色颜色', + type: 'color', + icon: { name: 'square.and.pencil', color: '#3a0ca3' }, + needLoading: false, + default: this.weekendTitleNightColor(), + }, + ], + }, + { + items: [ + { + name: 'notCurrMonthDayColor', + label: '非当前月浅色颜色', + type: 'color', + icon: { name: 'pencil.and.outline', color: '#3a86ff' }, + needLoading: false, + default: this.notCurrMonthDayColor(), + }, + { + name: 'notCurrMonthNightColor', + label: '非当前月深色颜色', + type: 'color', + icon: { name: 'square.and.pencil', color: '#3a0ca3' }, + needLoading: false, + default: this.notCurrMonthNightColor(), + }, + ], + }, + { + items: [ + { + name: 'weekdayDateDayColor', + label: '工作日日期浅色颜色', + type: 'color', + icon: { name: 'pencil.and.outline', color: '#3a86ff' }, + needLoading: false, + default: this.weekdayDateDayColor(), + }, + { + name: 'weekdayDateNightColor', + label: '工作日日期深色颜色', + type: 'color', + icon: { name: 'square.and.pencil', color: '#3a0ca3' }, + needLoading: false, + default: this.weekdayDateNightColor(), + }, + ], + }, + { + items: [ + { + name: 'holidayDateDayColor', + label: '节假日日期浅色颜色', + type: 'color', + icon: { name: 'pencil.and.outline', color: '#3a86ff' }, + needLoading: false, + default: this.holidayDateDayColor(), + }, + { + name: 'holidayDateNightColor', + label: '节假日日期深色颜色', + type: 'color', + icon: { name: 'square.and.pencil', color: '#3a0ca3' }, + needLoading: false, + default: this.holidayDateNightColor(), + }, + ], + }, + { + items: [ + { + name: 'todayDayColor', + label: '今日日期浅色颜色', + type: 'color', + icon: { name: 'pencil.and.outline', color: '#3a86ff' }, + needLoading: false, + default: this.todayDayColor(), + }, + { + name: 'todayNightColor', + label: '今日日期深色颜色', + type: 'color', + icon: { name: 'square.and.pencil', color: '#3a0ca3' }, + needLoading: false, + default: this.todayNightColor(), + }, + ], + }, + { + items: [ + { + name: 'monthBgTextDayColor', + label: '当前月份浅色颜色', + type: 'color', + icon: { name: 'pencil.and.outline', color: '#3a86ff' }, + needLoading: false, + default: this.monthBgTextDayColor(), + }, + { + name: 'monthBgTextNightColor', + label: '当前月份深色颜色', + type: 'color', + icon: { name: 'square.and.pencil', color: '#3a0ca3' }, + needLoading: false, + default: this.monthBgTextNightColor(), + }, + ], + }, + ], + }, + ], + // cell类型的item点击回调 + onItemClick: async (item) => { + }, + }; + } + + async render({ widgetSetting, family }) { + if (family == 'medium') { + return await this.provideWidget({ widgetSetting, isLarge: false }); + } + return await this.provideWidget({ widgetSetting, isLarge: true }); + } + + async provideWidget({ widgetSetting, isLarge }) { + const startDay = widgetSetting['startDay'] ?? 1; + // ======================================== + const currDate = new Date(); + let widgetSize = this.getWidgetSize('中号'); + let rowCount = 2; + if (isLarge) { + rowCount = 6; + widgetSize = this.getWidgetSize('大号'); + } + const width = widgetSize.width; + const height = widgetSize.height; + const hCellWidth = width / 7; + const topPadding = 6; + const bottomPadding = 6; + const weekCellHeight = 16; + const dateCellHeight = (height - weekCellHeight - 2 * topPadding - bottomPadding) / rowCount; + const canvasHeight = height - 2 * topPadding; + // ======================================== + const widget = new ListWidget(); + widget.setPadding(0, 0, 0, 0); + const stack = widget.addStack(); + stack.size = new Size(width, canvasHeight); + // ================================= + + const drawContext = new DrawContext(); + drawContext.size = new Size(width, canvasHeight); + drawContext.respectScreenScale = true; + drawContext.opaque = false; + + // + drawContext.setFont(Font.regularSystemFont(15)); + drawContext.setTextAlignedCenter(); + for (let index = 0; index < 7; index++) { + if (index >= 5) { + drawContext.setTextColor(Color.dynamic(new Color(this.weekendTitleDayColor()), new Color(this.weekendTitleNightColor()))); + } else { + drawContext.setTextColor(Color.dynamic(new Color(this.weekdayTitleDayColor()), new Color(this.weekdayTitleNightColor()))); + } + let rect = new Rect(index * hCellWidth, 0, hCellWidth, weekCellHeight); + let title = this.mondayFirstTitleArr[index]; + if (startDay == 2) { + title = this.sundayFirstTitleArr[index]; + } + drawContext.drawTextInRect(title, rect); + } + + // ================================= + const calendarArr = await this.loadCalendarData(startDay); + let range = [0, 42]; + if (!isLarge) { + const matchCalendar = calendarArr.filter(item => item.year == currDate.getFullYear() && item.month == (currDate.getMonth() + 1) && item.day == currDate.getDate())[0]; + const index = calendarArr.indexOf(matchCalendar); + const calendarRow = Math.floor(index / 7 + 1); + if (calendarRow <= 2) { + range = [0, 14]; + } else if (calendarRow >= 5) { + range = [28, 42]; + } else { + range = [14, 28]; + } + } + const finalCalendarArr = calendarArr.slice(range[0], range[1]); + + // ================================= + const margin = 2; + for (let row = 0; row < rowCount; row++) { + for (let col = 0; col < 7; col++) { + let marginTop = 0; + if (isLarge) { + marginTop = topPadding / 2; + } + let rect = new Rect(col * hCellWidth, (topPadding + weekCellHeight) + row * dateCellHeight + marginTop, hCellWidth, dateCellHeight); + let calendarInfo = finalCalendarArr[7 * row + col]; + if (calendarInfo.isWeekend && !calendarInfo.showWorkDay || calendarInfo.showHoliday) { + drawContext.setTextColor(Color.dynamic(new Color(this.holidayDateDayColor()), new Color(this.holidayDateNightColor()))); + } else { + drawContext.setTextColor(Color.dynamic(new Color(this.weekdayDateDayColor()), new Color(this.weekdayDateNightColor()))); + } + + // 当天 + if (calendarInfo.isToday) { + drawContext.setLineWidth(1.2); + drawContext.setTextColor(Color.dynamic(new Color(this.todayDayColor()), new Color(this.todayNightColor()))); + drawContext.setStrokeColor(Color.dynamic(new Color(this.todayDayColor()), new Color(this.todayNightColor()))); + let newRect = new Rect(rect.x + margin, rect.y + margin, rect.width - 2 * margin, rect.height - 2 * margin); + let path = new Path(); + path.addRoundedRect(newRect, 8, 8); + path.closeSubpath(); + drawContext.addPath(path); + drawContext.strokePath(path); + } + + // 当前月颜色 + if (!calendarInfo.isCurrentMonth) { + drawContext.setTextColor(Color.dynamic(new Color(this.notCurrMonthDayColor()), new Color(this.notCurrMonthNightColor()))) + } + + // 新历 + let newDay = calendarInfo.day; + if (calendarInfo.isToday) { + drawContext.setFont(Font.semiboldSystemFont(19)); + } else { + drawContext.setFont(Font.systemFont(18)); + } + let newDatePoint = new Point(rect.x + hCellWidth / 2 - 5 * (newDay.length), rect.y + dateCellHeight / 2 - 20); + drawContext.drawText(newDay, newDatePoint); + + // 农历 + if (calendarInfo.isToday) { + drawContext.setFont(Font.semiboldSystemFont(11)); + } else { + drawContext.setFont(Font.systemFont(10)); + } + let subText = calendarInfo.subText; + let lunDatePoint = new Point(rect.x + hCellWidth / 2 - 5.3 * subText.length, rect.y + dateCellHeight / 2 + 2); + drawContext.drawText(subText, lunDatePoint); + + // 日程指示 + const openSchedule = widgetSetting['openSchedule'] ?? false; + if (openSchedule && calendarInfo.schedules.length > 0) { + let scheduleDotPath = new Path(); + const scheduleDotSize = 4; + scheduleDotPath.addRoundedRect(new Rect(lunDatePoint.x + 3 * subText.length + Math.round(scheduleDotSize / 2) * newDay.length, lunDatePoint.y + 15, scheduleDotSize, scheduleDotSize), scheduleDotSize, scheduleDotSize); + scheduleDotPath.closeSubpath(); + drawContext.addPath(scheduleDotPath); + drawContext.fillPath(scheduleDotPath); + } + + // 角标 + drawContext.setFont(Font.regularSystemFont(8)); + let anchorTextPoint = new Point(rect.x + margin * 2.2, rect.y + 2.2 * margin); + drawContext.drawText(calendarInfo.anchorText, anchorTextPoint); + } + } + + // ================================= + let img = await drawContext.getImage(); + stack.centerAlignContent(); + stack.setPadding(0, 10, 0, 10); + stack.addImage(img); + + let ctx = new DrawContext(); + ctx.opaque = false; + ctx.size = new Size(width, height); + ctx.respectScreenScale = true; + ctx.setTextAlignedCenter(); + ctx.setTextColor(Color.dynamic(new Color(this.monthBgTextDayColor()), new Color(this.monthBgTextNightColor()))); + if (isLarge) { + ctx.setFont(Font.semiboldSystemFont(288)); + ctx.drawTextInRect(`${new Date().getMonth() + 1}`, new Rect(0, 0, width, height)); + } else { + ctx.setFont(Font.semiboldSystemFont(100)); + ctx.drawText(`${new Date().getMonth() + 1}月`, new Point(width / 2 - 80, height / 2 - 50)); + } + img = await ctx.getImage(); + stack.backgroundImage = img; + // 日历跳转 + const jumpType = widgetSetting['jumpType'] ?? 1; + if (jumpType == 1) { + stack.url = `https://mobile.51wnl-cq.com/huangli_tab_h5/?posId=BDSS&STIME=${currDate.getFullYear()}-${currDate.getMonth() + 1}-${currDate.getDate()}`; + } else { + stack.url = 'calshow://'; + } + + return widget; + } + + // --------------------------NET START------------------------ + + async loadCalendarData(startDay = 1) { + const totalCalendarArr = []; + // + const currDate = new Date(); + const dateKey = `${currDate.getFullYear()}-${currDate.getMonth() + 1}`; + const useCache = keyGet(dateKey, '0') == 1; + let response; + if (useCache) { + response = keyGet(this.md5(this.scriptName), ''); + console.log(`使用缓存的${dateKey}日历数据...`); + } + if (response == undefined || response.length == 0) { + console.log(`网络请求日历数据...`); + const url = `https://opendata.baidu.com/api.php?tn=wisetpl&format=json&resource_id=39043&query=${currDate.getFullYear()}%E5%B9%B4${currDate.getMonth() + 1}%E6%9C%88&t=${currDate.getTime()}` + response = await this.httpGet( + url, + { + jsonFormat: false, + } + ); + } + const json = JSON.parse(response); + if (json.status == 0) { + keySave(dateKey, '1'); + keySave(this.md5(this.scriptName), response); + const { data = [] } = json; + if (data.length > 0) { + const { almanac = [] } = data[0] + + // ================================ + function constructDateItem(isToday, isCurrentMonth, day, month) { + let dateItem = {}; + dateItem['isToday'] = isToday; + dateItem['isCurrentMonth'] = isCurrentMonth; + dateItem['day'] = `${day}`; + dateItem['month'] = month; + let matchDate = almanac.filter(item => item.month == dateItem.month && item.day == dateItem.day)[0]; + dateItem['jumpUrl'] = matchDate.yjJumpUrl; + dateItem['year'] = matchDate.year; + dateItem['lunarMonth'] = matchDate.lMonth; + dateItem['lunarDay'] = matchDate.lDate; + dateItem['lunarDate'] = `${matchDate.lMonth}月${matchDate.lDate}`; + dateItem['showWorkDay'] = matchDate.status == 2; // 调休补班 + dateItem['showHoliday'] = matchDate.status == 1; // 节假日放假 + let anchorText = ''; + if (matchDate.status == 1) { + anchorText = '休'; + } else if (matchDate.status == 2) { + anchorText = '班'; + } + dateItem['anchorText'] = anchorText; + dateItem['weekTitle'] = `星期${matchDate.cnDay}`; // 周几 + dateItem['isWeekend'] = matchDate.cnDay == '六' || matchDate.cnDay == '日'; // 是否周末 + dateItem['festivalList'] = matchDate.festivalList; // 节假名称 + let subText = matchDate.lDate; + if (subText == '初一') { + subText = `${matchDate.lMonth}月`; + } + if (matchDate.term != undefined && matchDate.term.length > 0) { + subText = matchDate.festivalList.split(',')[0]; + } + dateItem['subText'] = subText; + return dateItem; + } + // ================================ + let currDateYear = currDate.getFullYear(); + let currDateMonth = currDate.getMonth() + 1; + let currMonthLastDate = new Date(currDate.getFullYear(), currDateMonth, 0); + // [0, 6] 0表示周日,6表示周六 + const lastDay = currMonthLastDate.getDate(); + // + let lastDateYear = currDateYear; + let lastDateMonth = currDateMonth - 1; + if (currDateMonth == 1) { + lastDateMonth = 12; + lastDateYear = currDateYear - 1; + } + let preMonthLastDate = new Date(lastDateYear, lastDateMonth, 0); + const preMonthLastDay = preMonthLastDate.getDay(); + log(preMonthLastDay) + let lastMonthDays = 0; + if (startDay == 2) { + lastMonthDays = preMonthLastDay + 1; + if (preMonthLastDay == 0) { // 周日 + lastMonthDays = 1; + } else if (preMonthLastDay == 6) { + lastMonthDays = 0; + } + } else { + lastMonthDays = preMonthLastDay < 0 ? 6 : preMonthLastDay; + } + // 上一个月数据 + if (lastMonthDays > 0) { + const firstAlmanac = almanac[0]; + const preDate = new Date(firstAlmanac.year, firstAlmanac.month, 0) + for (let index = lastMonthDays - 1; index >= 0; index--) { + let day = preDate.getDate() - index; + totalCalendarArr.push(constructDateItem(false, false, day, firstAlmanac.month)); + } + } + // 当前月数据 + for (let index = 1; index <= lastDay; index++) { + totalCalendarArr.push(constructDateItem(currDate.getDate() == index, true, index, `${currDate.getMonth() + 1}`)); + } + // 下一个月 + const currCount = 42 - totalCalendarArr.length; + for (let index = 1; index <= currCount; index++) { + const lastAlmanac = almanac[almanac.length - 1]; + totalCalendarArr.push(constructDateItem(false, false, index, lastAlmanac.month)); + } + } + } + + // 日程 + const first = totalCalendarArr[0]; + const last = totalCalendarArr[totalCalendarArr.length - 1]; + const totalSchedules = await CalendarEvent.between( + new Date(parseInt(first.year), parseInt(first.month) - 1, parseInt(first.day)), + new Date(parseInt(last.year), parseInt(last.month) - 1, parseInt(last.day)), + [] + ); + const finalSchedules = []; + totalSchedules.forEach(schedule => { + finalSchedules.push({ + 'title': schedule.title, + 'notes': schedule.notes, + 'date': new Date(schedule.endDate) + }); + }); + totalCalendarArr.forEach(calendar => { + let filterDaySchedules = finalSchedules.filter(schedule => calendar.year == schedule.date.getFullYear() && calendar.month == (schedule.date.getMonth() + 1) && calendar.day == schedule.date.getDate()); + calendar['schedules'] = filterDaySchedules; + }); + + console.log(JSON.stringify(totalCalendarArr, null, 2)); + return totalCalendarArr; + } + + // --------------------------NET END-------------------------- +} + +await new Widget(Script.name()).run(); + + +// ================================================================================= +// ================================================================================= +async function downloadLSPDependency() { + let fm = FileManager.local(); + const fileName = fm.joinPath(fm.documentsDirectory(), `LSP/${Script.name()}/settings.json`); + const fileExists = fm.fileExists(fileName); + let cacheString = '{}'; + if (fileExists) { + cacheString = fm.readString(fileName); + } + const use_github = JSON.parse(cacheString)['use_github']; + const dependencyURL = `${use_github ? remoteGithubRoot : remoteHomeLandRoot}/_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 || update) { + console.log(`🤖 DEV 开始${update ? '更新' + dependencyLSP : '下载'}依赖~`); + keySave('VERSION', dependencyLSP); + await downloadFile2Scriptable('_LSP', dependencyURL); + } + return; + } + + ////////////////////////////////////////////////////////// + console.log(`----------------------------------------`); + const remoteDependencyExit = fm.fileExists(`${cacheDir}/_LSP.js`); + console.log(`🚀 RELEASE依赖文件${remoteDependencyExit ? '已存在 ✅' : '不存在 🚫'}`); + // ------------------------------ + if (!remoteDependencyExit || update) { // 下载依赖 + // 创建根目录 + if (!fm.fileExists(cacheDir)) { + fm.createDirectory(cacheDir, true); + } + // 下载 + 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 { + console.error('🚫 获取依赖环境脚本失败,请重试!'); + console.log(`----------------------------------------`); + } + } +} + +/** + * 获取保存的文件名 + * @param {*} fileName + * @returns + */ +function getSaveFileName(fileName) { + const hasSuffix = fileName.lastIndexOf('.') + 1; + return !hasSuffix ? `${fileName}.js` : fileName; +}; + +/** + * 保存文件到Scriptable软件目录,app可看到 + * @param {*} fileName + * @param {*} content + * @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; + } +}; + +/** + * 下载js文件到Scriptable软件目录 + * @param {*} moduleName 名称 + * @param {*} url 在线地址 + * @returns + */ +async function downloadFile2Scriptable(moduleName, url) { + const req = new Request(url); + const content = await req.loadString(); + 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 diff --git "a/\344\270\226\347\225\214\346\235\257.js" "b/\344\270\226\347\225\214\346\235\257.js" new file mode 100644 index 0000000..f2d9161 --- /dev/null +++ "b/\344\270\226\347\225\214\346\235\257.js" @@ -0,0 +1,496 @@ +// Variables used by Scriptable. +// These must be at the very top of the file. Do not edit. +// icon-color: red; icon-glyph: user-astronaut; +/** + * Author:LSP + * Date:2023-05-12 + */ +// ------------------------------------------------------- +// 是否是开发环境,配合手机端调试使用,正式发布设置为false +const isDev = false; +const dependencyLSP = '20230511'; +console.log(`当前环境 👉👉👉👉👉 ${isDev ? 'DEV' : 'RELEASE'}`); +console.log(`----------------------------------------`); +// 分支 +const branch = 'v2'; +// 仓库根目录 +const remoteGithubRoot = `https://raw.githubusercontent.com/Enjoyee/Scriptable/${branch}`; +const remoteHomeLandRoot = `https://glimmerk.coding.net/p/Scriptable/shared-depot/source/git/raw/${branch}`; +// 依赖包目录 +const fm = FileManager.local(); +const rootDir = fm.documentsDirectory(); +const cacheDir = fm.joinPath(rootDir, 'LSP'); +const dependencyFileName = isDev ? "_LSP.js" : `${cacheDir}/_LSP.js`; +// 下载依赖包 +await downloadLSPDependency(); +// ------------------------------------------------------- +if (typeof require === 'undefined') require = importModule +// 引入相关方法 +const { BaseWidget } = require(dependencyFileName); + +// @定义小组件 +class Widget extends BaseWidget { + + defaultPreference = { + bgUrl: 'https://s3.uuu.ovh/imgs/2022/12/07/6af2cea7cdbfdce4.png', + shadowColor: '#FFF', + shadowColorAlpha: '0.5', + titleColor: '#222', + teamColor: '#222', + notStartedColor: '#211', + startingColor: '#d30742', + finishedColor: '#666' + }; + + getValueByKey = (key) => this.readWidgetSetting()[key] ?? this.defaultPreference[key]; + titleColorFun = () => this.getValueByKey('titleColor'); + teamColorFun = () => this.getValueByKey('teamColor'); + notStartedColorFun = () => this.getValueByKey('notStartedColor'); + startingColorFun = () => this.getValueByKey('startingColor'); + finishedColorFun = () => this.getValueByKey('finishedColor'); + + constructor(scriptName) { + super(scriptName); + this.changeBgMode2OnLineBg(this.defaultPreference.bgUrl, { ...this.defaultPreference }); + } + + async getAppViewOptions() { + return { + widgetProvider: { + defaultBgType: '1', + small: false, // 是否提供小号组件 + medium: true, // 是否提供中号组件 + large: false, // 是否提供大号组件 + }, + // 预览界面的组件设置item + settingItems: [ + { + name: 'filterFinished', + label: '过滤已完成赛事', + type: 'switch', + icon: { name: 'backpack.fill', color: '#e85d04', }, + needLoading: false, + default: true, + }, + { + name: 'otherSetting', + label: '其他设置', + type: 'cell', + icon: 'https://cdnjson.com/images/2024/02/05/settings.png', + needLoading: true, + childItems: [ + { + name: 'titleColor', + label: '标题颜色', + type: 'color', + icon: { name: 'scribble.variable', color: '#264653', }, + needLoading: false, + default: this.titleColorFun(), + }, + { + name: 'teamColor', + label: '队名颜色', + type: 'color', + icon: { name: 'highlighter', color: '#2a9d8f', }, + needLoading: false, + default: this.teamColorFun(), + }, + { + name: 'notStartedColor', + label: '未开始比分颜色', + type: 'color', + icon: { name: 'pencil.and.outline', color: '#e9c46a', }, + needLoading: false, + default: this.notStartedColorFun(), + }, + { + name: 'startingColor', + label: '进行中比分颜色', + type: 'color', + icon: { name: 'lasso', color: '#f4a261', }, + needLoading: false, + default: this.startingColorFun(), + }, + { + name: 'finishedColor', + label: '结束比分颜色', + type: 'color', + icon: { name: 'lasso.and.sparkles', color: '#e76f51', }, + needLoading: false, + default: this.finishedColorFun(), + }, + ] + }, + ], + }; + } + + provideMediumWidget = async (widgetSetting) => { + // 赛程 + const RES = await this.loadWorldCupData(widgetSetting.filterFinished ?? true); + // + const ballImg = await this.getImageByUrl('https://gitee.com/enjoyee/img/raw/master/other/ball.png'); + // + const titleColor = this.titleColorFun(); + const teamColor = this.teamColorFun(); + const notStartedColor = this.notStartedColorFun(); + const startingColor = this.startingColorFun(); + const finishedColor = this.finishedColorFun(); + //================================= + const widget = new ListWidget(); + widget.setPadding(0, 0, 0, 0); + const widgetSize = this.getWidgetSize('中号'); + let { width, height } = widgetSize; + //================================= + const contentStack = widget.addStack(); + contentStack.layoutVertically(); + contentStack.centerAlignContent(); + if (RES.length == 0) { + let mxStack = contentStack.addStack(); + mxStack.layoutHorizontally(); + mxStack.addSpacer(); + let mxImg = await this.getImageByUrl('https://s3.uuu.ovh/imgs/2022/12/08/e84b3697053ddaab.webp'); + let mxImgSpan = mxStack.addImage(mxImg); + mxStack.addSpacer(); + mxImgSpan.imageSize = new Size(100, 100); + mxImgSpan.centerAlignImage(); + let infoStack = contentStack.addStack(); + infoStack.layoutHorizontally(); + infoStack.addSpacer(); + let tipsTextSpan = infoStack.addText('ops~o_O||今天球场上没人'); + infoStack.addSpacer(); + tipsTextSpan.textColor = new Color(titleColor); + tipsTextSpan.font = Font.systemFont(20); + tipsTextSpan.shadowColor = new Color('#666', 0.4); + tipsTextSpan.shadowRadius = 0.4; + tipsTextSpan.shadowOffset = new Point(1, 1); + } else { + height -= 12; + contentStack.size = new Size(width, height); + const perHeight = height / 3; + const descStackHeight = perHeight / 5 * 2.1; + const detailStackHeight = perHeight / 5 * 3; + const areaStackSize = new Size(width / 7 * 2.5, detailStackHeight); + if (RES.length == 1) { + let topStack = contentStack.addStack(); + topStack.layoutHorizontally(); + topStack.centerAlignContent(); + topStack.addSpacer(); + let topImg = await this.getImageByUrl('https://s3.uuu.ovh/imgs/2022/12/06/3f48556409802788.png'); + let topImgSpan = topStack.addImage(topImg); + topImgSpan.imageSize = new Size(28, 28); + // + topStack.addSpacer(2); + let topTextSpan = topStack.addText(`${RES[0].round_name}`); + topTextSpan.textColor = new Color(titleColor); + topTextSpan.font = Font.systemFont(20); + topTextSpan.shadowColor = new Color('#666', 0.4); + topTextSpan.shadowRadius = 0.4; + topTextSpan.shadowOffset = new Point(1, 1); + // + topStack.addSpacer(2); + topImgSpan = topStack.addImage(topImg); + topImgSpan.imageSize = new Size(28, 28); + // + topStack.addSpacer(); + contentStack.addSpacer(4); + } + for (let index = 0; index < RES.length; index++) { + const item = RES[index]; + let { room_id, host_team = {}, guest_team = {}, match_status = 1, bottom_note } = item; + // ================================ + let stack = contentStack.addStack(); + stack.layoutVertically(); + // ================================ + let descContainerStack = stack.addStack(); + descContainerStack.layoutHorizontally(); + descContainerStack.addSpacer(); + let descStack = descContainerStack.addStack(); + descContainerStack.addSpacer(); + descStack.size = new Size(width / 10 * 9, descStackHeight); + descStack.backgroundColor = new Color('#FFF', 0.5); + descStack.cornerRadius = descStackHeight / 2; + descStack.borderWidth = 1; + descStack.borderColor = new Color('#000', 0.2); + descStack.layoutHorizontally(); + descStack.centerAlignContent(); + /// + let imgSpan = descStack.addImage(ballImg); + imgSpan.imageSize = new Size(12, 12); + imgSpan.imageOpacity = 0.6; + descStack.addSpacer(8); + /// + let textSpan = descStack.addText(`${item.match_round_desc}`); + textSpan.textColor = new Color(titleColor, 0.9); + textSpan.font = Font.systemFont(12); // 小标题 + /// + descStack.addSpacer(8); + imgSpan = descStack.addImage(ballImg); + imgSpan.imageSize = new Size(12, 12); + imgSpan.imageOpacity = 0.6; + /// + // ================================ + stack.addSpacer(4); + let detailStack = stack.addStack(); + detailStack.size = new Size(width, detailStackHeight); + detailStack.layoutHorizontally(); + let jumpUrl = `https://webcast-open.douyin.com/open/webcast/reflow/?webcast_app_id=6822&room_id=${room_id}`; + if (room_id) { + detailStack.url = jumpUrl; + } + // -------------------------------- + let hostStack = detailStack.addStack(); + hostStack.size = areaStackSize; + hostStack.centerAlignContent(); + hostStack.addSpacer(); + textSpan = hostStack.addText(host_team.cn_name); + textSpan.textColor = new Color(teamColor, 1); + textSpan.font = Font.mediumSystemFont(14); // 队名 + hostStack.addSpacer(10); + // + let image = await this.getImageByUrl(host_team.flag); + imgSpan = hostStack.addImage(image); + imgSpan.imageSize = new Size(40, 40); // 国旗 + // -------------------------------- + let scoreStack = detailStack.addStack(); + scoreStack.addSpacer(); + scoreStack.size = new Size(width / 7 * 2, detailStackHeight); + scoreStack.centerAlignContent(); + textSpan = scoreStack.addText(`${item.host_score} : ${item.guest_score}`); + let scoreColor; + switch (match_status) { + case 1: // 未开始 + scoreColor = notStartedColor; + break; + + case 2: // 直播中 + scoreColor = startingColor; + break; + + case 3: // 已结束 + scoreColor = finishedColor; + break; + } + textSpan.textColor = new Color(scoreColor, 0.8); + textSpan.font = Font.heavySystemFont(28); // 比分 + scoreStack.addSpacer(); + // -------------------------------- + let guestStack = detailStack.addStack(); + guestStack.size = areaStackSize; + guestStack.centerAlignContent(); + image = await this.getImageByUrl(guest_team.flag); + imgSpan = guestStack.addImage(image); + imgSpan.imageSize = new Size(40, 40); // 国旗 + guestStack.addSpacer(10); + // + textSpan = guestStack.addText(guest_team.cn_name); + textSpan.textColor = new Color(teamColor, 1); + textSpan.font = Font.mediumSystemFont(14); // 队名 + guestStack.addSpacer(); + // + if (index != RES.length - 1) { + stack.addSpacer(10); + } + if (RES.length === 1) { + stack.addSpacer(6); + const bottomStack = stack.addStack(); + bottomStack.layoutHorizontally(); + bottomStack.addSpacer(); + textSpan = bottomStack.addText(`『${bottom_note}』`); + textSpan.textColor = new Color(titleColor, 0.9); + textSpan.font = Font.systemFont(13); + bottomStack.addSpacer(); + if (room_id) { + bottomStack.url = jumpUrl; + } + } + } + } + //================================= + return widget; + } + + async render({ widgetSetting, family }) { + return await this.provideMediumWidget(widgetSetting); + } + + // --------------------------NET START-------------------------- + + /** + * 世界杯数据 + */ + loadWorldCupData = async (filterFinished) => { + const URL = 'https://api5-normal-lq.toutiaoapi.com/vertical/sport/go/world_cup/match_info'; + const RES = await this.httpGet(URL); + const match_infos = JSON.parse(RES.data).match_infos; + const matchInfoKeys = Object.keys(match_infos); + // ------------------------------------------------- + const currDateKey = this.getDateStr(new Date(), 'yyyyMMdd'); + let currDateIndex = matchInfoKeys.indexOf(currDateKey); + // ------------------------------------------------- + let preDateIndex = currDateIndex - 1; + let preDateKey = matchInfoKeys[preDateIndex]; + // ------------------------------------------------- + let afterDateIndex = currDateIndex + 1; + let afterDateKey = ''; + if (currDateIndex == matchInfoKeys.length - 1) { + afterDateIndex = -1; + } else { + afterDateKey = matchInfoKeys[afterDateIndex]; + } + console.log(`preDateKey->${preDateKey}, afterDateKey:${afterDateKey}, currDateKey=${currDateKey}`); + // ------------------------------------------------- + // match_status:1未开始,2:进行中,3:已结束,其他非比赛 + let currMatch = match_infos[currDateKey]; + let preMatch = match_infos[preDateKey]; + let afterMatch; + if (afterDateKey.length > 0) { + afterMatch = match_infos[afterDateKey]; + } + // + let showInfoArr = []; + if (preMatch.match_status == 2) { + showInfoArr = showInfoArr.concat(preMatch); + } + if ([1, 2, 3].indexOf(currMatch.match_status) != -1) { + showInfoArr = showInfoArr.concat(currMatch); + } + if (filterFinished) { + showInfoArr = showInfoArr.filter(item => item.match_status != 3); + if (showInfoArr.length == 0 && afterDateKey.length > 0) { + showInfoArr = showInfoArr.concat(afterMatch); + } + } + + const infoArr = []; + for (const info of showInfoArr) { + const { + round_name = '', + match_status = 1, // 1:未开始,2:直播中,3:已结束 + match_round_desc = '', + host_team = {}, + guest_team = {}, + host_score = '', + guest_score = '', + bottom_note = '', + room_id = '' + } = info; + infoArr.push({ + match_status, + round_name, + match_round_desc: match_round_desc.replaceAll(round_name, ''), + host_team, + guest_team, + host_score, + guest_score, + bottom_note, + room_id + }); + } + + return infoArr.length > 1 ? infoArr.slice(0, 2) : infoArr; + } + + // --------------------------NET END-------------------------- + +} + +await new Widget(Script.name()).run(); + + +// ================================================================================= +// ================================================================================= +async function downloadLSPDependency() { + let fm = FileManager.local(); + const fileName = fm.joinPath(fm.documentsDirectory(), `LSP/${Script.name()}/settings.json`); + const fileExists = fm.fileExists(fileName); + let cacheString = '{}'; + if (fileExists) { + cacheString = fm.readString(fileName); + } + const use_github = JSON.parse(cacheString)['use_github']; + const dependencyURL = `${use_github ? remoteGithubRoot : remoteHomeLandRoot}/_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 || update) { + console.log(`🤖 DEV 开始${update ? '更新' + dependencyLSP : '下载'}依赖~`); + keySave('VERSION', dependencyLSP); + await downloadFile2Scriptable('_LSP', dependencyURL); + } + return; + } + + ////////////////////////////////////////////////////////// + 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(`----------------------------------------`); + 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(`----------------------------------------`); + } + } +} + +/** + * 获取保存的文件名 + * @param {*} fileName + * @returns + */ +function getSaveFileName(fileName) { + const hasSuffix = fileName.lastIndexOf(".") + 1; + return !hasSuffix ? `${fileName}.js` : fileName; +}; + +/** + * 保存文件到Scriptable软件目录,app可看到 + * @param {*} fileName + * @param {*} content + * @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; + } +}; + +/** + * 下载js文件到Scriptable软件目录 + * @param {*} moduleName 名称 + * @param {*} url 在线地址 + * @returns + */ +async function downloadFile2Scriptable(moduleName, url) { + const req = new Request(url); + const content = await req.loadString(); + return saveFile2Scriptable(`${moduleName}`, content); +}; + +// ================================================================================= +// ================================================================================= \ No newline at end of file diff --git "a/\344\273\212\346\227\245\344\272\213\351\241\271.js" "b/\344\273\212\346\227\245\344\272\213\351\241\271.js" new file mode 100644 index 0000000..4fd8972 --- /dev/null +++ "b/\344\273\212\346\227\245\344\272\213\351\241\271.js" @@ -0,0 +1,360 @@ +// Variables used by Scriptable. +// These must be at the very top of the file. Do not edit. +// icon-color: deep-purple; icon-glyph: bell; +/** + * Author:LSP + * Date:2023-05-11 + */ +// ------------------------------------------------------- +// 是否是开发环境,配合手机端调试使用,正式发布设置为false +const isDev = false; +const dependencyLSP = '20230511'; +console.log(`当前环境 👉👉👉👉👉 ${isDev ? 'DEV' : 'RELEASE'}`); +console.log(`----------------------------------------`); +// 分支 +const branch = 'v2'; +// 仓库根目录 +const remoteGithubRoot = `https://raw.githubusercontent.com/Enjoyee/Scriptable/${branch}`; +const remoteHomeLandRoot = `https://glimmerk.coding.net/p/Scriptable/shared-depot/source/git/raw/${branch}`; +// 依赖包目录 +const fm = FileManager.local(); +const rootDir = fm.documentsDirectory(); +const cacheDir = fm.joinPath(rootDir, 'LSP'); +const dependencyFileName = isDev ? "_LSP.js" : `${cacheDir}/_LSP.js`; +// 下载依赖包 +await downloadLSPDependency(); +// ------------------------------------------------------- +if (typeof require === 'undefined') require = importModule +// 引入相关方法 +const { BaseWidget } = require(dependencyFileName); + +// @定义小组件 +class Widget extends BaseWidget { + + defaultPreference = { + reminderColors: { + 0: '#333333', + 1: '#ff0000', + 5: '#e85d04', + 9: '#faa307', + } + }; + + constructor(scriptName) { + super(scriptName); + this.changeBgMode2OnLineBg( + ['https://www.toptal.com/designers/subtlepatterns/uploads/double-bubble-outline.png'] + ); + } + + async getAppViewOptions() { + return { + widgetProvider: { + small: false, // 是否提供小号组件 + medium: true, // 是否提供中号组件 + large: false, // 是否提供大号组件 + }, + // 预览界面的组件设置item + settingItems: [ + { + name: 'avatar', + label: '设置头像', + type: 'cell', + icon: { name: 'photo.on.rectangle', color: '#ff4800', }, + needLoading: false, + alert: { + title: '设置头像', + options: [ + { + key: 'avatar', + hint: '请输入头像链接', + } + ] + }, + showDesc: false + }, + { + name: 'circleAvatar', + label: '头像圆形裁剪', + type: 'switch', + icon: { name: 'person.crop.circle', color: '#6C00FF', } + }, + ], + }; + } + + async render({ widgetSetting, family }) { + let widget; + switch (family) { + case 'medium': + widget = await this.provideMediumWidget(widgetSetting); + break; + } + widget.setPadding(6, 12, 6, 12); + return widget; + } + + /** + * 中型组件 + * @returns + */ + async provideMediumWidget(widgetSetting) { + const reminderObj = await this.loadReminderList(); + const { finishedList, unfinishedList } = reminderObj; + const finishedCount = finishedList.length; + const unfinishedCount = unfinishedList.length; + const totalCount = finishedCount + unfinishedCount; + // ======================================== + const widget = new ListWidget(); + const { width, height } = this.getWidgetSize('中号'); + const contentStack = widget.addStack(); + contentStack.layoutHorizontally(); + // ======================================== + const leftStack = contentStack.addStack(); + leftStack.layoutVertically(); + const leftStackWidth = width * 0.31; + leftStack.size = new Size(leftStackWidth, height); + leftStack.setPadding(0, 16, 0, 0); + const avatarUrl = widgetSetting.avatar || 'https://gitcode.net/enoyee/scriptable/-/raw/master/img/ic_pikachu_4.png'; + // ------------ + const avatarStack = leftStack.addStack(); + let img; + if (widgetSetting.circleAvatar) { + img = await this.circleCropImage(avatarUrl); + } else { + img = await this.getImageByUrl(avatarUrl); + } + let imgSpan = avatarStack.addImage(img); + avatarStack.addSpacer(); + imgSpan.imageSize = new Size(leftStackWidth * 0.65, leftStackWidth * 0.65); + // ------------ + const leftTextColor = new Color('#444'); + const leftTextFont = Font.mediumSystemFont(13); + leftStack.addSpacer(10); + let textSpan = leftStack.addText(`已完成:${finishedCount}项`); + textSpan.textColor = leftTextColor; + textSpan.font = leftTextFont; + textSpan.lineLimit = 1; + // ------------ + leftStack.addSpacer(4); + textSpan = leftStack.addText(`未完成:${unfinishedCount}项`); + textSpan.textColor = leftTextColor; + textSpan.font = leftTextFont; + textSpan.lineLimit = 1; + // ------------ + leftStack.addSpacer(4); + const percent = totalCount > 0 ? Math.floor((finishedCount / totalCount) * 100) : 0; + textSpan = leftStack.addText(`完成率:${percent}%`); + textSpan.textColor = leftTextColor; + textSpan.font = leftTextFont; + textSpan.lineLimit = 1; + // ======================================== + const rightStackWidth = width * 0.69; + const rightStack = contentStack.addStack(); + rightStack.size = new Size(rightStackWidth, height); + rightStack.layoutVertically(); + const perHeight = height / 6; + const list = unfinishedList.slice(0, unfinishedList.length > 4 ? 4 : unfinishedList.length); + rightStack.addSpacer(10); + // --------------------------------------- + rightStack.url = 'x-apple-reminderkit://'; + let percentIndex = 0; + if (percent > 0 && percent <= 25) { + percentIndex = 25; + } else if (percent > 25 && percent <= 50) { + percentIndex = 50; + } else if (percent > 50 && percent <= 75) { + percentIndex = 75; + } else if (percent > 75) { + percentIndex = 100; + } + if (percentIndex > 0) { + img = await this.getImageByUrl(`https://gitcode.net/enoyee/scriptable/-/raw/master/img/bg_celebrate_${percentIndex}.png`); + rightStack.backgroundImage = img; + } + // --------------------------------------- + if (list.length === 0) { + ['全', '步', '完', '成'].forEach(_ => { + let rdStack = rightStack.addStack(); + rdStack.url = 'x-apple-reminderkit://'; + rdStack.size = new Size(rightStackWidth - 16, perHeight); + rdStack.backgroundColor = new Color('#19a5ff', 0.1); + rdStack.cornerRadius = 4; + rdStack.addSpacer(); + rightStack.addSpacer(10); + }); + } else { + list.forEach(rd => { + let rdStack = rightStack.addStack(); + rdStack.url = 'x-apple-reminderkit://'; + rdStack.size = new Size(rightStackWidth - 16, perHeight); + rdStack.setPadding(0, 8, 0, 8); + rdStack.centerAlignContent(); + let alpha = 0.06; + if (rd.isOverdue) { + alpha = 0.3; + } + rdStack.backgroundColor = new Color(`${rd.color}`, alpha); + rdStack.cornerRadius = 4; + textSpan = rdStack.addText(`@${rd.title}`) + textSpan.textColor = new Color(`${rd.color}`, 0.8); + let fontSize = 13; + if (rd.title.length >= 15) { + fontSize = 12; + } + textSpan.font = Font.semiboldSystemFont(fontSize); + textSpan.lineLimit = 1; + rdStack.addSpacer(); + rightStack.addSpacer(10); + }); + } + return widget; + } + + // --------------------------NET START-------------------------- + async loadReminderList() { + const calendar = await Calendar.forReminders(); + const originalRdList = await Reminder.all(calendar); + const filterList = originalRdList.filter(item => { + const { isCompleted } = item; + const date = item.dueDate ? this.getDateStr(item.dueDate, 'yyyy-MM-dd') : ''; + const currDate = this.getDateStr(new Date(), 'yyyy-MM-dd') + return date == currDate || (!isCompleted && date < currDate); + }); + const reminderList = filterList.map(item => ({ + title: item.title, + notes: item.notes, + isCompleted: item.isCompleted, + isOverdue: item.isOverdue, + priority: item.priority == 0 ? 10 : item.priority, + color: this.defaultPreference.reminderColors[item.priority], + calendar: item.calendar + })); + const unfinishedList = reminderList.filter(reminder => !reminder.isCompleted); + unfinishedList.sort(function (a, b) { return (a.isOverdue || b.isOverdue) ? 1 : (a.priority - b.priority) }); + const finishedList = reminderList.filter(reminder => reminder.isCompleted); + return { finishedList, unfinishedList }; + } + // --------------------------NET END-------------------------- + +} + +await new Widget(Script.name()).run(); + + +// ================================================================================= +// ================================================================================= +async function downloadLSPDependency() { + let fm = FileManager.local(); + const fileName = fm.joinPath(fm.documentsDirectory(), `LSP/${Script.name()}/settings.json`); + const fileExists = fm.fileExists(fileName); + let cacheString = '{}'; + if (fileExists) { + cacheString = fm.readString(fileName); + } + const use_github = JSON.parse(cacheString)['use_github']; + const dependencyURL = `${use_github ? remoteGithubRoot : remoteHomeLandRoot}/_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 || update) { + console.log(`🤖 DEV 开始${update ? '更新' + dependencyLSP : '下载'}依赖~`); + keySave('VERSION', dependencyLSP); + await downloadFile2Scriptable('_LSP', dependencyURL); + } + return; + } + + ////////////////////////////////////////////////////////// + console.log(`----------------------------------------`); + const remoteDependencyExit = fm.fileExists(`${cacheDir}/_LSP.js`); + console.log(`🚀 RELEASE依赖文件${remoteDependencyExit ? '已存在 ✅' : '不存在 🚫'}`); + // ------------------------------ + if (!remoteDependencyExit || update) { // 下载依赖 + // 创建根目录 + if (!fm.fileExists(cacheDir)) { + fm.createDirectory(cacheDir, true); + } + // 下载 + 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 { + console.error('🚫 获取依赖环境脚本失败,请重试!'); + console.log(`----------------------------------------`); + } + } +} + +/** + * 获取保存的文件名 + * @param {*} fileName + * @returns + */ +function getSaveFileName(fileName) { + const hasSuffix = fileName.lastIndexOf(".") + 1; + return !hasSuffix ? `${fileName}.js` : fileName; +}; + +/** + * 保存文件到Scriptable软件目录,app可看到 + * @param {*} fileName + * @param {*} content + * @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; + } +}; + +/** + * 下载js文件到Scriptable软件目录 + * @param {*} moduleName 名称 + * @param {*} url 在线地址 + * @returns + */ +async function downloadFile2Scriptable(moduleName, url) { + const req = new Request(url); + const content = await req.loadString(); + 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 diff --git "a/\345\200\222\350\256\241\346\227\245.js" "b/\345\200\222\350\256\241\346\227\245.js" new file mode 100644 index 0000000..13d93f2 --- /dev/null +++ "b/\345\200\222\350\256\241\346\227\245.js" @@ -0,0 +1,571 @@ +// Variables used by Scriptable. +// These must be at the very top of the file. Do not edit. +// icon-color: deep-green; icon-glyph: clock; +/** + * Author:LSP + * Date:2023-05-12 + */ +// ------------------------------------------------------- +// 是否是开发环境,配合手机端调试使用,正式发布设置为false +const isDev = false; +const dependencyLSP = '20230511'; +console.log(`当前环境 👉👉👉👉👉 ${isDev ? 'DEV' : 'RELEASE'}`); +console.log(`----------------------------------------`); +// 分支 +const branch = 'v2'; +// 仓库根目录 +const remoteGithubRoot = `https://raw.githubusercontent.com/Enjoyee/Scriptable/${branch}`; +const remoteHomeLandRoot = `https://glimmerk.coding.net/p/Scriptable/shared-depot/source/git/raw/${branch}`; +// 依赖包目录 +const fm = FileManager.local(); +const rootDir = fm.documentsDirectory(); +const cacheDir = fm.joinPath(rootDir, 'LSP'); +const dependencyFileName = isDev ? "_LSP.js" : `${cacheDir}/_LSP.js`; +// 下载依赖包 +await downloadLSPDependency(); +// ------------------------------------------------------- +if (typeof require === 'undefined') require = importModule +// 引入相关方法 +const { BaseWidget } = require(dependencyFileName); + +// @定义小组件 +class Widget extends BaseWidget { + + defaultPreference = { + countDownName: 'LSP', + prefixTitle: '', + countDownDate: this.getDateStr(new Date(), 'yyyy-MM-dd'), + // + titleFontSize: 14, + titleDayColor: '#000000', + titleNightColor: '#FFFFFF', + // + countdownFontSize: 22, + countdownDayColor: '#000000', + countdownNightColor: '#FFFFFF', + }; + + getValueByKey = (key) => this.readWidgetSetting()[key] ?? this.defaultPreference[key]; + + prefixTitle = () => this.getValueByKey('prefixTitle'); + + countDownName = () => this.getValueByKey('countDownName'); + + countDownDate = () => this.getValueByKey('countDownDate'); + + titleFontSize = () => parseInt(this.getValueByKey('titleFontSize')); + titleDayColor = () => this.getValueByKey('titleDayColor'); + titleNightColor = () => this.getValueByKey('titleNightColor'); + + countdownFontSize = () => parseInt(this.getValueByKey('countdownFontSize')); + countdownDayColor = () => this.getValueByKey('countdownDayColor'); + countdownNightColor = () => this.getValueByKey('countdownNightColor'); + + constructor(scriptName) { + super(scriptName); + this.backgroundColor = '#FEFCF3,#0A2647'; + this.changeBgMode2OnLineBg( + [`${this.getRemoteRootPath()}/img/ic_clock.png`] + ); + } + + async getAppViewOptions() { + return { + widgetProvider: { + small: true, // 是否提供小号组件 + medium: false, // 是否提供中号组件 + large: false, // 是否提供大号组件 + }, + // 预览界面的组件设置item + settingItems: [ + { + name: 'countDownName', + label: '计时标题', + type: 'cell', + icon: { name: 'tag', color: '#7678ed', }, + alert: { + title: '计时标题', + options: [ + { + key: 'countDownName', + hint: '请输入计时标题', + } + ] + }, + showDesc: true, + needLoading: false, + default: this.countDownName(), + }, + { + name: 'countDownDate', + label: '计时日期', + type: 'cell', + icon: { name: 'clock.arrow.circlepath', color: '#f35b04', }, + needLoading: false, + default: this.countDownDate(), + }, + { + name: 'otherSetting', + label: '其他设置', + type: 'cell', + icon: 'https://cdnjson.com/images/2024/02/05/settings.png', + needLoading: true, + childItems: [ + { + items: [ + { + name: 'prefixTitle', + label: '计时标题前缀', + type: 'input', + icon: { name: 'square.on.circle', color: '#0D9DF0', }, + needLoading: false, + default: this.prefixTitle(), + }, + { + name: 'countdownType', + label: '计时类型', + type: 'select', + icon: { name: 'square.on.square', color: '#0753F7', }, + needLoading: false, + options: [ + { label: '常规计时', value: '1' }, + { label: '纪念日', value: '2' }, + { label: '出生岁数', value: '3' }, + ], + default: '1', + }, + ] + }, + { + items: [ + { + name: 'titleFontSize', + label: '计时标题文字大小', + type: 'cell', + icon: { name: 'tag', color: '#7678ed', }, + needLoading: false, + alert: { + title: '计时标题文字大小', + options: [ + { + key: 'titleFontSize', + hint: '请输入字号', + } + ] + }, + default: this.titleFontSize(), + }, + { + name: 'titleDayColor', + label: '计时标题文字浅色颜色', + type: 'color', + icon: { name: 'sun.min.fill', color: '#3a86ff', }, + needLoading: false, + default: this.titleDayColor(), + }, + { + name: 'titleNightColor', + label: '计时标题文字深色颜色', + type: 'color', + icon: { name: 'moon.fill', color: '#3a0ca3', }, + needLoading: false, + default: this.titleNightColor(), + }, + ] + }, + { + items: [ + { + name: 'countdownFontSize', + label: '计时文字大小', + type: 'cell', + icon: { name: 'stopwatch', color: '#7678ed', }, + needLoading: false, + alert: { + title: '计时文字大小', + options: [ + { + key: 'countdownFontSize', + hint: '请输入字号', + } + ] + }, + default: this.countdownFontSize(), + }, + { + name: 'countdownDayColor', + label: '计时文字浅色颜色', + type: 'color', + icon: { name: 'sun.min.fill', color: '#3a86ff', }, + needLoading: false, + default: this.countdownDayColor(), + }, + { + name: 'countdownNightColor', + label: '计时文字深色颜色', + type: 'color', + icon: { name: 'moon.fill', color: '#3a0ca3', }, + needLoading: false, + default: this.countdownNightColor(), + }, + ] + }, + ] + }, + ], + // cell类型的item点击回调 + onItemClick: async (item) => { + let widgetSetting = this.readWidgetSetting(); + let insertDesc = ''; + switch (item.name) { + case 'countDownDate': + try { + const date = await new DatePicker().pickDate(); + insertDesc = this.getDateStr(date, 'yyyy-MM-dd'); + widgetSetting[item.name] = insertDesc; + } catch (error) { + } + break; + } + // 写入更新配置 + this.writeWidgetSetting(widgetSetting); + return { + desc: { value: insertDesc }, + }; + }, + }; + } + + async render({ widgetSetting }) { + const { countdownType = '1' } = widgetSetting; + const countdownTypeNum = parseInt(countdownType); + if (countdownTypeNum == 2) { + this.defaultPreference.countdownFontSize = 22; + return await this.provideMemorialWidget(widgetSetting); + } else if (countdownTypeNum == 3) { + this.defaultPreference.countdownFontSize = 30; + return await this.provideBirthdayWidget(widgetSetting); + } else { + this.defaultPreference.countdownFontSize = 22; + return await this.provideNormalWidget(widgetSetting); + } + } + + async provideNormalWidget(widgetSetting) { + // ---------------------------------------- + const widgetSize = this.getWidgetSize('小号'); + //================================= + const widget = new ListWidget(); + widget.setPadding(0, 0, 0, 0); + //================================= + let stack = widget.addStack(); + stack.setPadding(12, 8, 0, 8); + stack.size = new Size(widgetSize.width, widgetSize.height); + stack.layoutVertically(); + + // ---------------------------------------- + const countDownTime = new Date(`${this.countDownDate()} 00:00`).getTime(); + const timeInterval = (countDownTime - new Date().getTime()) / 86400 / 1000; + // ---------------------------------------- + let hStack = stack.addStack(); + hStack.addSpacer(); + let textSpan = hStack.addText(`${this.prefixTitle()}❝${this.countDownName()}❞ ${timeInterval >= 0 ? '还有' : '已过'}`); + textSpan.textColor = this.dynamicColor(this.titleDayColor(), this.titleNightColor()); + textSpan.font = Font.lightSystemFont(this.titleFontSize()); + hStack.addSpacer(); + // ---------------------------------------- + stack.addSpacer(); + let countDownStack = stack.addStack(); + countDownStack.centerAlignContent(); + countDownStack.addSpacer(); + // 倒计 + let dateSpan = countDownStack.addDate(new Date(countDownTime)); + dateSpan.centerAlignText(); + dateSpan.lineLimit = 2; + dateSpan.applyRelativeStyle(); + dateSpan.font = Font.semiboldRoundedSystemFont(this.countdownFontSize()); + dateSpan.textColor = this.dynamicColor(this.countdownDayColor(), this.countdownNightColor()); + countDownStack.addSpacer(); + + // ---------------------------------------- + stack.addSpacer(); + //================================= + return widget; + } + + async provideMemorialWidget(widgetSetting) { + // ---------------------------------------- + const widgetSize = this.getWidgetSize('小号'); + //================================= + const widget = new ListWidget(); + widget.setPadding(0, 0, 0, 0); + //================================= + let stack = widget.addStack(); + stack.setPadding(12, 8, 0, 8); + stack.size = new Size(widgetSize.width, widgetSize.height); + stack.layoutVertically(); + + // ---------------------------------------- + const countShotDate = this.countDownDate().slice(5); + const currShotDate = this.getDateStr(new Date(), 'MM-dd'); + const isToday = countShotDate == currShotDate; + const countDownTime = +new Date(`${this.countDownDate()} 00:00`); + const timeInterval = Math.floor((+new Date() - countDownTime) / 86400 / 1000 / 365); + const isOverdue = (+new Date() - +new Date(`${new Date().getFullYear()}-${countShotDate} 00:00`)) / 86400 / 1000 >= 1; + // ---------------------------------------- + let hStack = stack.addStack(); + hStack.addSpacer(); + let textSpan = hStack.addText(`${this.prefixTitle()}❝${this.countDownName()}❞ ${timeInterval + 1}周年`); + textSpan.textColor = this.dynamicColor(this.titleDayColor(), this.titleNightColor()); + textSpan.font = Font.mediumSystemFont(this.titleFontSize()); + hStack.addSpacer(); + // + hStack = stack.addStack(); + hStack.addSpacer(); + textSpan = hStack.addText(`纪念日${isToday ? '' : '还有'}`); + textSpan.textColor = this.dynamicColor(this.titleDayColor(), this.titleNightColor()); + textSpan.font = Font.systemFont(this.titleFontSize() - 2); + textSpan.textOpacity = 0.9; + hStack.addSpacer(); + + // ---------------------------------------- + stack.addSpacer(); + let countDownStack = stack.addStack(); + countDownStack.centerAlignContent(); + countDownStack.addSpacer(); + if (isToday) { + let image = await this.getImageByUrl(`${this.getRemoteRootPath()}/img/party-popper.png`); + let imgSpan = countDownStack.addImage(image); + imgSpan.imageSize = new Size(60, 60); + imgSpan.imageOpacity = 0.9; + } else { + // 倒计 + let realCountDownTime = +new Date(`${new Date().getFullYear()}-${countShotDate} 00:00`); + if (isOverdue) { + realCountDownTime = +new Date(`${new Date().getFullYear() + 1}-${countShotDate} 00:00`); + } + let dateSpan = countDownStack.addDate(new Date(realCountDownTime)); + dateSpan.centerAlignText(); + dateSpan.lineLimit = 2; + dateSpan.applyRelativeStyle(); + dateSpan.font = Font.semiboldRoundedSystemFont(this.countdownFontSize()); + dateSpan.textColor = this.dynamicColor(this.countdownDayColor(), this.countdownNightColor()); + } + countDownStack.addSpacer(); + + // ---------------------------------------- + stack.addSpacer(); + //================================= + return widget; + } + + async provideBirthdayWidget(widgetSetting) { + // ---------------------------------------- + const widgetSize = this.getWidgetSize('小号'); + //================================= + const widget = new ListWidget(); + widget.setPadding(0, 0, 0, 0); + //================================= + let stack = widget.addStack(); + stack.size = new Size(widgetSize.width, widgetSize.height); + stack.layoutVertically(); + + // ---------------------------------------- + const countShotDate = this.countDownDate().slice(5); + const currShotDate = this.getDateStr(new Date(), 'MM-dd'); + const isToday = countShotDate == currShotDate; + const countDownTime = +new Date(`${this.countDownDate()} 00:00`); + const timeInterval = Math.floor((+new Date() - countDownTime) / 86400 / 1000 / 365); + const isOverdue = (+new Date() - +new Date(`${new Date().getFullYear()}-${countShotDate} 00:00`)) / 86400 / 1000 >= 1; + // ---------------------------------------- + + // ---------------------------------------- + let topStack = stack.addStack(); + topStack.size = new Size(widgetSize.width, widgetSize.height * 0.75); + topStack.layoutVertically(); + topStack.addSpacer(); + // + let hStack = topStack.addStack(); + hStack.setPadding(0, 0, 2, 10); + hStack.addSpacer(); + let textSpan = hStack.addText(`${this.prefixTitle()}${this.countDownName()}`); + textSpan.textColor = this.dynamicColor(this.titleDayColor(), this.titleNightColor()); + textSpan.font = Font.mediumRoundedSystemFont(this.titleFontSize()); + + // ---------------------------------------- + let bottomStack = stack.addStack(); + bottomStack.centerAlignContent(); + bottomStack.size = new Size(widgetSize.width, widgetSize.height * 0.3); + bottomStack.backgroundColor = this.dynamicColor('#FEFCF3', '#0A2647'); + bottomStack.setPadding(0, 12, 0, 0); + // + if (timeInterval >= 1) { + textSpan = bottomStack.addText(`${timeInterval}`); + textSpan.textColor = this.dynamicColor(this.countdownDayColor(), this.countdownNightColor()); + textSpan.font = Font.semiboldRoundedSystemFont(this.countdownFontSize()); + // + bottomStack.addSpacer(4); + let vStack = bottomStack.addStack(); + vStack.layoutVertically(); + textSpan = vStack.addText(`岁${isToday ? '啦,生日快乐!🎂' : ''}`); + textSpan.textColor = this.dynamicColor(this.countdownDayColor(), this.countdownNightColor()); + textSpan.font = Font.systemFont(Math.max(10, this.countdownFontSize() - 20)); + // + if (!isToday) { + hStack = vStack.addStack(); + textSpan = hStack.addText(`零`); + textSpan.textColor = this.dynamicColor(this.countdownDayColor(), this.countdownNightColor()); + textSpan.font = Font.systemFont(Math.max(10, this.countdownFontSize() - 20)); + // + let realCountDownTime = +new Date(`${new Date().getFullYear() - (isOverdue ? 0 : 1)}-${countShotDate} 00:00`); + let dateSpan = hStack.addDate(new Date(realCountDownTime)); + dateSpan.leftAlignText(); + dateSpan.lineLimit = 2; + dateSpan.applyRelativeStyle(); + dateSpan.font = Font.systemFont(Math.max(10, this.countdownFontSize() - 20)); + dateSpan.textColor = this.dynamicColor(this.countdownDayColor(), this.countdownNightColor()); + } + } else { + let realCountDownTime = +new Date(`${new Date().getFullYear() - 1}-${countShotDate} 00:00`); + let dateSpan = bottomStack.addDate(new Date(realCountDownTime)); + dateSpan.leftAlignText(); + dateSpan.lineLimit = 2; + dateSpan.applyRelativeStyle(); + dateSpan.font = Font.semiboldRoundedSystemFont(Math.max(this.countdownFontSize() - 12, 12)); + dateSpan.textColor = this.dynamicColor(this.countdownDayColor(), this.countdownNightColor()); + } + // + if (isToday) { + bottomStack.addSpacer(4); + } else { + bottomStack.addSpacer(); + } + // ---------------------------------------- + stack.addSpacer(); + //================================= + return widget; + } + // --------------------------NET START-------------------------- + + // --------------------------NET END-------------------------- +} + +await new Widget(Script.name()).run(); + + +// ================================================================================= +// ================================================================================= +async function downloadLSPDependency() { + let fm = FileManager.local(); + const fileName = fm.joinPath(fm.documentsDirectory(), `LSP/${Script.name()}/settings.json`); + const fileExists = fm.fileExists(fileName); + let cacheString = '{}'; + if (fileExists) { + cacheString = fm.readString(fileName); + } + const use_github = JSON.parse(cacheString)['use_github']; + const dependencyURL = `${use_github ? remoteGithubRoot : remoteHomeLandRoot}/_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 || update) { + console.log(`🤖 DEV 开始${update ? '更新' + dependencyLSP : '下载'}依赖~`); + keySave('VERSION', dependencyLSP); + await downloadFile2Scriptable('_LSP', dependencyURL); + } + return; + } + + ////////////////////////////////////////////////////////// + console.log(`----------------------------------------`); + const remoteDependencyExit = fm.fileExists(`${cacheDir}/_LSP.js`); + console.log(`🚀 RELEASE依赖文件${remoteDependencyExit ? '已存在 ✅' : '不存在 🚫'}`); + // ------------------------------ + if (!remoteDependencyExit || update) { // 下载依赖 + // 创建根目录 + if (!fm.fileExists(cacheDir)) { + fm.createDirectory(cacheDir, true); + } + // 下载 + 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 { + console.error('🚫 获取依赖环境脚本失败,请重试!'); + console.log(`----------------------------------------`); + } + } +} + +/** + * 获取保存的文件名 + * @param {*} fileName + * @returns + */ +function getSaveFileName(fileName) { + const hasSuffix = fileName.lastIndexOf(".") + 1; + return !hasSuffix ? `${fileName}.js` : fileName; +}; + +/** + * 保存文件到Scriptable软件目录,app可看到 + * @param {*} fileName + * @param {*} content + * @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; + } +}; + +/** + * 下载js文件到Scriptable软件目录 + * @param {*} moduleName 名称 + * @param {*} url 在线地址 + * @returns + */ +async function downloadFile2Scriptable(moduleName, url) { + const req = new Request(url); + const content = await req.loadString(); + 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 diff --git "a/\345\206\231\347\234\237\351\232\217\346\234\272.js" "b/\345\206\231\347\234\237\351\232\217\346\234\272.js" new file mode 100644 index 0000000..253a36e --- /dev/null +++ "b/\345\206\231\347\234\237\351\232\217\346\234\272.js" @@ -0,0 +1,319 @@ +// Variables used by Scriptable. +// These must be at the very top of the file. Do not edit. +// icon-color: red; icon-glyph: user-astronaut; +/** + * Author:LSP + * Date:2023-05-15 + */ +// ------------------------------------------------------- +// 是否是开发环境,配合手机端调试使用,正式发布设置为false +const isDev = false; +const dependencyLSP = '20230512'; +console.log(`当前环境 👉👉👉👉👉 ${isDev ? 'DEV' : 'RELEASE'}`); +console.log(`----------------------------------------`); +// 分支 +const branch = 'v2'; +// 仓库根目录 +const remoteGithubRoot = `https://raw.githubusercontent.com/Enjoyee/Scriptable/${branch}`; +const remoteHomeLandRoot = `https://glimmerk.coding.net/p/Scriptable/shared-depot/source/git/raw/${branch}`; +// 依赖包目录 +const fm = FileManager.local(); +const rootDir = fm.documentsDirectory(); +const cacheDir = fm.joinPath(rootDir, 'LSP'); +const dependencyFileName = isDev ? "_LSP.js" : `${cacheDir}/_LSP.js`; +// 下载依赖包 +await downloadLSPDependency(); +// ------------------------------------------------------- +if (typeof require === 'undefined') require = importModule +// 引入相关方法 +const { BaseWidget } = require(dependencyFileName); + +// @定义小组件 +class Widget extends BaseWidget { + + defaultPreference = { + pic_name: 'girls_pic_20230515.json', + }; + + getValueByKey = (key) => this.readWidgetSetting()[key] ?? this.defaultPreference[key]; + + constructor(scriptName) { + super(scriptName); + this.backgroundColor = '#03071e,#03071e'; + this.picJsonArr = []; + } + + async getAppViewOptions() { + return { + showWidgetBg: false, + widgetProvider: { + small: true, // 是否提供小号组件 + medium: true, // 是否提供中号组件 + large: true, // 是否提供大号组件 + }, + // 预览界面的组件设置item + settingItems: [ + { + name: '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" + }, + ], + }; + } + + async render({ widgetSetting, family }) { + // + let cacheJsonArr = this.useFileManager().readJSONCache(this.defaultPreference.pic_name); + if (JSON.stringify(cacheJsonArr) == '{}') { + const url = `${this.getRemoteRootPath()}/file/${this.defaultPreference.pic_name}`; + cacheJsonArr = await this.httpGet(url, { jsonFormat: false, useCache: false }); + this.useFileManager().writeJSONCache(this.defaultPreference.pic_name, cacheJsonArr); + } + this.picJsonArr = JSON.parse(cacheJsonArr); + this.picJsonArr.sort(() => Math.random() - 0.5); + return await this.provideWidget(family, widgetSetting); + } + + async provideWidget(widgetFamily, widgetSetting) { + const photoHalving = widgetSetting.photoHalving ?? 1; + let name = '大号'; + switch (widgetFamily) { + case 'small': + name = '小号'; + break; + + case 'medium': + name = '中号'; + break; + } + //================================= + const widget = new ListWidget(); + widget.setPadding(0, 0, 0, 0); + //================================= + let stack = widget.addStack(); + widget.backgroundColor = new Color('#03071e'); + const imgRes = this.picJsonArr.slice(0, 10); + const widgetSize = this.getWidgetSize(name); + const widgetWidth = widgetSize.width + 10 * Device.screenScale(); + const widgetHeight = widgetSize.height + 6 * 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, widgetHeight); + await this.addStackImg(imgRes, imgStack); + // + stack.addSpacer(divider); + imgStack = stack.addStack(); + imgStack.size = new Size(widgetWidth / 2, widgetHeight); + await this.addStackImg(imgRes, imgStack); + break; + + case 3: + stack.layoutHorizontally(); + imgStack = stack.addStack(); + imgStack.size = new Size(widgetWidth * 0.6, widgetHeight); + await this.addStackImg(imgRes, imgStack); + // + stack.addSpacer(divider); + // + imgStack = stack.addStack(); + imgStack.layoutVertically(); + let stack_3_1 = imgStack.addStack(); + stack_3_1.size = new Size(widgetWidth * 0.4, 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 * 0.4, widgetHeight / 2); + await this.addStackImg(imgRes, stack_3_2); + break; + + case 4: + stack.layoutVertically(); + imgStack = stack.addStack(); + imgStack.layoutHorizontally(); + let stack_4_1 = imgStack.addStack(); + 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, 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, 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, widgetHeight / 2); + await this.addStackImg(imgRes, stack_4_4); + break; + + default: + stack.layoutVertically(); + imgStack = stack.addStack(); + imgStack.size = new Size(widgetWidth, widgetHeight); + await this.addStackImg(imgRes, imgStack); + break; + } + //================================= + stack.addSpacer(); + return widget; + } + + addStackImg = async (imgRes, imgStack) => { + if (imgRes && imgRes.length > 0) { + const index = parseInt(Math.random() * imgRes.length) + let imgUrl = imgRes[index]; + imgRes.splice(index, 1); + imgStack.url = imgUrl; + let img = await this.getImageByUrl(imgUrl, 'mirror', true); + let imgSpan = imgStack.addImage(img); + imgSpan.applyFillingContentMode(); + } + } + + // --------------------------NET START-------------------------- + + // --------------------------NET END-------------------------- + +} + +await new Widget(Script.name()).run(); + + +// ================================================================================= +// ================================================================================= +async function downloadLSPDependency() { + let fm = FileManager.local(); + const fileName = fm.joinPath(fm.documentsDirectory(), `LSP/${Script.name()}/settings.json`); + const fileExists = fm.fileExists(fileName); + let cacheString = '{}'; + if (fileExists) { + cacheString = fm.readString(fileName); + } + const use_github = JSON.parse(cacheString)['use_github']; + const dependencyURL = `${use_github ? remoteGithubRoot : remoteHomeLandRoot}/_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 || update) { + console.log(`🤖 DEV 开始${update ? '更新' + dependencyLSP : '下载'}依赖~`); + keySave('VERSION', dependencyLSP); + await downloadFile2Scriptable('_LSP', dependencyURL); + } + return; + } + + ////////////////////////////////////////////////////////// + console.log(`----------------------------------------`); + const remoteDependencyExit = fm.fileExists(`${cacheDir}/_LSP.js`); + console.log(`🚀 RELEASE依赖文件${remoteDependencyExit ? '已存在 ✅' : '不存在 🚫'}`); + // ------------------------------ + if (!remoteDependencyExit || update) { // 下载依赖 + // 创建根目录 + if (!fm.fileExists(cacheDir)) { + fm.createDirectory(cacheDir, true); + } + // 下载 + 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 { + console.error('🚫 获取依赖环境脚本失败,请重试!'); + console.log(`----------------------------------------`); + } + } +} + +/** + * 获取保存的文件名 + * @param {*} fileName + * @returns + */ +function getSaveFileName(fileName) { + const hasSuffix = fileName.lastIndexOf(".") + 1; + return !hasSuffix ? `${fileName}.js` : fileName; +}; + +/** + * 保存文件到Scriptable软件目录,app可看到 + * @param {*} fileName + * @param {*} content + * @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; + } +}; + +/** + * 下载js文件到Scriptable软件目录 + * @param {*} moduleName 名称 + * @param {*} url 在线地址 + * @returns + */ +async function downloadFile2Scriptable(moduleName, url) { + const req = new Request(url); + const content = await req.loadString(); + 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 diff --git "a/\345\212\250\346\243\256\345\260\217\345\212\250\347\211\251.js" "b/\345\212\250\346\243\256\345\260\217\345\212\250\347\211\251.js" deleted file mode 100644 index 35d195e..0000000 --- "a/\345\212\250\346\243\256\345\260\217\345\212\250\347\211\251.js" +++ /dev/null @@ -1,940 +0,0 @@ -////////////////////////////////////////// -// 预览大小【小:Small,中:Medium,大:Large】 -const previewSize = "Small" - -// 是否需要更换背景 -const changePicBg = true - -// 是否是纯色背景 -const colorMode = false - -// 小组件背景色 -const bgColor = new Color("000000") - -// 默认字体 -const defaultFont = Font.systemFont(18) - -// 默认字体颜色 -const defaultTextColor = new Color("#ffffff") - -// 内容区左右边距 -const padding = { - top: 0, - left: 0, - bottom: 0, - right: 0 -} - -// 标题样式定义 -let textStyle = { - stack: undefined, // 加入到哪个内容栈显示 - marginStart: 0, // 开始距离,水平方向的就是左边距离,垂直方向的就是顶部距离 - marginEnd: 0, // 结束距离,水平方向的就是右边距离,垂直方向的就是底部距离 - text: "", // 显示的文字 - width: 0, // 宽 - height: 0, // 长 - lineLimit: 0, // 行数控制,0是全部展示 - font: undefined, // 字体 - textColor: defaultTextColor, // 文字颜色 -} - -// 图片样式定义 -let imgStyle = { - stack: undefined, // 加入到哪个内容栈显示 - marginStart: 0, // 开始距离,水平方向的就是左边距离,垂直方向的就是顶部距离 - marginEnd: 0, // 结束距离,水平方向的就是右边距离,垂直方向的就是底部距离 - img: undefined, // 图片资源 - width: 0, // 宽 - height: 0, // 长 - tintColor: undefined, // 图片渲染颜色 -} -//////////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////////// - - - - - -////////////////////////////////////// -// 组件Start -const filename = `${Script.name()}.jpg` -const files = FileManager.local() -const path = files.joinPath(files.documentsDirectory(), filename) -const widget = new ListWidget() -const contentStack = widget.addStack() -////////////////////////////////////// - - - -/* -**************************************************************************** -↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ -下面添加你自己的组件内容/逻辑 -**************************************************************************** -*/ -// 获取外部输入的参数 -var widgetInputRAW = args.widgetParameter -try { - widgetInputRAW.toString() -} catch(e) { - widgetInputRAW = "" -} -// 指定日期 -var assignMonthDay = widgetInputRAW.toString() - -const imgObjs = { - "3月9日": "https://patchwiki.biligame.com/images/dongsen/a/a2/3f1qchqu7q74dsis7uyz7jfqt6xgo0d.png", - "10月20日": "https://patchwiki.biligame.com/images/dongsen/0/01/mnuuv9nmyb8q7qv8fuqflzn8ds465zp.png", - "10月24日": "https://patchwiki.biligame.com/images/dongsen/7/7e/awj7kx6aqiuoventjw1w3qu7imv1f9n.png", - "4月18日": "https://patchwiki.biligame.com/images/dongsen/8/8f/lyy1idgf70u6nyowt5lifixlwo4fxeh.png", - "4月17日": "https://patchwiki.biligame.com/images/dongsen/4/4b/3rb923sgqde5is4t91kh2mm4s28fuct.png", - "7月1日": "https://patchwiki.biligame.com/images/dongsen/7/7d/icyc1bivjo9jk1txakfj4pw9wpkpeuo.png", - "12月4日": "https://patchwiki.biligame.com/images/dongsen/a/a6/47kpe9s2rqwsns95mle0nl7sw8q6ra4.png", - "1月16日": "https://patchwiki.biligame.com/images/dongsen/9/9d/j3pzy8brhh5duoc69254qiuawgu6efs.png", - "2月6日": "https://patchwiki.biligame.com/images/dongsen/1/19/jzi70ru0jxnp9a0v1m937v3y1m2wt7v.png", - "1月27日": "https://patchwiki.biligame.com/images/dongsen/9/97/gk1iz5nkg7554dcjbygai8hx9or1f27.png", - "9月27日": "https://patchwiki.biligame.com/images/dongsen/8/89/m0okhdls60la08yeqwtkjqfbif8wcc8.png", - "7月22日": "https://patchwiki.biligame.com/images/dongsen/0/0d/0mgqwfkrc3x297y55pxjqalv6lu11b1.png", - "3月4日": "https://patchwiki.biligame.com/images/dongsen/d/d7/4icwqsjceeke1ft4pcxz9625rwmxuja.png", - "7月31日": "https://patchwiki.biligame.com/images/dongsen/8/89/pbj278ho6r4vuyczcied2z5711etlzq.png", - "5月19日": "https://patchwiki.biligame.com/images/dongsen/0/0d/h9o092vymv3i9wh7hw3h6zf7f1v3f5o.png", - "3月12日": "https://patchwiki.biligame.com/images/dongsen/8/81/duu89um5g4g80lv7ajxp2a817csqvyp.png", - "3月31日": "https://patchwiki.biligame.com/images/dongsen/9/93/fgjyv3jqk743p9b1jsfyldco50rnqpg.png", - "8月16日": "https://patchwiki.biligame.com/images/dongsen/0/03/fvd09yel4l88x5pk1rmyiwmf9mhhp1w.png", - "11月9日": "https://patchwiki.biligame.com/images/dongsen/2/29/2rfhy4aut3y01csbq66kubh0kwk1mwk.png", - "7月13日": "https://patchwiki.biligame.com/images/dongsen/a/a2/peygnbpmeg60vwfc7j1vk4sghk1o2ku.png", - "3月22日": "https://patchwiki.biligame.com/images/dongsen/e/e7/7148nh94i4q82syg04fg0bp8iw5stpn.png", - "9月26日": "https://patchwiki.biligame.com/images/dongsen/b/b1/rqludwtc1t21mysovsikt1ndjqs2kvf.png", - "8月24日": "https://patchwiki.biligame.com/images/dongsen/e/e0/bboh9xv51ysue2g1r0v4fqs1vri9i5l.png", - "3月13日": "https://patchwiki.biligame.com/images/dongsen/0/0c/lp09t1ac40s27x1e0q3alhdxbugfmin.png", - "10月23日": "https://patchwiki.biligame.com/images/dongsen/a/ab/5n8lmrx77x4zaq0c58c751fphgs3g2j.png", - "2月16日": "https://patchwiki.biligame.com/images/dongsen/f/fd/6dckpnus6jnvqyxgvxzvulo3xzesxpo.png", - "2月2日": "https://patchwiki.biligame.com/images/dongsen/6/68/o1xzpnl4pbpnjiluvt7eiqsmej9cpkv.png", - "5月16日": "https://patchwiki.biligame.com/images/dongsen/b/b6/5vkxwei43ar4fs0nvtkflvxt2bolhpa.png", - "9月9日": "https://patchwiki.biligame.com/images/dongsen/8/8c/mqyphld9pr5k88zcymr4mjugln9oh4r.png", - "7月17日": "https://patchwiki.biligame.com/images/dongsen/9/93/8gjxl0xwtewfx1frot3soj823141un0.png", - "9月15日": "https://patchwiki.biligame.com/images/dongsen/e/e5/3z8cu1d44hcxfzx4ho0lrz5pp4jxe3l.png", - "10月29日": "https://patchwiki.biligame.com/images/dongsen/0/07/85nu475h8slfwtaxm47fxd4ujfhapy2.png", - "3月27日": "https://patchwiki.biligame.com/images/dongsen/c/c3/7d99fi1m321r7uqh4ynjemfvmcdhn5f.png", - "11月29日": "https://patchwiki.biligame.com/images/dongsen/3/37/tn2whour3unzy1cs0qwkcqpo9bajahq.png", - "1月1日": "https://patchwiki.biligame.com/images/dongsen/f/fd/mrpv91b59t0faao3ajelo22ybzju2h1.png", - "6月22日": "https://patchwiki.biligame.com/images/dongsen/c/cf/565gkqkt79ynxqh784djljoare1sh42.png", - "2月15日": "https://patchwiki.biligame.com/images/dongsen/4/40/69qnhd2ykyiu4ffwsvgwxbtghgv7ew1.png", - "6月17日": "https://patchwiki.biligame.com/images/dongsen/2/2b/kep0zyjducbpa20y4qxvdtrnw373iky.png", - "4月20日": "https://patchwiki.biligame.com/images/dongsen/f/f5/ezhh3zv7rwqn9a7iplt1cjf8sj1sn0e.png", - "9月22日": "https://patchwiki.biligame.com/images/dongsen/3/39/0qk07h279fy7r5gxi7gz9bnzwck22tc.png", - "8月1日": "https://patchwiki.biligame.com/images/dongsen/d/dc/hjv0riyqct10xo1fieojpnscxkerhhh.png", - "9月25日": "https://patchwiki.biligame.com/images/dongsen/d/d5/if6m85xq870gov60x2cd466yhwm5vs1.png", - "7月25日": "https://patchwiki.biligame.com/images/dongsen/8/85/kifvkn4d05id5j3w47sqj05kyeeldyk.png", - "12月10日": "https://patchwiki.biligame.com/images/dongsen/b/b0/fzck20tr0fq4vghr32fdftjwjaj7ztv.png", - "4月11日": "https://patchwiki.biligame.com/images/dongsen/8/88/ixudoc3lyluzyinsezw8ncbncfg7dtb.png", - "5月20日": "https://patchwiki.biligame.com/images/dongsen/6/63/pr7jen0xri93cwywxohddv30jxq1q2t.png", - "9月30日": "https://patchwiki.biligame.com/images/dongsen/7/72/m5qy2ekcw0tbr71z7bch7jgnszrocvq.png", - "2月27日": "https://patchwiki.biligame.com/images/dongsen/c/cf/rqhd7zebnj9azof94c3mintkr8iywls.png", - "11月20日": "https://patchwiki.biligame.com/images/dongsen/2/2b/obdvd9ffgwg7w10yubgqpoats16kzuz.png", - "6月29日": "https://patchwiki.biligame.com/images/dongsen/6/67/pktjtjer77ubhb6dcflz3uf7vg0zdkn.png", - "5月29日": "https://patchwiki.biligame.com/images/dongsen/8/86/cvvp33t5np0hnq82tn8336eunitoxa1.png", - "4月29日": "https://patchwiki.biligame.com/images/dongsen/9/9a/6chtxm0j01j8cn31hw3kkvw3v1vfa8h.png", - "8月13日": "https://patchwiki.biligame.com/images/dongsen/7/73/6vlkez4zljimukn5ckqketa3ofon6sz.png", - "2月3日": "https://patchwiki.biligame.com/images/dongsen/c/c3/8bmpe8jgxlocd9rvuyv95htgo3a5a8j.png", - "4月30日": "https://patchwiki.biligame.com/images/dongsen/2/22/lxjv0lo1arpefnac9ysddx2fhvyznwr.png", - "3月30日": "https://patchwiki.biligame.com/images/dongsen/c/cd/i4tnpwqpj1r8c587peirpu6sly93swj.png", - "1月12日": "https://patchwiki.biligame.com/images/dongsen/3/31/i47tys2ox8ca7nan78f49cnc8g9wzoz.png", - "12月29日": "https://patchwiki.biligame.com/images/dongsen/1/11/oorndymygs7qo94x27bnsmqt7qdnzcq.png", - "12月12日": "https://patchwiki.biligame.com/images/dongsen/7/71/sl1zg3z8rb6jzi17ppilwjpn5fu566b.png", - "8月17日": "https://patchwiki.biligame.com/images/dongsen/5/53/6pogjdqiua1x1tnzvvdiwbjfp52qkv5.png", - "10月8日": "https://patchwiki.biligame.com/images/dongsen/f/fe/0hawmivoi75im2daxz09hdyyqonwrxc.png", - "9月28日": "https://patchwiki.biligame.com/images/dongsen/7/7b/7s4cbpguae80z6xktuce9k32g1kgkpv.png", - "10月10日": "https://patchwiki.biligame.com/images/dongsen/2/22/ewmm6ba71xi8prb32lkgsnzzscahfd3.png", - "3月17日": "https://patchwiki.biligame.com/images/dongsen/7/76/fmvygkzkoahgrx1hfnmmf4tk1fkx6vo.png", - "6月24日": "https://patchwiki.biligame.com/images/dongsen/4/4a/42y0oixbjcr3033iov58pfjop8p2i5k.png", - "11月23日": "https://patchwiki.biligame.com/images/dongsen/6/63/s5i5oriz69pozztqx31wupynoihh6pj.png", - "6月23日": "https://patchwiki.biligame.com/images/dongsen/7/79/1erfp6xljbqj2r349ytevmgz7kcw0ax.png", - "2月10日": "https://patchwiki.biligame.com/images/dongsen/5/57/krd6ijg6345xqm9a1ilsygbbuoj563b.png", - "10月14日": "https://patchwiki.biligame.com/images/dongsen/e/e1/o1rvyqdbfqev4t4e9mi6y17b59b1pw8.png", - "5月21日": "https://patchwiki.biligame.com/images/dongsen/a/aa/1z17qp0484s064hmfx6mz7o0zg5syfg.png", - "6月15日": "https://patchwiki.biligame.com/images/dongsen/4/45/qgwupkiydqtssk9lcb20u4vqnhvwcuw.png", - "4月16日": "https://patchwiki.biligame.com/images/dongsen/7/7d/87zyggqsehorpb0evby37v22lsb4k8n.png", - "8月2日": "https://patchwiki.biligame.com/images/dongsen/f/f7/pguy9t7oidqq3a8ck4ztwbnr9vanjqz.png", - "12月20日": "https://patchwiki.biligame.com/images/dongsen/4/40/rb53l2onglw3tdaljd6tb5mcy0xaw3x.png", - "4月28日": "https://patchwiki.biligame.com/images/dongsen/7/79/njojjwcfp6y5npyyfn8n34ulun4d75j.png", - "5月18日": "https://patchwiki.biligame.com/images/dongsen/9/93/pxhkzjrtmbjm7hv8fwhdbrf03zk1gid.png", - "1月2日": "https://patchwiki.biligame.com/images/dongsen/2/2b/kbs48eg2l0l8j05xkdqsfw7bh4n9qof.png", - "12月23日": "https://patchwiki.biligame.com/images/dongsen/7/78/rqqnwch9yd2ty1fzsz3axw9b7eqpfr1.png", - "3月10日": "https://patchwiki.biligame.com/images/dongsen/4/49/59o34z38jeoh43oocsdifo0kgm7mvne.png", - "4月27日": "https://patchwiki.biligame.com/images/dongsen/f/f5/41t4355ooxnkjs5hj1h11txy8e9q7jn.png", - "12月9日": "https://patchwiki.biligame.com/images/dongsen/a/a6/rj09p189d8jada21ghlhoj2thg6qhwg.png", - "8月6日": "https://patchwiki.biligame.com/images/dongsen/2/2c/g584sd7pval1beky8nkwrlvbto9x8ay.png", - "6月11日": "https://patchwiki.biligame.com/images/dongsen/e/e5/dbh14ywrx6dakxx0xh7lrv99r30idu4.png", - "5月10日": "https://patchwiki.biligame.com/images/dongsen/a/a2/ohr2rpaqcd4rezm6x25q3arjjcys7n2.png", - "10月4日": "https://patchwiki.biligame.com/images/dongsen/c/c1/2o2pfw91po4usgi8im68sah5ejxq9dm.png", - "7月12日": "https://patchwiki.biligame.com/images/dongsen/c/cc/629ff1uvi60pnrntbmlo2nimzyz0ew7.png", - "10月1日": "https://patchwiki.biligame.com/images/dongsen/4/44/hm4dq0lmgyt8ym4esz7il2d9o06qouu.png", - "10月12日": "https://patchwiki.biligame.com/images/dongsen/a/a9/4txtpw7gqq1yu34iukiv8s5hsodpe0b.png", - "3月2日": "https://patchwiki.biligame.com/images/dongsen/8/8e/ru4b74i2ibkthnc3nevpa2plcaulepl.png", - "2月12日": "https://patchwiki.biligame.com/images/dongsen/6/62/m20ph316j0abpi5pohpzkjj8hsunec8.png", - "8月25日": "https://patchwiki.biligame.com/images/dongsen/c/c5/los096pej03ac0g5uet1gx3ygxjvjth.png", - "11月4日": "https://patchwiki.biligame.com/images/dongsen/e/e5/h5cyjbl7jhiu8h20dfe2usem23sccje.png", - "5月4日": "https://patchwiki.biligame.com/images/dongsen/3/3a/j3t4objv0xf9sgth4nzssuwgkttr3ai.png", - "8月7日": "https://patchwiki.biligame.com/images/dongsen/2/23/pfwfkhhz6cv0i49y8ispf63daij5eyj.png", - "11月16日": "https://patchwiki.biligame.com/images/dongsen/c/c7/nlarmnzsa5h1805mic8gfbeqt9avr7h.png", - "7月27日": "https://patchwiki.biligame.com/images/dongsen/f/f4/oqjj7wie25t3bael1ksqs5fsqqnw60i.png", - "3月26日": "https://patchwiki.biligame.com/images/dongsen/1/14/dxpmoaaw8hbp5vpzwbqg920xba2ua0q.png", - "9月20日": "https://patchwiki.biligame.com/images/dongsen/c/c3/bogw0xegt316vrfhbzz2binuyaxb96g.png", - "5月13日": "https://patchwiki.biligame.com/images/dongsen/6/62/7ed8zmjxsg5hg956giatowj87wcdwl3.png", - "8月20日": "https://patchwiki.biligame.com/images/dongsen/c/c6/ij7ucye1q5gqm2eb2n0qdz2aqmjdjpe.png", - "5月27日": "https://patchwiki.biligame.com/images/dongsen/a/a9/4plpg3r25lok9wp90jefc7zirzd9m1w.png", - "1月18日": "https://patchwiki.biligame.com/images/dongsen/9/91/0mw0w2nz56zvpifrapf8ogf2aqnc6jm.png", - "11月7日": "https://patchwiki.biligame.com/images/dongsen/d/d0/en26uvg5lcgznlcdpssf8athod4njzk.png", - "2月28日": "https://patchwiki.biligame.com/images/dongsen/2/2c/ebkklcmpn60qx771gc2ron2pte0udvd.png", - "8月4日": "https://patchwiki.biligame.com/images/dongsen/2/2f/3rn7954x4mvss7pat62sg2unwuoorhm.png", - "9月19日": "https://patchwiki.biligame.com/images/dongsen/e/e8/0ix0qskel080j2d0gsq5bbx4cndv62q.png", - "11月15日": "https://patchwiki.biligame.com/images/dongsen/c/c1/0o9yg767srogxentjkgaw1fy9at2944.png", - "12月27日": "https://patchwiki.biligame.com/images/dongsen/c/ce/ncohbzaiiu4qyfcdfpmd15v44jfl2et.png", - "6月7日": "https://patchwiki.biligame.com/images/dongsen/9/93/natub9hc3xt4duqxedgq5l8ieogc0ej.png", - "6月9日": "https://patchwiki.biligame.com/images/dongsen/4/47/colkszeqlgjl44wcolpq4hzft032p8g.png", - "10月25日": "https://patchwiki.biligame.com/images/dongsen/6/64/pkk961x0ti463ie3pqs2cejb7z6mnp1.png", - "4月5日": "https://patchwiki.biligame.com/images/dongsen/5/5a/h8kt1ys4tvp003qwdg2vecwqnhu3ryp.png", - "5月17日": "https://patchwiki.biligame.com/images/dongsen/c/c5/p02xrv5yfa83gy7fcjbfe31052tf9zv.png", - "11月1日": "https://patchwiki.biligame.com/images/dongsen/8/8c/o2ufo80qh0jkhzl5ebxsojya0w08njb.png", - "5月26日": "https://patchwiki.biligame.com/images/dongsen/3/36/asfugf4649czmqigm5axpivuuwwcxn8.png", - "11月8日": "https://patchwiki.biligame.com/images/dongsen/a/a6/k9vn3t655a4ki632nxmhdo27ufb61wm.png", - "6月10日": "https://patchwiki.biligame.com/images/dongsen/f/f0/gey80ieaqvjn87z5ggw25pqb4iji2xm.png", - "1月4日": "https://patchwiki.biligame.com/images/dongsen/3/3a/t6cqbgbl3mkasxw9thy0n11pifltfvm.png", - "6月27日": "https://patchwiki.biligame.com/images/dongsen/6/61/sde917jaliz3hf9ucags25ak6sgmbuc.png", - "11月11日": "https://patchwiki.biligame.com/images/dongsen/a/a5/hyeh649whoqz0ignmkq0ess9voifovo.png", - "7月14日": "https://patchwiki.biligame.com/images/dongsen/8/88/55hk86r706wgjzal0f1zu1u196yvxl2.png", - "6月25日": "https://patchwiki.biligame.com/images/dongsen/7/71/psmk0thlcucjs7bue6t5zi38uda24tp.png", - "2月1日": "https://patchwiki.biligame.com/images/dongsen/7/71/aa9fu7fnkxl3giytnfshy4zdjem1adw.png", - "8月12日": "https://patchwiki.biligame.com/images/dongsen/4/4c/g2qz3vp03s1stckr8bw01wljz5wtldw.png", - "2月11日": "https://patchwiki.biligame.com/images/dongsen/e/e4/6skh9jx5x5dvc2l9ohcb5q3pbqdxsea.png", - "12月31日": "https://patchwiki.biligame.com/images/dongsen/9/92/kmze66ykg1f6c4bkggi9jqif41vuaet.png", - "10月3日": "https://patchwiki.biligame.com/images/dongsen/a/a4/ai1cm3xmxuld41frz7vwaqz41vyjdij.png", - "6月13日": "https://patchwiki.biligame.com/images/dongsen/7/7f/bzpikocio5973d6q1mcj9ouumcvvr5w.png", - "1月3日": "https://patchwiki.biligame.com/images/dongsen/d/dd/bu8r96la1xkf0ex4o6l0b8kzisbt0o2.png", - "6月18日": "https://patchwiki.biligame.com/images/dongsen/5/54/cxciz6ch2qhmbadda82z5dl54psowud.png", - "3月7日": "https://patchwiki.biligame.com/images/dongsen/6/62/3dnh0d2eiuwv528wbn5dn4punieqrpl.png", - "11月17日": "https://patchwiki.biligame.com/images/dongsen/3/36/ken3f6k8t384dakj94me6336iqhiyf1.png", - "8月3日": "https://patchwiki.biligame.com/images/dongsen/4/40/pdeg0mcbkbb1ormxzkan6pgtkmb1up8.png", - "12月8日": "https://patchwiki.biligame.com/images/dongsen/d/d0/rckuejj2qk0qebtyn6ve4pt2j70e3vm.png", - "6月30日": "https://patchwiki.biligame.com/images/dongsen/3/3f/l6masev2ynwhgqiik8nc3muqoxi7uqa.png", - "2月23日": "https://patchwiki.biligame.com/images/dongsen/b/ba/qv8k4badavn0tnhdvfp9wwiodvl99f8.png", - "1月11日": "https://patchwiki.biligame.com/images/dongsen/b/bb/crmicitqddd7bku2auo4bbirqpmpwje.png", - "12月22日": "https://patchwiki.biligame.com/images/dongsen/9/98/m7zhhg7uma7i0c1r2d8lerhf74gxemj.png", - "2月19日": "https://patchwiki.biligame.com/images/dongsen/e/e7/mnv0xywskylaa8f5qbh6chbflse5xx4.png", - "5月11日": "https://patchwiki.biligame.com/images/dongsen/0/0b/7s6wdk5ku9g1rzivn6k866c06ifa0xa.png", - "1月28日": "https://patchwiki.biligame.com/images/dongsen/e/e8/kcf5gxv1cer96mcd7x5i7yjx3fbuy0s.png", - "4月23日": "https://patchwiki.biligame.com/images/dongsen/9/9e/4mtumgv3tk4s0jc0v5sqpqvb7pdh08z.png", - "4月8日": "https://patchwiki.biligame.com/images/dongsen/e/e3/rudqvvjnugkofh1pyzz39xcwumaxubm.png", - "10月15日": "https://patchwiki.biligame.com/images/dongsen/5/5d/4rqmnnc0fjrmbmaj75ihcvrectr97d2.png", - "1月20日": "https://patchwiki.biligame.com/images/dongsen/6/6f/ejx84zeqk8j32v9isbm48uvqso4mytq.png", - "5月25日": "https://patchwiki.biligame.com/images/dongsen/9/9d/1sgr0325r11bj3kzvxlctwk6ffnnkwu.png", - "11月24日": "https://patchwiki.biligame.com/images/dongsen/4/4e/2qmjbec3fyus66lhtq8e8rkuyksmkuv.png", - "7月8日": "https://patchwiki.biligame.com/images/dongsen/5/58/dbu7scdrjao5a0vgxh8af5d7a5yy00f.png", - "3月6日": "https://patchwiki.biligame.com/images/dongsen/9/92/tfdojprp04ra4a50g0r5jujozkxdlpp.png", - "8月29日": "https://patchwiki.biligame.com/images/dongsen/3/32/qo497aek52jbl95vxsgu2yu1dh9gkqs.png", - "10月27日": "https://patchwiki.biligame.com/images/dongsen/e/ec/jql712lgnzfa8lpqd3e6scad9hv2mz2.png", - "6月5日": "https://patchwiki.biligame.com/images/dongsen/f/f6/q8txnu7am41kz94rbk3txar0liq8rjc.png", - "3月23日": "https://patchwiki.biligame.com/images/dongsen/2/20/tl6m5wzyhbvt0h4rcv75irezu0aj26n.png", - "9月21日": "https://patchwiki.biligame.com/images/dongsen/5/59/0b40egp2b7ow9w60jti8m1zzzn9o2wb.png", - "6月6日": "https://patchwiki.biligame.com/images/dongsen/7/7d/7g5io3kqwvnmvh1pdiqit4h8h9ujd5r.png", - "10月9日": "https://patchwiki.biligame.com/images/dongsen/9/92/t75vh1e5gcz48715cpg8kcrfezqovhe.png", - "5月12日": "https://patchwiki.biligame.com/images/dongsen/3/38/k1yfyahl3gs9ljs7x2s3mi996wbpug4.png", - "12月17日": "https://patchwiki.biligame.com/images/dongsen/f/f6/qp9or356mx4eprxbhi05ol56x61k8o4.png", - "2月4日": "https://patchwiki.biligame.com/images/dongsen/e/e4/27l9vlp4npt7splyi4q05pgkfquztv3.png", - "8月11日": "https://patchwiki.biligame.com/images/dongsen/4/4e/g4ie0cl055f54ncfwm3a7euiuf0m2fv.png", - "8月21日": "https://patchwiki.biligame.com/images/dongsen/d/db/emquelpgwthlebr52sv40ol9wpsofll.png", - "9月7日": "https://patchwiki.biligame.com/images/dongsen/3/33/3qjoaz07j4okjmky0nb2usicwylf947.png", - "7月9日": "https://patchwiki.biligame.com/images/dongsen/5/51/5qe9feuth9m0juhd3y7xb179dwfvsqn.png", - "2月13日": "https://patchwiki.biligame.com/images/dongsen/7/79/q2kqasr6hesugklqmoxenym3ohk5nvh.png", - "7月18日": "https://patchwiki.biligame.com/images/dongsen/7/70/03hahqavmi2h4jj7mll2xicmeep7mln.png", - "1月13日": "https://patchwiki.biligame.com/images/dongsen/8/8a/ffp0aar02eksqqds9atw9aoltbuep1y.png", - "11月18日": "https://patchwiki.biligame.com/images/dongsen/2/2c/kn4oyqbmdvp1naxr0kyj1wqp7na86wk.png", - "3月25日": "https://patchwiki.biligame.com/images/dongsen/b/b6/4olkj8xwx3dnpiivsj8o5h77knfuuxx.png", - "7月21日": "https://patchwiki.biligame.com/images/dongsen/b/b1/ibim1vghz8f909jjyxjqp4ion0zv33y.png", - "2月8日": "https://patchwiki.biligame.com/images/dongsen/d/d7/j893zf7u1cayty1uowpj48jyervqldg.png", - "5月5日": "https://patchwiki.biligame.com/images/dongsen/c/c5/70olxzbcxny9ayriswuesp2ibfy2op3.png", - "10月2日": "https://patchwiki.biligame.com/images/dongsen/8/8d/96ovso0lbb4pno1gx6ezwz8j64noofo.png", - "11月10日": "https://patchwiki.biligame.com/images/dongsen/d/d8/klbh6w1itf1aiqe1ohgl838hkubysuf.png", - "8月18日": "https://patchwiki.biligame.com/images/dongsen/5/52/74g6ceyzk3b96i6i956xbibfj1jblf1.png", - "9月6日": "https://patchwiki.biligame.com/images/dongsen/e/ea/48rkiq6xtnvc3b0d7e23bm6gdp25dd9.png", - "1月7日": "https://patchwiki.biligame.com/images/dongsen/1/19/ikqwt3dq1h9o480ke1q0mkw4l4zhlqn.png", - "8月9日": "https://patchwiki.biligame.com/images/dongsen/c/c9/q4mw4rwxrhpbtu13fm5sw3hlurmtdfg.png", - "9月1日": "https://patchwiki.biligame.com/images/dongsen/6/66/nahdv9i1uzp8xn87vhrhqdjscbh1y7z.png", - "1月14日": "https://patchwiki.biligame.com/images/dongsen/c/c7/81kle150pdfctdrg1r9sb7pblijogse.png", - "9月18日": "https://patchwiki.biligame.com/images/dongsen/5/52/h4uwkdwmnbwn26niy09dtdxbf1xknwk.png", - "5月30日": "https://patchwiki.biligame.com/images/dongsen/8/81/5egq9llgwtm3r8thngyfct8fjf2hyb3.png", - "9月11日": "https://patchwiki.biligame.com/images/dongsen/c/cd/a55zqrdef7kkktyxc163gi50lt73iu5.png", - "10月19日": "https://patchwiki.biligame.com/images/dongsen/2/25/b0e7ejx4h0tfbrqjyvhbd26fkouervl.png", - "10月18日": "https://patchwiki.biligame.com/images/dongsen/1/11/3iiszn72bh3y02z42hvzdyhvsuv40oi.png", - "6月28日": "https://patchwiki.biligame.com/images/dongsen/8/8e/fs9mtvm7rv0aczz2klc709oeooloohr.png", - "4月25日": "https://patchwiki.biligame.com/images/dongsen/7/7f/87kftednofchygtfo3x8n2egl1k3d4k.png", - "9月24日": "https://patchwiki.biligame.com/images/dongsen/d/dd/1oyxt3seg2gggyhjquhwdncuh0h3h52.png", - "9月12日": "https://patchwiki.biligame.com/images/dongsen/0/0a/pcv310lwe8nfurz45hwodddkgz79tst.png", - "4月4日": "https://patchwiki.biligame.com/images/dongsen/0/03/62l7bsz16xvrbw8jjylprohoaj09n8n.png", - "1月30日": "https://patchwiki.biligame.com/images/dongsen/3/3c/517wl1nxxlzdww8hvfpwbhk02nn7im4.png", - "4月14日": "https://patchwiki.biligame.com/images/dongsen/e/e4/muz86rthi22e9uxjp0aj2xb49cac3om.png", - "12月26日": "https://patchwiki.biligame.com/images/dongsen/b/bd/fk693rcqcidrjrs8ts2pdcp56lmp7q8.png", - "3月29日": "https://patchwiki.biligame.com/images/dongsen/7/7f/rplap7kqzrycu7gevgou7b89j92j7ak.png", - "6月20日": "https://patchwiki.biligame.com/images/dongsen/a/a1/2ldoe8a0yr537pgr85uaar5aw4pkmve.png", - "2月25日": "https://patchwiki.biligame.com/images/dongsen/d/d7/mmr82yu5xor08h0de43j4hkl2ajh3e8.png", - "12月5日": "https://patchwiki.biligame.com/images/dongsen/a/a8/d01fez3707oi8jma6ad7hi37ldka38g.png", - "10月6日": "https://patchwiki.biligame.com/images/dongsen/4/49/ok9r5l58k8dh4jhwu8dbhghca8gtpmq.png", - "5月7日": "https://patchwiki.biligame.com/images/dongsen/0/0d/g0tczkumwnmhf5hikf2rgwigs2j452t.png", - "5月22日": "https://patchwiki.biligame.com/images/dongsen/b/b7/q3k33hekqi95zaqqj9gysq5dpwj259r.png", - "1月25日": "https://patchwiki.biligame.com/images/dongsen/8/8a/n74e7mp7zrm7syl51wdk1qeb1sl8slo.png", - "11月12日": "https://patchwiki.biligame.com/images/dongsen/9/99/d6sssg6olsv35l9dxl6jt93gqd6f1ju.png", - "8月19日": "https://patchwiki.biligame.com/images/dongsen/7/7f/jwsyvjwcpppqz3tiql686zchylfww3m.png", - "2月9日": "https://patchwiki.biligame.com/images/dongsen/7/77/2z5t9yhygcb6aga4408f182b843t4lp.png", - "5月14日": "https://patchwiki.biligame.com/images/dongsen/e/e6/hbf44jwb4zsnlztzaefot1xcps2h6hk.png", - "1月10日": "https://patchwiki.biligame.com/images/dongsen/5/57/et66rqm6lea9c2i584fzmadswb3ankp.png", - "10月5日": "https://patchwiki.biligame.com/images/dongsen/6/6d/q9tuf5zigsqwi17uqvcg7tj80bmlg2i.png", - "4月12日": "https://patchwiki.biligame.com/images/dongsen/c/cb/n717nzm6jws9zgi9drk3ayo7z7ujsgi.png", - "11月28日": "https://patchwiki.biligame.com/images/dongsen/1/1a/jzyppv0z5ozo5reb7io9ewpoel35ysw.png", - "3月15日": "https://patchwiki.biligame.com/images/dongsen/c/c7/pq9pp4ikfbba4qe54rbappa6xy29hvs.png", - "6月16日": "https://patchwiki.biligame.com/images/dongsen/6/6e/rgw9ntk063coc7normdou3hd37c2lmj.png", - "9月8日": "https://patchwiki.biligame.com/images/dongsen/b/b9/79s9vuad9fpqop5dlgknr1yrhywg8lw.png", - "6月21日": "https://patchwiki.biligame.com/images/dongsen/d/dd/82vd9kyqcxpy2rqolwdgcu9ygrhu9tq.png", - "12月2日": "https://patchwiki.biligame.com/images/dongsen/3/32/qt4oxo4nyn621ybj8waa04s14qmf7r2.png", - "10月26日": "https://patchwiki.biligame.com/images/dongsen/b/b0/b4bzcaso8ws8xro1qcj0fcjuihdk85e.png", - "6月4日": "https://patchwiki.biligame.com/images/dongsen/9/97/09tkbzszfnlabu5sxkzb915vomo6xof.png", - "1月31日": "https://patchwiki.biligame.com/images/dongsen/0/06/67uix871ru4edcivfeqijp3emrfi7dg.png", - "5月3日": "https://patchwiki.biligame.com/images/dongsen/1/13/s5h7ra9f9cl9c7w2gtqdc8pu0d9np7h.png", - "10月13日": "https://patchwiki.biligame.com/images/dongsen/1/11/p4yo43embceklejg39wjcao2dflhupm.png", - "5月1日": "https://patchwiki.biligame.com/images/dongsen/c/c8/0bdbv5dmy148jwzj6wz7i0dopz7bl23.png", - "7月11日": "https://patchwiki.biligame.com/images/dongsen/3/35/4q9luopcjzive7y700cp1y7wxkqhhq6.png", - "10月11日": "https://patchwiki.biligame.com/images/dongsen/f/f3/ti9k5d68jx41lo7tcwydrssvlc8jx0z.png", - "7月20日": "https://patchwiki.biligame.com/images/dongsen/8/87/np28gskvh3c80ecv40jtczapu3dxb3u.png", - "9月16日": "https://patchwiki.biligame.com/images/dongsen/e/e6/eppjc6f67k8cs5qubpyj0kw7v049967.png", - "4月24日": "https://patchwiki.biligame.com/images/dongsen/1/1b/6jp0e69511ua382635cd4iil8p1huhz.png", - "7月5日": "https://patchwiki.biligame.com/images/dongsen/7/73/1y7di93gt1xyon16g2udxbacb76bfg7.png", - "12月7日": "https://patchwiki.biligame.com/images/dongsen/9/91/k1qhth8sh8a7zdj6f1z8nlcnt6p0cq2.png", - "7月23日": "https://patchwiki.biligame.com/images/dongsen/d/d7/flu90iffdm6h7j6jh16m3oggkn3pfz3.png", - "2月18日": "https://patchwiki.biligame.com/images/dongsen/e/ee/ee9iz1pjbgd4vy0o1a7s5tmyo7pmsp5.png", - "7月29日": "https://patchwiki.biligame.com/images/dongsen/0/06/mpn3et437nwodgr4fqiyoogsjvitgru.png", - "12月1日": "https://patchwiki.biligame.com/images/dongsen/d/df/bmh96e2zmeax3s1ffnvhd3gg4inte6c.png", - "8月14日": "https://patchwiki.biligame.com/images/dongsen/a/a8/oan43wxd9nxjtobdcttjbd8br708uat.png", - "3月21日": "https://patchwiki.biligame.com/images/dongsen/7/7b/evl4zb8pyitmok5i7lr2h35l0xwop54.png", - "7月24日": "https://patchwiki.biligame.com/images/dongsen/4/4d/5kwnkz7b65lt4r0rm2oc31cvscgff71.png", - "9月13日": "https://patchwiki.biligame.com/images/dongsen/b/b5/ig3bpkwz9ym7krs4bdlkjqs4aal7v4u.png", - "10月17日": "https://patchwiki.biligame.com/images/dongsen/2/24/7gaw5pv3f0niodgyc694vznx82sljk6.png", - "8月23日": "https://patchwiki.biligame.com/images/dongsen/f/fc/870tidowcze3vja3fpzqo4t4d2ujnuf.png", - "5月31日": "https://patchwiki.biligame.com/images/dongsen/7/72/8igbn063brd1hmna4rjhmtwszyr6xpm.png", - "4月13日": "https://patchwiki.biligame.com/images/dongsen/5/5a/jl0p136ll16vbpm9hjisv3pooxhogvu.png", - "11月21日": "https://patchwiki.biligame.com/images/dongsen/7/75/65o6boxxh9smu76rb9p3hsqgh8azpw8.png", - "6月12日": "https://patchwiki.biligame.com/images/dongsen/0/09/l7wsaw634rfes0dk28p0y3ajx1d6orp.png", - "12月28日": "https://patchwiki.biligame.com/images/dongsen/a/ac/ahlsx669hvzhxnios1b21k3orylv1fv.png", - "1月19日": "https://patchwiki.biligame.com/images/dongsen/d/de/7iinzc4mh7nflcc6axle8fe41mk32mv.png", - "1月17日": "https://patchwiki.biligame.com/images/dongsen/c/c6/ko72zjqc754tgnu8jeicwe3v9koloj6.png", - "4月10日": "https://patchwiki.biligame.com/images/dongsen/5/58/6ioaexbx5n483jm375o79304nxqvmsm.png", - "7月10日": "https://patchwiki.biligame.com/images/dongsen/c/c6/1255403cd6ij684wpn5v8jonw0b1ei0.png", - "7月7日": "https://patchwiki.biligame.com/images/dongsen/2/2f/swnl86r4t7m4shwi7j9oczpdu2oenvc.png", - "4月2日": "https://patchwiki.biligame.com/images/dongsen/3/35/tbbis12vrf1qg8q1poys0030u4b7nc0.png", - "8月8日": "https://patchwiki.biligame.com/images/dongsen/1/1f/jw0jnpedfzxo7o65yeqxjjd4wz6k7kw.png", - "2月24日": "https://patchwiki.biligame.com/images/dongsen/a/a7/dnuas10v2wcwbelzublkh01tem83ti3.png", - "5月24日": "https://patchwiki.biligame.com/images/dongsen/e/e7/lkt0k618jaiud0uunc01hkw0rcs381a.png", - "4月22日": "https://patchwiki.biligame.com/images/dongsen/c/cd/2m741s6wpa5gu9p5euxtqntogsjuh8i.png", - "11月13日": "https://patchwiki.biligame.com/images/dongsen/1/14/o1bi5ehmjqzb2em69ie8yl5lt8bbbcc.png", - "2月22日": "https://patchwiki.biligame.com/images/dongsen/e/ee/fc41cdvdzsw7ezzqcaz17uv6g01vz5u.png", - "9月23日": "https://patchwiki.biligame.com/images/dongsen/0/08/grwklqd4a2pgijsruj7zda1eqxvlr0d.png", - "12月15日": "https://patchwiki.biligame.com/images/dongsen/8/86/ivc4gm2b9c0rnybutp9ddq1gb15qsdw.png", - "7月4日": "https://patchwiki.biligame.com/images/dongsen/e/e3/31lebg5sp9fscdk3z34mzr86oebtsrk.png", - "1月15日": "https://patchwiki.biligame.com/images/dongsen/d/db/4lmlxor5la0tdwdvecu9vl9vsfcu2xz.png", - "7月30日": "https://patchwiki.biligame.com/images/dongsen/e/e0/j32zlpzdcq1tuigs88egfxi9ct0agcy.png", - "11月27日": "https://patchwiki.biligame.com/images/dongsen/1/19/1coa4egj6wvqtkiit1ghikooq5nmw7i.png", - "1月5日": "https://patchwiki.biligame.com/images/dongsen/5/55/scif1ak1fwdhtlfb7nl2lsni4gaftv4.png", - "11月19日": "https://patchwiki.biligame.com/images/dongsen/9/9d/2m3gyfjhrpjd3zrshvzwx1jt781z142.png", - "10月21日": "https://patchwiki.biligame.com/images/dongsen/0/00/l0cf2ywp1xge6fp871oqfclqzy0nz4x.png", - "12月11日": "https://patchwiki.biligame.com/images/dongsen/e/e4/3bd68if2sc8wshowwug2o89npcc64vu.png", - "12月21日": "https://patchwiki.biligame.com/images/dongsen/7/73/emotk22s8d2tydzai0ui9pmosrhj3nm.png", - "6月26日": "https://patchwiki.biligame.com/images/dongsen/f/f1/9b7seaokt931ntc4kpwjsmhq4a0r8ve.png", - "1月29日": "https://patchwiki.biligame.com/images/dongsen/d/da/9601l4myh7juqm2vnu3f6kb4z7pk0dt.png", - "1月8日": "https://patchwiki.biligame.com/images/dongsen/c/c4/eu5id2zk5nnpi1cponvyqx8gzih8czg.png", - "9月5日": "https://patchwiki.biligame.com/images/dongsen/d/df/ft4olv4jfqadzltoi59xx51jl3udxjk.png", - "6月1日": "https://patchwiki.biligame.com/images/dongsen/5/5f/k8a53y9nja257aam60ppaqpkif3cuh4.png", - "3月8日": "https://patchwiki.biligame.com/images/dongsen/0/09/lphwha59o6x5smdcpjelmmfavc4shn9.png", - "4月6日": "https://patchwiki.biligame.com/images/dongsen/9/9b/hx2val1g0rbvrgh3cnnrlppkzyg3fyc.png", - "2月5日": "https://patchwiki.biligame.com/images/dongsen/e/e5/988m0nzr14euy4a67yp5jm2awqr9yfv.png", - "4月26日": "https://patchwiki.biligame.com/images/dongsen/c/c0/cy68m8ev44ou0pwnxol97z185efm32j.png", - "7月26日": "https://patchwiki.biligame.com/images/dongsen/2/20/qf20oa4l2yt39uj470p3l9hkjkmkr9q.png", - "10月16日": "https://patchwiki.biligame.com/images/dongsen/f/fe/mf1s7q6g9u0dhtttzwdqzyoagvl4khq.png", - "3月1日": "https://patchwiki.biligame.com/images/dongsen/7/75/krizmcsw0syyfl0da665yy2h64xj5fk.png", - "9月3日": "https://patchwiki.biligame.com/images/dongsen/4/4b/iosxmq8oodugccuwdh2ju4na4ks5prp.png", - "11月2日": "https://patchwiki.biligame.com/images/dongsen/7/71/qnzzn83qvgw44oo37kbgktjwg4yllks.png", - "11月14日": "https://patchwiki.biligame.com/images/dongsen/d/d9/qjk27gnc7tl5hl4yu6sbqldxsmkepoc.png", - "7月28日": "https://patchwiki.biligame.com/images/dongsen/a/af/o27p868q3hdhxua7whfyrp8e2zwqdd0.png", - "1月23日": "https://patchwiki.biligame.com/images/dongsen/e/ec/pp2znp072zvlv2ogiek1m552fgura61.png", - "11月3日": "https://patchwiki.biligame.com/images/dongsen/7/78/5p7eo93hwyp55xx9mp5cxaorv1n4afa.png", - "5月23日": "https://patchwiki.biligame.com/images/dongsen/b/bd/tp8hsu6ghbpawlaca0dr6kx209hkvky.png", - "10月7日": "https://patchwiki.biligame.com/images/dongsen/0/09/363c99jl9nsyn8tkdza1808mfohjh8k.png", - "4月21日": "https://patchwiki.biligame.com/images/dongsen/8/8c/pi1ml6l5423opdr36l5fa0rqund5mz8.png", - "4月7日": "https://patchwiki.biligame.com/images/dongsen/8/8a/dmothrerlmfjpsbcgg1sj8y8bdavq02.png", - "2月21日": "https://patchwiki.biligame.com/images/dongsen/3/3b/8zvcvfw73ru2tm7j2ojiur9madthv0n.png", - "3月5日": "https://patchwiki.biligame.com/images/dongsen/e/ea/q1eil21411kw9jlb6ir6w1r17e7fd5g.png", - "11月6日": "https://patchwiki.biligame.com/images/dongsen/6/61/ql02vbtci7ab4hr517r4m0dk6e8jgex.png", - "9月2日": "https://patchwiki.biligame.com/images/dongsen/1/1f/du9y3miwoqbqgcaj2cmpt8vrjbairto.png", - "5月9日": "https://patchwiki.biligame.com/images/dongsen/3/3e/4uw8h5r7efsfroiz1fwdfubb3gqxlvd.png", - "12月30日": "https://patchwiki.biligame.com/images/dongsen/e/e1/bvlhebjvu4srieqmn8rilympp2z9val.png", - "10月30日": "https://patchwiki.biligame.com/images/dongsen/1/1e/8301xbo3urk9tch9g6msx6hig6wrrhq.png", - "2月20日": "https://patchwiki.biligame.com/images/dongsen/5/51/r4egt0jnu8lxllsxvi70o24uxme25x4.png", - "3月14日": "https://patchwiki.biligame.com/images/dongsen/d/d1/ih2tu2bya6cp3b4whqhq2wycrsxnu6e.png", - "6月2日": "https://patchwiki.biligame.com/images/dongsen/d/d6/r51r1nlkfe734as91v19xf25gg0enk4.png", - "2月7日": "https://patchwiki.biligame.com/images/dongsen/5/59/i0jmfzci713s9ofwqrg4piif2aw2i0w.png", - "4月3日": "https://patchwiki.biligame.com/images/dongsen/8/8b/9nmc5pj2daqmr6m6kvxd2hr5zphdbns.png", - "12月3日": "https://patchwiki.biligame.com/images/dongsen/7/7c/4lkhhtbk1dm6dh7mx0zr06jjtist5p8.png", - "3月19日": "https://patchwiki.biligame.com/images/dongsen/e/ef/77kati0bgxauqxuyu67pwpyjtsm0e2v.png", - "1月6日": "https://patchwiki.biligame.com/images/dongsen/2/25/7jzjauc9zfcy88lorf1yuz7mvtftdw0.png", - "1月9日": "https://patchwiki.biligame.com/images/dongsen/1/13/5azpbdwxoxpz1ljb68lpr08wy4a3gt4.png", - "4月9日": "https://patchwiki.biligame.com/images/dongsen/7/7b/4fzu1zxj9k2bqx8itjd7hwtl37wvuyv.png", - "5月6日": "https://patchwiki.biligame.com/images/dongsen/6/65/2tazxmv3v4sea1z6vh7dbghw2bnoocd.png", - "1月22日": "https://patchwiki.biligame.com/images/dongsen/d/d9/n00g59xqa96cfu7kjb085cpj2xocj3o.png", - "5月28日": "https://patchwiki.biligame.com/images/dongsen/e/e3/c3lbbdzgocb8qssvhixo79zwfmr9xq8.png", - "3月3日": "https://patchwiki.biligame.com/images/dongsen/b/bc/9vyim332hu5nsf827ptj8opwnrjokr7.png", - "1月21日": "https://patchwiki.biligame.com/images/dongsen/e/e5/bys6x2eq8pkukt2s3jaaj9eqhxufapk.png", - "1月24日": "https://patchwiki.biligame.com/images/dongsen/e/e1/2y3wxf6fir5k8zxu1ik7hej40ru3el5.png", - "8月28日": "https://patchwiki.biligame.com/images/dongsen/a/a7/jhciny9gwfym04n74ph0soihjhkb5uw.png", - "10月28日": "https://patchwiki.biligame.com/images/dongsen/1/17/5aeptqefmdhnn7txpx4hdob27ozbx83.png", - "8月10日": "https://patchwiki.biligame.com/images/dongsen/4/48/bgxtgs2w76gheg0269u9fp4pr3tx8rn.png", - "12月25日": "https://patchwiki.biligame.com/images/dongsen/6/68/klaxl8prjk4p3dkly9621q3vzqkjaim.png", - "3月11日": "https://patchwiki.biligame.com/images/dongsen/4/48/m5tfdviryiozol7qsv8ji7ddhpon3kd.png", - "12月16日": "https://patchwiki.biligame.com/images/dongsen/a/a8/1mj4m56aedht79cldybbsbnt0ztrimm.png", - "3月28日": "https://patchwiki.biligame.com/images/dongsen/2/2d/hy4wi3i6uscn2wcz5v5uq6goczlqz0k.png", - "7月6日": "https://patchwiki.biligame.com/images/dongsen/f/f5/46xpeboflx1meoo7q9gy8dbnodr8ff6.png", - "3月16日": "https://patchwiki.biligame.com/images/dongsen/b/b8/5poq2lslegj7bwt4lpoyeqfao49lold.png", - "3月20日": "https://patchwiki.biligame.com/images/dongsen/4/44/hg3hckbwer9j339rb11moywaj6smy5z.png", - "6月14日": "https://patchwiki.biligame.com/images/dongsen/5/5c/am40yyinov5mmkclttkyubirkadmquy.png", - "9月4日": "https://patchwiki.biligame.com/images/dongsen/3/30/dxppkhuxf3hb0k98ojq5tv7qdypoisz.png", - "6月3日": "https://patchwiki.biligame.com/images/dongsen/c/c6/5mgfgi38q1z353mkz2rvc40yioowh6g.png", - "8月15日": "https://patchwiki.biligame.com/images/dongsen/8/81/6giwy3r977txgkka02n3rlk3x4gzu1a.png", - "9月29日": "https://patchwiki.biligame.com/images/dongsen/6/6e/g6cocxxla3629wil6gucwpl6ojtzmt7.png", - "6月19日": "https://patchwiki.biligame.com/images/dongsen/2/21/3gugjnk28cr8qg8x1uki514uclxz3uw.png", - "11月30日": "https://patchwiki.biligame.com/images/dongsen/4/40/a2ajfmigfx0750e4tboeb956k1i9ies.png", - "9月10日": "https://patchwiki.biligame.com/images/dongsen/4/42/tfcendmm114460krzuncw38g35toxmc.png", - "3月18日": "https://patchwiki.biligame.com/images/dongsen/d/d7/orr001b5scgm12acutroxom53ypwy4t.png", - "10月22日": "https://patchwiki.biligame.com/images/dongsen/1/14/3oxpxd38p755jomjc4jit9im19tuka0.png", - "7月19日": "https://patchwiki.biligame.com/images/dongsen/9/9a/nhzwz0iex2z2u7zsy46o0xs7xvf5wj9.png", - "7月16日": "https://patchwiki.biligame.com/images/dongsen/a/a2/7mq0v32x7priwqdbtjod1jokas7pcdy.png", - "5月2日": "https://patchwiki.biligame.com/images/dongsen/c/ca/tsp10ljuqsd4kvz943x0dbltz0zip3h.png", - "6月8日": "https://patchwiki.biligame.com/images/dongsen/8/89/gpzswatfsel82x786vxqz41jyvuhv14.png", - "11月26日": "https://patchwiki.biligame.com/images/dongsen/9/9b/75lfwzz80r5zwdbu8wxotxaidsnkfa6.png", - "8月5日": "https://patchwiki.biligame.com/images/dongsen/c/ca/tin80dfsjanwhjgpg3d19a56rd83dr8.png", - "7月2日": "https://patchwiki.biligame.com/images/dongsen/9/9e/q2zi9f8l8cxhz6ecfo64rlzsqmm5y3b.png", - "2月14日": "https://patchwiki.biligame.com/images/dongsen/d/da/9fzg1ls7g5c3txuxphubiwooxbr4pnc.png", - "9月14日": "https://patchwiki.biligame.com/images/dongsen/8/88/faw8dqzaoiwdy5aydcd53reqz91901w.png", - "7月3日": "https://patchwiki.biligame.com/images/dongsen/6/6a/22xnhu86ba85vz1sc8a7ejfm7vsyob6.png", - "5月8日": "https://patchwiki.biligame.com/images/dongsen/6/6b/da7keq4702or8uryye6gtuvaz8013aa.png", - "2月26日": "https://patchwiki.biligame.com/images/dongsen/b/bc/ekm2yudn1s5612zih4m7wwlu2ius8dq.png", - "7月15日": "https://patchwiki.biligame.com/images/dongsen/d/da/0ofd7l03sge6meme22rny0g5t4ji3hm.png", - "4月19日": "https://patchwiki.biligame.com/images/dongsen/9/97/hu80fyzr8qbhkb20k13iau0rsc6yihf.png", - "12月6日": "https://patchwiki.biligame.com/images/dongsen/e/eb/jcjwvzzmjk45jb9k5birc565es5m8yv.png", - "12月19日": "https://patchwiki.biligame.com/images/dongsen/9/91/g1egdrwvc36wsoyb04qc200964s4vo9.png", - "12月14日": "https://patchwiki.biligame.com/images/dongsen/5/54/hb8mz0w85y37bhihntt2lg2sgoh6uhd.png", - "8月27日": "https://patchwiki.biligame.com/images/dongsen/c/c2/b5laxy8ycy0mskwkunh92mb0mie9f9i.png", - "8月31日": "https://patchwiki.biligame.com/images/dongsen/6/6b/knbp2rll0jrxv0dg852v7vfd526dxxn.png", - "11月5日": "https://patchwiki.biligame.com/images/dongsen/7/7b/gzvtv3f7vwubiyhszmufw8xuyso33jw.png", - "8月30日": "https://patchwiki.biligame.com/images/dongsen/2/2b/56zv4rn61ilgrau9ew8248ofkd6s5o2.png", - "12月18日": "https://patchwiki.biligame.com/images/dongsen/1/1a/auyz5rbgrl3lq22lk6032qaw9nsf81x.png", - "5月15日": "https://patchwiki.biligame.com/images/dongsen/c/cf/2tycl7qyndgzoz90sxad3rztqaj284p.png", - "11月25日": "https://patchwiki.biligame.com/images/dongsen/b/b0/6sc4r820h43gljz7rlp92a37qbzbufp.png", - "8月22日": "https://patchwiki.biligame.com/images/dongsen/e/ed/ezffzxnypqy04hnnmnj8xaezpgsor29.png", - "1月26日": "https://patchwiki.biligame.com/images/dongsen/f/f6/al2ebe3fm8b9mvrurrxbh3ux2xitl33.png", - "11月22日": "https://patchwiki.biligame.com/images/dongsen/b/b4/hompta8by1y633ydqmp8uldja6mh7bd.png", - "9月17日": "https://patchwiki.biligame.com/images/dongsen/1/1f/0dktb2cyzk4my0h0wrn6k4qzei5fu47.png", - "8月26日": "https://patchwiki.biligame.com/images/dongsen/b/bc/h937s6xnou6mc9h6ytnx55jsoodda9v.png", - "3月24日": "https://patchwiki.biligame.com/images/dongsen/3/38/0yr4p5kk01pxlda7crx34dnmt9siklv.png", - "12月13日": "https://patchwiki.biligame.com/images/dongsen/7/71/62iqqf2n75p9lu9kofx9rjwyku7bknj.png", - "2月17日": "https://patchwiki.biligame.com/images/dongsen/7/78/jb1yvqgwlfkvbxq7bnh9p2knmd1zd18.png" -} - -const date = new Date() -const month = date.getMonth() + 1 -const day = date.getDate() -let monthDayStr = `${month}月${day}日` -if(assignMonthDay.length > 0) { - monthDayStr = assignMonthDay -} -log(`日期:${monthDayStr}`) - -let imgUrl = imgObjs[monthDayStr] -if(imgUrl == undefined) { - imgUrl = imgObjs["12月4日"] -} -let img = await getImage(imgUrl) -imgStyle.stack = contentStack -imgStyle.width = 138 -imgStyle.height = 138 -imgStyle.img = img -addStyleImg() - - -/* -**************************************************************************** -上面添加你自己的组件内容/逻辑 -↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ -**************************************************************************** -*/ - - -/* -**************************************************************************** -* 这里是图片逻辑,不用修改 -**************************************************************************** -*/ - -if (!colorMode && !config.runsInWidget && changePicBg) { - const okTips = "您的小部件背景已准备就绪" - let message = "图片模式支持相册照片&背景透明" - let options = ["图片选择", "透明背景"] - let isTransparentMode = await generateAlert(message, options) - if (!isTransparentMode) { - let img = await Photos.fromLibrary() - message = okTips - const resultOptions = ["好的"] - await generateAlert(message, resultOptions) - files.writeImage(path, img) - } else { - message = "以下是【透明背景】生成步骤,如果你没有屏幕截图请退出,并返回主屏幕长按进入编辑模式。滑动到最右边的空白页截图。然后重新运行!" - let exitOptions = ["继续(已有截图)", "退出(没有截图)"] - - let shouldExit = await generateAlert(message, exitOptions) - if (shouldExit) return - - // Get screenshot and determine phone size. - let img = await Photos.fromLibrary() - let height = img.size.height - let phone = phoneSizes()[height] - if (!phone) { - message = "您似乎选择了非iPhone屏幕截图的图像,或者不支持您的iPhone。请使用其他图像再试一次!" - await generateAlert(message, ["好的!我现在去截图"]) - return - } - - // Prompt for widget size and position. - message = "您想要创建什么尺寸的小部件?" - let sizes = ["小号", "中号", "大号"] - let size = await generateAlert(message, sizes) - let widgetSize = sizes[size] - - message = "您想它在什么位置?" - message += (height == 1136 ? " (请注意,您的设备仅支持两行小部件,因此中间和底部选项相同。)" : "") - - // Determine image crop based on phone size. - let crop = { w: "", h: "", x: "", y: "" } - if (widgetSize == "小号") { - crop.w = phone.小号 - crop.h = phone.小号 - let positions = ["顶部 左边", "顶部 右边", "中间 左边", "中间 右边", "底部 左边", "底部 右边"] - let position = await generateAlert(message, positions) - - // Convert the two words into two keys for the phone size dictionary. - let keys = positions[position].split(' ') - crop.y = phone[keys[0]] - crop.x = phone[keys[1]] - - } else if (widgetSize == "中号") { - crop.w = phone.中号 - crop.h = phone.小号 - - // 中号 and 大号 widgets have a fixed x-value. - crop.x = phone.左边 - let positions = ["顶部", "中间", "底部"] - let position = await generateAlert(message, positions) - let key = positions[position].toLowerCase() - crop.y = phone[key] - - } else if (widgetSize == "大号") { - crop.w = phone.中号 - crop.h = phone.大号 - crop.x = phone.左边 - let positions = ["顶部", "底部"] - let position = await generateAlert(message, positions) - - // 大号 widgets at the 底部 have the "中间" y-value. - crop.y = position ? phone.中间 : phone.顶部 - } - - // Crop image and finalize the widget. - let imgCrop = cropImage(img, new Rect(crop.x, crop.y, crop.w, crop.h)) - - message = "您的小部件背景已准备就绪,退出到桌面预览。" - const resultOptions = ["好的"] - await generateAlert(message, resultOptions) - files.writeImage(path, imgCrop) - } - -} - - -////////////////////////////////////// -// 组件End -// 设置小组件的背景 -if (colorMode) { - widget.backgroundColor = bgColor -} else { - widget.backgroundImage = files.readImage(path) -} -// 设置边距(上,左,下,右) -widget.setPadding(padding.top, padding.left, padding.bottom, padding.right) -// 设置组件 -Script.setWidget(widget) -// 完成脚本 -Script.complete() -// 预览 -if (previewSize == "Large") { - widget.presentLarge() -} else if (previewSize == "Medium") { - widget.presentMedium() -} else { - widget.presentSmall() -} -////////////////////////////////////// - -/* -**************************************************************************** -* 重置文本样式 -**************************************************************************** -*/ -function resetTextStyle() { - textStyle.stack = undefined // 加入到哪个内容栈显示 - textStyle.marginStart = 0 - textStyle.marginEnd = 0 - textStyle.text = "" // 显示的文字 - textStyle.width = 0 // 宽 - textStyle.height = 0 // 长 - textStyle.lineLimit = 0 // 行数控制,0是全部展示 - textStyle.font = undefined // 字体 - textStyle.textColor = defaultTextColor // 文字颜色 -} - -/* -**************************************************************************** -* 重置图片样式 -**************************************************************************** -*/ -function resetImgStyle() { - imgStyle.stack = undefined // 加入到哪个内容栈显示 - textStyle.marginStart = 0 - textStyle.marginEnd = 0 - imgStyle.img = undefined // 图片资源 - imgStyle.width = 0 // 宽 - imgStyle.height = 0 // 长 - imgStyle.tintColor = undefined // 图片渲染颜色 -} - -/* -**************************************************************************** -* 添加一行文本数据进行显示 -**************************************************************************** -*/ -function addStyleText() { - const contentStack = textStyle.stack - if (contentStack == undefined) { - return - } - - const marginStart = textStyle.marginStart - if (marginStart != undefined && marginStart != 0) { - contentStack.addSpacer(marginStart) - } - - const textSpan = contentStack.addText(`${textStyle.text}`) - contentStack.size = new Size(textStyle.width, textStyle.height) - textSpan.lineLimit = textStyle.lineLimit - textSpan.font = textStyle.font - textSpan.textColor = textStyle.textColor - - const marginEnd = textStyle.marginEnd - if (marginStart != undefined && marginStart != 0) { - contentStack.addSpacer(marginEnd) - } - - // 重置样式 - resetTextStyle() -} - -/* -**************************************************************************** -* 添加图片进行显示 -**************************************************************************** -*/ -function addStyleImg() { - const contentStack = imgStyle.stack - if (contentStack == undefined) { - return - } - - const marginStart = textStyle.marginStart - if (marginStart != undefined && marginStart != 0) { - contentStack.addSpacer(marginStart) - } - - const imgSpan = contentStack.addImage(imgStyle.img) - imgSpan.imageSize = new Size(imgStyle.width, imgStyle.height) - const tintColor = imgStyle.tintColor - if (tintColor != undefined) { - imgSpan.tintColor = tintColor - } - - const marginEnd = textStyle.marginEnd - if (marginStart != undefined && marginStart != 0) { - contentStack.addSpacer(marginEnd) - } - - // 重置样式 - resetImgStyle() -} - -/* -**************************************************************************** -* 右对齐,水平方向排列 -**************************************************************************** -*/ -function alignRightStack(alignmentStack, marginRight) { - let contentStack = alignmentStack.addStack() - contentStack.layoutHorizontally() - contentStack.addSpacer() - - let returnStack = contentStack.addStack() - - // 添加右边距 - if (marginRight != undefined && marginRight != 0) { - contentStack.addSpacer(marginRight) - } - - return returnStack -} - - -/* -**************************************************************************** -* 左对齐,水平方向排列 -**************************************************************************** -*/ -function alignLeftStack(alignmentStack, marginLeft) { - let contentStack = alignmentStack.addStack() - contentStack.layoutHorizontally() - - let returnStack = contentStack.addStack() - returnStack.layoutHorizontally() - - // 添加左边距 - if (marginLeft != undefined && marginLeft != 0) { - returnStack.addSpacer(marginLeft) - } - - contentStack.addSpacer() - return returnStack -} - -/* -**************************************************************************** -* 上对齐,垂直方向排列 -**************************************************************************** -*/ -function alignTopStack(alignmentStack, marginTop) { - let contentStack = alignmentStack.addStack() - contentStack.layoutVertically() - - // 添加左边距 - if (marginTop != undefined && marginTop != 0) { - contentStack.addSpacer(marginTop) - } - - let returnStack = contentStack.addStack() - returnStack.layoutVertically() - - contentStack.addSpacer() - return returnStack -} - - -/* -**************************************************************************** -* 下对齐,垂直方向排列 -**************************************************************************** -*/ -function alignBottomStack(alignmentStack, marginBottom) { - let contentStack = alignmentStack.addStack() - contentStack.layoutVertically() - contentStack.addSpacer() - - let returnStack = contentStack.addStack() - - // 添加下边距 - if (marginBottom != undefined && marginBottom != 0) { - contentStack.addSpacer(marginBottom) - } - - return returnStack -} - -/* -**************************************************************************** -* 水平居中 -**************************************************************************** -*/ -function alignHorizontallyCenterStack(alignmentStack) { - let returnStack = alignmentStack.addStack() - returnStack.layoutHorizontally() - returnStack.centerAlignContent() - return returnStack -} - - -/* -**************************************************************************** -* 垂直居中 -**************************************************************************** -*/ -function alignVerticallyCenterStack(alignmentStack) { - let returnStack = alignmentStack.addStack() - returnStack.layoutVertically() - returnStack.centerAlignContent() - return returnStack -} - - -/* -**************************************************************************** -* 网络请求get封装 -**************************************************************************** -*/ -async function getJson(url) { - const request = new Request(url) - const defaultHeaders = { - "Accept": "*/*", - "Content-Type": "application/json" - } - - request.url = url - request.method = 'GET' - request.headers = defaultHeaders - - const data = await request.loadJSON() - - return data -} - - -/* -**************************************************************************** -* 网络请求获取图片 -**************************************************************************** -*/ -async function getImage(url) { - const request = new Request(url) - const data = await request.loadImage() - return data -} - - -/* -**************************************************************************** -* 图片裁剪相关 -**************************************************************************** -*/ -// Generate an alert with the provided array of options. -async function generateAlert(message, options) { - let alert = new Alert() - alert.message = message - - for (const option of options) { - alert.addAction(option) - } - - let response = await alert.presentAlert() - return response -} - -// Crop an image into the specified rect. -function cropImage(img, rect) { - let draw = new DrawContext() - draw.size = new Size(rect.width, rect.height) - draw.drawImageAtPoint(img, new Point(-rect.x, -rect.y)) - return draw.getImage() -} - -// Pixel sizes and positions for widgets on all supported phones. -function phoneSizes() { - let phones = { - "2688": { - "小号": 507, - "中号": 1080, - "大号": 1137, - "左边": 81, - "右边": 654, - "顶部": 228, - "中间": 858, - "底部": 1488 - }, - - "1792": { - "小号": 338, - "中号": 720, - "大号": 758, - "左边": 54, - "右边": 436, - "顶部": 160, - "中间": 580, - "底部": 1000 - }, - - "2436": { - "小号": 465, - "中号": 987, - "大号": 1035, - "左边": 69, - "右边": 591, - "顶部": 213, - "中间": 783, - "底部": 1353 - }, - - "2208": { - "小号": 471, - "中号": 1044, - "大号": 1071, - "左边": 99, - "右边": 672, - "顶部": 114, - "中间": 696, - "底部": 1278 - }, - - "1334": { - "小号": 296, - "中号": 642, - "大号": 648, - "左边": 54, - "右边": 400, - "顶部": 60, - "中间": 412, - "底部": 764 - }, - - "1136": { - "小号": 282, - "中号": 584, - "大号": 622, - "左边": 30, - "右边": 332, - "顶部": 59, - "中间": 399, - "底部": 399 - } - } - return phones -} - - -/* -**************************************************************************** -**************************************************************************** -**************************************************************************** -*/ - - - diff --git "a/\345\237\272\351\207\221\347\273\204\344\273\266.js" "b/\345\237\272\351\207\221\347\273\204\344\273\266.js" deleted file mode 100644 index e5d3243..0000000 --- "a/\345\237\272\351\207\221\347\273\204\344\273\266.js" +++ /dev/null @@ -1,320 +0,0 @@ -// Variables used by Scriptable. -// This widget was created by Max Zeryck,并在原来的基础上增加了更多内容显示 - - -/********************************************************************/ -/****************************定义小组件****************************/ -/********************************************************************/ -const filename = Script.name() + ".jpg" -const files = FileManager.local() -const path = files.joinPath(files.documentsDirectory(), filename) - -if (config.runsInWidget) { - /****************************小组件内容START****************************/ - // 获取外部输入的参数 - var widgetInputRAW = args.widgetParameter - // 默认值 - const defaultFund = "001838,002190" - try { - widgetInputRAW.toString() - } catch(e) { - widgetInputRAW = defaultFund - } - // 初始化基金ID - var inputStr = widgetInputRAW.toString() - if (inputStr.length == 0) { - inputStr = defaultFund - } - var fid = inputStr.replace(/\,/g,",").split(",") - // 获取基金数据 - const fundJSON = await getFund() - // 创建小组件 - const widget = createWidget(fundJSON) - widget.backgroundImage = files.readImage(path) - widget.addSpacer() - widget.setPadding(15, 2, 15, 2) - Script.setWidget(widget) - Script.complete() - // 直接预览中等大小的小组件 - widget.presentMedium() - /*****************************小组件内容ENd*****************************/ - -} else { - // Determine if user has taken the screenshot. - var message - message = "开始之前,请返回主屏幕并长按进入编辑模式。滑动到最右边的空白页并截图。" - let exitOptions = ["继续","退出以截图"] - let shouldExit = await generateAlert(message,exitOptions) - if (shouldExit) return - - // Get screenshot and determine phone size. - let img = await Photos.fromLibrary() - let height = img.size.height - let phone = phoneSizes()[height] - if (!phone) { - message = "您似乎选择了非iPhone屏幕截图的图像,或者不支持您的iPhone。请使用其他图像再试一次。" - await generateAlert(message,["OK"]) - return - } - - // Prompt for widget size and position. - message = "您想要创建什么尺寸的小部件?" - let sizes = ["Small","Medium","Large"] - let size = await generateAlert(message,sizes) - let widgetSize = sizes[size] - - message = "您想它在什么位置?" - message += (height == 1136 ? " (请注意,您的设备仅支持两行小部件,因此中间和底部选项相同。)" : "") - - // Determine image crop based on phone size. - let crop = { w: "", h: "", x: "", y: "" } - if (widgetSize == "Small") { - crop.w = phone.small - crop.h = phone.small - let positions = ["Top left","Top right","Middle left","Middle right","Bottom left","Bottom right"] - let position = await generateAlert(message,positions) - - // Convert the two words into two keys for the phone size dictionary. - let keys = positions[position].toLowerCase().split(' ') - crop.y = phone[keys[0]] - crop.x = phone[keys[1]] - - } else if (widgetSize == "Medium") { - crop.w = phone.medium - crop.h = phone.small - - // Medium and large widgets have a fixed x-value. - crop.x = phone.left - let positions = ["Top","Middle","Bottom"] - let position = await generateAlert(message,positions) - let key = positions[position].toLowerCase() - crop.y = phone[key] - - } else if(widgetSize == "Large") { - crop.w = phone.medium - crop.h = phone.large - crop.x = phone.left - let positions = ["Top","Bottom"] - let position = await generateAlert(message,positions) - - // Large widgets at the bottom have the "middle" y-value. - crop.y = position ? phone.middle : phone.top - } - - // Crop image and finalize the widget. - let imgCrop = cropImage(img, new Rect(crop.x,crop.y,crop.w,crop.h)) - - message = "您的小部件背景已准备就绪。您想在Scriptable的小部件中使用它还是导出图像?" - const exportPhotoOptions = ["在Scriptable中使用","导出图像"] - const exportPhoto = await generateAlert(message,exportPhotoOptions) - - if (exportPhoto) { - Photos.save(imgCrop) - } else { - files.writeImage(path,imgCrop) - } - - Script.complete() -} - -/* - ************************************************************************************ - */ - -// Generate an alert with the provided array of options. -async function generateAlert(message,options) { - - let alert = new Alert() - alert.message = message - - for (const option of options) { - alert.addAction(option) - } - - let response = await alert.presentAlert() - return response -} - -// Crop an image into the specified rect. -function cropImage(img,rect) { - - let draw = new DrawContext() - draw.size = new Size(rect.width, rect.height) - - draw.drawImageAtPoint(img,new Point(-rect.x, -rect.y)) - return draw.getImage() -} - -// Pixel sizes and positions for widgets on all supported phones. -function phoneSizes() { - let phones = { - "2688": { - "small": 507, - "medium": 1080, - "large": 1137, - "left": 81, - "right": 654, - "top": 228, - "middle": 858, - "bottom": 1488 - }, - - "1792": { - "small": 338, - "medium": 720, - "large": 758, - "left": 54, - "right": 436, - "top": 160, - "middle": 580, - "bottom": 1000 - }, - - "2436": { - "small": 465, - "medium": 987, - "large": 1035, - "left": 69, - "right": 591, - "top": 213, - "middle": 783, - "bottom": 1353 - }, - - "2208": { - "small": 471, - "medium": 1044, - "large": 1071, - "left": 99, - "right": 672, - "top": 114, - "middle": 696, - "bottom": 1278 - }, - - "1334": { - "small": 296, - "medium": 642, - "large": 648, - "left": 54, - "right": 400, - "top": 60, - "middle": 412, - "bottom": 764 - }, - - "1136": { - "small": 282, - "medium": 584, - "large": 622, - "left": 30, - "right": 332, - "top": 59, - "middle": 399, - "bottom": 399 - } - } - return phones -} - -/* - ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ - */ - - - // 基金数据获取 -async function getFund() { - // 拼接基金id - var fidFull = '' - for (let index in fid) { - fidFull = fidFull + fid[index] + "," - } - fidFull = fidFull.substring(0, fidFull.lastIndexOf(',')) - - // 请求基金数据 - const fundRequest = { - url: `https://api.doctorxiong.club/v1/fund?code=${fidFull}`, - } - const res = await get(fundRequest) - - return res -} - -// 创建 widget -function createWidget(fundJson) { - let listWidget = new ListWidget() - - const data = fundJson.data - for (let index in data) { - // 添加行距 - listWidget.addSpacer(4) - // 统一字体大小 - const fontSize = 11 - - //创建水平方向stack - let hStack0 = listWidget.addStack() - hStack0.layoutHorizontally() - hStack0.addSpacer(0) // Left spacing, 向左对齐间距 - - // 颜色值 - const expectGrowth = data[index].expectGrowth // 当前基金单位净值估算日涨幅 - var color = new Color('dc0000') - if (expectGrowth <= 0) { - color = new Color('1ba784') - } - - // 基金名称 - let title = hStack0.addText('>› ' + data[index].name) - title.font = new Font('Menlo', fontSize) //font and size,字体与大小 - title.textColor = color //font color,字体颜色 - title.textOpacity = (1) //opacity,不透明度 - title.leftAlignText() //Align,对齐方式(center,left,right)!在同一个stack内的对齐方式不能单独设置,只能调整向左对齐间距大小 - - // 净值估算更新日期 - let expectWorthDateStr = data[index].expectWorthDate - let expectWorthDateText = data[index].netWorthDate - - // 当前基金单位净值估算日涨幅,单位为百分比 - let expectGrowthStr = expectGrowth - if (expectWorthDateStr.search(expectWorthDateText) != -1) { - expectGrowthStr = data[index].dayGrowth - } - if (typeof(expectWorthDateStr) != "undefined") { - expectWorthDateText = expectWorthDateStr.substring(5) - } - - let expectWorth = hStack0.addText(' ‹' + expectGrowthStr + '› ') - expectWorth.font = Font.boldSystemFont(12) //font and size,字体与大小 - expectWorth.textColor = color //font color,字体颜色 - expectWorth.textOpacity = (1) //opacity,不透明度 - expectWorth.leftAlignText() //Align,对齐方式(center,left,right)!在同一个stack内的对齐方式不能单独设置,只能调整向左对齐间距大小 - - // 净值估算更新日期添加 - let expectWorthDate = hStack0.addText(expectWorthDateText + '') - expectWorthDate.font = new Font('Menlo', fontSize) //font and size,字体与大小 - expectWorthDate.textColor = color //font color,字体颜色 - expectWorthDate.textOpacity = (1) //opacity,不透明度 - expectWorthDate.leftAlignText() //Align,对齐方式(center,left,right)!在同一个stack内的对齐方式不能单独设置,只能调整向左对齐间距大小 - } - - return listWidget -} - -// 网络请求get封装 -async function get({ url, headers = {} }, callback = () => {}) { - const request = new Request('') - const defaultHeaders = { - "Accept": "*/*", - "Content-Type": "application/json" - } - - request.url = url - request.method = 'GET' - request.headers = { - ...headers, - ...defaultHeaders - } - const data = await request.loadJSON() - callback(request.response, data) - return data -} diff --git "a/\345\260\217\344\276\277\347\255\276.js" "b/\345\260\217\344\276\277\347\255\276.js" deleted file mode 100644 index 4779c1c..0000000 --- "a/\345\260\217\344\276\277\347\255\276.js" +++ /dev/null @@ -1,354 +0,0 @@ -// Variables used by Scriptable. -// This widget was created by Max Zeryck - -/* - * Author: Enjoyee - * Github: https://github.com/Enjoyee/Scriptable - */ - -/********************************************************************/ -/****************************定义小组件****************************/ -/********************************************************************/ -const filename = Script.name() + ".jpg" -const files = FileManager.local() -const path = files.joinPath(files.documentsDirectory(), filename) - -/********************************************************************/ -// 获取外部输入的参数,格式:【文字+逗号分隔】 -let widgetInputRAW = args.widgetParameter -const defaultInput = "恭 喜,发 财" -try { - widgetInputRAW.toString() -} catch(e) { - // 默认值微博热搜 - widgetInputRAW = defaultInput -} -let inputStr = widgetInputRAW.toString() -if (inputStr.trim() == "") { - inputStr = defaultInput -} -// 获取外部输入 -const inputArr = inputStr.replace(/\,/g,",").split(",") - -/*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/ -// 文字颜色 -const fontColorStr = "#333333" -// 背景是否是颜色 -const colorMode = false -// 背景颜色 -const bgColorStr = "#ffffff" -// 文字默认大小 -const fonSize = 50 -/*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/ - - -// 创建小组件 -let widget = await createWidget(inputArr) -// 运行组件 -if (!config.runsInWidget && !colorMode) { - // Determine if user has taken the screenshot. - var message - message = "图片模式支持相册随意照片&背景透明" - let options = ["图片选择","透明背景"] - let isTransparentMode = await generateAlert(message, options) - if (!isTransparentMode) { - let img = await Photos.fromLibrary() - message = "您的小部件背景已准备就绪" - const resultOptions = ["好的"] - await generateAlert(message, resultOptions) - files.writeImage(path, img) - } else { - message = "透明模式开始之前,请返回主屏幕并长按进入编辑模式。滑动到最右边的空白页并截图。" - let exitOptions = ["继续","退出以截图"] - let shouldExit = await generateAlert(message,exitOptions) - if (shouldExit) return - - // Get screenshot and determine phone size. - let img = await Photos.fromLibrary() - let height = img.size.height - let phone = phoneSizes()[height] - if (!phone) { - message = "您似乎选择了非iPhone屏幕截图的图像,或者不支持您的iPhone。请使用其他图像再试一次。" - await generateAlert(message,["好的"]) - return - } - - // Prompt for widget size and position. - message = "您想要创建什么尺寸的小部件?" - let sizes = ["Small","Medium","Large"] - let size = await generateAlert(message,sizes) - let widgetSize = sizes[size] - - message = "您想它在什么位置?" - message += (height == 1136 ? " (请注意,您的设备仅支持两行小部件,因此中间和底部选项相同。)" : "") - - // Determine image crop based on phone size. - let crop = { w: "", h: "", x: "", y: "" } - if (widgetSize == "Small") { - crop.w = phone.small - crop.h = phone.small - let positions = ["Top left","Top right","Middle left","Middle right","Bottom left","Bottom right"] - let position = await generateAlert(message,positions) - - // Convert the two words into two keys for the phone size dictionary. - let keys = positions[position].toLowerCase().split(' ') - crop.y = phone[keys[0]] - crop.x = phone[keys[1]] - - } else if (widgetSize == "Medium") { - crop.w = phone.medium - crop.h = phone.small - - // Medium and large widgets have a fixed x-value. - crop.x = phone.left - let positions = ["Top","Middle","Bottom"] - let position = await generateAlert(message,positions) - let key = positions[position].toLowerCase() - crop.y = phone[key] - - } else if(widgetSize == "Large") { - crop.w = phone.medium - crop.h = phone.large - crop.x = phone.left - let positions = ["Top","Bottom"] - let position = await generateAlert(message,positions) - - // Large widgets at the bottom have the "middle" y-value. - crop.y = position ? phone.middle : phone.top - } - - // Crop image and finalize the widget. - let imgCrop = cropImage(img, new Rect(crop.x,crop.y,crop.w,crop.h)) - - message = "您的小部件背景已准备就绪" - const resultOptions = ["好的"] - await generateAlert(message, resultOptions) - files.writeImage(path, imgCrop) - } -} - -// 最后设置小组件 -if (colorMode) { - widget.backgroundColor = new Color(bgColorStr) -} else { - widget.backgroundImage = files.readImage(path) -} -Script.setWidget(widget) -// 脚本停止 -Script.complete() -// 直接预览中等大小的小组件 -widget.presentSmall() - -/* - ************************************************************************************ - */ - -// Generate an alert with the provided array of options. -async function generateAlert(message,options) { - let alert = new Alert() - alert.message = message - - for (const option of options) { - alert.addAction(option) - } - - let response = await alert.presentAlert() - return response -} - -// Crop an image into the specified rect. -function cropImage(img,rect) { - let draw = new DrawContext() - draw.size = new Size(rect.width, rect.height) - - draw.drawImageAtPoint(img,new Point(-rect.x, -rect.y)) - return draw.getImage() -} - -// Pixel sizes and positions for widgets on all supported phones. -function phoneSizes() { - let phones = { - "2688": { - "small": 507, - "medium": 1080, - "large": 1137, - "left": 81, - "right": 654, - "top": 228, - "middle": 858, - "bottom": 1488 - }, - - "1792": { - "small": 338, - "medium": 720, - "large": 758, - "left": 54, - "right": 436, - "top": 160, - "middle": 580, - "bottom": 1000 - }, - - "2436": { - "small": 465, - "medium": 987, - "large": 1035, - "left": 69, - "right": 591, - "top": 213, - "middle": 783, - "bottom": 1353 - }, - - "2208": { - "small": 471, - "medium": 1044, - "large": 1071, - "left": 99, - "right": 672, - "top": 114, - "middle": 696, - "bottom": 1278 - }, - - "1334": { - "small": 296, - "medium": 642, - "large": 648, - "left": 54, - "right": 400, - "top": 60, - "middle": 412, - "bottom": 764 - }, - - "1136": { - "small": 282, - "medium": 584, - "large": 622, - "left": 30, - "right": 332, - "top": 59, - "middle": 399, - "bottom": 399 - } - } - return phones -} - -/* - ************************************************************************************ - */ - - - /* - =================================================================================== - */ - -// 网络请求get封装 -async function getJson({ url, headers = {} }, callback = () => {}) { - const request = new Request('') - const defaultHeaders = { - "Accept": "*/*", - "Content-Type": "application/json" - } - - request.url = `https://www.tophub.fun:8888/v2/GetAllInfoGzip?id=${hotID}&page=0` - request.method = 'GET' - request.headers = { - ...headers, - ...defaultHeaders - } - const data = await request.loadJSON() - callback(request.response, data) - return data -} - -// 请求网络图片 -async function fetchImageUrl(imgUrl) { - const req = await new Request(imgUrl) - const img = await req.loadImage() - return img -} - -// 创建组件 -async function createWidget(data) { - let w = new ListWidget() - /* - ************************************************************* - */ - // 文字颜色 - const fontColor = new Color(fontColorStr) - const shadowColor= new Color(fontColorStr, 0.8) - // 计算文字最终大小 - const realFontSize = getRealFontSize(data) - - /* - ************************************************************* - */ - w.addSpacer() - let lineSpacing = 4 - for (let index in data) { - let titleStack = w.addStack() - titleStack.addSpacer() - let title = titleStack.addText(data[index] + "") - title.font = Font.lightMonospacedSystemFont(realFontSize) - title.textColor = fontColor - title.shadowColor = shadowColor - title.shadowOffset = new Point(1,1) - title.shadowRadius = 1 // 阴影半径 - title.centerAlignText() - if(index == data.length - 1) { - lineSpacing = 0 - } - w.addSpacer(lineSpacing) - titleStack.addSpacer() - } - w.addSpacer() - - w.useDefaultPadding() - return w -} - -// 获取最终的文字大小 -function getRealFontSize(data) { - var totalStr = "" - var maxStrLength = 0 - for (let index in data) { - let str = data[index] - const length = str.length - if (length > maxStrLength) { - maxStrLength = length - } - totalStr = totalStr + str - } - log("最大行的文字长度:" + maxStrLength) - - const rowLength = 132 - const columnLength = 100 - // 一行可以显示多少个字 - const rowFontCount = Math.floor(rowLength / fonSize) - // 总共要显示多少列 - const columnFontCount = data.length - log("总共要显示多少列:" + columnFontCount) - let columnFontSize = fonSize - let gap = columnLength - columnFontCount * columnFontSize - while(gap < 0) { - columnFontSize = columnFontSize - 1 - gap = columnLength - columnFontCount * columnFontSize - } - log("列方向所需的文字大小:" + columnFontSize) - - // 最大行的文字所需长度 - let rowFontSize = fonSize - gap = rowLength - maxStrLength * rowFontSize - while(gap < 0) { - rowFontSize = rowFontSize - 1 - gap = rowLength - maxStrLength * rowFontSize - } - log("行方向所需的文字大小:" + rowFontSize) - const realFontSize = Math.min(rowFontSize, columnFontSize) - - return realFontSize -} \ No newline at end of file diff --git "a/\345\275\251\344\272\221\346\212\230\347\272\277.js" "b/\345\275\251\344\272\221\346\212\230\347\272\277.js" new file mode 100644 index 0000000..130ad4e --- /dev/null +++ "b/\345\275\251\344\272\221\346\212\230\347\272\277.js" @@ -0,0 +1,616 @@ +// Variables used by Scriptable. +// These must be at the very top of the file. Do not edit. +// icon-color: deep-blue; icon-glyph: bolt; +/** + * Author:LSP + * Date:2023-05-24 + */ +// ------------------------------------------------------- +// 是否是开发环境,配合手机端调试使用,正式发布设置为false +const isDev = false; +const dependencyLSP = '20230512'; +console.log(`当前环境 👉👉👉👉👉 ${isDev ? 'DEV' : 'RELEASE'}`); +console.log(`----------------------------------------`); +// 分支 +const branch = 'v2'; +// 仓库根目录 +const remoteGithubRoot = `https://raw.githubusercontent.com/Enjoyee/Scriptable/${branch}`; +const remoteHomeLandRoot = `https://glimmerk.coding.net/p/Scriptable/shared-depot/source/git/raw/${branch}`; +// 依赖包目录 +const fm = FileManager.local(); +const rootDir = fm.documentsDirectory(); +const cacheDir = fm.joinPath(rootDir, 'LSP'); +const dependencyFileName = isDev ? "_LSP.js" : `${cacheDir}/_LSP.js`; +// 下载依赖包 +await downloadLSPDependency(); +// ------------------------------------------------------- +if (typeof require === 'undefined') require = importModule +// 引入相关方法 +const { BaseWidget } = require(dependencyFileName); + +// @定义小组件 +class Widget extends BaseWidget { + + defaultPreference = { + caiyun: 'UR8ASaplvIwavDfR', + weatherIco: '1', + lineMode: '1', + lineHeight: 76, + dateFontDayColor: '#FFFFFF', + dateFontNightColor: '#FFFFFF', + currentTemperatureDayColor: '#FFFFFF', + currentTemperatureNightColor: '#FFFFFF', + }; + + getValueByKey = (key) => this.readWidgetSetting()[key] ?? this.defaultPreference[key]; + + caiyun = () => this.getValueByKey('caiyun'); + + dateFontDayColor = () => this.getValueByKey('dateFontDayColor'); + dateFontNightColor = () => this.getValueByKey('dateFontNightColor'); + + currentTemperatureDayColor = () => this.getValueByKey('currentTemperatureDayColor'); + currentTemperatureNightColor = () => this.getValueByKey('currentTemperatureNightColor'); + + constructor(scriptName) { + super(scriptName); + } + + async getAppViewOptions() { + return { + widgetProvider: { + small: false, // 是否提供小号组件 + medium: true, // 是否提供中号组件 + large: false, // 是否提供大号组件 + }, + // 预览界面的组件设置item + settingItems: [ + { + name: 'weatherIco', + label: '天气图标', + type: 'select', + icon: `${this.getRemoteRootPath()}/img/ic_weather.gif`, + needLoading: false, + options: [ + { label: '第1套图标', value: '1' }, + { label: '第2套图标', value: '2' }, + { label: '第3套图标', value: '3' }, + { label: '第4套图标', value: '4' }, + { label: '第5套图标', value: '5' }, + { label: '第6套图标', value: '6' }, + { label: '第7套图标', value: '7' }, + { label: '第8套图标', value: '8' }, + { label: '第9套图标', value: '9' }, + { label: '第10套图标', value: '10' }, + { label: '第11套图标', value: '11' }, + { label: '第12套图标', value: '12' }, + { label: '第13套图标', value: '13' }, + ], + default: "1" + }, + { + name: 'lineMode', + label: '折线数据', + type: 'select', + icon: { name: 'chart.xyaxis.line', color: '#11c4d4', }, + needLoading: false, + options: [ + { label: '小时', value: '1' }, + { label: '每日', value: '2' }, + ], + default: "1" + }, + { + name: 'otherSetting', + label: '其他设置', + type: 'cell', + icon: 'https://cdnjson.com/images/2024/02/05/settings.png', + needLoading: true, + childItems: [ + { + items: [ + { + name: 'caiyun', + label: '彩云key', + type: 'cell', + icon: `${this.getRemoteRootPath()}/img/icon_caiyun.png`, + alert: { + title: '彩云key', + message: "已使用默认key,如果不可用了需要自己去申请填入替换", + options: [ + { + key: 'caiyun', + hint: '请输入彩云key', + } + ] + }, + needLoading: false, + default: this.caiyun(), + }, + { + name: 'dateFontDayColor', + label: '日期文字浅色颜色', + type: 'color', + icon: { name: 'sun.min.fill', color: '#3a86ff', }, + needLoading: false, + default: this.dateFontDayColor(), + }, + { + name: 'dateFontNightColor', + label: '日期文字深色颜色', + type: 'color', + icon: { name: 'moon.fill', color: '#3a0ca3', }, + needLoading: false, + default: this.dateFontNightColor(), + }, + { + name: 'currentTemperatureDayColor', + label: '温度文字浅色颜色', + type: 'color', + icon: { name: 'sun.min.fill', color: '#3a86ff', }, + needLoading: false, + default: this.currentTemperatureDayColor(), + }, + { + name: 'currentTemperatureNightColor', + label: '温度文字深色颜色', + type: 'color', + icon: { name: 'moon.fill', color: '#3a0ca3', }, + needLoading: false, + default: this.currentTemperatureNightColor(), + }, + ], + }, + ] + }, + ], + // cell类型的item点击回调 + onItemClick: async (item) => { + let widgetSetting = this.readWidgetSetting(); + let insertDesc; + switch (item.name) { + case 'quickStart': + break; + } + // 写入更新配置 + this.writeWidgetSetting(widgetSetting); + return { + desc: { value: insertDesc }, + }; + }, + }; + } + + async render({ widgetSetting, family }) { + //================================= + const { temperature, lineCharImg, weatherIcoList, labels } = await this.loadWeatherStack(); + //================================= + const widget = new ListWidget(); + widget.setPadding(0, 0, 0, 0); + let textWidget; + //================================= + const fullDateText = await this.loadDateStack(); + let topStack = widget.addStack(); + topStack.layoutHorizontally(); + topStack.centerAlignContent(); + topStack.addSpacer(20); + textWidget = topStack.addText(fullDateText); + textWidget.textColor = this.dynamicColor(this.dateFontDayColor(), this.dateFontNightColor()); + textWidget.font = Font.semiboldSystemFont(12); + topStack.addSpacer(); + // + textWidget = topStack.addText(`${temperature}°`); + textWidget.textColor = this.dynamicColor(this.currentTemperatureDayColor(), this.currentTemperatureNightColor()); + textWidget.font = Font.semiboldSystemFont(18); + topStack.addSpacer(20); + + // + const lineCharStack = widget.addStack(); + lineCharStack.size = new Size(0, this.defaultPreference.lineHeight); + lineCharStack.addImage(lineCharImg); + + // + const weatherIconStack = widget.addStack(); + weatherIconStack.layoutHorizontally(); + weatherIconStack.addSpacer(); + const icoSize = new Size(18, 18); + for (const icoImg of weatherIcoList) { + let imgStack = weatherIconStack.addImage(icoImg); + imgStack.imageSize = icoSize; + weatherIconStack.addSpacer(); + } + + // + widget.addSpacer(4) + const weatherTimeStack = widget.addStack(); + weatherTimeStack.layoutHorizontally(); + weatherTimeStack.addSpacer(); + for (const label of labels) { + textWidget = weatherTimeStack.addText(label); + textWidget.textColor = this.dynamicColor(this.dateFontDayColor(), this.dateFontNightColor()); + textWidget.font = Font.semiboldSystemFont(11); + weatherTimeStack.addSpacer(); + } + + //--------------------------------- + //================================= + return widget; + } + + /** + * + * @param {Array} labels X轴标签数组 + * @param {Array} datas 温度数组 + * @param {Number} lineHeight 图高 + * @param {Array} gradientColorArr 渐变色数组 + */ + async renderLineChar(labels, datas, lineHeight = this.defaultPreference.lineHeight, gradientColorArr = ['#FFFFFF', '#FEC163', '#DE4313']) { + const temperatureColor = Device.isUsingDarkAppearance() ? this.currentTemperatureNightColor() : this.currentTemperatureDayColor(); + const chartStr = ` + { + 'type': 'bar', + 'data': { + 'labels': ${JSON.stringify(labels)}, // 数据替换 + 'datasets': [ + { + type: 'line', + backgroundColor: getGradientFillHelper('horizontal', ${JSON.stringify(gradientColorArr)}), + borderColor: getGradientFillHelper('horizontal', ${JSON.stringify(gradientColorArr)}), + 'borderWidth': 2, + pointRadius: 2, + 'fill': false, + 'data': ${JSON.stringify(datas)}, // 折线对应数据 + }, + ], + }, + 'options': { + plugins: { + datalabels: { + display: true, + align: 'top', + color: '${temperatureColor}', // 折线上的数据点对应的文字颜色 + font: { + size: '12' + } + }, + }, + layout: { + padding: { + left: 0, + right: 10, + top: 30, + bottom: 0 + } + }, + 'legend': { + 'display': false, + }, + scales: { + xAxes: [ // X 轴线 + { + gridLines: { + display: false, + color: '#000000', + }, + ticks: { + display: false, + fontColor: '#b598a1', // x轴label文字颜色 + fontSize: '14', + }, + }, + ], + yAxes: [ + { + ticks: { + display: false + }, + gridLines: { + display: false + }, + }, + ], + }, + }, + }` + const { width } = this.getWidgetSize('中号'); + const url = `https://quickchart.io/chart?w=${width}&h=${lineHeight}&f=png&c=${encodeURIComponent(chartStr)}` + return await this.getImageByUrl(url) + } + + loadDateStack = async () => { + // ======================================== + // 获取农历信息 + const lunarInfo = await this.getLunarInfo(); + // ======================================== + const infoLunarText = ` ${lunarInfo.infoLunarText}`; + let holidayText = lunarInfo.holidayText; + holidayText = holidayText ? ` · ${holidayText}` : ''; + return `${this.getDateStr(new Date(), 'M月d日 EEE')}${infoLunarText}${holidayText}`; + } + + loadWeatherStack = async () => { + // ======================================== + // 请求彩云 + const weatherInfo = await this.getWeather(); + // ======================================== + const labels = []; + const temperatureList = []; + const weatherIcoList = []; + const hourlyArr = weatherInfo.hourly; + const daily = weatherInfo.daily; + + if (Number(this.getValueByKey('lineMode')) == 1) { + for (let index = 0; index < hourlyArr.length; index++) { + if (index >= 8) { + break + } + const hourly = hourlyArr[index]; + const timeText = this.getDateStr(new Date(hourly.datetime), "HH"); + labels.push(`${timeText}时`); + temperatureList.push(`${hourly.temperature}`); + // 天气图标 + let icoImg = await this.getImageByUrl(weatherInfo.weatherIcoUrl); + weatherIcoList.push(icoImg); + } + } else { + const temperatureArr = daily.temperature; + for (let index = 0; index < temperatureArr.length; index++) { + const dailyTemperature = temperatureArr[index]; + const dateText = dailyTemperature.date.slice(8, 10); + labels.push(`${dateText}日`); + temperatureList.push(`${Math.round(dailyTemperature.avg)}`); + // 天气图标 + let icoImg = await this.getImageByUrl(weatherInfo.weatherIcoUrl); + weatherIcoList.push(icoImg); + } + } + + let lineCharImg = await this.renderLineChar(labels, temperatureList); + // ======================================== + return { lineCharImg, weatherIcoList, labels, temperature: weatherInfo.temperature }; + } + + // --------------------------NET START-------------------------- + + /** + * 获取彩云天气信息 + * @param {*} dailysteps + * @returns + */ + getWeather = async (dailysteps = 7) => { + const remoteRootPath = this.getRemoteRootPath(); + + // 开启质量 + function airQuality(levelNum) { + // 0-50 优,51-100 良,101-150 轻度污染,151-200 中度污染 + // 201-300 重度污染,>300 严重污染 + if (levelNum >= 0 && levelNum <= 50) { + return "优秀"; + } else if (levelNum >= 51 && levelNum <= 100) { + return "良好"; + } else if (levelNum >= 101 && levelNum <= 150) { + return "轻度"; + } else if (levelNum >= 151 && levelNum <= 200) { + return "中度"; + } else if (levelNum >= 201 && levelNum <= 300) { + return "重度"; + } else { + return "严重"; + } + } + + // 获取天气icon + function getWeatherIco(weatherDesc, keyIndex) { + return { keyIndex, url: `${remoteRootPath}/img/icon/weather${keyIndex}/${weatherDesc}.png` }; + } + + // 获取位置 + let location = await this.getLocation(); + // 彩云api key + const caiyunKey = this.caiyun(); + // 彩云天气api + const url = `https://api.caiyunapp.com/v2.5/${caiyunKey}/${location.longitude},${location.latitude}/weather.json?alert=true&dailysteps=${dailysteps}`; + const weatherJsonData = await this.httpGet(url, { dataSuccess: (res) => res?.status == "ok" }); + // 天气数据 + let weatherInfo = {}; + if (weatherJsonData) { + // 天气突发预警 + let alertWeather = weatherJsonData.result.alert.content; + if (alertWeather.length > 0) { + const alertWeatherTitle = alertWeather[0].title; + console.log(`👉突发的天气预警:${alertWeatherTitle}`); + weatherInfo.alertWeatherTitle = alertWeatherTitle; + } + // 全部温度 + weatherInfo.daily = weatherJsonData.result.daily; + // 温度范围 + const temperatureData = weatherInfo.daily.temperature[0]; + // 最低温度 + const minTemperature = temperatureData.min; + // 最高温度 + const maxTemperature = temperatureData.max; + weatherInfo.minTemperature = Math.round(minTemperature); + weatherInfo.maxTemperature = Math.round(maxTemperature); + // 体感温度 + const bodyFeelingTemperature = weatherJsonData.result.realtime.apparent_temperature; + weatherInfo.bodyFeelingTemperature = Math.floor(bodyFeelingTemperature); + // 显示温度 + const temperature = weatherJsonData.result.realtime.temperature; + weatherInfo.temperature = Math.floor(temperature); + // 天气状况 + let weather = weatherJsonData.result.realtime.skycon; + weatherInfo.weatherIco = weather; + const weatherIcoObj = getWeatherIco(weather, Number(this.getValueByKey('weatherIco', 1))); + this.defaultPreference.weatherIcoSize = (weatherIcoObj.keyIndex == 11 || weatherIcoObj.keyIndex == 12) ? 38 : 30; + weatherInfo.weatherIcoUrl = weatherIcoObj.url; + // 天气描述 + const weatherDesc = weatherJsonData.result.forecast_keypoint; + weatherInfo.weatherDesc = weatherDesc; + console.log("👉 天气预告:" + weatherDesc); + // 降水率 + weatherInfo.probability = weatherJsonData.result.minutely.probability; + // 相对湿度 + const humidity = (Math.floor(weatherJsonData.result.realtime.humidity * 100)) + "%"; + weatherInfo.humidity = humidity; + // 舒适指数 + const comfort = weatherJsonData.result.realtime.life_index.comfort.desc; + weatherInfo.comfort = comfort; + // 紫外线指数 + const ultraviolet = weatherJsonData.result.realtime.life_index.ultraviolet.desc; + weatherInfo.ultraviolet = ultraviolet; + // 空气质量 + const aqi = weatherJsonData.result.realtime.air_quality.aqi.chn; + const aqiInfo = airQuality(aqi); + weatherInfo.aqiInfo = aqiInfo; + // 日出日落 + const astro = weatherJsonData.result.daily.astro[0]; + // 日出 + const sunrise = astro.sunrise.time; + // 日落 + const sunset = astro.sunset.time; + weatherInfo.sunrise = sunrise.toString(); + weatherInfo.sunset = sunset.toString(); + // 小时预告 + let hourlyArr = []; + const hourlyData = weatherJsonData.result.hourly; + const temperatureArr = hourlyData.temperature; + const temperatureSkyconArr = hourlyData.skycon; + for (var i = 0; i < temperatureArr.length; i++) { + let hourlyObj = {}; + hourlyObj.datetime = temperatureArr[i].datetime; + hourlyObj.temperature = Math.round(temperatureArr[i].value); + let weather = temperatureSkyconArr[i].value; + hourlyObj.skycon = `${weather}`; + hourlyArr.push(hourlyObj); + } + weatherInfo.hourly = hourlyArr; + } else { + console.error(`🚫 请求彩云天气出错`); + } + this.logDivider(); + return weatherInfo; + } + + // --------------------------NET END-------------------------- + +} + +await new Widget(Script.name()).run(); + + +// ================================================================================= +// ================================================================================= +async function downloadLSPDependency() { + let fm = FileManager.local(); + const fileName = fm.joinPath(fm.documentsDirectory(), `LSP/${Script.name()}/settings.json`); + const fileExists = fm.fileExists(fileName); + let cacheString = '{}'; + if (fileExists) { + cacheString = fm.readString(fileName); + } + const use_github = JSON.parse(cacheString)['use_github']; + const dependencyURL = `${use_github ? remoteGithubRoot : remoteHomeLandRoot}/_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 || update) { + console.log(`🤖 DEV 开始${update ? '更新' + dependencyLSP : '下载'}依赖~`); + keySave('VERSION', dependencyLSP); + await downloadFile2Scriptable('_LSP', dependencyURL); + } + return; + } + + ////////////////////////////////////////////////////////// + console.log(`----------------------------------------`); + const remoteDependencyExit = fm.fileExists(`${cacheDir}/_LSP.js`); + console.log(`🚀 RELEASE依赖文件${remoteDependencyExit ? '已存在 ✅' : '不存在 🚫'}`); + // ------------------------------ + if (!remoteDependencyExit || update) { // 下载依赖 + // 创建根目录 + if (!fm.fileExists(cacheDir)) { + fm.createDirectory(cacheDir, true); + } + // 下载 + 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 { + console.error('🚫 获取依赖环境脚本失败,请重试!'); + console.log(`----------------------------------------`); + } + } +} + +/** + * 获取保存的文件名 + * @param {*} fileName + * @returns + */ +function getSaveFileName(fileName) { + const hasSuffix = fileName.lastIndexOf(".") + 1; + return !hasSuffix ? `${fileName}.js` : fileName; +}; + +/** + * 保存文件到Scriptable软件目录,app可看到 + * @param {*} fileName + * @param {*} content + * @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; + } +}; + +/** + * 下载js文件到Scriptable软件目录 + * @param {*} moduleName 名称 + * @param {*} url 在线地址 + * @returns + */ +async function downloadFile2Scriptable(moduleName, url) { + const req = new Request(url); + const content = await req.loadString(); + 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 diff --git "a/\345\275\251\344\272\221\346\241\214\351\235\242\345\244\251\346\260\224.js" "b/\345\275\251\344\272\221\346\241\214\351\235\242\345\244\251\346\260\224.js" deleted file mode 100644 index 465ecf4..0000000 --- "a/\345\275\251\344\272\221\346\241\214\351\235\242\345\244\251\346\260\224.js" +++ /dev/null @@ -1,1065 +0,0 @@ -// Variables used by Scriptable. -// This transparent bg was created by Max Zeryck - -/* - ************************************** - * 配置项 - ************************************** - */ - -// 地区 -const locale = "zh_cn" - -// 背景是否是颜色 -const colorMode = false - -// 背景颜色 -const bgColorStr = "#000000" - -// 预览大小【小:Small,中:Medium,大:Large】 -const previewSize = "Medium" - -// 彩云天气的apiKey,自己去免费申请:https://caiyunapp.com -const apiKey = "TAkhjf8d1nlSlspN" - -// 默认的定位信息,定位失败的时候默认读取 -// https://open.caiyunapp.com/File:Adcode-release-2020-06-10.xlsx.zip -// 上述链接查看对应地区的详细经纬度 -let locationData = { - "latitude": undefined, - "longitude": undefined, - "locality": undefined, - "subLocality": undefined -} -// 锁定地区,直接使用上述填写的地址信息不进行定位 -const lockLocation = false - -// 是否需要选择图片背景 -const changePicBg = true - -// 日程显示条数 -const maxSchedules = 2 - -// 提醒事项显示条数 -const maxReminders = 2 - -// 内容区左右边距 -const padding = { - top: 0, - left: 4, - bottom: 0, - right: 4 -} - -// 顶部问候语,英文花样文字:https://beizhedenglong.github.io/weird-fonts/ -const greetingText = { - nightGreeting: "🦉 𝑇𝑖𝑚𝑒 𝑡𝑜 𝑔𝑒𝑡 𝑙𝑎𝑖𝑑~", - morningGreeting: "💫 𝐺𝑜𝑜𝑑 𝑚𝑜𝑟𝑛𝑖𝑛𝑔~", - noonGreeting: "🥳 𝐺𝑜𝑜𝑑 𝑛𝑜𝑜𝑛~", - afternoonGreeting: "🐡 𝐺𝑜𝑜𝑑 𝑎𝑓𝑡𝑒𝑟𝑛𝑜𝑜𝑛~", - eveningGreeting: "🐳 𝐺𝑜𝑜𝑑 𝑒𝑣𝑒𝑛𝑖𝑛𝑔~" -} - -// 天气对应的icon -const weatherIcos = { - CLEAR_DAY: "http://worldweather.wmo.int/images/24a.png", // 晴(白天) CLEAR_DAY - CLEAR_NIGHT: "http://worldweather.wmo.int/images/24b.png", // 晴(夜间) CLEAR_NIGHT - PARTLY_CLOUDY_DAY: "http://worldweather.wmo.int/images/23a.png", // 多云(白天) PARTLY_CLOUDY_DAY - PARTLY_CLOUDY_NIGHT: "http://worldweather.wmo.int/images/23b.png", // 多云(夜间) PARTLY_CLOUDY_NIGHT - CLOUDY: "http://worldweather.wmo.int/images/20.png", // 阴 CLOUDY - LIGHT_HAZE: "http://worldweather.wmo.int/images/17.png", // 轻度雾霾 LIGHT_HAZE - MODERATE_HAZE: "http://worldweather.wmo.int/images/18.png", // 中度雾霾 MODERATE_HAZE - HEAVY_HAZE: "http://worldweather.wmo.int/images/19.png", // 重度雾霾 HEAVY_HAZE - LIGHT_RAIN: "http://worldweather.wmo.int/images/15.png", // 小雨 LIGHT_RAIN - MODERATE_RAIN: "http://worldweather.wmo.int/images/14.png", // 中雨 MODERATE_RAIN - HEAVY_RAIN: "http://worldweather.wmo.int/images/12.png", // 大雨 HEAVY_RAIN - STORM_RAIN: "http://worldweather.wmo.int/images/9.png", // 暴雨 STORM_RAIN - FOG: "http://worldweather.wmo.int/images/16.png", // 雾 FOG - LIGHT_SNOW: "http://worldweather.wmo.int/images/7.png", // 小雪 LIGHT_SNOW - MODERATE_SNOW: "http://worldweather.wmo.int/images/5.png", // 中雪 MODERATE_SNOW - HEAVY_SNOW: "http://worldweather.wmo.int/images/6.png", // 大雪 HEAVY_SNOW - STORM_SNOW: "http://worldweather.wmo.int/images/4.png", // 暴雪 STORM_SNOW - DUST: "http://worldweather.wmo.int/images/1.png", // 浮尘 DUST - SAND: "http://worldweather.wmo.int/images/1.png", // 沙尘 SAND - WIND: "http://worldweather.wmo.int/images/26.png", // 大风 WIND -} - -// 天气信息控制 -const weatherControl = { - HUMIDITY: true, // 是否显示相对湿度 - COMFORT: true, // 是否显示舒适指数 - ULTRAVIOLET: true, // 是否显示紫外线指数 - AQI: true, // 是否显示空气质量指数 - HEIGHT_LOW: true, // 是否显示温度范围 - SUNRISE_SUNSET: true, // 是否显示日出日落时间 - UPDATE_TIME: true, // 是否显示天气更新时间 -} - -// 周标题 -const weekTitle = ['周日', '周一', '周二', '周三', '周四', '周五', '周六'] - -// 默认文字颜色 -const defaultTextColor = new Color("#ffffff") - -////////////////////////////////////////// -// 标题样式 -let textStyle = { - stack: undefined, // 加入到哪个内容栈显示 - topMargin: 0, // 顶部距离 - text: "", // 显示的文字 - lineLimit: 0, // 行数控制,0是全部展示 - font: Font.systemFont(18), // 字体 - textColor: defaultTextColor, // 文字颜色 -} - -// 图片样式 -let imgStyle = { - stack: undefined, // 加入到哪个内容栈显示 - topMargin: 0, // 顶部距离 - img: undefined, // 图片资源 - width: 0, // 宽 - length: 0, // 长 - tintColor: undefined, // 图片渲染颜色 -} -////////////////////////////////////////// - -// 当前日期 -const currentDate = new Date() -// 年份 -const year = currentDate.getFullYear() -// 月份 -const month = currentDate.getMonth() + 1 -// 日期 -const day = currentDate.getDate() -// 小时 -const hour = currentDate.getHours() -// 分钟 -const minute = currentDate.getMinutes() - -/* - **************************************************************************** - **************************************************************************** - **************************************************************************** - */ - - -/********************************************************************/ -/****************************定义小组件****************************/ -/********************************************************************/ -const filename = `${Script.name()}.jpg` -const files = FileManager.local() -const path = files.joinPath(files.documentsDirectory(), filename) -const widget = new ListWidget() - - -/****************************小组件内容START****************************/ -// 彩云天气信息 -const weatherInfo = await getWeather() -// 农历信息 -const lunarInfo = await getLunar() -// 今日诗词 -const poetry = await getPoetry() -// // 日程信息 -const showSchedules = await getSchedules() -// 提醒事项 -// const showReminders = await getReminders() - - -////////////////////////////////////////// -// 内容排版 -let contentStack = widget.addStack() -contentStack.layoutHorizontally() -// 整体内容居中对齐 -contentStack.centerAlignContent() -// 背景 -widget.backgroundColor = new Color(bgColorStr) -////////////////////////////////////////// - - -//////////////////////////////////////////////////////////////////////////////////// -// 左侧内容 -let leftStack = contentStack.addStack() -leftStack.layoutVertically() - -////////////////////////////////////////// -// 问候 -let titleStack = horizontallyCenterStack(leftStack) -// 问候语获取内容 -const greeting = provideGreeting(currentDate) -// 添加显示标题 -addStyleText(titleStack, 0, greeting, 1, Font.systemFont(22), defaultTextColor) - - -////////////////////////////////////////// -// 年月日 -const dateStr = getDateStr(currentDate) -addStyleText(leftStack, 2, dateStr, 1, Font.systemFont(16), new Color("#ffcc99")) - -////////////////////////////////////////// -// 星期几 / 农历日期 -const weekDayColor = new Color("#ffffff", 0.9) -leftStack.addSpacer(2) -let dateStack = horizontallyCenterStack(leftStack) -// 添加显示星期几 -const weekDayTitle = getDayWeekTitle(currentDate) -addStyleText(dateStack, 0, weekDayTitle, 1, Font.systemFont(16), weekDayColor) -dateStack.addSpacer(4) - -// 农历信息 -let infoLunarText = lunarInfo.data.lunar -infoLunarText = infoLunarText.substring(12, infoLunarText.length) -// 添加显示农历 -addStyleText(dateStack, 0, infoLunarText, 1, Font.systemFont(16), weekDayColor) - -// 电池信息 -dateStack.addSpacer(2) -const batteryLevel = Device.batteryLevel() * 100 -const batteryStr = `〓 ${getBatteryLevel()} 〓` -// 添加显示电池具体信息 -addStyleText(dateStack, 0, batteryStr, 1, Font.systemFont(15), weekDayColor) - - -////////////////////////////////////////// -// 天气预警、预告信息 -const weatherAlertInfo = weatherInfo.alertWeatherTitle -let weatherDesc = weatherInfo.weatherDesc -if (weatherAlertInfo != undefined) { - weatherDesc = weatherAlertInfo -} -// 添加显示天气预告信息 -addStyleText(leftStack, 3, weatherDesc, 1, Font.systemFont(12), defaultTextColor) - -////////////////////////////////////////// -// 日程、诗词 -const schedulePoetryColor = new Color("#ffffff", 0.7) -const scheduleSize = showSchedules.length -if (scheduleSize > 0) { - addStyleText(leftStack, 1, "----------------------------------", 1, Font.systemFont(10), schedulePoetryColor) - // 添加日程 - let scheduleIndex = 0 - for (let schedule of showSchedules) { - // 索引值 - scheduleIndex++ - if (scheduleIndex > maxSchedules) { - return - } - - const scheduleStack = horizontallyCenterStack(leftStack) - // 图片 - const img = SFSymbol.named("megaphone").image - // 展示ico - addStyleImg(scheduleStack, 0, img, 12, 12, schedulePoetryColor) - scheduleStack.addSpacer(4) - - // 日程标题 - addStyleText(scheduleStack, 0, schedule.title, 1, Font.systemFont(11), schedulePoetryColor) - - // 开始时间 - const scheduleTimeStack = leftStack.addStack() - scheduleTimeStack.layoutHorizontally() - scheduleTimeStack.addSpacer(17) - // 展示时间 - addStyleText(scheduleTimeStack, 0, schedule.timeText, 1, Font.systemFont(11), schedulePoetryColor) - } -} else { - // 添加今日诗词 - leftStack.addSpacer(8) - const poetryStack = leftStack.addStack() - // 诗词背景 - poetryStack.backgroundColor = new Color("#666", 0.5) - poetryStack.cornerRadius = 4 - poetryStack.layoutVertically() - poetryStack.addSpacer(4) - // - const poetryInfoStack = poetryStack.addStack() - poetryInfoStack.layoutHorizontally() - poetryInfoStack.addSpacer(4) - const poetryInfo = poetry.data - // 添加显示诗词 - const potryContent = `"${poetryInfo.content.substring(0, poetryInfo.content.length - 1)}"` - addStyleText(poetryInfoStack, 0, potryContent, 1, Font.systemFont(11), schedulePoetryColor) - - // 添加作者 - const authStack = poetryStack.addStack() - authStack.layoutHorizontally() - authStack.addSpacer() - // 显示作者 - const authorText = `⊱${poetryInfo.origin.dynasty}·${poetryInfo.origin.author}⊰` - addStyleText(authStack, 0, authorText, 1, Font.systemFont(11), schedulePoetryColor) - authStack.addSpacer(4) - poetryStack.addSpacer(4) -} - -//////////////////////////////////////////////////////////////////////////////////// - - - - -//////////////////////////////////////////////////////////////////////////////////// -// 右侧内容 -contentStack.addSpacer() -let rightStack = contentStack.addStack() -// 写死右侧宽度 -rightStack.size = new Size(110, 0) -rightStack.layoutVertically() -////////////////////////////////////////// - - -////////////////////////////////////////// -// 天气Icon -const weatherStack = alignRightStack(rightStack) -weatherStack.bottomAlignContent() -let weatherImg = await getImage(weatherInfo.weatherIco) -// 显示天气 -addStyleImg(weatherStack, 0, weatherImg, 32, 32) -// 体感温度 -weatherStack.addSpacer(4) -const bodyFeelingTemperature = weatherInfo.bodyFeelingTemperature -addStyleText(weatherStack, 0, `${bodyFeelingTemperature}°C`, 1, Font.boldMonospacedSystemFont(22), defaultTextColor) -////////////////////////////////////////// - -// 相对湿度 -if (weatherControl.HUMIDITY) { - rightStack.addSpacer(4) - const humidityStack = alignRightStack(rightStack) - addStyleText(humidityStack, 0, `相对湿度:${weatherInfo.humidity}`, 1, Font.systemFont(11), defaultTextColor) -} - -////////////////////////////////////////// -// 舒适指数 -if (weatherControl.COMFORT) { - rightStack.addSpacer(1) - const comfortStack = alignRightStack(rightStack) - addStyleText(comfortStack, 0, `舒适指数:${weatherInfo.comfort}`, 1, Font.systemFont(11), defaultTextColor) -} - -////////////////////////////////////////// -// 紫外线指数 -if (weatherControl.ULTRAVIOLET) { - rightStack.addSpacer(1) - const ultravioletStack = alignRightStack(rightStack) - addStyleText(ultravioletStack, 0, `紫外线:${weatherInfo.ultraviolet}`, 1, Font.systemFont(11), defaultTextColor) -} - -////////////////////////////////////////// -// 空气质量 -if (weatherControl.AQI) { - rightStack.addSpacer(1) - const aqiInfoStack = alignRightStack(rightStack) - addStyleText(aqiInfoStack, 8, `空气质量:${weatherInfo.aqiInfo}`, 1, Font.systemFont(11), defaultTextColor) -} - -////////////////////////////////////////// -// 高低温 -if (weatherControl.HEIGHT_LOW) { - const minTemperature = weatherInfo.minTemperature - const maxTemperature = weatherInfo.maxTemperature - // 右对齐 - rightStack.addSpacer(3) - const tempStack = alignRightStack(rightStack) - // 高温 - addStyleText(tempStack, 0, `↑`, 1, Font.systemFont(10), new Color("#ff0000")) - addStyleText(tempStack, 0, `${weatherInfo.maxTemperature}°`, 1, Font.systemFont(10), defaultTextColor) - // 低温 - tempStack.addSpacer(6) - addStyleText(tempStack, 0, `↓`, 1, Font.systemFont(10), new Color("#2bae85")) - addStyleText(tempStack, 0, `${weatherInfo.minTemperature}°`, 1, Font.systemFont(10), defaultTextColor) -} - -////////////////////////////////////////// -// 日出 -if (weatherControl.SUNRISE_SUNSET) { - rightStack.addSpacer(2) - let symbolStack = rightStack.addStack() - symbolStack.layoutHorizontally() - symbolStack.addSpacer() - symbolStack.bottomAlignContent() - // 添加日出icon - let sunriseImg = SFSymbol.named("sunrise.fill").image - addStyleImg(symbolStack, 0, sunriseImg, 15, 15) - symbolStack.addSpacer(4) - // 日出时间 / 样式 - addStyleText(symbolStack, 0, weatherInfo.sunrise, 1, Font.systemFont(10), defaultTextColor) - //***********************// - // 日落 - symbolStack.addSpacer(4) - // 添加日落icon - let sunsetImg = SFSymbol.named("sunset.fill").image - addStyleImg(symbolStack, 0, sunsetImg, 15, 15) - symbolStack.addSpacer(4) - // 日落时间 / 样式 - addStyleText(symbolStack, 0, weatherInfo.sunset, 1, Font.systemFont(10), defaultTextColor) -} - -////////////////////////////////////////// -// 天气更新时间 -if (weatherControl.UPDATE_TIME) { - // 更新时间 - rightStack.addSpacer(2) - const updateTimeStack = alignRightStack(rightStack) - addStyleText(updateTimeStack, 0, `上次更新 → ${num2Str(hour)}:${num2Str(minute)}`, 1, Font.systemFont(8), new Color("#ffffff", 0.8)) -} - -/*****************************小组件内容ENd*****************************/ - -if (!colorMode && !config.runsInWidget && changePicBg) { - // Determine if user has taken the screenshot. - const okTips = "您的小部件背景已准备就绪" - let message = "图片模式支持相册照片&背景透明" - let options = ["图片选择","透明背景"] - let isTransparentMode = await generateAlert(message, options) - if (!isTransparentMode) { - let img = await Photos.fromLibrary() - message = okTips - const resultOptions = ["好的"] - await generateAlert(message, resultOptions) - files.writeImage(path, img) - } else { - message = "以下是【透明背景】生成步骤,如果你没有屏幕截图请退出,并返回主屏幕长按进入编辑模式。滑动到最右边的空白页截图。然后重新运行!" - let exitOptions = ["继续(已有截图)","退出(没有截图)"] - - let shouldExit = await generateAlert(message,exitOptions) - if (shouldExit) return - - // Get screenshot and determine phone size. - let img = await Photos.fromLibrary() - let height = img.size.height - let phone = phoneSizes()[height] - if (!phone) { - message = "您似乎选择了非iPhone屏幕截图的图像,或者不支持您的iPhone。请使用其他图像再试一次!" - await generateAlert(message,["好的!我现在去截图"]) - return - } - - // Prompt for widget size and position. - message = "您想要创建什么尺寸的小部件?" - let sizes = ["小号","中号","大号"] - let size = await generateAlert(message,sizes) - let widgetSize = sizes[size] - - message = "您想它在什么位置?" - message += (height == 1136 ? " (请注意,您的设备仅支持两行小部件,因此中间和底部选项相同。)" : "") - - // Determine image crop based on phone size. - let crop = { w: "", h: "", x: "", y: "" } - if (widgetSize == "小号") { - crop.w = phone.小号 - crop.h = phone.小号 - let positions = ["顶部 左边","顶部 右边","中间 左边","中间 右边","底部 左边","底部 右边"] - let position = await generateAlert(message,positions) - - // Convert the two words into two keys for the phone size dictionary. - let keys = positions[position].split(' ') - crop.y = phone[keys[0]] - crop.x = phone[keys[1]] - - } else if (widgetSize == "中号") { - crop.w = phone.中号 - crop.h = phone.小号 - - // 中号 and 大号 widgets have a fixed x-value. - crop.x = phone.左边 - let positions = ["顶部","中间","底部"] - let position = await generateAlert(message,positions) - let key = positions[position].toLowerCase() - crop.y = phone[key] - - } else if(widgetSize == "大号") { - crop.w = phone.中号 - crop.h = phone.大号 - crop.x = phone.左边 - let positions = ["顶部","底部"] - let position = await generateAlert(message,positions) - - // 大号 widgets at the 底部 have the "中间" y-value. - crop.y = position ? phone.中间 : phone.顶部 - } - - // Crop image and finalize the widget. - let imgCrop = cropImage(img, new Rect(crop.x,crop.y,crop.w,crop.h)) - - message = "您的小部件背景已准备就绪,退出到桌面预览。" - const resultOptions = ["好的"] - await generateAlert(message, resultOptions) - files.writeImage(path, imgCrop) - } - -} - - -//////////////////////////////////////////////////////////////////////////////////// -if (colorMode) { - widget.backgroundColor = new Color(bgColorStr) -} else { - widget.backgroundImage = files.readImage(path) -} -// 设置边距(上,左,下,右) -widget.setPadding(padding.top, padding.left, padding.bottom, padding.right) -// 设置组件 -Script.setWidget(widget) -// 完成脚本 -Script.complete() -// 预览 -if (previewSize == "Large") { - widget.presentLarge() -} else if (previewSize == "Medium") { - widget.presentMedium() -} else { - widget.presentSmall() -} -//////////////////////////////////////////////////////////////////////////////////// - - - - - - -/* - ************************************************************************************ - */ - -// Generate an alert with the provided array of options. -async function generateAlert(message,options) { - let alert = new Alert() - alert.message = message - - for (const option of options) { - alert.addAction(option) - } - - let response = await alert.presentAlert() - return response -} - -// Crop an image into the specified rect. -function cropImage(img,rect) { - let draw = new DrawContext() - draw.size = new Size(rect.width, rect.height) - draw.drawImageAtPoint(img,new Point(-rect.x, -rect.y)) - return draw.getImage() -} - -// Pixel sizes and positions for widgets on all supported phones. -function phoneSizes() { - let phones = { - "2688": { - "小号": 507, - "中号": 1080, - "大号": 1137, - "左边": 81, - "右边": 654, - "顶部": 228, - "中间": 858, - "底部": 1488 - }, - - "1792": { - "小号": 338, - "中号": 720, - "大号": 758, - "左边": 54, - "右边": 436, - "顶部": 160, - "中间": 580, - "底部": 1000 - }, - - "2436": { - "小号": 465, - "中号": 987, - "大号": 1035, - "左边": 69, - "右边": 591, - "顶部": 213, - "中间": 783, - "底部": 1353 - }, - - "2208": { - "小号": 471, - "中号": 1044, - "大号": 1071, - "左边": 99, - "右边": 672, - "顶部": 114, - "中间": 696, - "底部": 1278 - }, - - "1334": { - "小号": 296, - "中号": 642, - "大号": 648, - "左边": 54, - "右边": 400, - "顶部": 60, - "中间": 412, - "底部": 764 - }, - - "1136": { - "小号": 282, - "中号": 584, - "大号": 622, - "左边": 30, - "右边": 332, - "顶部": 59, - "中间": 399, - "底部": 399 - } - } - return phones -} - - -/* - **************************************************************************************************************************** - **************************************************************************************************************************** - **************************************************************************************************************************** - */ - -/* - ************************************** - * 添加一行文本数据显示 - ************************************** - */ -function addStyleText(stack, topMargin, text, lineLimit, font, textColor, width = 0) { - textStyle.stack = stack - textStyle.topMargin = topMargin - textStyle.text = text - textStyle.lineLimit = lineLimit - textStyle.font = font - textStyle.textColor = textColor - addText(textStyle) - textStyle.lineLimit = 0 -} - -function addText(style, width = 0) { - style.stack.size = new Size(width, 0) - style.stack.addSpacer(style.topMargin) - let textSpan = style.stack.addText(style.text + "") - textSpan.font = style.font - textSpan.lineLimit = style.lineLimit - textSpan.textColor = style.textColor -} - - -/* - ************************************** - * 添加图片显示 - ************************************** - */ -function addStyleImg(stack, topMargin, img, width, length, tintColor) { - imgStyle.stack = stack - imgStyle.topMargin = topMargin - imgStyle.img = img - imgStyle.width = width - imgStyle.length = length - imgStyle.tintColor = tintColor - addImg(imgStyle) -} - -function addImg(style) { - const stack = style.stack - stack.addSpacer(style.topMargin) - let imgSpan = stack.addImage(style.img) - imgSpan.imageSize = new Size(style.width, style.length) - const tintColor = style.tintColor - if (tintColor != undefined) { - imgSpan.tintColor = tintColor - } -} - - -/* - ************************************** - * 格式化时间 - ************************************** - */ -function getDateStr(date, formatter = "yyyy年MM月d日") { - let df = new DateFormatter() - df.locale = locale - df.dateFormat = formatter - return df.string(date) -} - -/* - ************************************** - * 按照时间获取问候语 - ************************************** - */ -function provideGreeting(date) { - const hour = date.getHours() - if (hour < 5) { return greetingText.nightGreeting } - if (hour < 11) { return greetingText.morningGreeting } - if (hour > 11 && hour-12 < 1) { return greetingText.noonGreeting } - if (hour-12 < 7) { return greetingText.afternoonGreeting } - if (hour-12 < 10) { return greetingText.eveningGreeting } - return greetingText.nightGreeting -} - - -/* - ************************************** - * 获取彩云天气 - ************************************** - */ -async function getWeather() { - let weatherInfo = {} - const location = await getLocation() - log("定位信息:" + location.locality + "·" + location.subLocality) - // 彩云天气域名 - const DOMAIN = `https://api.caiyunapp.com/v2.5/${apiKey}/${location.longitude},${location.latitude}/weather.json?alert=true` - const weatherJsonData = await getJson(DOMAIN) - if (weatherJsonData.status == "ok") { - log("天气数据请求成功") - // 天气突发预警 - const alertWeatherTitle = weatherJsonData.result.alert.content.title - log("突发的天气预警==>" + alertWeatherTitle) - weatherInfo.alertWeatherTitle = alertWeatherTitle - - // 温度范围 - const temperatureData = weatherJsonData.result.daily.temperature[0] - // 最低温度 - const minTemperature = temperatureData.min - // 最高温度 - const maxTemperature = temperatureData.max - log("温度==>" + minTemperature + "|" + maxTemperature) - weatherInfo.minTemperature = Math.round(minTemperature) - weatherInfo.maxTemperature = Math.round(maxTemperature) - - // 体感温度 - const bodyFeelingTemperature = weatherJsonData.result.realtime.apparent_temperature - log("体感温度==>" + bodyFeelingTemperature) - weatherInfo.bodyFeelingTemperature = Math.round(bodyFeelingTemperature) - - // 天气状况 weatherIcos[weatherIco] - const weather = weatherJsonData.result.realtime.skycon - log("天气状况==>" + weather + "|" + weatherIcos[weather]) - weatherInfo.weatherIco = weatherIcos[weather] - - // 天气描述 - const weatherDesc = weatherJsonData.result.forecast_keypoint - log("天气描述==>" + weatherDesc) - weatherInfo.weatherDesc = weatherDesc - - // 相对湿度 - const humidity = (Math.round(weatherJsonData.result.realtime.humidity * 100)) + "%" - log("相对湿度==>" + weatherJsonData.result.realtime.humidity) - weatherInfo.humidity = humidity - - // 舒适指数 - const comfort = weatherJsonData.result.realtime.life_index.comfort.desc - log("舒适指数==>" + comfort) - weatherInfo.comfort = comfort - - // 紫外线指数 - const ultraviolet = weatherJsonData.result.realtime.life_index.ultraviolet.desc - log("紫外线指数==>" + ultraviolet) - weatherInfo.ultraviolet = ultraviolet - - // 空气质量 - const aqi = weatherJsonData.result.realtime.air_quality.aqi.chn - const aqiInfo = airQuality(aqi) - log("空气质量==>" + aqiInfo) - weatherInfo.aqiInfo = aqiInfo - - // 日出日落 - const astro = weatherJsonData.result.daily.astro[0] - // 日出 - const sunrise = astro.sunrise.time - // 日落 - const sunset = astro.sunset.time - log("日出==>" + sunrise + ",日落==>" + sunset) - weatherInfo.sunrise = sunrise.toString() - weatherInfo.sunset = sunset.toString() - } - - return weatherInfo -} - - -/* - ************************************** - * 获取定位 - ************************************** - */ -async function getLocation() { - if (!lockLocation) { - try { - const location = await Location.current() - const geocode = await Location.reverseGeocode(location.latitude, location.longitude, locale) - locationData.latitude = location.latitude - locationData.longitude = location.longitude - const geo = geocode[0] - // 市 - locationData.locality = geo.locality - // 区 - locationData.subLocality = geo.subLocality - // 街道 - locationData.street = geo.thoroughfare - log("定位信息:latitude=" + location.latitude + ",longitude=" + location.longitude + ",locality=" - + locationData.locality + ",subLocality=" + locationData.subLocality + ",street=" + locationData.street) - } catch(e) { - log("定位出错了," + e.toString()) - } - } - - return locationData -} - - -/* - ************************************** - * 日程筛选 - ************************************** - */ -function shouldShowSchedule(schedule) { - const currentDate = new Date() - // 被取消的日程不用显示 - if (schedule.title.startsWith("Canceled:")) { return false } - // 与当前时间做比较 - let timeInterval = schedule.startDate.getTime() > currentDate.getTime() - // 返回全天跟还没过去的 - return timeInterval || schedule.isAllDay -} - - -/* - ************************************** - * 日程列表 - ************************************** - */ -async function getSchedules() { - let showSchedules = [] - const todaySchedules = await CalendarEvent.today([]) - for (const schedule of todaySchedules) { - if (shouldShowSchedule(schedule)) { - // 日程 - let scheduleObj = {} - // 开始时间 - const startDate = schedule.startDate - // 开始小时 - const startHour = ("0" + startDate.getHours()).slice(-2) - // 开始分钟 - const startMinute = ("0" + startDate.getMinutes()).slice(-2) - - // 结束时间 - const endDate = schedule.endDate - // 结束小时 - const endHour = ("0" + endDate.getHours()).slice(-2) - // 结束分钟 - const endMinute = ("0" + endDate.getMinutes()).slice(-2) - - // 时间安排展示 - let timeText = startHour + ":" + startMinute + "→" + endHour + ":" + endMinute - if (schedule.isAllDay) { - timeText = "全天" - } - - // 构造格式后的日程 - scheduleObj.title = schedule.title - scheduleObj.timeText = timeText - log(">>日程:" + scheduleObj.title + "==>" + timeText) - showSchedules.push(scheduleObj) - } - } - - return showSchedules -} - - -/* - ************************************** - * 提醒事项列表 - ************************************** - */ -async function getReminders() { - let showReminders = [] - const allReminders = await Reminder.all(); - for (const reminder of allReminders) { - if (!reminder.isCompleted) { - let reminderObj = {} - // 构造格式后的提醒事项 - reminderObj.title = reminder.title - reminderObj.dueDate = reminder.dueDate - log(">>提醒事项:" + reminderObj.title + "==>" + reminderObj.dueDate) - showReminders.push(reminder) - } - } - - return showReminders -} - - -/* - ************************************** - * 网络请求get封装 - ************************************** - */ -async function getJson(url) { - const request = new Request(url) - const defaultHeaders = { - "Accept": "*/*", - "Content-Type": "application/json" - } - - request.url = url - request.method = 'GET' - request.headers = defaultHeaders - - const data = await request.loadJSON() - - return data -} - - -/* - ************************************** - * 空气质量指标 - ************************************** - */ -function airQuality(levelNum) { - // 0-50 优,51-100 良,101-150 轻度污染,151-200 中度污染 - // 201-300 重度污染,>300 严重污染 - if (levelNum >= 0 && levelNum <= 50) { - return "优秀" - } else if (levelNum >= 51 && levelNum <= 100) { - return "良好" - } else if (levelNum >= 101 && levelNum <= 150) { - return "轻度" - } else if (levelNum >= 151 && levelNum <= 200) { - return "中度" - } else if (levelNum >= 201 && levelNum <= 300) { - return "重度" - } else { - return "严重" - } -} - - -/* - ************************************** - * 获取电池信息 - ************************************** - */ -function getBatteryLevel() { - const batteryLevel = Device.batteryLevel() - const batteryAscii = `${Math.round(batteryLevel * 100)}%` - log("电池==>" + batteryAscii) - return batteryAscii; -} - - -/* - ************************************** - * 在线获取农历信息 - ************************************** - */ -async function getLunar() { - const request = new Request("https://www.iamwawa.cn/home/nongli/ajax") - const defaultHeaders = { - "Accept": "*/*", - "Content-Type": "application/json" - } - request.method = 'POST' - request.headers = defaultHeaders - request.addParameterToMultipart("type", "solar") - request.addParameterToMultipart("year", year + "") - request.addParameterToMultipart("month", month + "") - request.addParameterToMultipart("day", day + "") - const data = await request.loadJSON() - return data -} - -/* - ************************************** - * 在线获取今日诗词 - ************************************** - */ -async function getPoetry() { - const request = new Request("https://v2.jinrishici.com/sentence") - const defaultHeaders = { - "Accept": "*/*", - "Content-Type": "application/json" - } - request.method = 'GET' - request.headers = defaultHeaders - const data = await request.loadJSON() - log("诗词==>" + data.status) - return data - } - - -/* - ************************************** - * 获取星期几 - ************************************** - */ - function getDayWeekTitle(date) { - return weekTitle[date.getDay()] - } - - -/* - ************************************** - * 右对齐 - ************************************** - */ -function alignRightStack(alignmentStack) { - let returnStack = alignmentStack.addStack() - returnStack.layoutHorizontally() - returnStack.addSpacer() - return returnStack -} - - -/* - ************************************** - * 水平居中 - ************************************** - */ -function horizontallyCenterStack(alignmentStack) { - let returnStack = alignmentStack.addStack() - returnStack.layoutHorizontally() - returnStack.centerAlignContent() - return returnStack -} - - -/* - ************************************** - * 垂直居中 - ************************************** - */ -function verticallyCenterStack(alignmentStack) { - let returnStack = alignmentStack.addStack() - returnStack.layoutVertically() - returnStack.centerAlignContent() - return returnStack -} - - -/* - ************************************** - * 数字加0 - ************************************** - */ -function num2Str(num) { - if (num < 10) { - return `0${num}` - } else { - return `${num}` - } -} - -/* -**************************************************************************** -* 网络请求获取图片 -**************************************************************************** -*/ -async function getImage(url) { - const request = new Request(url) - const data = await request.loadImage() - return data -} diff --git "a/\345\275\251\345\250\203\345\244\251\346\260\224.js" "b/\345\275\251\345\250\203\345\244\251\346\260\224.js" deleted file mode 100644 index 7534f31..0000000 --- "a/\345\275\251\345\250\203\345\244\251\346\260\224.js" +++ /dev/null @@ -1,507 +0,0 @@ -/* - * Enjoyee - * https://github.com/Enjoyee/Scriptable - */ - -// 内容区左右边距 -const padding = { - top: 0, - left: 20, - bottom: 0, - right: 20 -} - - // 彩云天气的apiKey,自己去免费申请:https://caiyunapp.com -const apiKey = "TAkhjf8d1nlSlspN" - -// 锁定地区,直接使用上述填写的地址信息不进行定位 -const lockLocation = false - -// 默认的定位信息,定位失败的时候默认读取 -// https://open.caiyunapp.com/File:Adcode-release-2020-06-10.xlsx.zip -// 上述链接查看对应地区的详细经纬度 -let locationData = { - "latitude": undefined, - "longitude": undefined, - "locality": undefined, - "subLocality": "LSP" -} - -// -const dayBgPng = "d_bg.png" -const nightBgPng = "n_bg.png" -const dayIcPng = "d_ico.png" -const nightIcPng = "n_ico.png" - -// 天气对应的icon -const weatherIcos = { - CLEAR_DAY: "http://a.animedlweb.ga/weather/ico/01d_ico.png", // 晴(白天) CLEAR_DAY - CLEAR_NIGHT: "http://a.animedlweb.ga/weather/ico/01n_ico.png", // 晴(夜间) CLEAR_NIGHT - PARTLY_CLOUDY_DAY: "http://a.animedlweb.ga/weather/ico/03d_ico.png", // 多云(白天) PARTLY_CLOUDY_DAY - PARTLY_CLOUDY_NIGHT: "http://a.animedlweb.ga/weather/ico/03n_ico.png", // 多云(夜间) PARTLY_CLOUDY_NIGHT - CLOUDY: "http://a.animedlweb.ga/weather/ico/04d_ico.png", // 阴 CLOUDY - LIGHT_HAZE: "http://a.animedlweb.ga/weather/ico/50d_ico.png", // 轻度雾霾 LIGHT_HAZE - MODERATE_HAZE: "http://a.animedlweb.ga/weather/ico/50d_ico.png", // 中度雾霾 MODERATE_HAZE - HEAVY_HAZE: "http://a.animedlweb.ga/weather/ico/50d_ico.png", // 重度雾霾 HEAVY_HAZE - LIGHT_RAIN: "http://a.animedlweb.ga/weather/ico/09d_ico.png", // 小雨 LIGHT_RAIN - MODERATE_RAIN: "http://a.animedlweb.ga/weather/ico/10d_ico.png", // 中雨 MODERATE_RAIN - HEAVY_RAIN: "http://a.animedlweb.ga/weather/ico/11d_ico.png", // 大雨 HEAVY_RAIN - STORM_RAIN: "http://a.animedlweb.ga/weather/ico/11d_ico.png", // 暴雨 STORM_RAIN - FOG: "http://a.animedlweb.ga/weather/ico/50d_ico.png", // 雾 FOG - LIGHT_SNOW: "http://a.animedlweb.ga/weather/ico/13d_ico.png", // 小雪 LIGHT_SNOW - MODERATE_SNOW: "http://a.animedlweb.ga/weather/ico/13d_ico.png", // 中雪 MODERATE_SNOW - HEAVY_SNOW: "http://a.animedlweb.ga/weather/ico/13d_ico.png", // 大雪 HEAVY_SNOW - STORM_SNOW: "http://a.animedlweb.ga/weather/ico/13d_ico.png", // 暴雪 STORM_SNOW - DUST: "http://a.animedlweb.ga/weather/ico/50d_ico.png", // 浮尘 DUST - SAND: "http://a.animedlweb.ga/weather/ico/50d_ico.png", // 沙尘 SAND - WIND: "http://a.animedlweb.ga/weather/ico/50d_ico.png", // 大风 WIND -} - -// 天气对应的背景 -const weatherBgs = { - CLEAR_DAY: "http://a.animedlweb.ga/weather/bg/01d_bg.png", // 晴(白天) CLEAR_DAY - CLEAR_NIGHT: "http://a.animedlweb.ga/weather/bg/01n_bg.png", // 晴(夜间) CLEAR_NIGHT - PARTLY_CLOUDY_DAY: "http://a.animedlweb.ga/weather/bg/03d_bg.png", // 多云(白天) PARTLY_CLOUDY_DAY - PARTLY_CLOUDY_NIGHT: "http://a.animedlweb.ga/weather/bg/03n_bg.png", // 多云(夜间) PARTLY_CLOUDY_NIGHT - CLOUDY: "http://a.animedlweb.ga/weather/bg/04d_bg.png", // 阴 CLOUDY - LIGHT_HAZE: "http://a.animedlweb.ga/weather/bg/50d_bg.png", // 轻度雾霾 LIGHT_HAZE - MODERATE_HAZE: "http://a.animedlweb.ga/weather/bg/50d_bg.png", // 中度雾霾 MODERATE_HAZE - HEAVY_HAZE: "http://a.animedlweb.ga/weather/bg/50d_bg.png", // 重度雾霾 HEAVY_HAZE - LIGHT_RAIN: "http://a.animedlweb.ga/weather/bg/09d_bg.png", // 小雨 LIGHT_RAIN - MODERATE_RAIN: "http://a.animedlweb.ga/weather/bg/10d_bg.png", // 中雨 MODERATE_RAIN - HEAVY_RAIN: "http://a.animedlweb.ga/weather/bg/11d_bg.png", // 大雨 HEAVY_RAIN - STORM_RAIN: "http://a.animedlweb.ga/weather/bg/11d_bg.png", // 暴雨 STORM_RAIN - FOG: "http://a.animedlweb.ga/weather/bg/50d_bg.png", // 雾 FOG - LIGHT_SNOW: "http://a.animedlweb.ga/weather/bg/13d_bg.png", // 小雪 LIGHT_SNOW - MODERATE_SNOW: "http://a.animedlweb.ga/weather/bg/13d_bg.png", // 中雪 MODERATE_SNOW - HEAVY_SNOW: "http://a.animedlweb.ga/weather/bg/13d_bg.png", // 大雪 HEAVY_SNOW - STORM_SNOW: "http://a.animedlweb.ga/weather/bg/13d_bg.png", // 暴雪 STORM_SNOW - DUST: "http://a.animedlweb.ga/weather/bg/50d_bg.png", // 浮尘 DUST - SAND: "http://a.animedlweb.ga/weather/bg/50d_bg.png", // 沙尘 SAND - WIND: "http://a.animedlweb.ga/weather/bg/50d_bg.png", // 大风 WIND -} - -// 标题样式定义 -let textStyle = { - stack: undefined, // 加入到哪个内容栈显示 - marginStart: 0, // 开始距离,水平方向的就是左边距离,垂直方向的就是顶部距离 - marginEnd: 0, // 结束距离,水平方向的就是右边距离,垂直方向的就是底部距离 - text: "", // 显示的文字 - width: 0, // 宽 - height: 0, // 长 - lineLimit: 0, // 行数控制,0是全部展示 - font: undefined, // 字体 - textColor: undefined, // 文字颜色 -} - -// 图片样式定义 -let imgStyle = { - stack: undefined, // 加入到哪个内容栈显示 - marginStart: 0, // 开始距离,水平方向的就是左边距离,垂直方向的就是顶部距离 - marginEnd: 0, // 结束距离,水平方向的就是右边距离,垂直方向的就是底部距离 - img: undefined, // 图片资源 - width: 0, // 宽 - height: 0, // 长 - tintColor: undefined, // 图片渲染颜色 -} - - -////////////////////////////////////// -// 组件Start -const widget = new ListWidget() -const contentStack = widget.addStack() -contentStack.layoutVertically() -// 当前日期 -const currentDate = new Date() -// 年份 -const year = currentDate.getFullYear() -// 月份 -const month = currentDate.getMonth() + 1 -// 日期 -const day = currentDate.getDate() -// 小时 -const hour = currentDate.getHours() -////////////////////////////////////// - -// 获取天气 -const weatherInfo = await getWeather() -// 农历信息 -const lunarInfo = await getLunar() - -// 白天夜晚转换 -const timeHour = hour - 12 -let weatherIco = weatherInfo.weatherIco -let weatherBg = weatherInfo.weatherBg -if (timeHour >= 7) { - weatherBg = weatherBg.replace(dayBgPng, nightBgPng) - weatherIco = weatherIco.replace(dayIcPng, nightIcPng) -} - -// 右上角天气icon -contentStack.addSpacer(16) -const weatherIcoStack = contentStack.addStack() -weatherIcoStack.layoutHorizontally() -weatherIcoStack.addSpacer() -weatherIcoStack.setPadding(0, 0, -8, 0) -imgStyle.stack = weatherIcoStack -const weatherImg = await getImage(weatherIco) -imgStyle.img = weatherImg -imgStyle.width = 60 -imgStyle.height = 60 -addStyleImg() - -// otherInfo -let formatter = new DateFormatter() -formatter.locale = "en" -formatter.dateFormat = "MMMM dd" -let dateString = formatter.string(currentDate) - -const otherStack = contentStack.addStack() -otherStack.layoutVertically() -// 日期 -let infoLunarText = lunarInfo.data.lunar -infoLunarText = infoLunarText.substring(12, infoLunarText.length) -textStyle.stack = otherStack -textStyle.text = `${dateString} ${infoLunarText}` -textStyle.font = Font.systemFont(14) -textStyle.textColor = new Color("ffffff", 0.8) -addStyleText() -// 温度 -textStyle.stack = otherStack -textStyle.text = `${weatherInfo.temperature}°C` -textStyle.font = Font.systemFont(32) -textStyle.textColor = new Color("ffffff", 0.9) -addStyleText() -// 体感温度 -textStyle.stack = otherStack -textStyle.text = `Feels like ${weatherInfo.bodyFeelingTemperature}°C, ${weatherInfo.weather}` -textStyle.font = Font.systemFont(14) -textStyle.textColor = new Color("ffffff", 0.8) -addStyleText() -// 地区 -textStyle.stack = otherStack -textStyle.marginStart = 2 -textStyle.text = `${locationData.locality} の ${locationData.subLocality}` -textStyle.font = Font.systemFont(11) -textStyle.textColor = new Color("ffffff", 0.8) -addStyleText() -// -contentStack.addSpacer() - - - -////////////////////////////////////// -// 组件End -// 设置小组件的背景 -const bgImg = await getImage(weatherBg) -widget.backgroundImage = bgImg -// 设置边距(上,左,下,右) -widget.setPadding(padding.top, padding.left, padding.bottom, padding.right) -// 设置组件 -Script.setWidget(widget) -// 完成脚本 -Script.complete() -// 预览 -widget.presentLarge() -////////////////////////////////////// - - - -/* - ************************************** - * 获取彩云天气 - ************************************** - */ -async function getWeather() { - let weatherInfo = {} - const location = await getLocation() - log("定位信息:" + location.locality + "·" + location.subLocality) - // 彩云天气域名 - const DOMAIN = `https://api.caiyunapp.com/v2.5/${apiKey}/${location.longitude},${location.latitude}/weather.json?alert=true` - const weatherJsonData = await getJson(DOMAIN) - if (weatherJsonData.status == "ok") { - log("天气数据请求成功") - // 天气突发预警 - const alertWeatherTitle = weatherJsonData.result.alert.content.title - log("突发的天气预警==>" + alertWeatherTitle) - weatherInfo.alertWeatherTitle = alertWeatherTitle - - // 温度范围 - const temperatureData = weatherJsonData.result.daily.temperature[0] - // 最低温度 - const minTemperature = temperatureData.min - // 最高温度 - const maxTemperature = temperatureData.max - log("温度==>" + minTemperature + "|" + maxTemperature) - weatherInfo.minTemperature = Math.round(minTemperature) - weatherInfo.maxTemperature = Math.round(maxTemperature) - - // 体感温度 - const bodyFeelingTemperature = weatherJsonData.result.realtime.apparent_temperature - log("体感温度==>" + bodyFeelingTemperature) - weatherInfo.bodyFeelingTemperature = Math.round(bodyFeelingTemperature) - - // 温度 - const temperature = weatherJsonData.result.realtime.temperature - log("温度==>" + temperature) - weatherInfo.temperature = Math.round(temperature) - - // 天气状况 - const weather = weatherJsonData.result.realtime.skycon - log("天气状况==>" + weather) - weatherInfo.weather = weather.replace("PARTLY_", "").toLowerCase().replace(/\_/g," ") - weatherInfo.weatherIco = weatherIcos[weather] - weatherInfo.weatherBg = weatherBgs[weather] - - // 天气描述 - const weatherDesc = weatherJsonData.result.forecast_keypoint - log("天气描述==>" + weatherDesc) - weatherInfo.weatherDesc = weatherDesc - - // 相对湿度 - const humidity = (Math.round(weatherJsonData.result.realtime.humidity * 100)) + "%" - log("相对湿度==>" + weatherJsonData.result.realtime.humidity) - weatherInfo.humidity = humidity - - // 舒适指数 - const comfort = weatherJsonData.result.realtime.life_index.comfort.desc - log("舒适指数==>" + comfort) - weatherInfo.comfort = comfort - - // 紫外线指数 - const ultraviolet = weatherJsonData.result.realtime.life_index.ultraviolet.desc - log("紫外线指数==>" + ultraviolet) - weatherInfo.ultraviolet = ultraviolet - - // 空气质量 - const aqi = weatherJsonData.result.realtime.air_quality.aqi.chn - const aqiInfo = airQuality(aqi) - log("空气质量==>" + aqiInfo) - weatherInfo.aqiInfo = aqiInfo - - // 日出日落 - const astro = weatherJsonData.result.daily.astro[0] - // 日出 - const sunrise = astro.sunrise.time - // 日落 - const sunset = astro.sunset.time - log("日出==>" + sunrise + ",日落==>" + sunset) - weatherInfo.sunrise = sunrise.toString() - weatherInfo.sunset = sunset.toString() - } - - return weatherInfo -} - - -/* - ************************************** - * 空气质量指标 - ************************************** - */ -function airQuality(levelNum) { - // 0-50 优,51-100 良,101-150 轻度污染,151-200 中度污染 - // 201-300 重度污染,>300 严重污染 - if (levelNum >= 0 && levelNum <= 50) { - return "优秀" - } else if (levelNum >= 51 && levelNum <= 100) { - return "良好" - } else if (levelNum >= 101 && levelNum <= 150) { - return "轻度" - } else if (levelNum >= 151 && levelNum <= 200) { - return "中度" - } else if (levelNum >= 201 && levelNum <= 300) { - return "重度" - } else { - return "严重" - } -} - - -/* - ************************************** - * 获取定位 - ************************************** - */ -async function getLocation() { - if (!lockLocation) { - try { - const location = await Location.current() - const geocode = await Location.reverseGeocode(location.latitude, location.longitude, "zh_cn") - locationData.latitude = location.latitude - locationData.longitude = location.longitude - const geo = geocode[0] - // 市 - if (locationData.locality == undefined) { - locationData.locality = geo.locality - } - // 区 - if (locationData.subLocality == undefined) { - locationData.subLocality = geo.subLocality - } - // 街道 - locationData.street = geo.thoroughfare - log("定位信息:latitude=" + location.latitude + ",longitude=" + location.longitude + ",locality=" - + locationData.locality + ",subLocality=" + locationData.subLocality + ",street=" + locationData.street) - } catch (e) { - log("定位出错了," + e.toString()) - } - } - - return locationData -} - - -/* -**************************************************************************** -* 网络请求get封装 -**************************************************************************** -*/ -async function getJson(url) { - const request = new Request(url) - const defaultHeaders = { - "Accept": "*/*", - "Content-Type": "application/json" - } - - request.url = url - request.method = 'GET' - request.headers = defaultHeaders - - const data = await request.loadJSON() - - return data -} - - -/* -**************************************************************************** -* 网络请求获取图片 -**************************************************************************** -*/ -async function getImage(url) { - const request = new Request(url) - const image = await request.loadImage() - return image -} - - -/* - ************************************** - * 在线获取农历信息 - ************************************** - */ -async function getLunar() { - const request = new Request("https://www.iamwawa.cn/home/nongli/ajax") - const defaultHeaders = { - "Accept": "*/*", - "Content-Type": "application/json" - } - request.method = 'POST' - request.headers = defaultHeaders - request.addParameterToMultipart("type", "solar") - request.addParameterToMultipart("year", year + "") - request.addParameterToMultipart("month", month + "") - request.addParameterToMultipart("day", day + "") - const data = await request.loadJSON() - return data -} - - -/* -**************************************************************************** -* 重置文本样式 -**************************************************************************** -*/ -function resetTextStyle() { - textStyle.stack = undefined // 加入到哪个内容栈显示 - textStyle.marginStart = 0 - textStyle.marginEnd = 0 - textStyle.text = "" // 显示的文字 - textStyle.width = 0 // 宽 - textStyle.height = 0 // 长 - textStyle.lineLimit = 0 // 行数控制,0是全部展示 - textStyle.font = undefined // 字体 - textStyle.textColor = undefined // 文字颜色 -} - - -/* -**************************************************************************** -* 重置图片样式 -**************************************************************************** -*/ -function resetImgStyle() { - imgStyle.stack = undefined // 加入到哪个内容栈显示 - textStyle.marginStart = 0 - textStyle.marginEnd = 0 - imgStyle.img = undefined // 图片资源 - imgStyle.width = 0 // 宽 - imgStyle.height = 0 // 长 - imgStyle.tintColor = undefined // 图片渲染颜色 -} - - -/* -**************************************************************************** -* 添加一行文本数据进行显示 -**************************************************************************** -*/ -function addStyleText() { - const contentStack = textStyle.stack - if (contentStack == undefined) { - return - } - - const marginStart = textStyle.marginStart - if (marginStart != undefined && marginStart != 0) { - contentStack.addSpacer(marginStart) - } - - const textSpan = contentStack.addText(`${textStyle.text}`) - contentStack.size = new Size(textStyle.width, textStyle.height) - textSpan.lineLimit = textStyle.lineLimit - textSpan.font = textStyle.font - textSpan.textColor = textStyle.textColor - - const marginEnd = textStyle.marginEnd - if (marginStart != undefined && marginStart != 0) { - contentStack.addSpacer(marginEnd) - } - - // 重置样式 - resetTextStyle() -} - - -/* -**************************************************************************** -* 添加图片进行显示 -**************************************************************************** -*/ -function addStyleImg() { - const contentStack = imgStyle.stack - if (contentStack == undefined) { - return - } - - const marginStart = textStyle.marginStart - if (marginStart != undefined && marginStart != 0) { - contentStack.addSpacer(marginStart) - } - - const imgSpan = contentStack.addImage(imgStyle.img) - imgSpan.imageSize = new Size(imgStyle.width, imgStyle.height) - const tintColor = imgStyle.tintColor - if (tintColor != undefined) { - imgSpan.tintColor = tintColor - } - - const marginEnd = textStyle.marginEnd - if (marginStart != undefined && marginStart != 0) { - contentStack.addSpacer(marginEnd) - } - - // 重置样式 - resetImgStyle() -} diff --git "a/\346\227\245\345\216\206\344\270\255\347\273\204\344\273\266.js" "b/\346\227\245\345\216\206\344\270\255\347\273\204\344\273\266.js" deleted file mode 100644 index 44ec9bb..0000000 --- "a/\346\227\245\345\216\206\344\270\255\347\273\204\344\273\266.js" +++ /dev/null @@ -1,571 +0,0 @@ -// Variables used by Scriptable. -// This transparent bg was created by Max Zeryck - - -/********************************************************************/ -/****************************定义小组件****************************/ -/********************************************************************/ -const filename = Script.name() + ".jpg" -const files = FileManager.local() -const path = files.joinPath(files.documentsDirectory(), filename) - -////////////////////////////////////////////////////////// -// 背景是否是颜色 -const colorMode = true -// 背景颜色 -const bgColorStr = "#ffffff" - -// 周标题 -const weekTitle = ['🙄 周日', '😪 周一', '😩 周二', '🤨 周三', '🤓 周四', '🤩 周五', '🥳 周六'] - -// 日期文字大小 -const dayFont = Font.ultraLightMonospacedSystemFont(12) -// 日期文字颜色 -const dayColor = new Color('#000') -// 今天日期文字颜色 -const currDayColor = new Color('#ff0000') -// 非本月日期文字颜色 -const nonDayColor = new Color('#000', 0) - -// 日期 -const thisDate = new Date() -// 年份 -const year = thisDate.getFullYear() -// 月份 -const month = thisDate.getMonth() + 1 -// 日期 -const currDay = thisDate.getDate() -// 格式化日期 -const yearMonthText = year + "-" + numFormatStr(month) - -////////////////////////////////////////////////////////// -if (config.runsInWidget || colorMode) { - /****************************小组件内容START****************************/ - // 上一个月的年份 - let preMonthYear - // 上个月份 - let preMonth - if (month == 1) { - preMonthYear = year - 1 - preMonth = 12 - } else { - preMonthYear = year - preMonth = month - 1 - } - // 上个月有多少天 - const preMonthDays = getDays(preMonthYear, preMonth) - // 当前月份有多少天 - const currMonthDays = getDays(year, month) - // 当前月份1号是星期几 - const currMonthFirstDay = getFirstDayWeek(year, month) - // 开始日期数字 - const startNum = preMonthDays - currMonthFirstDay + 1 - // 日历总数字 - var totalDays = currMonthDays + preMonthDays - // 总日期数字 - var totalNumArr = [] - for (var index = startNum; index <= totalDays; index++) { - totalNumArr.push(index) - } - - - ////////////////////////////////////////////////////////// - // 创建列表 - let widget = new ListWidget() - - // 内容排版 - let contentStack = widget.addStack() - contentStack.layoutHorizontally() - contentStack.addSpacer() - - // 左侧内容 - let leftStack = contentStack.addStack() - leftStack.layoutVertically() - leftStack.addSpacer() - // 日期 - let monthText = leftStack.addText(numFormatStr(month) + "月" + currDay + "日") - monthText.font = Font.systemFont(18) - monthText.textColor = new Color('#000') - monthText.leftAlignText() - // 星期几 - leftStack.addSpacer(8) - let currWeekDayText = leftStack.addText(getCurrDayWeekTitle() + " ☞☞") - currWeekDayText.font = Font.systemFont(14) - currWeekDayText.textColor = new Color('#ff0000') - currWeekDayText.leftAlignText() - // 农历信息 - leftStack.addSpacer(8) - let lunarInfo = await getLunar() - let infoLunarText = lunarInfo.data.lunar - let infoSolarText = lunarInfo.data.solar - infoLunarText = infoLunarText.substring(12, infoLunarText.length) - let constellationText = lunarInfo.data.constellation - let lunarText = leftStack.addText(infoLunarText) - lunarText.font = Font.systemFont(18) - lunarText.textColor = new Color('#000') - lunarText.leftAlignText() - - // 间隔 - leftStack.addSpacer() - contentStack.addSpacer() - - // 日期填充 - let dayColumnArr1 = [] - let dayColumnArr2 = [] - let dayColumnArr3 = [] - let dayColumnArr4 = [] - let dayColumnArr5 = [] - let dayColumnArr6 = [] - let dayColumnArr7 = [] - - // 日期行数 - var rowSize = Math.round(totalDays / 7) - for (var index = 0; index < totalDays; index=index+7) { - var size = index - dayColumnArr1.push(totalNumArr[size]) - - var size1 = size + 1 - if (size1 < totalDays) { - dayColumnArr2.push(totalNumArr[size1]) - } - - var size2 = size + 2 - if (size2 < totalDays) { - dayColumnArr3.push(totalNumArr[size2]) - } - - var size3 = size + 3 - if (size3 < totalDays) { - dayColumnArr4.push(totalNumArr[size3]) - } - - var size4 = size + 4 - if (size4 < totalDays) { - dayColumnArr5.push(totalNumArr[size4]) - } - - var size5 = size + 5 - if (size5 < totalDays) { - dayColumnArr6.push(totalNumArr[size5]) - } - - var size6 = size + 6 - if (size6 < totalDays) { - dayColumnArr7.push(totalNumArr[size6]) - } - } - - // 行间距 - const columnSpacer = 10 - // 列间距 - const rowSpacer = 8 - // 周日标题 - let weekColumn1 = contentStack.addStack() - weekColumn1.layoutVertically() - weekColumn1.addSpacer() - // 第一列日期 - for (var index = 0; index < dayColumnArr1.length; index++) { - let day = dayColumnArr1[index] - let color = dayColor - if (day > preMonthDays) { - day = day - preMonthDays - } else { - color = nonDayColor - } - createDayColumn(weekColumn1, day, dayFont, color, columnSpacer) - } - weekColumn1.addSpacer() - contentStack.addSpacer(rowSpacer) - - // 周一标题 - let weekColumn2 = contentStack.addStack() - weekColumn2.layoutVertically() - weekColumn2.addSpacer() - // 第二列日期 - for (var index = 0; index < dayColumnArr2.length; index++) { - let day = dayColumnArr2[index] - let color = dayColor - if (day > preMonthDays) { - day = day - preMonthDays - } else { - color = nonDayColor - } - createDayColumn(weekColumn2, day, dayFont, color, columnSpacer) - } - weekColumn2.addSpacer() - contentStack.addSpacer(rowSpacer) - - // 周二标题 - let weekColumn3 = contentStack.addStack() - weekColumn3.layoutVertically() - weekColumn3.addSpacer() - // 第三列日期 - for (var index = 0; index < dayColumnArr3.length; index++) { - let day = dayColumnArr3[index] - let color = dayColor - if (day > preMonthDays) { - day = day - preMonthDays - } else { - color = nonDayColor - } - createDayColumn(weekColumn3, day, dayFont, color, columnSpacer) - } - weekColumn3.addSpacer() - contentStack.addSpacer(rowSpacer) - - // 周三标题 - let weekColumn4 = contentStack.addStack() - weekColumn4.layoutVertically() - weekColumn4.addSpacer() - // 第四列日期 - for (var index = 0; index < dayColumnArr4.length; index++) { - let day = dayColumnArr4[index] - let color = dayColor - if (day > preMonthDays) { - day = day - preMonthDays - } else { - color = nonDayColor - } - createDayColumn(weekColumn4, day, dayFont, color, columnSpacer) - } - weekColumn4.addSpacer() - contentStack.addSpacer(rowSpacer) - - // 周四标题 - let weekColumn5 = contentStack.addStack() - weekColumn5.layoutVertically() - weekColumn5.addSpacer() - // 第五列日期 - for (var index = 0; index < dayColumnArr5.length; index++) { - let day = dayColumnArr5[index] - let color = dayColor - if (day > preMonthDays) { - day = day - preMonthDays - } else { - color = nonDayColor - } - createDayColumn(weekColumn5, day, dayFont, color, columnSpacer) - } - weekColumn5.addSpacer() - contentStack.addSpacer(rowSpacer) - - // 周五标题 - let weekColumn6 = contentStack.addStack() - weekColumn6.layoutVertically() - weekColumn6.addSpacer() - // 第六列日期 - for (var index = 0; index < dayColumnArr6.length; index++) { - let day = dayColumnArr6[index] - let color = dayColor - if (day > preMonthDays) { - day = day - preMonthDays - } else { - color = nonDayColor - } - createDayColumn(weekColumn6, day, dayFont, color, columnSpacer) - } - weekColumn6.addSpacer() - contentStack.addSpacer(rowSpacer) - - // 周六标题 - let weekColumn7 = contentStack.addStack() - weekColumn7.layoutVertically() - weekColumn7.addSpacer() - // 第七列日期 - for (var index = 0; index < dayColumnArr7.length; index++) { - let day = dayColumnArr7[index] - let color = dayColor - if (day > preMonthDays) { - day = day - preMonthDays - } else { - color = nonDayColor - } - createDayColumn(weekColumn7, day, dayFont, color, columnSpacer) - } - weekColumn7.addSpacer() - - - ////////////////////////////////////////////////////////// - if (colorMode) { - widget.backgroundColor = new Color(bgColorStr) - } else { - widget.backgroundImage = files.readImage(path) - } - contentStack.addSpacer() - widget.setPadding(0, 4, 0, 4) - Script.setWidget(widget) - Script.complete() - // 预览中等尺寸 - widget.presentMedium() - /*****************************小组件内容ENd*****************************/ - -} else if(!colorMode) { - // Determine if user has taken the screenshot. - var message - message = "图片模式支持相册随意照片&背景透明" - let options = ["图片选择","透明背景"] - let isTransparentMode = await generateAlert(message, options) - if (!isTransparentMode) { - let img = await Photos.fromLibrary() - message = "您的小部件背景已准备就绪" - const resultOptions = ["好的"] - await generateAlert(message, resultOptions) - files.writeImage(path, img) - } else { - message = "透明模式开始之前,请返回主屏幕并长按进入编辑模式。滑动到最右边的空白页并截图。" - let exitOptions = ["继续","退出以截图"] - let shouldExit = await generateAlert(message,exitOptions) - if (shouldExit) return - - // Get screenshot and determine phone size. - let img = await Photos.fromLibrary() - let height = img.size.height - let phone = phoneSizes()[height] - if (!phone) { - message = "您似乎选择了非iPhone屏幕截图的图像,或者不支持您的iPhone。请使用其他图像再试一次。" - await generateAlert(message,["好的"]) - return - } - - // Prompt for widget size and position. - message = "您想要创建什么尺寸的小部件?" - let sizes = ["Small","Medium","Large"] - let size = await generateAlert(message,sizes) - let widgetSize = sizes[size] - - message = "您想它在什么位置?" - message += (height == 1136 ? " (请注意,您的设备仅支持两行小部件,因此中间和底部选项相同。)" : "") - - // Determine image crop based on phone size. - let crop = { w: "", h: "", x: "", y: "" } - if (widgetSize == "Small") { - crop.w = phone.small - crop.h = phone.small - let positions = ["Top left","Top right","Middle left","Middle right","Bottom left","Bottom right"] - let position = await generateAlert(message,positions) - - // Convert the two words into two keys for the phone size dictionary. - let keys = positions[position].toLowerCase().split(' ') - crop.y = phone[keys[0]] - crop.x = phone[keys[1]] - - } else if (widgetSize == "Medium") { - crop.w = phone.medium - crop.h = phone.small - - // Medium and large widgets have a fixed x-value. - crop.x = phone.left - let positions = ["Top","Middle","Bottom"] - let position = await generateAlert(message,positions) - let key = positions[position].toLowerCase() - crop.y = phone[key] - - } else if(widgetSize == "Large") { - crop.w = phone.medium - crop.h = phone.large - crop.x = phone.left - let positions = ["Top","Bottom"] - let position = await generateAlert(message,positions) - - // Large widgets at the bottom have the "middle" y-value. - crop.y = position ? phone.middle : phone.top - } - - // Crop image and finalize the widget. - let imgCrop = cropImage(img, new Rect(crop.x,crop.y,crop.w,crop.h)) - - message = "您的小部件背景已准备就绪" - const resultOptions = ["好的"] - await generateAlert(message, resultOptions) - files.writeImage(path, imgCrop) - } - - Script.complete() -} - -/* - ************************************************************************************ - */ - -// Generate an alert with the provided array of options. -async function generateAlert(message,options) { - - let alert = new Alert() - alert.message = message - - for (const option of options) { - alert.addAction(option) - } - - let response = await alert.presentAlert() - return response -} - -// Crop an image into the specified rect. -function cropImage(img,rect) { - - let draw = new DrawContext() - draw.size = new Size(rect.width, rect.height) - - draw.drawImageAtPoint(img,new Point(-rect.x, -rect.y)) - return draw.getImage() -} - -// Pixel sizes and positions for widgets on all supported phones. -function phoneSizes() { - let phones = { - "2688": { - "small": 507, - "medium": 1080, - "large": 1137, - "left": 81, - "right": 654, - "top": 228, - "middle": 858, - "bottom": 1488 - }, - - "1792": { - "small": 338, - "medium": 720, - "large": 758, - "left": 54, - "right": 436, - "top": 160, - "middle": 580, - "bottom": 1000 - }, - - "2436": { - "small": 465, - "medium": 987, - "large": 1035, - "left": 69, - "right": 591, - "top": 213, - "middle": 783, - "bottom": 1353 - }, - - "2208": { - "small": 471, - "medium": 1044, - "large": 1071, - "left": 99, - "right": 672, - "top": 114, - "middle": 696, - "bottom": 1278 - }, - - "1334": { - "small": 296, - "medium": 642, - "large": 648, - "left": 54, - "right": 400, - "top": 60, - "middle": 412, - "bottom": 764 - }, - - "1136": { - "small": 282, - "medium": 584, - "large": 622, - "left": 30, - "right": 332, - "top": 59, - "middle": 399, - "bottom": 399 - } - } - return phones -} - -/* - ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ - */ - /* - * 创建行 - ================================================ - */ -function createDayColumn(stack, day, font, color, spacer) { - if (day == undefined) return - let dayText = stack.addText(day.toString()) - dayText.font = font - let textColor = color - if (day == currDay) { - textColor = currDayColor - } - dayText.textColor = textColor - dayText.shadowColor = textColor - dayText.shadowOffset = new Point(1,1) - dayText.shadowRadius = 1 - dayText.rightAlignText() - stack.addSpacer(spacer) -} - -/* - * 数字格式化 - ================================================ - */ -function numFormatStr(num) { - if (num > 0 && num < 10) { - return `0${num}` - } else { - return `${num}` - } -} - -/* - * 获取月份有多少天 - ================================================ - */ - function getDays(year, month) { - var date = new Date(year, month, 0) - return date.getDate() - } - -/* - * 获取指定月份的1号是星期几(0~6) - ================================================ - */ - function getFirstDayWeek(year, month) { - var date = new Date(year, month - 1) - return date.getDay() - } - -/* - * 获取今天是星期几 - ================================================ - */ - function getCurrDayWeekTitle() { - var date = new Date() - return weekTitle[date.getDay()] - } - -/* - * 在线获取农历信息 - ================================================ - */ -async function getLunar() { - const request = new Request("https://www.iamwawa.cn/home/nongli/ajax") - const defaultHeaders = { - "Accept": "*/*", - "Content-Type": "application/json" - } - - request.method = 'POST' - request.headers = defaultHeaders - - request.addParameterToMultipart("type", "solar") - request.addParameterToMultipart("year", year + "") - request.addParameterToMultipart("month", month + "") - request.addParameterToMultipart("day", currDay + "") - - const data = await request.loadJSON() - log(data) - - return data -} \ No newline at end of file diff --git "a/\346\227\245\345\216\206\345\244\251\346\260\224.js" "b/\346\227\245\345\216\206\345\244\251\346\260\224.js" deleted file mode 100644 index 0f8d38c..0000000 --- "a/\346\227\245\345\216\206\345\244\251\346\260\224.js" +++ /dev/null @@ -1,813 +0,0 @@ -/* - * Enjoyee - * https://github.com/Enjoyee/Scriptable - */ - -// 是否暗黑模式 -const darkMode = "false" -let widgetInputRAW = args.widgetParameter -try { - widgetInputRAW.toString() -} catch(e) { - // 默认值白色 - widgetInputRAW = darkMode -} -// 获取外部输入 -let inputArr = widgetInputRAW.toString() -if (inputArr.length == 0) { - inputArr = darkMode -} - -function isDarkMode() { - return inputArr == "true" -} - -const previewSize = "Medium" - -// 小组件背景色 -let bgColor = new Color("e5e6e7") -if (isDarkMode()) { - bgColor = new Color("151517") -} - -// 默认字体 -const defaultFont = Font.systemFont(18) - -// 默认字体颜色 -const defaultTextColor = new Color("ffffff") - -// 内容区左右边距 -const padding = { - top: 0, - left: 0, - bottom: 0, - right: 0 -} - -// 标题样式定义 -let textStyle = { - stack: undefined, // 加入到哪个内容栈显示 - marginStart: 0, // 开始距离,水平方向的就是左边距离,垂直方向的就是顶部距离 - marginEnd: 0, // 结束距离,水平方向的就是右边距离,垂直方向的就是底部距离 - text: "", // 显示的文字 - width: 0, // 宽 - height: 0, // 长 - lineLimit: 0, // 行数控制,0是全部展示 - font: undefined, // 字体 - textColor: defaultTextColor, // 文字颜色 -} - -// 图片样式定义 -let imgStyle = { - stack: undefined, // 加入到哪个内容栈显示 - marginStart: 0, // 开始距离,水平方向的就是左边距离,垂直方向的就是顶部距离 - marginEnd: 0, // 结束距离,水平方向的就是右边距离,垂直方向的就是底部距离 - img: undefined, // 图片资源 - width: 0, // 宽 - height: 0, // 长 - tintColor: undefined, // 图片渲染颜色 -} -//////////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////////// - - - -////////////////////////////////////// -// 组件Start -const filename = `${Script.name()}.jpg` -const files = FileManager.local() -const path = files.joinPath(files.documentsDirectory(), filename) -const widget = new ListWidget() -const contentStack = widget.addStack() -////////////////////////////////////// - - - -/* -**************************************************************************** -↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ -下面添加你自己的组件内容/逻辑 宽度330 高度156 -**************************************************************************** -*/ - -// 彩云天气的apiKey,自己去免费申请:https://caiyunapp.com -const apiKey = "TAkhjf8d1nlSlspN" - -// 锁定地区,直接使用上述填写的地址信息不进行定位 -const lockLocation = false - -// 默认的定位信息,定位失败的时候默认读取 -// https://open.caiyunapp.com/File:Adcode-release-2020-06-10.xlsx.zip -// 上述链接查看对应地区的详细经纬度 -let locationData = { - "latitude": undefined, - "longitude": undefined, - "locality": undefined, - "subLocality": undefined -} -// - -// 天气对应的icon -const weatherIcos = { - CLEAR_DAY: "http://worldweather.wmo.int/images/24a.png", // 晴(白天) CLEAR_DAY - CLEAR_NIGHT: "http://worldweather.wmo.int/images/24b.png", // 晴(夜间) CLEAR_NIGHT - PARTLY_CLOUDY_DAY: "http://worldweather.wmo.int/images/23a.png", // 多云(白天) PARTLY_CLOUDY_DAY - PARTLY_CLOUDY_NIGHT: "http://worldweather.wmo.int/images/23b.png", // 多云(夜间) PARTLY_CLOUDY_NIGHT - CLOUDY: "http://worldweather.wmo.int/images/20.png", // 阴 CLOUDY - LIGHT_HAZE: "http://worldweather.wmo.int/images/17.png", // 轻度雾霾 LIGHT_HAZE - MODERATE_HAZE: "http://worldweather.wmo.int/images/18.png", // 中度雾霾 MODERATE_HAZE - HEAVY_HAZE: "http://worldweather.wmo.int/images/19.png", // 重度雾霾 HEAVY_HAZE - LIGHT_RAIN: "http://worldweather.wmo.int/images/15.png", // 小雨 LIGHT_RAIN - MODERATE_RAIN: "http://worldweather.wmo.int/images/14.png", // 中雨 MODERATE_RAIN - HEAVY_RAIN: "http://worldweather.wmo.int/images/12.png", // 大雨 HEAVY_RAIN - STORM_RAIN: "http://worldweather.wmo.int/images/9.png", // 暴雨 STORM_RAIN - FOG: "http://worldweather.wmo.int/images/16.png", // 雾 FOG - LIGHT_SNOW: "http://worldweather.wmo.int/images/7.png", // 小雪 LIGHT_SNOW - MODERATE_SNOW: "http://worldweather.wmo.int/images/5.png", // 中雪 MODERATE_SNOW - HEAVY_SNOW: "http://worldweather.wmo.int/images/6.png", // 大雪 HEAVY_SNOW - STORM_SNOW: "http://worldweather.wmo.int/images/4.png", // 暴雪 STORM_SNOW - DUST: "http://worldweather.wmo.int/images/1.png", // 浮尘 DUST - SAND: "http://worldweather.wmo.int/images/1.png", // 沙尘 SAND - WIND: "http://worldweather.wmo.int/images/26.png", // 大风 WIND -} - - -//////////////////////////////////////// -const date = new Date() -let formatter = new DateFormatter() -formatter.locale = "en" -formatter.dateFormat = "MMMM" -let monthString = formatter.string(date) -formatter.dateFormat = "EEEE" -const weekString = formatter.string(date) -////////////////////////////////////////// - -////////////////////////////////////////// -const width = 330 - 2 * 10 -const height = 156 - 3 * 10 -const halfWidth = (width - 10) / 2 -const halfHeight = height / 2 -const cornerRadius = 10 -////////////////////////////////////////// - - -//////////////////////////////////////// -contentStack.layoutVertically() -const topStack = contentStack.addStack() -topStack.layoutHorizontally() -// - -// 日期内容 -let dateStackBgColor = new Color("ffffff") -if (isDarkMode()) { - dateStackBgColor = new Color("000000") -} -const dateStack = topStack.addStack() -dateStack.layoutHorizontally() -dateStack.backgroundColor = dateStackBgColor -dateStack.size = new Size(halfWidth, halfHeight) -dateStack.cornerRadius = cornerRadius -// 今天日期 -const numStack = dateStack.addStack() -numStack.layoutVertically() -numStack.addSpacer() -textStyle.stack = numStack -textStyle.text = "TODAY" -textStyle.font = Font.systemFont(10) -textStyle.textColor = new Color("ff0000") -addStyleText() -// 日期 -let numFontColor = new Color("000000") -if (isDarkMode()) { - numFontColor = new Color("ffffff") -} -textStyle.stack = numStack -textStyle.text = `${date.getDate()}` -textStyle.font = Font.systemFont(30) -textStyle.textColor = numFontColor -addStyleText() -numStack.addSpacer() -//////////////////// -// 周几内容 -dateStack.addSpacer(16) -const weekMonthStack = dateStack.addStack() -weekMonthStack.layoutVertically() -weekMonthStack.addSpacer() -// 周几 -let weekFontColor = new Color("000000") -if (isDarkMode()) { - weekFontColor = new Color("ffffff") -} -textStyle.stack = weekMonthStack -textStyle.text = `${weekString}` -textStyle.font = Font.systemFont(10) -textStyle.textColor = weekFontColor -addStyleText() -// 月份对齐 -for (let index = monthString.length; index < 9; index++) { - monthString = " " + monthString -} -weekMonthStack.addSpacer(4) -textStyle.stack = weekMonthStack -textStyle.text = `${monthString}` -let fontSize = Math.floor(11 * 9 / monthString.length) -textStyle.font = Font.systemFont(fontSize) -let monFontColor = new Color("000000", 0.6) -if (isDarkMode()) { - monFontColor = new Color("ffffff", 0.6) -} -textStyle.textColor = monFontColor -addStyleText() -//////////////////////////// -weekMonthStack.addSpacer() -topStack.addSpacer(10) -//////////////////////////// - -//////////////////////////// -// 电池内容 -let batteryStackBgColor = new Color("65c368") -if (isDarkMode()) { - batteryStackBgColor = new Color("223e36") -} -const batteryStack = topStack.addStack() -batteryStack.layoutHorizontally() -batteryStack.backgroundColor = batteryStackBgColor -batteryStack.size = new Size(halfWidth, halfHeight) -batteryStack.cornerRadius = cornerRadius -// 电池 -const batteryInfoStack = batteryStack.addStack() -batteryInfoStack.layoutVertically() -batteryInfoStack.addSpacer() -textStyle.stack = batteryInfoStack -textStyle.text = "Battery" -textStyle.font = Font.systemFont(10) -textStyle.textColor = new Color("ffffff", 0.8) -addStyleText() -// 电池信息 -const batteryLevel = Device.batteryLevel() -const batteryAscii = `${Math.round(batteryLevel * 100)}%` -textStyle.stack = batteryInfoStack -textStyle.text = `${batteryAscii}` -textStyle.font = Font.systemFont(18) -textStyle.textColor = new Color("ffffff", 0.9) -addStyleText() -batteryInfoStack.addSpacer() -////////// -batteryStack.addSpacer(30) -const batteryImgStack = batteryStack.addStack() -batteryImgStack.layoutVertically() -batteryImgStack.addSpacer() -imgStyle.stack = batteryImgStack -let batteryImg = SFSymbol.named("battery.100").image -if (batteryLevel <= 0.5) { - batteryImg = SFSymbol.named("battery.25").image -} -if (Device.isCharging() || Device.isFullyCharged()) { - batteryImg = SFSymbol.named("battery.100.bolt").image -} -imgStyle.img = batteryImg -imgStyle.tintColor = new Color("ffffff") -imgStyle.width = 30 -imgStyle.height = 30 -addStyleImg() -batteryImgStack.addSpacer() - - -//////////////////////////////////////////////// -contentStack.addSpacer(10) -//////////////////////////////////////////////// - -//////////////////////////////////////////////// -// 底部stack -let bottomContentStackBgColor = new Color("ffffff") -if (isDarkMode()) { - bottomContentStackBgColor = new Color("000000") -} -const weatherInfo = await getWeather() -let bottomContentStack = contentStack.addStack() -bottomContentStack.layoutHorizontally() -bottomContentStack.setPadding(0, 10, 0, 10) -bottomContentStack.size = new Size(width, halfHeight) -bottomContentStack.backgroundColor = bottomContentStackBgColor -bottomContentStack.cornerRadius = cornerRadius -bottomContentStack.addSpacer() -// -const bottomStack = bottomContentStack.addStack() -bottomStack.layoutVertically() -bottomStack.addSpacer() -// 天气内容 -const weatherInfoStack = bottomStack.addStack() -weatherInfoStack.layoutHorizontally() -weatherInfoStack.centerAlignContent() -// 天气ico -imgStyle.stack = weatherInfoStack -imgStyle.width = 25 -imgStyle.height = 25 -let img = await getImage(weatherInfo.weather) -imgStyle.img = img -if (date.getHours() - 12 > 6 && isDarkMode()) { - imgStyle.tintColor = new Color("ffffff", 0.8) -} -addStyleImg() -// 天气预告信息 -const weatherAlertInfo = weatherInfo.alertWeatherTitle -let weatherDesc = weatherInfo.weatherDesc -if (weatherAlertInfo != undefined) { - weatherDesc = weatherAlertInfo -} -weatherInfoStack.addSpacer(4) -textStyle.stack = weatherInfoStack -textStyle.text = `${weatherDesc}` -textStyle.font = Font.systemFont(12) -let weatherInfoFontColor = new Color("000000", 0.8) -if (isDarkMode()) { - weatherInfoFontColor = new Color("ffffff", 0.8) -} -textStyle.textColor = weatherInfoFontColor -textStyle.lineLimit = 1 -addStyleText() -weatherInfoStack.addSpacer(4) -////////////////////////// -bottomStack.addSpacer(4) -////////////////////////// -// 日出、日落、体感 -const otherWeatherStack = bottomStack.addStack() -otherWeatherStack.layoutHorizontally() -otherWeatherStack.addSpacer(4) -// 日出ico -imgStyle.stack = otherWeatherStack -imgStyle.width = 15 -imgStyle.height = 15 -img = SFSymbol.named("sunrise.fill").image -imgStyle.img = img -let sunriseTintColor = new Color("000000", 0.6) -if (isDarkMode()) { - sunriseTintColor = new Color("ffffff", 0.6) -} -imgStyle.tintColor = sunriseTintColor -addStyleImg() -// -otherWeatherStack.addSpacer(2) -textStyle.stack = otherWeatherStack -textStyle.text = `${weatherInfo.sunrise} am` -textStyle.font = Font.systemFont(12) -let sunriseFontColor = new Color("000000", 0.6) -if (isDarkMode()) { - sunriseFontColor = new Color("ffffff", 0.6) -} -textStyle.textColor = sunriseFontColor -textStyle.lineLimit = 1 -addStyleText() -// 日落ico -otherWeatherStack.addSpacer(10) -imgStyle.stack = otherWeatherStack -imgStyle.width = 15 -imgStyle.height = 15 -img = SFSymbol.named("sunset.fill").image -imgStyle.img = img -let sunsetTintColor = new Color("000000", 0.6) -if (isDarkMode()) { - sunsetTintColor = new Color("ffffff", 0.6) -} -imgStyle.tintColor = sunsetTintColor -addStyleImg() -// -otherWeatherStack.addSpacer(2) -textStyle.stack = otherWeatherStack -textStyle.text = `${weatherInfo.sunset} pm` -textStyle.font = Font.systemFont(12) -let sunsetFontColor = new Color("000000", 0.6) -if (isDarkMode()) { - sunsetFontColor = new Color("ffffff", 0.6) -} -textStyle.textColor = sunsetFontColor -textStyle.lineLimit = 1 -addStyleText() -// 体感 -otherWeatherStack.addSpacer(10) -// 体感ico -imgStyle.stack = otherWeatherStack -imgStyle.width = 15 -imgStyle.height = 15 -img = await getImage("http://worldweather.wmo.int/images/34.png") -imgStyle.img = img -let feelingTintColor = new Color("000000", 0.6) -if (isDarkMode()) { - feelingTintColor = new Color("ffffff", 0.6) -} -imgStyle.tintColor = feelingTintColor -addStyleImg() -// 体感温度内容 -textStyle.stack = otherWeatherStack -textStyle.text = `${weatherInfo.bodyFeelingTemperature}°C` -textStyle.font = Font.systemFont(12) -let feelingFontColor = new Color("000000", 0.6) -if (isDarkMode()) { - feelingFontColor = new Color("ffffff", 0.6) -} -textStyle.textColor = feelingFontColor -textStyle.lineLimit = 1 -addStyleText() -// -bottomStack.addSpacer() -bottomContentStack.addSpacer() - - -/* - ************************************** - * 获取彩云天气 - ************************************** - */ -async function getWeather() { - let weatherInfo = {} - const location = await getLocation() - log("定位信息:" + location.locality + "·" + location.subLocality) - // 彩云天气域名 - const DOMAIN = `https://api.caiyunapp.com/v2.5/${apiKey}/${location.longitude},${location.latitude}/weather.json?alert=true` - const weatherJsonData = await getJson(DOMAIN) - if (weatherJsonData.status == "ok") { - log("天气数据请求成功") - // 天气突发预警 - const alertWeatherTitle = weatherJsonData.result.alert.content.title - log("突发的天气预警==>" + alertWeatherTitle) - weatherInfo.alertWeatherTitle = alertWeatherTitle - - // 温度范围 - const temperatureData = weatherJsonData.result.daily.temperature[0] - // 最低温度 - const minTemperature = temperatureData.min - // 最高温度 - const maxTemperature = temperatureData.max - log("温度==>" + minTemperature + "|" + maxTemperature) - weatherInfo.minTemperature = Math.round(minTemperature) - weatherInfo.maxTemperature = Math.round(maxTemperature) - - // 体感温度 - const bodyFeelingTemperature = weatherJsonData.result.realtime.apparent_temperature - log("体感温度==>" + bodyFeelingTemperature) - weatherInfo.bodyFeelingTemperature = Math.round(bodyFeelingTemperature) - - // 天气状况 - const weather = weatherJsonData.result.realtime.skycon - log("天气状况==>" + weather) - weatherInfo.weather = weatherIcos[weather] - - // 天气描述 - const weatherDesc = weatherJsonData.result.forecast_keypoint - log("天气描述==>" + weatherDesc) - weatherInfo.weatherDesc = weatherDesc - - // 相对湿度 - const humidity = (Math.round(weatherJsonData.result.realtime.humidity * 100)) + "%" - log("相对湿度==>" + weatherJsonData.result.realtime.humidity) - weatherInfo.humidity = humidity - - // 舒适指数 - const comfort = weatherJsonData.result.realtime.life_index.comfort.desc - log("舒适指数==>" + comfort) - weatherInfo.comfort = comfort - - // 紫外线指数 - const ultraviolet = weatherJsonData.result.realtime.life_index.ultraviolet.desc - log("紫外线指数==>" + ultraviolet) - weatherInfo.ultraviolet = ultraviolet - - // 空气质量 - const aqi = weatherJsonData.result.realtime.air_quality.aqi.chn - const aqiInfo = airQuality(aqi) - log("空气质量==>" + aqiInfo) - weatherInfo.aqiInfo = aqiInfo - - // 日出日落 - const astro = weatherJsonData.result.daily.astro[0] - // 日出 - const sunrise = astro.sunrise.time - // 日落 - const sunset = astro.sunset.time - log("日出==>" + sunrise + ",日落==>" + sunset) - weatherInfo.sunrise = sunrise.toString() - weatherInfo.sunset = sunset.toString() - } - - return weatherInfo -} - - -/* - ************************************** - * 获取定位 - ************************************** - */ -async function getLocation() { - if (!lockLocation) { - try { - const location = await Location.current() - const geocode = await Location.reverseGeocode(location.latitude, location.longitude, "zh_cn") - locationData.latitude = location.latitude - locationData.longitude = location.longitude - const geo = geocode[0] - // 市 - locationData.locality = geo.locality - // 区 - locationData.subLocality = geo.subLocality - // 街道 - locationData.street = geo.thoroughfare - log("定位信息:latitude=" + location.latitude + ",longitude=" + location.longitude + ",locality=" - + locationData.locality + ",subLocality=" + locationData.subLocality + ",street=" + locationData.street) - } catch (e) { - log("定位出错了," + e.toString()) - } - } - - return locationData -} - -/* - ************************************** - * 空气质量指标 - ************************************** - */ -function airQuality(levelNum) { - // 0-50 优,51-100 良,101-150 轻度污染,151-200 中度污染 - // 201-300 重度污染,>300 严重污染 - if (levelNum >= 0 && levelNum <= 50) { - return "优秀" - } else if (levelNum >= 51 && levelNum <= 100) { - return "良好" - } else if (levelNum >= 101 && levelNum <= 150) { - return "轻度" - } else if (levelNum >= 151 && levelNum <= 200) { - return "中度" - } else if (levelNum >= 201 && levelNum <= 300) { - return "重度" - } else { - return "严重" - } -} - -/* -**************************************************************************** -上面添加你自己的组件内容/逻辑 -↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ -**************************************************************************** -*/ - - -////////////////////////////////////// -// 组件End -// 设置小组件的背景 -widget.backgroundColor = bgColor -// 设置边距(上,左,下,右) -widget.setPadding(padding.top, padding.left, padding.bottom, padding.right) -// 设置组件 -Script.setWidget(widget) -// 完成脚本 -Script.complete() -// 预览 -widget.presentMedium() -////////////////////////////////////// - -/* -**************************************************************************** -* 重置文本样式 -**************************************************************************** -*/ -function resetTextStyle() { - textStyle.stack = undefined // 加入到哪个内容栈显示 - textStyle.marginStart = 0 - textStyle.marginEnd = 0 - textStyle.text = "" // 显示的文字 - textStyle.width = 0 // 宽 - textStyle.height = 0 // 长 - textStyle.lineLimit = 0 // 行数控制,0是全部展示 - textStyle.font = undefined // 字体 - textStyle.textColor = defaultTextColor // 文字颜色 -} - -/* -**************************************************************************** -* 重置图片样式 -**************************************************************************** -*/ -function resetImgStyle() { - imgStyle.stack = undefined // 加入到哪个内容栈显示 - textStyle.marginStart = 0 - textStyle.marginEnd = 0 - imgStyle.img = undefined // 图片资源 - imgStyle.width = 0 // 宽 - imgStyle.height = 0 // 长 - imgStyle.tintColor = undefined // 图片渲染颜色 -} - -/* -**************************************************************************** -* 添加一行文本数据进行显示 -**************************************************************************** -*/ -function addStyleText() { - const contentStack = textStyle.stack - if (contentStack == undefined) { - return - } - - const marginStart = textStyle.marginStart - if (marginStart != undefined && marginStart != 0) { - contentStack.addSpacer(marginStart) - } - - const textSpan = contentStack.addText(`${textStyle.text}`) - contentStack.size = new Size(textStyle.width, textStyle.height) - textSpan.lineLimit = textStyle.lineLimit - textSpan.font = textStyle.font - textSpan.textColor = textStyle.textColor - - const marginEnd = textStyle.marginEnd - if (marginStart != undefined && marginStart != 0) { - contentStack.addSpacer(marginEnd) - } - - // 重置样式 - resetTextStyle() -} - -/* -**************************************************************************** -* 添加图片进行显示 -**************************************************************************** -*/ -function addStyleImg() { - const contentStack = imgStyle.stack - if (contentStack == undefined) { - return - } - - const marginStart = textStyle.marginStart - if (marginStart != undefined && marginStart != 0) { - contentStack.addSpacer(marginStart) - } - - const imgSpan = contentStack.addImage(imgStyle.img) - imgSpan.imageSize = new Size(imgStyle.width, imgStyle.height) - const tintColor = imgStyle.tintColor - if (tintColor != undefined) { - imgSpan.tintColor = tintColor - } - - const marginEnd = textStyle.marginEnd - if (marginStart != undefined && marginStart != 0) { - contentStack.addSpacer(marginEnd) - } - - // 重置样式 - resetImgStyle() -} - -/* -**************************************************************************** -* 右对齐,水平方向排列 -**************************************************************************** -*/ -function alignRightStack(alignmentStack, marginRight) { - let contentStack = alignmentStack.addStack() - contentStack.layoutHorizontally() - contentStack.addSpacer() - - let returnStack = contentStack.addStack() - - // 添加右边距 - if (marginRight != undefined && marginRight != 0) { - contentStack.addSpacer(marginRight) - } - - return returnStack -} - - -/* -**************************************************************************** -* 左对齐,水平方向排列 -**************************************************************************** -*/ -function alignLeftStack(alignmentStack, marginLeft) { - let contentStack = alignmentStack.addStack() - contentStack.layoutHorizontally() - - let returnStack = contentStack.addStack() - returnStack.layoutHorizontally() - - // 添加左边距 - if (marginLeft != undefined && marginLeft != 0) { - returnStack.addSpacer(marginLeft) - } - - contentStack.addSpacer() - return returnStack -} - -/* -**************************************************************************** -* 上对齐,垂直方向排列 -**************************************************************************** -*/ -function alignTopStack(alignmentStack, marginTop) { - let contentStack = alignmentStack.addStack() - contentStack.layoutVertically() - - // 添加左边距 - if (marginTop != undefined && marginTop != 0) { - contentStack.addSpacer(marginTop) - } - - let returnStack = contentStack.addStack() - returnStack.layoutVertically() - - contentStack.addSpacer() - return returnStack -} - - -/* -**************************************************************************** -* 下对齐,垂直方向排列 -**************************************************************************** -*/ -function alignBottomStack(alignmentStack, marginBottom) { - let contentStack = alignmentStack.addStack() - contentStack.layoutVertically() - contentStack.addSpacer() - - let returnStack = contentStack.addStack() - - // 添加下边距 - if (marginBottom != undefined && marginBottom != 0) { - contentStack.addSpacer(marginBottom) - } - - return returnStack -} - -/* -**************************************************************************** -* 水平居中 -**************************************************************************** -*/ -function alignHorizontallyCenterStack(alignmentStack) { - let returnStack = alignmentStack.addStack() - returnStack.layoutHorizontally() - returnStack.centerAlignContent() - return returnStack -} - - -/* -**************************************************************************** -* 垂直居中 -**************************************************************************** -*/ -function alignVerticallyCenterStack(alignmentStack) { - let returnStack = alignmentStack.addStack() - returnStack.layoutVertically() - returnStack.centerAlignContent() - return returnStack -} - - -/* -**************************************************************************** -* 网络请求get封装 -**************************************************************************** -*/ -async function getJson(url) { - const request = new Request(url) - const defaultHeaders = { - "Accept": "*/*", - "Content-Type": "application/json" - } - - request.url = url - request.method = 'GET' - request.headers = defaultHeaders - - const data = await request.loadJSON() - - return data -} - - -/* -**************************************************************************** -* 网络请求获取图片 -**************************************************************************** -*/ -async function getImage(url) { - const request = new Request(url) - const data = await request.loadImage() - return data -} - - - - diff --git "a/\346\227\245\345\216\206\345\260\217\347\273\204\344\273\266.js" "b/\346\227\245\345\216\206\345\260\217\347\273\204\344\273\266.js" deleted file mode 100644 index 06b48a7..0000000 --- "a/\346\227\245\345\216\206\345\260\217\347\273\204\344\273\266.js" +++ /dev/null @@ -1,526 +0,0 @@ -// Variables used by Scriptable. -// This transparent bg was created by Max Zeryck - - -/********************************************************************/ -/****************************定义小组件****************************/ -/********************************************************************/ -const filename = Script.name() + ".jpg" -const files = FileManager.local() -const path = files.joinPath(files.documentsDirectory(), filename) - -////////////////////////////////////////////////////////// -// 背景是否是颜色 -const colorMode = false -// 背景颜色 -const bgColorStr = "#ffffff" - -// 年月标题大小 -const yearMonthFont = Font.systemFont(20) -// 年月标题文字颜色 -const yearMonthColor = new Color('#9A6D38') - -// 周标题大小 -const weekFont = Font.lightMonospacedSystemFont(9) -// 周标题文字颜色 -const weekColor = new Color('#999') - -// 日期文字大小 -const dayFont = Font.ultraLightMonospacedSystemFont(9) -// 日期文字颜色 -const dayColor = new Color('#000') -// 今天日期文字颜色 -const currDayColor = new Color('#ff0000') -// 非本月日期文字颜色 -const nonDayColor = new Color('#000', 0) - -// 日期 -const thisDate = new Date() -// 年份 -const year = thisDate.getFullYear() -// 月份 -const month = thisDate.getMonth() + 1 -// 日期 -const currDay = thisDate.getDate() -// 格式化日期 -const yearMonthText = year + "-" + numFormatStr(month) - -// 周标题 -const weekDays = ['日', '一', '二', '三', '四', '五', '六'] -////////////////////////////////////////////////////////// - -if (config.runsInWidget || colorMode) { - // 透明背景设置:widget.backgroundImage = files.readImage(path) - - /****************************小组件内容START****************************/ - // 上一个月的年份 - let preMonthYear - // 上个月份 - let preMonth - if (month == 1) { - preMonthYear = year - 1 - preMonth = 12 - } else { - preMonthYear = year - preMonth = month - 1 - } - // 上个月有多少天 - const preMonthDays = getDays(preMonthYear, preMonth) - // 当前月份有多少天 - const currMonthDays = getDays(year, month) - // 当前月份1号是星期几 - const currMonthFirstDay = getFirstDayWeek(year, month) - // 开始日期数字 - const startNum = preMonthDays - currMonthFirstDay + 1 - // 日历总数字 - var totalDays = currMonthDays + preMonthDays - // 总日期数字 - var totalNumArr = [] - for (var index = startNum; index <= totalDays; index++) { - totalNumArr.push(index) - } - - - ////////////////////////////////////////////////////////// - // 创建列表 - let widget = new ListWidget() - - // 年月标题 - let yearMonthRow = widget.addStack() - yearMonthRow.addSpacer() - yearMonthRow.layoutHorizontally() - // 年月 - let yearText = yearMonthRow.addText(yearMonthText) - yearText.font = yearMonthFont - yearText.textColor = yearMonthColor - yearText.shadowColor = yearMonthColor - yearText.shadowOffset = new Point(1,1) - yearText.shadowRadius = 1 - yearText.leftAlignText() - yearMonthRow.addSpacer() - - widget.addSpacer(10) - - // 日期填充 - let dayColumnArr1 = [] - let dayColumnArr2 = [] - let dayColumnArr3 = [] - let dayColumnArr4 = [] - let dayColumnArr5 = [] - let dayColumnArr6 = [] - let dayColumnArr7 = [] - - // 日期行数 - var rowSize = Math.round(totalDays / 7) - for (var index = 0; index < totalDays; index=index+7) { - var size = index - dayColumnArr1.push(totalNumArr[size]) - - var size1 = size + 1 - if (size1 < totalDays) { - dayColumnArr2.push(totalNumArr[size1]) - } - - var size2 = size + 2 - if (size2 < totalDays) { - dayColumnArr3.push(totalNumArr[size2]) - } - - var size3 = size + 3 - if (size3 < totalDays) { - dayColumnArr4.push(totalNumArr[size3]) - } - - var size4 = size + 4 - if (size4 < totalDays) { - dayColumnArr5.push(totalNumArr[size4]) - } - - var size5 = size + 5 - if (size5 < totalDays) { - dayColumnArr6.push(totalNumArr[size5]) - } - - var size6 = size + 6 - if (size6 < totalDays) { - dayColumnArr7.push(totalNumArr[size6]) - } - } - - - // 内容排版 - let contentStack = widget.addStack() - contentStack.layoutHorizontally() - contentStack.addSpacer() - - // 列间距 - const columnSpacer = 2 - // 周日标题 - let weekColumn1 = contentStack.addStack(); - weekColumn1.layoutVertically(); - createDayColumn(weekColumn1, weekDays[0], weekFont, weekColor, columnSpacer) - // 第一列日期 - for (var index = 0; index < dayColumnArr1.length; index++) { - let day = dayColumnArr1[index] - let color = dayColor - if (day > preMonthDays) { - day = day - preMonthDays - } else { - color = nonDayColor - } - createDayColumn(weekColumn1, day, dayFont, color, columnSpacer) - } - contentStack.addSpacer() - - // 周一标题 - let weekColumn2 = contentStack.addStack(); - weekColumn2.layoutVertically(); - createDayColumn(weekColumn2, weekDays[1], weekFont, weekColor, columnSpacer) - // 第二列日期 - for (var index = 0; index < dayColumnArr2.length; index++) { - let day = dayColumnArr2[index] - let color = dayColor - if (day > preMonthDays) { - day = day - preMonthDays - } else { - color = nonDayColor - } - createDayColumn(weekColumn2, day, dayFont, color, columnSpacer) - } - contentStack.addSpacer() - - // 周二标题 - let weekColumn3 = contentStack.addStack(); - weekColumn3.layoutVertically(); - createDayColumn(weekColumn3, weekDays[2], weekFont, weekColor, columnSpacer) - // 第三列日期 - for (var index = 0; index < dayColumnArr3.length; index++) { - let day = dayColumnArr3[index] - let color = dayColor - if (day > preMonthDays) { - day = day - preMonthDays - } else { - color = nonDayColor - } - createDayColumn(weekColumn3, day, dayFont, color, columnSpacer) - } - contentStack.addSpacer() - - // 周三标题 - let weekColumn4 = contentStack.addStack(); - weekColumn4.layoutVertically(); - createDayColumn(weekColumn4, weekDays[3], weekFont, weekColor, columnSpacer) - // 第四列日期 - for (var index = 0; index < dayColumnArr4.length; index++) { - let day = dayColumnArr4[index] - let color = dayColor - if (day > preMonthDays) { - day = day - preMonthDays - } else { - color = nonDayColor - } - createDayColumn(weekColumn4, day, dayFont, color, columnSpacer) - } - contentStack.addSpacer() - - // 周四标题 - let weekColumn5 = contentStack.addStack(); - weekColumn5.layoutVertically(); - createDayColumn(weekColumn5, weekDays[4], weekFont, weekColor, columnSpacer) - // 第五列日期 - for (var index = 0; index < dayColumnArr5.length; index++) { - let day = dayColumnArr5[index] - let color = dayColor - if (day > preMonthDays) { - day = day - preMonthDays - } else { - color = nonDayColor - } - createDayColumn(weekColumn5, day, dayFont, color, columnSpacer) - } - contentStack.addSpacer() - - // 周五标题 - let weekColumn6 = contentStack.addStack(); - weekColumn6.layoutVertically(); - createDayColumn(weekColumn6, weekDays[5], weekFont, weekColor, columnSpacer) - // 第六列日期 - for (var index = 0; index < dayColumnArr6.length; index++) { - let day = dayColumnArr6[index] - let color = dayColor - if (day > preMonthDays) { - day = day - preMonthDays - } else { - color = nonDayColor - } - createDayColumn(weekColumn6, day, dayFont, color, columnSpacer) - } - contentStack.addSpacer() - - // 周六标题 - let weekColumn7 = contentStack.addStack(); - weekColumn7.layoutVertically(); - createDayColumn(weekColumn7, weekDays[6], weekFont, weekColor, columnSpacer) - // 第七列日期 - for (var index = 0; index < dayColumnArr7.length; index++) { - let day = dayColumnArr7[index] - let color = dayColor - if (day > preMonthDays) { - day = day - preMonthDays - } else { - color = nonDayColor - } - createDayColumn(weekColumn7, day, dayFont, color, columnSpacer) - } - contentStack.addSpacer() - - - ////////////////////////////////////////////////////////// - if (colorMode) { - widget.backgroundColor = new Color(bgColorStr) - } else { - widget.backgroundImage = files.readImage(path) - } - widget.setPadding(0, 4, 0, 4) - Script.setWidget(widget) - Script.complete() - // 预览小尺寸 - widget.presentSmall() - /*****************************小组件内容ENd*****************************/ - -} else if(!colorMode) { - // Determine if user has taken the screenshot. - var message - message = "图片模式支持相册随意照片&背景透明" - let options = ["图片选择","透明背景"] - let isTransparentMode = await generateAlert(message, options) - if (!isTransparentMode) { - let img = await Photos.fromLibrary() - message = "您的小部件背景已准备就绪" - const resultOptions = ["好的"] - await generateAlert(message, resultOptions) - files.writeImage(path, img) - } else { - message = "透明模式开始之前,请返回主屏幕并长按进入编辑模式。滑动到最右边的空白页并截图。" - let exitOptions = ["继续","退出以截图"] - let shouldExit = await generateAlert(message,exitOptions) - if (shouldExit) return - - // Get screenshot and determine phone size. - let img = await Photos.fromLibrary() - let height = img.size.height - let phone = phoneSizes()[height] - if (!phone) { - message = "您似乎选择了非iPhone屏幕截图的图像,或者不支持您的iPhone。请使用其他图像再试一次。" - await generateAlert(message,["好的"]) - return - } - - // Prompt for widget size and position. - message = "您想要创建什么尺寸的小部件?" - let sizes = ["Small","Medium","Large"] - let size = await generateAlert(message,sizes) - let widgetSize = sizes[size] - - message = "您想它在什么位置?" - message += (height == 1136 ? " (请注意,您的设备仅支持两行小部件,因此中间和底部选项相同。)" : "") - - // Determine image crop based on phone size. - let crop = { w: "", h: "", x: "", y: "" } - if (widgetSize == "Small") { - crop.w = phone.small - crop.h = phone.small - let positions = ["Top left","Top right","Middle left","Middle right","Bottom left","Bottom right"] - let position = await generateAlert(message,positions) - - // Convert the two words into two keys for the phone size dictionary. - let keys = positions[position].toLowerCase().split(' ') - crop.y = phone[keys[0]] - crop.x = phone[keys[1]] - - } else if (widgetSize == "Medium") { - crop.w = phone.medium - crop.h = phone.small - - // Medium and large widgets have a fixed x-value. - crop.x = phone.left - let positions = ["Top","Middle","Bottom"] - let position = await generateAlert(message,positions) - let key = positions[position].toLowerCase() - crop.y = phone[key] - - } else if(widgetSize == "Large") { - crop.w = phone.medium - crop.h = phone.large - crop.x = phone.left - let positions = ["Top","Bottom"] - let position = await generateAlert(message,positions) - - // Large widgets at the bottom have the "middle" y-value. - crop.y = position ? phone.middle : phone.top - } - - // Crop image and finalize the widget. - let imgCrop = cropImage(img, new Rect(crop.x,crop.y,crop.w,crop.h)) - - message = "您的小部件背景已准备就绪" - const resultOptions = ["好的"] - await generateAlert(message, resultOptions) - files.writeImage(path, imgCrop) - } - - Script.complete() -} - -/* - ************************************************************************************ - */ - -// Generate an alert with the provided array of options. -async function generateAlert(message,options) { - - let alert = new Alert() - alert.message = message - - for (const option of options) { - alert.addAction(option) - } - - let response = await alert.presentAlert() - return response -} - -// Crop an image into the specified rect. -function cropImage(img,rect) { - - let draw = new DrawContext() - draw.size = new Size(rect.width, rect.height) - - draw.drawImageAtPoint(img,new Point(-rect.x, -rect.y)) - return draw.getImage() -} - -// Pixel sizes and positions for widgets on all supported phones. -function phoneSizes() { - let phones = { - "2688": { - "small": 507, - "medium": 1080, - "large": 1137, - "left": 81, - "right": 654, - "top": 228, - "middle": 858, - "bottom": 1488 - }, - - "1792": { - "small": 338, - "medium": 720, - "large": 758, - "left": 54, - "right": 436, - "top": 160, - "middle": 580, - "bottom": 1000 - }, - - "2436": { - "small": 465, - "medium": 987, - "large": 1035, - "left": 69, - "right": 591, - "top": 213, - "middle": 783, - "bottom": 1353 - }, - - "2208": { - "small": 471, - "medium": 1044, - "large": 1071, - "left": 99, - "right": 672, - "top": 114, - "middle": 696, - "bottom": 1278 - }, - - "1334": { - "small": 296, - "medium": 642, - "large": 648, - "left": 54, - "right": 400, - "top": 60, - "middle": 412, - "bottom": 764 - }, - - "1136": { - "small": 282, - "medium": 584, - "large": 622, - "left": 30, - "right": 332, - "top": 59, - "middle": 399, - "bottom": 399 - } - } - return phones -} - -/* - ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ - */ - /* - * 创建行 - ================================================ - */ -function createDayColumn(stack, day, font, color, spacer) { - if (day == undefined) return - let dayText = stack.addText(day.toString()) - dayText.font = font - let textColor = color - if (day == currDay) { - textColor = currDayColor - } - dayText.textColor = textColor - dayText.shadowColor = textColor - dayText.shadowOffset = new Point(1,1) - dayText.shadowRadius = 1 - dayText.centerAlignText() - stack.addSpacer(spacer) -} - -/* - * 数字格式化 - ================================================ - */ -function numFormatStr(num) { - if (num > 0 && num < 10) { - return `0${num}` - } else { - return `${num}` - } -} - -/* - * 获取月份有多少天 - ================================================ - */ - function getDays(year, month) { - var date = new Date(year, month, 0) - return date.getDate() - } - -/* - * 获取指定月份的1号是星期几(0~6) - ================================================ - */ - function getFirstDayWeek(year, month) { - var date = new Date(year, month - 1) - return date.getDay() - } \ No newline at end of file diff --git "a/\346\241\214\351\235\242\345\220\257\345\212\250.js" "b/\346\241\214\351\235\242\345\220\257\345\212\250.js" new file mode 100644 index 0000000..0d04c49 --- /dev/null +++ "b/\346\241\214\351\235\242\345\220\257\345\212\250.js" @@ -0,0 +1,887 @@ +// Variables used by Scriptable. +// These must be at the very top of the file. Do not edit. +// icon-color: red; icon-glyph: user-astronaut; +/** + * Author:LSP + * Date:2024-02-05 + */ +// ------------------------------------------------------- +// 是否是开发环境,配合手机端调试使用,正式发布设置为false +const isDev = false; +const dependencyLSP = '20230512'; +console.log(`当前环境 👉👉👉👉👉 ${isDev ? 'DEV' : 'RELEASE'}`); +console.log(`----------------------------------------`); +// 分支 +const branch = 'v2'; +// 仓库根目录 +const remoteGithubRoot = `https://raw.githubusercontent.com/Enjoyee/Scriptable/${branch}`; +const remoteHomeLandRoot = `https://glimmerk.coding.net/p/Scriptable/shared-depot/source/git/raw/${branch}`; +// 依赖包目录 +const fm = FileManager.local(); +const rootDir = fm.documentsDirectory(); +const cacheDir = fm.joinPath(rootDir, 'LSP'); +const dependencyFileName = isDev ? "_LSP.js" : `${cacheDir}/_LSP.js`; +// 下载依赖包 +await downloadLSPDependency(); +// ------------------------------------------------------- +if (typeof require === 'undefined') require = importModule +// 引入相关方法 +const { BaseWidget } = require(dependencyFileName); + +// @定义小组件 +class Widget extends BaseWidget { + + defaultPreference = { + caiyun: 'UR8ASaplvIwavDfR', + weatherIcoSize: 30, + // + quickFontSize: '11', + quickFontDayColor: '#FFFFFF', + quickFontNightColor: '#FFFFFF', + // + temperatureFontSize: '34', + temperatureFontDayColor: '#FFFFFF', + temperatureFontNightColor: '#FFFFFF', + // + dateFontSize: '13', + dateFontColor: '#FFFEF9', + dateFontDayColor: '#FFFEF9', + dateFontNightColor: '#FFFEF9', + // + weatherFontSize: '12', + weatherFontDayColor: '#F9F4DC', + weatherFontNightColor: '#F9F4DC', + // + holidayFontSize: '13', + holidayFontDayColor: '#F18F47', + holidayFontNightColor: '#F18F47', + // + quickConfigs: [ + { + icon: `${this.getRemoteRootPath()}/img/other/wechat.png`, + name: '扫一扫', + scheme: 'weixin://scanqrcode' + }, + { + icon: `${this.getRemoteRootPath()}/img/other/payment.png`, + name: '付款码', + scheme: 'alipay://platformapi/startapp?appId=20000056' + }, + { + icon: 'location.fill.viewfinder', + name: '乘车码', + scheme: 'alipay://platformapi/startapp?appId=200011235' + }, + { + icon: `${this.getRemoteRootPath()}/img/other/delivery-man.png`, + name: '菜鸟包裹', + scheme: 'alipay://platformapi/startapp?appId=2021001141626787' + }, + ], + enFontUrl: `${this.getRemoteRootPath()}/font/Facon.ttf`, + isShowNewYear: ['20240209', '20240210', '20240211', '20240212'], + newYearTips: {}, + }; + + getValueByKey = (key) => this.readWidgetSetting()[key] ?? this.defaultPreference[key]; + + caiyun = () => this.getValueByKey('caiyun'); + + quickFontSize = () => parseInt(this.getValueByKey('quickFontSize')); + quickFontDayColor = () => this.getValueByKey('quickFontDayColor'); + quickFontNightColor = () => this.getValueByKey('quickFontNightColor'); + + temperatureFontSize = () => parseInt(this.getValueByKey('temperatureFontSize')); + temperatureFontDayColor = () => this.getValueByKey('temperatureFontDayColor'); + temperatureFontNightColor = () => this.getValueByKey('temperatureFontNightColor'); + + dateFontSize = () => parseInt(this.getValueByKey('dateFontSize')); + dateFontDayColor = () => this.getValueByKey('dateFontDayColor'); + dateFontNightColor = () => this.getValueByKey('dateFontNightColor'); + + weatherFontSize = () => parseInt(this.getValueByKey('weatherFontSize')); + weatherFontDayColor = () => this.getValueByKey('weatherFontDayColor'); + weatherFontNightColor = () => this.getValueByKey('weatherFontNightColor'); + + holidayFontSize = () => parseInt(this.getValueByKey('holidayFontSize')); + holidayFontDayColor = () => this.getValueByKey('holidayFontDayColor'); + holidayFontNightColor = () => this.getValueByKey('holidayFontNightColor'); + + constructor(scriptName) { + super(scriptName); + } + + async getAppViewOptions() { + return { + widgetProvider: { + small: false, // 是否提供小号组件 + medium: true, // 是否提供中号组件 + large: false, // 是否提供大号组件 + }, + // 预览界面的组件设置item + settingItems: [ + { + name: 'weatherIco', + label: '天气图标', + type: 'select', + icon: { name: 'cloud.moon', color: '#480ca8', }, + needLoading: false, + options: [ + { label: '第1套图标', value: '1' }, + { label: '第2套图标', value: '2' }, + { label: '第3套图标', value: '3' }, + { label: '第4套图标', value: '4' }, + { label: '第5套图标', value: '5' }, + { label: '第6套图标', value: '6' }, + { label: '第7套图标', value: '7' }, + { label: '第8套图标', value: '8' }, + { label: '第9套图标', value: '9' }, + { label: '第10套图标', value: '10' }, + { label: '第11套图标', value: '11' }, + { label: '第12套图标', value: '12' }, + { label: '第13套图标', value: '13' }, + ], + default: "1" + }, + { + name: 'quickStart', + label: '快捷启动设置', + type: 'cell', + icon: { name: 'lasso.and.sparkles', color: '#ffc300', }, + needLoading: false, + showDesc: false, + }, + { + name: 'otherSetting', + label: '其他设置', + type: 'cell', + icon: 'https://cdnjson.com/images/2024/02/05/settings.png', + needLoading: true, + childItems: [ + { + items: [ + { + name: 'caiyun', + label: '彩云key', + type: 'cell', + icon: `${this.getRemoteRootPath()}/img/icon_caiyun.png`, + alert: { + title: '彩云key', + message: "已使用默认key,如果不可用了需要自己去申请填入替换", + options: [ + { + key: 'caiyun', + hint: '请输入彩云key', + } + ] + }, + needLoading: false, + default: this.caiyun(), + }, + ], + }, + { + items: [ + { + name: 'quickFontSize', + label: '启动文字大小', + type: 'cell', + icon: { name: 'lasso.and.sparkles', color: '#7743DB', }, + needLoading: false, + alert: { + title: '启动文字大小', + options: [ + { + key: 'quickFontSize', + hint: '请输入字号', + } + ] + }, + default: this.quickFontSize(), + }, + { + name: 'quickFontDayColor', + label: '启动文字浅色颜色', + type: 'color', + icon: { name: 'sun.min.fill', color: '#3a86ff', }, + needLoading: false, + default: this.quickFontDayColor(), + }, + { + name: 'quickFontNightColor', + label: '启动文字深色颜色', + type: 'color', + icon: { name: 'moon.fill', color: '#3a0ca3', }, + needLoading: false, + default: this.quickFontNightColor(), + }, + ], + }, + { + items: [ + { + name: 'temperatureFontSize', + label: '温度文字大小', + type: 'cell', + icon: { name: 'thermometer.medium', color: '#E0144C', }, + needLoading: false, + alert: { + title: '温度文字大小', + options: [ + { + key: 'temperatureFontSize', + hint: '请输入字号', + } + ] + }, + default: this.temperatureFontSize(), + }, + { + name: 'temperatureFontDayColor', + label: '温度文字浅色颜色', + type: 'color', + icon: { name: 'sun.min.fill', color: '#3a86ff', }, + needLoading: false, + default: this.temperatureFontDayColor(), + }, + { + name: 'temperatureFontNightColor', + label: '温度文字深色颜色', + type: 'color', + icon: { name: 'moon.fill', color: '#3a0ca3', }, + needLoading: false, + default: this.temperatureFontDayColor(), + }, + ] + }, + { + items: [ + { + name: 'dateFontSize', + label: '日期文字大小', + type: 'cell', + icon: `${this.getRemoteRootPath()}/img/ic_calendar.png`, + needLoading: false, + alert: { + title: '日期文字大小', + options: [ + { + key: 'dateFontSize', + hint: '请输入字号', + } + ] + }, + default: this.dateFontSize(), + }, + { + name: 'dateFontDayColor', + label: '日期文字浅色颜色', + type: 'color', + icon: { name: 'sun.min.fill', color: '#3a86ff', }, + needLoading: false, + default: this.dateFontDayColor(), + }, + { + name: 'dateFontNightColor', + label: '日期文字深色颜色', + type: 'color', + icon: { name: 'moon.fill', color: '#3a0ca3', }, + needLoading: false, + default: this.dateFontNightColor(), + }, + ] + }, + { + items: [ + { + name: 'weatherFontSize', + label: '天气文字大小', + type: 'cell', + icon: `${this.getRemoteRootPath()}/img/ic_weather.png`, + needLoading: false, + alert: { + title: '天气文字大小', + options: [ + { + key: 'weatherFontSize', + hint: '请输入字号', + } + ] + }, + default: this.weatherFontSize(), + }, + { + name: 'weatherFontDayColor', + label: '天气文字浅色颜色', + type: 'color', + icon: { name: 'sun.min.fill', color: '#3a86ff', }, + needLoading: false, + default: this.weatherFontDayColor(), + }, + { + name: 'weatherFontNightColor', + label: '天气文字深色颜色', + type: 'color', + icon: { name: 'moon.fill', color: '#3a0ca3', }, + needLoading: false, + default: this.weatherFontNightColor(), + }, + ] + }, + { + items: [ + { + name: 'holidayFontSize', + label: '节假日文字大小', + type: 'cell', + icon: `${this.getRemoteRootPath()}/img/ic_calendar.png`, + needLoading: false, + alert: { + title: '节假日文字大小', + options: [ + { + key: 'holidayFontSize', + hint: '请输入字号', + } + ] + }, + default: this.holidayFontSize(), + }, + { + name: 'holidayFontDayColor', + label: '节假日文字浅色颜色', + type: 'color', + icon: { name: 'sun.min.fill', color: '#3a86ff', }, + needLoading: false, + default: this.holidayFontDayColor(), + }, + { + name: 'holidayFontNightColor', + label: '节假日文字深色颜色', + type: 'color', + icon: { name: 'moon.fill', color: '#3a0ca3', }, + needLoading: false, + default: this.holidayFontNightColor(), + }, + ] + }, + ] + }, + ], + // cell类型的item点击回调 + onItemClick: async (item) => { + let widgetSetting = this.readWidgetSetting(); + let insertDesc; + switch (item.name) { + case 'quickStart': + const ufm = this.useFileManager(); + const index = await this.presentSheet({ + title: '快捷启动设置', + message: '⊱配置各个快捷按钮的启动配置⊰', + options: [ + { name: '启动按钮1' }, + { name: '启动按钮2' }, + { name: '启动按钮3' }, + { name: '启动按钮4' }, + ], + }); + if (index >= 0 && index <= 3) { + const localQuickConfigs = ufm.readStringCache('quickStart'); + const quickConfigJSON = localQuickConfigs ? localQuickConfigs : JSON.stringify(this.defaultPreference.quickConfigs); + const quickConfigArr = JSON.parse(quickConfigJSON); + const quickStack = quickConfigArr[index]; + await this.generateInputAlert({ + title: '快捷启动设置', + message: '1.图标是SFSymbol或者图片链接\n2.名称最好输入2~3个字,多余会换行\n3.启动scheme链接可以自行上网搜索', + options: [ + { hint: '请输入快捷启动的图标', value: quickStack.icon }, + { hint: '请输入快捷启动的名称', value: quickStack.name }, + { hint: '快捷启动scheme', value: quickStack.scheme }, + ] + }, async (inputArr) => { + quickStack.icon = inputArr[0].value; + quickStack.name = inputArr[1].value; + quickStack.scheme = inputArr[2].value; + ufm.writeStringCache('quickStart', JSON.stringify(quickConfigArr)); + }); + } + break; + } + // 写入更新配置 + this.writeWidgetSetting(widgetSetting); + return { + desc: { value: insertDesc }, + }; + }, + }; + } + + async render({ widgetSetting, family }) { + //================================= + const widget = new ListWidget(); + widget.setPadding(0, 0, 0, 0); + //================================= + let stack = widget.addStack(); + stack.layoutHorizontally(); + //--------------------------------- + const localQuickConfigs = this.useFileManager().readStringCache('quickStart'); + const quickConfigJSON = localQuickConfigs ? localQuickConfigs : JSON.stringify(this.defaultPreference.quickConfigs); + const quickConfigArr = JSON.parse(quickConfigJSON); + await this.quickStack(stack, quickConfigArr); + //--------------------------------- + let rightStack = stack.addStack(); + rightStack.layoutVertically(); + rightStack.addSpacer(); + await this.loadWeatherStack(rightStack); + rightStack.addSpacer(); + + if (this.defaultPreference.isShowNewYear.indexOf(this.getDateStr(new Date(), 'yyyyMMdd')) != -1) { + let image = await this.getImageByUrl(`${this.getRemoteRootPath()}/img/ic_fireworks_a20.png`); + rightStack.backgroundImage = image; + } + + //================================= + stack.addSpacer(); + return widget; + } + + + /** + * 快捷启动 + * @param {*} stack + * @param {*} quickConfigs + */ + quickStack = async (stack, quickConfigs) => { + //--------------------------------- + const quickStackSize = new Size(58, 60); + const quickImgSize = new Size(33, 30); + const quickCornerRadius = 10; + const quickStackBg = new Color('333', 0.2); + const quickPadding = 10; + const quickTextColor = this.dynamicColor(this.quickFontDayColor(), this.quickFontNightColor()); + const quickFont = (textLength = 3) => Font.semiboldSystemFont(textLength < 3 ? Number(this.quickFontSize()) : Number(this.quickFontSize()) - 1); + const imageOpacity = 0.8; + //--------------------------------- + let leftStack = stack.addStack(); + leftStack.size = new Size(148, 0); + leftStack.layoutVertically(); + leftStack.addSpacer(); + ////////////////////////////////////////////////// + let qStack; + for (let index = 0; index < quickConfigs.length; index++) { + const item = quickConfigs[index]; + if (index % 2 === 0) { + qStack = leftStack.addStack(); + if (index === 0) { + leftStack.addSpacer(quickPadding); + } + } + qStack.addSpacer(quickPadding); + let oneStack = qStack.addStack(); + oneStack.url = item.scheme; + oneStack.centerAlignContent(); + oneStack.size = quickStackSize; + oneStack.cornerRadius = quickCornerRadius; + oneStack.backgroundColor = quickStackBg; + // + let tipsStack = oneStack.addStack(); + tipsStack.layoutVertically(); + tipsStack.centerAlignContent(); + // + let image; + let imgUrl = item.icon; + if (imgUrl.startsWith('http')) { + image = await this.getImageByUrl(imgUrl); + } else { + image = this.getSFSymbol(imgUrl); + } + let hStack = tipsStack.addStack(); + hStack.layoutHorizontally(); + hStack.addSpacer(); + let imgSpan = hStack.addImage(image); + hStack.addSpacer(); + imgSpan.tintColor = this.dynamicColor(this.quickFontDayColor(), this.quickFontNightColor()); + imgSpan.imageSize = quickImgSize; + imgSpan.imageOpacity = imageOpacity; + // + tipsStack.addSpacer(2); + hStack = tipsStack.addStack(); + hStack.layoutHorizontally(); + hStack.addSpacer(); + let textWidget = hStack.addText(item.name); + hStack.addSpacer(); + textWidget.textColor = quickTextColor; + textWidget.font = quickFont(item.name.length); + } + ////////////////////////////////////////////////// + leftStack.addSpacer(); + } + + /** + * 天气UI + * @param {*} stack + */ + loadWeatherStack = async (stack) => { + // ======================================== + // 获取农历信息 + const lunarInfo = await this.getLunarInfo() + // 请求彩云 + const weatherInfo = await this.getWeather(); + // 节假日 + const holidayInfo = await this.holidayInfo(); + // ======================================== + stack.addSpacer(); + let weatherStack = stack.addStack(); + weatherStack.layoutHorizontally(); + weatherStack.bottomAlignContent(); + // + let image = await this.getImageByUrl(weatherInfo.weatherIcoUrl); + let imgSpan = weatherStack.addImage(image); + imgSpan.imageSize = new Size(this.defaultPreference.weatherIcoSize, this.defaultPreference.weatherIcoSize); + imgSpan.leftAlignImage(); + // + image = await this.drawTextWithCustomFont( + this.defaultPreference.enFontUrl, + `${weatherInfo.temperature}°c`, + this.temperatureFontSize(), + Device.isUsingDarkAppearance() ? this.temperatureFontNightColor() : this.temperatureFontDayColor(), + "left" + ); + weatherStack.addSpacer(10); + imgSpan = weatherStack.addImage(image); + imgSpan.imageSize = new Size(image.size.width / 2, image.size.height / 2); + imgSpan.leftAlignImage(); + // + weatherStack.addSpacer(16); + // 刷新时间 + let textWidget; + textWidget = weatherStack.addText(this.getDateStr(new Date(), 'HH:mm')) + textWidget.textColor = this.dynamicColor(this.dateFontDayColor(), this.dateFontNightColor()); + textWidget.font = Font.systemFont(10); + textWidget.textOpacity = 0.8; + textWidget.lineLimit = 1; + // + // ------------------------------------------------ + const infoLunarText = ` ${lunarInfo.infoLunarText}`; + let holidayText = lunarInfo.holidayText; + holidayText = holidayText ? ` · ${holidayText}` : ''; + let text = `${this.getDateStr(new Date(), 'MM月d日 EEE')}${infoLunarText}${holidayText}`; + + stack.addSpacer(10); + textWidget = stack.addText(text); + textWidget.textColor = this.dynamicColor(this.dateFontDayColor(), this.dateFontNightColor()); + textWidget.font = Font.regularSystemFont(this.scaleFontSize(Number(this.dateFontSize()), text.length, 18)); + textWidget.lineLimit = 1; + // ------------------------------------------------ + + text = `${weatherInfo.weatherDesc}`; + stack.addSpacer(6); + textWidget = stack.addText(text); + textWidget.textColor = this.dynamicColor(this.weatherFontDayColor(), this.weatherFontNightColor()); + textWidget.font = Font.regularSystemFont(this.scaleFontSize(Number(this.weatherFontSize()), text.length, 50)); + textWidget.lineLimit = 3; + // ------------------------------------------------ + text = holidayInfo; + stack.addSpacer(6); + textWidget = stack.addText(text); + textWidget.url = 'calshow://'; + textWidget.textColor = this.dynamicColor(this.holidayFontDayColor(), this.holidayFontNightColor()); + textWidget.font = Font.regularSystemFont(Number(this.holidayFontSize())); + textWidget.lineLimit = 1; + // ------------------------------------------------ + stack.addSpacer(); + } + + // --------------------------NET START-------------------------- + + /** + * 节假日信息 + * @returns 节假日信息 + */ + holidayInfo = async () => { + let infoTips = ''; + const datePre = 'date_'; + const currDate = new Date(); + let dateStr = this.getDateStr(currDate, 'yyyyMM'); + let holidayJsonData = this.useFileManager().readJSONCache(datePre + dateStr); + const url = `https://opendata.baidu.com/api.php?tn=wisetpl&format=json&resource_id=39043&query=${currDate.getFullYear()}%E5%B9%B4${currDate.getMonth() + 1}%E6%9C%88&t=${currDate.getTime()}` + if (JSON.stringify(holidayJsonData) == '{}' || holidayJsonData?.length == 0 || holidayJsonData.status != 0) { + holidayJsonData = await this.httpGet(url, { useCache: false, jsonFormat: false }); + holidayJsonData = JSON.parse(holidayJsonData); + // + const listFiles = this.useFileManager().fm.listContents(this.useFileManager().cacheDir); + for (let index = listFiles.length - 1; index >= 0; index--) { + const file = listFiles[index]; + if (file.startsWith(datePre)) { + console.log(`删除节假日缓存文件:${file}`); + this.useFileManager().fm.remove(this.useFileManager().cacheDir + '/' + file); + } + } + // + this.useFileManager().writeJSONCache(datePre + dateStr, holidayJsonData); + } + let list = holidayJsonData.data[0].almanac; + let currItem = list.find(item => item.year == currDate.getFullYear() && item.month == currDate.getMonth() + 1 && item.day == currDate.getDate()); + if ((currItem.status == 1) || (currItem.status == undefined && (currItem.cnDay == '六' || currItem.cnDay == '日'))) { + infoTips = 'Η𝒶𝓋е 𝐚 𝓷𝖎𝖈𝖾 ⅆ𝙖𝛄~ ᕕ(ȍᴥȍ)ᕗ'; + } else { + let currIndex = list.indexOf(currItem); + let remainArr = list.slice(currIndex + 1, list.size); + let notWorkday = remainArr.find(item => item.status == 1 || (item.status == undefined && (item.cnDay == '六' || item.cnDay == '日'))); + let remainDay = (+new Date(parseInt(notWorkday.timestamp) * 1000) - (+new Date(parseInt(currItem.timestamp) * 1000))) / 86400 / 1000; + let holidayTips = '周末'; + const { term } = notWorkday; + if (term?.length > 0) { + holidayTips = term; + } + if (remainDay == 1) { + infoTips = '明天就『' + holidayTips + '』啦 (ง⚆‿⚆)ง'; + } else { + infoTips = `离${holidayTips}还有:${remainDay}天!(งȌ_Ȍ)ง`; + } + } + return this.defaultPreference.newYearTips[dateStr] || infoTips; + } + + /** + * 获取彩云天气信息 + * @param {*} dailysteps + * @returns + */ + getWeather = async (dailysteps = 6) => { + const remoteRootPath = this.getRemoteRootPath(); + + // 开启质量 + function airQuality(levelNum) { + // 0-50 优,51-100 良,101-150 轻度污染,151-200 中度污染 + // 201-300 重度污染,>300 严重污染 + if (levelNum >= 0 && levelNum <= 50) { + return "优秀"; + } else if (levelNum >= 51 && levelNum <= 100) { + return "良好"; + } else if (levelNum >= 101 && levelNum <= 150) { + return "轻度"; + } else if (levelNum >= 151 && levelNum <= 200) { + return "中度"; + } else if (levelNum >= 201 && levelNum <= 300) { + return "重度"; + } else { + return "严重"; + } + } + + // 获取天气icon + function getWeatherIco(weatherDesc, keyIndex) { + return { keyIndex, url: `${remoteRootPath}/img/icon/weather${keyIndex}/${weatherDesc}.png` }; + } + + // 获取位置 + let location = await this.getLocation(); + // 彩云api key + const caiyunKey = this.caiyun(); + // 彩云天气api + const url = `https://api.caiyunapp.com/v2.5/${caiyunKey}/${location.longitude},${location.latitude}/weather.json?alert=true&dailysteps=${dailysteps}`; + const weatherJsonData = await this.httpGet(url, { dataSuccess: (res) => res?.status == "ok" }); + // 天气数据 + let weatherInfo = {}; + if (weatherJsonData) { + // 天气突发预警 + let alertWeather = weatherJsonData.result?.alert?.content; + if (alertWeather?.length > 0) { + const alertWeatherTitle = alertWeather[0].title; + console.log(`👉突发的天气预警:${alertWeatherTitle}`); + weatherInfo.alertWeatherTitle = alertWeatherTitle; + } + // 全部温度 + weatherInfo.daily = weatherJsonData.result.daily; + // 温度范围 + const temperatureData = weatherInfo.daily.temperature[0]; + // 最低温度 + const minTemperature = temperatureData.min; + // 最高温度 + const maxTemperature = temperatureData.max; + weatherInfo.minTemperature = Math.round(minTemperature); + weatherInfo.maxTemperature = Math.round(maxTemperature); + // 体感温度 + const bodyFeelingTemperature = weatherJsonData.result.realtime.apparent_temperature; + weatherInfo.bodyFeelingTemperature = Math.floor(bodyFeelingTemperature); + // 显示温度 + const temperature = weatherJsonData.result.realtime.temperature; + weatherInfo.temperature = Math.floor(temperature); + // 天气状况 + let weather = weatherJsonData.result.realtime.skycon; + weatherInfo.weatherIco = weather; + const weatherIcoObj = getWeatherIco(weather, Number(this.readWidgetSetting()?.weatherIco ?? 0)); + this.defaultPreference.weatherIcoSize = (weatherIcoObj.keyIndex == 11 || weatherIcoObj.keyIndex == 12) ? 38 : 30; + weatherInfo.weatherIcoUrl = weatherIcoObj.url; + // 天气描述 + const weatherDesc = weatherJsonData.result.forecast_keypoint; + weatherInfo.weatherDesc = weatherDesc; + console.log("👉 天气预告:" + weatherDesc); + // 降水率 + weatherInfo.probability = weatherJsonData.result.minutely.probability; + // 相对湿度 + const humidity = (Math.floor(weatherJsonData.result.realtime.humidity * 100)) + "%"; + weatherInfo.humidity = humidity; + // 舒适指数 + const comfort = weatherJsonData.result.realtime.life_index.comfort.desc; + weatherInfo.comfort = comfort; + // 紫外线指数 + const ultraviolet = weatherJsonData.result.realtime.life_index.ultraviolet.desc; + weatherInfo.ultraviolet = ultraviolet; + // 空气质量 + const aqi = weatherJsonData.result.realtime.air_quality.aqi.chn; + const aqiInfo = airQuality(aqi); + weatherInfo.aqiInfo = aqiInfo; + // 日出日落 + const astro = weatherJsonData.result.daily.astro[0]; + // 日出 + const sunrise = astro.sunrise.time; + // 日落 + const sunset = astro.sunset.time; + weatherInfo.sunrise = sunrise.toString(); + weatherInfo.sunset = sunset.toString(); + // 小时预告 + let hourlyArr = []; + const hourlyData = weatherJsonData.result.hourly; + const temperatureArr = hourlyData.temperature; + const temperatureSkyconArr = hourlyData.skycon; + for (var i = 0; i < temperatureArr.length; i++) { + let hourlyObj = {}; + hourlyObj.datetime = temperatureArr[i].datetime; + hourlyObj.temperature = Math.round(temperatureArr[i].value); + let weather = temperatureSkyconArr[i].value; + hourlyObj.skycon = `${weather}`; + hourlyArr.push(hourlyObj); + } + weatherInfo.hourly = hourlyArr; + } else { + console.error(`🚫 请求彩云天气出错`); + } + this.logDivider(); + return weatherInfo; + } + + // --------------------------NET END-------------------------- + +} + +await new Widget(Script.name()).run(); + + +// ================================================================================= +// ================================================================================= +async function downloadLSPDependency() { + let fm = FileManager.local(); + const fileName = fm.joinPath(fm.documentsDirectory(), `LSP/${Script.name()}/settings.json`); + const fileExists = fm.fileExists(fileName); + let cacheString = '{}'; + if (fileExists) { + cacheString = fm.readString(fileName); + } + const use_github = JSON.parse(cacheString)['use_github']; + const dependencyURL = `${use_github ? remoteGithubRoot : remoteHomeLandRoot}/_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 || update) { + console.log(`🤖 DEV 开始${update ? '更新' + dependencyLSP : '下载'}依赖~`); + keySave('VERSION', dependencyLSP); + await downloadFile2Scriptable('_LSP', dependencyURL); + } + return; + } + + ////////////////////////////////////////////////////////// + console.log(`----------------------------------------`); + const remoteDependencyExit = fm.fileExists(`${cacheDir}/_LSP.js`); + console.log(`🚀 RELEASE依赖文件${remoteDependencyExit ? '已存在 ✅' : '不存在 🚫'}`); + // ------------------------------ + if (!remoteDependencyExit || update) { // 下载依赖 + // 创建根目录 + if (!fm.fileExists(cacheDir)) { + fm.createDirectory(cacheDir, true); + } + // 下载 + 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 { + console.error('🚫 获取依赖环境脚本失败,请重试!'); + console.log(`----------------------------------------`); + } + } +} + +/** + * 获取保存的文件名 + * @param {*} fileName + * @returns + */ +function getSaveFileName(fileName) { + const hasSuffix = fileName.lastIndexOf(".") + 1; + return !hasSuffix ? `${fileName}.js` : fileName; +}; + +/** + * 保存文件到Scriptable软件目录,app可看到 + * @param {*} fileName + * @param {*} content + * @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; + } +}; + +/** + * 下载js文件到Scriptable软件目录 + * @param {*} moduleName 名称 + * @param {*} url 在线地址 + * @returns + */ +async function downloadFile2Scriptable(moduleName, url) { + const req = new Request(url); + const content = await req.loadString(); + 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 diff --git "a/\346\250\241\346\235\277.js" "b/\346\250\241\346\235\277.js" index 6b2ed9e..70e25e5 100644 --- "a/\346\250\241\346\235\277.js" +++ "b/\346\250\241\346\235\277.js" @@ -1,552 +1,148 @@ -////////////////////////////////////////// -// 预览大小【小:Small,中:Medium,大:Large】 -const previewSize = "Medium" - -// 是否需要更换背景 -const changePicBg = true - -// 是否是纯色背景 -const colorMode = false - -// 小组件背景色 -const bgColor = new Color("000000") - -// 默认字体 -const defaultFont = Font.systemFont(18) - -// 默认字体颜色 -const defaultTextColor = new Color("#ffffff") - -// 内容区左右边距 -const padding = { - top: 0, - left: 0, - bottom: 0, - right: 0 -} - -// 标题样式定义 -let textStyle = { - stack: undefined, // 加入到哪个内容栈显示 - marginStart: 0, // 开始距离,水平方向的就是左边距离,垂直方向的就是顶部距离 - marginEnd: 0, // 结束距离,水平方向的就是右边距离,垂直方向的就是底部距离 - text: "", // 显示的文字 - width: 0, // 宽 - height: 0, // 长 - lineLimit: 0, // 行数控制,0是全部展示 - font: undefined, // 字体 - textColor: defaultTextColor, // 文字颜色 -} - -// 图片样式定义 -let imgStyle = { - stack: undefined, // 加入到哪个内容栈显示 - marginStart: 0, // 开始距离,水平方向的就是左边距离,垂直方向的就是顶部距离 - marginEnd: 0, // 结束距离,水平方向的就是右边距离,垂直方向的就是底部距离 - img: undefined, // 图片资源 - width: 0, // 宽 - height: 0, // 长 - tintColor: undefined, // 图片渲染颜色 -} -//////////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////////// - - - - - -////////////////////////////////////// -// 组件Start -const filename = `${Script.name()}.jpg` -const files = FileManager.local() -const path = files.joinPath(files.documentsDirectory(), filename) -const widget = new ListWidget() -const contentStack = widget.addStack() -////////////////////////////////////// - - - -/* -**************************************************************************** -↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ -下面添加你自己的组件内容/逻辑 -**************************************************************************** -*/ - - - - - - -/* -**************************************************************************** -上面添加你自己的组件内容/逻辑 -↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ -**************************************************************************** -*/ - - -/* -**************************************************************************** -* 这里是图片逻辑,不用修改 -**************************************************************************** -*/ - -if (!colorMode && !config.runsInWidget && changePicBg) { - const okTips = "您的小部件背景已准备就绪" - let message = "图片模式支持相册照片&背景透明" - let options = ["图片选择", "透明背景"] - let isTransparentMode = await generateAlert(message, options) - if (!isTransparentMode) { - let img = await Photos.fromLibrary() - message = okTips - const resultOptions = ["好的"] - await generateAlert(message, resultOptions) - files.writeImage(path, img) +/** + * 公众号:杂货万事屋 + * Author:LSP + * Date:2022-09-19 +*/ +// @导入引用开发环境 +if (typeof require === 'undefined') require = importModule +const { Base } = require("./lsp环境") + +// @小组件配置 +const widgetConfigs = { + languageCN: false, + // 时间字体 + font: Font.mediumRoundedSystemFont(16), + // 预览模式:0:小尺寸,1:中等尺寸,2:大尺寸,负数:不预览 + previewMode: 0, +} + + +// @定义小组件 +class Widget extends Base { + constructor(scriptName) { + super(scriptName) + // 初始化其他变量 + this.setPreViewSizeMode(widgetConfigs.previewMode) + } + + /** + * 组件渲染 + */ + async renderUI() { + //------------------------------------- + const widget = new ListWidget() + let stack = widget.addStack() + stack.layoutHorizontally() + //------------------------------------- + // 请求农历信息 + const lunarInfo = await this.getLunar() + // 农历 + let lunarInfoText = lunarInfo.infoLunarText; + if (widgetConfigs.languageCN) { + lunarInfoText = lunarInfoText.replaceAll('十一月', '冬月') + .replaceAll('十二月', '腊月') + .replaceAll('一月', '正月'); } else { - message = "以下是【透明背景】生成步骤,如果你没有屏幕截图请退出,并返回主屏幕长按进入编辑模式。滑动到最右边的空白页截图。然后重新运行!" - let exitOptions = ["继续(已有截图)", "退出(没有截图)"] - - let shouldExit = await generateAlert(message, exitOptions) - if (shouldExit) return - - // Get screenshot and determine phone size. - let img = await Photos.fromLibrary() - let height = img.size.height - let phone = phoneSizes()[height] - if (!phone) { - message = "您似乎选择了非iPhone屏幕截图的图像,或者不支持您的iPhone。请使用其他图像再试一次!" - await generateAlert(message, ["好的!我现在去截图"]) - return - } - - // Prompt for widget size and position. - message = "您想要创建什么尺寸的小部件?" - let sizes = ["小号", "中号", "大号"] - let size = await generateAlert(message, sizes) - let widgetSize = sizes[size] - - message = "您想它在什么位置?" - message += (height == 1136 ? " (请注意,您的设备仅支持两行小部件,因此中间和底部选项相同。)" : "") - - // Determine image crop based on phone size. - let crop = { w: "", h: "", x: "", y: "" } - if (widgetSize == "小号") { - crop.w = phone.小号 - crop.h = phone.小号 - let positions = ["顶部 左边", "顶部 右边", "中间 左边", "中间 右边", "底部 左边", "底部 右边"] - let position = await generateAlert(message, positions) - - // Convert the two words into two keys for the phone size dictionary. - let keys = positions[position].split(' ') - crop.y = phone[keys[0]] - crop.x = phone[keys[1]] - - } else if (widgetSize == "中号") { - crop.w = phone.中号 - crop.h = phone.小号 - - // 中号 and 大号 widgets have a fixed x-value. - crop.x = phone.左边 - let positions = ["顶部", "中间", "底部"] - let position = await generateAlert(message, positions) - let key = positions[position].toLowerCase() - crop.y = phone[key] - - } else if (widgetSize == "大号") { - crop.w = phone.中号 - crop.h = phone.大号 - crop.x = phone.左边 - let positions = ["顶部", "底部"] - let position = await generateAlert(message, positions) - - // 大号 widgets at the 底部 have the "中间" y-value. - crop.y = position ? phone.中间 : phone.顶部 - } - - // Crop image and finalize the widget. - let imgCrop = cropImage(img, new Rect(crop.x, crop.y, crop.w, crop.h)) - - message = "您的小部件背景已准备就绪,退出到桌面预览。" - const resultOptions = ["好的"] - await generateAlert(message, resultOptions) - files.writeImage(path, imgCrop) - } - -} - - -////////////////////////////////////// -// 组件End -// 设置小组件的背景 -if (colorMode) { - widget.backgroundColor = bgColor -} else { - widget.backgroundImage = files.readImage(path) -} -// 设置边距(上,左,下,右) -widget.setPadding(padding.top, padding.left, padding.bottom, padding.right) -// 设置组件 -Script.setWidget(widget) -// 完成脚本 -Script.complete() -// 预览 -if (previewSize == "Large") { - widget.presentLarge() -} else if (previewSize == "Medium") { - widget.presentMedium() -} else { - widget.presentSmall() -} -////////////////////////////////////// - -/* -**************************************************************************** -* 重置文本样式 -**************************************************************************** -*/ -function resetTextStyle() { - textStyle.stack = undefined // 加入到哪个内容栈显示 - textStyle.marginStart = 0 - textStyle.marginEnd = 0 - textStyle.text = "" // 显示的文字 - textStyle.width = 0 // 宽 - textStyle.height = 0 // 长 - textStyle.lineLimit = 0 // 行数控制,0是全部展示 - textStyle.font = undefined // 字体 - textStyle.textColor = defaultTextColor // 文字颜色 -} - -/* -**************************************************************************** -* 重置图片样式 -**************************************************************************** -*/ -function resetImgStyle() { - imgStyle.stack = undefined // 加入到哪个内容栈显示 - textStyle.marginStart = 0 - textStyle.marginEnd = 0 - imgStyle.img = undefined // 图片资源 - imgStyle.width = 0 // 宽 - imgStyle.height = 0 // 长 - imgStyle.tintColor = undefined // 图片渲染颜色 -} - -/* -**************************************************************************** -* 添加一行文本数据进行显示 -**************************************************************************** -*/ -function addStyleText() { - const contentStack = textStyle.stack - if (contentStack == undefined) { - return - } - - const marginStart = textStyle.marginStart - if (marginStart != undefined && marginStart != 0) { - contentStack.addSpacer(marginStart) - } - - const textSpan = contentStack.addText(`${textStyle.text}`) - contentStack.size = new Size(textStyle.width, textStyle.height) - textSpan.lineLimit = textStyle.lineLimit - textSpan.font = textStyle.font - textSpan.textColor = textStyle.textColor - - const marginEnd = textStyle.marginEnd - if (marginStart != undefined && marginStart != 0) { - contentStack.addSpacer(marginEnd) - } - - // 重置样式 - resetTextStyle() -} - -/* -**************************************************************************** -* 添加图片进行显示 -**************************************************************************** -*/ -function addStyleImg() { - const contentStack = imgStyle.stack - if (contentStack == undefined) { - return - } - - const marginStart = textStyle.marginStart - if (marginStart != undefined && marginStart != 0) { - contentStack.addSpacer(marginStart) - } - - const imgSpan = contentStack.addImage(imgStyle.img) - imgSpan.imageSize = new Size(imgStyle.width, imgStyle.height) - const tintColor = imgStyle.tintColor - if (tintColor != undefined) { - imgSpan.tintColor = tintColor - } - - const marginEnd = textStyle.marginEnd - if (marginStart != undefined && marginStart != 0) { - contentStack.addSpacer(marginEnd) + lunarInfoText = lunarInfoText.replaceAll('一月', 'Jan.') + .replaceAll('二月', 'Feb.') + .replaceAll('三月', 'Mar.') + .replaceAll('四月', 'Apr.') + .replaceAll('五月', 'May.') + .replaceAll('六月', 'Jun.') + .replaceAll('七月', 'Jul.') + .replaceAll('八月', 'Aug.') + .replaceAll('九月', 'Sep.') + .replaceAll('十月', 'Oct.') + .replaceAll('十一月', 'Nov.') + .replaceAll('十二月', 'Dec.') + .replaceAll('初一', '1') + .replaceAll('初二', '2') + .replaceAll('初三', '3') + .replaceAll('初四', '4') + .replaceAll('初五', '5') + .replaceAll('初六', '6') + .replaceAll('初七', '7') + .replaceAll('初八', '8') + .replaceAll('初九', '9') + .replaceAll('初十', '10') + .replaceAll('十一', '11') + .replaceAll('十二', '12') + .replaceAll('十三', '13') + .replaceAll('十四', '14') + .replaceAll('十五', '15') + .replaceAll('十六', '16') + .replaceAll('十七', '17') + .replaceAll('十八', '18') + .replaceAll('十九', '19') + .replaceAll('二十', '20') + .replaceAll('廿一', '21') + .replaceAll('廿二', '22') + .replaceAll('廿三', '23') + .replaceAll('廿四', '24') + .replaceAll('廿五', '25') + .replaceAll('廿六', '26') + .replaceAll('廿七', '27') + .replaceAll('廿八', '28') + .replaceAll('廿九', '29') + .replaceAll('三十', '30') } - - // 重置样式 - resetImgStyle() -} - -/* -**************************************************************************** -* 右对齐,水平方向排列 -**************************************************************************** -*/ -function alignRightStack(alignmentStack, marginRight) { - let contentStack = alignmentStack.addStack() - contentStack.layoutHorizontally() - contentStack.addSpacer() - - let returnStack = contentStack.addStack() - - // 添加右边距 - if (marginRight != undefined && marginRight != 0) { - contentStack.addSpacer(marginRight) + // 显示 + let showText = `🫧 ${lunarInfoText}` + let widgetText = stack.addText(`${showText}`) + widgetText.textOpacity = 0.8 + widgetText.font = widgetConfigs.font + //------------------------------------- + return widget + //------------------------------------- + } + + //------------------------------------- + /** + * 下载更新 + */ + async downloadUpdate() { + let files = FileManager.local() + const iCloudInUse = files.isFileStoredIniCloud(module.filename) + files = iCloudInUse ? FileManager.iCloud() : files + let message = '' + try { + let downloadURL = "https://gitee.com/enjoyee/scriptable/raw/master/%E6%96%B0%E7%B3%BB%E5%88%97/%E5%B0%8F%E6%97%A5%E5%8E%86.js" + if (widgetConfigs.useGithub) { + downloadURL = "https://raw.githubusercontent.com/Enjoyee/Scriptable/new/%E5%B0%8F%E6%97%A5%E5%8E%86/%E5%B0%8F%E6%97%A5%E5%8E%86.js" + } + const req = new Request(downloadURL) + const codeString = await req.loadString() + files.writeString(module.filename, codeString) + message = "脚本已更新,请退出脚本重新进入运行生效。" + } catch { + message = "更新失败,请稍后再试。" } - - return returnStack -} - - -/* -**************************************************************************** -* 左对齐,水平方向排列 -**************************************************************************** -*/ -function alignLeftStack(alignmentStack, marginLeft) { - let contentStack = alignmentStack.addStack() - contentStack.layoutHorizontally() - - let returnStack = contentStack.addStack() - returnStack.layoutHorizontally() - - // 添加左边距 - if (marginLeft != undefined && marginLeft != 0) { - returnStack.addSpacer(marginLeft) - } - - contentStack.addSpacer() - return returnStack -} - -/* -**************************************************************************** -* 上对齐,垂直方向排列 -**************************************************************************** -*/ -function alignTopStack(alignmentStack, marginTop) { - let contentStack = alignmentStack.addStack() - contentStack.layoutVertically() - - // 添加左边距 - if (marginTop != undefined && marginTop != 0) { - contentStack.addSpacer(marginTop) - } - - let returnStack = contentStack.addStack() - returnStack.layoutVertically() - - contentStack.addSpacer() - return returnStack -} - - -/* -**************************************************************************** -* 下对齐,垂直方向排列 -**************************************************************************** -*/ -function alignBottomStack(alignmentStack, marginBottom) { - let contentStack = alignmentStack.addStack() - contentStack.layoutVertically() - contentStack.addSpacer() - - let returnStack = contentStack.addStack() - - // 添加下边距 - if (marginBottom != undefined && marginBottom != 0) { - contentStack.addSpacer(marginBottom) - } - - return returnStack -} - -/* -**************************************************************************** -* 水平居中 -**************************************************************************** -*/ -function alignHorizontallyCenterStack(alignmentStack) { - let returnStack = alignmentStack.addStack() - returnStack.layoutHorizontally() - returnStack.centerAlignContent() - return returnStack -} - - -/* -**************************************************************************** -* 垂直居中 -**************************************************************************** -*/ -function alignVerticallyCenterStack(alignmentStack) { - let returnStack = alignmentStack.addStack() - returnStack.layoutVertically() - returnStack.centerAlignContent() - return returnStack -} - - -/* -**************************************************************************** -* 网络请求get封装 -**************************************************************************** -*/ -async function getJson(url) { - const request = new Request(url) - const defaultHeaders = { - "Accept": "*/*", - "Content-Type": "application/json" - } - - request.url = url - request.method = 'GET' - request.headers = defaultHeaders - - const data = await request.loadJSON() - - return data -} - - -/* -**************************************************************************** -* 网络请求获取图片 -**************************************************************************** -*/ -async function getImage(url) { - const request = new Request(url) - const data = await request.loadImage() - return data -} - - -/* -**************************************************************************** -* 图片裁剪相关 -**************************************************************************** -*/ -// Generate an alert with the provided array of options. -async function generateAlert(message, options) { - let alert = new Alert() - alert.message = message - - for (const option of options) { - alert.addAction(option) - } - - let response = await alert.presentAlert() - return response -} - -// Crop an image into the specified rect. -function cropImage(img, rect) { - let draw = new DrawContext() - draw.size = new Size(rect.width, rect.height) - draw.drawImageAtPoint(img, new Point(-rect.x, -rect.y)) - return draw.getImage() -} - -// Pixel sizes and positions for widgets on all supported phones. -function phoneSizes() { - let phones = { - "2688": { - "小号": 507, - "中号": 1080, - "大号": 1137, - "左边": 81, - "右边": 654, - "顶部": 228, - "中间": 858, - "底部": 1488 - }, - - "1792": { - "小号": 338, - "中号": 720, - "大号": 758, - "左边": 54, - "右边": 436, - "顶部": 160, - "中间": 580, - "底部": 1000 - }, - - "2436": { - "小号": 465, - "中号": 987, - "大号": 1035, - "左边": 69, - "右边": 591, - "顶部": 213, - "中间": 783, - "底部": 1353 - }, - - "2208": { - "小号": 471, - "中号": 1044, - "大号": 1071, - "左边": 99, - "右边": 672, - "顶部": 114, - "中间": 696, - "底部": 1278 - }, - - "1334": { - "小号": 296, - "中号": 642, - "大号": 648, - "左边": 54, - "右边": 400, - "顶部": 60, - "中间": 412, - "底部": 764 - }, - - "1136": { - "小号": 282, - "中号": 584, - "大号": 622, - "左边": 30, - "右边": 332, - "顶部": 59, - "中间": 399, - "底部": 399 - } + const options = ["好的"] + await this.generateAlert(message, options) + Script.complete() + } + + //------------------------------------- + /** + * @渲染小组件 + */ + async render() { + // 下载更新 + if (widgetConfigs.openDownload && config.runsInApp) { + const message = "同步远程脚本?" + const options = ["运行脚本", "下载脚本"] + let typeIndex = await this.generateAlert(message, options) + if (typeIndex == 1) { + await this.downloadUpdate() + } else { + return await this.renderUI() + } + } else { + return await this.renderUI() } - return phones + } } - -/* -**************************************************************************** -**************************************************************************** -**************************************************************************** -*/ - - - - +// @运行测试 +const { Running } = require("./lsp环境") +await Running(Widget, Script.name(), false) \ No newline at end of file diff --git "a/\347\203\255\346\246\234.js" "b/\347\203\255\346\246\234.js" deleted file mode 100644 index ebf6e0b..0000000 --- "a/\347\203\255\346\246\234.js" +++ /dev/null @@ -1,330 +0,0 @@ -// Variables used by Scriptable. -// This widget was created by Max Zeryck - -/* - * Author: Enjoyee - * Github: https://github.com/Enjoyee/Scriptable - * 热榜数据源自: https://mo.fish - */ - -/********************************************************************/ -/****************************定义小组件****************************/ -/********************************************************************/ -const filename = Script.name() + ".jpg" -const files = FileManager.local() -const path = files.joinPath(files.documentsDirectory(), filename) - -/********************************************************************/ -// 获取外部输入的参数,格式:【大标题,ID,大标题文字颜色,列表文字颜色】 -let widgetInputRAW = args.widgetParameter -try { - widgetInputRAW.toString() -} catch(e) { - // 默认值微博热搜 - widgetInputRAW = "微博热搜,58" -} -// 获取外部输入 -let inputArr = widgetInputRAW.toString().replace(",", ",").split(",") -// 热榜标题 -const hotTitle = inputArr[0] -// 热榜ID -const hotID = inputArr[1] - - -if (config.runsInWidget) { - // 透明背景设置:widget.backgroundImage = files.readImage(path) - - /****************************小组件内容START****************************/ - // 请求地址 - let requestUrl = "https://www.tophub.fun:8888/v2/GetAllInfoGzip?id=58&page=0" - // 获取热榜数据 - let jsonResponse = await getJson(requestUrl) - // 调用创建小组件 - if (jsonResponse.Code == 0) { - createWidget(jsonResponse.Data.data.slice(1, 6)) - } - /*****************************小组件内容ENd*****************************/ - -} else { - // Determine if user has taken the screenshot. - var message - message = "开始之前,请返回主屏幕并长按进入编辑模式。滑动到最右边的空白页并截图。" - let exitOptions = ["继续","退出以截图"] - let shouldExit = await generateAlert(message,exitOptions) - if (shouldExit) return - - // Get screenshot and determine phone size. - let img = await Photos.fromLibrary() - let height = img.size.height - let phone = phoneSizes()[height] - if (!phone) { - message = "您似乎选择了非iPhone屏幕截图的图像,或者不支持您的iPhone。请使用其他图像再试一次。" - await generateAlert(message,["OK"]) - return - } - - // Prompt for widget size and position. - message = "您想要创建什么尺寸的小部件?" - let sizes = ["Small","Medium","Large"] - let size = await generateAlert(message,sizes) - let widgetSize = sizes[size] - - message = "您想它在什么位置?" - message += (height == 1136 ? " (请注意,您的设备仅支持两行小部件,因此中间和底部选项相同。)" : "") - - // Determine image crop based on phone size. - let crop = { w: "", h: "", x: "", y: "" } - if (widgetSize == "Small") { - crop.w = phone.small - crop.h = phone.small - let positions = ["Top left","Top right","Middle left","Middle right","Bottom left","Bottom right"] - let position = await generateAlert(message,positions) - - // Convert the two words into two keys for the phone size dictionary. - let keys = positions[position].toLowerCase().split(' ') - crop.y = phone[keys[0]] - crop.x = phone[keys[1]] - - } else if (widgetSize == "Medium") { - crop.w = phone.medium - crop.h = phone.small - - // Medium and large widgets have a fixed x-value. - crop.x = phone.left - let positions = ["Top","Middle","Bottom"] - let position = await generateAlert(message,positions) - let key = positions[position].toLowerCase() - crop.y = phone[key] - - } else if(widgetSize == "Large") { - crop.w = phone.medium - crop.h = phone.large - crop.x = phone.left - let positions = ["Top","Bottom"] - let position = await generateAlert(message,positions) - - // Large widgets at the bottom have the "middle" y-value. - crop.y = position ? phone.middle : phone.top - } - - // Crop image and finalize the widget. - let imgCrop = cropImage(img, new Rect(crop.x,crop.y,crop.w,crop.h)) - - message = "您的小部件背景已准备就绪。您想在Scriptable的小部件中使用它还是导出图像?" - const exportPhotoOptions = ["在Scriptable中使用","导出图像"] - const exportPhoto = await generateAlert(message,exportPhotoOptions) - - if (exportPhoto) { - Photos.save(imgCrop) - } else { - files.writeImage(path,imgCrop) - } - - Script.complete() -} - -/* - ************************************************************************************ - */ - -// Generate an alert with the provided array of options. -async function generateAlert(message,options) { - - let alert = new Alert() - alert.message = message - - for (const option of options) { - alert.addAction(option) - } - - let response = await alert.presentAlert() - return response -} - -// Crop an image into the specified rect. -function cropImage(img,rect) { - - let draw = new DrawContext() - draw.size = new Size(rect.width, rect.height) - - draw.drawImageAtPoint(img,new Point(-rect.x, -rect.y)) - return draw.getImage() -} - -// Pixel sizes and positions for widgets on all supported phones. -function phoneSizes() { - let phones = { - "2688": { - "small": 507, - "medium": 1080, - "large": 1137, - "left": 81, - "right": 654, - "top": 228, - "middle": 858, - "bottom": 1488 - }, - - "1792": { - "small": 338, - "medium": 720, - "large": 758, - "left": 54, - "right": 436, - "top": 160, - "middle": 580, - "bottom": 1000 - }, - - "2436": { - "small": 465, - "medium": 987, - "large": 1035, - "left": 69, - "right": 591, - "top": 213, - "middle": 783, - "bottom": 1353 - }, - - "2208": { - "small": 471, - "medium": 1044, - "large": 1071, - "left": 99, - "right": 672, - "top": 114, - "middle": 696, - "bottom": 1278 - }, - - "1334": { - "small": 296, - "medium": 642, - "large": 648, - "left": 54, - "right": 400, - "top": 60, - "middle": 412, - "bottom": 764 - }, - - "1136": { - "small": 282, - "medium": 584, - "large": 622, - "left": 30, - "right": 332, - "top": 59, - "middle": 399, - "bottom": 399 - } - } - return phones -} - -/* - ************************************************************************************ - */ - - - /* - =================================================================================== - */ - -// 网络请求get封装 -async function getJson({ url, headers = {} }, callback = () => {}) { - const request = new Request('') - const defaultHeaders = { - "Accept": "*/*", - "Content-Type": "application/json" - } - - request.url = `https://www.tophub.fun:8888/v2/GetAllInfoGzip?id=${hotID}&page=0` - request.method = 'GET' - request.headers = { - ...headers, - ...defaultHeaders - } - const data = await request.loadJSON() - callback(request.response, data) - return data -} - -// 请求网络图片 -async function fetchImageUrl(imgUrl) { - const req = await new Request(imgUrl) - const img = await req.loadImage() - return img -} - -// 创建组件 -async function createWidget(hotData) { - let w = new ListWidget() - /* - ************************************************************* - */ - - // // 1.自定义颜色背景 - // const customColorBg = new LinearGradient() - // // 背景渐变色 - // customColorBg.colors = [new Color("#29323c"), new Color("#1c1c1c")] - // customColorBg.locations = [0.0, 1.0] - // w.backgroundGradient = customColorBg - - // // 2.自定义图片背景 - // 图片链接 - // const customImgBgUrl = "https://images.unsplash.com/photo-1602408959965-cbde35cfab50?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=900&q=60" - // const imgReq = new Request(customImgBgUrl) - // const customImgBg = await imgReq.loadImage() - // w.backgroundImage=customImgBg - - // 3.下面是设置透明背景 - w.backgroundImage = files.readImage(path) - - // 大标题文字颜色 - const headTitleFontColor = new Color("#FF7F00") - // 列表文字颜色 - const listTitleFontColor = new Color("#E9C2A6") - /* - ************************************************************* - */ - - // 设置大标题 - w.addSpacer(15) - let titleStack = w.addStack() - let title = titleStack.addText(`🔥 ${hotTitle}`) - title.font = Font.boldRoundedSystemFont(17) // 大标题字体样式/大小 - title.textColor = headTitleFontColor // 大标题的颜色 - title.shadowColor = headTitleFontColor // 大标题的阴影颜色 - title.shadowOffset = new Point(1,1) // 阴影偏移 - title.shadowRadius = 1 // 阴影半径 - title.leftAlignText() - w.addSpacer() - - // 列表 - for (let index in hotData) { - let itemStack = w.addStack() - // 标题 - let title = itemStack.addText(`☞ ${hotData[index].Title}`) - title.font = Font.boldRoundedSystemFont(13) // 热搜列表标题字体样式/大小 - title.textColor = listTitleFontColor // 热搜列表标题的颜色 - title.url = hotData[index].Url - title.leftAlignText() - w.addSpacer(5) - } - - // 占位 - let spaceStack = w.addStack() - let space = spaceStack.addText("这是占位用的这是占位用的这是占位用的这是占位用的这是占位用的这是占位用的这是占位用的") - space.font = Font.boldRoundedSystemFont(8) // 热搜列表标题字体样式/大小 - space.textOpacity = 0 - - w.addSpacer() - - Script.setWidget(w) - Script.complete() - - // 直接预览中等大小的小组件 - w.presentMedium() -} \ No newline at end of file diff --git "a/\347\224\265\344\277\241.js" "b/\347\224\265\344\277\241.js" new file mode 100644 index 0000000..41de70d --- /dev/null +++ "b/\347\224\265\344\277\241.js" @@ -0,0 +1,610 @@ +// Variables used by Scriptable. +// These must be at the very top of the file. Do not edit. +// icon-color: blue; icon-glyph: mobile-alt; +/** + * Author:LSP + * Date:2024-04-19 + */ +// ------------------------------------------------------- +// 是否是开发环境,配合手机端调试使用,正式发布设置为false +const isDev = false; +const dependencyLSP = '20240419_1'; +console.log(`当前环境 👉👉👉👉👉 ${isDev ? 'DEV' : 'RELEASE'}`); +console.log(`----------------------------------------`); +// 分支 +const branch = 'v2'; +// 仓库根目录 +const remoteGithubRoot = `https://raw.githubusercontent.com/Enjoyee/Scriptable/${branch}`; +const remoteHomeLandRoot = `https://glimmerk.coding.net/p/Scriptable/shared-depot/source/git/raw/${branch}`; +// 依赖包目录 +const fm = FileManager.local(); +const rootDir = fm.documentsDirectory(); +const cacheDir = fm.joinPath(rootDir, 'LSP'); +const dependencyFileName = isDev ? "_LSP.js" : `${cacheDir}/_LSP.js`; +// 下载依赖包 +await downloadLSPDependency(); +// ------------------------------------------------------- +if (typeof require === 'undefined') require = importModule +// 引入相关方法 +const { BaseWidget } = require(dependencyFileName); + +// @定义小组件 +class Widget extends BaseWidget { + + defaultPreference = { + cache_key_detail: 'detail', + cache_key_balance: 'balance', + fetchUrl: { + home: 'https://e.dlife.cn/wap/mine/showIndex.do#/', + detail: 'https://e.dlife.cn/user/package_detail.do', + balance: 'https://e.dlife.cn/user/balance.do', + }, + titleDayColor: '#000000', + titleNightColor: '#999999', + descDayColor: '#000000', + descNightColor: '#999999', + refreshTimeDayColor: '#000000', + refreshTimeNightColor: '#999999', + }; + + fee = { + title: '📱 剩余话费:', + balance: 0, + unit: '元', + }; + + voice = { + title: '⏳ 剩余语音:', + balance: 0, + percent: 0, + unit: '分钟', + }; + + flow = { + title: '⛽️ 剩余流量:', + balance: 0, + percent: 0, + unit: 'MB', + }; + + getValueByKey = (key) => this.readWidgetSetting()[key] ?? this.defaultPreference[key]; + + titleDayColor = () => this.getValueByKey('titleDayColor'); + titleNightColor = () => this.getValueByKey('titleNightColor'); + + descDayColor = () => this.getValueByKey('descDayColor'); + descNightColor = () => this.getValueByKey('descNightColor'); + + refreshTimeDayColor = () => this.getValueByKey('refreshTimeDayColor'); + refreshTimeNightColor = () => this.getValueByKey('refreshTimeNightColor'); + + constructor(scriptName) { + super(scriptName); + this.reset = false; + this.defaultConfig.bgType = '3'; + this.backgroundColor = '#FEFCF3,#0A2647'; + this.cookie = this.getValueByKey('cookie'); + } + + async getAppViewOptions() { + return { + widgetProvider: { + small: true, // 是否提供小号组件 + medium: false, // 是否提供中号组件 + large: false, // 是否提供大号组件 + }, + // 预览界面的组件设置item + settingItems: [ + { + name: 'chinaTelecomCK', + label: '天翼信息', + type: 'cell', + icon: `${this.getRemoteRootPath()}/img/icon_10000.png`, + needLoading: true, + desc: this.getValueByKey('loginMiddle')?.length > 0 ? '已填写' : '未填写' + }, + { + name: 'filterOrientateFlow', + label: '过滤定向流量', + type: 'switch', + icon: { name: 'bag.fill', color: '#F14A16', }, + needLoading: false, + default: false + }, + { + name: 'showUsedFlow', + label: '显示已使用流量', + type: 'switch', + icon: { name: 'archivebox.fill', color: '#ECA97A', }, + needLoading: false, + default: false + }, + { + name: 'otherSetting', + label: '其他设置', + type: 'cell', + icon: 'https://cdnjson.com/images/2024/02/05/settings.png', + needLoading: true, + childItems: [ + { + items: [ + { + name: 'titleDayColor', + label: '标题浅色颜色', + type: 'color', + icon: { name: 'pencil.and.outline', color: '#3a86ff', }, + needLoading: false, + default: this.titleDayColor(), + }, + { + name: 'titleNightColor', + label: '标题深色颜色', + type: 'color', + icon: { name: 'square.and.pencil', color: '#3a0ca3', }, + needLoading: false, + default: this.titleNightColor(), + }, + ], + }, + { + items: [ + { + name: 'descDayColor', + label: '内容浅色颜色', + type: 'color', + icon: { name: 'pencil.and.outline', color: '#3a86ff', }, + needLoading: false, + default: this.descDayColor(), + }, + { + name: 'descNightColor', + label: '内容深色颜色', + type: 'color', + icon: { name: 'square.and.pencil', color: '#3a0ca3', }, + needLoading: false, + default: this.descNightColor(), + }, + ], + }, + { + items: [ + { + name: 'refreshTimeDayColor', + label: '刷新时间浅色颜色', + type: 'color', + icon: { name: 'pencil.and.outline', color: '#3a86ff', }, + needLoading: false, + default: this.refreshTimeDayColor(), + }, + { + name: 'refreshTimeNightColor', + label: '刷新时间深色颜色', + type: 'color', + icon: { name: 'square.and.pencil', color: '#3a0ca3', }, + needLoading: false, + default: this.refreshTimeNightColor(), + }, + ], + }, + ] + }, + ], + // cell类型的item点击回调 + onItemClick: async (item) => { + let insertDesc; + const widgetSetting = this.readWidgetSetting(); + switch (item.name) { + case 'chinaTelecomCK': + let loginMiddle; + let selectIndex = await this.generateAlert('登录信息填写', '1.复制链接进行网页登录\n2.抓取包含loginMiddle.do链接进行填入', ['复制地址', '填入链接']); + if (selectIndex == 0) { + Pasteboard.copy(this.defaultPreference.fetchUrl.home); + await this.generateAlert('提示', '登录链接已复制,请自行网页登录抓包', ["好的"]) + } else { + await this.generateInputAlert({ + title: '登录信息链接填写', + message: '填入抓取包含loginMiddle.do的链接', + options: [ + { hint: '请输入链接', value: '' }, + ] + }, async (inputArr) => { + this.reset = true; + loginMiddle = inputArr[0].value; + // 保存配置 + widgetSetting['loginMiddle'] = loginMiddle; + }); + } + insertDesc = loginMiddle?.length > 0 ? '已填写' : '未填写'; + this.writeWidgetSetting({ ...widgetSetting }); + break; + } + return { + desc: { value: insertDesc }, + }; + }, + }; + } + + async render({ widgetSetting }) { + return await this.provideSmallWidget(widgetSetting); + } + + async provideSmallWidget(widgetSetting) { + // ======================================== + let loginMiddle = widgetSetting.loginMiddle; + if (loginMiddle) { + console.log('获取加载ck...'); + const req = new Request(widgetSetting.loginMiddle); + req.credentials = 'include'; + await req.load(); + const cookieResArr = req.response.cookies; + const ckArr = cookieResArr?.map(item => `${item.name}=${item.value}`); + const ck = ckArr.join(';') + widgetSetting['cookie'] = ck; + this.cookie = ck; + console.log(`获取到的ck:${ck}`); + } else { + console.error('❌❌❌❌❌未配置登录链接❌❌❌❌❌'); + } + console.log(`=======================================`); + + // ======================================== + await this.loadMoneyBalance(); + await this.loadDetailInfo(widgetSetting); + const voiceBalance = this.voice.balance; + // ======================================== + const widget = new ListWidget(); + widget.setPadding(0, 0, 0, 0); + // ======================================== + const widgetSize = this.getWidgetSize('小号'); + let stack = widget.addStack(); + let image = await this.getImageByUrl(`${this.getRemoteRootPath()}/img/bg_doraemon_1.png`); + stack.setPadding(4, 12, 0, 12); + stack.backgroundImage = image; + stack.size = new Size(widgetSize.width, widgetSize.height); + stack.layoutVertically(); + stack.addSpacer(); + // ======================================== + const titleFont = Font.lightSystemFont(13); + const infoFont = Font.mediumSystemFont(16); + const titleTextColor = Color.dynamic(new Color(this.titleDayColor()), new Color(this.titleNightColor())); + const descTextColor = Color.dynamic(new Color(this.descDayColor()), new Color(this.descNightColor())); + const refreshTimeTextColor = Color.dynamic(new Color(this.refreshTimeDayColor()), new Color(this.refreshTimeNightColor())); + const descSpacer = 3; + const lineSpacer = 4; + const descLeftSpacer = 22; + // ======================================== + let textSpan = stack.addText(`${this.fee.title}`); + textSpan.textColor = titleTextColor; + textSpan.font = titleFont; + // + stack.addSpacer(descSpacer); + let displayStack = stack.addStack(); + displayStack.centerAlignContent(); + displayStack.addSpacer(descLeftSpacer); + textSpan = displayStack.addText(`${this.fee.balance}${this.fee.unit}`); + textSpan.textColor = descTextColor; + textSpan.font = infoFont; + displayStack.addSpacer(); + // ======================================== + stack.addSpacer(lineSpacer); + textSpan = stack.addText(`${this.voice.title} `); + textSpan.textColor = titleTextColor; + textSpan.font = titleFont; + // + stack.addSpacer(descSpacer); + displayStack = stack.addStack(); + displayStack.centerAlignContent(); + displayStack.addSpacer(descLeftSpacer); + textSpan = displayStack.addText(`${voiceBalance}${this.voice.unit}`); + textSpan.textColor = descTextColor; + textSpan.font = infoFont; + displayStack.addSpacer(); + // ======================================== + stack.addSpacer(lineSpacer); + textSpan = stack.addText(`${this.flow.title} `); + textSpan.textColor = titleTextColor; + textSpan.font = titleFont; + // + stack.addSpacer(descSpacer); + displayStack = stack.addStack(); + displayStack.centerAlignContent(); + displayStack.addSpacer(descLeftSpacer); + textSpan = displayStack.addText(`${this.flow.balance}${this.flow.unit}`); + textSpan.textColor = descTextColor; + textSpan.font = infoFont; + displayStack.addSpacer(); + // ======================================== + + // ======================================== + stack.addSpacer(6); + let btStack = stack.addStack(); + btStack.centerAlignContent(); + btStack.addSpacer(6); + image = this.getSFSymbol('goforward'); + let imgSpan = btStack.addImage(image); + imgSpan.imageSize = new Size(9, 9); + imgSpan.tintColor = refreshTimeTextColor; + btStack.addSpacer(4); + if (this.success) { + this.lastUpdate = this.getDateStr(new Date(), 'HH:mm'); + } + textSpan = btStack.addText(`${this.getDateStr(new Date(), 'HH:mm')} `); + textSpan.textColor = refreshTimeTextColor; + textSpan.font = Font.lightSystemFont(10); + btStack.addSpacer(); + image = await this.getImageByUrl(`${this.getRemoteRootPath()}/img/ic_logo_10000.jpg`); + imgSpan = btStack.addImage(image); + imgSpan.imageSize = new Size(14, 14); + stack.addSpacer(); + //================================= + return widget; + } + + // --------------------------NET START-------------------------- + bodyText2Response = async (webview, cacheKey) => { + const widgetSetting = this.readWidgetSetting(); + const text = await webview.evaluateJavaScript("document.body.innerText"); + const ck = await webview.evaluateJavaScript("document.cookie"); + console.log(`CK:${ck} `); + let RES; + try { + this.success = true; + RES = JSON.parse(text); + widgetSetting['loginRes'] = 'login'; + this.useFileManager().writeJSONCache(cacheKey, RES); + } catch (error) { + this.success = false; + widgetSetting['loginRes'] = ''; + console.error(`加载出错:${text} `); + } + this.writeWidgetSetting(widgetSetting); + return RES; + } + + /** + * 加载账户余额 + */ + loadMoneyBalance = async () => { + const response = await this.httpGet( + this.defaultPreference.fetchUrl.balance, + { + useCache: this.reset ?? false, + dataSuccess: (res) => res.serviceResultCode == '0', + headers: { + 'cookie': this.cookie + } + } + ); + this.fee.balance = response == undefined || response['serviceResultCode'] == 0 ? parseFloat(parseInt(response?.totalBalanceAvailable || 0) / 100).toFixed(2) : 'NAN'; + } + + /** + * 流量格式化 + * @param {*} flow + * @returns + */ + formatFlow = (flow) => { + const remain = flow / 1024; + if (remain < 1024) { + return { amount: remain.toFixed(2), unit: 'MB' }; + } + return { amount: (remain / 1024).toFixed(2), unit: 'GB' }; + } + + /** + * 加载明细 + * @returns + */ + loadDetailInfo = async (widgetSetting) => { + const { filterOrientateFlow, showUsedFlow } = widgetSetting; + const response = await this.httpGet( + this.defaultPreference.fetchUrl.detail, + { + useCache: this.reset ?? false, + dataSuccess: (res) => res.paraFieldResult == 'SUCCESS', + headers: { + 'cookie': this.cookie + } + } + ); + // 总流量 + let totalFlowAmount = 0; + // 剩余流量 + let totalBalanceFlowAmount = 0; + // 已用流量 + let totalUsedFlowAmount = 0; + // 总语音 + let totalVoiceAmount = 0; + // 剩余语音 + let totalBalanceVoiceAmount = 0; + // 语音 + if (response?.voiceAmount && response?.voiceBalance) { + totalVoiceAmount = response.voiceAmount; + totalBalanceVoiceAmount = response.voiceBalance; + } + // 流量&语音 + let isUnlimitedFlow = false; + response?.items?.forEach((data) => { + if (data.offerType !== 19) { + data.items?.forEach((item) => { + if (item.unitTypeId == 3) { + if (!(item.usageAmount == 0 && item.balanceAmount == 0)) { + let ratableResourcename = item.ratableResourcename; + let ratableAmount = item.ratableAmount; + let balanceAmount = item.balanceAmount; + let usedAmount = ratableAmount - balanceAmount; + console.log(`套餐名称:«${ratableResourcename}»`); + console.log(`套餐总流量:${ratableAmount} MB`); + console.log(`套餐剩余流量:${balanceAmount} MB`); + console.log(`套餐已用流量:${usedAmount} MB`); + console.log(`================================= `); + if (filterOrientateFlow && ratableResourcename.search('定向') != -1 || balanceAmount == '999999999999') { + ratableAmount = 0; + balanceAmount = 0; + } + totalFlowAmount += parseFloat(ratableAmount); + totalBalanceFlowAmount += parseFloat(balanceAmount); + } + totalUsedFlowAmount += parseFloat(item.usageAmount); + if (showUsedFlow) { + this.flow.title = '⛽️ 流量已用:'; + } + if (data.offerType == 21 && item.ratableAmount == '0') { + // 无限流量用户 + isUnlimitedFlow = true; + } + } else if (!response.voiceBalance && item.unitTypeId == 1) { + totalVoiceAmount += parseInt(item.ratableAmount); + totalBalanceVoiceAmount += parseInt(item.balanceAmount); + } + }); + } + }); + const totalFlowObj = this.formatFlow(totalFlowAmount); + const totalBalanceFlowObj = this.formatFlow(totalBalanceFlowAmount); + const totalUsedFlowObj = this.formatFlow(totalUsedFlowAmount); + const finalBalanceFlowObj = showUsedFlow ? totalUsedFlowObj : totalBalanceFlowObj; + console.log(`总流量:${totalFlowObj.amount}${totalFlowObj.unit} `); + console.log(`剩余流量:${totalBalanceFlowObj.amount}${totalBalanceFlowObj.unit} `); + console.log(`已使用流量:${totalUsedFlowObj.amount}${totalUsedFlowObj.unit} `); + console.log(`总语音:${totalVoiceAmount}${this.voice.unit} `); + console.log(`剩余语音:${totalBalanceVoiceAmount}${this.voice.unit} `); + console.log(`================================= `); + // 设置流量 + this.flow.percent = ((totalBalanceFlowAmount / (totalFlowAmount || 1)) * 100).toFixed(2); + this.flow.balance = finalBalanceFlowObj.amount; + this.flow.unit = finalBalanceFlowObj.unit; + if (isUnlimitedFlow) { + const usageAmountObj = this.formatFlow(totalUsedFlowAmount); + this.flow.title = '⛽️ 流量已用:'; + this.flow.balance = usageAmountObj.amount; + this.flow.unit = usageAmountObj.unit; + } + // 设置语音 + this.voice.percent = ((totalBalanceVoiceAmount / (totalVoiceAmount || 1)) * 100).toFixed(2); + this.voice.balance = totalBalanceVoiceAmount; + } + + // --------------------------NET END-------------------------- +} + +await new Widget(Script.name()).run(); + + +// ================================================================================= +// ================================================================================= +async function downloadLSPDependency() { + let fm = FileManager.local(); + const fileName = fm.joinPath(fm.documentsDirectory(), `LSP/${Script.name()}/settings.json`); + const fileExists = fm.fileExists(fileName); + let cacheString = '{}'; + if (fileExists) { + cacheString = fm.readString(fileName); + } + const use_github = JSON.parse(cacheString)['use_github']; + const dependencyURL = `${use_github ? remoteGithubRoot : remoteHomeLandRoot}/_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 || update) { + console.log(`🤖 DEV 开始${update ? '更新' + dependencyLSP : '下载'}依赖~`); + keySave('VERSION', dependencyLSP); + await downloadFile2Scriptable('_LSP', dependencyURL); + } + return; + } + + ////////////////////////////////////////////////////////// + console.log(`----------------------------------------`); + const remoteDependencyExit = fm.fileExists(`${cacheDir}/_LSP.js`); + console.log(`🚀 RELEASE依赖文件${remoteDependencyExit ? '已存在 ✅' : '不存在 🚫'}`); + // ------------------------------ + if (!remoteDependencyExit || update) { // 下载依赖 + // 创建根目录 + if (!fm.fileExists(cacheDir)) { + fm.createDirectory(cacheDir, true); + } + // 下载 + 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 { + console.error('🚫 获取依赖环境脚本失败,请重试!'); + console.log(`----------------------------------------`); + } + } +} + +/** + * 获取保存的文件名 + * @param {*} fileName + * @returns + */ +function getSaveFileName(fileName) { + const hasSuffix = fileName.lastIndexOf(".") + 1; + return !hasSuffix ? `${fileName}.js` : fileName; +}; + +/** + * 保存文件到Scriptable软件目录,app可看到 + * @param {*} fileName + * @param {*} content + * @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; + } +}; + +/** + * 下载js文件到Scriptable软件目录 + * @param {*} moduleName 名称 + * @param {*} url 在线地址 + * @returns + */ +async function downloadFile2Scriptable(moduleName, url) { + const req = new Request(url); + const content = await req.loadString(); + 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 diff --git "a/\347\224\265\345\275\261\346\227\245\345\216\206.js" "b/\347\224\265\345\275\261\346\227\245\345\216\206.js" new file mode 100644 index 0000000..c88896a --- /dev/null +++ "b/\347\224\265\345\275\261\346\227\245\345\216\206.js" @@ -0,0 +1,377 @@ +// Variables used by Scriptable. +// These must be at the very top of the file. Do not edit. +// icon-color: deep-blue; icon-glyph: film; +/** + * Author:LSP + * Date:2023-08-29 + */ +// ------------------------------------------------------- +// 是否是开发环境,配合手机端调试使用,正式发布设置为false +const isDev = false; +const dependencyLSP = '20230602'; +console.log(`当前环境 👉👉👉👉👉 ${isDev ? 'DEV' : 'RELEASE'}`); +console.log(`----------------------------------------`); +// 分支 +const branch = 'v2'; +// 仓库根目录 +const remoteGithubRoot = `https://raw.githubusercontent.com/Enjoyee/Scriptable/${branch}`; +const remoteHomeLandRoot = `https://glimmerk.coding.net/p/Scriptable/shared-depot/source/git/raw/${branch}`; +// 依赖包目录 +const fm = FileManager.local(); +const rootDir = fm.documentsDirectory(); +const cacheDir = fm.joinPath(rootDir, 'LSP'); +const dependencyFileName = isDev ? "_LSP.js" : `${cacheDir}/_LSP.js`; +// 下载依赖包 +await downloadLSPDependency(); +// ------------------------------------------------------- +if (typeof require === 'undefined') require = importModule +// 引入相关方法 +const { BaseWidget } = require(dependencyFileName); + +// @定义小组件 +class Widget extends BaseWidget { + + constructor(scriptName) { + super(scriptName); + this.domain = 'https://cikeee.cc'; + this.defaultConfig.refreshInterval = `${2 * 60}`; + this.backgroundColor = '#f0f0f4,#161823'; + this.defaultConfig.bgType = '2'; + this.titleColor = Color.dynamic(new Color('#222222'), new Color('#AAAAAA')); + this.descColor = Color.dynamic(new Color('#FFFFFF'), new Color('#EEEEEE')); + this.subTitleColor = Color.dynamic(new Color('#555555'), new Color('#AAAAAA')); + } + + async getAppViewOptions() { + return { + showWidgetBg: false, + widgetProvider: { + small: false, // 是否提供小号组件 + medium: false, // 是否提供中号组件 + large: true, // 是否提供大号组件 + }, + // 预览界面的组件设置item + settingItems: [], + }; + } + + async render({ widgetSetting, family }) { + return await this.provideLargeWidget(); + } + + async provideLargeWidget() { + const RES = await this.loadMovieCalendar(); + const { movieImg, movieDesc, movieName, movieInformation, movieRating, movieLink } = RES; + const lunarInfo = await this.getLunarInfo(); + const infoLunarText = `农历${lunarInfo.infoLunarText}`; + // ---------------------------------------- + const widgetSize = this.getWidgetSize('大号'); + //================================= + const widget = new ListWidget(); + widget.setPadding(0, 0, 0, 0); + //================================= + let stack = widget.addStack(); + stack.size = new Size(widgetSize.width, widgetSize.height); + stack.layoutVertically(); + stack.url = `${this.domain}${movieLink}`; + // ----------------------------------------TOP + let topStack = stack.addStack(); + topStack.layoutVertically(); + topStack.setPadding(0, 16, 16, 16); + topStack.size = new Size(widgetSize.width, widgetSize.height * 0.7); + let image = await this.getImageByUrl(`${this.domain}${movieImg}`); + image = await this.loadShadowColor2Image(image, new Color('#000000', 0.4)); + widget.backgroundImage = image; + topStack.addSpacer(); + // + let textSpan = topStack.addText('❝'); + textSpan.textColor = this.descColor; + textSpan.font = Font.lightSystemFont(20); + // + textSpan = topStack.addText(movieDesc); + textSpan.textOpacity = 0.9; + textSpan.textColor = this.descColor; + textSpan.font = Font.systemFont(14); + // ----------------------------------------BOTTOM + let bottomStack = stack.addStack(); + bottomStack.backgroundColor = this.dynamicColor("#f0f0f4", "#161823"); + bottomStack.size = new Size(widgetSize.width, widgetSize.height * 0.3); + bottomStack.layoutHorizontally(); + bottomStack.addSpacer(10); + // + let movieInfoStack = bottomStack.addStack(); + movieInfoStack.addSpacer(); + movieInfoStack.layoutVertically(); + textSpan = movieInfoStack.addText(`${movieName}`); + textSpan.textColor = this.titleColor; + textSpan.font = Font.mediumSystemFont(17); + // + let imgSpan; + let ratingSize = new Size(18, 18); + let ratingColor = new Color('#F8D454'); + movieInfoStack.addSpacer(6); + let hStack = movieInfoStack.addStack(); + hStack.layoutHorizontally(); + hStack.centerAlignContent(); + hStack.addSpacer(6); + let emptyStar = this.getSFSymbol('star'); + let fillStar = this.getSFSymbol('star.fill'); + let halfStar = this.getSFSymbol('star.leadinghalf.filled'); + const fillCount = Math.floor(movieRating / 2); + const remainCount = movieRating / 2 - fillCount; + let totalCount = 0; + for (let index = 0; index < fillCount; index++) { + totalCount += 1; + imgSpan = hStack.addImage(fillStar); + imgSpan.tintColor = ratingColor; + imgSpan.imageSize = ratingSize; + hStack.addSpacer(2); + } + if (remainCount >= 0.5) { + totalCount += 1; + if (halfStar == undefined) { + halfStar = emptyStar; + } + imgSpan = hStack.addImage(halfStar); + imgSpan.tintColor = ratingColor; + imgSpan.imageSize = ratingSize; + hStack.addSpacer(2); + } + for (let index = 0; index < 5 - totalCount; index++) { + imgSpan = hStack.addImage(emptyStar); + imgSpan.tintColor = ratingColor; + imgSpan.imageSize = ratingSize; + } + hStack.addSpacer(8); + textSpan = hStack.addText(`豆瓣评分${movieRating}`); + textSpan.textColor = this.subTitleColor; + textSpan.font = Font.semiboldSystemFont(12); + // + movieInfoStack.addSpacer(6); + hStack = movieInfoStack.addStack(); + hStack.layoutHorizontally(); + hStack.addSpacer(8) + textSpan = hStack.addText(`${movieInformation}`); + textSpan.textColor = this.subTitleColor; + textSpan.font = Font.semiboldSystemFont(13); + movieInfoStack.addSpacer(); + // ---------------------------------------- + bottomStack.addSpacer(); + const currDate = new Date(); + let dateStack = bottomStack.addStack(); + dateStack.url = `https://www.cikeee.com/wangri`; + dateStack.centerAlignContent(); + dateStack.size = new Size(110, 0); + dateStack.layoutVertically(); + hStack = dateStack.addStack(); + hStack.addSpacer(); + let date = currDate.getDate(); + textSpan = hStack.addText(date < 10 ? `0${date}` : `${date}`); + hStack.addSpacer(); + textSpan.textColor = this.titleColor; + textSpan.font = Font.semiboldSystemFont(48); + // + let month = ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'][currDate.getMonth()]; + let week = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'][currDate.getDay()]; + hStack = dateStack.addStack(); + hStack.addSpacer(); + textSpan = hStack.addText(`${month} | ${week}`); + hStack.addSpacer(); + textSpan.textColor = this.subTitleColor; + textSpan.font = Font.mediumSystemFont(13); + // + dateStack.addSpacer(4); + hStack = dateStack.addStack(); + hStack.addSpacer(); + textSpan = hStack.addText(`${infoLunarText}`); + hStack.addSpacer(); + textSpan.textColor = this.subTitleColor; + textSpan.font = Font.mediumSystemFont(13); + bottomStack.addSpacer(6); + //================================= + return widget; + } + + // --------------------------NET START-------------------------- + async loadHTML(url) { + let req = new Request(url); + req.headers = { + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36", + }; + let html = await req.loadString(); + return html.replace(/(\r\n|\n|\r)/gm, ""); + } + + async loadMovieCalendar() { + const link = this.domain; + let response = undefined; + try { + const ufm = this.useFileManager(); + const webview = new WebView(); + const cacheFileName = this.md5(link); + const lastCacheTime = ufm.getCacheModifyDate(cacheFileName); + const timeInterval = Math.floor((this.getCurrentTimeStamp() - lastCacheTime) / 60); + // 读取本地缓存 + const localCache = ufm.readStringCache(cacheFileName); + const canUseCache = localCache != null && localCache.length > 0; + // 过时且有本地缓存则直接返回本地缓存数据 + const { refreshInterval = '0' } = this.readWidgetSetting(); + const shouldLoadCache = timeInterval <= Number(refreshInterval) && canUseCache; + let html = undefined; + if (!shouldLoadCache) { + console.log(`-->>在线加载网页数据:${link}`); + html = await this.loadHTML(link); + ufm.writeStringCache(cacheFileName, html); + } else { + html = ufm.readStringCache(cacheFileName); + console.log(`-->>加载缓存网页数据:${link}`); + } + await webview.loadHTML(html); + const getData = + ` + function getData() { + let movieImg = document.getElementById('movie-img').src; + let movieDesc = document.querySelector('span#movie-text').textContent; + let movieName = document.querySelector('a#movie-name').textContent.replaceAll('——', ''); + let movieInformation = document.querySelector('a#movie-information').textContent; + let movieRating = movieInformation.slice(0, 3); + movieInformation = movieInformation.slice(5); + let movieLink = document.querySelector('a#movie-img-a').href; + return { movieImg, movieDesc, movieName, movieInformation, movieRating, movieLink }; + } + getData() + ` + // 热榜数据 + response = await webview.evaluateJavaScript(getData, false); + if (response.titleArr?.length > 0) { + this.useFileManager().writeStringCache('movieCalendar', JSON.stringify(response)); + } + } catch (error) { + console.error(`🚫 请求数据出错了=>${error}`); + response = JSON.parse(this.useFileManager().readStringCache('movieCalendar')); + } + return response; + } + // --------------------------NET END-------------------------- + +} + +await new Widget(Script.name()).run(); + + +// ================================================================================= +// ================================================================================= +async function downloadLSPDependency() { + let fm = FileManager.local(); + const fileName = fm.joinPath(fm.documentsDirectory(), `LSP/${Script.name()}/settings.json`); + const fileExists = fm.fileExists(fileName); + let cacheString = '{}'; + if (fileExists) { + cacheString = fm.readString(fileName); + } + const use_github = JSON.parse(cacheString)['use_github']; + const dependencyURL = `${use_github ? remoteGithubRoot : remoteHomeLandRoot}/_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 || update) { + console.log(`🤖 DEV 开始${update ? '更新' + dependencyLSP : '下载'}依赖~`); + keySave('VERSION', dependencyLSP); + await downloadFile2Scriptable('_LSP', dependencyURL); + } + return; + } + + ////////////////////////////////////////////////////////// + console.log(`----------------------------------------`); + const remoteDependencyExit = fm.fileExists(`${cacheDir}/_LSP.js`); + console.log(`🚀 RELEASE依赖文件${remoteDependencyExit ? '已存在 ✅' : '不存在 🚫'}`); + // ------------------------------ + if (!remoteDependencyExit || update) { // 下载依赖 + // 创建根目录 + if (!fm.fileExists(cacheDir)) { + fm.createDirectory(cacheDir, true); + } + // 下载 + 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 { + console.error('🚫 获取依赖环境脚本失败,请重试!'); + console.log(`----------------------------------------`); + } + } +} + +/** + * 获取保存的文件名 + * @param {*} fileName + * @returns + */ +function getSaveFileName(fileName) { + const hasSuffix = fileName.lastIndexOf(".") + 1; + return !hasSuffix ? `${fileName}.js` : fileName; +}; + +/** + * 保存文件到Scriptable软件目录,app可看到 + * @param {*} fileName + * @param {*} content + * @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; + } +}; + +/** + * 下载js文件到Scriptable软件目录 + * @param {*} moduleName 名称 + * @param {*} url 在线地址 + * @returns + */ +async function downloadFile2Scriptable(moduleName, url) { + const req = new Request(url); + const content = await req.loadString(); + 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 diff --git "a/\347\275\221\347\273\234\345\233\276\347\211\207\350\275\256\346\222\255.scriptable.js" "b/\347\275\221\347\273\234\345\233\276\347\211\207\350\275\256\346\222\255.scriptable.js" deleted file mode 100644 index 8a0e482..0000000 --- "a/\347\275\221\347\273\234\345\233\276\347\211\207\350\275\256\346\222\255.scriptable.js" +++ /dev/null @@ -1,51 +0,0 @@ -//------------------------------------------------ -const env = importModule('Env.js') -//------------------------------------------------ -// 配置区 -env.configs.previewSize = "Small" // 预览大小【小:Small,中:Medium,大:Large】 -env.configs.changePicBg = true // 是否需要更换背景 -env.configs.colorMode = false // 是否是纯色背景 -env.configs.bgColor = new Color("000000") // 小组件背景色 -env.configs.topPadding = 0 // 内容区边距 -env.configs.leftPadding = 0 // 内容区边距 -env.configs.bottomPadding = 0 // 内容区边距 -env.configs.rightPadding = 0 // 内容区边距 -// -const imgStyle = env.imgStyle -const textStyle = env.textStyle -//------------------------------------------------ -// 脚本名字 -const name = Script.name() -//------------------------------------------------ - - -//↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓内容区↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ -//------------------------------------------------ -const widget = new ListWidget() -const contentStack = widget.addStack() -// 图片链接 -const imgObjs = [ - "https://patchwiki.biligame.com/images/dongsen/a/a2/3f1qchqu7q74dsis7uyz7jfqt6xgo0d.png", - "https://patchwiki.biligame.com/images/dongsen/7/7e/awj7kx6aqiuoventjw1w3qu7imv1f9n.png", - "https://patchwiki.biligame.com/images/dongsen/0/01/mnuuv9nmyb8q7qv8fuqflzn8ds465zp.png" -] -// 索引值 -const key = parseInt(Math.random() * Object.keys(imgObjs).length).toString() -let imgUrl = imgObjs[key] -if(imgUrl == undefined) { - imgUrl = imgObjs[0] -} -log(`图片链接:${imgUrl}`) -let img = await env.getImage(imgUrl) -imgStyle.stack = contentStack -imgStyle.width = 138 -imgStyle.height = 138 -imgStyle.img = img -env.addStyleImg() -//------------------------------------------------ -//↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑内容区↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ - -//------------------------------------------------ -// 运行脚本、预览 -await env.run(name, widget) -//------------------------------------------------ diff --git "a/\350\201\224\351\200\232.js" "b/\350\201\224\351\200\232.js" new file mode 100644 index 0000000..12a4a6e --- /dev/null +++ "b/\350\201\224\351\200\232.js" @@ -0,0 +1,489 @@ +// Variables used by Scriptable. +// These must be at the very top of the file. Do not edit. +// icon-color: red; icon-glyph: mobile-alt; +/** + * Author:LSP + * Date:2023-04-15 + */ +// ------------------------------------------------------- +// 是否是开发环境,配合手机端调试使用,正式发布设置为false +const isDev = false; +const dependencyLSP = '20230511'; +console.log(`当前环境 👉👉👉👉👉 ${isDev ? 'DEV' : 'RELEASE'}`); +console.log(`----------------------------------------`); +// 分支 +const branch = 'v2'; +// 仓库根目录 +const remoteGithubRoot = `https://raw.githubusercontent.com/Enjoyee/Scriptable/${branch}`; +const remoteHomeLandRoot = `https://glimmerk.coding.net/p/Scriptable/shared-depot/source/git/raw/${branch}`; +// 依赖包目录 +const fm = FileManager.local(); +const rootDir = fm.documentsDirectory(); +const cacheDir = fm.joinPath(rootDir, 'LSP'); +const dependencyFileName = isDev ? "_LSP.js" : `${cacheDir}/_LSP.js`; +// 下载依赖包 +await downloadLSPDependency(); +// ------------------------------------------------------- +if (typeof require === 'undefined') require = importModule +// 引入相关方法 +const { BaseWidget } = require(dependencyFileName); + +// @定义小组件 +class Widget extends BaseWidget { + + defaultPreference = { + fetchUrl: { + detail: `https://m.client.10010.com/mobileserviceimportant/home/queryUserInfoSeven?version=iphone_c@10.0100&desmobiel=13232135179&showType=0`, + }, + titleDayColor: '#000000', + titleNightColor: '#999999', + descDayColor: '#000000', + descNightColor: '#999999', + refreshTimeDayColor: '#000000', + refreshTimeNightColor: '#999999', + }; + + fee = { + title: '📱 剩余话费:', + balance: 0, + unit: '元', + }; + + voice = { + title: '⏳ 剩余语音:', + balance: 0, + percent: 0, + unit: '分钟', + }; + + flow = { + title: '⛽️ 剩余流量:', + balance: 0, + percent: 0, + unit: 'MB', + }; + + getValueByKey = (key) => this.readWidgetSetting()[key] ?? ''; + + titleDayColor = () => this.getValueByKey('titleDayColor'); + titleNightColor = () => this.getValueByKey('titleNightColor'); + + descDayColor = () => this.getValueByKey('descDayColor'); + descNightColor = () => this.getValueByKey('descNightColor'); + + refreshTimeDayColor = () => this.getValueByKey('refreshTimeDayColor'); + refreshTimeNightColor = () => this.getValueByKey('refreshTimeNightColor'); + + constructor(scriptName) { + super(scriptName); + this.reset = false; + this.defaultConfig.bgType = '3'; + this.backgroundColor = '#FEFCF3,#0A2647'; + this.cookie = this.getValueByKey('cookie'); + } + + async getAppViewOptions() { + return { + widgetProvider: { + small: true, // 是否提供小号组件 + medium: false, // 是否提供中号组件 + large: false, // 是否提供大号组件 + }, + // 预览界面的组件设置item + settingItems: [ + { + name: 'chinaUnicomCK', + label: '联通Cookie', + type: 'cell', + icon: `${this.getRemoteRootPath()}/img/icon_10010.png`, + needLoading: true, + desc: this.getValueByKey('cookie')?.length > 0 ? '已填写' : '未填写' + }, + { + name: 'otherSetting', + label: '其他设置', + type: 'cell', + icon: 'https://cdnjson.com/images/2024/02/05/settings.png', + needLoading: true, + childItems: [ + { + items: [ + { + name: 'titleDayColor', + label: '标题浅色颜色', + type: 'color', + icon: { name: 'pencil.and.outline', color: '#3a86ff', }, + needLoading: false, + default: this.titleDayColor(), + }, + { + name: 'titleNightColor', + label: '标题深色颜色', + type: 'color', + icon: { name: 'square.and.pencil', color: '#3a0ca3', }, + needLoading: false, + default: this.titleNightColor(), + }, + ], + }, + { + items: [ + { + name: 'descDayColor', + label: '内容浅色颜色', + type: 'color', + icon: { name: 'pencil.and.outline', color: '#3a86ff', }, + needLoading: false, + default: this.descDayColor(), + }, + { + name: 'descNightColor', + label: '内容深色颜色', + type: 'color', + icon: { name: 'square.and.pencil', color: '#3a0ca3', }, + needLoading: false, + default: this.descNightColor(), + }, + ], + }, + { + items: [ + { + name: 'refreshTimeDayColor', + label: '刷新时间浅色颜色', + type: 'color', + icon: { name: 'pencil.and.outline', color: '#3a86ff', }, + needLoading: false, + default: this.refreshTimeDayColor(), + }, + { + name: 'refreshTimeNightColor', + label: '刷新时间深色颜色', + type: 'color', + icon: { name: 'square.and.pencil', color: '#3a0ca3', }, + needLoading: false, + default: this.refreshTimeNightColor(), + }, + ], + }, + ] + }, + ], + // cell类型的item点击回调 + onItemClick: async (item) => { + const widgetSetting = this.readWidgetSetting(); + let insertDesc = widgetSetting.phone?.length > 0 && widgetSetting.cookie?.length > 0 ? '已填写' : '未填写'; + switch (item.name) { + case 'chinaUnicomCK': + let phone; + let ck; + await this.generateInputAlert({ + title: '登录信息填写', + message: '自己抓取联通客户端app的cookie填入', + options: [ + { hint: '请输入联通号码', value: widgetSetting?.phone ?? '' }, + { hint: '请输入cookie', value: widgetSetting?.cookie ?? '' }, + ] + }, async (inputArr) => { + this.reset = true; + phone = inputArr[0].value; + ck = inputArr[1].value; + // 保存配置 + widgetSetting['phone'] = phone; + widgetSetting['cookie'] = ck; + }); + this.cookie = widgetSetting.cookie; + insertDesc = phone?.length > 0 && ck?.length > 0 ? '已填写' : '未填写'; + this.writeWidgetSetting({ ...widgetSetting }); + break; + } + return { + desc: { value: insertDesc }, + }; + }, + }; + } + + async render() { + return await this.provideSmallWidget(); + } + + async provideSmallWidget() { + // ======================================== + await this.loadDetailInfo(); + const voiceBalance = this.voice.balance; + // ======================================== + const widget = new ListWidget(); + widget.setPadding(0, 0, 0, 0); + // ======================================== + const widgetSize = this.getWidgetSize('小号'); + let stack = widget.addStack(); + let image = await this.getImageByUrl(`${this.getRemoteRootPath()}/img/bg_doraemon_1.png`); + stack.setPadding(4, 12, 0, 12); + stack.backgroundImage = image; + stack.size = new Size(widgetSize.width, widgetSize.height); + stack.layoutVertically(); + stack.addSpacer(); + // ======================================== + const titleFont = Font.lightSystemFont(13); + const infoFont = Font.mediumSystemFont(16); + const titleTextColor = Color.dynamic(new Color(this.titleDayColor()), new Color(this.titleNightColor())); + const descTextColor = Color.dynamic(new Color(this.descDayColor()), new Color(this.descNightColor())); + const refreshTimeTextColor = Color.dynamic(new Color(this.refreshTimeDayColor()), new Color(this.refreshTimeNightColor())); + const descSpacer = 3; + const lineSpacer = 4; + const descLeftSpacer = 22; + // ======================================== + let textSpan = stack.addText(`${this.fee.title}`); + textSpan.textColor = titleTextColor + textSpan.font = titleFont; + // + stack.addSpacer(descSpacer); + let displayStack = stack.addStack(); + displayStack.centerAlignContent(); + displayStack.addSpacer(descLeftSpacer); + textSpan = displayStack.addText(`${this.fee.balance}${this.fee.unit}`); + textSpan.textColor = descTextColor + textSpan.font = infoFont + displayStack.addSpacer(); + // ======================================== + stack.addSpacer(lineSpacer); + textSpan = stack.addText(`${this.voice.title}`); + textSpan.textColor = titleTextColor + textSpan.font = titleFont; + // + stack.addSpacer(descSpacer); + displayStack = stack.addStack(); + displayStack.centerAlignContent(); + displayStack.addSpacer(descLeftSpacer); + textSpan = displayStack.addText(`${voiceBalance}${this.voice.unit}`); + textSpan.textColor = descTextColor + textSpan.font = infoFont + displayStack.addSpacer(); + // ======================================== + stack.addSpacer(lineSpacer); + textSpan = stack.addText(`${this.flow.title}`); + textSpan.textColor = titleTextColor + textSpan.font = titleFont; + // + stack.addSpacer(descSpacer); + displayStack = stack.addStack(); + displayStack.centerAlignContent(); + displayStack.addSpacer(descLeftSpacer); + textSpan = displayStack.addText(`${this.flow.balance}${this.flow.unit}`); + textSpan.textColor = descTextColor + textSpan.font = infoFont + displayStack.addSpacer(); + // ======================================== + + // ======================================== + stack.addSpacer(6); + let btStack = stack.addStack(); + btStack.centerAlignContent(); + btStack.addSpacer(6); + image = this.getSFSymbol('goforward'); + let imgSpan = btStack.addImage(image); + imgSpan.imageSize = new Size(9, 9); + imgSpan.tintColor = refreshTimeTextColor + btStack.addSpacer(4); + if (this.success) { + this.lastUpdate = this.getDateStr(new Date(), 'HH:mm'); + } + textSpan = btStack.addText(`${this.getDateStr(new Date(), 'HH:mm')}`); + textSpan.textColor = refreshTimeTextColor + textSpan.font = Font.lightSystemFont(10); + btStack.addSpacer(); + image = await this.getImageByUrl(`${this.getRemoteRootPath()}/img/ic_logo_10010.png`); + imgSpan = btStack.addImage(image); + imgSpan.imageSize = new Size(14, 14); + stack.addSpacer(); + //================================= + return widget; + } + + // --------------------------NET START-------------------------- + /** + * 流量格式化 + * @param {*} flow + * @returns + */ + formatFlow = (flow) => { + const remain = flow / 1024; + if (remain < 1024) { + return { amount: remain.toFixed(2), unit: 'MB' }; + } + return { amount: (remain / 1024).toFixed(2), unit: 'GB' }; + } + + /** + * 加载明细 + * @returns + */ + loadDetailInfo = async () => { + const response = await this.httpGet( + this.defaultPreference.fetchUrl.detail, + { + useCache: this.reset ?? false, + dataSuccess: (res) => res.code == 'Y', + headers: { + 'Host': 'm.client.10010.com', + 'User-Agent': 'ChinaUnicom.x CFNetwork iOS/16.3 unicom{version:iphone_c@10.0100}', + 'cookie': this.cookie, + } + } + ); + if (response?.code == 'Y') { + const { feeResource, voiceResource, flowResource } = response; + // 话费 + this.fee = { + title: `📱 ${feeResource?.dynamicFeeTitle}:`, + balance: feeResource?.feePersent, + unit: feeResource?.newUnit, + }; + // 语音 + this.voice = { + title: `⏳ ${voiceResource?.dynamicVoiceTitle}:`, + balance: voiceResource?.voicePersent, + percent: 0, + unit: voiceResource?.newUnit, + }; + // 流量 + this.flow = { + title: `⛽️ ${flowResource?.dynamicFlowTitle}:`, + balance: flowResource?.flowPersent, + percent: 0, + unit: flowResource?.newUnit, + }; + console.log(`话费:`); + console.log(JSON.stringify(this.fee, null, 2)); + console.log(`语音:`); + console.log(JSON.stringify(this.voice, null, 2)); + console.log(`流量:`); + console.log(JSON.stringify(this.flow, null, 2)); + } else { + this.notify('联通小组件', `可能cookie失效了~`); + } + } + + // --------------------------NET END-------------------------- +} + +await new Widget(Script.name()).run(); + + +// ================================================================================= +// ================================================================================= +async function downloadLSPDependency() { + let fm = FileManager.local(); + const fileName = fm.joinPath(fm.documentsDirectory(), `LSP/${Script.name()}/settings.json`); + const fileExists = fm.fileExists(fileName); + let cacheString = '{}'; + if (fileExists) { + cacheString = fm.readString(fileName); + } + const use_github = JSON.parse(cacheString)['use_github']; + const dependencyURL = `${use_github ? remoteGithubRoot : remoteHomeLandRoot}/_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 || update) { + console.log(`🤖 DEV 开始${update ? '更新' + dependencyLSP : '下载'}依赖~`); + keySave('VERSION', dependencyLSP); + await downloadFile2Scriptable('_LSP', dependencyURL); + } + return; + } + + ////////////////////////////////////////////////////////// + console.log(`----------------------------------------`); + const remoteDependencyExit = fm.fileExists(`${cacheDir}/_LSP.js`); + console.log(`🚀 RELEASE依赖文件${remoteDependencyExit ? '已存在 ✅' : '不存在 🚫'}`); + // ------------------------------ + if (!remoteDependencyExit || update) { // 下载依赖 + // 创建根目录 + if (!fm.fileExists(cacheDir)) { + fm.createDirectory(cacheDir, true); + } + // 下载 + 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 { + console.error('🚫 获取依赖环境脚本失败,请重试!'); + console.log(`----------------------------------------`); + } + } +} + +/** + * 获取保存的文件名 + * @param {*} fileName + * @returns + */ +function getSaveFileName(fileName) { + const hasSuffix = fileName.lastIndexOf(".") + 1; + return !hasSuffix ? `${fileName}.js` : fileName; +}; + +/** + * 保存文件到Scriptable软件目录,app可看到 + * @param {*} fileName + * @param {*} content + * @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; + } +}; + +/** + * 下载js文件到Scriptable软件目录 + * @param {*} moduleName 名称 + * @param {*} url 在线地址 + * @returns + */ +async function downloadFile2Scriptable(moduleName, url) { + const req = new Request(url); + const content = await req.loadString(); + 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 diff --git "a/\351\235\222\350\233\231\345\244\251\346\260\224.js" "b/\351\235\222\350\233\231\345\244\251\346\260\224.js" new file mode 100644 index 0000000..a8df267 --- /dev/null +++ "b/\351\235\222\350\233\231\345\244\251\346\260\224.js" @@ -0,0 +1,401 @@ +// Variables used by Scriptable. +// These must be at the very top of the file. Do not edit. +// icon-color: green; icon-glyph: frog; +/** + * Author:LSP + * Date:2023-05-12 + */ +// ------------------------------------------------------- +// 是否是开发环境,配合手机端调试使用,正式发布设置为false +const isDev = false; +const dependencyLSP = '20230512'; +console.log(`当前环境 👉👉👉👉👉 ${isDev ? 'DEV' : 'RELEASE'}`); +console.log(`----------------------------------------`); +// 分支 +const branch = 'v2'; +// 仓库根目录 +const remoteGithubRoot = `https://raw.githubusercontent.com/Enjoyee/Scriptable/${branch}`; +const remoteHomeLandRoot = `https://glimmerk.coding.net/p/Scriptable/shared-depot/source/git/raw/${branch}`; +// 依赖包目录 +const fm = FileManager.local(); +const rootDir = fm.documentsDirectory(); +const cacheDir = fm.joinPath(rootDir, 'LSP'); +const dependencyFileName = isDev ? "_LSP.js" : `${cacheDir}/_LSP.js`; +// 下载依赖包 +await downloadLSPDependency(); +// ------------------------------------------------------- +if (typeof require === 'undefined') require = importModule +// 引入相关方法 +const { BaseWidget } = require(dependencyFileName); + +// @定义小组件 +class Widget extends BaseWidget { + + defaultPreference = { + caiyun: 'UR8ASaplvIwavDfR', + enFontUrl: `${this.getRemoteRootPath()}/font/Facon.ttf`, + descMap: { + 'CLEAR_DAY': '𝑪𝒍𝒆𝒂𝒓', + 'CLEAR_NIGHT': '𝑪𝒍𝒆𝒂𝒓', + 'PARTLY_CLOUDY_DAY': '𝑷𝒂𝒓𝒕𝒍𝒚 𝑪𝒍𝒐𝒖𝒅𝒚', + 'PARTLY_CLOUDY_NIGHT': '𝑷𝒂𝒓𝒕𝒍𝒚 𝑪𝒍𝒐𝒖𝒅𝒚', + 'CLOUDY': '𝑪𝒍𝒐𝒖𝒅𝒚', + 'LIGHT_HAZE': '𝑯𝒂𝒛𝒆', + 'MODERATE_HAZE': '𝑯𝒂𝒛𝒆', + 'HEAVY_HAZE': '𝑯𝒂𝒛𝒆', + 'LIGHT_RAIN': '𝑹𝒂𝒊𝒏', + 'MODERATE_RAIN': '𝑹𝒂𝒊𝒏', + 'HEAVY_RAIN': '𝑹𝒂𝒊𝒏', + 'STORM_RAIN': '𝑹𝒂𝒊𝒏', + 'FOG': '𝑭𝒐𝒈', + 'LIGHT_SNOW': '𝑺𝒏𝒐𝒘', + 'MODERATE_SNOW': '𝑺𝒏𝒐𝒘', + 'HEAVY_SNOW': '𝑺𝒏𝒐𝒘', + 'STORM_SNOW': '𝑺𝒏𝒐𝒘', + 'DUST': '𝑫𝒖𝒔𝒕', + 'SAND': '𝑺𝒂𝒏𝒅', + 'WIND': '𝑾𝒊𝒏𝒅', + }, + }; + + getValueByKey = (key) => this.readWidgetSetting()[key] ?? this.defaultPreference[key]; + + caiyun = () => this.getValueByKey('caiyun'); + + constructor(scriptName) { + super(scriptName); + } + + async getAppViewOptions() { + return { + showWidgetBg: false, + widgetProvider: { + small: false, // 是否提供小号组件 + medium: true, // 是否提供中号组件 + large: false, // 是否提供大号组件 + }, + // 预览界面的组件设置item + settingItems: [ + { + name: 'caiyun', + label: '彩云key', + type: 'cell', + icon: `${this.getRemoteRootPath()}/img/ic_weather_loop.gif`, + alert: { + title: '彩云key', + message: "外部已使用默认key\\n如果不可用了需要自己去申请填入替换", + options: [ + { + key: 'caiyun', + hint: '请输入彩云key', + } + ] + }, + needLoading: false, + default: this.caiyun(), + }, + ] + }; + } + + async render({ widgetSetting, family }) { + return await this.provideMediumWidget(); + } + + async provideMediumWidget() { + // ---------------------------------------- + // 请求彩云 + const weatherInfo = await this.getWeather(); + // ======================================== + // 天气对应的背景 + let weatherBgUrl = this.weatherBgUrl(weatherInfo.weatherIco); + let image = await this.getImageByUrl(weatherBgUrl); + const widgetSize = this.getWidgetSize('中号'); + //================================= + const widget = new ListWidget(); + widget.setPadding(0, 0, 0, 0); + //================================= + let stack = widget.addStack(); + stack.setPadding(10, 10, 0, 0); + stack.size = new Size(widgetSize.width, widgetSize.height); + stack.backgroundImage = image; + stack.layoutVertically(); + // + let tipStack = stack.addStack(); + tipStack.layoutHorizontally(); + tipStack.setPadding(0, 0, 10, 10); + let temperatureImg = await this.drawTextWithCustomFont(this.defaultPreference.enFontUrl, `${weatherInfo.temperature}°c`, 25, "fff", "left"); + let imgSpan = tipStack.addImage(temperatureImg); + imgSpan.imageSize = new Size(temperatureImg.size.width / 2, temperatureImg.size.height / 2); + imgSpan.leftAlignImage(); + // + tipStack.addSpacer(); + let textSpan = tipStack.addText(this.weatherPhenomenonCN(weatherInfo.weatherIco)); + textSpan.font = Font.mediumSystemFont(13); + textSpan.textColor = new Color('#fff'); + textSpan.shadowRadius = 0.4; + textSpan.shadowColor = new Color('#444'); + stack.addSpacer(); + //================================= + return widget; + } + + /** + * 获取天气背景 + */ + weatherBgUrl(weatherDesc) { + return `https://gitee.com/enjoyee/img/raw/master/bg/frog/${weatherDesc}.png` + } + + weatherPhenomenonCN = (phenomenonEN) => { + return this.defaultPreference.descMap[phenomenonEN]; + } + + // --------------------------NET START-------------------------- + + /** + * 获取彩云天气信息 + * @param {*} dailysteps + * @returns + */ + getWeather = async (dailysteps = 6) => { + // 开启质量 + function airQuality(levelNum) { + // 0-50 优,51-100 良,101-150 轻度污染,151-200 中度污染 + // 201-300 重度污染,>300 严重污染 + if (levelNum >= 0 && levelNum <= 50) { + return "优秀"; + } else if (levelNum >= 51 && levelNum <= 100) { + return "良好"; + } else if (levelNum >= 101 && levelNum <= 150) { + return "轻度"; + } else if (levelNum >= 151 && levelNum <= 200) { + return "中度"; + } else if (levelNum >= 201 && levelNum <= 300) { + return "重度"; + } else { + return "严重"; + } + } + + // 获取天气icon + function getWeatherIco(weatherDesc, keyIndex) { + if (keyIndex < 1 || keyIndex > 10) { + keyIndex = parseInt(Math.random() * 10) + 1; + } + return `https://gitee.com/enjoyee/img/raw/master/icon/weather${keyIndex}/${weatherDesc}.png`; + } + + // 获取位置 + let location = await this.getLocation(); + // 彩云api key + const caiyunKey = this.caiyun(); + // 彩云天气api + const url = `https://api.caiyunapp.com/v2.5/${caiyunKey}/${location.longitude},${location.latitude}/weather.json?alert=true&dailysteps=${dailysteps}`; + const weatherJsonData = await this.httpGet(url); + // 天气数据 + let weatherInfo = {}; + if (weatherJsonData && weatherJsonData.status == "ok") { + // 天气突发预警 + let alertWeather = weatherJsonData.result.alert.content; + if (alertWeather.length > 0) { + const alertWeatherTitle = alertWeather[0].title; + console.log(`👉突发的天气预警:${alertWeatherTitle}`); + weatherInfo.alertWeatherTitle = alertWeatherTitle; + } + // 全部温度 + weatherInfo.daily = weatherJsonData.result.daily; + // 温度范围 + const temperatureData = weatherInfo.daily.temperature[0]; + // 最低温度 + const minTemperature = temperatureData.min; + // 最高温度 + const maxTemperature = temperatureData.max; + weatherInfo.minTemperature = Math.round(minTemperature); + weatherInfo.maxTemperature = Math.round(maxTemperature); + // 体感温度 + const bodyFeelingTemperature = weatherJsonData.result.realtime.apparent_temperature; + weatherInfo.bodyFeelingTemperature = Math.floor(bodyFeelingTemperature); + // 显示温度 + const temperature = weatherJsonData.result.realtime.temperature; + weatherInfo.temperature = Math.floor(temperature); + // 天气状况 weatherIcos[weatherIco] + let weather = weatherJsonData.result.realtime.skycon; + weatherInfo.weatherIco = weather; + weatherInfo.weatherIcoUrl = getWeatherIco(weather, Number(this.readWidgetSetting()?.weatherIco ?? 0)); + // 天气描述 + const weatherDesc = weatherJsonData.result.forecast_keypoint; + weatherInfo.weatherDesc = weatherDesc.replace("最近的", "") + .replace("。还在加班么?", ",") + .replace("您", "") + .replace(",放心出门吧", "") + .replace("呢", ""); + console.log("👉天气预告:" + weatherDesc); + // 降水率 + weatherInfo.probability = weatherJsonData.result.minutely.probability; + // 相对湿度 + const humidity = (Math.floor(weatherJsonData.result.realtime.humidity * 100)) + "%"; + weatherInfo.humidity = humidity; + // 舒适指数 + const comfort = weatherJsonData.result.realtime.life_index.comfort.desc; + weatherInfo.comfort = comfort; + // 紫外线指数 + const ultraviolet = weatherJsonData.result.realtime.life_index.ultraviolet.desc; + weatherInfo.ultraviolet = ultraviolet; + // 空气质量 + const aqi = weatherJsonData.result.realtime.air_quality.aqi.chn; + const aqiInfo = airQuality(aqi); + weatherInfo.aqiInfo = aqiInfo; + // 日出日落 + const astro = weatherJsonData.result.daily.astro[0]; + // 日出 + const sunrise = astro.sunrise.time; + // 日落 + const sunset = astro.sunset.time; + weatherInfo.sunrise = sunrise.toString(); + weatherInfo.sunset = sunset.toString(); + // 小时预告 + let hourlyArr = []; + const hourlyData = weatherJsonData.result.hourly; + const temperatureArr = hourlyData.temperature; + const temperatureSkyconArr = hourlyData.skycon; + for (var i = 0; i < temperatureArr.length; i++) { + let hourlyObj = {}; + hourlyObj.datetime = temperatureArr[i].datetime; + hourlyObj.temperature = Math.round(temperatureArr[i].value); + let weather = temperatureSkyconArr[i].value; + hourlyObj.skycon = `${weather}`; + hourlyArr.push(hourlyObj); + } + weatherInfo.hourly = hourlyArr; + } else { + console.error(`🚫 请求彩云天气出错:${weatherJsonData.status},可能是key有问题`); + this.notify('彩云', '彩云天气请求出错,可能key有问题'); + } + this.logDivider(); + return weatherInfo; + } + + // --------------------------NET END-------------------------- + +} + +await new Widget(Script.name()).run(); + + +// ================================================================================= +// ================================================================================= +async function downloadLSPDependency() { + let fm = FileManager.local(); + const fileName = fm.joinPath(fm.documentsDirectory(), `LSP/${Script.name()}/settings.json`); + const fileExists = fm.fileExists(fileName); + let cacheString = '{}'; + if (fileExists) { + cacheString = fm.readString(fileName); + } + const use_github = JSON.parse(cacheString)['use_github']; + const dependencyURL = `${use_github ? remoteGithubRoot : remoteHomeLandRoot}/_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 || update) { + console.log(`🤖 DEV 开始${update ? '更新' + dependencyLSP : '下载'}依赖~`); + keySave('VERSION', dependencyLSP); + await downloadFile2Scriptable('_LSP', dependencyURL); + } + return; + } + + ////////////////////////////////////////////////////////// + console.log(`----------------------------------------`); + const remoteDependencyExit = fm.fileExists(`${cacheDir}/_LSP.js`); + console.log(`🚀 RELEASE依赖文件${remoteDependencyExit ? '已存在 ✅' : '不存在 🚫'}`); + // ------------------------------ + if (!remoteDependencyExit || update) { // 下载依赖 + // 创建根目录 + if (!fm.fileExists(cacheDir)) { + fm.createDirectory(cacheDir, true); + } + // 下载 + 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 { + console.error('🚫 获取依赖环境脚本失败,请重试!'); + console.log(`----------------------------------------`); + } + } +} + +/** + * 获取保存的文件名 + * @param {*} fileName + * @returns + */ +function getSaveFileName(fileName) { + const hasSuffix = fileName.lastIndexOf(".") + 1; + return !hasSuffix ? `${fileName}.js` : fileName; +}; + +/** + * 保存文件到Scriptable软件目录,app可看到 + * @param {*} fileName + * @param {*} content + * @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; + } +}; + +/** + * 下载js文件到Scriptable软件目录 + * @param {*} moduleName 名称 + * @param {*} url 在线地址 + * @returns + */ +async function downloadFile2Scriptable(moduleName, url) { + const req = new Request(url); + const content = await req.loadString(); + 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