90678506c67541a8fb34706d433060db4f94541f
AI Chat Summaries Plugin for exteraGram
Advanced AI-powered Telegram chat summarization plugin for exteraGram.
Features
- ChatGPT OAuth Integration: Secure browser authorization with automatic tier detection (Free:
luna,gpt-4o-mini; Plus/Pro/Business:terra,sol,gpt-4o,o1,o3-mini). - Custom AI Provider: OpenAI-compatible custom endpoints (OpenRouter, DeepSeek, Together AI, local vLLM/Ollama) with Multi-Stage Verification:
- Stage 1: URL reachability test.
- Stage 2: Lightweight probe test (
max_tokens: 10, thinking disabled). - Stage 3: Error logs with one-click full sanitized request log copier.
- Stage 4: Context window token budgeting (8k to 1M) preserving up to 8,000 characters per message.
- Built-in Connectors: Direct API key connectors for OpenAI, Anthropic Claude (with Claude 3.7 reasoning tokens), Google Gemini, and Ollama.
- Dual Triggers:
- Pinned Header AI Button: Top-right AI action button next to the pinned message bar.
- Unread Badge Long-Press: Long-press on floating unread badge or unread divider in chat with auto-filled message count.
- Chat Action Bar Menu: Fallback action item for universal accessibility.
- Animated Progress Widget: Dynamic in-header pulsing progress indicator that shrinks
PinnedMessageViewto prevent text overlap. - Live Thinking Stream Preview: Real-time streaming inspector for reasoning and thought process tokens (
reasoning_content,<think>...</think>,delta.thought). Can be toggled off in settings to save mobile bandwidth. - Per-Chat Customization: Pre-request bottom sheet with message count slider, style chips (Brief, Detailed, Key Highlights, Custom), and per-chat prompt override.
- Rich Result Dialog: Formatted Markdown rendering with Share, Copy Summary, Copy Full Prompt & Data, Regenerate, and Insert into Chat Composer.
- Localization: Full English (
en) and Russian (ru) translations.
Project Structure
exteragram-chat-summaries/
├── ai_chat_summary.plugin # Main entrypoint & metadata header
├── build.py # Standalone bundler & syntax validator
├── src/
│ ├── config.py # Configuration constants & model tiers
│ ├── localization.py # LocalizationManager (EN/RU dictionaries)
│ ├── providers/
│ │ ├── base.py # Base provider interface, debug logger, prompt builder
│ │ ├── oauth.py # ChatGPT OAuth handler & tier mapper
│ │ ├── custom.py # Custom provider with multi-stage verification
│ │ ├── builtin.py # OpenAI, Anthropic, Gemini, Ollama direct handlers
│ │ └── dispatcher.py # Unified dispatcher & live streaming state manager
│ ├── services/
│ │ └── message_fetcher.py # TLRPC history pagination & media formatting
│ ├── ui/
│ │ ├── settings.py # Dynamic settings layout & verification dialogs
│ │ ├── pre_request.py # Pre-request bottom sheet & prompt customizer
│ │ ├── progress_widget.py # In-header progress widget & pinned view shrinker
│ │ ├── thinking_sheet.py # Live streaming reasoning viewer
│ │ └── summary_dialog.py # Markdown result presentation & error log viewer
│ └── hooks/
│ ├── pinned_hook.py # PinnedMessageView top bar hook
│ └── unread_hook.py # ChatUnreadCell & floating badge long-press hook
├── tests/
│ └── test_plugin.py # Unit & simulation test suite
└── dist/
└── ai_chat_summary.plugin # Bundled single-file distributable artifact
Bundling & Testing
To bundle into a single-file distributable artifact:
python3 build.py
To run the unit and simulation test suite:
python3 -m unittest discover -s tests -v
Languages
Python
100%