Skip to content

Plugin Enhancement: Confessions — media attachments, anonymous replies, scheduled posts, themes #38

Description

@DeadIndian

Plugin Enhancement: Confessions — image/media attachments, anonymous replies, scheduled confessions

Enhance adb-plugin-confessions with image/media attachments, anonymous replies, scheduled posting, multi-channel support, and anonymous interaction.

Why

The current confessions plugin is text-only with basic approval. Users want to share images anonymously, reply to confessions, schedule posts, and have more interactive features like those in popular anonymous posting bots.

Spec

New Features:

1. Image/Media Attachments

  • /confess text <message> — Existing text submission (maintained)
  • /confess image <url> — Submit an image confession
  • /confess attachment <file> — Submit with file attachment (Discord attachment)
  • /confess embed <title> <description> — Submit as rich embed
  • Supported: images (PNG, JPG, GIF, WebP), video (MP4, WebM), audio (MP3)
  • Auto-embed media or send as attachment via webhook
  • Max file size: Discord's 25MB or server config limit

2. Scheduled / Delayed Confessions

  • /confess schedule <content> <time> — Schedule a confession for later
  • /confess schedule list — Your pending scheduled confessions
  • /confess schedule cancel <id> — Cancel a scheduled confession
  • Time formats: 2h, tomorrow 9am, next Monday, 2026-08-15T12:00:00Z
  • Useful for: timed reveals, anniversary posts, scheduled burns
  • Admin override: /confess-admin schedule-list — see all pending scheduled posts

3. Anonymous Replies

  • Reply via DM: if user A's confession gets posted, user B can reply to the bot's DM
  • /confess reply <confession-id> <message> — Reply to a specific confession
  • Replies appear as a new confession prefixed with "In reply to confession #42:"
  • Reply chain tracking: link replies to original confession
  • Mod toggle: /confess-admin allow-replies [on|off] — Enable reply system
  • Reply notification to original author (anonymously, via DM)

4. Confession Themes / Formats

  • /confess rant <message> — Submit as a "rant" (different embed color/style)
  • /confess love <message> — Submit as a love confession 💕
  • /confess joke <message> — Submit as a joke 🤣
  • /confess advice <message> — Ask for advice
  • /confess secret <message> — Share a secret (default)
  • Each type has a distinct embed color and emoji label
  • Custom types via admin config

5. Multi-Channel Support

  • /confess-admin add-channel <#channel> [theme] — Add another output channel
  • /confess-admin remove-channel <#channel> — Remove a channel
  • Assign themes per channel: #confessions → general, #rants → rant only
  • Channel cooldowns independently configurable
  • Cross-channel: user picks which channel to post to via select menu

6. Interactive Confession Feed

  • React with ❤️ on confessions to show support (count shown)
  • Confession reactions: ❤️ 😂 😮 😢 😡 — per-server configurable emoji set
  • Popular confession: auto-pin confessions reaching X reactions
  • Confession of the Week: auto-post a "Best of" embed every Monday
  • React-only mode: no reply text, just emoji reactions

7. Admin Enhancements

  • /confess-admin stats — Total confessions, blocked users, approval rate
  • /confess-admin export — Export all confessions as JSON
  • /confess-admin word-filter add <word> — Auto-block confessions containing word
  • /confess-admin word-filter remove <word> — Remove blocked word
  • /confess-admin word-filter list — List blocked words
  • /confess-admin slowmode <seconds> — Cooldown time between confessions
  • /confess-admin require-account-age <days> — Min account age to confess
  • /confess-admin require-join-age <days> — Min time since joining server

Config Schema Additions:

{
  // Existing config preserved
  "channel": null,
  "cooldown": 60,
  "requireApproval": false,
  // New:
  "channels": [
    { "id": "", "theme": "general" }
  ],
  "allowImages": true,
  "maxFileSize": 25,          // MB
  "allowReplies": false,
  "maxReplies": 3,            // max replies per confession
  "reactions": ["❤️", "😂", "😮", "😢", "😡"],
  "popularThreshold": 10,     // reactions to auto-pin
  "weeklyBest": true,
  "scheduledEnabled": true,
  "maxScheduledPerUser": 5,
  "wordFilter": [],
  "requireAccountAge": 0,     // days
  "requireJoinAge": 0,        // days
  "themes": {
    "default": { "color": "#9B59B6", "emoji": "🤫", "label": "Secret" },
    "rant": { "color": "#E74C3C", "emoji": "😤", "label": "Rant" },
    "love": { "color": "#FF69B4", "emoji": "💕", "label": "Love" },
    "joke": { "color": "#F1C40F", "emoji": "🤣", "label": "Joke" },
    "advice": { "color": "#3498DB", "emoji": "💡", "label": "Advice" }
  }
}

Acceptance Criteria

  • Image and file attachment confessions
  • Anonymous reply system for confessions
  • Scheduled/delayed confession posting
  • Multiple themed confession types with different embed colors
  • Multi-channel output with theme routing
  • Interactive reaction feed (love, laugh, etc.)
  • Weekly best/popular auto-pin
  • Admin word filter and account age requirements

Metadata

Metadata

Assignees

No one assigned

    Labels

    plugin-enhancementEnhancement to an existing plugin (add features, improve UX)

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions