Terug naar de editor

Reddit-post in één klik ophalen

Sleep de knop hieronder naar je bladwijzerbalk. Lees je daarna een verhaal op Reddit, klik dan op die bladwijzer: StoryReel gaat open met de titel, het verhaal, de gebruikersnaam, de subreddit en het aantal stemmen al ingevuld.

▶ Naar StoryReel

Sleep deze knop naar boven, naar je bladwijzerbalk.

Zo doe je dat

  1. Zorg dat je bladwijzerbalk zichtbaar is (Ctrl+Shift+B in Chrome en Edge).
  2. Sleep de oranje knop hierboven naar die balk.
  3. Open een verhaal op Reddit en klik op de bladwijzer.
  4. StoryReel gaat open met alles ingevuld. Je hoeft alleen nog een achtergrondvideo te kiezen.

Herhaal dit op je andere computer, dan heb je hem daar ook. Er wordt niets geïnstalleerd: het is gewoon een bladwijzer.

Waarom dit beter werkt dan de link plakken

Deze knop draait op reddit.com zelf en mag daardoor de gegevens van de post gewoon lezen. Plak je de link in StoryReel, dan moet die pagina de gegevens bij een ander domein ophalen, en dat mag een browser alleen als dat andere domein er toestemming voor geeft. Reddit doet dat niet altijd. Deze server kan er sowieso niet bij: Reddit blokkeert adressen van datacenters, tenzij je een sleutel instelt in reddit-sleutel.php.

Werkt hij niet?

Belangrijk: is de knop aangepast, sleep hem dan opnieuw naar je balk. Een bladwijzer bewaart de code van het moment dat je hem sleepte; hij werkt niet bij.

  1. Er gebeurt helemaal niets, ook geen melding. Kijk of je op een pagina staat waarvan het adres /comments/ bevat, dus een geopend verhaal en niet een overzichtslijst. Zo ja, dan blokkeert je browser waarschijnlijk het nieuwe tabblad: kijk of er rechts in de adresbalk een klein icoontje staat over geblokkeerde pop-ups, en sta ze toe voor reddit.com.
  2. Firefox. Die weigert bladwijzers met code op sites die dat verbieden, en Reddit is zo'n site. Gebruik dan Chrome of Edge, of plak de link gewoon in het veld bovenaan de editor.
  3. "Deze post heeft geen tekst". Dan is het een foto, filmpje of link. StoryReel heeft een geschreven verhaal nodig.
  4. "Reddit gaf foutcode 403". De subreddit is besloten of de post is verwijderd.

Sommige browsers weigeren een bladwijzer met programmacode als je hem intypt in plaats van sleept. Lukt slepen niet, maak dan handmatig een nieuwe bladwijzer aan en plak deze regel in het adresveld:

javascript:(function(){try{var m=location.pathname.match(/\/comments\/([a-z0-9]{4,10})/i);if(!m){var h=location.hostname,u=location.href;var t=(h.indexOf('reddit.com')===-1)?('Dit tabblad staat niet op Reddit.\n\nIk zie hier:\n'+u+'\n\nKlik de knop aan terwijl je het verhaal zelf op reddit.com hebt openstaan.'):('Dit is wel Reddit, maar geen geopend verhaal.\n\nIk zie hier:\n'+u+'\n\nKlik eerst op een verhaal, zodat er /comments/ in het adres staat, en klik dan pas op de knop.');alert('StoryReel: '+t);return;}var B='https://itiseasypoc.nl/storyreel/';var w=window.open(B,'_blank');fetch('/comments/'+m[1]+'.json?raw_json=1&limit=20').then(function(r){if(!r.ok){throw new Error('Reddit gaf foutcode '+r.status+'.');}return r.json();}).then(function(j){var p=j&&j[0]&&j[0].data&&j[0].data.children&&j[0].data.children[0]&&j[0].data.children[0].data;if(!p){throw new Error('Geen post gevonden in het antwoord van Reddit.');}if(!p.selftext||!p.selftext.trim()){throw new Error('Deze post heeft geen tekst; het is waarschijnlijk een foto, filmpje of link.');}var cs=[],k=(j[1]&&j[1].data&&j[1].data.children)||[];for(var i=0;i<k.length&&cs.length<5;i++){var d=k[i].data||{};if(k[i].kind==='t1'&&!d.stickied&&d.author!=='AutoModerator'&&d.body&&d.body!=='[removed]'&&d.body!=='[deleted]'){cs.push({auteur:d.author,tekst:d.body.slice(0,600),stemmen:d.ups||0});}}var u=B+'#reddit='+encodeURIComponent(JSON.stringify({titel:p.title,tekst:p.selftext,auteur:p.author,subreddit:p.subreddit,stemmen:p.ups,reacties_aantal:p.num_comments,volwassen:p.over_18,reacties:cs}));if(w&&!w.closed){w.location.replace(u);}else{location.href=u;}}).catch(function(e){if(w&&!w.closed){w.close();}alert('StoryReel: '+e.message);});}catch(e){alert('StoryReel: '+e.message);}})();