| 33 | isGif: boolean; |
| 34 | isWebm: boolean; |
| 35 | } |
| 36 | |
| 37 | class REVPlugin extends Plugin { |
| 38 | |
| 39 | name = 'rev'; |
| 40 | |
| 41 | description = `🔄 <b>反转插件</b> |
| 42 | |
| 43 | <b>✨ 功能介绍</b> |
| 44 | 支持文字和媒体的多种反转操作,让你的内容倒过来! |
| 45 | |
| 46 | <b>📝 文字反转</b> |
| 47 | • <code>${mainPrefix}rev [文字]</code> - 反转文字内容(支持 emoji) |
| 48 | • <code>${mainPrefix}rev</code>(回复文字消息)- 反转回复的文字 |
| 49 | |
| 50 | <b>🖼️ 媒体反转</b> |
| 51 | 支持格式:图片 / GIF / WebM / WebP |
| 52 | • <code>${mainPrefix}rev</code>(回复媒体)- 水平翻转 |
| 53 | • <code>${mainPrefix}rev h</code> - 水平翻转(左右镜像) |
| 54 | • <code>${mainPrefix}rev v</code> - 垂直翻转(上下镜像) |
| 55 | • <code>${mainPrefix}rev c</code> - 颜色反转(负片效果) |
| 56 | • <code>${mainPrefix}rev h c</code> - 组合使用(水平翻转 + 颜色反转) |
| 57 | |
| 58 | <b>💡 使用示例</b> |
| 59 | • <code>${mainPrefix}rev 你好世界</code> → 界世好你 |
| 60 | • 回复图片 + <code>${mainPrefix}rev v</code> → 上下翻转的图片 |
| 61 | • 回复 GIF + <code>${mainPrefix}rev c</code> → 负片效果的 GIF |
| 62 | • 回复 WebM + <code>${mainPrefix}rev h c</code> → 水平翻转 + 负片效果`; |
| 63 | |
| 64 | cmdHandlers = { |
| 65 | rev: async (msg: Api.Message) => { |
| 66 | try { |
| 67 | const args = this.parseArgs(msg); |
| 68 | const { flipMode, invertColors, remaining } = |
| 69 | this.extractMediaOptions(args); |
| 70 | const inputText = remaining.join(' ').trim(); |
| 71 | |
| 72 | // 处理文本反转 |
| 73 | if (inputText) { |
| 74 | await this.handleTextReverse(msg, inputText); |
| 75 | return; |
| 76 | } |
| 77 | |
| 78 | // 处理媒体反转 |
| 79 | const replyMsg = await safeGetReplyMessage(msg); |
| 80 | if (replyMsg) { |
| 81 | const handled = await this.handleReplyMessage( |
| 82 | msg, |
| 83 | replyMsg, |
| 84 | flipMode, |
| 85 | invertColors |
| 86 | ); |
| 87 | if (handled) return; |
| 88 | } |
| 89 | |
| 90 | // 无有效内容时的提示 |
| 91 | await msg.edit({ |
| 92 | text: `❌ 请提供文本内容或回复一条支持的消息\n\n<b>支持的格式:</b>\n• 文本消息(逐行反转)\n• 图片(JPG/PNG/BMP/WebP)\n• 动图(GIF/.gif.mp4)\n• 贴纸(WebM)\n\n<b>使用方法:</b>\n<code>${mainPrefix}rev [文本]</code> 或回复消息使用 <code>${mainPrefix}rev [参数]</code>`, |
nothing calls this directly
no test coverage detected