forked from rquiroz/WhatsAPINet
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #47 from shirioko/master
Latest updates
- Loading branch information
Showing
23 changed files
with
1,205 additions
and
95 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,61 @@ | ||
using System; | ||
using System.Collections.Generic; | ||
using System.IO; | ||
using System.Linq; | ||
using System.Reflection; | ||
using System.Text; | ||
|
||
namespace WhatsAppApi.Parser | ||
{ | ||
public class PhoneNumber | ||
{ | ||
public string Country; | ||
public string CC; | ||
public string Number; | ||
public string FullNumber | ||
{ | ||
get | ||
{ | ||
return this.CC + this.Number; | ||
} | ||
} | ||
public string ISO3166; | ||
public string ISO639; | ||
public string MCC; | ||
|
||
public PhoneNumber(string number) | ||
{ | ||
using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("WhatsAppApi.Parser.countries.csv")) | ||
{ | ||
using (var reader = new StreamReader(stream)) | ||
{ | ||
string csv = reader.ReadToEnd(); | ||
string[] lines = csv.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries); | ||
foreach (string line in lines) | ||
{ | ||
string[] values = line.Split(new char[] { ',' }); | ||
//try to match | ||
if (number.StartsWith(values[1])) | ||
{ | ||
//matched | ||
this.Country = values[0].Trim(new char[] { '"' }); | ||
//hook: Fix CC for North America | ||
if (values[1].StartsWith("1")) | ||
{ | ||
values[1] = "1"; | ||
} | ||
this.CC = values[1]; | ||
this.Number = number.Substring(this.CC.Length); | ||
this.ISO3166 = values[3].Trim(new char[] { '"' }); | ||
this.ISO639 = values[4].Trim(new char[] { '"' }); | ||
this.MCC = values[2]; | ||
return; | ||
} | ||
} | ||
//could not match! | ||
throw new Exception(String.Format("Could not dissect phone number {0}", number)); | ||
} | ||
} | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,254 @@ | ||
"Afghanistan",93,412,"AF","ps" | ||
"Albania",355,276,"AL","sq" | ||
"Alberta",1403,302,"CA","en" | ||
"Alberta",1780,302,"CA","en" | ||
"Algeria",213,603,"DZ","ar" | ||
"Andorra",376,213,"AD","ca" | ||
"Angola",244,631,"AO","pt" | ||
"Anguilla",1264,"365","AI","en" | ||
"Antarctica (Australian bases)",6721,232,"AQ","en" | ||
"Antigua and Barbuda",1268,"344","AG","en" | ||
"Argentina",54,722,"AR","es" | ||
"Armenia",374,283,"AM","hy" | ||
"Aruba",297,363,"AW","nl" | ||
"Ascension",247,658,"AC","en" | ||
"Australia",61,505,"AU","en" | ||
"Austria",43,232,"AT","de" | ||
"Azerbaijan",994,400,"AZ","az" | ||
"Bahamas",1242,"364","BS","en" | ||
"Bahrain",973,426,"BH","ar" | ||
"Bangladesh",880,470,"BD","bn" | ||
"Barbados",1246,"342","BB","en" | ||
"Belarus",375,257,"BY","be" | ||
"Belgium",32,206,"BE","nl" | ||
"Belize",501,702,"BZ","es" | ||
"Benin",229,616,"BJ","fr" | ||
"Bermuda",1441,"350","BM","en" | ||
"Bhutan",975,402,"BT","dz" | ||
"Bolivia",591,736,"BO","es" | ||
"Bosnia and Herzegovina",387,218,"BA","bs" | ||
"Botswana",267,652,"BW","en" | ||
"Brazil",55,724,"BR","pt" | ||
"British Columbia", 1250,302,"CA","en" | ||
"British Columbia", 1604,302,"CA","en" | ||
"British Columbia", 1778,302,"CA","en" | ||
"British Indian Ocean Territory",246,348,"IO","en" | ||
"British Virgin Islands",1284,"348","GB","en" | ||
"Brunei",673,528,"BN","ms" | ||
"Bulgaria",359,284,"BG","bg" | ||
"Burkina Faso",226,613,"BF","fr" | ||
"Burundi",257,642,"BI","rn" | ||
"Cambodia",855,456,"KH","km" | ||
"Cameroon",237,624,"CM","fr" | ||
"Cape Verde",238,625,"CV","pt" | ||
"Cayman Islands",1345,"346","GB","en" | ||
"Central African Republic",236,623,"CF","sg" | ||
"Chad",235,622,"TD","fr" | ||
"Chile",56,730,"CL","es" | ||
"China",86,"460|461","CN","en" | ||
"Colombia",57,732,"CO","es" | ||
"Comoros",269,654,"KM","fr" | ||
"Democratic Republic of the Congo",243,630,"CD","fr" | ||
"Republic of the Congo",242,629,"CG","fr" | ||
"Cook Islands",682,548,"CK","en" | ||
"Costa Rica",506,658,"CR","es" | ||
"Cote d'Ivoire",712,"612","CI","fr" | ||
"Croatia",385,219,"HR","hr" | ||
"Cuba",53,368,"CU","es" | ||
"Cyprus",357,280,"CY","el" | ||
"Czech Republic",420,230,"CZ","cs" | ||
"Denmark",45,238,"DK","da" | ||
"Djibouti",253,638,"DJ","fr" | ||
"Dominica",1767,"366","DM","en" | ||
"Dominican Republic",1809,"370","DO","es" | ||
"Dominican Republic",1829,"370","DO","en" | ||
"East Timor",670,514,"TL","pt" | ||
"Ecuador",593,740,"EC","es" | ||
"Egypt",20,602,"EG","ar" | ||
"El Salvador",503,706,"SV","es" | ||
"Equatorial Guinea",240,627,"GQ","es" | ||
"Eritrea",291,657,"ER","ti" | ||
"Estonia",372,248,"EE","et" | ||
"Ethiopia",251,636,"ET","am" | ||
"Falkland Islands",500,750,"FK","en" | ||
"Faroe Islands",298,288,"FO","fo" | ||
"Fiji",679,542,"FJ","en" | ||
"Finland",358,244,"FI","fi" | ||
"France",33,208,"FR","fr" | ||
"French Guiana",594,742,"GF","fr" | ||
"French Polynesia",689,547,"PF","fr" | ||
"Gabon",241,628,"GA","fr" | ||
"Gambia",220,607,"GM","en" | ||
"Gaza Strip",970,0,"PS","ar" | ||
"Georgia",995,282,"GE","ka" | ||
"Germany",49,262,"DE","de" | ||
"Ghana",233,620,"GH","ak" | ||
"Gibraltar",350,266,"GI","en" | ||
"Greece",30,202,"GR","el" | ||
"Greenland",299,290,"GL","kl" | ||
"Grenada",1473,"352","GD","en" | ||
"Guadeloupe",590,340,"GP","fr" | ||
"Guam",1671,"535","GU","en" | ||
"Guatemala",502,704,"GT","es" | ||
"Guinea",224,611,"GN","fr" | ||
"Guinea-Bissau",245,632,"GW","pt" | ||
"Guyana",592,738,"GY","pt" | ||
"Haiti",509,372,"HT","fr" | ||
"Honduras",504,708,"HN","es" | ||
"Hong Kong",852,454,"HK","zh" | ||
"Hungary",36,216,"HU","hu" | ||
"Iceland",354,274,"IS","is" | ||
"India",91,"404|405|406","IN","hi" | ||
"Indonesia",62,510,"ID","id" | ||
"Iraq",964,418,"IQ","ar" | ||
"Iran",98,432,"IR","fa" | ||
"Ireland (Eire)",353,272,"IE","en" | ||
"Israel",972,425,"IL","he" | ||
"Italy",39,222,"IT","it" | ||
"Jamaica",1876,"338","JM","en" | ||
"Japan",81,"440|441","JP","ja" | ||
"Jordan",962,416,"JO","ar" | ||
"Kazakhstan",7,401,"KZ","kk" | ||
"Kenya",254,639,"KE","sw" | ||
"Kiribati",686,545,"KI","en" | ||
"Kuwait",965,419,"KW","ar" | ||
"Kyrgyzstan",996,437,"KG","ky" | ||
"Laos",856,457,"LA","lo" | ||
"Latvia",371,247,"LV","lv" | ||
"Lebanon",961,415,"LB","ar" | ||
"Lesotho",266,651,"LS","st" | ||
"Liberia",231,618,"LR","en" | ||
"Libya",218,606,"LY","ar" | ||
"Liechtenstein",423,295,"LI","de" | ||
"Lithuania",370,246,"LT","lt" | ||
"Luxembourg",352,270,"LU","fr" | ||
"Macau",853,455,"MO","pt" | ||
"Republic of Macedonia",389,294,"MK","mk" | ||
"Madagascar",261,646,"MG","mg" | ||
"Malawi",265,650,"MW","ny" | ||
"Malaysia",60,502,"MY","en" | ||
"Maldives",960,472,"MV","dv" | ||
"Mali",223,610,"ML","fr" | ||
"Malta",356,278,"MT","mt" | ||
"Manitoba",1204,302,"CA","en" | ||
"Marshall Islands",692,551,"MH","mh" | ||
"Martinique",596,340,"MQ","fr" | ||
"Mauritania",222,609,"MR","ar" | ||
"Mauritius",230,617,"MU","en" | ||
"Mayotte",262,654,"YT","fr" | ||
"Mexico",52,334,"MX","es" | ||
"Federated States of Micronesia",691,550,"FM","en" | ||
"Moldova",373,259,"MD","ru" | ||
"Monaco",377,212,"MC","fr" | ||
"Mongolia",976,428,"MN","mn" | ||
"Montenegro",382,297,"ME","sr" | ||
"Montserrat",1664,"354",MS,"en" | ||
"Morocco",212,"604","MA","ar" | ||
"Mozambique",258,643,"MZ","pt" | ||
"Myanmar",95,414,"MM","my" | ||
"Namibia",264,649,"NA","en" | ||
"Nauru",674,536,"NR","na" | ||
"Netherlands",31,204,"NL","nl" | ||
"Netherlands Antilles",599,362,"AN","nl" | ||
"Nepal",977,429,"NP","ne" | ||
"New Brunswick",1506,302,"CA","en" | ||
"New Caledonia",687,546,"NC","fr" | ||
"New Zealand",64,530,"NZ","en" | ||
"Newfoundland",1709,302,"CA","en" | ||
"Nicaragua",505,710,"NI","es" | ||
"Niger",227,614,"NE","fr" | ||
"Nigeria",234,621,"NG","ha" | ||
"Niue",683,555,"NU","en" | ||
"Norfolk Island",6723,505,"NF","en" | ||
"North Korea",850,467,"KP","ko" | ||
"Northern Mariana Islands",1670,"534","MP","en" | ||
"Northwest Territories",1867,302,"CA","en" | ||
"Norway",47,242,"NO","nb" | ||
"Nova Scotia",1902,302,"CA","en" | ||
"Oman",968,422,"OM","ar" | ||
"Ontario",1416,302,"CA","en" | ||
"Ontario",1519,302,"CA","en" | ||
"Ontario",1613,302,"CA","en" | ||
"Ontario",1647,302,"CA","en" | ||
"Ontario",1705,302,"CA","en" | ||
"Ontario",1807,302,"CA","en" | ||
"Ontario",1905,302,"CA","en" | ||
"Pakistan",92,410,"PK","en" | ||
"Palau",680,552,"PW","en" | ||
"Palestine",970,425,"PS","ar" | ||
"Panama",507,714,"PA","es" | ||
"Papua New Guinea",675,537,"PG","ho" | ||
"Paraguay",595,744,"PY","es" | ||
"Peru",51,716,"PE","es" | ||
"Philippines",63,515,"PH","fil" | ||
"Poland",48,260,"PL","pl" | ||
"Portugal",351,268,"PT","pt" | ||
"Qatar",974,427,"QA","ar" | ||
"Quebec",1418,302,"CA","en" | ||
"Quebec",1450,302,"CA","en" | ||
"Quebec",1514,302,"CA","en" | ||
"Quebec",1819,302,"CA","en" | ||
"Reunion",262,647,"RE","fr" | ||
"Romania",40,226,"RO","ro" | ||
"Russia",7,250,"RU","ru" | ||
"Rwanda",250,635,"RW","rw" | ||
"Saint-Barthelemy",590,340,"BL","fr" | ||
"Saint Helena",290,658,"SH","en" | ||
"Saint Kitts and Nevis",1869,"356","KN","en" | ||
"Saint Lucia",1758,"358","LC","en" | ||
"Saint Martin (French side)",590,340, "MF","fr" | ||
"Saint Pierre and Miquelon",508,308,"PM","fr" | ||
"Saint Vincent and the Grenadines",1670,"360","VC","en" | ||
"Samoa",685,549,"WS","sm" | ||
"Sao Tome and Principe",239,626,"ST","pt" | ||
"Saskatchewan",1306,302,"CA","en" | ||
"Saudi Arabia",966,420,"SA","ar" | ||
"Senegal",221,608,"SN","wo" | ||
"Serbia",381,220,"RS","sr" | ||
"Seychelles",248,633,"SC","fr" | ||
"Sierra Leone",232,619,"SL","en" | ||
"Singapore",65,525,"SG","en" | ||
"Slovakia",421,231,"SK","sk" | ||
"Slovenia",386,293,"SI","sl" | ||
"Solomon Islands",677,540,"SB","en" | ||
"Somalia",252,637,"SO","so" | ||
"South Africa",27,655,"ZA","xh" | ||
"South Korea",82,450,"KR","ko" | ||
"South Sudan",211,659,"SS","en" | ||
"Spain",34,214,"ES","es" | ||
"Sri Lanka",94,413,"LK","si" | ||
"Sudan",249,634,"SD","ar" | ||
"Suriname",597,746,"SR","nl" | ||
"Swaziland",268,653,"SZ","ss" | ||
"Sweden",46,240,"SE","sv" | ||
"Switzerland",41,228,"CH","de" | ||
"Syria",963,417,"SY","ar" | ||
"Taiwan",886,466,"TW","cmn" | ||
"Tajikistan",992,436,"TJ","tg" | ||
"Tanzania",255,640,"TZ","sw" | ||
"Thailand",66,520,"TH","th" | ||
"Togo",228,615,"TG","fr" | ||
"Tokelau",690,690,"TK","tkl" | ||
"Tonga",676,539,"TO","to" | ||
"Trinidad and Tobago",1868,"374","TT","en" | ||
"Tunisia",216,605,"TN","ar" | ||
"Turkey",90,286,"TR","tr" | ||
"Turkmenistan",993,438,"TM","tk" | ||
"Turks and Caicos Islands",1649,"376","TC","en" | ||
"Tuvalu",688,553,"TV","tvl" | ||
"Uganda",256,641,"UG","sw" | ||
"Ukraine",380,255,"UA","uk" | ||
"United Arab Emirates",971,"424|430|431","AE","ar" | ||
"United Kingdom",44,"234|235","GB","en" | ||
"United States of America",1,"310|311|312|313|314|315|316","US","en" | ||
"Uruguay",598,748,"UY","es" | ||
"Uzbekistan",998,434,"UZ","uz" | ||
"Vanuatu",678,541,"VU","bi" | ||
"Venezuela",58,734,"VE","es" | ||
"Vietnam",84,452,"VN","vi" | ||
"U.S. Virgin Islands",1340,"332","VI","en" | ||
"Wallis and Futuna",681,543,"WF","fr" | ||
"West Bank",970,0,"PS","ar" | ||
"Yemen",967,421,"YE","ar" | ||
"Zambia",260,645,"ZM","en" | ||
"Zimbabwe",263,648,"ZW","en" |
Oops, something went wrong.