Advertisement
Wikked

Twitch poll

Nov 9th, 2014
189
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
mIRC 2.75 KB | None | 0 0
  1. on *:text:!poll *:#:{
  2.   if ($nick !isop #) { msg # $nick $+ , you need to be a MOD! | return }
  3.   var %regex = /(?:(.+?)\s*[:-]+\s*|())(.+?)$/iS
  4.   if ($regex($strip($2-),%regex)) {
  5.     var %title = $iif($regml(1),$v1,Poll)
  6.     var %options = $regsubex($regml(2),/\s* $+ $chr(44) $+ \s*/g,$chr(44))
  7.   }
  8.   else return
  9.  
  10.   noop $strawpoll.create(#,%title,%options)
  11. }
  12.  
  13. alias strawpoll.create {
  14.   var %chan = $1, %title = $urlencode($2), %options
  15.   var %multi = true, %permissive = false
  16.  
  17.   var %i = 1, %n = $numtok($3,44)
  18.   while (%i <= %n) {
  19.     %options = %options $+ &options[]= $+ $urlencode($gettok($3,%i,44))
  20.     inc %i
  21.   }
  22.  
  23.   var %sockname = strawpoll. $+ $ticks
  24.   hfree -w %sockname | hmake %sockname
  25.   hadd %sockname headerfile %sockname $+ .header.txt
  26.   hadd %sockname datafile %sockname $+ .data.txt
  27.  
  28.   hadd %sockname host strawpoll.me
  29.   hadd %sockname request /ajax/new-poll
  30.   hadd %sockname method POST
  31.   hadd %sockname data $+(title=,%title,%options,&multi=,%multi,&permissive=,%permissive)
  32.   hadd %sockname signal strawpoll.create
  33.   hadd %sockname params %chan
  34.  
  35.   sockopen %sockname $hget(%sockname,host) 80
  36. }
  37.  
  38. on *:signal:strawpoll.create:{
  39.   var %err = $1, %sockname = $2, %header = $3, %data = $4, %chan = $5
  40.  
  41.   if (* 200 OK iswm $read(%header,1)) && ($regex($read(%data,n,1),(\d+))) {
  42.     msg %chan http://strawpoll.me/ $+ $regml(1)
  43.   }
  44.   else msg %chan Could not create poll.
  45.  
  46.   hfree -w %sockname
  47.   .remove %header | .remove %data
  48. }
  49.  
  50. on *:sockopen:strawpoll.*:{
  51.   var %a = sockwrite -n $sockname
  52.   %a $hget($sockname,method) $hget($sockname,request) HTTP/1.0
  53.   %a Host: $hget($sockname,host)
  54.   %a Connection: close
  55.   if ($hget($sockname,data) != $null) {
  56.     %a Content-Type: application/x-www-form-urlencoded
  57.     %a Content-Length: $len($v1)
  58.   }
  59.   %a $+($crlf,$hget($sockname,data))
  60. }
  61.  
  62. on *:sockread:strawpoll.*:{
  63.   var %header
  64.   var %headerfile = $hget($sockname,headerfile)
  65.   var %datafile = $hget($sockname,datafile)
  66.  
  67.   if (!$hget($sockname,header.complete)) {
  68.     sockread %header
  69.     while (%header != $null) {
  70.       write %headerfile %header
  71.       sockread %header
  72.     }
  73.     if ($sockbr) hadd $sockname header.complete $true
  74.   }
  75.   if ($hget($sockname,header.complete)) {
  76.     sockread &read
  77.     while ($sockbr) {
  78.       bwrite %datafile -1 -1 &read
  79.       sockread &read
  80.     }
  81.   }
  82. }
  83.  
  84. on *:sockclose:strawpoll.*:{
  85.   var %header = $hget($sockname,headerfile)
  86.   var %data = $hget($sockname,datafile)
  87.   var %signal = $hget($sockname,signal)
  88.   var %params = $hget($sockname,params)
  89.  
  90.   if (%signal) .signal %signal 0 $sockname %header %data %params
  91.   else {
  92.     hfree -w $sockname
  93.     .remove %header | .remove %data
  94.   }
  95. }
  96.  
  97. alias urlencode return $regsubex($1-,/([^A-Z0-9])/gi,$+(%,$base($asc(\1),10,16)))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement