Unbeantwortete Fragen von PPCG

9

Diese liebe StackExchange-Site hat so viele Herausforderungen und so viele gute Antworten. Aber was ist mit den Herausforderungen, die nie beantwortet wurden ?

Aufgabe

Schreiben Sie ein Programm oder eine Funktion, die eine pseudozufällige offene unbeantwortete Herausforderung (wie in einer Frage mit genau null Antworten) von PPCG druckt. Alle möglichen Herausforderungen sollten mit der gleichen Wahrscheinlichkeit erstellt werden.

Eingang

  • Es wird keine Eingabe vorgenommen.

Ausgabe

  • Darf nur den Titel, die Tags und den Link enthalten, die durch Zeilenumbrüche getrennt werden sollen.
    • Der Titel muss genau so sein, wie er in der Herausforderung ist.
    • Die Tags haben kein striktes Ausgabeformat, müssen jedoch alle Tags enthalten.
    • Der Link kann question-namedie ID nach der Frage enthalten oder nicht und muss zur Herausforderung führen.
  • Kann in ein für Menschen lesbares Format übersetzt werden oder nicht.
    • & zu &
  • Führende und nachfolgende Leerzeichen sind zulässig.

Beispiele

Encode a steganographic encoder into a package
code-challenge,unicode,steganography
/codegolf/65159/encode-a-steganographic-encoder-into-a-package

Simple predictive keyboard CG
code-golf
/codegolf/76196/simple-predictive-keyboard-cg

Wertung

Da dies , gewinnt die kürzeste Antwort in Bytes.

total menschlich
quelle
8
Ich habe die Stack-Exchange-API- Herausforderungen wirklich satt .
Rɪᴋᴇʀ
3
@Riker Uhm ... danke für dein Feedback? Ich weiß wirklich nicht, warum Sie aus diesem Grund abstimmen würden, aber mehr Macht für Sie, denke ich.
total menschlich
6
Ich habe das nicht abgelehnt. Ich habe abgelehnt, weil ich denke, dass die Frage langweilig ist. Müssen geschlossene Fragen die gleiche Wahrscheinlichkeit haben, ausgegeben zu werden?
Rɪᴋᴇʀ
1
Obwohl ich nicht so stark davon überzeugt bin wie @Riker, scheint es in letzter Zeit viele API-bezogene Herausforderungen zu geben. so sehr, dass ich es geschafft habe, mich für ~ 21 Stunden von der Verwendung der API abzuhalten !
Shaggy
4
Interessanterweise wird diese Herausforderung während des Testens angezeigt, aber sobald ich sie beantworte, wird sie beim Testen nicht mehr angezeigt.
HyperNeutrino

Antworten:

7

JavaScript + HTML, 271 250 232 Byte

Anscheinend können Sie Dates als Pseudozufallszahlen verwenden. Ich habe das aus Shaggys Antwort gestohlen .

(Verwendet nur ungefähr 4 Ihrer Quote)

q=[]
g=f=>fetch('//api.stackexchange.com/questions/unanswered?site=codegolf&page='+f).then(r=>r.json().then(j=>(q=[...q,...j.items])^j.has_more?g(f+1):document.write(`<pre>${(q=q[new Date%q.length]).title}
${q.tags}
`+q.link)))
g(1)

Es erstellt ein Array qund ruft dann auf g(1), wodurch die erste Ergebnisseite abgerufen und zu q hinzugefügt wird. Wenn die Anfrage dies sagt has_more, ruft sie auf g(f+1), wodurch die nächste Seite abgerufen wird, bis sie das Ende erreicht und in das HTML-Dokument schreibt (wodurch die Antwort automatisch entweicht).

Wenn wir uns nicht um alle unbeantworteten Fragen kümmern , nur die letzten 30 (verwendet nur 1 Ihrer Quote):

JavaScript + HTML, 213 196 179 Bytes

fetch`//api.stackexchange.com/questions/unanswered?site=codegolf`.then(r=>r.json().then(j=>document.write(`<pre>${(j=j.items[new Date%j.items.length]).title}
${j.tags}
`+j.link)))

Artyer
quelle
Entschuldigung, @Artyer, ich war so darauf konzentriert, an meiner eigenen Antwort zu arbeiten, dass ich nie bemerkt habe, dass Sie mich um ein paar Minuten geschlagen haben. Gerne lösche ich meine Antwort, wenn Sie der Meinung sind, dass sie Ihrer ähnlich ist.
Shaggy
@ Shaggy Es ist in Ordnung. Ich habe auch die zweite Antwort zur gleichen Zeit geschrieben, als Sie Ihre Antwort geschrieben haben. Es ist also ein glücklicher Zufall, dass sie ähnlich ausgefallen sind.
Artyer
Sie können ein paar Byes sparen, indem Sie die Anzahl der Seiten, die abgerufen werden müssen, fest codieren. j.has_more?g(f+1)Versuchen Sie stattdessen++f<5?g(f)
Shaggy
Sie können auch ersetzen q=q.concat(j.items)mit q=[...q,...j.items]. Es sieht so aus, als wäre Tags: es optional, also können Sie das auch fallen lassen. Und das ist nicht nötig join q.tags, es wird zu einer Zeichenfolge gezwungen, wenn es mit einer Zeichenfolge verkettet wird. Schließlich sollten Sie durch die Verwendung eines Vorlagenliteral für das Finale auch einige Bytes sparen.
Shaggy
@ Shaggy Leider habe ich meine Quote erreicht. Es wird jedoch in 425 Sekunden zurückgesetzt.
Artyer
6

Python + Anfragen + JSON + Zufall + HTML, 249 239 Bytes

import requests as r,json,random as R,html
j=R.choice(json.loads(r.get('http://api.stackexchange.com/questions/no-answers?site=codegolf').text)['items'])
print('\n'.join([html.unescape(j['title']),'Tags: '+', '.join(j['tags']),j['link']]))

Es stellte sich heraus, länger als ich möchte.

-10 Bytes dank @totallyhuman unter Verwendung R.choicestatt R.shuffleund das erste Element nehmen.

HyperNeutrino
quelle
Können Sie ein paar Bytes sparen, indem Sie verwenden random.shuffle?
total menschlich
... Warten Sie oder noch besser random.choice()?
total menschlich
1
@totallyhuman Das Ändern des Inpurt-Namens macht tatsächlich keinen Unterschied in der Anzahl der Bytes: P Aber danke für .choice()!
HyperNeutrino
Du hast nicht die json Bibliothek benötigen, verwenden Sie r.get(url).json()stattdessen
ovs
Dies erklärt nicht has_more. Es wählt nur zufällig aus den ersten 30.
Artyer
0

Bash 255 232 Bytes

a="api.stackexchange.com/questions/";b="?site=codegolf";c=$(w3m $a"unanswered"$b"&filter=total"|tr -cd 0-9);w3m $a"no-answers"$b"&pagesize=1&page="$((RANDOM%c))|jq -r ".items[0]|.title,(.tags|join(\", \")),.link"|recode html..utf-8

Es sieht so aus, als würde ein falsches Ergebnis für Summen für Nichtantworten / unbeantwortet zurückgegeben. Allgemeine Idee - Gesamt erhalten, dann zufällige Seite mit einem Element erhalten.

Bash 174 153 Bytes

w3m api.stackexchange.com/questions/no-answers?site=codegolf|jq -r ".items[$RANDOM%(.items|length)]|.title,(.tags|join(\", \")),.link"|recode html..utf-8

Es wird eine zufällige Frage aus den letzten 30 ausgewählt, nicht aus allen Fragen. Funktioniert über die Befehlszeile. Erforderliche Locke w3m, jq und neu codieren.

Ergebnis:

Tips for golfing in Charcoal
code-golf, tips
/codegolf/117269/tips-for-golfing-in-charcoal
user1516873
quelle
Ich bin mir ziemlich sicher, dass Sie aus allen auswählen müssen. Aber trotzdem willkommen bei PPCG!
NoOneIsHere