Server Flag for mIRC

By _Dean_ on Aug 04, 2011

Screenshots

• copy and paste it into a new remote page (alt+r)
• right click on channel then click on Flags>ON to activate it

its a simple script which shows you the Flag for where your server is hosted
right click on Flag and it will show the menus

any bug please report

NOTE: this script was tested in a 7.14 mIRC version but some user already noticed errors in versions under 6.35
so, for better use, this script seems to work only in 6.35+

alias flag {
  $iif(!$exists(flags), mkdir Flags)
  $iif($sock(flags), sockclose flags) 
  sockopen Flags iptrace.im 80
  sockmark flags $iif($$1,$$1,$serverip)
}

on *:sockopen:flags:{
  var %x = sockwrite -nt $sockname
  %x GET $+(/whatismyipaddress.php?ip=,$sock(flags).mark) HTTP/1.1
  %x Host: iptrace.im
  %x 
}

on *:sockread:flags:{
  var %x 
  sockread %x
  if $regex(%x,/<td>(.+)\&nbsp;<img width=18 height=12 src=.+ border=0><\/td>/i) {
    bls $replace($iif($regml(1) == United States,United States of America,$regml(1)),$chr(32),$chr(37) $+ 20)
  } 
}

alias bls {
  $iif($sock(gks), sockclose gks) 
  sockopen gks www.printableworldflags.com 80
  set -u10 %Flags $1
  writeini -n flags.ini Flags $serverip $+(%Flags,.jpg)
}

on *:sockopen:gks:{
  var %x = sockwrite -n $sockname
  %x GET $+(/icon-flags/16/,%Flags,.png) HTTP/1.1
  %x HOST: www.printableworldflags.com
  %x Connection: close
  %x
}

On *:sockread:gks:{
  if (!$sock($sockname).mark) {
    var %Flag.var | sockread %Flag.var
    if (%Flag.var == $null) { sockmark $sockname 1 }
  }
  else {
    sockread &Flags
    bwrite $+(Flags\,%Flags,.jpg) -1 -1 &Flags |  updatebar | echo -agt New Flag Found
  }  
}

alias updatebar {
  if (!$toolbar(Flag)) {
    var %y = $remove($replace($readini(flags.ini,flags,$serverip),$chr(37) $+ 20,$chr(32)),.jpg)
    .toolbar -a Flag " $+ %y $(|) $server ( $+ $serverip $+ ) $+ " " $+ Flags\ $+ $readini(flags.ini,flags,$serverip) $+ " " $+ /echo -ag Server Flag: %y $+ " @Flag
  }
  else {
    var %y = $remove($replace($readini(flags.ini,flags,$serverip),$chr(37) $+ 20,$chr(32)),.jpg)
    .toolbar -tpl Flag " $+ %y $(|) $server ( $+ $serverip $+ ) $+ " " $+ $+(Flags\,$readini(flags.ini,flags,$serverip)) $+ "  " $+ /echo -ag Server Flag: %y $+ "
  }
}

#flags on
on *:active:*:{ 
  if ($status == disconnected) && ($toolbar(flag)) { 
    toolbar -d flag
  }
  if ($status == connected) { 
    if ($readini(flags.ini,Flags,$serverip)) {
      if (!$toolbar(flag)) {
        var %y = $remove($replace($readini(flags.ini,flags,$serverip),$chr(37) $+ 20,$chr(32)),.jpg)
        .toolbar -a Flag " $+ %y $(|) $server ( $+ $serverip $+ ) $+ " " $+ Flags\ $+ $readini(flags.ini,flags,$serverip) $+ " " $+ /echo -ag Server Flag: %y $+ " @Flag
      }
      else {
        var %y = $remove($replace($readini(flags.ini,flags,$serverip),$chr(37) $+ 20,$chr(32)),.jpg)
        .toolbar -tpl Flag " $+ %y $(|) $server ( $+ $serverip $+ ) $+ " " $+ $+(Flags\,$readini(flags.ini,flags,$serverip)) $+ "  " $+ /echo -ag Server Flag: %y $+ "
      }
    }
    else { 
      echo -agt Wait a minute getting New Server Flag
      flag $serverip
    }
  }
}
#flags end

on *:connect:{
  if ($group(#flags).status == on) {
    if ($readini(flags.ini,Flags,$serverip)) {
      if (!$toolbar(flag)) {
        var %y = $remove($replace($readini(flags.ini,flags,$serverip),$chr(37) $+ 20,$chr(32)),.jpg)
        .toolbar -a Flag " $+ %y $(|) $server ( $+ $serverip $+ ) $+ " " $+ Flags\ $+ $readini(flags.ini,flags,$serverip) $+ " " $+ /echo -ag Server Flag: %y $+ " @Flag
      }
      else {
        var %y = $remove($replace($readini(flags.ini,flags,$serverip),$chr(37) $+ 20,$chr(32)),.jpg)
        .toolbar -tpl Flag " $+ %y $(|) $server ( $+ $serverip $+ ) $+ " " $+ $+(Flags\,$readini(flags.ini,flags,$serverip)) $+ "  " $+ /echo -ag Server Flag: %y $+ "
      }
    }
    else { 
      echo -agt Wait a minute getting New Server Flag
      flag $serverip    
    }
  }
}

menu status,channel {
  Flags
  .$iif($group(#flags).status == on,$style(1)) ON: .enable #Flags | echo -agt Flags Activated, Wait a minute | $iif($status == connected, check_flag)  
  .$iif($group(#flags).status == off,$style(1)) OFF: .disable #Flags | sockclose flags | sockclose gks | echo -agt Flags deactivated | $iif($toolbar(Flag), toolbar -d Flag)
}

alias check_flag {
  if ($readini(flags.ini,Flags,$serverip)) {
    if (!$toolbar(flag)) {
      var %y = $remove($replace($readini(flags.ini,flags,$serverip),$chr(37) $+ 20,$chr(32)),.jpg)
      .toolbar -a Flag " $+ %y $(|) $server ( $+ $serverip $+ ) $+ " " $+ Flags\ $+ $readini(flags.ini,flags,$serverip) $+ " " $+ /echo -ag Server Flag: %y $+ " @Flag
    }
    else {
      var %y = $remove($replace($readini(flags.ini,flags,$serverip),$chr(37) $+ 20,$chr(32)),.jpg)
      .toolbar -tpl Flag " $+ %y $(|) $server ( $+ $serverip $+ ) $+ " " $+ $+(Flags\,$readini(flags.ini,flags,$serverip)) $+ "  " $+ /echo -ag Server Flag: %y $+ "
    }
  }
  else { 
    echo -agt Wait a minute getting New Server Flag
    flag $serverip    
  }
}

menu @Flag {
  Flags
  .Get Server Info: Flaginfo $serverip 
  .Copy Server IP: clipboard | clipboard -a $serverip
}

alias flaginfo {
  echo -agt Getting info for: $server ( $+ $serverip $+ )
  $iif($sock(flaginfo), sockclose flaginfo) 
  sockopen flaginfo www.infobyip.com 80
  sockmark flaginfo $iif($$1,$$1,$serverip)
}
on *:sockopen:flaginfo:{
  var %x = sockwrite -nt $sockname
  %x GET $+(/ipwhois-,$sock(flaginfo).mark,.html) HTTP/1.1
  %x Host: www.infobyip.com
  %x Connection: close
  %x
}

on *:sockread:flaginfo:{
  var %x 
  sockread %x
  if (*OrgName:* iswm %x) || (*Address:* iswm %x) || (*City:* iswm %x) || (*StateProv:* iswm %x) {   
    echo -ag Information for $sock(flaginfo).mark $+ : %x
  }
}

on *:disconnect:{
  $iif($toolbar(flag), toolbar -d flag)
}

Comments

Sign in to comment.
_Dean_   -  Jun 09, 2012

updated, the website which the scripts got the information, changed the HTML code, so i decided to change the website too, now with more information

 Respond  
_Dean_   -  Aug 06, 2011

Aha2Y i noticed that, check the last update Thanks

 Respond  
Jordyk19   -  Aug 06, 2011

Found a bug, when switching from server the flag name won't be updated (click on flag)

 Respond  
Dodge   -  Aug 05, 2011

Very Nice. It's good when things just work. I will use this script. Another good Idea Dean 8/10

 Respond  
_Dean_   -  Aug 05, 2011

Code updated

 Respond  
_Dean_   -  Aug 05, 2011

Thanks Aha2Y

 Respond  
Jordyk19   -  Aug 05, 2011

I really like how it knows the location of a server.
Good work :)

 Respond  
Are you sure you want to unfollow this person?
Are you sure you want to delete this?
Click "Unsubscribe" to stop receiving notices pertaining to this post.
Click "Subscribe" to resume notices pertaining to this post.