Add STARTUP_ANNOUNCEMENT_CHANNEL_ID to control where startup announcements are sent.
Changes:
- New config: STARTUP_ANNOUNCEMENT_CHANNEL_ID
- Announcements sent only to specified channel
- Falls back to first CHANNEL_ID if not set
- Prevents announcement spam in all stock update channels
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Bot can now send a one-time announcement to all configured channels when it starts.
Configuration:
- Set STARTUP_ANNOUNCEMENT in .env with your message
- Leave empty to disable announcements
- Prevents duplicate announcements on reconnects
Usage example:
STARTUP_ANNOUNCEMENT=Bot updated! New features: colored prices and charts
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Remove ANSI code block formatting from price change field to eliminate grey background box. Price change now displays as plain text while maintaining color indication via embed border.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Remove Finnhub + QuickChart candlestick chart code. Chart generation will be handled by a separate service in the future.
Simplified back to FinViz daily charts for reliability.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Replace FinViz charts with custom-generated candlestick charts:
- Fetch 5-minute OHLC data from Finnhub API
- Generate candlestick chart images via QuickChart API
- Display last 50 candles with time-based x-axis
- Fallback to FinViz daily chart if intraday data unavailable
New FinnhubAPI methods:
- get_intraday_candles(): Fetch 5-min candle data
- generate_chart_url(): Create QuickChart URL from candle data
Chart specifications: 800x400px, Chart.js v3, candlestick type
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Changed chart timeframe from 5-minute intraday (p=i5) to daily (p=d) for better reliability and availability on FinViz free tier.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
All stock price embeds now include a FinViz candlestick chart showing 5-minute intraday data with technical analysis indicators.
Chart displays below price information in embed format.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Price change values now display with ANSI color formatting matching the embed border color:
- Red text for negative price changes
- Green text for positive price changes
- Blue text for no change
Improves visual clarity by color-coding the percentage change field.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Bot now supports sending updates to multiple Discord channels simultaneously.
Changes:
- CHANNEL_ID accepts comma-separated list of channel IDs
- Config parses and validates multiple channel IDs
- Hourly and market close updates sent to all configured channels
- Update .env.example to show multi-channel format
- Document multi-channel configuration in README
Example: CHANNEL_ID=1442203998932304035,9876543210123456789
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Bot enhancements:
- Add scheduled update at market close (4:00 PM ET on trading days)
- Implement is_trading_day() method to check weekdays/holidays
- Market close update sends PYPL price at end of trading day
Deployment changes:
- Update all scripts to use Docker Compose Manager plugin path
- New path: /boot/config/plugins/compose.manager/projects/discord-stock-bot
- Container now integrates with Unraid Docker UI Compose section
- Update documentation with plugin integration details
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Functional Discord bot with automated hourly stock price updates during NYSE trading hours. Supports manual queries for any ticker via prefix commands.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>