Escriba un programa / función que devuelva el recuento de votos de su propia respuesta de Stack Exchange en el momento de su ejecución.
- Sin embargo, su programa / función puede acceder a esta página ( codegolf.stackexchange.com/questions/82609 ) fuera de Internet:
- Su programa / función puede no aceptar ninguna entrada del usuario y
- El uso de acortadores de URL no está permitido
- Su programa / función puede usar solo su propia fuente como punto de referencia para su recuento de votos (por ejemplo: no hace referencia a cadenas de texto en su respuesta contenida pero no en su propia fuente)
- Su programa / función debe generar su propio recuento de votos y solo su propio recuento de votos (por ejemplo: no devolver todos los recuentos de votos en esta página)
Este es el código de golf, el código más corto gana.
code-golf
quine
internet
stack-exchange-api
Dendrobium
fuente
fuente
perl -e'($_)=`curl -s http://api.stackexchange.com/2.2/posts/123?site=codegolf`;/score":(\d+)/&&print$1'
Parece que debería funcionar, pero no lo hace. Pero tal vez alguien pueda usar eso.using its own source
bit para evitar que los usuarios configuren la página para que sea más fácil encontrarse sin contribuir a su recuento de bytes, en el caso de que la respuesta no use el método de identificación de publicación.Respuestas:
jQuery + JavaScript, 85 bytes
Historia
data
lugar ded
.Uso recomendado
¡¡Prima!!
¿A quién no le gusta un bono?
Ingrese la identificación en el bono y le indicará el puntaje.
¡Aún más bonificación! ¡Ejecute este fragmento para ejecutar automáticamente el programa, votar y volver a ejecutar! (Requiere rep> 15, autenticación). Si no funciona, por favor dime.fuente
posts
en lugar deanswers
y enhttp
lugar dehttps
guardar tres bytes (¿o quizás puede omitirlos porhttp:
completo?). (Sin probar)http://
y redirigirá 301 ahttps://
Mejor aún, simplemente elimine el http por completo//api.stackexchange.com...
$.get
lugar de$.getJSON
. El tipo de contenido de la API esapplication/json
, y jQuery tratará automáticamente la respuesta como JSON.JavaScript ES6, 107 bytes
Los programadores reales no usan
XMLHttpRequest
. Los programadores reales usan la API Fetch .fuente
fetch
no está definidoBash,
80797569 bytesPara fines de puntuación,
\t
debe reemplazarse con un carácter TAB.Esto requiere
w3m
, que debería estar disponible por defecto en la mayoría de las distribuciones de Linux.¡Gracias a @NoOneIsHere por -2 bytes!
Cómo funciona
w3m
es un navegador web de línea de comandos. Consulta la URL y (normalmente) muestra su contenido en un formato legible. Aquí, simplemente (ab) lo usamos para evitar la llamada a lazcat
quecurl
se requeriría, ya que SE sirve la respuesta de API gzip-comprimido.tr ,: \^I
reemplaza todas las comas y los dos puntos con tabulaciones, que soncut
el delimitador de campo predeterminado.Finalmente,
cut -f20
elimina todo menos el vigésimo campo, que es el recuento de votos.fuente
--compressed
, que es incluso más largo quezcat
.JavaScript ES6,
175165160145 bytes¡Muchos bytes guardados gracias a Optimizer y Dendrobium! ¡Son todos múltiplos de cinco!
Usando el simple ol 'javascript. ¿Quién necesita esas bibliotecas novedosas? Uso de programadores reales
XMLHttpRequest()
Pruébalo
fuente
prompt
?"g"
no funciona como una opción para mí.with(new XMLHttpRequest)(open("get","//api.stackexchange.com/2.2/posts/82614?site=codegolf"),onload=_=>alert(response.items[0].score),send(responseType="json"))
para -5 byteswith
TypeError: response.split(...)[12] is undefined",
bash + jq , 69 bytes
Yo solía
curl
yzcat
antes;w3m
está inspirado en la respuesta de Dennis (sorprendentemente similar). ¡Resultajq
ytr
/cut
tiene el mismo costo de bytes!fuente
Convexo 0.5, 63 bytes
Esto recupera el puntaje de la página de búsqueda en lugar de la API, específicamente de la consulta https://codegolf.stackexchange.com/search?q=inquestion:82714 . Afortunadamente,
inquestion
también funciona para respuestas.Verificación
Cómo funciona
fuente
05AB1E ,
898781 bytesGracias Python ...
Utiliza la codificación CP-1252 .
fuente
MATLAB, 103 bytes
fuente
JavaScript (Node.js + Unirest ), 123 bytes
Me gusta esta biblioteca, porque analiza automáticamente JSON.
fuente
Julia,
128107 bytesEsta es una función que no toma entrada y devuelve el puntaje de esta publicación como una cadena. Requiere
Requests
que se instale el paquete.Cómo funciona:
get
realiza una solicitud GET a la API SEreadall
lee los bytes sin procesar en la respuesta y devuelve una cadenasplit
divide la cadena en dos puntos y comas¡Ahorré 21 bytes gracias a Dennis!
fuente
JavaScript (Node.js), 166 bytes
-1 byte porque @ CᴏɴᴏʀO'Bʀɪᴇɴ me enseñó a contar;)
-4 bytes gracias a @NoOneIsHere
Esto es algo vergonzoso. ¡Cuelgue SE por desgarrar su API! / s
Cualquier mejora es muy bienvenida.
fuente
PHP, 137 bytes
Muy claro. La descompresión toma muchos bytes:
Sin golf
fuente
PHP, 121 bytes
Sin api.
Obtiene toda la publicación y extrae el voto cuenta con expresiones regulares. (¡no analices HTML con expresiones regulares!)
Sin golf:
fuente
http:
?05AB1E , 45 bytes
No hay TIO para todo el programa, porque la función
.w
integrada para acceder a Internet no funciona en TIO.Explicación:
Comenzamos creando la url y accediendo a ella:
Pruébelo en línea (sin el
.w
).Después de eso, extraemos el puntaje del JSON:
Pruébalo en línea.
Una alternativa igual de 10 bytes para esta segunda parte podría ser:
Pruébalo en línea.
Vea esta sugerencia mía 05AB1E (secciones ¿Cómo usar el diccionario? Y ¿Cómo comprimir enteros grandes? ) Para comprender por qué
•2íЕ
es190437
,’¸¸.‚‹º.ŒŒ/„¤/ÿ?€¼=ƒËŠˆ’
es"api.stackexchange.com/posts/ÿ?site=codegolf"
,'ŒÂ
es"score"
y„ŒÂ‚¡
es"score after"
.PS / EDIT: me doy cuenta de que al usar el
þ
supongo que nunca obtendré una puntuación negativa. ;)fuente