diff options
Diffstat (limited to 'scripts/country.pl')
-rw-r--r-- | scripts/country.pl | 325 |
1 files changed, 325 insertions, 0 deletions
diff --git a/scripts/country.pl b/scripts/country.pl new file mode 100644 index 0000000..c8e98c9 --- /dev/null +++ b/scripts/country.pl @@ -0,0 +1,325 @@ +# Print the country name in /WHOIS replies +# /COUNTRY <code> prints the name for the country code +# Installation: Add $whois_country somewhere in your /FORMAT whois line + +use strict; +use Irssi 20021028; + +use vars qw($VERSION %IRSSI); +$VERSION = "1.0.1"; +%IRSSI = ( + authors => "Timo Sirainen", + contact => "tss\@iki.fi", + name => "country", + description => "Print the country name in /WHOIS replies", + license => "Public Domain", + changed => "Mon Oct 28 00:29:26 EET 2002" +); + +my %countries; +my $last_country = ""; + +sub sig_whois { + my ($server, $data, $nick, $host) = @_; + my ($me, $nick, $user, $host) = split(" ", $data); + + if ($host =~ /\.([a-zA-Z]+)$/) { + $last_country = $countries{lc $1}; + } else { + $last_country = ""; + } +} + +sub expando_whois_country { + return $last_country; +} + +sub cmd_country { + my $country = lc shift; + if ($country eq "") { + Irssi::print("USAGE: /COUNTRY <country code>"); + return; + } + + my $name = $countries{$country}; + if (!$name) { + Irssi::print("Unknown country code: $country"); + } else { + Irssi::print("$country is $name"); + } +} + +Irssi::command_bind('country', \&cmd_country); +Irssi::signal_add_first('event 311', \&sig_whois); +Irssi::expando_create('whois_country', \&expando_whois_country, + { 'event 311' => 'None' } ); + +my $countryfile = ' +# list taken from http://www.iana.org/cctld/cctld-whois.htm +# on 27-10-2002 by Lam +ac Ascension Island +ad Andorra +ae United Arab Emirates +af Afghanistan +ag Antigua and Barbuda +ai Anguilla +al Albania +am Armenia +an Netherlands Antilles +ao Angola +aq Antarctica +ar Argentina +as American Samoa +at Austria +au Australia +aw Aruba +az Azerbaijan +ba Bosnia and Herzegovina +bb Barbados +bd Bangladesh +be Belgium +bf Burkina Faso +bg Bulgaria +bh Bahrain +bi Burundi +bj Benin +bm Bermuda +bn Brunei Darussalam +bo Bolivia +br Brazil +bs Bahamas +bt Bhutan +bv Bouvet Island +bw Botswana +by Belarus +bz Belize +ca Canada +cc Cocos (Keeling) Islands +cd Congo Democratic Republic of the +cf Central African Republic +cg Congo Republic of +ch Switzerland +ci Cote d\\\'Ivoire +ck Cook Islands +cl Chile +cm Cameroon +cn China +co Colombia +cr Costa Rica +cu Cuba +cv Cap Verde +cx Christmas Island +cy Cyprus +cz Czech Republic +de Germany +dj Djibouti +dk Denmark +dm Dominica +do Dominican Republic +dz Algeria +ec Ecuador +ee Estonia +eg Egypt +eh Western Sahara +er Eritrea +es Spain +et Ethiopia +fi Finland +fj Fiji +fk Falkland Islands (Malvina) +fm Micronesia Federal State of +fo Faroe Islands +fr France +ga Gabon +gd Grenada +ge Georgia +gf French Guiana +gg Guernsey +gh Ghana +gi Gibraltar +gl Greenland +gm Gambia +gn Guinea +gp Guadeloupe +gq Equatorial Guinea +gr Greece +gs South Georgia and the South Sandwich Islands +gt Guatemala +gu Guam +gw Guinea-Bissau +gy Guyana +hk Hong Kong +hm Heard and McDonald Islands +hn Honduras +hr Croatia/Hrvatska +ht Haiti +hu Hungary +id Indonesia +ie Ireland +il Israel +im Isle of Man +in India +io British Indian Ocean Territory +iq Iraq +ir Iran (Islamic Republic of) +is Iceland +it Italy +je Jersey +jm Jamaica +jo Jordan +jp Japan +ke Kenya +kg Kyrgyzstan +kh Cambodia +ki Kiribati +km Comoros +kn Saint Kitts and Nevis +kp Korea Democratic People\\\'s Republic +kr Korea Republic of +kw Kuwait +ky Cayman Islands +kz Kazakhstan +la Lao People\\\'s Democratic Republic +lb Lebanon +lc Saint Lucia +li Liechtenstein +lk Sri Lanka +lr Liberia +ls Lesotho +lt Lithuania +lu Luxembourg +lv Latvia +ly Libyan Arab Jamahiriya +ma Morocco +mc Monaco +md Moldova Republic of +mg Madagascar +mh Marshall Islands +mk Macedonia Former Yugoslav Republic +ml Mali +mm Myanmar +mn Mongolia +mo Macau +mp Northern Mariana Islands +mq Martinique +mr Mauritania +ms Montserrat +mt Malta +mu Mauritius +mv Maldives +mw Malawi +mx Mexico +my Malaysia +mz Mozambique +na Namibia +nc New Caledonia +ne Niger +nf Norfolk Island +ng Nigeria +ni Nicaragua +nl Netherlands +no Norway +np Nepal +nr Nauru +nu Niue +nz New Zealand +om Oman +pa Panama +pe Peru +pf French Polynesia +pg Papua New Guinea +ph Philippines +pk Pakistan +pl Poland +pm St. Pierre and Miquelon +pn Pitcairn Island +pr Puerto Rico +ps Palestinian Territories +pt Portugal +pw Palau +py Paraguay +qa Qatar +re Reunion Island +ro Romania +ru Russian Federation +rw Rwanda +sa Saudi Arabia +sb Solomon Islands +sc Seychelles +sd Sudan +se Sweden +sg Singapore +sh St. Helena +si Slovenia +sj Svalbard and Jan Mayen Islands +sk Slovak Republic +sl Sierra Leone +sm San Marino +sn Senegal +so Somalia +sr Suriname +st Sao Tome and Principe +sv El Salvador +sy Syrian Arab Republic +sz Swaziland +tc Turks and Caicos Islands +td Chad +tf French Southern Territories +tg Togo +th Thailand +tj Tajikistan +tk Tokelau +tm Turkmenistan +tn Tunisia +to Tonga +tp East Timor +tr Turkey +tt Trinidad and Tobago +tv Tuvalu +tw Taiwan +tz Tanzania +ua Ukraine +ug Uganda +uk United Kingdom +um US Minor Outlying Islands +us United States +uy Uruguay +uz Uzbekistan +va Holy See (City Vatican State) +vc Saint Vincent and the Grenadines +ve Venezuela +vg Virgin Islands (British) +vi Virgin Islands (USA) +vn Vietnam +vu Vanuatu +wf Wallis and Futuna Islands +ws Western Samoa +ye Yemen +yt Mayotte +yu Yugoslavia +za South Africa +zm Zambia +zw Zimbabwe +# these are my own inventions +com commercial +net network +org organisation +edu educational +mil military +gov government +aero air-transport +biz business +coop cooperative +info informative +museum museum +name individual +pro profession +'; + +foreach my $line (split(/\n/, $countryfile)) { + chomp $line; + next if ($line =~ /^#/ || $line eq ""); + + my ($code, $name) = split(/\t/, $line); + $countries{$code} = $name; +} |