Lesen Sie Zenns Artikel (Gehen Sie zum Sprachpaket, um den Feed zu erhalten) und [gofeed](https: // github) Ich fand heraus, dass es ein praktisches Tool namens .com / mmcdole / gofeed gibt, und wollte es berühren. Deshalb habe ich ein einfaches Tool erstellt, das nur den Qiita-Tag-Feed auf der CLI anzeigt.
qiita-tag-feed-reader-cli - CLI reader of Qiita tag feed.
Die Erklärung ist dieselbe wie README unter dem obigen Link, lautet jedoch wie folgt. ist.
# install
go get github.com/shinshin86/qiita-tag-feed-reader-cli
#Zeigen Sie den Feed an, indem Sie Tags zufällig angeben
qiita-tag-feed-reader-cli
#Zeigen Sie den Feed des angegebenen Tags an(in diesem Fall"Go"Aber"go"AberOK)
qiita-tag-feed-reader-cli Go
#Natürlich können Sie auch Japanisch verwenden
qiita-tag-feed-reader-CLI-Sicherheit
Ich wollte Gofeed vollständig berühren, und es war ein Werkzeug, das ich zum Studium von Go selbst entwickelt habe, aber unerwartet wurde es zu einem Werkzeug, das in kurzer Freizeit, beispielsweise während des Bauens, verwendet werden kann. Deshalb werde ich es auch hier melden. Es hängt davon ab, was Sie erhalten haben. (Weil es vor allem mit "Qiita" zusammenhängt)
Die Quelle selbst ist sehr klein, daher denke ich, dass es am besten ist, den Quellcode direkt zu lesen, um herauszufinden, was Sie tun. Zur Zeit schreibe ich es jedoch in Qiita und werde die technischen Punkte aufschreiben (obwohl es nicht gesagt werden kann).
Darüber hinaus scheint der Chabudai nach bisherigem Sprechen auf den Kopf gestellt worden zu sein, aber die Verwendung von "Gofeed" selbst ist gofeed README. Ich werde es weglassen, weil es ein Level ist, das man verstehen kann, wenn man sich den oben veröffentlichten Zenn-Beitrag ansieht.
Früher habe ich einen Code geschrieben, um den erfassten Feed mit Go selbst zu analysieren, aber ich dachte, es wäre praktisch, wenn ich gofeed hätte, weil ich die gesamte Verarbeitung auf einmal überspringen könnte. Ein einfach zu bedienendes Tool.
Wie Sie sehen können, indem Sie den Befehl tatsächlich drücken, werden die Informationen in der folgenden Reihenfolge angezeigt. Dies liegt daran, dass es in der CLI verwendet wird, sodass sich die Sichtlinie von unten nach oben bewegt.
・
・
・
----------------------------------------------------
<feed items>
-----------------------
<feed items>
-----------------------
<feed items>
-----------------------
<feed title>
<feed type> <feed version>
======================
Ich wollte auch Gofeed verwenden, also bekomme ich einen Tag-Feed. Für diese Feed-URL habe ich auf den folgenden Qiita-Beitrag verwiesen.
[Qiita-Artikel / Benutzer / Organisation / Tag-Feed-URL (XML / ATOM-URL des Benutzers oder Tags, dem Sie folgen möchten) -Tag-Feed-URL](https://qiita.com/KEINOS/items/f0a5bce2fa9cfec85f8b#%E3% 82% BF% E3% 82% B0% E3% 83% 95% E3% 82% A3% E3% 83% BC% E3% 83% 89% E3% 81% AE-url)
Das Entfernen von HTML-Tags wird anhand des folgenden Codes implementiert. (In der Tat ist es fast das gleiche, außer dass es HTML-Kommentare unterstützt ...) https://gist.github.com/g10guang/04f11221dadf1ed019e0d3cf3e82caf3
Der Quellcode zum Entfernen von HTML-Tags, die tatsächlich in "qiita-tag-feed-reader-cli" geschrieben wurden, ist unten aufgeführt.
func removeHTMLTag(html string) string {
const pattern = `(<\/?[a-zA-A!-]+?[^>]*\/?>)*`
r := regexp.MustCompile(pattern)
groups := r.FindAllString(html, -1)
// Replace the long string first
sort.Slice(groups, func(i, j int) bool {
return len(groups[i]) > len(groups[j])
})
for _, group := range groups {
if strings.TrimSpace(group) != "" {
html = strings.ReplaceAll(html, group, "")
}
}
return html
}
Als ich es beim Betrachten des Referenzcodes implementiert habe, dachte ich, dass es wahr ist. Wie Sie in den Kommentaren im obigen Code sehen können, werden die Zeichenfolgen in der Reihenfolge der längsten ersetzt.
Wenn Sie das Tag mit diesem regulären Ausdruck extrahieren, können Sie die folgenden zwei Muster von Tags als das erfasste Tag-Muster erhalten.
</span></div>
</span>
Wenn beim Ersetzen von HTML durch "strings.ReplaceAll" zuerst "</ span>" ersetzt wird, bleibt "</ span> </ div>" zurück. Ersetzen Sie ihn daher durch einen langen String. Ich versuche es zu tun. Dadurch werden alle HTML-Tags erfolgreich entfernt.
Eigentlich brauche ich auch einen Testcode, um dieses Verhalten richtig zu beweisen, aber ich wollte es schnell in Form bringen, also habe ich es seitwärts gelegt. Da es eine große Sache ist, werde ich zu einem späteren Zeitpunkt einen Testcode hinzufügen. → Hinzufügung: Ein Test wurde hinzugefügt.
Dies ist kein technischer Punkt. Wenn Sie dieses Tool jedoch ohne Argumente ausführen, wird versucht, ein Qiita-Tag zufällig auszuwählen und den Feed anzuzeigen. Beziehen Sie sich für dieses Qiita-Tag auf den folgenden Code und erhalten Sie die Tags in der Reihenfolge ihrer Beliebtheit.
[(Verwenden der Qiita-API v2) So erhalten Sie Informationen zu Qiita-Tags über die API - Beispielcode, der ohne Angabe von Tags abgerufen werden kann](https://qiita.com/kojiro-s/items/3862cf968d807497eef8#%E3%82 % BF% E3% 82% B0% E3% 82% 92% E6% 8C% 87% E5% AE% 9A% E3% 81% 97% E3% 81% AA% E3% 81% 84% E3% 81% A7 % E5% 8F% 96% E5% BE% 97% E3% 81% 99% E3% 82% 8B% E3% 82% B5% E3% 83% B3% E3% 83% 97% E3% 83% AB% E3 % 82% B3% E3% 83% BC% E3% 83% 89)
Wie Sie vielleicht bereits aus dem Quellcode wissen, verwalte ich zum Zeitpunkt der Implementierung in der Go-Datei 100 beliebte Tags und rufe sie zur Laufzeit auf. Daher ist es in Form von ** zufällig ausgewählt aus den 100 beliebten Tags zum Zeitpunkt der Erstellung dieses Tools.
Natürlich ist es möglich, zum Zeitpunkt der Ausführung 100 Tags in Echtzeit auszuwählen, aber da dies ursprünglich der Zweck war, Gofeed zu testen, ist es hier vollständig horizontal. Ich denke auch, dass die Qiita-API sofort die Obergrenze erreicht, wenn sie nicht authentifiziert wird. Daher hatte ich auch das Gefühl, dass ich das nicht berücksichtigen wollte.
Also, wenn Sie möchten, verwenden Sie es bitte. Für mich passt die Einfachheit dieses Tools gut zu ein wenig Freizeit, und es ist zu einem Tool geworden, das die Zeit unerwartet töten kann. Auf jeden Fall, wie zum Beispiel Wartezeit für den Bau.
Als ich es tatsächlich benutzt habe ↓
Recommended Posts