simpread/src/service/version.js
2020-06-24 18:48:01 +08:00

609 lines
33 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

console.log( "=== simpread version load ===" )
import {browser} from 'browser';
/**
* Manifest.json version
*/
const version = browser.runtime.getManifest().version.replace( /.\d{2,}/, "" ), // get x.x.x,
sub_ver = browser.runtime.getManifest().version.replace( /(\d{1,2}.){2}\d.?/, "" ), // get *.*.*.xxxx
versions = new Map([
[ "1.0.0", "Sun Jun 11 2017 12:30:00 GMT+0800 (CST)" ],
[ "1.0.1", "Fri Jun 30 2017 09:27:18 GMT+0800 (CST)" ],
[ "1.0.2", "Mon Aug 07 2017 19:03:50 GMT+0800 (CST)" ],
[ "1.0.3", "Mon Aug 21 2017 04:09:23 GMT+0800 (CST)" ],
[ "1.0.4", "Mon Sep 25 2017 14:40:27 GMT+0800 (CST)" ],
[ "1.0.5", "Wed Nov 15 2017 11:39:23 GMT+0800 (CST)" ],
[ "1.0.6", "Thu Dec 07 2017 14:48:44 GMT+0800 (CST)" ],
[ "1.1.0", "Sat Dec 23 2017 15:09:30 GMT+0800 (CST)" ],
[ "1.1.1", "Mon Jun 11 2018 15:10:12 GMT+0800 (CST)" ],
[ "1.1.2", "Tue Jun 19 2018 14:15:12 GMT+0800 (CST)" ],
[ "1.1.3", "Thu Jun 06 2019 15:47:44 GMT+0800 (CST)" ],
[ "1.1.4", "Thu Jan 16 2020 14:24:53 GMT+0800 (CST)" ],
]),
details = new Map([
[ "1.0.0", "" ],
[ "1.0.1", "新增「高级设定」选项页," ],
[ "1.0.2", "新增「自定义样式,论坛类页面与分页功能」," ],
[ "1.0.3", "新增「导出到生产力工具,发送到 Kindle自定义样式论坛类页面分页等」" ],
[ "1.0.4", "新增「高级聚焦模式、主动适配与临时阅读模式」," ],
[ "1.0.5", "新增「导出 epubTXT 阅读器,阅读模式增加目录功能,白名单等」," ],
[ "1.0.6", "新增「添加新站到阅读模式,导入第三方适配站点等」," ],
[ "1.1.0", "新增「站点编辑器,站点适配源,站点管理器等」," ],
[ "1.1.1", "新增「黑名单,全新的控制栏面板,更丰富的中文定制化,无障碍阅读等」," ],
[ "1.1.2", "新增「插件中心,站点集市等」," ],
[ "1.1.3", "新增「消息中心,帮助中心,入门指引,支持导入语雀 / 坚果云,预加载机制,增强插件 API 等」," ],
[ "1.1.4", "新增「反馈中心,支持导入 Notion, 有道笔记,为知笔记,离线下载,截图 等」," ],
]),
patchs = new Map([
[ "1.1.4.6016", "修复 Notion 相关问题,并支持 Database 导出方案," ],
[ "1.1.4.6022", "修复 Notion 授权问题,并支持 图床 导出方案," ],
[ "1.1.4.6025", "修复 Notion 授权问题," ],
]),
tips = {
"root" : value => `.version-tips[data-hits='${value}']`,
"1.1.4" : {
target: 'labs',
idx: 2,
items: [
{
id: '',
intro: '简悦 1.1.4 功能描述:<br>' + details.get( "1.1.4" ) + '详细说明 <a target="_blank" href="http://ksria.com/simpread/welcome/version_1.1.4.html">请看这里</a> 。' ,
},
{
id: 'lazyload',
intro: '现在可通过右键菜单发送「延迟加载」了',
},
{
id: 'urlscheme',
intro: '【黑名单 · 白名单 · 排除列表 · 延迟加载】加入 <b>正则表达式</b> 的方式,同时也新增加了 <a target="_blank" href="http://ksria.com/simpread/docs/#/右键菜单?id=URL编辑器">URL 编辑器</a>。',
},
{
id: 'notion',
intro: '简悦支持导出 Markdown 格式到 Notion详细说明 <a target="_blank" href="http://ksria.com/simpread/docs/#/Notion">请看这里</a>',
},
{
id: 'youdao',
intro: '简悦支持导出 Markdown 格式到 有道云笔记,详细说明 <a target="_blank" href="http://ksria.com/simpread/docs/#/有道云笔记">请看这里</a>',
},
{
id: 'weizhi',
intro: '简悦支持导出 HTML 格式到 为知笔记,详细说明 <a target="_blank" href="http://ksria.com/simpread/docs/#/为知笔记">请看这里</a>',
},
{
id: 'webdav',
intro: 'WebDAV 增加了导出格式的定制化,包括 <span>Markdown</span> <span>HTML</span>,详细说明 <a target="_blank" href="http://ksria.com/simpread/docs/#/WebDAV?id=定制">请看这里</a>',
}
]
},
"1.1.3" : {
target: 'labs',
idx: 2,
items: [
{
id: '',
intro: '简悦 1.1.3 功能描述:<br>' + details.get( "1.1.3" ) + '详细说明 <a target="_blank" href="http://ksria.com/simpread/welcome/version_1.1.3.html">请看这里</a> 。' ,
},
{
id: 'save_at',
intro: '从现在开始可以将配置文件保存到坚果云了,详细说明 <a target="_blank" href="http://ksria.com/simpread/docs/#/坚果云">请看这里</a> 。',
},
{
id: 'preload',
intro: '简悦的词法分析引擎采用了预加载机制,当系统性能吃紧时,可以选择关闭此功能,详细说明 <a target="_blank" href="http://ksria.com/simpread/docs/#/词法分析引擎?id=预加载机制">请看这里</a> 。',
},
{
id: 'lazyload',
intro: '此功能适合 <b>经常使用简悦但又性能不够</b> 的用户;需要动态加载的页面;支持 Mathjax 解析的页面等,详细说明 <a target="_blank" href="http://ksria.com/simpread/docs/#/词法分析引擎?id=预加载机制">请看这里</a> 。',
},
{
id: 'jianguo',
intro: '你可以在这里输入坚果云的用户名和授权的密码来绑定坚果云,详细说明 <a target="_blank" href="http://ksria.com/simpread/docs/#/坚果云">请看这里</a> 。',
},
{
id: 'yuque',
intro: '连接你的语雀帐号后,就可使用导出到语雀的服务了,详细说明 <a target="_blank" href="http://ksria.com/simpread/docs/#/授权服务">请看这里</a> 。',
},
{
id: 'webdav',
intro: '导出服务 <b>任意支持 WebDAV 协议</b> 了,从现在开始使用你熟悉的网盘吧,详细说明 <a target="_blank" href="http://ksria.com/simpread/docs/#/WebDAV">请看这里</a> 。',
},
{
id: 'notice',
intro: '简悦 1.1.3 版增加了消息中心,为了方便查看简悦的一些最新消息,详细说明 <a target="_blank" href="http://ksria.com/simpread/docs/#/消息中心">请看这里</a> 。',
}
]
},
"common" : {
target: 'common',
idx: 0,
items: [
{
id: 'sync',
intro: '简悦支持导出配置文件到 Dropbox 或 坚果云,详细说明 <a target="_blank" href="http://ksria.com/simpread/docs/#/同步">请看这里</a> 。',
},
{
id: 'config',
intro: '从 <b>本地导入配置文件</b> 或 <b>导出配置文件到本地</b> 。<br>注意:简悦支持导入任意版本的配置文件,但请尽量上传匹配版本的配置文件。',
},
{
id: 'oldnewsites',
intro: '从 1.1.3 开始,此功能转移到 <b>站点管理</b> 选项卡里面,此功能已废除。',
},
{
id: 'clear',
intro: '清除简悦产生的全部数据,等同于重新安装,慎用!使用前 <b>请先备份</b> 。',
}
]
},
"simple" : {
target: 'simple',
idx: 1,
items: [
{
id: 'focusmode',
intro: '使用 <a target="_blank" href="http://ksria.com/simpread/docs/#/聚焦模式">聚焦模式</a> 时的选项<br>包括:遮罩的主题色,遮罩的透明度,以及进入聚焦模式的快捷键。<br>这些功能也可以在进入此模式后通过右下角控制栏调整。',
},
{
id: 'readmode',
intro: '使用 <a target="_blank" href="http://ksria.com/simpread/docs/#/阅读模式">阅读模式</a> 时的选项<br>包括:主题色,进入阅读模式的快捷键,字体类型,版面布局,甚至正文的字体细调(字间距,行间距等)。<br>这些功能也可以在进入此模式后通过右下角控制栏调整。',
}
]
},
"labs" : {
target: 'labs',
idx: 2,
items: [
{
id: '',
intro: '本页的功能专门针对 <b>不同需求、不同使用场景</b> 的精细调整。<br>如果你是初级用户的话,完全可以无视这些调整,简悦支持 <b>开箱即用</b>。<br>如果想让阅读模式更具个性化,建议花 1 ~ 2 分钟来看下这些功能点。 😊 ' ,
},
{
id: 'esc',
intro: '启用此功能后,进入阅读模式 & 聚焦模式,可通过点击 ESC 的方式退出。',
},
{
id: 'br_exit',
intro: '点击浏览器右上角 <b>简悦 icon</b> 后的动作,包括:退出当前模式 & 弹出设置对话框。',
},
{
id: 'blacklist',
intro: '加入到列表中的 URL 对应的页面将不会运行简悦,适合一些完全不需要简悦的场合,如:视频类的网站。<br>支持绝对地址或主域名,详细说明 <a target="_blank" href="http://ksria.com/simpread/docs/#/FAQ?id=黑名单">请看这里</a> 。',
},
{
id: 'save_at',
intro: '从现在开始可以将配置文件保存到坚果云了,详细说明 <a target="_blank" href="http://ksria.com/simpread/docs/#/坚果云">请看这里</a> 。',
},
{
id: 'menu',
intro: '简悦支持右键菜单,如果你是个鼠标党的话,可以好好利用它们,详细说明 <a target="_blank" href="http://ksria.com/simpread/docs/#/右键菜单">请看这里</a> 。',
},
{
id: 'focusconfig',
intro: '与 <b>基础设定</b> 中不同,这里是关于聚焦模式细节的设定,同时这些选项也只能在选项页中修改。',
},
{
id: 'readconfig',
intro: '与 <b>基础设定</b> 中不同,这里是关于阅读模式细节的设定,同时这些选项也只能在选项页中修改。<br><br> <a target="_blank" href="http://ksria.com/simpread/docs/#/阅读模式">阅读模式</a> 是简悦重要的组成部分,除了常规的阅读模式外,简悦还支持多种类型,包括:<br> - <a target="_blank" href="http://ksria.com/simpread/docs/#/论坛类页面及分页">论坛类页面及分页</a> <br> - <a target="_blank" href="http://ksria.com/simpread/docs/#/主动适配阅读模式">主动适配</a> <br> - <a target="_blank" href="http://ksria.com/simpread/docs/#/词法分析引擎?id=智能感知">智能感知</a> <br> - <a target="_blank" href="http://ksria.com/simpread/docs/#/手动框选">手动框选</a> <br> - <a target="_blank" href="http://ksria.com/simpread/docs/#/TXT-阅读器">TXT 阅读器</a> <br> - <a target="_blank" href="http://ksria.com/simpread/docs/#/词法分析引擎?id=markdown-识别">Markdown 阅读器</a> <br> - <a target="_blank" href="http://ksria.com/simpread/docs/#/词法分析引擎?id=latex-识别">LaTeX 阅读器</a>',
},
{
id: 'progress',
intro: '进入阅读模式后会在页面上方显示一个阅读进度条,从 1.1.3 版开始 <b>默认为不启用</b>,详细说明 <a target="_blank" href="http://ksria.com/simpread/docs/#/阅读进度">请看这里</a> 。',
},
{
id: 'readcontrolbar',
intro: '进入阅读模式后,会在页面的右下角显示一个 icon 点击可查看阅读模式的一些功能,你可以在这里选择隐藏(鼠标移上时才显示)它。',
},
{
id: 'fap',
intro: '1.1.1 版开始提供 <b>控制栏浮动面板</b> 用来替代原来的 <b>控制栏浮动工具条</b>。<br>如果你并不经常使用简悦的一些高级功能,可以关闭此选项,使用更简洁的 <b>控制栏浮动工具条</b>,详细说明 <a target="_blank" href="http://ksria.com/simpread/docs/#/阅读模式-控制栏">请看这里</a> 。',
},
{
id: 'highlight',
intro: '在 <b>手动框选</b> 方式的基础上增加了 <b>二次确认模式</b>,此模式专门针对页面极其复杂的情况,详细说明 <a target="_blank" href="http://ksria.com/simpread/docs/#/手动框选">请看这里</a> 。',
},
{
id: 'toc',
intro: '进入阅读模式后,会自动生成当前页面的大纲,同时也可选择大纲的显示方式,详细说明 <a target="_blank" href="http://ksria.com/simpread/docs/#/目录">请看这里</a> 。',
},
{
id: 'readauto',
intro: '如果当前 <a target="_blank" href="http://ksria.com/simpread/docs/#/站点适配源">站点已适配</a> 的话,启用此选项后会自动进入到阅读模式,详细说明 <a target="_blank" href="http://ksria.com/simpread/docs/#/适配站点">请看这里</a> 。',
},
{
id: 'exclusion',
intro: '启用 <b>自动进入阅读模式</b> 后,可将不需要自动进入阅读模式的站加入到这个列表中,详细说明 <a target="_blank" href="http://ksria.com/simpread/docs/#/FAQ?id=排除列表">请看这里</a> 。<br>关闭 <b>自动进入阅读模式</b> 后,会有 <a target="_blank" href="http://ksria.com/simpread/docs/#/FAQ?id=白名单">白名单</a> 功能,与 <b>排除列表</b> 相反,加入此的站会自动进入阅读模式。',
},
{
id: 'pured',
intro: '简悦从 1.1.2.5005 开始增加了此功能,目前还处于测试版。<br>词法分析引擎会对版面重新设计,包括:去除多余空格、优化版面结构等。<br>注意:经常解析失败时,请关闭此功能,详细说明 <a target="_blank" href="http://ksria.com/simpread/docs/#/词法分析引擎">请看这里</a> 。',
},
{
id: 'puredpure',
intro: '包括字形、颜色、字号、代码段等微信订阅号CSDN 等。<br>注意:如果经常阅读代码的话,请安装 <a target="_blank" href="https://simpread.ksria.cn/plugins/details/klGUASLasg">代码段增强</a> 插件,功能包括:高亮,去重,支持 CSDN 等特殊情况的代码段。',
},
{
id: 'preload',
intro: '简悦的词法分析引擎采用了预加载机制,当系统性能吃紧时,可以选择关闭此功能,详细说明 <a target="_blank" href="http://ksria.com/simpread/docs/#/词法分析引擎?id=预加载机制">请看这里</a> 。<br>注意:建议无特殊情况下不要关闭此功能,可以 <b>使用下一条的功能</b> 来规避性能问题。',
},
{
id: 'lazyload',
intro: '为了更快的进入到阅读模式,简悦会主动分析每个页面,但加入此列表的 URL 不会被主动分析。<br><br>此功能适合:<br><b> - 经常使用简悦但又性能不够</b> 的用户;<br> - 需要动态加载的页面;<br> - 支持 Mathjax 解析的页面等;<br><br>详细说明 <a target="_blank" href="http://ksria.com/simpread/docs/#/词法分析引擎?id=延迟加载">请看这里</a> 。',
},
{
id: 'auth',
intro: '简悦支持常见的导出服务,你可以授权它们,导出 <b>阅读模式(简悦优化后)的页面</b> 到这些服务,详细说明 <a target="_blank" href="http://ksria.com/simpread/docs/#/授权服务">请看这里</a> 。',
},
{
id: 'secret',
intro: '使用导出服务后,会产生授权码,简悦默认 <b>不会在导出配置时包含它们</b>,如果需要的话,请开启此功能,详细说明 <a target="_blank" href="http://ksria.com/simpread/docs/#/授权服务?id=授权码">请看这里</a> 。',
},
{
id: 'custom',
intro: '简悦可以对 <b>阅读模式生成的页面</b> 更加精细的调整,甚至于 <b>使用 CSS 来深度定制</b>,详细说明 <a target="_blank" href="http://ksria.com/simpread/docs/#/自定义样式">请看这里</a> 。',
},
{
id: 'notice',
intro: '简悦 1.1.3 版增加了消息中心,为了方便查看简悦的一些最新消息,详细说明 <a target="_blank" href="http://ksria.com/simpread/docs/#/消息中心">请看这里</a> 。',
}
]
},
"sites" : {
target: 'sites',
idx: 2,
items: [
{
id: 'newsites',
intro: '简悦每隔一段时间会自动同步适配列表,你也可以手动同步。<br>什么是适配列表?详细说明 <a target="_blank" href="http://ksria.com/simpread/docs/#/适配站点">请看这里</a> 。',
},
{
id: 'customsites',
intro: '从 1.1.3 开始,简悦调整了第三方适配的规则:仅针对个人的适配源,关于这部分的详细说明 <a target="_blank" href="http://ksria.com/simpread/docs/#/站点适配源?id=第三方适配源">请看这里</a> 。<br><b>注意:</b> 如果你使用了自己的适配源,请先清除再导入。',
},
{
id: 'sitemgr',
intro: '用来管理全部的站点,详细说明 <a target="_blank" href="http://ksria.com/simpread/docs/#/站点管理器">请看这里</a> 。',
},
{
id: 'personsites',
intro: '简悦用户自行上传且未收录到 <a target="_blank" href="http://ksria.com/simpread/docs/#/站点适配源?id=官方适配源">官方适配源</a> 里面的适配站点,可以在这里对这些站点进行安装,删除,更新等操作,详细说明 <a target="_blank" href="http://ksria.com/simpread/docs/#/站点集市">请看这里</a> 。',
}
]
},
"plugins" : {
target: 'plugins',
idx: 4,
items: [
{
id: 'pluginsite',
intro: '为了让阅读模式更加的丰富,简悦从 1.1.2 版本开始支持插件系统,插件系统 <b>仅支持阅读模式</b>。<br>点击这里打开到插件的官网,关于插件的详细说明 <a target="_blank" href="http://ksria.com/simpread/docs/#/插件系统">请看这里</a> 。<br>注意:安装过多的插件会引起性能问题,建议 <b>不要超过 6 个</b> 。',
},
{
id: 'pluginconfig',
intro: '当用户上传了新的配置文件,需要手动从配置文件读取插件。<br>注意:上传配置文件后会清除当前环境的插件,所以请别忘记手动导入。',
},
{
id: 'pluginupdate',
intro: '更新已安装的全部插件到最新版本。',
},
{
id: 'pluginclear',
intro: '清除当前环境的全部插件。<br>注意:此操作并不能清除当前的配置文件,如果要清除配置文件,请前往 <b>共通 → 清除数据</b> 操作。',
},
{
id: 'pluginmange',
intro: '这是用户的已安装的全部插件,在这里进行管理,包括:禁用, 删除,更新,查看 等操作。<br>同样,在这里安装的插件可以在阅读模式下启用禁用操作,位置在 <b>阅读模式 → 右下角控制栏 → 插件(选项卡)</b> 查看。',
}
]
},
"later" : {
target: 'later',
idx: 5,
items: [
{
id: 'laterlist',
intro: '简悦自带了一个未读列表,你可以把任意 URL 通过 <a target="_blank" href="http://ksria.com/simpread/docs/#/右键菜单">右键菜单</a> / <a target="_blank" href="http://ksria.com/simpread/docs/#/阅读模式-控制栏">控制栏 → 动作</a> 发送到稍后读。<br>稍后读也支持发送这些链接到 Pocket · Instapaper · Linnk 里面,详细说明 <a target="_blank" href="http://ksria.com/simpread/docs/#/稍后读">请看这里</a> 。',
},
{
id: 'latermore',
intro: '加载更多的稍后读。',
}
]
},
"@performance" : {
target: 'labs',
idx: 2,
items: [
{
id: 'preload',
intro: '简悦的词法分析引擎采用了预加载机制,当系统性能吃紧时,可以选择关闭此功能,详细说明 <a target="_blank" href="http://ksria.com/simpread/docs/#/词法分析引擎?id=预加载机制">请看这里</a> 。<br>注意:建议无特殊情况下不要关闭此功能,可以 <b>使用下一条的功能</b> 来规避性能问题。',
},
{
id: 'lazyload',
intro: '为了更快的进入到阅读模式,简悦会主动分析每个页面,但加入此列表的 URL 不会被主动分析。<br><br>此功能适合:<br><b> - 经常使用简悦但又性能不够</b> 的用户;<br> - 需要动态加载的页面;<br> - 支持 Mathjax 解析的页面等;<br><br>详细说明 <a target="_blank" href="http://ksria.com/simpread/docs/#/词法分析引擎?id=延迟加载">请看这里</a> 。',
},
{
id: 'blacklist',
intro: '也可以将完全不需要的站点加入到黑名单中,详细说明 <a target="_blank" href="http://ksria.com/simpread/docs/#/FAQ?id=黑名单">请看这里</a> 。',
}
]
}
};
/**
* Verify version
*
* @param {string} local version
* @param {object} simpread data structure
*/
function Verify( curver, data ) {
if ( curver == "1.0.0" ) {
data.option.esc = true;
data.option.menu = { focus: true, read: true, link: true };
data.focus.controlbar= true;
data.focus.mask = true;
data.read.progress = true;
data.read.auto = false;
data.read.controlbar = true;
data.read.exclusion = [
"v2ex.com","issue.github.com","readme.github.com","question.zhihu.com","douban.com","nationalgeographic.com.cn","tech.163.com","docs.microsoft.com","msdn.microsoft.com","baijia.baidu.com","code.oschina.net","http://www.ifanr.com","http://www.ifanr.com/news","http://www.ifanr.com/app","http://www.ifanr.com/minapp","http://www.ifanr.com/dasheng","http://www.ifanr.com/data","https://www.ifanr.com/app","http://www.ifanr.com/weizhizao","http://www.thepaper.cn","http://www.pingwest.com","http://tech2ipo.com","https://www.waerfa.com/social"
];
curver = "1.0.1";
}
if ( curver == "1.0.1" ) {
data.read.custom = {
global: {
fontFamily : "",
marginLeft : "",
marginRight: "",
},
title : {
fontFamily : "",
fontSize : "",
color : "",
},
desc : {
fontFamily : "",
fontSize : "",
color : "",
},
art : {
fontFamily : "",
fontSize : "",
color : "",
fontWeight : "",
wordSpacing: "",
letterSpacing: "",
lineHeight : "",
textIndent : "",
},
pre : {
textShadow : "",
},
code : {
fontFamily : "",
fontSize : "",
},
css : "",
};
curver = "1.0.2";
}
if ( curver == "1.0.2" ) {
data.option.sync = "";
curver = "1.0.3";
}
if ( curver == "1.0.3" ) {
data.focus.highlight = true;
data.read.highlight = true;
data.option.menu.list = false;
data.option.br_exit = false;
data.option.secret = false;
curver = "1.0.4";
}
if ( curver == "1.0.4" ) {
data.read.toc = true;
data.read.toc_hide = true;
data.read.whitelist = [];
curver = "1.0.5";
}
if ( curver == "1.0.5" ) {
data.option.origins = [];
data.websites = {
custom : [],
local : []
};
curver = "1.0.6";
}
if ( curver == "1.0.6" ) {
data.websites.local = data.read.sites.concat( data.focus.sites );
delete data.focus.sites;
delete data.read.sites;
curver = "1.1.0";
}
if ( curver == "1.1.0" ) {
data.option.blacklist = [ "google.com" ];
data.read.fap = true;
data.read.custom.global.fontFamily && ( data.read.fontfamily = data.read.custom.global.fontFamily );
data.read.custom.global.marginLeft && ( data.read.layout = data.read.custom.global.marginLeft );
delete data.read.custom.global;
data.statistics = {"focus":0,"read":0,"service":{"linnk":0,"instapaper":0,"pocket":0,"readlater":0,"epub":0,"pdf":0,"png":0,"markdown":0,"html":0,"evernote":0,"yinxiang":0,"dropbox":0,"onenote":0,"gdrive":0,"kindle":0,"temp":0}}
data.statistics.focus = data.option.focus;
data.statistics.read = data.option.read;
delete data.option.focus;
delete data.option.read;
curver = "1.1.1";
}
if ( curver == "1.1.1" ) {
data.user = { "uid": "","name": "","contact": "","email": "","avatar": "","permission": "" };
data.option.plugins = [];
data.websites.person = [];
curver = "1.1.2";
}
if ( curver == "1.1.2" ) {
data.patch != sub_ver && FixSubver( sub_ver, data );
}
if ( curver == "1.1.2" ) {
data.option.save_at = "dropbox";
data.option.notice = true;
data.option.preload = true;
data.option.lazyload = [
"baidu.com", "weibo.com", "youtube.com"
];
data.option.uninstall = true;
data.statistics.service.yuque = 0;
data.statistics.service.jianguo = 0;
data.notice = { "latest": 0, "read": [] };
data.option.blacklist.findIndex( item => item.toLowerCase() == "youtube.com" ) < 0 && data.option.blacklist.push( "youtube.com" );
data.patch = 0;
curver = "1.1.3";
}
if ( curver == "1.1.3" ) {
data.option.urlscheme = true;
data.option.menu.lazyload = false;
curver = "1.1.4";
}
/*
if ( curver == "1.0.1" ) {
data.option.pocket = { "consumer": "", "access": "" };
data.read.custom = "";
curver = "2.0.0";
}
*/
data.version = version;
return data;
}
/**
* Fix Incompatible simpread data structure
*
* @param {string} version
* @param {object} simpread data structure
* @return {boolean} true: changed false: not changed
*/
function Incompatible( ver, data ) {
let is_changed = false;
if ( ver == "1.1.4" ) {
data.option.origins = data.option.origins.filter( item => item != "http://sr.ksria.cn/origins/website_list_en.json" && item != "http://sr.ksria.cn/origins/website_list_tw.json" )
if ( data.option.origins.length > 0 ) {
is_changed = true;
new Notify(); // hack code
}
}
return is_changed;
}
/**
* Notify with type and version
* 1.0.4 before usage http://ksria.com/simpread/changelog.html#{ver}
* 1.0.4 after usage http://ksria.com/simpread/version_${ver}.html
*
* @param {boolean} is first load
* @param {string} type, include: firstload, update
* @param {string} ver, e.g. 1.0.0, 1.0.1
*/
function Notify2( first, type, ver ) {
const str = type == "firstload" ? "安装" : "更新",
detail = type == "firstload" ? "" : details.get(ver),
link = first ? `${detail}如何使用请看 <a href="http://ksria.com/simpread/guide/" target="_blank">新手入门</a> 及 <a href="http://ksria.com/simpread/docs/#/" target="_blank">文档中心</a>` : `${detail}请看 <a href="http://ksria.com/simpread/welcome/version_${ver}.html" target="_blank">更新说明</a>`;
return `${str} 到最新版本 ${ver} ${ link }`;
}
/**
* Silent update
*/
function SilentUpdate() {
const ver = `${ version }.${ sub_ver }`;
return `更新到最新版本 ${ ver } ${ patchs.get( `${ ver }` ) }更多细节请看 <a href="http://ksria.com/simpread/changelog.html#${ver}" target="_blank">更新说明</a>`;
}
/**
* Compare current version and target version
*
* @param {string} target version
* @return {number} -2: not exist; -1: old version; 1: new version; 0: current version
*/
function Compare( target ) {
let result = -2;
if ( versions.has( target ) ) {
result = Date.parse( versions.get( version )) - Date.parse( versions.get( target ));
if ( result > 0 ) {
result = 1;
} else if ( result < 0 ) {
result = -1;
}
}
return result;
}
/**
* Fix subver config
*
* @param {string} patch version e.g. 1025 / 5005
* @param {object} @see simpread
*/
function FixSubver( patch, target ) {
if ( patch == "5005" ) {
target.read.cleanup == undefined && ( target.read.cleanup = true );
target.read.pure == undefined && ( target.read.pure = true );
target.option.menu.whitelist == undefined && ( target.option.menu.whitelist = false );
target.option.menu.exclusion == undefined && ( target.option.menu.exclusion = false );
target.option.menu.blacklist == undefined && ( target.option.menu.blacklist = false );
target.option.menu.unrdist == undefined && ( target.option.menu.unrdist = false );
}
target.patch = patch;
return target;
}
/**
* Verify current version plugins
*
* @param {object} option
* @return {boolean}
*/
function VerifyPlugins( option ) {
try {
if ( option.plugins.length == 0 ) return false;
const str = option.plugins.join( "," );
const newStr = str.replace( /(E0j1nYBmDD,?|SumEaxStWE,?|EHLtCwBy6c,?|UsayAKSuwe,?)/g, "" );
if ( str != newStr ) {
option.plugins = newStr.replace( /,$/, "" ).split( "," );
return true;
}
} catch( error ) {
console.error( "version::VerifyPlugin catch", error )
return false;
}
}
export {
version,
tips,
sub_ver as patch,
Verify,
Notify2 as Notify,
Compare,
FixSubver,
VerifyPlugins,
Incompatible,
SilentUpdate,
}