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 sourcebit 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
datalugar 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
postsen lugar deanswersy enhttplugar dehttpsguardar 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...$.getlugar 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
fetchno está definidoBash,
80797569 bytesPara fines de puntuación,
\tdebe 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
w3mes 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 lazcatquecurlse requeriría, ya que SE sirve la respuesta de API gzip-comprimido.tr ,: \^Ireemplaza todas las comas y los dos puntos con tabulaciones, que soncutel delimitador de campo predeterminado.Finalmente,
cut -f20elimina 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 byteswithTypeError: response.split(...)[12] is undefined",bash + jq , 69 bytes
Yo solía
curlyzcatantes;w3mestá inspirado en la respuesta de Dennis (sorprendentemente similar). ¡Resultajqytr/cuttiene 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,
inquestiontambié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
Requestsque se instale el paquete.Cómo funciona:
getrealiza una solicitud GET a la API SEreadalllee los bytes sin procesar en la respuesta y devuelve una cadenasplitdivide 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
.wintegrada 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