Only When Sunday

🏖️ Closes specific websites tabs except Sunday and different ones on weekdays from 9:30 to 18:30

当前为 2023-07-20 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name Only When Sunday
  3. // @namespace https://github.com/mefengl
  4. // @author mefengl
  5. // @version 0.3.4
  6. // @description 🏖️ Closes specific websites tabs except Sunday and different ones on weekdays from 9:30 to 18:30
  7. // @match *://*/*
  8. // @grant none
  9. // @license MIT
  10. // ==/UserScript==
  11.  
  12. (() => {
  13. 'use strict';
  14.  
  15. const specialDates = getSpecialDates();
  16.  
  17. const websitesToClose = [
  18. 'bilibili.com',
  19. 'ddys.art',
  20. 'discord.com',
  21. 'greasyfork.org',
  22. 'outlook.live.com',
  23. 'spotify.com',
  24. 'sspai.com',
  25. 'twitter.com',
  26. 'weibo.com',
  27. 'youtube.com',
  28. 'zhihu.com',
  29. ];
  30.  
  31. const websitesToCloseDuringWork = [
  32. 'github.com',
  33. 'hellogithub.com',
  34. ];
  35.  
  36. const currentDate = new Date().toISOString().slice(0, 10).replace(/-/g, '');
  37. const currentHour = new Date().getHours();
  38. const currentMinute = new Date().getMinutes();
  39. const currentDay = new Date().getDay();
  40.  
  41. const isSunday = currentDay === 0;
  42. const isWorkingHours = (currentHour > 9 && currentHour < 18) || (currentHour === 9 && currentMinute >= 30) || (currentHour === 18 && currentMinute <= 30);
  43. const isWorkingDay = currentDay >= 1 && currentDay <= 5;
  44. const isWorkingDayNotWorkingHours = isWorkingDay && !isWorkingHours;
  45.  
  46. if (isSunday) {
  47. // No restrictions on Sunday
  48. return;
  49. }
  50.  
  51. if (isWorkingHours && (websitesToClose.some(website => window.location.href.includes(website)) || websitesToCloseDuringWork.some(website => window.location.href.includes(website)))) {
  52. window.close();
  53. }
  54.  
  55. if (isWorkingDayNotWorkingHours && specialDates.some(date => currentDate >= date.start && currentDate <= date.end) && websitesToClose.some(website => window.location.href.includes(website))) {
  56. window.close();
  57. }
  58. })();
  59.  
  60. function getSpecialDates() {
  61. const icsString = getIcsString();
  62. const eventBlocks = icsString.match(/BEGIN:VEVENT[\s\S]*?END:VEVENT/g);
  63. return eventBlocks.map(block => {
  64. const dtstart = block.match(/DTSTART:(\d{8})T\d{6}/)[1];
  65. const dtend = block.match(/DTEND:(\d{8})T\d{6}/)[1];
  66. return { start: dtstart, end: dtend };
  67. });
  68. }
  69.  
  70. /*
  71. * 以下内容来自 https://github.com/lanceliao/china-holiday-calender
  72. */
  73. function getIcsString() {
  74. return `BEGIN:VCALENDAR
  75. PRODID:-//ShuYZ.com//China Public Holidays 2.0//CN
  76. VERSION:2.0
  77. CALSCALE:GREGORIAN
  78. METHOD:PUBLISH
  79. X-WR-CALNAME:ShuYZ中国节假日(补班)
  80. X-WR-TIMEZONE:Asia/Shanghai
  81. X-WR-CALDESC:2021~2023年中国节假日(补班) 更新时间2023-06-14 19:35:13
  82. BEGIN:VTIMEZONE
  83. TZID:Asia/Shanghai
  84. X-LIC-LOCATION:Asia/Shanghai
  85. BEGIN:STANDARD
  86. TZOFFSETFROM:+0800
  87. TZOFFSETTO:+0800
  88. TZNAME:CST
  89. DTSTART:19700101T000000
  90. END:STANDARD
  91. END:VTIMEZONE
  92. BEGIN:VEVENT
  93. DTSTART:20230128T090000
  94. DTEND:20230128T180000
  95. DTSTAMP:20230128T000000Z
  96. UID:20230128T000001_compensateday1@shuyz.com
  97. CREATED:20230614T193513Z
  98. DESCRIPTION:二、春节:121日至27日放假调休,共7天。128日(星期六)、129日(星期日)上班。\n\n放假通知: http://www.gov.cn/zhengce/content/2022-12/08/content_5730844.htm
  99. LAST-MODIFIED:20230614T193513Z
  100. SEQUENCE:0
  101. STATUS:TENTATIVE
  102. SUMMARY:春节 补班 1天/共2
  103. TRANSP:OPAQUE
  104. BEGIN:VALARM
  105. TRIGGER:-PT60M
  106. ACTION:DISPLAY
  107. END:VALARM
  108. END:VEVENT
  109. BEGIN:VEVENT
  110. DTSTART:20230129T090000
  111. DTEND:20230129T180000
  112. DTSTAMP:20230129T000000Z
  113. UID:20230129T000001_compensateday2@shuyz.com
  114. CREATED:20230614T193513Z
  115. DESCRIPTION:二、春节:121日至27日放假调休,共7天。128日(星期六)、129日(星期日)上班。\n\n放假通知: http://www.gov.cn/zhengce/content/2022-12/08/content_5730844.htm
  116. LAST-MODIFIED:20230614T193513Z
  117. SEQUENCE:0
  118. STATUS:TENTATIVE
  119. SUMMARY:春节 补班 2天/共2
  120. TRANSP:OPAQUE
  121. BEGIN:VALARM
  122. TRIGGER:-PT60M
  123. ACTION:DISPLAY
  124. END:VALARM
  125. END:VEVENT
  126. BEGIN:VEVENT
  127. DTSTART:20230423T090000
  128. DTEND:20230423T180000
  129. DTSTAMP:20230423T000000Z
  130. UID:20230423T000001_compensateday1@shuyz.com
  131. CREATED:20230614T193513Z
  132. DESCRIPTION:四、劳动节:429日至53日放假调休,共5天。423日(星期日)、56日(星期六)上班。\n\n放假通知: http://www.gov.cn/zhengce/content/2022-12/08/content_5730844.htm
  133. LAST-MODIFIED:20230614T193513Z
  134. SEQUENCE:0
  135. STATUS:TENTATIVE
  136. SUMMARY:劳动节 补班 1天/共2
  137. TRANSP:OPAQUE
  138. BEGIN:VALARM
  139. TRIGGER:-PT60M
  140. ACTION:DISPLAY
  141. END:VALARM
  142. END:VEVENT
  143. BEGIN:VEVENT
  144. DTSTART:20230506T090000
  145. DTEND:20230506T180000
  146. DTSTAMP:20230506T000000Z
  147. UID:20230506T000001_compensateday2@shuyz.com
  148. CREATED:20230614T193513Z
  149. DESCRIPTION:四、劳动节:429日至53日放假调休,共5天。423日(星期日)、56日(星期六)上班。\n\n放假通知: http://www.gov.cn/zhengce/content/2022-12/08/content_5730844.htm
  150. LAST-MODIFIED:20230614T193513Z
  151. SEQUENCE:0
  152. STATUS:TENTATIVE
  153. SUMMARY:劳动节 补班 2天/共2
  154. TRANSP:OPAQUE
  155. BEGIN:VALARM
  156. TRIGGER:-PT60M
  157. ACTION:DISPLAY
  158. END:VALARM
  159. END:VEVENT
  160. BEGIN:VEVENT
  161. DTSTART:20230625T090000
  162. DTEND:20230625T180000
  163. DTSTAMP:20230625T000000Z
  164. UID:20230625T000001_compensateday1@shuyz.com
  165. CREATED:20230614T193513Z
  166. DESCRIPTION:五、端午节:622日至24日放假调休,共3天。625日(星期日)上班。\n\n放假通知: http://www.gov.cn/zhengce/content/2022-12/08/content_5730844.htm
  167. LAST-MODIFIED:20230614T193513Z
  168. SEQUENCE:0
  169. STATUS:TENTATIVE
  170. SUMMARY:端午节 补班 1天/共1
  171. TRANSP:OPAQUE
  172. BEGIN:VALARM
  173. TRIGGER:-PT60M
  174. ACTION:DISPLAY
  175. END:VALARM
  176. END:VEVENT
  177. BEGIN:VEVENT
  178. DTSTART:20231007T090000
  179. DTEND:20231007T180000
  180. DTSTAMP:20231007T000000Z
  181. UID:20231007T000001_compensateday1@shuyz.com
  182. CREATED:20230614T193513Z
  183. DESCRIPTION:六、中秋节、国庆节:929日至106日放假调休,共8天。107日(星期六)、108日(星期日)上班。\n\n放假通知: http://www.gov.cn/zhengce/content/2022-12/08/content_5730844.htm
  184. LAST-MODIFIED:20230614T193513Z
  185. SEQUENCE:0
  186. STATUS:TENTATIVE
  187. SUMMARY:中秋节、国庆节 补班 1天/共2
  188. TRANSP:OPAQUE
  189. BEGIN:VALARM
  190. TRIGGER:-PT60M
  191. ACTION:DISPLAY
  192. END:VALARM
  193. END:VEVENT
  194. BEGIN:VEVENT
  195. DTSTART:20231008T090000
  196. DTEND:20231008T180000
  197. DTSTAMP:20231008T000000Z
  198. UID:20231008T000001_compensateday2@shuyz.com
  199. CREATED:20230614T193513Z
  200. DESCRIPTION:六、中秋节、国庆节:929日至106日放假调休,共8天。107日(星期六)、108日(星期日)上班。\n\n放假通知: http://www.gov.cn/zhengce/content/2022-12/08/content_5730844.htm
  201. LAST-MODIFIED:20230614T193513Z
  202. SEQUENCE:0
  203. STATUS:TENTATIVE
  204. SUMMARY:中秋节、国庆节 补班 2天/共2
  205. TRANSP:OPAQUE
  206. BEGIN:VALARM
  207. TRIGGER:-PT60M
  208. ACTION:DISPLAY
  209. END:VALARM
  210. END:VEVENT
  211. BEGIN:VEVENT
  212. DTSTART:20220129T090000
  213. DTEND:20220129T180000
  214. DTSTAMP:20220129T000000Z
  215. UID:20220129T000001_compensateday1@shuyz.com
  216. CREATED:20230614T193513Z
  217. DESCRIPTION:二、春节:131日至26日放假调休,共7天。129日(星期六)、130日(星期日)上班。\n\n放假通知: http://www.gov.cn/zhengce/content/2021-10/25/content_5644835.htm
  218. LAST-MODIFIED:20230614T193513Z
  219. SEQUENCE:0
  220. STATUS:TENTATIVE
  221. SUMMARY:春节 补班 1天/共2
  222. TRANSP:OPAQUE
  223. BEGIN:VALARM
  224. TRIGGER:-PT60M
  225. ACTION:DISPLAY
  226. END:VALARM
  227. END:VEVENT
  228. BEGIN:VEVENT
  229. DTSTART:20220130T090000
  230. DTEND:20220130T180000
  231. DTSTAMP:20220130T000000Z
  232. UID:20220130T000001_compensateday2@shuyz.com
  233. CREATED:20230614T193513Z
  234. DESCRIPTION:二、春节:131日至26日放假调休,共7天。129日(星期六)、130日(星期日)上班。\n\n放假通知: http://www.gov.cn/zhengce/content/2021-10/25/content_5644835.htm
  235. LAST-MODIFIED:20230614T193513Z
  236. SEQUENCE:0
  237. STATUS:TENTATIVE
  238. SUMMARY:春节 补班 2天/共2
  239. TRANSP:OPAQUE
  240. BEGIN:VALARM
  241. TRIGGER:-PT60M
  242. ACTION:DISPLAY
  243. END:VALARM
  244. END:VEVENT
  245. BEGIN:VEVENT
  246. DTSTART:20220402T090000
  247. DTEND:20220402T180000
  248. DTSTAMP:20220402T000000Z
  249. UID:20220402T000001_compensateday1@shuyz.com
  250. CREATED:20230614T193513Z
  251. DESCRIPTION:三、清明节:43日至5日放假调休,共3天。42日(星期六)上班。\n\n放假通知: http://www.gov.cn/zhengce/content/2021-10/25/content_5644835.htm
  252. LAST-MODIFIED:20230614T193513Z
  253. SEQUENCE:0
  254. STATUS:TENTATIVE
  255. SUMMARY:清明节 补班 1天/共1
  256. TRANSP:OPAQUE
  257. BEGIN:VALARM
  258. TRIGGER:-PT60M
  259. ACTION:DISPLAY
  260. END:VALARM
  261. END:VEVENT
  262. BEGIN:VEVENT
  263. DTSTART:20220424T090000
  264. DTEND:20220424T180000
  265. DTSTAMP:20220424T000000Z
  266. UID:20220424T000001_compensateday1@shuyz.com
  267. CREATED:20230614T193513Z
  268. DESCRIPTION:四、劳动节:430日至54日放假调休,共5天。424日(星期日)、57日(星期六)上班。\n\n放假通知: http://www.gov.cn/zhengce/content/2021-10/25/content_5644835.htm
  269. LAST-MODIFIED:20230614T193513Z
  270. SEQUENCE:0
  271. STATUS:TENTATIVE
  272. SUMMARY:劳动节 补班 1天/共2
  273. TRANSP:OPAQUE
  274. BEGIN:VALARM
  275. TRIGGER:-PT60M
  276. ACTION:DISPLAY
  277. END:VALARM
  278. END:VEVENT
  279. BEGIN:VEVENT
  280. DTSTART:20220507T090000
  281. DTEND:20220507T180000
  282. DTSTAMP:20220507T000000Z
  283. UID:20220507T000001_compensateday2@shuyz.com
  284. CREATED:20230614T193513Z
  285. DESCRIPTION:四、劳动节:430日至54日放假调休,共5天。424日(星期日)、57日(星期六)上班。\n\n放假通知: http://www.gov.cn/zhengce/content/2021-10/25/content_5644835.htm
  286. LAST-MODIFIED:20230614T193513Z
  287. SEQUENCE:0
  288. STATUS:TENTATIVE
  289. SUMMARY:劳动节 补班 2天/共2
  290. TRANSP:OPAQUE
  291. BEGIN:VALARM
  292. TRIGGER:-PT60M
  293. ACTION:DISPLAY
  294. END:VALARM
  295. END:VEVENT
  296. BEGIN:VEVENT
  297. DTSTART:20221008T090000
  298. DTEND:20221008T180000
  299. DTSTAMP:20221008T000000Z
  300. UID:20221008T000001_compensateday1@shuyz.com
  301. CREATED:20230614T193513Z
  302. DESCRIPTION:七、国庆节:101日至7日放假调休,共7天。108日(星期六)、109日(星期日)上班。\n\n放假通知: http://www.gov.cn/zhengce/content/2021-10/25/content_5644835.htm
  303. LAST-MODIFIED:20230614T193513Z
  304. SEQUENCE:0
  305. STATUS:TENTATIVE
  306. SUMMARY:国庆节 补班 1天/共2
  307. TRANSP:OPAQUE
  308. BEGIN:VALARM
  309. TRIGGER:-PT60M
  310. ACTION:DISPLAY
  311. END:VALARM
  312. END:VEVENT
  313. BEGIN:VEVENT
  314. DTSTART:20221009T090000
  315. DTEND:20221009T180000
  316. DTSTAMP:20221009T000000Z
  317. UID:20221009T000001_compensateday2@shuyz.com
  318. CREATED:20230614T193513Z
  319. DESCRIPTION:七、国庆节:101日至7日放假调休,共7天。108日(星期六)、109日(星期日)上班。\n\n放假通知: http://www.gov.cn/zhengce/content/2021-10/25/content_5644835.htm
  320. LAST-MODIFIED:20230614T193513Z
  321. SEQUENCE:0
  322. STATUS:TENTATIVE
  323. SUMMARY:国庆节 补班 2天/共2
  324. TRANSP:OPAQUE
  325. BEGIN:VALARM
  326. TRIGGER:-PT60M
  327. ACTION:DISPLAY
  328. END:VALARM
  329. END:VEVENT
  330. BEGIN:VEVENT
  331. DTSTART:20210207T090000
  332. DTEND:20210207T180000
  333. DTSTAMP:20210207T000000Z
  334. UID:20210207T000001_compensateday1@shuyz.com
  335. CREATED:20230614T193513Z
  336. DESCRIPTION:二、春节:211日至17日放假调休,共7天。27日(星期日)、220日(星期六)上班。\n\n放假通知: http://www.gov.cn/fuwu/2020-11/25/content_5564533.htm
  337. LAST-MODIFIED:20230614T193513Z
  338. SEQUENCE:0
  339. STATUS:TENTATIVE
  340. SUMMARY:春节 补班 1天/共2
  341. TRANSP:OPAQUE
  342. BEGIN:VALARM
  343. TRIGGER:-PT60M
  344. ACTION:DISPLAY
  345. END:VALARM
  346. END:VEVENT
  347. BEGIN:VEVENT
  348. DTSTART:20210220T090000
  349. DTEND:20210220T180000
  350. DTSTAMP:20210220T000000Z
  351. UID:20210220T000001_compensateday2@shuyz.com
  352. CREATED:20230614T193513Z
  353. DESCRIPTION:二、春节:211日至17日放假调休,共7天。27日(星期日)、220日(星期六)上班。\n\n放假通知: http://www.gov.cn/fuwu/2020-11/25/content_5564533.htm
  354. LAST-MODIFIED:20230614T193513Z
  355. SEQUENCE:0
  356. STATUS:TENTATIVE
  357. SUMMARY:春节 补班 2天/共2
  358. TRANSP:OPAQUE
  359. BEGIN:VALARM
  360. TRIGGER:-PT60M
  361. ACTION:DISPLAY
  362. END:VALARM
  363. END:VEVENT
  364. BEGIN:VEVENT
  365. DTSTART:20210425T090000
  366. DTEND:20210425T180000
  367. DTSTAMP:20210425T000000Z
  368. UID:20210425T000001_compensateday1@shuyz.com
  369. CREATED:20230614T193513Z
  370. DESCRIPTION:四、劳动节:51日至5日放假调休,共5天。425日(星期日)、58日(星期六)上班。\n\n放假通知: http://www.gov.cn/fuwu/2020-11/25/content_5564533.htm
  371. LAST-MODIFIED:20230614T193513Z
  372. SEQUENCE:0
  373. STATUS:TENTATIVE
  374. SUMMARY:劳动节 补班 1天/共2
  375. TRANSP:OPAQUE
  376. BEGIN:VALARM
  377. TRIGGER:-PT60M
  378. ACTION:DISPLAY
  379. END:VALARM
  380. END:VEVENT
  381. BEGIN:VEVENT
  382. DTSTART:20210508T090000
  383. DTEND:20210508T180000
  384. DTSTAMP:20210508T000000Z
  385. UID:20210508T000001_compensateday2@shuyz.com
  386. CREATED:20230614T193513Z
  387. DESCRIPTION:四、劳动节:51日至5日放假调休,共5天。425日(星期日)、58日(星期六)上班。\n\n放假通知: http://www.gov.cn/fuwu/2020-11/25/content_5564533.htm
  388. LAST-MODIFIED:20230614T193513Z
  389. SEQUENCE:0
  390. STATUS:TENTATIVE
  391. SUMMARY:劳动节 补班 2天/共2
  392. TRANSP:OPAQUE
  393. BEGIN:VALARM
  394. TRIGGER:-PT60M
  395. ACTION:DISPLAY
  396. END:VALARM
  397. END:VEVENT
  398. BEGIN:VEVENT
  399. DTSTART:20210918T090000
  400. DTEND:20210918T180000
  401. DTSTAMP:20210918T000000Z
  402. UID:20210918T000001_compensateday1@shuyz.com
  403. CREATED:20230614T193513Z
  404. DESCRIPTION:六、中秋节:919日至21日放假调休,共3天。918日(星期六)上班。\n\n放假通知: http://www.gov.cn/fuwu/2020-11/25/content_5564533.htm
  405. LAST-MODIFIED:20230614T193513Z
  406. SEQUENCE:0
  407. STATUS:TENTATIVE
  408. SUMMARY:中秋节 补班 1天/共1
  409. TRANSP:OPAQUE
  410. BEGIN:VALARM
  411. TRIGGER:-PT60M
  412. ACTION:DISPLAY
  413. END:VALARM
  414. END:VEVENT
  415. BEGIN:VEVENT
  416. DTSTART:20210926T090000
  417. DTEND:20210926T180000
  418. DTSTAMP:20210926T000000Z
  419. UID:20210926T000001_compensateday1@shuyz.com
  420. CREATED:20230614T193513Z
  421. DESCRIPTION:七、国庆节:101日至7日放假调休,共7天。926日(星期日)、109日(星期六)上班。\n\n放假通知: http://www.gov.cn/fuwu/2020-11/25/content_5564533.htm
  422. LAST-MODIFIED:20230614T193513Z
  423. SEQUENCE:0
  424. STATUS:TENTATIVE
  425. SUMMARY:国庆节 补班 1天/共2
  426. TRANSP:OPAQUE
  427. BEGIN:VALARM
  428. TRIGGER:-PT60M
  429. ACTION:DISPLAY
  430. END:VALARM
  431. END:VEVENT
  432. BEGIN:VEVENT
  433. DTSTART:20211009T090000
  434. DTEND:20211009T180000
  435. DTSTAMP:20211009T000000Z
  436. UID:20211009T000001_compensateday2@shuyz.com
  437. CREATED:20230614T193513Z
  438. DESCRIPTION:七、国庆节:101日至7日放假调休,共7天。926日(星期日)、109日(星期六)上班。\n\n放假通知: http://www.gov.cn/fuwu/2020-11/25/content_5564533.htm
  439. LAST-MODIFIED:20230614T193513Z
  440. SEQUENCE:0
  441. STATUS:TENTATIVE
  442. SUMMARY:国庆节 补班 2天/共2
  443. TRANSP:OPAQUE
  444. BEGIN:VALARM
  445. TRIGGER:-PT60M
  446. ACTION:DISPLAY
  447. END:VALARM
  448. END:VEVENT
  449. END:VCALENDAR`;
  450. }