Ecrivez un programme / une fonction qui renvoie le nombre de votes de sa propre réponse Stack Exchange au moment de son exécution.
- Votre programme / fonction peut accéder à cette page ( codegolf.stackexchange.com/questions/82609 ) via Internet, toutefois:
- Votre programme / fonction ne peut accepter aucune entrée d’utilisateur et
- L'utilisation de raccourcisseurs d'URL n'est pas autorisée
- Votre programme / fonction peut utiliser uniquement sa propre source comme point de référence pour le décompte des votes (par exemple: aucune chaîne de texte de référence dans la réponse qu'il contient, mais pas dans sa propre source).
- Votre programme / fonction doit générer son propre décompte de votes et uniquement son propre décompte de votes (par exemple, aucun nombre de votes ne sera renvoyé sur cette page).
C'est le code-golf, le code le plus court gagne.
code-golf
quine
internet
stack-exchange-api
Dendrobium
la source
la source
perl -e'($_)=`curl -s http://api.stackexchange.com/2.2/posts/123?site=codegolf`;/score":(\d+)/&&print$1'
on dirait que ça devrait marcher, mais ça ne marche pas. Mais peut-être que quelqu'un peut l'utiliser.using its own source
bit pour empêcher les utilisateurs de configurer la page afin de se retrouver plus facilement sans contribuer à son nombre d'octets, dans le cas où la réponse n'utilise pas la méthode post id.Réponses:
jQuery + JavaScript, 85 octets
Histoire
data
au lieu ded
.Utilisation recommandée
Prime!!
Qui n'aime pas les bonus?
Entrez l'ID dans le bonus et il vous dira le score.
Encore plus de bonus !! Exécutez cet extrait pour exécuter automatiquement le programme, le vote positif, puis à nouveau! (Requiert rep> 15, auth). Si cela ne fonctionne pas, dites-le moi.la source
posts
au lieu deanswers
ethttp
au lieu dehttps
enregistre trois octets (ou peut-être pouvez-voushttp:
tout omettre ?). (Non testé.)http://
et il va rediriger vershttps://
Mieux encore, il suffit de supprimer le http//api.stackexchange.com...
$.get
au lieu de$.getJSON
. Le type de contenu de l'API estapplication/json
, et jQuery traitera automatiquement la réponse en tant que JSON.JavaScript ES6, 107 octets
Les vrais programmeurs n'utilisent pas
XMLHttpRequest
. Les vrais programmeurs utilisent l' API Fetch .la source
fetch
n'est pas définieBash,
80797569 octetsÀ des fins de notation,
\t
doit être remplacé par un caractère de tabulation.Cela nécessite
w3m
, qui devrait être disponible par défaut sur la plupart des distributions Linux.Merci à @NoOneIsHere pour -2 octets!
Comment ça marche
w3m
est un navigateur Web en ligne de commande. Il interroge l'URL et affiche (normalement) son contenu dans un format lisible. Ici, nous l’utilisons (ab) pour éviter l’appelzcat
quecurl
cela exigerait, car SE sert la réponse de l’API gzip-compressée.tr ,: \^I
remplace toutes les virgules et les deux points par des tabulations, qui sontcut
le délimiteur de champ par défaut.Enfin,
cut -f20
supprime tout sauf le vingtième champ, qui est le décompte des voix.la source
--compressed
, qui est encore plus long quezcat
.JavaScript ES6,
175165160145 octetsDes lots sauvés grâce à Optimizer et Dendrobium! Ils sont tous des multiples de cinq!
Utiliser plain javascript. Qui a besoin de ces nouvelles bibliothèques? Les vrais programmeurs utilisent
XMLHttpRequest()
Testez le
la source
prompt
?"g"
cela ne fonctionne pas comme une option pour moi.with(new XMLHttpRequest)(open("get","//api.stackexchange.com/2.2/posts/82614?site=codegolf"),onload=_=>alert(response.items[0].score),send(responseType="json"))
pour -5 octetswith
TypeError: response.split(...)[12] is undefined",
bash + jq , 69 octets
J'ai utilisé
curl
etzcat
avant;w3m
est inspiré par la réponse de Dennis (étonnamment similaire). Il s'avèrejq
ettr
/cut
ont le même coût en octets!la source
Convexe 0,5, 63 octets
Cela récupère le score de la page de recherche à la place de l'API, plus précisément de la requête https://codegolf.stackexchange.com/search?q=inquestion:82714 . Heureusement,
inquestion
fonctionne également pour les réponses.Vérification
Comment ça marche
la source
05AB1E ,
898781 octetsMerci Python ...
Utilise le codage CP-1252 .
la source
MATLAB, 103 octets
la source
JavaScript (Node.js + Unirest ), 123 octets
J'aime cette bibliothèque, car elle analyse automatiquement JSON.
la source
Julia,
128107 octetsC'est une fonction qui ne prend aucune entrée et retourne le score de cet article sous forme de chaîne. Il nécessite la
Requests
paquet doit être installé.Comment ça marche:
get
fait une requête GET à l'API SEreadall
lit les octets bruts de la réponse et retourne une chaînesplit
divise la chaîne entre deux points et des virgulesSauvé 21 octets grâce à Dennis!
la source
JavaScript (Node.js), 166 octets
-1 octet parce que @ CᴏɴᴏʀO'Bʀɪᴇɴ m'a appris à compter;)
-4 octets grâce à @NoOneIsHere
C'est un peu gênant. Dang vous SE pour gzipping votre API! / s
Toutes les améliorations sont les bienvenues.
la source
PHP, 137 octets
Assez simple. La décompression prend beaucoup d'octets:
Ungolfed
la source
PHP, 121 octets
Sans api.
Obtient l'intégralité du post et extrait les votes avec regex. (ne pas analyser HTML avec regex!)
Ungolfed:
la source
http:
?05AB1E , 45 octets
Pas de TIO pour l'ensemble du programme, car l'
.w
accès à Internet intégré ne fonctionne pas sur TIO.Explication:
Nous commençons par créer l'URL et y accéder:
Essayez-le en ligne (sans le
.w
).Après cela, nous extrayons le score du JSON:
Essayez-le en ligne.
Une alternative égale à 10 octets pour cette seconde partie pourrait être:
Essayez-le en ligne.
Voir cette astuce 05AB1E de mes (sections Comment utiliser le dictionnaire? Et Comment compresser les grands entiers? ) Pour comprendre pourquoi
•2íЕ
est190437
,’¸¸.‚‹º.ŒŒ/„¤/ÿ?€¼=ƒËŠˆ’
est"api.stackexchange.com/posts/ÿ?site=codegolf"
,'ŒÂ
est"score"
et„ŒÂ‚¡
est"score after"
.PS / EDIT: Je me rends compte qu'en utilisant le,
þ
je suppose que je n'aurai jamais un score négatif. ;)la source