Features: - Multi-channel notifications (Email + Telegram) - User-configurable notification settings per channel - Telegram bot integration with rich messages, location pins, and inline buttons - QR code generation for easy bot access (@myidbot support) - Admin UI for notification settings management - Test functionality for Telegram connection - Comprehensive documentation Implementation: - lib/telegram-service.ts: Telegram API integration - lib/notification-settings-db.ts: Database layer for user notification preferences - lib/geofence-notifications.ts: Extended for parallel multi-channel delivery - API routes for settings management and testing - Admin UI with QR code display and step-by-step instructions - Database table: UserNotificationSettings Documentation: - docs/telegram.md: Technical implementation guide - docs/telegram-anleitung.md: User guide with @myidbot instructions - docs/telegram-setup.md: Admin setup guide - README.md: Updated NPM scripts section Docker: - Updated Dockerfile to copy public directory - Added TELEGRAM_BOT_TOKEN environment variable - Integrated notification settings initialization in db:init 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
41 lines
976 B
JavaScript
Executable File
41 lines
976 B
JavaScript
Executable File
#!/usr/bin/env node
|
|
/**
|
|
* Generate QR Code for Telegram Bot
|
|
*/
|
|
|
|
const QRCode = require('qrcode');
|
|
const fs = require('fs');
|
|
const path = require('path');
|
|
|
|
const BOT_URL = 'https://t.me/MeinTracking_bot';
|
|
const OUTPUT_DIR = path.join(process.cwd(), 'public');
|
|
const OUTPUT_FILE = path.join(OUTPUT_DIR, 'telegram-bot-qr.png');
|
|
|
|
async function generateQR() {
|
|
try {
|
|
// Ensure public directory exists
|
|
if (!fs.existsSync(OUTPUT_DIR)) {
|
|
fs.mkdirSync(OUTPUT_DIR, { recursive: true });
|
|
}
|
|
|
|
// Generate QR Code
|
|
await QRCode.toFile(OUTPUT_FILE, BOT_URL, {
|
|
width: 400,
|
|
margin: 2,
|
|
color: {
|
|
dark: '#000000',
|
|
light: '#FFFFFF'
|
|
}
|
|
});
|
|
|
|
console.log(`✅ QR Code generated: ${OUTPUT_FILE}`);
|
|
console.log(`📱 Bot URL: ${BOT_URL}`);
|
|
console.log(`🖼️ QR Code size: 400x400px`);
|
|
} catch (error) {
|
|
console.error('❌ Error generating QR Code:', error.message);
|
|
process.exit(1);
|
|
}
|
|
}
|
|
|
|
generateQR();
|