All pastes #164959 Raw Edit

poll script

public text v1 · immutable
·published 2006-09-09 08:00 UTC
rendered paste body
alias addsilent { 
  %poll.silent = $iif(!$1,$active,$1- 
} 

on *:JOIN:#:{ 
  if (%poll.joinflood == 1) { halt } 
  else { 
    if ($readini(poll- [ $+ [ $chan ] $+ ] - [ $+ [ $network ] $+ ] .ini,poll,question) != $null) { 
      .notice $nick A poll is active. The poll question is: $& 
        $readini(poll- [ $+ [ $chan ] $+ ] - [ $+ [ $network ] $+ ] .ini,POLL,question) $& 
        $+($chr(2),$chr(91),$chr(3),12,$chr(79),$chr(119),$chr(119),$chr(83),$chr(99),$chr(114),$chr(105),$chr(112),$chr(116),$chr(3),$chr(93),$chr(2)) 
      set -u60 %poll.joinflood 1 
    } 
  } 
} 
on $*:TEXT:/^[@!\.]p(oll)? ?(stats|standings)/Si:#:{ 
  if (%poll.flood. [ $+ [ $saddress($nick) ] ] == 1) halt 
  if ($readini(poll- [ $+ [ $chan ] $+ ] - [ $+ [ $network ] $+ ] .ini,poll,question) != $null) { 
    var %result,%s,%yes %poll.yes. [ $+ [ $chan ] $+ ] . [ $+ [ $network ] ],%no %poll.no. [ $+ [ $chan ] $+ ] . [ $+ [ $network ] ] 
    if (%yes == $null) %yes = 0 
    if (%no == $null) %no = 0 
    var %t $calc(%yes + %no) 
    if (%yes == %no) { 
      msg $chan Currently, there is a TIE ( $+ %yes yes and no votes $+ ) 
      var %tie 1 
    } 
    elseif (%no > %yes) { 
      %result = NO 
      %s = ( $+ $+(%yes yes vote,$iif(%yes != 1,s), $chr(91),$round($calc(%yes / %t *100),2),$chr(37),$chr(93)) $& 
        and %no no $+(vote,$iif(%no != 1,s), $chr(91),$round($calc(%no / %t *100),2),$chr(37),$chr(93),) $+ ) 
    } 
    else { 
      %result = YES 
      %s = ( $+ $+(%yes yes vote,$iif(%yes != 1,s), $chr(91),$round($calc(%yes / %t *100),2),$chr(37),$chr(93)) $& 
        and %no no $+(vote,$iif(%no != 1,s), $chr(91),$round($calc(%no / %t *100),2),$chr(37),$chr(93),) $+ ) 
    } 
    if (%tie != 1) { 
      msg $chan Currently %result is winning! %s 
    } 
  } 
} 
on $*:TEXT:/^[@!\.]poll (-t)?/Si:#:{ 
  if ($chan != #idle) { 
    var %display $iif($left($1,1) == @,msg $chan,notice $nick) 
    if ($chan isin %silent) && ($left($1,1) == @) && ($nick !isop $chan || $nick !ishop $chan) { 
      %display = .notice $nick 
    } 
    if ($readini(poll- [ $+ [ $chan ] $+ ] - [ $+ [ $network ] $+ ] .ini,poll,question) != $null) { 
      if ($2 == question) { 
        %display The poll question is: $& 
          $readini(poll- [ $+ [ $chan ] $+ ] - [ $+ [ $network ] $+ ] .ini,POLL,question) $& 
          $+($chr(2),$chr(91),$chr(3),12,$chr(79),$chr(119),$chr(119),$chr(83),$chr(99),$chr(114),$chr(105),$chr(112),$chr(116),$chr(3),$chr(93),$chr(2)) 
        halt 
      } 
      else { 
        %display A poll is allready active in this channel $& 
          $+($chr(2),$chr(91),$chr(3),12,$chr(79),$chr(119),$chr(119),$chr(83),$chr(99),$chr(114),$chr(105),$chr(112),$chr(116),$chr(3),$chr(93),$chr(2)) 
      } 
    } 
    elseif (!$2) %display A question needs to be polled $& 
        $+($chr(2),$chr(91),$chr(3),12,$chr(79),$chr(119),$chr(119),$chr(83),$chr(99),$chr(114),$chr(105),$chr(112),$chr(116),$chr(3),$chr(93),$chr(2)) 
    elseif ($left($2,2) == -t && !$3) { %display You need to set a time $& 
        $+($chr(2),$chr(91),$chr(3),12,$chr(79),$chr(119),$chr(119),$chr(83),$chr(99),$chr(114),$chr(105),$chr(112),$chr(116),$chr(3),$chr(93),$chr(2)) } 
    elseif ($left($2,2) == -t && $right($2,-2) isnum .99+) { 
      %display The time must be higher than 1 $& 
        $+($chr(2),$chr(91),$chr(3),12,$chr(79),$chr(119),$chr(119),$chr(83),$chr(99),$chr(114),$chr(105),$chr(112),$chr(116),$chr(3),$chr(93),$chr(2)) 
    } 
    else { 
      inc %poll.uses 
      writeini poll- [ $+ [ $chan ] $+ ] - [ $+ [ $network ] $+ ] .ini POLL question $iif($left($2,2) == -t,$3-,$2-) 
      set %poll.time. [ $+ [ $chan ] $+ ] . [ $+ [ $network ] ] $& 
        $iif($left($2,2) == -t,$right($2,-2),10) 
      set %poll.active. [ $+ [ $chan ] $+ ] . [ $+ [ $network ] ] tru dat wigga 
      .timerpoll.timer. [ $+ [ $chan ] $+ ] . [ $+ [ $network ] ] 1 $& 
        $calc(%poll.time. [ $+ [ $chan ] $+ ] . [ $+ [ $network ] ] * 60) poll.results $chan $network 
      msg $chan A poll has been started by $nick $+ ! It will run for $& 
        %poll.time. [ $+ [ $chan ] $+ ] . [ $+ [ $network ] ] minutes. The question is $iif($left($2,2) == -t,$3-,$2-) 
      %display If you dont know how poll scripts work, go to http://www.freewebs.com/owwscript/poll.htm 
    } 
  } 
} 

on $*:TEXT:/^[@!\.](y|n)/Si:#:{ 
  var %display.v $iif($left($1,1) == @,msg $chan,.notice $nick) 
  if ($chan isin %poll.silent) && ($left($1,1) == @) && ($nick !isop $chan || $nick !ishop $chan) { 
    %display.v = .notice $nick 
  } 
  if (%poll.flood. [ $+ [ $saddress($nick) ] ] == 1) %display.v = echo @poll 
  if ($readini(poll- [ $+ [ $chan ] $+ ] - [ $+ [ $network ] $+ ] .ini,poll,question) != $null) { 
    if (%poll.flood. [ $+ [ $saddress($nick) ] ] != 1) { 
      set -u60 %poll.flood. [ $+ [ $saddress($nick) ] ] 1 
    } 
    if ($right($left($1,2),-1) == y) { 
      if ($readini(poll- [ $+ [ $chan ] $+ ] - [ $+ [ $network ] $+ ] .ini,yes,$saddress($nick)) == yes) { 
        %display.v $nick $+ $chr(58) You have allready voted in this poll $& 
          $+($chr(2),$chr(91),$chr(3),12,$chr(79),$chr(119),$chr(119),$chr(83),$chr(99),$chr(114),$chr(105),$chr(112),$chr(116),$chr(3),$chr(93),$chr(2)) 
      } 
      elseif ($readini(poll- [ $+ [ $chan ] $+ ] - [ $+ [ $network ] $+ ] .ini,no,$saddress($nick)) == no) { 
        %display.v $nick $+ $chr(58) Your vote has been changed to YES $+ $& 
          $+($chr(2),$chr(91),$chr(3),12,$chr(79),$chr(119),$chr(119),$chr(83),$chr(99),$chr(114),$chr(105),$chr(112),$chr(116),$chr(3),$chr(93),$chr(2)) 
        writeini poll- [ $+ [ $chan ] $+ ] - [ $+ [ $network ] $+ ] .ini yes $saddress($nick) yes 
        remini poll- [ $+ [ $chan ] $+ ] - [ $+ [ $network ] $+ ] .ini no $saddress($nick) 
        inc %poll.yes. [ $+ [ $chan ] $+ ] . [ $+ [ $network ] ] 
        dec %poll.no. [ $+ [ $chan ] $+ ] . [ $+ [ $network ] ] 
      } 
      else { 
        writeini poll- [ $+ [ $chan ] $+ ] - [ $+ [ $network ] $+ ] .ini yes $saddress($nick) yes 
        %display.v $+ $nick $+ $chr(58) Your YES vote has been counted. $& 
          $+($chr(2),$chr(91),$chr(3),12,$chr(79),$chr(119),$chr(119),$chr(83),$chr(99),$chr(114),$chr(105),$chr(112),$chr(116),$chr(3),$chr(93),$chr(2)) 
        inc %poll.yes. [ $+ [ $chan ] $+ ] . [ $+ [ $network ] ] 
      } 
    } 
    elseif ($right($left($1,2),-1) == n) { 
      if ($readini(poll- [ $+ [ $chan ] $+ ] - [ $+ [ $network ] $+ ] .ini,no,$saddress($nick)) == no) { 
        %display.v $nick $+ $chr(58) You have allready voted in this poll $& 
          $+($chr(2),$chr(91),$chr(3),12,$chr(79),$chr(119),$chr(119),$chr(83),$chr(99),$chr(114),$chr(105),$chr(112),$chr(116),$chr(3),$chr(93),$chr(2)) 
      } 
      elseif ($readini(poll- [ $+ [ $chan ] $+ ] - [ $+ [ $network ] $+ ] .ini,yes,$saddress($nick)) == yes) { 
        %display.v $nick $+ $chr(58) Your vote has been changed NO $& 
          $+($chr(2),$chr(91),$chr(3),12,$chr(79),$chr(119),$chr(119),$chr(83),$chr(99),$chr(114),$chr(105),$chr(112),$chr(116),$chr(3),$chr(93),$chr(2)) 
        writeini poll- [ $+ [ $chan ] $+ ] - [ $+ [ $network ] $+ ] .ini no $saddress($nick) no 
        remini poll- [ $+ [ $chan ] $+ ] - [ $+ [ $network ] $+ ] .ini yes $saddress($nick) 
        inc %poll.no. [ $+ [ $chan ] $+ ] . [ $+ [ $network ] ] 
        dec %poll.yes. [ $+ [ $chan ] $+ ] . [ $+ [ $network ] ] 
      } 
      else { 
        writeini poll- [ $+ [ $chan ] $+ ] - [ $+ [ $network ] $+ ] .ini no $saddress($nick) no 
        %display.v $+ $nick $+ $chr(58) Your NO vote has been counted. $& 
          $+($chr(2),$chr(91),$chr(3),12,$chr(79),$chr(119),$chr(119),$chr(83),$chr(99),$chr(114),$chr(105),$chr(112),$chr(116),$chr(3),$chr(93),$chr(2)) 
        inc %poll.no. [ $+ [ $chan ] $+ ] . [ $+ [ $network ] ] 
      } 
    } 
  } 
} 
on $*:TEXT:/^[@!\.]e(nd)? ?(poll)/Si:#:{ 
  var %display.ep $iif($left($1,1) == @,msg $chan,.notice $nick) 
  if ($chan isin %poll.silent) && ($left($1,1) == @) && ($nick !isop $chan || $nick !ishop $chan) { 
    %display.ep = .notice $nick 
  } 
  if ($readini(poll- [ $+ [ $chan ] $+ ] - [ $+ [ $network ] $+ ] .ini,poll,question) != $null) { 
    poll.results $chan $network 
    .timerpoll.timer. [ $+ [ $chan ] $+ ] . [ $+ [ $network ] ] off 
  } 
  else { 
    %display.ep No poll is active for this channel! $& 
      $+($chr(2),$chr(91),$chr(3),12,$chr(79),$chr(119),$chr(119),$chr(83),$chr(99),$chr(114),$chr(105),$chr(112),$chr(116),$chr(3),$chr(93),$chr(2)) 
  } 
} 

alias poll.results { 
  var %result,%yes %poll.yes. [ $+ [ $1 ] $+ ] . [ $+ [ $2 ] ],%no %poll.no. [ $+ [ $1 ] $+ ] . [ $+ [ $2 ] ] 
  if (%yes == $null) %yes = 0 
  if (%no == $null) %no = 0 
  var %t $calc(%yes + %no) 
  msg $1 The poll has ended! 
  msg $1 The question was: $readini(poll- [ $+ [ $1 ] $+ ] - [ $+ [ $2 ] $+ ] .ini,POLL,question) 
  if (%yes == %no) { 
    %result = TIE ( $+ %yes yes and no votes $+ ) 
  } 
  elseif (%no > %yes) { 
    %result = NO wins! ( $+ $+(%yes yes vote,$iif(%yes != 1,s), $chr(91),$round($calc(%yes / %t *100),2),$chr(37),$chr(93)) $& 
      and %no no $+(vote,$iif(%no != 1,s), $chr(91),$round($calc(%no / %t *100),2),$chr(37),$chr(93),) $+ ) 
  } 
  else { 
    %result = YES wins! ( $+ $+(%yes yes vote,$iif(%yes != 1,s), $chr(91),$round($calc(%yes / %t *100),2),$chr(37),$chr(93)) $& 
      and %no no $+(vote,$iif(%no != 1,s), $chr(91),$round($calc(%no / %t *100),2),$chr(37),$chr(93),) $+ ) 
  } 
  msg $1 The poll result was $+ $chr(58) %result $& 
    $+($chr(2),$chr(91),$chr(3),12,$chr(79),$chr(119),$chr(119),$chr(83),$chr(99),$chr(114),$chr(105),$chr(112),$chr(116),$chr(3),$chr(93),$chr(2)) 
  unset %poll.*. [ $+ [ $1 ] $+ ] . [ $+ [ $2 ] ] 
  .remove poll- [ $+ [ $1 ] $+ ] - [ $+ [ $2 ] $+ ] .ini 
} 

alias saddress { 
  if (.ipt.aol.com isin $address($1,2)) return $address($1,3) 
  elseif (.phil.east.verizon.net isin $address($1,2)) return $address($1,3) 
  else return $address($1,2) 
}