Herausforderung
Die Herausforderung ist einfach: Mit http://isup.me können Sie feststellen, ob eine eingegebene Website aktiv ist oder nicht.
Wenn die Site in Betrieb ist, sollten Sie einen Wahrheitswert zurückgeben, und wenn die Site in Betrieb ist, sollten Sie einen Falsey-Wert zurückgeben.
Regeln
Die Eingabe ist eine Webadresse wie stackexchange.com
oder google.co.uk
. Die Eingabe wird am Anfang des Strings niemals usw. haben http://
, https://
kann aber www.
oder codegolf.
am Anfang usw. haben.
Sie sollten die Site verwenden, isup.me/URL
auf der URL die Eingabe ist.
Wenn eine Site aktiv ist, sieht sie folgendermaßen aus:
http://isup.me/codegolf.stackexchange.com
Wenn eine Site nicht verfügbar ist, sieht sie folgendermaßen aus:
URL-Kürzungen sind außer isup.me nicht zulässig.
Beispieleingaben
Wahrscheinlich in Betrieb (abhängig von den aktuellen Umständen):
google.de
codegolf.stackexchange.com
worldbuilding.meta.stackexchange.com
tio.run
store.nascar.com
isup.me
Wird unten sein:
made.up.com
fake.com.us
why.why.why.delilah
store.antarcticrhubarbassociation.an
Gewinnen
Kürzester Code in Bytes gewinnt.
fake.com.us
um mich mit deinen Testfällen zu beschäftigen!isup.me
ist, wenn es nicht geht?isup.me
. Es wird ein anderes Ergebnis zurückgegeben als beispielsweise das, wasgoogle.com
möglicherweise zurückgegeben wird.Antworten:
sh (+ curl + grep),
2826 BytesAusgänge über Exit-Status (0 für aufwärts, 1 für abwärts). Sucht nach einem
I
am Anfang einer Zeile, der übereinstimmt, wenn die Domain aktiv ist (auch für den Sonderfall isup.me/isup.me ).quelle
curl -L isup.me/$1|grep u!
Spart 1 Byte. Dies setzt voraus, dass! ist kein gültiges Zeichen im Domainnamen.0
in sh wahr?0
ist in der Tat wahr in sh, wobei alle Werte ungleich Null falsch sind. Außerdem ist es meiner Meinung nach sehr schön, dass die sh-Version so kurz ist, da sie auch ohne Rücksicht auf das Golfen absolut die richtige Sprache für diese Aufgabe ist.<a href="http://spthissitedoesntexist.invalid" class="domain">spthissitedoesntexist.invalid</a>
Insbesondere stimmt es mit dem übereinhref
.Gestapelt , 44 Bytes
Asynchrone Funktion, die ausgibt,
0
wenn die Site nicht aktiv ist, und jede andere Zahl größer als0
wenn sie aktiv ist.Beispiel a:
Ausgabe (wahrscheinlich):
Is google up? 1
quelle
s u
, beachten Sie, dass dies bei allen Eingaben erfolgt, die mitu
(nach oben oder nach unten) beginnen.'Is example.com up?' put 'example.com' isup
Ausgabe (nicht nur wahrscheinlich, sondern sicher):Is example.com up? 1
Kotlin REPL -
131 108 106 93 79 55 53 6463 BytesVersuchen Sie es zuerst mit Kotlin Golf.
Erwartet die Website in einer Variablen oder einem Wert namens
a
.Jetzt mit reduziertem Leerzeichen.Wer hat gesagt, dass "Klo" nicht genug ist?
Behoben und kürzer, verlässt sich nicht mehr auf http://isup.me .
Sie müssen die Verbindung nicht selbst herstellen, sondern müssen nur den Datenstrom abrufen (oder nicht).
Die Aufgabe bestand darin, http://isup.me zu verwenden , richtig? Auch:
<
ist kein gültiges Zeichen in einer URL.Funktioniert jetzt mit
isup.me
als WebsiteLiest jetzt die Website als Zeile, da man nicht davon ausgehen kann, dass eine Variable die Website enthält.
Liest eine Zeile, die nur die Website enthält.
Überprüft den
m h
Teil vonfrom here
ob ein gesendet wird, wenn eine Site inaktiv ist.Gibt "true" bzw. "false" zurück.
Als Lambda -
172 120 118 99 85 6766 BytesKann direkt aufgerufen werden:
quelle
loo
dem Namen "" auf.electric.boogaloo
existiert nicht, aber der Stringloo
wird dort ausgegeben.Python 2 oder 3 mit Anfragen (
706968 Bytes)1 Byte rasiert:Nein, keine gültige Optimierung."u. "
→" u"
1 Byte rasiert:
__import__('requests').
→from requests import*;
Dies ist jetzt wirklich nur ein REPL-Code, und nach dem Ausführen dieser Zeile wird die Funktion benannt
_
.quelle
)
).u
.from requests import*
undget
ist 1 Byte kürzer.import
), daher halte ich es für sicherer, es einfach als REPL-Zeile zu bezeichnen.Python3
141133113192141 BytesBenötigt Selen (einschließlich Webtreiber) für Python.
Vielen Dank an @cairdcoinheringaahing für die Reduzierung von 42 Bytes!
Vielen Dank an @ V.Courtois für den Hinweis auf eine einfache Lösung!
Druckt,
1
wenn die Site aktiv ist, andernfalls wird gedruckt0
.Ungolfed-Version:
quelle
t
) ist nicht möglich. Sie können auch die Print-Anweisung anprint("up"in r.text)
Javascript (ES6),
7466 BytesVielen Dank an @Shaggy, der mich darauf aufmerksam gemacht hat, dass ein gelöstes Versprechen als Ergebnis zählt.
Problem mit dieser Lösung, dass es einen CORS-Fehler auslöst, es sei denn, ich teste es auf einer Seite, die sich bereits im befindet
isup.me
. Aber derzeit wird das umgeleitetdownforeveryoneorjustme.com
Ältere Version:
quelle
alert
und einfach das Versprechen zurückgeben. Sehen Sie hier . Ich denke, Sie könnten auch mit Geld sparen/u!/.test(t)
.Pyth , 24 Bytes
Geben Sie ansonsten zurück,
True
wenn die Site aktiv istFalse
. Die Eingabe-URL muss in Anführungszeichen stehen. Dies kann auf dem Online-Interpreter nicht getestet werden, da'
er aus Sicherheitsgründen deaktiviert ist. Stattdessen benötigen Sie eine lokale Kopie von Pyth .Erläuterung
quelle
u
.05AB1E , 22 Bytes
Probieren Sie es online!
Scheint leider
"isup.me/ÿ".w§„ uå
nicht zu funktionieren.quelle
PowerShell, 32 Byte
quelle
irm
Verhalten ersparte mir einen Haufen. meins hierPowerShell, 25 Bytes
Verwendet die Tatsache, dass
Invoke-RestMethod
die Seite mit einer.html
Eigenschaft nur bei einem Fehler zurückgegeben wird. (keine Ahnung warum genau das passiert ...)Invertiert die zu konvertierende Zeile in Bool, Ausgänge
True
für eine Live-Site oderFalse
für eine Down-Site.quelle
irm
gibt Klartext für nicht analysierbare Seiten zurück. Ich wollte einen Klartext-Abgleich durchführen, damit er sich genauso verhält wie iwr, unabhängig davon, ob er funktioniert oder nicht.Halovi , 20 Bytes
Gibt aus,
p.
ob die Site inaktiv unde.
inaktiv ist.Erläuterung:
quelle
Haskell (Lambdabot), 157 Bytes
Leider kann man nicht importieren
Network.HTTP.Simple
auftio.run
, wäre der einfachste Weg , um Test sein , um dieses Skript auszuführen (Sie müssenstack
):quelle
Los, 111 Bytes
In der typischen Go-Mode besteht die kürzeste Methode darin, sie zu entfernen.
Andere Implementierungen hier: https://play.golang.org/p/8T5HSDQFmC
quelle
Clojure, 63 Bytes
Prüft , ob der HTML zurückgegeben durch
slurp
die Zeichenfolge enthält"'s j"
(wie in „Es ‚sj ust Sie“). Möglicherweise kann ich eine kleinere Zeichenfolge finden, die für die Seite eindeutig ist, aber höchstens 2 Byte einsparen. Dies würde es möglicherweise auch ungenauer machen. "'s j" wird nur in diesem einen Szenario im Markup angezeigt. Eine Zeichenfolge wie "u." Es könnte jedoch möglicherweise in der URL angezeigt werden, was die URL beschädigen würde.quelle
Nim, 108 Bytes
Schade das
strutils
ist das nötig fürcontains
.Nim lernen, Tipps geschätzt!
quelle
PHP,
8278 BytesBeispiel I / O-Läufe:
Beispiel 2
quelle
+
. Und mit könnten Sie$argn
stattdessen$argv[1]
weitere 6 (minus 1) Bytes verwenden.