Jouez au classement de cette question (id = 111735). Votre programme doit émettre une demande HTTP ou HTTPS à l'API StackExchange, l'analyser et la présenter à l'utilisateur sous une forme similaire à un extrait de tableau de bord typique
Exemple de sortie (pour la question 47338 au lieu de cela):
Leaderboard
Author Language Size
1. FryAmTheEggman Pyth 19
2. Peter Taylor CJam 24
3. Martin Ender CJam 27
3. Peter Taylor GolfScript 27
5. randomra J 32
5. Optimizer CJam 32
7. Timtech TI-Basic 83/84 40
8. mollmerx k 41
9. Sp3000 ><> 45
10. Sherlock9 Ruby 47
11. Martin Ender Mathematica 49
12. Alex A. Julia 57
13. Sp3000 Python 2 58
14. Zgarb Haskell 68
15. Timtech GML 76
16. Jakube Python 2 79
16. nimi Haskell 79
18. coredump Common Lisp 91
19. Jim Large Ruby 92
Winners by Language
Language User Score
Python 2 Sp3000 58
CJam Peter Taylor 24
Julia Alex A. 57
TI-Basic 83/84 Timtech 40
><> Sp3000 45
Haskell Zgarb 68
GolfScript Peter Taylor 27
Common Lisp coredump 91
Pyth FryAmTheEggman 19
k mollmerx 41
J randomra 32
Ruby Sherlock9 47
Mathematica Martin Ender 49
GML Timtech 76
Notez les rangs répétés 3, 5 et 16. Peut-être que j'ajouterai même une réponse spéciale non concurrente juste pour forcer la remise correcte et non simplifiée des doublons de score.
La sortie doit consister en:
- La ligne "Leaderboard"
- La ligne "\ tAuthor \ tLanguage \ tSize"
- Pour chaque réponse, une ligne de classement séparée par des tabulations et un
.
, puis le nom de l'auteur, puis le nom de la langue, puis le score; en ordre croissant pour le score - La ligne "Gagnants par langue"
- La ligne "Language \ tUser \ tScore"
- Pour chaque langue utilisée, nom de langue séparé par des tabulations, auteur de la réponse au score le plus bas et score
En d'autres termes, quelque chose comme si l'on copie et colle le résultat de l'extrait de classement de cette question dans un fichier texte (sans les choses "\ tLink"). Voir aussi l' implémentation de référence en Python .
Règles
- Aucun accès au réseau en dehors d'une seule demande d'API pour
api.stackexchange.com
- Aucune utilisation des fonctionnalités de l'API ou des langues apparues après la soumission de cette question.
- La première ligne du message de réponse doit être compatible avec le classement. S'il rompt le script de classement joint à la question, la réponse est non concurrente.
- Si la réponse nouvellement ajoutée rend une réponse existante cassée, alors l'auteur de l'ancienne réponse devrait la corriger (ou elle devient non concurrente).
- Les liens vers les langues, les notes rayées, etc. doivent être traités.
- Les classements doivent être traités comme dans l'extrait de code (par exemple, score égal => rang égal => écart dans les rangs).
La réponse acceptée est la réponse avec le score le plus bas après une période d'inactivité suffisante (minimum 1 mois).
Bonne idée
- Pour tester avec les ID de question 47338 (pour la gestion des scores en double + gestion des scores barrés) et 17005 (pour la gestion des liens). Cela fait passer la réponse de valide à bonne et protège des ruptures de soumissions ultérieures.
- Pour inclure des exemples de sortie pour cela et pour les versions d'ID remplacées.
Pas nécessaire
- Gestion de plus de 100 réponses (limite d'API pour une seule demande)
- Gestion des remplacements de commentaires
- Tri de la section "Gagnants par langue"
- Discrimination des réponses concurrentes et brisées
Réponses:
Perl + Mojolicious,
468456469504 octetsUtilisation de la bibliothèque Mojolicious .
Non golfé:
la source
Can't locate ojo.pm in @INC
-> Est-ce à dire que ce n'est pas seulement "Perl", mais "Perl + Mojolicious"? Est-ce que l'utilisation de bibliothèques non incluses avec la langue ne compte pas comme une faille standard?Python 3,
860856 octetsGolfé légèrement, juste pour amorcer le classement et fournir un modèle pour les autres golfeurs:
En retrait avec des onglets. Le dernier
print
n'est délibérément pas remplacé parp
pour créer un lien de score avec la réponse Mathematica .Non golfé:
Remarque: il ne gère pas encore correctement les liens, échoue donc, par exemple, pour la question 17005 .
la source
Bash + JQ, 399 octets
Notez que cela peut presque certainement être approfondi en optimisant la
jq
logique d'expression.Golfé
Exemple de sortie
la source
error: capture is not defined
Mathematica,
852856 octetsUtilise le
JSONTools
package intégré. Ce n'est pas le genre de chose pour laquelle Mathematica doit être utilisé ... alors je l'ai utilisé!la source
ReplaceAll::reps: <content of the downloaded Mathematica answer> is neither a list of replacement rules nor a valid dispatch table, and so cannot be used for replacing.
, après quoi les impressions sont{$Failed, $Failed, $Failed, $Failed, $Failed, bytes, $Failed, $Failed}}
.<h1>
)?/tmp/q.json
où il y a une réponse JSON pré-téléchargée.