Only When Sunday

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

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

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