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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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