Lisez l'article de Zenn (Go language package pour obtenir le flux) et [gofeed](https: // github) J'ai découvert qu'il existe un outil pratique appelé .com / mmcdole / gofeed) et je voulais le toucher, j'ai donc créé un outil simple qui affiche simplement le flux de balises Qiita sur la CLI.
qiita-tag-feed-reader-cli - CLI reader of Qiita tag feed.
L'explication est la même que README sur le lien ci-dessus, mais c'est comme suit. est.
# install
go get github.com/shinshin86/qiita-tag-feed-reader-cli
#Afficher le flux en spécifiant des balises au hasard
qiita-tag-feed-reader-cli
#Afficher le flux de la balise spécifiée(dans ce cas"Go"Mais"go"MaisOK)
qiita-tag-feed-reader-cli Go
#Bien sûr, vous pouvez également utiliser le japonais
qiita-tag-feed-reader-sécurité cli
Je voulais toucher complètement gofeed, et c'était un outil que j'ai créé dans le but d'étudier Go lui-même, mais de manière inattendue, il est devenu un outil qui peut être utilisé dans un peu de temps libre comme pendant la construction, donc je vais le rapporter ici aussi. Cela dépend de ce que vous avez reçu.
(Parce qu'il est lié à Qiita
avant tout)
La source elle-même est très petite, donc je pense qu'il est préférable de lire le code source directement pour savoir ce que vous faites. Cependant, pour le moment, je l'écris en Qiita, et j'écrirai les points techniques (bien que cela ne puisse être dit).
De plus, il semble que la table soit retournée après avoir parlé jusqu'ici, mais l'utilisation de gofeed
lui-même est gofeed README. Je vais l'omettre car c'est un niveau qui peut être compris en regardant le post de Zenn posté ci-dessus.
J'écrivais moi-même un code pour analyser le flux acquis avec Go, mais je pensais que ce serait pratique si j'avais gofeed car je pouvais ignorer tout le traitement en même temps. Un outil facile à utiliser.
Comme vous pouvez le voir en appuyant sur la commande, les informations sont affichées dans l'ordre suivant. En effet, il est utilisé sur la CLI, de sorte que la ligne de visée se déplace de bas en haut.
・
・
・
----------------------------------------------------
<feed items>
-----------------------
<feed items>
-----------------------
<feed items>
-----------------------
<feed title>
<feed type> <feed version>
======================
Je voulais aussi utiliser gofeed, donc je reçois un fil de tag. Pour cette URL de flux, je me suis référé au post Qiita ci-dessous.
[Qiita Article / User / Organization / Tag Feed URL (URL XML / ATOM de l'utilisateur ou du tag que vous souhaitez suivre) -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)
Le processus de suppression des balises HTML est mis en œuvre en se référant au code ci-dessous. (En fait, c'est presque la même chose sauf qu'il prend en charge les commentaires HTML ...) https://gist.github.com/g10guang/04f11221dadf1ed019e0d3cf3e82caf3
Le code source pour supprimer les balises HTML réellement écrites dans qiita-tag-feed-reader-cli
est répertorié ci-dessous.
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
}
Lorsque je l'implémentais en regardant le code de référence, je pensais que c'était vrai, comme vous pouvez le voir dans les commentaires du code ci-dessus, les chaînes sont remplacées dans l'ordre du plus long.
Parce que, si vous extrayez la balise avec cette expression régulière, vous pouvez obtenir les deux modèles de balises suivants en tant que modèle de balise acquis.
</span></div>
</span>
Lorsque vous remplacez HTML par strings.ReplaceAll
, si </ span> ʻest remplacé en premier,
</ span> </ div> `sera laissé derrière, alors remplacez-le par une longue chaîne. J'essaye de faire.
Cela supprimera avec succès toutes les balises HTML.
En fait, j'ai également besoin d'un code de test pour prouver correctement ce comportement, mais je voulais le mettre en forme rapidement, alors je l'ai mis de côté. Comme c'est un gros problème, j'ajouterai un code de test à une date ultérieure. → Ajout: Un test a été ajouté.
Ce n'est pas un point technique, mais si vous exécutez cet outil sans argument, il essaiera de sélectionner au hasard une balise Qiita et d'afficher le flux. Pour cette balise Qiita, reportez-vous au code ci-dessous et obtenez les balises par ordre de popularité.
[(Utilisation de l'API Qiita v2) Comment obtenir des informations sur les balises Qiita via l'API - Exemple de code à obtenir sans spécifier de balises](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)
Comme vous le savez peut-être déjà à partir du code source, je gère 100 balises populaires au moment de l'implémentation dans le fichier Go et les appelle au moment de l'exécution. Par conséquent, il se présente sous la forme de ** sélectionnés au hasard parmi les 100 balises populaires au moment où j'ai créé cet outil.
Bien sûr, il est possible de sélectionner 100 balises en temps réel au moment de l'exécution, mais comme c'était à l'origine le but d'essayer gofeed, c'est ici complètement horizontal. De plus, je pense que la limite supérieure de l'API Qiita viendra bientôt si je ne m'authentifie pas, donc j'ai également senti que je ne voulais pas en tenir compte.
Donc, si vous le souhaitez, veuillez l'utiliser. Pour moi, la simplicité de cet outil va bien avec un peu de temps libre, et c'est devenu un outil qui peut tuer le temps de manière inattendue. Par tous les moyens, comme le temps d'attente pour la construction.
Quand je l'ai réellement utilisé ↓