10 Clickbaits que no puedes resistir

8

Escriba un programa / función / secuencia de comandos que tome un número natural i del 1 al 10 como entrada y envíe la URL de la pregunta con la pregunta más importante del Code Golf Portal

El pedido debe ser como en https://codegolf.stackexchange.com/?tab=hot . Por ejemplo:
entrada 1
salida /codegolf/127047/the-spain-license-plates-game
(en el punto de esta edición)

No existen fuertes restricciones a la salida, siempre que la URL pueda recuperarse razonablemente. Las salidas válidas incluyen cadenas, impresión de consola, etc.

Es Code Golf, por lo que gana el código más corto en Bytes.

Notas

Si su programa abre automáticamente un navegador con la página web, cuenta como salida válida y es totalmente genial.

Si su programa no recupera la clasificación de la información actual (es decir, codificar los enlaces), no es válido.

El concurso termina a finales de junio.

Según lo cuestionado: La indexación debe estar basada en 1, es decir: la entrada 1 debe devolver el primer sitio de las preguntas más populares.

Comentario

Espero que esta pregunta no sea demasiado clickbaity, ya que el programa editor de intercambio de pila se estaba burlando de mí por el título. Originalmente planeé este desafío con las tendencias de Youtube, donde no hubiera sido más apropiado.

Moartem
fuente
1
Re: Stack Exchange se burla de ti por el título de la pregunta, solo se activa youespecíficamente en la palabra . La suposición hecha por el software es que si le preguntas a las personas qué piensan específicamente sobre algo, entonces la pregunta probablemente se cerrará como basada principalmente en la opinión (como si la pregunta estuviera basada en hechos, no importaría a quien le preguntaste). Por supuesto, esta simple heurística tiene muchos falsos positivos.
Me sorprende que las respuestas no usen acortadores de URL: v.ht/b6QI
Engineer Toast
@EngineerToast Por lo general, no están permitidos.
Esolanging Fruit
@ Challenger5 De hecho . Probablemente debería volver a leer esa lista ...
Engineer Toast

Respuestas:

1

PowerShell v5, 83 bytes

(irm api.stackexchange.com/questions?sort=hot`&site=codegolf).Items["$args"-1].Link

irmes la abreviatura para la Invoke-RestMethodcual el Json analiza automáticamente, hace la vida bastante fácil.

agregue cuatro bytes ( sapspara start-process) para la versión que se abre en el navegador.

saps(irm api.stackexchange.com/questions?sort=hot`&site=codegolf).Items["$args"-1].Link
colsw
fuente
4

Python + solicitudes , 128 bytes

from requests import*
lambda n:get('http://api.stackexchange.com/questions?sort=hot&site=codegolf').json()['items'][n-1]['link']
ovs
fuente
3

Mathematica, 125 bytes

b="http://codegolf.stackexchange.com";b<>"/q/"<>StringCases[Import[b<>"?tab=hot","Text"],"ns/"~~a:DigitCharacter..:>a][[3#]]&

Función anónima. No realiza ninguna entrada y devuelve una cadena como salida. Iba a usar el feed XML, pero parece seguir un orden diferente al de la página.

LegionMammal978
fuente
3

Python 2.7, 195 bytes

from urllib import*
import zlib, json
lambda n:json.loads(zlib.decompress(urlopen('http://api.stackexchange.com/questions?sort=hot&site=codegolf').read(),16+zlib.MAX_WBITS))['items'][n-1]['link']

Esta es la misma respuesta de Dair , pero usando Python 2

Mauro Baraldi
fuente
1
Bienvenido a PPCG!
Martin Ender
3

Python 3, 221 bytes

from urllib.request import*
import zlib, json
lambda n:json.loads(zlib.decompress(urlopen('http://api.stackexchange.com/questions?sort=hot&site=codegolf').read(),16+zlib.MAX_WBITS),encoding='utf-8')['items'][n-1]['link']

Basado en la respuesta de ovs . Además, gracias a Oluwafemi Sule por ayudarme con un problema que tuve.

Dair
fuente
¿Puedes editar tu respuesta y mencionar que es Python 3? ¡Gracias! :-)
Mauro Baraldi
2
@MauroBaraldi Editado. Lo siento por eso.
Dair
2

Stratos , 28 bytes

"-1"+
f"¹⁵s²&sort=hot"r"⁷s"@

Explicación:

"-1"+                    Decrement the input, and store it.
f"¹⁵s²&sort=hot"         Fetch the contents of the URL api.stackexchange.com/questions?site=codegolf&sort=hot.
                r"⁷s"    Get the array named "items"
                     @   Get the nth element, where n is retrieved from storage.

¡Intentalo!

Okx
fuente
1

JavaScript (ES6), 106 bytes

Devuelve una Promesa que contiene el objeto JSON para la pregunta deseada, que incluye el enlace.

n=>fetch`//api.stackexchange.com/questions?sort=hot&site=codegolf`.then(r=>r.json()).then(j=>j.items[--n])
  • Sacrificado 2 bytes permitiendo 1 indexación.

Intentalo

f=
n=>fetch`//api.stackexchange.com/questions?sort=hot&site=codegolf`.then(r=>r.json()).then(j=>j.items[--n])
oninput=_=>f(+i.value).then(console.log)
f(i.value=1).then(console.log)
<input id=i type=number>

Lanudo
fuente
hm No estoy seguro en este momento cómo manejar la indexación basada en 0, pero como las otras respuestas parecen usar la indexación basada en 1 y se especificó de esa manera, su respuesta se cuenta como 106 bytes (puntuación máxima actual)
Moartem
@Moartem: " No estoy seguro en este momento de cómo manejar la indexación basada en 0 " - Avíseme cuando lo haya resuelto y actualizaré mi respuesta en consecuencia. Sugeriría permitir la indexación 1 o la indexación 0.
Shaggy
Lo arreglaré en 1 indexación, por lo que todos tienen las mismas condiciones previas, actualice su respuesta. De todos modos, gracias por señalar esto.
Moartem
@Moartem: Respuesta actualizada. Para referencia futura, a menos que haya una buena razón para no hacerlo, la norma es permitir que las soluciones usen la indexación predeterminada de su idioma.
Shaggy