Wikipedia:Scripts/Wikimedia RC Watcher

Wikimedia RC Watcher, v.1.0

edit
on 1:TEXT:*:#: {
  ;Wikimedia RC Watcher, v.1.0
  ;by [[User:Dbl2010]] 
  ;This script watches all the channels that user entered 
  ;in irc.wikimedia.org IRC server and lists the live RC in a
  ;separate list window in a proper format. Right clicking on list
  ;window brings an easy access menu for selected edit.
 
  var %maxline 30

  var %s $strip($1-)
  if ($left(%s,1) != $chr(91)) halt
  if ($nick != rc) halt
  var %e1 $pos(%s,]],1)
  var %tpc �15 $+ $chr(91) $+ $chr(91) $+ �07 $+ $mid(%s,3,$calc(%e1 - 3)) $+ �15 $+ $chr(93) $+ $chr(93)

  if (Log/newusers isin %tpc) {
    if ($chan == #tr.wikipedia) isimsay $chan
  }
  var %s $right(%s,$calc($len(%s) - %e1 - 2))
  var %e2 $pos(%s,http,1)
  var %NorM $chr(32)
  if (M isin $left(%s,%e2)) var %NorM $remove(%NorM,$chr32) $+ �4M
  if (N isin $left(%s,%e2)) var %NorM $remove(%NorM,$chr32) $+ �4N

  var %s $right(%s,$calc($len(%s) - %e2 + 1))
  var %url $left(%s,$pos(%s,$chr(32),1))
  var %s $right(%s,$calc($len(%s) - $pos(%s,$chr(32),2)))
  var %user �03 $+ $left(%s,$calc($pos(%s,$chr(42),1) - 1))
  var %s $right(%s,$calc($len(%s) - $pos(%s,$chr(42),1) - 1))

  if ($left(%s,1) == $null ) halt
  if ($left(%s,1) == $chr(40)) {       ;This is an edit
    if ($pos(%s,$chr(32),1) == $null ) { var %byte %s
      var %summary $chr(32) 
    }
    else {
      var %byte $left(%s,$pos(%s,$chr(32),1))
      var %summary �10 $+ $right(%s,$calc($len(%s) - $pos(%s,$chr(32),1)))
    }
  }
  else {
    ;  Special:   
    halt
  }
  var %Wname @rc: $+ $remove($chan,$chr(35))
  if ($window(%Wname) == $null)  window -alk0 -t6,8,30,39,44,77 %Wname Tahoma 12
  aline %Wname $timestamp $+ $chr(9) $+ %NorM $+ $chr(9) $+ %tpc $+ $chr(9) $+ %user $+ $chr(9) $+ %byte $&
  $+ $chr(9) $+ %summary $+ $chr(9) $+ %url
  if ($line(%Wname,0) == %maxline) dline %Wname 1
}

menu  @rc:* {
  $ayikla($1-,3): {
    echo -s �04----------------------------------------------------------------------- 
    echo -s �07Page:� $ayikla($1-,3)
    echo -s �03User:� $ayikla($1-,4)
    echo -s Byte change: $ayikla($1-,5)
    echo -s �10Summary:� $ayikla($1-,6)
    echo -s �02URL:� $ayikla($1-,7)
  }
  -
  Page: $baglan($1-,$menu,1)
  Diff: $baglan($1-,$menu,2)
  User $+ $chr(58) $+ $ayikla($1-,4) : $baglan($1-,$menu,3)
  User talk $+ $chr(58) $+ $ayikla($1-,4) : $baglan($1-,$menu,4)
}

alias sfm {
  var %sitename $remove($1,rc:,@) $+ .org
  return %sitename
}

alias ayikla {
  return $gettok($strip($1),$2,9)
}

alias baglan {
  var %sayfa $strip($1)
  if ($3 == 1) {
    var %sayfa $gettok(%sayfa,3,9)
    var %sayfa $remove(%sayfa,$chr(91),$chr(93))
    var %sayfa $replace(%sayfa,$chr(32),_)
    var %sayfa http:// $+ $sfm($2) $+ /wiki/ $+ %sayfa
  }
  elseif ($3 == 2) { 
    var %sayfa $gettok(%sayfa,7,9)
  }
  elseif ($3 == 3) { 
    var %sayfa $gettok(%sayfa,4,9)
    var %sayfa http:// $+ $sfm($2) $+ /wiki/User: $+ %sayfa
  }
  elseif ($3 == 4) { 
    var %sayfa $gettok(%sayfa,4,9)
    var %sayfa http:// $+ $sfm($2) $+ /wiki/User_talk: $+ %sayfa
  }

  url -a %sayfa
}