| 214 | } |
| 215 | |
| 216 | function buildCopy(task: AcronTask): string { |
| 217 | if (task.type === "send") { |
| 218 | const remark = task.remark ? ` ${task.remark}` : ""; |
| 219 | return `${mainPrefix}acron send ${task.cron} ${task.chat}${ |
| 220 | task.replyTo ? `|${task.replyTo}` : "" |
| 221 | }${remark}`; |
| 222 | } else if (task.type === "cmd") { |
| 223 | const t = task as CmdTask; |
| 224 | const remark = t.remark ? ` ${t.remark}` : ""; |
| 225 | return `${mainPrefix}acron cmd ${t.cron} ${t.chat}${ |
| 226 | t.replyTo ? `|${t.replyTo}` : "" |
| 227 | }${remark}\n${t.message}`; |
| 228 | } else if (task.type === "copy") { |
| 229 | const remark = task.remark ? ` ${task.remark}` : ""; |
| 230 | const t = task as CopyTask; |
| 231 | return `${mainPrefix}acron copy ${t.cron} ${t.chat}${ |
| 232 | t.replyTo ? `|${t.replyTo}` : "" |
| 233 | }${remark}`; |
| 234 | } else if (task.type === "forward") { |
| 235 | const remark = task.remark ? ` ${task.remark}` : ""; |
| 236 | const t = task as ForwardTask; |
| 237 | return `${mainPrefix}acron forward ${t.cron} ${t.chat}${ |
| 238 | t.replyTo ? `|${t.replyTo}` : "" |
| 239 | }${remark}`; |
| 240 | } else if (task.type === "del") { |
| 241 | const remark = task.remark ? ` ${task.remark}` : ""; |
| 242 | return `${mainPrefix}acron del ${task.cron} ${task.chat} ${task.msgId}${remark}`; |
| 243 | } else if (task.type === "del_re") { |
| 244 | // 尽量保留原始正则字符串 |
| 245 | const t = task as DelReTask; |
| 246 | const remark = t.remark ? ` ${t.remark}` : ""; |
| 247 | return `${mainPrefix}acron del_re ${t.cron} ${t.chat} ${t.limit} ${t.regex}${remark}`; |
| 248 | } else if (task.type === "pin") { |
| 249 | const t = task as PinTask; |
| 250 | const remark = t.remark ? ` ${t.remark}` : ""; |
| 251 | const notify = t.notify ? "1" : "0"; |
| 252 | const pmOneSide = t.pmOneSide ? "1" : "0"; |
| 253 | return `${mainPrefix}acron pin ${t.cron} ${t.chat} ${t.msgId} ${notify} ${pmOneSide}${remark}`; |
| 254 | } else if (task.type === "unpin") { |
| 255 | const t = task as UnpinTask; |
| 256 | const remark = t.remark ? ` ${t.remark}` : ""; |
| 257 | return `${mainPrefix}acron unpin ${t.cron} ${t.chat} ${t.msgId}${remark}`; |
| 258 | } |
| 259 | // fallback(理论不可达) |
| 260 | return `${mainPrefix}acron`; |
| 261 | } |
| 262 | function buildCopyCommand(task: AcronTask): string { |
| 263 | const cmd = buildCopy(task); |
| 264 | return cmd?.includes("\n") ? `<pre>${cmd}</pre>` : `<code>${cmd}</code>`; |