Machen Sie einen Strohballen

12

Strawpolls sind großartig und wir verwenden sie ständig im Chat, um Meinungen zu Dingen zu bekommen. Aber sie sind ärgerlich, da Sie einen Webbrowser benötigen, um sie zu erstellen, und jeder weiß, dass ich auf PPCG nur über SE-APIs und curl zugreifen kann. Ich möchte, dass Sie Code schreiben, der die Strawpoll-API verwendet , um einen Strawpoll mit den angegebenen Optionen zu erstellen.

Technische Daten

Nehmen Sie als Eingabe eine Liste in einem angemessenen Format von Optionen als Zeichenfolgen und einen Titel, der auch eine Zeichenfolge ist. Verwenden Sie dann die API, um einen Strohpoll mit diesem Titel und diesen Optionen zu erstellen und die URL auszugeben.

Mehrfachnennungen sollten nicht zulässig sein, doppelte Überprüfungen sollten erzwungen werden und Captchas sollten nicht erforderlich sein.

Beispiel

"My Awesome Poll"
["option 1", "I like pies", "I also like cakes"]

Ausgabe: http://strawpoll.me/7275997

Das ist , also gewinnt der kürzeste Code in Bytes !

Maltysen
quelle
2
(Nur um allen zu helfen) TL; DR : Mach das:https://strawpoll.me/api/v2/polls{"title":"This is a test poll.","options":["Option #1","Option #2"],"multi": true}
Undichte Nonne
1
" HINWEIS : Sie müssen in Ihrer Anfrage einen Header" Content-Type: application / json "angeben."
Undichte Nonne
Die API funktioniert nicht oder zumindest nicht so wie es die Docs behaupten
cat
https://strawpoll.me/api/v2/pollsantwortet immer mit http 400
cat
Müssen Sie den Strohhalm zurückgeben http://? Kann ich https://stattdessen zurückkehren?
Wert Tinte

Antworten:

3

Faktor 257 262 Bytes

TUPLE: p title options dupcheck ;
[ command-line rest [ first ] [ rest ] bi "normal" p boa >json "https://strawpoll.me/api/v2/polls" <post-request> "application/json" "Content-Type" set-header http-request nip json> id>> 10 base> "http://strawpoll.me/" prepend ]

Erwartet einen Namen als erstes Befehlszeilenargument und anschließend Optionen.

Benötigt com-auto-use .

Ungolfed:

TUPLE: poll
  title options dupcheck ;

: post-json ( post-data url -- response data )
  <post-request>
    "application/json" "Content-Type" set-header
  http-request ;

: strawpoll-main ( -- )
  command-line rest [ first ] [ rest ] bi "normal" poll boa
  >json "https://strawpoll.me/api/v2/polls" post-json nip
  json> id>> 10 base> "http://strawpoll.me/" prepend print ;
Katze
quelle
1

Ruby 2.2.4 + HTTParty : 129 Byte

Anonyme Funktion; Gibt eine Zeichenfolge mit der Strawpoll-URL zurück. Denken Sie daran, das HTTParty-Gem zu installieren, bevor Sie es ausführen.

->q,a{require'httparty';s="http%s://strawpoll.me/%s"
s%[p,HTTParty.post(s%[?s,"api/v2/polls"],body:{title:q,options:a},verify:p)["id"]]}

Wenn die URL mit https://statt mit http://126 Bytes zurückgegeben werden kann:

->q,a{require'httparty';s="https://strawpoll.me/%s"
s%HTTParty.post(s%"api/v2/polls",body:{title:q,options:a},verify:p)["id"]}
Wert Tinte
quelle
Hast du den Content-Type: application/jsonHeader gesetzt?
Katze
Ich habe eine richtige Antwort erhalten, daher würde ich davon ausgehen, dass HTTParty das bereits für mich erledigt.
Value Ink
Dieses Juwel lässt sich nicht installieren, was sehr ärgerlich ist, da ich gerne herausfinden möchte, warum ich immer wieder HTTP 400 erhalte.
cat
Was ist deine Ruby-Version? Ich habe meine auf die Version aktualisiert, die ich habe, und das Juwel sagt, dass es 1.9.3+ braucht
Value Ink