diff --git a/pages/admin/bulk-import.tsx b/pages/admin/bulk-import.tsx new file mode 100644 index 0000000..4c50814 --- /dev/null +++ b/pages/admin/bulk-import.tsx @@ -0,0 +1,94 @@ +import { useState } from "react" +import type { NextPage } from "next" +import Head from "next/head" +import Link from "next/link" + +const BulkImport: NextPage = () => { + const [importData, setImportData] = useState("") + const [loading, setLoading] = useState(false) + const [result, setResult] = useState(null) + + const handleImport = async () => { + if (!importData.trim()) return + + setLoading(true) + try { + const lines = importData.trim().split('\n') + const sources = lines.map(line => { + const [domain, risk_level] = line.split(',') + return { + domain: domain?.trim(), + risk_level: parseInt(risk_level?.trim()) || 3 + } + }).filter(s => s.domain) + + const response = await fetch('/api/admin/bulk-import', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ sources }) + }) + + const data = await response.json() + setResult(data) + } catch (error) { + setResult({ error: 'Import failed' }) + } + setLoading(false) + } + + return ( +
+ + Bulk Import - Infohliadka + + +
+
+ ← Back to Admin +
+ +

Bulk Import Sources

+

Import multiple sources at once. Format: domain,risk_level (one per line)

+ +