summaryrefslogtreecommitdiffstats
path: root/scripts/country.pl
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/country.pl')
-rw-r--r--scripts/country.pl325
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;
+}