This commit is contained in:
Win81VMUser 2025-09-21 22:07:10 +02:00
parent a4e88e730f
commit a4a734e3e1
2 changed files with 2 additions and 2 deletions

View file

@ -1,3 +1,3 @@
(function(h,c,D,p){"use strict";const w=p.findByProps("sendMessage","receiveMessage"),i=p.findByProps("sendBotMessage");let m={},g={},M,y,v;function C(s,n,t){const e=`${s}:${t}`,o=t-Date.now();return g[e]={content:n,at:t},m[e]=setTimeout(function(){const a=n;w.sendMessage(s,{content:a},void 0,{nonce:""}),delete m[e],delete g[e],D.showToast("Scheduled message sent.")},o),e}function B(){Object.values(m).forEach(clearTimeout),m={},g={}}function I(s){const n=new Date;s=s.toLowerCase();const t=/(\d+)(h|m|s)/g;let e=0,o;for(;(o=t.exec(s))!==null;){const d=parseInt(o[1]),u=o[2];u==="h"?e+=d*3600*1e3:u==="m"?e+=d*60*1e3:u==="s"&&(e+=d*1e3)}if(e>0)return Date.now()+e;const a=/^(\d{1,2}):(\d{2})(am|pm)?$/,r=s.match(a);if(r){let d=parseInt(r[1]);const u=parseInt(r[2]),f=r[3];f&&(f==="pm"&&d<12?d+=12:f==="am"&&d===12&&(d=0));const l=new Date(n);return l.setHours(d,u,0,0),l.getTime()<=n.getTime()&&l.setDate(l.getDate()+1),l.getTime()}return 0}function $(){M=c.registerCommand({name:"schedule",displayName:"schedule",description:"Schedule a message after a delay or at a time",options:[{name:"time",description:"Delay (e.g. 10s, 1h30m) or time (3:30pm, 15:30)",type:3,required:!0},{name:"message",description:"Message to send",type:3,required:!0}],execute:function(s,n){const t=n.channel.id,e=s[0]?.value,o=s[1]?.value;if(typeof e!="string"||e.trim()==="")return i.sendBotMessage(t,"Invalid time value!");if(typeof o!="string"||o.trim()==="")return i.sendBotMessage(t,"Message cannot be empty!");const a=I(e);if(a===0||a<=Date.now())return i.sendBotMessage(t,"Invalid or past time specified!");C(t,o,a);const r=Math.round((a-Date.now())/1e3);i.sendBotMessage(t,`Scheduled message in ${r}s.`)}}),y=c.registerCommand({name:"scheduled",displayName:"scheduled",description:"List scheduled messages",execute:function(s,n){const t=n.channel.id,e=Object.entries(g).map(function([o,a]){return`\u2022 **In ${Math.round((a.at-Date.now())/1e3)}s** \u2192 ${a.content}`});e.length===0?i.sendBotMessage(t,"No scheduled messages."):i.sendBotMessage(t,`Scheduled messages:
(function(h,c,D,p){"use strict";const w=p.findByProps("sendMessage","receiveMessage"),i=p.findByProps("sendBotMessage");let m={},g={},M,y,v;function C(s,n,t){const e=`${s}:${t}`,o=t-Date.now();return g[e]={content:n,at:t},m[e]=setTimeout(function(){const a=n;w.sendMessage(s,{content:a},void 0,{nonce:"az"}),delete m[e],delete g[e],D.showToast("Scheduled message sent.")},o),e}function B(){Object.values(m).forEach(clearTimeout),m={},g={}}function I(s){const n=new Date;s=s.toLowerCase();const t=/(\d+)(h|m|s)/g;let e=0,o;for(;(o=t.exec(s))!==null;){const d=parseInt(o[1]),u=o[2];u==="h"?e+=d*3600*1e3:u==="m"?e+=d*60*1e3:u==="s"&&(e+=d*1e3)}if(e>0)return Date.now()+e;const a=/^(\d{1,2}):(\d{2})(am|pm)?$/,r=s.match(a);if(r){let d=parseInt(r[1]);const u=parseInt(r[2]),f=r[3];f&&(f==="pm"&&d<12?d+=12:f==="am"&&d===12&&(d=0));const l=new Date(n);return l.setHours(d,u,0,0),l.getTime()<=n.getTime()&&l.setDate(l.getDate()+1),l.getTime()}return 0}function $(){M=c.registerCommand({name:"schedule",displayName:"schedule",description:"Schedule a message after a delay or at a time",options:[{name:"time",description:"Delay (e.g. 10s, 1h30m) or time (3:30pm, 15:30)",type:3,required:!0},{name:"message",description:"Message to send",type:3,required:!0}],execute:function(s,n){const t=n.channel.id,e=s[0]?.value,o=s[1]?.value;if(typeof e!="string"||e.trim()==="")return i.sendBotMessage(t,"Invalid time value!");if(typeof o!="string"||o.trim()==="")return i.sendBotMessage(t,"Message cannot be empty!");const a=I(e);if(a===0||a<=Date.now())return i.sendBotMessage(t,"Invalid or past time specified!");C(t,o,a);const r=Math.round((a-Date.now())/1e3);i.sendBotMessage(t,`Scheduled message in ${r}s.`)}}),y=c.registerCommand({name:"scheduled",displayName:"scheduled",description:"List scheduled messages",execute:function(s,n){const t=n.channel.id,e=Object.entries(g).map(function([o,a]){return`\u2022 **In ${Math.round((a.at-Date.now())/1e3)}s** \u2192 ${a.content}`});e.length===0?i.sendBotMessage(t,"No scheduled messages."):i.sendBotMessage(t,`Scheduled messages:
${e.join(`
`)}`)}}),v=c.registerCommand({name:"cancel-scheduled",displayName:"cancel-scheduled",description:"Cancel all scheduled messages",execute:function(s,n){const t=n.channel.id;B(),i.sendBotMessage(t,"All scheduled messages cancelled.")}})}function T(){B(),c.unregisterCommand(M),c.unregisterCommand(y),c.unregisterCommand(v)}return h.onLoad=$,h.onUnload=T,h})({},vendetta.commands,vendetta.ui.toasts,vendetta.metro);

View file

@ -1 +1 @@
{"name":"Message Scheduler","description":"Schedule messages to be sent at specific time or after a delay with /schedule.","authors":[{"name":"VMuser","id":"1258451646850007042"}],"main":"index.js","vendetta":{"icon":"ic_edit_24px"},"hash":"a81affa603f412c273bfd80da36d312b8ab7c6f57d5fac0e16f58b6d559e5a78"}
{"name":"Message Scheduler","description":"Schedule messages to be sent at specific time or after a delay with /schedule.","authors":[{"name":"VMuser","id":"1258451646850007042"}],"main":"index.js","vendetta":{"icon":"ic_edit_24px"},"hash":"ec3e3a8c7c16fb5ebfd65591fb3b5bcf93f46cf9f402bd8919e128ffbe6e4a70"}