Files
mindesbunister de45349baa Restore working dashboard and TradingView analysis
- Fixed layout conflicts by removing minimal layout.tsx in favor of complete layout.js
- Restored original AI Analysis page with full TradingView integration
- Connected enhanced screenshot API to real TradingView automation service
- Fixed screenshot gallery to handle both string and object formats
- Added image serving API route for screenshot display
- Resolved hydration mismatch issues with suppressHydrationWarning
- All navigation pages working (Analysis, Trading, Automation, Settings)
- TradingView automation successfully capturing screenshots from AI and DIY layouts
- Docker Compose v2 compatibility ensured

Working features:
- Homepage with hero section and status cards
- Navigation menu with Trading Bot branding
- Real TradingView screenshot capture
- AI-powered chart analysis
- Multi-layout support (AI + DIY module)
- Screenshot gallery with image serving
- API endpoints for balance, status, screenshots, trading
2025-07-14 14:21:19 +02:00

81 lines
2.2 KiB
JavaScript

import { NextResponse } from 'next/server'
import fs from 'fs/promises'
import path from 'path'
export async function GET() {
try {
const screenshotsDir = path.join(process.cwd(), 'screenshots')
// Ensure screenshots directory exists
try {
await fs.mkdir(screenshotsDir, { recursive: true })
} catch (error) {
// Directory might already exist
}
// Get list of screenshot files
let files = []
try {
const fileList = await fs.readdir(screenshotsDir)
files = fileList
.filter(file => file.endsWith('.png') || file.endsWith('.jpg'))
.map(file => ({
name: file,
path: `/screenshots/${file}`,
timestamp: Date.now(), // You could get actual file timestamps
type: file.includes('analysis') ? 'analysis' : 'screenshot'
}))
.sort((a, b) => b.timestamp - a.timestamp) // Most recent first
} catch (error) {
console.log('No screenshots directory or empty')
}
return NextResponse.json({
success: true,
screenshots: files,
total: files.length
})
} catch (error) {
console.error('Screenshots API error:', error)
return NextResponse.json({
success: false,
error: 'Failed to get screenshots',
message: error instanceof Error ? error.message : 'Unknown error'
}, { status: 500 })
}
}
export async function POST(request) {
try {
const body = await request.json()
const { action, symbol, timeframe } = body
// Mock screenshot capture
const screenshotName = `analysis_${symbol}_${timeframe}_${Date.now()}.png`
const screenshotPath = `/screenshots/${screenshotName}`
// In a real implementation, this would capture TradingView
console.log('📸 Mock screenshot captured:', screenshotPath)
return NextResponse.json({
success: true,
screenshot: {
name: screenshotName,
path: screenshotPath,
timestamp: Date.now(),
symbol,
timeframe
}
})
} catch (error) {
console.error('Screenshot capture error:', error)
return NextResponse.json({
success: false,
error: 'Failed to capture screenshot',
message: error instanceof Error ? error.message : 'Unknown error'
}, { status: 500 })
}
}