Wyzwanie
Wyzwanie jest proste, używając http://isup.me , ustalić, czy wprowadzona strona internetowa jest w górę, czy w dół.
Jeśli strona jest uruchomiona, powinieneś zwrócić prawdziwą wartość, a jeśli strona nie działa, powinieneś zwrócić wartość falsey.
Zasady
Wprowadzony zostanie adres internetowy, taki jak stackexchange.com
lub google.co.uk
. Wejście nigdy nie będzie miał http://
, https://
itd. Na początku łańcucha, ale może mieć www.
lub codegolf.
przy starcie itd.
Powinieneś skorzystać ze strony, na isup.me/URL
której podany jest URL.
Gdy witryna jest uruchomiona, będzie wyglądać następująco:
http://isup.me/codegolf.stackexchange.com
Jeśli witryna nie działa, będzie wyglądać następująco:
Skracacze URL są niedozwolone oprócz isup.me.
Przykładowe dane wejściowe
Prawdopodobnie w górę (w zależności od bieżących okoliczności):
google.de
codegolf.stackexchange.com
worldbuilding.meta.stackexchange.com
tio.run
store.nascar.com
isup.me
Będzie w dół:
made.up.com
fake.com.us
why.why.why.delilah
store.antarcticrhubarbassociation.an
Zwycięski
Najkrótszy kod w bajtach wygrywa.
fake.com.us
aby zadzierać z twoimi testami!isup.me
działa?isup.me
. Zwraca wynik inny niż, powiedzmy,google.com
może zwrócić.Odpowiedzi:
sh (+ curl + grep),
2826 bajtówWyjścia przez status wyjścia (0 w górę, 1 w dół). Szuka znaku
I
na początku linii, który pasuje, gdy domena jest uruchomiona (nawet w specjalnym przypadku isup.me/isup.me ).źródło
curl -L isup.me/$1|grep u!
oszczędza 1 bajt. Zakłada się to! nie jest prawidłowym znakiem w nazwie domeny.0
prawda jest w porządku?0
jest rzeczywiście prawdziwe w sh, przy czym wszystkie niezerowe wartości są fałszem. Ponadto IMO jest naprawdę miłe, że wersja sh jest tak krótka, ponieważ jest to absolutnie odpowiedni język do tego zadania, nawet bez rozważania gry w golfa.<a href="http://spthissitedoesntexist.invalid" class="domain">spthissitedoesntexist.invalid</a>
szczególności pasuje do wewnątrzhref
.Skumulowane , 44 bajty
Funkcja asynchroniczna, która wyświetla dane wyjściowe,
0
jeśli witryna nie działa, i dowolna inna liczba większa niż0
jeśli strona działa.Przykład a:
Dane wyjściowe (prawdopodobnie):
Is google up? 1
źródło
s u
, należy pamiętać, że dzieje się tak na każdym wejściu rozpoczynającym się odu
(w górę lub w dół).'Is example.com up?' put 'example.com' isup
wynik (nie tylko prawdopodobnie, ale na pewno):Is example.com up? 1
Kotlin REPL -
131 108 106 93 79 55 53 6463 bajtyPierwsza próba gry w golfa Kotlin.
Oczekuje, że witryna będzie zawierała zmienną lub wartość
a
.Teraz ze zmniejszonym odstępem.Kto powiedział, że „loo” to za mało?
Naprawiony i krótszy, nie opiera się już na http://isup.me .
Nie trzeba samodzielnie otwierać połączenia, wystarczy pobrać strumień danych (lub nie)
. Zadanie polegało na użyciu http://isup.me , prawda? Ponadto:
<
nie jest prawidłowym znakiem w adresie URL.Teraz działa
isup.me
jako strona internetowaTeraz czyta stronę internetową jako linię, ponieważ nie można założyć zmiennej zawierającej stronę internetową.
Czyta jeden wiersz zawierający tylko stronę internetową.
Sprawdza, czy ta
m h
częśćfrom here
jest wysyłana, gdy witryna nie działa.Zwraca odpowiednio „prawda” lub „fałsz”.
Jako Lambda -
172 120 118 99 85 6766 bajtówMożna wywoływać bezpośrednio:
źródło
loo
nazwą.electric.boogaloo
nie istnieje, ale łańcuchloo
będzie tam na wyjściu.Python 2 lub 3 z żądaniami (
706968 bajtów)Ogolono 1 bajt:Nie, niepoprawna optymalizacja."u. "
→" u"
Ogolono 1 bajt:
__import__('requests').
→from requests import*;
Jest to teraz fragment kodu tylko do REPL, a po uruchomieniu tego wiersza funkcja zostanie nazwana
_
.źródło
)
).u
.from requests import*
iget
jest 1 bajt krótszy.import
), więc myślę, że bezpieczniej jest po prostu nazwać go wierszem REPL.Python3
141133113192141 bajtówWymaga Selenium (w tym webdriver) dla Pythona.
Dzięki @cairdcoinheringaahing za zmniejszenie 42 bajtów!
Dzięki @ V.Courtois za wskazanie prostej poprawki!
Drukuje,
1
jeśli witryna jest uruchomiona, w przeciwnym razie drukuje0
.Wersja bez golfa:
źródło
t
). Możesz takżeprint("up"in r.text)
JavaScript (ES6),
7466 bajtówDzięki @Shaggy, który zwrócił moją uwagę, że spełniona obietnica liczy się jako wynik.
Problem z tym rozwiązaniem, że spowoduje zgłoszenie błędu CORS, chyba że przetestuję go na stronie, która już jest na
isup.me
. Ale obecnie zostaje to przekierowane nadownforeveryoneorjustme.com
Starsza wersja:
źródło
alert
i po prostu zwrócić Obietnicę. Zobacz tutaj . Myślę, że możesz również zaoszczędzić/u!/.test(t)
.Pyth , 24 bajty
Powrót
True
jeśli witryna jest uruchomiona, wFalse
przeciwnym razie. Wejściowy adres URL musi być cytowany. Tego nie można przetestować na tłumaczu online, ponieważ'
jest on wyłączony ze względów bezpieczeństwa; zamiast tego będziesz potrzebować lokalnej kopii Pytha .Wyjaśnienie
źródło
u
.05AB1E , 22 bajty
Wypróbuj online!
Niestety
"isup.me/ÿ".w§„ uå
nie działa.źródło
PowerShell, 32 bajty
źródło
irm
zachowanie uratowało mnie przed tym. moje tutajPowerShell, 25 bajtów
Wykorzystuje fakt, że
Invoke-RestMethod
zwraca stronę z.html
właściwością tylko w przypadku niepowodzenia. (nie mam pojęcia, dlaczego dokładnie tak się dzieje ...)odwraca wiersz do konwersji na bool, wyświetla dane wyjściowe
True
dla strony działającej lubFalse
dla strony wyłączonej.źródło
irm
zwraca zwykły tekst dla stron, których nie można parsować, miałem zamiar dopasować zwykły tekst, aby zachował się tak samo jak iwr, niezależnie od tego, czy to działa, działa.Halovi , 20 bajtów
Wyprowadzane,
p.
jeśli witryna jest wyłączona ie.
jeśli jest uruchomiona.Wyjaśnienie:
źródło
Haskell (Lambdabot), 157 bajtów
Niestety nie można importować
Network.HTTP.Simple
natio.run
najprostszym sposobem sprawdzenia byłoby uruchomić ten skrypt (musiszstack
):źródło
Idź, 111 bajtów
W typowej modzie Go najkrótszą metodą jest jej wyłuskanie.
Inne implementacje tutaj: https://play.golang.org/p/8T5HSDQFmC
źródło
Clojure, 63 bajty
Sprawdza, czy HTML zwracany przez
slurp
zawiera ciąg znaków"'s j"
(jak w „It sj ust you”). Być może uda mi się znaleźć mniejszy ciąg znaków, który jest unikalny dla strony, ale zaoszczędziłbym co najwyżej 2 bajty. Mogłoby to również potencjalnie zmniejszyć dokładność. „j” nie pojawi się nigdzie w znacznikach, z wyjątkiem tego jednego scenariusza. Ciąg taki jak „u.” jednak może potencjalnie pojawić się w adresie URL, co mogłoby go zepsuć.źródło
Nim, 108 bajtów
Niefortunne, że
strutils
jest to potrzebnecontains
.Nauka Nim, wskazówki mile widziane!
źródło
PHP,
8278 bajtówPrzykładowe przebiegi we / wy:
Przykład 2
źródło
+
. I$argn
zamiast tego$argv[1]
możesz użyć kolejnych 6 (minus 1) bajtów.