Naar inhoud springen

Gebruiker:Obarskyr/IRC-script

Uit Wikipedia, de vrije encyclopedie
 
; Wikipedia-style Linking, Version 2.3.0
; Originally created by MadEwokHerd, modified by nobody and Mark_Ryan,
;   cleaned up by toad, majorly improved by Timwi, added extra functions by Netoholic
; fixed by Masterhomer, commons link fix by CryptoDerk
;  (now supports links with m:, meta:, commons:, WP:, {{template}}, and language codes)
; color stripping added by MadEwokHerd at CryptoDerk's request
on ^*:hotlink:*:*:{
  tokenize 32 $strip($1-)
  set %hotline $strip($hotline)
  if (*[[* iswm $1) || (*]]* iswm $1) || ($+(*,[,[,*,$1,*,],],*) iswm %hotline) { return }
  elseif (*{{* iswm $1) || (*}}* iswm $1) || ($+(*,\{,\{,*,$1,*,\},\},*) iswm %hotline) { return }
  else { halt }
}

on *:hotlink:*:*:{
  tokenize 32 $strip($1-)
  set %hotline $strip($hotline)
  var %page,%template,%dummy,%dummy2,%dummyc,%openb,%closeb
  if (*[[* iswm $1) || (*]]* iswm $1) || ($+(*,[,[,*,$1,*,],],*) iswm %hotline) {
    %openb = $pos($1,[[)
    %closeb = $pos($1,]])
    if (%openb == $null) {
      if (%closeb == $null) {
        %dummy = $regex(%hotline,\[\[([^\]]* $+ $1 $+ [^\]]*)\]\])
      }
      else {
        %dummyc = %closeb - 1
        %dummy = $regex(%hotline,\[\[([^\]]* $+ $left($1,%dummyc) $+ )\]\])
      }
    }
    elseif (%closeb == $null) {
      %dummyc = $len($1) - %openb
      %dummyc = %dummyc - 1
      %dummy = $regex(%hotline,\[\[( $+ $right($1,%dummyc) $+ [^\]]*)\]\])
    }
    else {
      %dummy = $regex($1,\[\[([^\]]*)\]\])
    }
  }
  else {
    %template = yes
    %openb = $pos($1,{{)
    %closeb = $pos($1,}})
    if (%openb == $null) {
      if (%closeb == $null) {
        %dummy = $regex(%hotline,\{\{([^\}]* $+ $1 $+ [^\}]*)\}\})
      }
      else {
        %dummyc = %closeb - 1
        %dummy = $regex(%hotline,\{\{([^\}]* $+ $left($1,%dummyc) $+ )\}\})
      }
    }
    elseif (%closeb == $null) {
      %dummyc = $len($1) - %openb
      %dummyc = %dummyc - 1
      %dummy = $regex(%hotline,\{\{( $+ $right($1,%dummyc) $+ [^\}]*)\}\})
    }
    else {
      %dummy = $regex($1,\{\{([^\}]*)\}\})
    }
  }

  %page = $regml(1)
  if (%template == yes) { %page = Sjabloon: $+ %page }

  if ($left(%page,2) == m:) {
    %dummy2 = $len(%page) - 2
    url -an http://meta.wikimedia.org/wiki/ $+ $replace($right(%page,%dummy2),$chr(32),_)
  }
  elseif ($left(%page,5) == meta:) {
    %dummy2 = $len(%page) - 5
    url -an http://meta.wikimedia.org/wiki/ $+ $replace($right(%page,%dummy2),$chr(32),_)
  }
  elseif ($left(%page,8) == commons:) {
    %dummy2 = $len(%page) - 8
    url -an http://commons.wikimedia.org/wiki/ $+ $replace($right(%page,%dummy2),$chr(32),_)
  }
  elseif ($left(%page,3) == WP:) {
    %dummy2 = $len(%page) - 3
    url -an http://nl.wikipedia.org/wiki/ $+ $replace(%page,$chr(32),_)
  }
  elseif ($right($left(%page,3),1) == :) {
    %dummy2 = $len(%page) - 3
    url -an http:// $+ $left(%page,2) $+ .wikipedia.org/wiki/ $+ $replace($right(%page,%dummy2),$chr(32),_)
  }
  elseif ($right($left(%page,4),1) == :) {
    %dummy2 = $len(%page) - 4
    url -an http:// $+ $left(%page,3) $+ .wikipedia.org/wiki/ $+ $replace($right(%page,%dummy2),$chr(32),_)
  }
  else {
    url -an http://nl.wikipedia.org/wiki/ $+ $replace(%page,$chr(32),_)
  }
}