So lesen Sie Hacker News-Threads mit den neuesten Kommentaren zuerst

zeigt Kommentare in einer Baumstruktur an. Dies kann frustrierend sein, wenn Sie einer bestimmten Konversation folgen möchten, da Sie ständig durch den Baum scrollen müssen, um den neuesten Kommentar zu finden.

Ich habe dieses Problem heute auf drei verschiedene Arten gelöst. Ich werde sie in aufsteigender Reihenfolge der Komplexität detailliert beschreiben (was frustrierenderweise die umgekehrte Reihenfolge ist, in der ich sie herausgefunden habe!)

Der einfachste Weg: Algolia-Suche

Die offizielle Hacker News-Forschung verwendet Algolia mit einem ständig aktualisierten Index.

Wenn Sie nach Story suchen: 35111646, Kommentare filtern und dann nach Datum sortieren, erhalten Sie Kommentare für diese bestimmte Story, die neuesten ganz oben. Problem gelöst!

Hier ist die URL - ändern Sie die Story-ID in dieser URL (oder auf der Seite), um Kommentare aus einer anderen Story anzuzeigen.

Screenshot dieser Suchergebnisse

Algolias search_by_date-API

Die Algolia Hacker News API ist hier dokumentiert:

Beachten Sie, dass dies ein separates System von der offiziellen Hacker News-API ist, die von Firebase betrieben wird, keine Such- oder Filterendpunkte bereitstellt und unter https://github.com/HackerNews/API dokumentiert ist

Um alle Kommentare zu einer bestimmten Geschichte nach Datum sortiert abzurufen, die neuesten zuerst im JSON-Format, können Sie auf diesen Endpunkt klicken:

Der Parameter tags= erledigt hier die ganze Arbeit - wir benötigen ihn für Elemente vom Typ Kommentar, die mit story_35111646 getaggt wurden.

Dies gibt 20 Standardergebnisse zurück. Ich habe &hitsPerPage=1000 hinzugefügt, um das Maximum von 1000 zu erhalten.

Das macht Sie zu JSON, aber wie können wir es in unserem Browser besser lesbar machen?

Laden Sie diese in Datasette Lite

Ich werde verwenden, meine Version von Datasette, die direkt im Browser ausgeführt wird, wobei Python verwendet wird, das auf WebAssembly kompiliert wurde. Erfahren Sie mehr über .

Dies ist möglich, weil die Algolia-API JSON mit einem CORS-Header access-control-allow-origin:* zurückgibt, wodurch diese Daten von anderen Webanwendungen geladen werden können, die auf anderen Domänen ausgeführt werden.

Wenn Sie Datasette Lite einen ?json=-Parameter mit der URL einer JSON-Datei übergeben, die eine Liste von Objekten zurückgibt, wird diese verwendet, um diese JSON in eine SQLite-Tabelle mit einer Spalte für jeden der Schlüssel dieser Objekte zu laden .

Diese URL lädt diese Daten:

Wir können auf das Array search_by_date zugreifen, um Kommentare zu durchsuchen und zu filtern.

Die Tabelle search_by_date in Datasette Lite

Lassen Sie uns die Anzeige mit einer benutzerdefinierten SQL-Abfrage und einigen Datasette-Plugins verbessern.

Datasette Lite unterstützt einige Datasette-Plugins – Sie können ?install=name-of-plugin zur URL hinzufügen, um sie direkt von PyPI zu installieren.

Ich werde zwei Plugins laden:

fügt SQL-Funktionen hinzu, um HTML-Text mit Escape- und Un-Escape-Zeichen zu versehen und Tags zu entfernen bietet einen Mechanismus zum Generieren benutzerdefinierter Links in Spaltenergebnissen

Hier ist eine URL, die diese beiden Plugins lädt:

Nun, hier ist eine benutzerdefinierte SQL-Abfrage, die Kommentare etwas besser lesbar macht, wenn sie von Datasette angezeigt werden:

wählen hergestellt in, Autor, html_unescape( html_strip_tags (Kommentartext) ) als Text, Eltern ID, _Schlüsselwörter Seit search_by_date bestellt durch erstellt_bei desc

führt diese SQL-Abfrage auf Daten von Datasette Lite aus.

Ein letzter Tipp: Es wäre schön, wenn wir bei Hacker News von Ergebnissen zu Kommentaren wechseln könnten. So fügen Sie das hinzu, indem Sie einen von datasette-json-html aktivierten Trick verwenden:

wählen json_object( 'label', Objekt-ID, 'href', 'https://news.ycombinator.com/item?id=' || Objekt Identifikation ) als Link, hergestellt in, Autor, html_unescape( html_strip_tags (Kommentartext) ) als Text, Eltern ID, _Schlüsselwörter Seit search_by_date bestellt durch erstellt_bei desc

.

Dies fügt jedem Kommentar in der ersten Spalte der Tabelle einen Link hinzu.

Es funktioniert durch Konstruieren einer JSON-Zeichenfolge {"label": "35123521", "href": "https://news.ycombinator.com/item?id=35123521"} - das Plugin rendert es dann als Link, wenn Die Tabelle wird mit dem Datasette-Hook-Plugin angezeigt.

So lesen Sie Hacker News-Threads mit den neuesten Kommentaren zuerst

zeigt Kommentare in einer Baumstruktur an. Dies kann frustrierend sein, wenn Sie einer bestimmten Konversation folgen möchten, da Sie ständig durch den Baum scrollen müssen, um den neuesten Kommentar zu finden.

Ich habe dieses Problem heute auf drei verschiedene Arten gelöst. Ich werde sie in aufsteigender Reihenfolge der Komplexität detailliert beschreiben (was frustrierenderweise die umgekehrte Reihenfolge ist, in der ich sie herausgefunden habe!)

Der einfachste Weg: Algolia-Suche

Die offizielle Hacker News-Forschung verwendet Algolia mit einem ständig aktualisierten Index.

Wenn Sie nach Story suchen: 35111646, Kommentare filtern und dann nach Datum sortieren, erhalten Sie Kommentare für diese bestimmte Story, die neuesten ganz oben. Problem gelöst!

Hier ist die URL - ändern Sie die Story-ID in dieser URL (oder auf der Seite), um Kommentare aus einer anderen Story anzuzeigen.

Screenshot dieser Suchergebnisse

Algolias search_by_date-API

Die Algolia Hacker News API ist hier dokumentiert:

Beachten Sie, dass dies ein separates System von der offiziellen Hacker News-API ist, die von Firebase betrieben wird, keine Such- oder Filterendpunkte bereitstellt und unter https://github.com/HackerNews/API dokumentiert ist

Um alle Kommentare zu einer bestimmten Geschichte nach Datum sortiert abzurufen, die neuesten zuerst im JSON-Format, können Sie auf diesen Endpunkt klicken:

Der Parameter tags= erledigt hier die ganze Arbeit - wir benötigen ihn für Elemente vom Typ Kommentar, die mit story_35111646 getaggt wurden.

Dies gibt 20 Standardergebnisse zurück. Ich habe &hitsPerPage=1000 hinzugefügt, um das Maximum von 1000 zu erhalten.

Das macht Sie zu JSON, aber wie können wir es in unserem Browser besser lesbar machen?

Laden Sie diese in Datasette Lite

Ich werde verwenden, meine Version von Datasette, die direkt im Browser ausgeführt wird, wobei Python verwendet wird, das auf WebAssembly kompiliert wurde. Erfahren Sie mehr über .

Dies ist möglich, weil die Algolia-API JSON mit einem CORS-Header access-control-allow-origin:* zurückgibt, wodurch diese Daten von anderen Webanwendungen geladen werden können, die auf anderen Domänen ausgeführt werden.

Wenn Sie Datasette Lite einen ?json=-Parameter mit der URL einer JSON-Datei übergeben, die eine Liste von Objekten zurückgibt, wird diese verwendet, um diese JSON in eine SQLite-Tabelle mit einer Spalte für jeden der Schlüssel dieser Objekte zu laden .

Diese URL lädt diese Daten:

Wir können auf das Array search_by_date zugreifen, um Kommentare zu durchsuchen und zu filtern.

Die Tabelle search_by_date in Datasette Lite

Lassen Sie uns die Anzeige mit einer benutzerdefinierten SQL-Abfrage und einigen Datasette-Plugins verbessern.

Datasette Lite unterstützt einige Datasette-Plugins – Sie können ?install=name-of-plugin zur URL hinzufügen, um sie direkt von PyPI zu installieren.

Ich werde zwei Plugins laden:

fügt SQL-Funktionen hinzu, um HTML-Text mit Escape- und Un-Escape-Zeichen zu versehen und Tags zu entfernen bietet einen Mechanismus zum Generieren benutzerdefinierter Links in Spaltenergebnissen

Hier ist eine URL, die diese beiden Plugins lädt:

Nun, hier ist eine benutzerdefinierte SQL-Abfrage, die Kommentare etwas besser lesbar macht, wenn sie von Datasette angezeigt werden:

wählen hergestellt in, Autor, html_unescape( html_strip_tags (Kommentartext) ) als Text, Eltern ID, _Schlüsselwörter Seit search_by_date bestellt durch erstellt_bei desc

führt diese SQL-Abfrage auf Daten von Datasette Lite aus.

Ein letzter Tipp: Es wäre schön, wenn wir bei Hacker News von Ergebnissen zu Kommentaren wechseln könnten. So fügen Sie das hinzu, indem Sie einen von datasette-json-html aktivierten Trick verwenden:

wählen json_object( 'label', Objekt-ID, 'href', 'https://news.ycombinator.com/item?id=' || Objekt Identifikation ) als Link, hergestellt in, Autor, html_unescape( html_strip_tags (Kommentartext) ) als Text, Eltern ID, _Schlüsselwörter Seit search_by_date bestellt durch erstellt_bei desc

.

Dies fügt jedem Kommentar in der ersten Spalte der Tabelle einen Link hinzu.

Es funktioniert durch Konstruieren einer JSON-Zeichenfolge {"label": "35123521", "href": "https://news.ycombinator.com/item?id=35123521"} - das Plugin rendert es dann als Link, wenn Die Tabelle wird mit dem Datasette-Hook-Plugin angezeigt.

What's Your Reaction?

like

dislike

love

funny

angry

sad

wow