Zrób Strawpoll


12

Strawpolls są świetne i używamy ich przez cały czas na czacie, aby uzyskać opinie na różne tematy . Ale to trochę denerwujące, ponieważ potrzebujesz przeglądarki internetowej, aby je zrobić, i wszyscy wiedzą, że uzyskuję dostęp do PPCG tylko za pośrednictwem interfejsów API SE i curl. Więc chcę, żebyś napisał kod, który używa API Strawpoll do stworzenia słomy z podanymi opcjami.

Okular

Weź jako dane wejściowe listę w dowolnym rozsądnym formacie opcji jako ciągi oraz tytuł, który jest również ciągiem. Następnie użyj interfejsu API, aby utworzyć słomkę z tym tytułem i tymi opcjami i wyślij adres URL.

Wielokrotności nie powinny być dozwolone, sprawdzanie duplikatów powinno być wymuszone, a captchas nie powinny być konieczne.

Przykład

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

Dane wyjściowe: http://strawpoll.me/7275997

To jest , więc wygrywa najkrótszy kod w bajtach !


2
(Tylko po to, aby wszystkim pomóc) TL; DR : zrób to:https://strawpoll.me/api/v2/polls{"title":"This is a test poll.","options":["Option #1","Option #2"],"multi": true}
— Dziurawy zakonnica

1
„ UWAGA : Musisz podać nagłówek„ Content-Type: application / json ”we wniosku.”
— Leaky Nun

API nie działa, a przynajmniej nie działa tak, jak mówią doktorzy
— cat

https://strawpoll.me/api/v2/pollszawsze odpowiada http 400
— kot

Czy musisz zwrócić słomę http://? Czy mogę https://zamiast tego wrócić ?
— Wartość tuszu

Odpowiedzi:


3

Współczynnik, 257 262 bajtów

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 ]

Oczekuje nazwy jako pierwszego argumentu wiersza polecenia, a następnie opcji.

Wymaga com-auto-use.

Nie golfowany:

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 ;

1

Ruby 2.2.4 + HTTParty : 129 bajtów

Funkcja anonimowa; zwraca ciąg z adresem URL strawpoll. Pamiętaj, aby zainstalować gem HTTParty przed uruchomieniem.

->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"]]}

Jeśli https://zamiast adresu URL można zwrócić http://, 126 bajtów:

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

Czy ustawiłeś Content-Type: application/jsonnagłówek?
— kot

Otrzymałem właściwą odpowiedź, więc zakładam, że HTTParty już to dla mnie robi.
— Wartość tuszu

Ten klejnot się nie instaluje, co jest naprawdę denerwujące, ponieważ chciałbym dowiedzieć się, dlaczego wciąż otrzymuję HTTP 400.
— Cat

Jaka jest twoja wersja Ruby? Zaktualizowałem mój do wersji, którą posiadam, a klejnot mówi, że potrzebuje wersji 1.9.3+
— Wartość tuszu
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.