每天一句英语短句
// ==UserScript==
// @name 每天一句英语短句
// @version 0.1.0
// @description 看看能不能水滴石穿
// @author xiaofeiwu
// @crontab * once * * *
// @grant GM_xmlhttpRequest
// @grant GM_notification
// @connect sentence.iciba.com
// ==/UserScript==
// type:0 =>2021-09-12 默认
// type:1 =>2021-09-12 10:34:12
// type:2 =>09-12 10:34:12
// type:3 =>09-12
// type:4 =>2021/09/12
// type:5 =>2021/09/12 10:34:12
// type:6 =>09/12 10:34:12
// type:7 =>09/12
var filterTime = function(str,type = 0) {
console.log('str',str)
console.log('type',type)
let date = new Date(str)
let y = date.getFullYear();
let m = (date.getMonth()+1 + '').padStart(2,'0');
let d = (date.getDate() + '').padStart(2,'0');
let hh = (date.getHours() + '').padStart(2,'0')
let mm = (date.getMinutes() + '').padStart(2,'0')
let ss = (date.getSeconds() + '').padStart(2,'0')
let time;
switch (type) {
case 0:
time = `${y}-${m}-${d}`;
break;
case 1:
time = `${y}-${m}-${d} ${hh}:${mm}:${ss}`;
break;
case 2:
time = `${m}-${d} ${hh}:${mm}:${ss}`;
break;
case 3:
time = `${m}-${d}`;
break;
case 4:
time = `${y}/${m}/${d}`;
break;
case 5:
time = `${y}/${m}/${d} ${hh}:${mm}:${ss}`;
break;
case 6:
time = `${m}/${d} ${hh}:${mm}:${ss}`;
break;
case 7:
time = `${m}/${d}`;
break;
}
return time;
}
return new Promise((resolve, reject) => {
let date = new Date()
// 每天的currentDay不同拿到不同的语句
let currentDay = filterTime(date)
// * * * * * * 每秒运行一次
// * * * * * 每分钟运行一次
// 0 */6 * * * 每6小时的0分时执行一次
// 15 */6 * * * 每6小时的15分时执行一次
// * once * * * 每小时运行一次
// * * once * * 每天运行一次
// * 10 once * * 每天10点-10:59中运行一次,假设当10:04时运行了一次,10:05-10:59的后续的时间将不会再运行
// * 1,3,5 once * * 每天1点3点5点中运行一次,假设当1点时运行了一次,3,5点将不会再运行
// * */4 once * * 每天每隔4小时检测运行一次,假设当4点时运行了一次,8,12,16,20,24点等后续的时间将不会再运行
// * 10-23 once * * 每天10点-23:59中运行一次,假设当10:04时运行了一次,10:05-23:59的后续时间将不会再运行
// * once 13 * * 每个月的13号的每小时运行一次
GM_xmlhttpRequest({
method: "GET",
url: `http://sentence.iciba.com/index.php?c=dailysentence&m=getdetail&title=${currentDay}`,
onload: xhr => {
// 这里我们通过xhr拿值的时候先调试一些确认取得是哪个字段
let data = JSON.parse(xhr.response)
GM_notification(data.note)
GM_notification(data.content)
},
onerror: xhr => {
console.log(xhr)
GM_notification("接口请求失败")
reject(xhr)
}
})
}).catch(err => {
GM_notification("接口请求失败")
});