Skip to content
This repository has been archived by the owner on Oct 15, 2022. It is now read-only.

Commit

Permalink
Added new and improved country codes.
Browse files Browse the repository at this point in the history
  • Loading branch information
Jag Talon committed Sep 27, 2012
1 parent 5a8d77a commit dd063ac
Showing 1 changed file with 305 additions and 0 deletions.
305 changes: 305 additions & 0 deletions lib/DDG/Goodie/CountryCodes.pm
Original file line number Diff line number Diff line change
@@ -0,0 +1,305 @@
package DDG::Goodie::CountryCodes;
# ABSTRACT: Displays country based on the area code.

use DDG::Goodie;

my %data = (
"Abkhazia" => ["+7840", "+7940"],
"Afghanistan" => ["+93"],
"Åland Islands" => ["+358"],
"Albania" => ["+355"],
"Algeria" => ["+213"],
"American Samoa" => ["+1684"],
"Andorra" => ["+376"],
"Angola" => ["+244"],
"Anguilla" => ["+1264"],
"Antigua and Barbuda" => ["+1268"],
"Argentina" => ["+54"],
"Armenia" => ["+374"],
"Aruba" => ["+297"],
"Ascension" => ["+247"],
"Australia" => ["+61"],
"Australian External Territories" => ["+672"],
"Austria" => ["+43"],
"Azerbaijan" => ["+994"],
"Bahamas" => ["+1242"],
"Bahrain" => ["+973"],
"Bangladesh" => ["+880"],
"Barbados" => ["+1246"],
"Barbuda" => ["+1268"],
"Belarus" => ["+375"],
"Belgium" => ["+32"],
"Belize" => ["+501"],
"Benin" => ["+229"],
"Bermuda" => ["+1441"],
"Bhutan" => ["+975"],
"Bolivia" => ["+591"],
"Bonaire" => ["+5997"],
"Bosnia and Herzegovina" => ["+387"],
"Botswana" => ["+267"],
"Brazil" => ["+55"],
"British Indian Ocean Territory" => ["+246"],
"British Virgin Islands" => ["+1284"],
"Brunei Darussalam" => ["+673"],
"Bulgaria" => ["+359"],
"Burkina Faso" => ["+226"],
"Burma" => ["+95"],
"Burundi" => ["+257"],
"Cambodia" => ["+855"],
"Cameroon" => ["+237"],
"Canada" => ["+1"],
"Cape Verde" => ["+238"],
"Caribbean Netherlands" => ["+5993", "+5994", "+5997"],
"Cayman Islands" => ["+1345"],
"Central African Republic" => ["+236"],
"Chad" => ["+235"],
"Chatham Island, New Zealand" => ["+64"],
"Chile" => ["+56"],
"China" => ["+86"],
"Christmas Island" => ["+61"],
"Cocos (Keeling) Islands" => ["+61"],
"Colombia" => ["+57"],
"Comoros" => ["+269"],
"Congo" => ["+242"],
"Congo, Democratic Republic of the (Zaire)" => ["+243"],
"Cook Islands" => ["+682"],
"Costa Rica" => ["+506"],
"Côte d'Ivoire" => ["+225"],
"Croatia" => ["+385"],
"Cuba" => ["+53"],
"Guantanamo Bay, Cuba" => ["+5399"],
"Curaçao" => ["+5999"],
"Cyprus" => ["+357"],
"Czech Republic" => ["+420"],
"Denmark" => ["+45"],
"Diego Garcia" => ["+246"],
"Djibouti" => ["+253"],
"Dominica" => ["+1767"],
"Dominican Republic" => ["+1809", "+1829", "+1849"],
"East Timor" => ["+670"],
"Easter Island" => ["+56"],
"Ecuador" => ["+593"],
"Egypt" => ["+20"],
"El Salvador" => ["+503"],
"Ellipso (Mobile Satellite service)" => ["+8812", "+8813"],
"EMSAT (Mobile Satellite service)" => ["+88213"],
"Equatorial Guinea" => ["+240"],
"Eritrea" => ["+291"],
"Estonia" => ["+372"],
"Ethiopia" => ["+251"],
"Falkland Islands" => ["+500"],
"Faroe Islands" => ["+298"],
"Fiji" => ["+679"],
"Finland" => ["+358"],
"France" => ["+33"],
"French Antilles" => ["+596"],
"French Guiana" => ["+594"],
"French Polynesia" => ["+689"],
"Gabon" => ["+241"],
"Gambia" => ["+220"],
"Georgia" => ["+995"],
"Germany" => ["+49"],
"Ghana" => ["+233"],
"Gibraltar" => ["+350"],
"Global Mobile Satellite System (GMSS)" => ["+881"],
"Globalstar (Mobile Satellite Service)" => ["+8818", "+8819"],
"Greece" => ["+30"],
"Greenland" => ["+299"],
"Grenada" => ["+1473"],
"Guadeloupe" => ["+590"],
"Guam" => ["+1671"],
"Guatemala" => ["+502"],
"Guernsey" => ["+44"],
"Guinea" => ["+224"],
"Guinea-Bissau" => ["+245"],
"Guyana" => ["+592"],
"Haiti" => ["+509"],
"Honduras" => ["+504"],
"Hong Kong" => ["+852"],
"Hungary" => ["+36"],
"Iceland" => ["+354"],
"ICO Global (Mobile Satellite Service)" => ["+8810", "+8811"],
"India" => ["+91"],
"Indonesia" => ["+62"],
"Inmarsat SNAC" => ["+870"],
"International Freephone Service" => ["+800"],
"International Shared Cost Service (ISCS)" => ["+808"],
"Iran" => ["+98"],
"Iraq" => ["+964"],
"Ireland" => ["+353"],
"Iridium (Mobile Satellite service)" => ["+8816", "+8817"],
"Isle of Man" => ["+44"],
"Israel" => ["+972"],
"Italy" => ["+39"],
"Jamaica" => ["+1876"],
"Jan Mayen" => ["+4779"],
"Japan" => ["+81"],
"Jersey" => ["+44"],
"Jordan" => ["+962"],
"Kazakhstan" => ["+76", "+77"],
"Kenya" => ["+254"],
"Kiribati" => ["+686"],
"Korea, North" => ["+850"],
"Korea, South" => ["+82"],
"Kuwait" => ["+965"],
"Kyrgyzstan" => ["+996"],
"Laos" => ["+856"],
"Latvia" => ["+371"],
"Lebanon" => ["+961"],
"Lesotho" => ["+266"],
"Liberia" => ["+231"],
"Libya" => ["+218"],
"Liechtenstein" => ["+423"],
"Lithuania" => ["+370"],
"Luxembourg" => ["+352"],
"Macau" => ["+853"],
"Macedonia" => ["+389"],
"Madagascar" => ["+261"],
"Malawi" => ["+265"],
"Malaysia" => ["+60"],
"Maldives" => ["+960"],
"Mali" => ["+223"],
"Malta" => ["+356"],
"Marshall Islands" => ["+692"],
"Martinique" => ["+596"],
"Mauritania" => ["+222"],
"Mauritius" => ["+230"],
"Mayotte" => ["+262"],
"Mexico" => ["+52"],
"Micronesia, Federated States of" => ["+691"],
"Midway Island, USA" => ["+1808"],
"Moldova" => ["+373"],
"Monaco" => ["+377"],
"Mongolia" => ["+976"],
"Montenegro" => ["+382"],
"Montserrat" => ["+1664"],
"Morocco" => ["+212"],
"Mozambique" => ["+258"],
"Namibia" => ["+264"],
"Nauru" => ["+674"],
"Nepal" => ["+977"],
"Netherlands" => ["+31"],
"Nevis" => ["+1869"],
"New Caledonia" => ["+687"],
"New Zealand" => ["+64"],
"Nicaragua" => ["+505"],
"Niger" => ["+227"],
"Nigeria" => ["+234"],
"Niue" => ["+683"],
"Norfolk Island" => ["+672"],
"Northern Mariana Islands" => ["+1670"],
"Norway" => ["+47"],
"Oman" => ["+968"],
"Pakistan" => ["+92"],
"Palau" => ["+680"],
"Palestinian territories" => ["+970"],
"Panama" => ["+507"],
"Papua New Guinea" => ["+675"],
"Paraguay" => ["+595"],
"Peru" => ["+51"],
"Philippines" => ["+63"],
"Pitcairn Islands" => ["+64"],
"Poland" => ["+48"],
"Portugal" => ["+351"],
"Puerto Rico" => ["+1787", "+1939"],
"Qatar" => ["+974"],
"Réunion" => ["+262"],
"Romania" => ["+40"],
"Russia" => ["+7"],
"Rwanda" => ["+250"],
"Saba" => ["+5994"],
"Saint Barthélemy" => ["+590"],
"Saint Helena" => ["+290"],
"Saint Kitts and Nevis" => ["+1869"],
"Saint Lucia" => ["+1758"],
"Saint Martin (France)" => ["+590"],
"Saint Pierre and Miquelon" => ["+508"],
"Saint Vincent and the Grenadines" => ["+1784"],
"Samoa" => ["+685"],
"San Marino" => ["+378"],
"São Tomé and Príncipe" => ["+239"],
"Saudi Arabia" => ["+966"],
"Senegal" => ["+221"],
"Serbia" => ["+381"],
"Seychelles" => ["+248"],
"Sierra Leone" => ["+232"],
"Singapore" => ["+65"],
"Sint Eustatius" => ["+5993"],
"Sint Maarten (Netherlands)" => ["+1721"],
"Slovakia" => ["+421"],
"Slovenia" => ["+386"],
"Solomon Islands" => ["+677"],
"Somalia" => ["+252"],
"South Africa" => ["+27"],
"South Georgia and the South Sandwich Islands" => ["+500"],
"South Ossetia" => ["+99534"],
"South Sudan" => ["+211"],
"Spain" => ["+34"],
"Sri Lanka" => ["+94"],
"Sudan" => ["+249"],
"Suriname" => ["+597"],
"Svalbard" => ["+4779"],
"Swaziland" => ["+268"],
"Sweden" => ["+46"],
"Switzerland" => ["+41"],
"Syria" => ["+963"],
"Taiwan" => ["+886"],
"Tajikistan" => ["+992"],
"Tanzania" => ["+255"],
"Thailand" => ["+66"],
"Thuraya (Mobile Satellite service)" => ["+88216"],
"Togo" => ["+228"],
"Tokelau" => ["+690"],
"Tonga" => ["+676"],
"Trinidad and Tobago" => ["+1868"],
"Tristan da Cunha" => ["+2908"],
"Tunisia" => ["+216"],
"Turkey" => ["+90"],
"Turkmenistan" => ["+993"],
"Turks and Caicos Islands" => ["+1649"],
"Tuvalu" => ["+688"],
"Uganda" => ["+256"],
"Ukraine" => ["+380"],
"United Arab Emirates" => ["+971"],
"United Kingdom" => ["+44"],
"United States" => ["+1"],
"Universal Personal Telecommunications (UPT)" => ["+878"],
"Uruguay" => ["+598"],
"US Virgin Islands" => ["+1340"],
"Uzbekistan" => ["+998"],
"Vanuatu" => ["+678"],
"Venezuela" => ["+58"],
"Vatican City State (Holy See)" => ["+39066", "+379"],
"Vietnam" => ["+84"],
"Wake Island, USA" => ["+1808"],
"Wallis and Futuna" => ["+681"],
"Yemen" => ["+967"],
"Zambia" => ["+260"],
"Zanzibar" => ["+255"],
"Zimbabwe" => ["+263"],
);

#Matches +1 234 or +1-234 or +1 (234) or +1(234) or +1234
triggers query_lc => qr/\(?\+[0-9]+((\s*|\-*)\(?[0-9]+\)?)*\)?/;

zci is_cached => 1;

handle query_nowhitespace_nodash => sub {
s/\(|\)//g;
my @countries;
my $query = $_;
while(my ($country, $number) = each %data) {
foreach (@$number) {
if($_ eq $query) {
push @countries, $country;
}
}

}
if(@countries > 0) {
return "Countries with that area code: " . join(", ", @countries);
}
return;
};

1;

0 comments on commit dd063ac

Please sign in to comment.