diff --git a/frontend/src/tools/paywallkiller.jsx b/frontend/src/tools/paywallkiller.jsx index 463be87..a7bded6 100644 --- a/frontend/src/tools/paywallkiller.jsx +++ b/frontend/src/tools/paywallkiller.jsx @@ -12,12 +12,8 @@ export default function PaywallKiller() { const [inputUrl, setInputUrl] = useState(''); const [status, setStatus] = useState('idle'); const [archiveUrl, setArchiveUrl] = useState(''); - const [snapshotUrl, setSnapshotUrl] = useState(''); const [captchaDone, setCaptchaDone] = useState(false); - const [errMsg, setErrMsg] = useState(''); - const [pdfLoading, setPdfLoading] = useState(false); - const inputRef = useRef(null); - const snapshotRef = useRef(null); + const inputRef = useRef(null); function getTargetUrl() { const url = inputUrl.trim(); @@ -28,60 +24,18 @@ export default function PaywallKiller() { if (!inputUrl.trim()) return; const aUrl = `https://archive.ph/newest/${getTargetUrl()}`; setArchiveUrl(aUrl); - setSnapshotUrl(''); setStatus('open_archive'); setCaptchaDone(false); - setErrMsg(''); - } - - async function handlePdf() { - const urlToUse = snapshotUrl.trim() || archiveUrl; - if (!urlToUse) return; - setPdfLoading(true); - setErrMsg(''); - try { - const token = localStorage.getItem('sk_token'); - const res = await fetch('/api/tools/paywallkiller/pdf', { - method: 'POST', - headers: { - 'Content-Type': 'application/json', - ...(token ? { Authorization: `Bearer ${token}` } : {}), - }, - body: JSON.stringify({ archiveUrl: urlToUse }), - }); - if (!res.ok) { - const d = await res.json().catch(() => ({})); - throw new Error(d.error || 'PDF-Fehler'); - } - const blob = await res.blob(); - const objUrl = URL.createObjectURL(blob); - const a = document.createElement('a'); - a.href = objUrl; - a.download = 'artikel_' + Date.now() + '.pdf'; - document.body.appendChild(a); - a.click(); - document.body.removeChild(a); - setTimeout(() => URL.revokeObjectURL(objUrl), 5000); - } catch (err) { - setErrMsg(err.message || 'PDF fehlgeschlagen'); - } finally { - setPdfLoading(false); - } } function handleReset() { setInputUrl(''); setStatus('idle'); setArchiveUrl(''); - setSnapshotUrl(''); setCaptchaDone(false); - setErrMsg(''); - setPdfLoading(false); setTimeout(() => inputRef.current?.focus(), 50); } - const canPdf = captchaDone && (snapshotUrl.trim().startsWith('https://archive.') || archiveUrl); - return (