// ==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("接口请求失败") });