Flashback bygger pepparkakshus!
2024-12-17, 12:13
  #1
Medlem
Naturstigs avatar
Är det någon som vet hur jag kan ladda hem alla inlägg i en stor tråd på min dator? Finns det någon regel som säger att jag inte får göra det?
Citera
2024-12-17, 12:27
  #2
Medlem
/Nisse_Hults avatar
Citat:
Ursprungligen postat av Naturstig
Är det någon som vet hur jag kan ladda hem alla inlägg i en stor tråd på min dator? Finns det någon regel som säger att jag inte får göra det?

Jag kan inte svara på om någon regel hindrar dig, men i EDGE så kan du alltid hålla ned Ctrl och trycka till på S och välja: Spara sida som..
samt välja t.ex. Enskild sida, enskild fil (*.mhtml)
Då kan du iallafall ladda ned skärm-sidan, men om du innan dess håller ned CTRL och klickar flera gånger på - så får du med mer i samma nedladdning
__________________
Senast redigerad av /Nisse_Hult 2024-12-17 kl. 12:30.
Citera
2024-12-17, 12:31
  #3
Medlem
Ovanstående funkar nog utmärkt. Problemet är bara att det är typen momentan-bild. Dvs, alla nya inlägg sedan filen skapades, kommer inte att vara med.
Så, finns det ingen speciell anledning till att låta bli, så kan ju ett bokmärke/favorit vara ett alternativ.
Citera
2024-12-17, 13:09
  #4
Medlem
GrillTeknikers avatar
Citat:
Ursprungligen postat av Naturstig
Är det någon som vet hur jag kan ladda hem alla inlägg i en stor tråd på min dator? Finns det någon regel som säger att jag inte får göra det?

Är du lite händig inom programmering kan du enkelt göra något skript som laddar hem alla inlägg, sida efter sida. Googla efter typ "python scraping", Python verkar vara poppis bland webscraping-scriptkiddies nuförtiden.
Citera
2024-12-17, 13:11
  #5
Medlem
MASSAGATTIs avatar
Citat:
Ursprungligen postat av Naturstig
Är det någon som vet hur jag kan ladda hem alla inlägg i en stor tråd på min dator? Finns det någon regel som säger att jag inte får göra det?

Får man fråga varför du vill göra detta istället för att följa tråden ?
Citera
2024-12-17, 14:28
  #6
Medlem
Citat:
Ursprungligen postat av MASSAGATTI
Får man fråga varför du vill göra detta istället för att följa tråden ?

Kan tänka mig för att dokumentera hur det ser ut innan raderade inlägg osv.
Men jag är också nyfiken på den riktiga orsaken.
Citera
2024-12-17, 16:17
  #7
Medlem
Enterprises avatar
Varning för fulkod, men något sådant här gör jobbet (vet ej om tillåtet).
Körs i Console i Browsern ifrån relevant tråd som du vill hämta ut. Varning igen: om tråden är lång finns risk för att scriptet fryser eller kraschar.

Koden öppnar en modal där alla poster inryms i ordning. Utskriftsfunktionen är inte funktionsduglig ännu.

Kod:
function showModal(htmlContent) {
    const 
overlay document.createElement('div');
    
overlay.style.position 'fixed';
    
overlay.style.top '0';
    
overlay.style.left '0';
    
overlay.style.right '0';
    
overlay.style.bottom '0';
    
overlay.style.backgroundColor 'rgba(0,0,0,0.5)';
    
overlay.style.display 'flex';
    
overlay.style.alignItems 'center';
    
overlay.style.justifyContent 'center';
    
overlay.style.zIndex '9999';

    const 
modal document.createElement('div');
    
modal.style.backgroundColor 'white';
    
modal.style.width '90%';
    
modal.style.height '90%';
    
modal.style.overflow 'auto';
    
modal.style.padding '1em';
    
modal.style.position 'relative';

    const 
printButton document.createElement('button');
    
printButton.innerHTML '🖨 Print';
    
printButton.style.position 'absolute';
    
printButton.style.top '10px';
    
printButton.style.right '10px';
    
printButton.style.padding '10px';
    
printButton.style.fontSize '16px';
    
printButton.style.backgroundColor '#4CAF50';
    
printButton.style.color 'white';
    
printButton.style.border 'none';
    
printButton.style.borderRadius '5px';
    
printButton.style.cursor 'pointer';

    
printButton.setAttribute('onclick''printModalContent(modal)');
    
modal.appendChild(printButton);
    
modal.innerHTML += htmlContent

    
overlay.appendChild(modal);

    
overlay.addEventListener('click', (event) => {
        if (
event.target === overlay) {
            
document.body.removeChild(overlay);
        }
    });

    
document.body.appendChild(overlay);
}


function 
printModalContent(modal) {
    const 
printWindow window.open('''''width=800,height=600');
    const 
modalContent modal.innerHTML.replace(/<button[^>]*>.*?<\/button>/, '');
    
printWindow.document.write(`
        <html>
        <head>
            <title>Print</title>
            <style>
                body {
                    font-family: Arial, sans-serif;
                    margin: 0;
                    padding: 0;
                }
                .modal-content {
                    padding: 20px;
                    background-color: white;
                }
               </style>
        </head>
        <body>
            <div class="modal-content">
                
${modalContent} <!-- Insert the modal content here -->
            </div>
        </body>
        </html>
    
`);
   
printWindow.document.close();
    
setTimeout(() => {
        
printWindow.print(); 
    }, 
500);
}
  

async function retreiveURL(url) {
    const 
await fetch(url);
    if (!
r.ok) {
        throw new 
Error(`Network error: ${r.status} ${r.statusText}`);
    }

    const 
arrayBuffer await r.arrayBuffer();
    const 
decoder = new TextDecoder('iso-8859-1');
    const 
decodedText decoder.decode(arrayBuffer);

    return 
decodedText;
}

function 
queryFromHTML(htmlStringselector) {
    const 
parser = new DOMParser();
    const 
doc parser.parseFromString(htmlString'text/html');
    return 
doc.querySelectorAll(selector);
}

function 
retrievePosts(nodelist) {
    
let h "";
    
nodelist.forEach(node => += node.innerHTML);
    return 
h;
}

const 
pageUrls = [];
const 
postIds = [];
var 
postHTML "";

let currUrl document.URL;
let pParts currUrl.split("p");
if (
pParts>2)
{
    
let nil pParts.pop(); 
}

let urlpParts.join("p");

let nextPage true;
let pageNum 1;

while (
nextPage) {
    
pageUrls.push(url);
    
let d await retreiveURL(url);

    
let nx queryFromHTML(d,"li.next a");
    if (
nx[0] !== undefined)
        
url nx[0].href;
    else
        
nextPage false;

    
let postNodes queryFromHTML(d,"div.post");
    
postHTML += retrievePosts(postNodes);
    
console.info("Parsing page "+pageNum++);

}
showModal(postHTML); 
Citera
2024-12-19, 10:13
  #8
Medlem
Naturstigs avatar
Tack för era svar allihopa. Får hem första sidan i tråden, fixade tillägg i chrome(fireshot) som kunde spara ner i pdf men inte hela tråden.

Citat:
Ursprungligen postat av Enterprise
Varning för fulkod, men något sådant här gör jobbet (vet ej om tillåtet).
Körs i Console i Browsern ifrån relevant tråd som du vill hämta ut. Varning igen: om tråden är lång finns risk för att scriptet fryser eller kraschar.

Tack men är novis. Måste läsa mer innan.

Anledningen är att jag har brutit foten och måste vara stilla så jag tänkte fixa mig ett projekt att leka med.
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in