# jijackoolantern/confessionbot architecture

> Architecture diagram of the GitHub repository jijackoolantern/confessionbot, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/jijackoolantern/confessionbot
- Repository: https://github.com/jijackoolantern/confessionbot

## Overview

This repository implements an anonymous-posting Telegram bot and a companion subscription/cashier bot. The main workflow accepts a user submission, applies eligibility and content checks, queues it, then publishes it to the relevant channel. The companion bot supports subscriptions, perks, payments, and club requests. Source excerpts are partial and the README is empty, so uncertain persistence details and unshown handler wiring are omitted.

Main entry points: [`sub_bot.py`](https://github.com/jijackoolantern/confessionbot/blob/main/sub_bot.py) (Cashier Bot), [`main.py`](https://github.com/jijackoolantern/confessionbot/blob/main/main.py) (Confession Bot)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_posting["Anonymous Posting"]
  node_main_bot["Confession Bot<br/>[main.py]"]
  node_submission_checks["Submission Checks<br/>[main.py]"]
  node_post_queue["Post Queue<br/>[main.py]"]
  node_queue_worker["Queue Worker<br/>[main.py]"]
end

subgraph group_operations["Moderation Operations"]
  node_moderation["Moderation Tools<br/>[main.py]"]
  node_admin_logs["Admin Logs<br/>[main.py]"]
end

subgraph group_membership["Subscriptions"]
  node_cashier_bot["Cashier Bot<br/>[sub_bot.py]"]
  node_tier_perks["Tiers and Perks<br/>[sub_bot.py]"]
  node_payment_handlers["Payment Handlers<br/>[sub_bot.py]"]
  node_club_requests["Club Requests<br/>[sub_bot.py]"]
  node_subscription_state[("Subscription State<br/>[sub_bot.py]")]
end

subgraph group_platform["Telegram Platform"]
  node_confession_channel["Confession Channel"]
  node_ad_channel["Advertisement Channel"]
  node_telegram["Telegram"]
end

node_user(("User"))
node_owner_mod(("Owner / Moderator"))

node_user -->|"submits content"| node_main_bot
node_main_bot -->|"checks submission"| node_submission_checks
node_submission_checks -->|"enqueues eligible posts"| node_post_queue
node_main_bot -->|"schedules worker"| node_post_queue
node_queue_worker -->|"publishes posts"| node_confession_channel
node_queue_worker -->|"publishes ads"| node_ad_channel
node_main_bot -->|"sends replies"| node_telegram
node_owner_mod -->|"uses commands"| node_main_bot
node_main_bot -->|"handles moderation"| node_moderation
node_moderation -->|"records actions"| node_admin_logs
node_moderation -->|"sends log messages"| node_telegram
node_user -->|"requests membership"| node_cashier_bot
node_cashier_bot -->|"shows options"| node_tier_perks
node_cashier_bot -->|"handles payment"| node_payment_handlers
node_payment_handlers -->|"updates access"| node_subscription_state
node_cashier_bot -->|"routes club requests"| node_club_requests
node_owner_mod -->|"reviews requests"| node_cashier_bot
node_cashier_bot -->|"reads access"| node_subscription_state
node_cashier_bot -->|"sends notifications"| node_telegram
node_telegram -->|"delivers updates"| node_main_bot
node_telegram -->|"delivers updates"| node_cashier_bot

click node_main_bot "https://github.com/jijackoolantern/confessionbot/blob/main/main.py"
click node_submission_checks "https://github.com/jijackoolantern/confessionbot/blob/main/main.py"
click node_post_queue "https://github.com/jijackoolantern/confessionbot/blob/main/main.py"
click node_queue_worker "https://github.com/jijackoolantern/confessionbot/blob/main/main.py"
click node_moderation "https://github.com/jijackoolantern/confessionbot/blob/main/main.py"
click node_admin_logs "https://github.com/jijackoolantern/confessionbot/blob/main/main.py"
click node_cashier_bot "https://github.com/jijackoolantern/confessionbot/blob/main/sub_bot.py"
click node_tier_perks "https://github.com/jijackoolantern/confessionbot/blob/main/sub_bot.py"
click node_payment_handlers "https://github.com/jijackoolantern/confessionbot/blob/main/sub_bot.py"
click node_club_requests "https://github.com/jijackoolantern/confessionbot/blob/main/sub_bot.py"
click node_subscription_state "https://github.com/jijackoolantern/confessionbot/blob/main/sub_bot.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_main_bot,node_submission_checks,node_post_queue,node_queue_worker,node_user toneBlue
class node_moderation,node_admin_logs toneAmber
class node_cashier_bot,node_tier_perks,node_payment_handlers,node_club_requests,node_subscription_state toneMint
class node_confession_channel,node_ad_channel,node_telegram toneRose
class node_owner_mod toneIndigo
```

## Components

### Anonymous Posting

- [Confession Bot](https://github.com/jijackoolantern/confessionbot/blob/main/main.py): `main.py`
- [Submission Checks](https://github.com/jijackoolantern/confessionbot/blob/main/main.py): `main.py`
- [Post Queue](https://github.com/jijackoolantern/confessionbot/blob/main/main.py): `main.py`
- [Queue Worker](https://github.com/jijackoolantern/confessionbot/blob/main/main.py): `main.py`

### Moderation Operations

- [Moderation Tools](https://github.com/jijackoolantern/confessionbot/blob/main/main.py): `main.py`
- [Admin Logs](https://github.com/jijackoolantern/confessionbot/blob/main/main.py): `main.py`

### Subscriptions

- [Cashier Bot](https://github.com/jijackoolantern/confessionbot/blob/main/sub_bot.py): `sub_bot.py`
- [Tiers and Perks](https://github.com/jijackoolantern/confessionbot/blob/main/sub_bot.py): `sub_bot.py`
- [Payment Handlers](https://github.com/jijackoolantern/confessionbot/blob/main/sub_bot.py): `sub_bot.py`
- [Club Requests](https://github.com/jijackoolantern/confessionbot/blob/main/sub_bot.py): `sub_bot.py`
- [Subscription State](https://github.com/jijackoolantern/confessionbot/blob/main/sub_bot.py): `sub_bot.py`

### Telegram Platform

- **Confession Channel**
- **Advertisement Channel**
- **Telegram**

### Other components

- **User**
- **Owner / Moderator**

## Connections

- User → Confession Bot: submits content
- Confession Bot → Submission Checks: checks submission
- Submission Checks → Post Queue: enqueues eligible posts
- Confession Bot → Post Queue: schedules worker
- Queue Worker → Confession Channel: publishes posts
- Queue Worker → Advertisement Channel: publishes ads
- Confession Bot → Telegram: sends replies
- Owner / Moderator → Confession Bot: uses commands
- Confession Bot → Moderation Tools: handles moderation
- Moderation Tools → Admin Logs: records actions
- Moderation Tools → Telegram: sends log messages
- User → Cashier Bot: requests membership
- Cashier Bot → Tiers and Perks: shows options
- Cashier Bot → Payment Handlers: handles payment
- Payment Handlers → Subscription State: updates access
- Cashier Bot → Club Requests: routes club requests
- Owner / Moderator → Cashier Bot: reviews requests
- Cashier Bot → Subscription State: reads access
- Cashier Bot → Telegram: sends notifications
- Telegram → Confession Bot: delivers updates
- Telegram → Cashier Bot: delivers updates
