Discord-Channels exportieren

Zum Export eines Discord-Channels war ich auf der Suche nach einer Möglichkeit den Text und eingebettete Medien zu exportieren. Fündig wurde ich beim DiscordChatExporter. Mithilfe dieses Werkzeuges können Channels als HTML-, Text-, CSV- oder JSON-Datei exportiert werden. Für Windows steht eine Version mit grafischer Oberfläche zur Verfügung. Nutzer welche den DiscordChatExporter unter Linux oder macOS betreiben möchten, können die Version für die Kommandozeile nutzen.

Der DiscordChatExporter unter Windows

Der Quelltext des Projektes ist auf GitHub zu finden. Dort sind die ebenfalls die aktuellen Releases zu finden. Lizenziert ist der DiscordChatExporter unter der GPL in Version 3 und damit freie Software.

Netflix-Verlauf anschauen und exportieren

Wer den Streaming-Dienst Netflix nutzt, mag sich eventuell fragen, ob er den Verlauf der angeschauten Serien und Filme einsehen kann. Um diesen Verlauf anzuschauen muss die offizielle Netflix-Webseite unter netflix.com aufgerufen werden und dort im Menü der Punkt Konto ausgewählt werden.

Über den Titelverlauf kann die Historie des Nutzers eingesehen werden

In den sich öffnenden Optionen findet sich unter anderem der Punkt Titelverlauf. Wird dieser Punkt ausgewählt, so kann der komplette Verlauf des Nutzers angeschaut werden. Der Verlauf kann nicht nur auf der Webseite angesehen, sondern auch als CSV-Datei exportiert und heruntergeladen werden.

HTML Tabelle in CSV

Manchmal ist es ganz praktisch wenn man aus einer HTML Tabelle eine CSV erstellen kann. Dazu gibt es unter http://www.codekeep.net/snippets/ec9f4704-b88a-486a-98f9-896de6afb021.aspx auch ein schönes Beispiel. Das Problem an diesem Beispiel ist das es nicht funktioniert. Einige Elemente sehen nach jQuery aus, so das man es ohne diese Bibliothek nicht benutzen kann. Mit „normalem“ Javaskript sieht das ganze dann so aus:

function tableRowsToCSV(theRows) 
{
 // Converts table rows into a csv stream
 var csv = "";
 for (var r=0;r<theRows.length;r++) {
 var csvRow = "";

 var theCells = theRows.item(r).cells;
 for (var c=0;c<theCells.length;c++) {
 var cellData="";
 cellData = theCells.item(c).textContent;
 //alert(cellData);
 if (cellData.indexOf(",") != -1) { 
 cellData = "'"+cellData+"'"; 
 }
 csvRow += ","+cellData;
 }
 if (csvRow != "") { 
 csvRow = csvRow.substring(1,csvRow.length); 
 }
 csv += csvRow+"\n";
 }
 return csv;
}

Der Aufruf der Funktion könnte dann zum Beispiel so aussehen:

var csvText = tableRowsToCSV(document.getElementsByTagName("tr"));

Diesen Text kann man dann in Javaskript weiterverwenden oder ihn z.B. an ein PHP Skript (per POST) schicken, welches das ganze dann zum Download anbietet.