Dada una identificación de usuario PPCG, muestra el nombre de usuario actual de ese usuario.
Ejemplos
Input -> Output
61563 -> MD XF
2 -> Geoff Dalgas
12012 -> Dennis
foo ->
-3 ->
Reglas
- La entrada / salida se puede tomar por cualquier medio permitido.
- La salida debe ser el nombre de usuario completo con mayúsculas y espacios adecuados, nada más y nada menos.
- Si la entrada no es una ID de usuario válida, o el usuario no existe, su programa no debería generar nada o generar un error.
- Su programa debe funcionar para cualquier usuario válido, incluso uno creado después de este desafío.
- Su programa no tiene que funcionar para el usuario de la Comunidad.
- Su programa no tiene que funcionar para usuarios eliminados.
- Los acortadores de URL no están permitidos.
Puntuación
El código más corto en cada idioma gana.
Okx
. Si, ese es mi nombre.xxx.stackexchange.com/u/123
redirige axxx.stackexchange.com/users/123
Respuestas:
05AB1E ,
3534 bytesNo funciona en línea debido a restricciones de internet.
Código
Explicación
La cadena comprimida:
empuja la siguiente cadena:
Mientras que
<input>
es la entrada del usuario. Después de esto, leemos todos los datos usando.w
y hacemos algunos trucos de manipulación de cadenas en los datos:Cuando se ejecuta localmente, obtengo el siguiente resultado:
fuente
„ -¡¬
.Bash,
120112106102807674 bytes-8 bytes porque
wget
es lo suficientemente inteligente como para redirigir HTTP a HTTPS cuando sea necesario-6 bytes gracias a otra
sed
sugerencia de Cows quack-26 bytes gracias a Digital Trauma
-4 bytes gracias a Gilles -
codegolf.stackexchange.com/u/123
redirige-2 bytes gracias a las
wget
banderas de respuesta de Digital TraumaNo hay enlace TIO ya que las arenas TIO no pueden acceder a Internet.
Gracias a las respuestas aquí y a las personas en el chat por ayudarme con esto. Usé un enfoque similar al de HyperNeutrino.
wget -qO- codegolf.stackexchange.com/users/$1
descarga la página de perfil del usuario e imprime el archivo en STDOUT.-q
lo hace en silencio (sin información de velocidad).sed -nr 's/.*User (.*) -.*/\1/p'
busca la primera cadenaUser<space>
, luego imprime hasta que llega al final del nombre, que se encuentra usandosed
magia.Respuesta anterior que escribí más independientemente (102 bytes):
wget codegolf.stackexchange.com/users/$1 2>y
guarda el HTML del perfil de usuario en un archivo titulado con su ID de usuario y descarga STDERR eny
.cat $1
canaliza el archivo en las partes que cortan el HTML inútil.sed '6!d'
(en lugar dehead -6 | tail -1
) obtiene la sexta línea por sí misma.cut -c 13-
elimina los primeros 13 caracteres, y el nombre de usuario comienza en el primer carácter de la cadena.cut -d '&' -f1
corta todo después de la&
. Esto se basa en el hecho de que un ampersand no puede estar en un nombre de usuario, ni en un título HTML.Ahora la cuerda es
<username> - Programming Puzzles
sed 's/.\{23\}$//'
fue una sugerencia del graznido de las vacas para eliminar los últimos 15 bytes de un archivo. Esto obtiene el nombre de usuario por sí mismo.Aquí hay un script bash completo.
fuente
...TIO arenas can't access the internet
Pueden hacerlo, así es como puedes acceder a él. : P El código enviado por el usuario no tiene permitido el acceso a Internet.</nitpick>
Digital Trauma - Progr
sed
bytecount.Bash + utilidades GNU, 66
Utiliza el
-P
sabor CRE regex para hacer un\K
reinicio de inicio de coincidencia para un filtrado de salida mucho más corto.Si su sistema ya está
curl
instalado, podemos usar la sugerencia de @Gilles:Bash + curl + utilidades GNU, 64
fuente
O-
?-O-
envía la salida descargada a STDOUT en lugar de un archivo, por lo que simplemente se puede canalizar agrep
grep -Po '"User \K[^"]+'
para guardar 3 bytes.curl -L
es más corto quewget -qO-
. Puedes usar en/u
lugar de/users
.Python 2 + solicitudes, 112 bytes
Nota
una vez que SE funciona por completo
https
,http
debe cambiarse ahttps
, lo que hará que estos 113 bytes.El comienzo de un perfil de usuario se ve así:
El nombre de usuario comienza en el índice 49 y el ampersand aparece 23 caracteres a la derecha de donde termina (
- Programming Puzzles
)-3 bytes gracias a StepHen / Mego al eliminar la
re
importación no utilizada-1 byte gracias a Uriel
fuente
re
para que pueda soltar 3 byteshttp
por el momento, pero eso se eliminará gradualmente cuando SE se vuelva HTTPS completo.from requests import*
y soltarr.
113 bytesJavaScript (ES6),
11175 bytesSolo funciona cuando se ejecuta a través del dominio PPCG. Devuelve un
Promise
objeto que contiene el nombre de usuario.fuente
i=>fetch(`/users/${i}`).then(r=>r.text()).then(s=>/"User ([^"]+)/.exec(s)[1])
i=>$.get(`/users/${i}`).done(s=>alert(/"User ([^"]+)/.exec(s)[1]))
fetch
para guardar 2 bytesfetch
abrir la página del usuario de esa manera, pero pensé que podría estar empujando mi suerte. Pero ya que también lo ha sugerido, lo editaré. ¿Hay algún navegador compatible actualmente.done()
? Lo probé rápidamente en Chrome y FF pero no funcionó allí.Swift 3 , 233 bytes
Ejecuciones de muestra:
fuente
Python 2 , 116 bytes
Solo pensé que es bueno tener una respuesta de biblioteca estándar (que en realidad es bastante decente).
Cuando SE funciona completamente
https
, necesitamos agregar 1 byte más, cambiandourlopen('http://...
conurlopen('https://...
.fuente
Cubically + Bash,
165413361231 bytes-423 bytes gracias a TehPers
Esto tiene tres guiones cúbica (nombre
1
,2
e3
) y 1 escritura del golpe.Los scripts de Cubically son realmente largos porque todavía no he pensado en una buena manera de implementar bucles.
Bash (84 bytes):
Esto canaliza el primer script cúbico
wget
, luego el archivo guardado en el segundo script cúbico, luego invierte esa salida, lo canaliza al tercer script cúbico y luego lo invierte.1
(385 bytes):Esto imprime
https://codegolf.stackexchange.com/users/
, luego el primer entero de entrada.2
(680505 bytes):Esto lee los datos innecesarios del archivo guardado como entrada, luego se imprime hasta la salida
Programming Puzzles & Code Golf
.~7@7
lee un personaje y lo imprime.F1R1
y:5=7
verifique si la entrada es el ampersand.&6
sale si es así.~7@7:5=7&6
se repite 45 veces porque hay 15 bytes de datos innecesarios y un nombre de usuario StackExchange máximo de 30 bytes.3 (
505446342 bytes):Muy similar al último script, lee los primeros bytes innecesarios, luego
cat
s hasta EOF. Esto también funciona debido al nombre de usuario max SE.fuente
:0-1/1
lugar de:4+4/1-1
? Además, la primera instancia puede ser simplemente-1/1
porque el bloc de notas comienza en 0./bin/r
se sobrescribe.F1R1
al principio, luego usarlo en+5
todo el programa en lugar de+2/1+4
PHP, 163 bytes
fuente
PowerShell,
165142137127 bytes232838 bytes guardados gracias a AdmBorkBork !Crea un archivo denominado
0
como efecto secundario.Funciona yendo a la página web adecuada, y seleccionando el elemento "nombre-tarjeta-usuario", luego extrayendo el texto apropiado del innerhtml.
Pruebas
fuente
Python +
requests
, 126 bytesAcceder a la API es más largo que leer la página real aparentemente ...
fuente
requests
: pJalea , 37 bytes
Un puerto de la respuesta Python 2 de HyperNeutrino : ¡ve a dar crédito!
Un enlace monádico que toma un número y devuelve una lista de caracteres; como un programa completo imprime el resultado.
Nota: no estoy seguro de por qué el resultado de
ŒG
debe forzarse a convertirse en una cadena (hecho aquí conṾ
): /¿Cómo?
codegolf.stackexchange.com/users/
fuente
Explorador de datos de Exchange de pila , 47 bytes
Pruébalo en línea!
fuente
Mathematica, 126 bytes
entrada
salida
fuente
Stratos , 22 bytes
¡Intentalo!
Explicación:
fuente