Faça um Strawpoll

12

Bonecos de palha são ótimos, e nós os usamos no bate-papo o tempo todo para obter opiniões sobre as coisas. Mas eles são meio chatos de fazer, já que você precisa de um navegador da Web para fazê-los, e todo mundo sabe que eu acesso o PPCG apenas por meio das APIs SE e do curl. Então, eu quero que você escreva algum código que use a API do Strawpoll para fazer um strawpoll com as opções fornecidas.

Especificações

Tome como entrada uma lista em qualquer formato razoável de opções como strings e um título que também seja uma string. Em seguida, use a API para criar um pedaço de palha com esse título e essas opções e gerar o URL.

Múltiplos não devem ser permitidos, a verificação duplicada deve ser aplicada e os captchas não devem ser necessários.

Exemplo

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

Saída: http://strawpoll.me/7275997

Isso é , então o código mais curto em bytes vence!

Maltysen
fonte
2
(Apenas para ajudar a todos) TL; DR : fazer isso:https://strawpoll.me/api/v2/polls{"title":"This is a test poll.","options":["Option #1","Option #2"],"multi": true}
Leaky Nun
1
" NOTA : Você deve especificar um cabeçalho" Tipo de conteúdo: application / json "em sua solicitação."
Leak Nun #
O tipo API de não trabalho, ou pelo menos ele não funciona como os médicos dizem que ele faz
gato
https://strawpoll.me/api/v2/pollssempre responde com http 400
cat
Você é obrigado a devolver o canudo http://? Posso retornar em https://vez disso?
Value Ink

Respostas:

3

Fator, 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 ]

Espera um nome como o primeiro argumento da linha de comandos e depois opções.

Requer 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 ;
gato
fonte
1

Ruby 2.2.4 + HTTParty : 129 bytes

Função anônima; retorna uma string com o URL do strawpoll. Lembre-se de instalar a gem HTTParty antes de executar.

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

Se o URL puder ser retornado com, em https://vez de http://, 126 bytes:

->q,a{require'httparty';s="https://strawpoll.me/%s"
s%HTTParty.post(s%"api/v2/polls",body:{title:q,options:a},verify:p)["id"]}
Value Ink
fonte
Você definiu o Content-Type: application/jsoncabeçalho?
cat
Eu recebi uma resposta adequada de volta, então suponho que o HTTParty já faça isso por mim.
Valor Ink
Esta jóia não será instalado, que é realmente irritante desde que eu gostaria de descobrir por que eu continuo recebendo HTTP 400.
gato
Qual é a sua versão do Ruby? Eu atualizei o meu para a versão que eu tenho, e a jóia diz que precisa do 1.9.3+
Value Ink