Wyzwanie
Biorąc pod uwagę nazwisko członka PPCG, wyślij jego numer identyfikacyjny PPCG. Jeśli użytkownik nie istnieje, możesz zgłosić błąd lub zwrócić dowolną liczbę dodatnią. Jeśli jest wielu członków o tej nazwie, możesz zdecydować się na wydruk tylko jednego identyfikatora lub wszystkich z nich.
Przypadki testowe
„musicman523” -> 69054 „Dennis” -> 12012 „xnor” -> 20260 „Leaky Nun” -> 48934 „fəˈnɛtɪk” -> 64505 „Jörg Hülsermann” -> 59107 „Społeczność” -> -1 „Każdy użytkownik, który nie istnieje” -> 0 „Alex” -> 69198 (to jeden z możliwych wyników) „Przeciekający N” -> 0 „Jorge” -> 3716
code-golf
internet
stack-exchange-api
musicman523
źródło
źródło
Odpowiedzi:
Stack Exchange Data Explorer ,
5654535146 bajtów-1 bajt dzięki Hyper Neutrino. -5 bajtów dzięki Giacomo Garabello.
Wypróbuj online!
Nie jestem pewien, czy jest to całkowicie poprawne, ale ... Dane wejściowe muszą być otoczone pojedynczymi cudzysłowami
'
.Ponadto nadal nie rozumiem, dlaczego programiści SQL lubią krzyczeć, ale to pozornie dobra praktyka, więc ...
SELECT
WSZYSTKOFROM
WSZYSTKOWHERE
WSZYSTKOLIKE
WSZYSTKO!Wyjaśnienie
POZWÓL MI WYJAŚNIĆ.
źródło
JavaScript,
155149142135 bajtówźródło
Jörg Hülsermann
?0
dlaOliver
:(r=>r.items[0]).then(r
je({items:[r]})
. Zadanie destrukcyjne ftw!i=>fetch('//api.stackexchange.com/users?site=codegolf&inname='+i).then(r=>r.json()).then(r=>r.items[0].user_id)
ponieważ zwróci błąd obietnicy, jeśli się nie powiedzie. Możesz też po prostui=>fetch('/users?site=codegolf&inname='+i).then(r=>r.json()).then(r=>r.items[0].user_id)
powiedzieć i powiedzieć, że należy go uruchomić w domenie APIŻądania w języku Python 3 + , 196 bajtów
Dzięki @Wondercricket za -6 bajtów!
Korzysta z interfejsu API wymiany stosu. Naprawiono błędy
Leaky N
iJorge
.Jeśli jest wielu użytkowników o tej samej nazwie, drukuje wszystkich, co jest dozwolone.
źródło
Leaky N
print a['user_id']
, co spowoduje wygenerowanie błędu klucza?Żądania w języku Python 2 + , 187 bajtów
Zwraca identyfikator użytkownika, jeśli istnieje jeden użytkownik, pierwszy użytkownik spełniający wymagania, jeśli istnieje więcej, i w przeciwnym razie zgłasza błąd.
źródło
/2.2
z interfejsu API.fəˈnɛtɪk
, użyj\u{...}
zamiast tego, ponieważ Python nie toleruje non-ASCIIŻądania w języku Python 2 + , 173 bajty
Przykładowy przebieg
Ciekawostka: wynik posortowany jest według reputacji, najpierw najwyższy.
źródło
Leaky N
%s
.>>> f('Leaky N')\n48934
0
.Leaky N
nie istniejeJavaScript,
128119 bajtów-9 bajtów dzięki Rogemowi .
źródło
JavaScript (ES6) + HTML,
154152151202179161145 bajtówPoświęciłem kilka bajtów na obsługę znaków specjalnych.
Musi być uruchomiony w
api.stackexchange.com
domenie. Zwraca obietnicę zawierającą identyfikator lub Zgłasza błąd w obietnicy, jeśli nie można znaleźć nazwy użytkownika.Uwaga: To rozwiązanie zostało opracowane niezależnie od Uriela i jego komentarzy; jeśli Uriel zdecyduje się zastosować tę
find
metodę, chętnie cofnę się do mojej dłuższej, rekurencyjnej wersji.źródło