Click here to Skip to main content
15,884,986 members
Please Sign up or sign in to vote.
1.00/5 (1 vote)
See more:
I have imported yahoo contacts in my asp.net application.
But while importing yahoo contacts i get like;

sans-serif;*font-size:small;*font:x-small;}

How could i solve it?
My code is:
in YahooExtract.cs

public class YahooExtract: IMailContactExtract
{

private const string _addressBookUrl = "http://address.yahoo.com/yab/us/Yahoo_ab.csv?loc=us&.rand=1671497644&A=H&Yahoo_ab.csv";
private const string _authUrl = "https://login.yahoo.com/config/login?";
private const string _loginPage = "https://login.yahoo.com/config/login";
private const string _userAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3";

string name;
string email;
//#region IMailContactExtract Members

public string Extract(string username, string password)
{
bool result = false;

//list = new MailContactList();

try
{
WebClient webClient = new WebClient();
webClient.Headers[ HttpRequestHeader.UserAgent ] = _userAgent;
webClient.Encoding = Encoding.UTF8;

byte[] firstResponse = webClient.DownloadData( _loginPage );
string firstRes = Encoding.UTF8.GetString( firstResponse );


NameValueCollection postToLogin = new NameValueCollection();
Regex regex = new Regex( "type=\"hidden\" name=\"(.*?)\" value=\"(.*?)\"", RegexOptions.IgnoreCase );
Match match = regex.Match( firstRes );
while ( match.Success )
{
if ( match.Groups[ 0 ].Value.Length > 0 )
{
postToLogin.Add( match.Groups[ 1 ].Value, match.Groups[ 2 ].Value );
}
match = regex.Match( firstRes, match.Index + match.Length );
}


postToLogin.Add( ".save", "Sign In" );
postToLogin.Add( ".persistent", "y" );

//string login = credential.UserName.Split( '@' )[ 0 ];
//postToLogin.Add( "login", login );
//postToLogin.Add( "passwd", credential.Password );

postToLogin.Add("login", username);
postToLogin.Add( "passwd", password );


webClient.Headers[ HttpRequestHeader.UserAgent ] = _userAgent;
webClient.Headers[ HttpRequestHeader.Referer ] = _loginPage;
webClient.Encoding = Encoding.UTF8;
webClient.Headers[ HttpRequestHeader.Cookie ] = webClient.ResponseHeaders[ HttpResponseHeader.SetCookie ];

webClient.UploadValues( _authUrl, postToLogin );
string cookie = webClient.ResponseHeaders[ HttpResponseHeader.SetCookie ];

if ( string.IsNullOrEmpty( cookie ) )
{
//return false;
}

string newCookie = string.Empty;
string[] tmp1 = cookie.Split( ',' );
foreach ( string var in tmp1 )
{
string[] tmp2 = var.Split( ';' );
newCookie = String.IsNullOrEmpty( newCookie ) ? tmp2[ 0 ] : newCookie + ";" + tmp2[ 0 ];
}

// set login cookie
webClient.Headers[ HttpRequestHeader.Cookie ] = newCookie;
byte[] thirdResponse = webClient.DownloadData( _addressBookUrl );
string thirdRes = Encoding.UTF8.GetString( thirdResponse );

string crumb = string.Empty;
Regex regexCrumb = new Regex( "type=\"hidden\" name=\"\\.crumb\" id=\"crumb1\" value=\"(.*?)\"", RegexOptions.IgnoreCase );
match = regexCrumb.Match( thirdRes );
if ( match.Success && match.Groups[ 0 ].Value.Length > 0 )
{
crumb = match.Groups[ 1 ].Value;
}


NameValueCollection postDataAB = new NameValueCollection();
postDataAB.Add( ".crumb", crumb );
postDataAB.Add( "vcp", "import_export" );
postDataAB.Add( "submit[action_export_yahoo]", "Export Now" );

webClient.Headers[ HttpRequestHeader.UserAgent ] = _userAgent;
webClient.Headers[ HttpRequestHeader.Referer ] = _addressBookUrl;

byte[] FourResponse = webClient.UploadValues( _addressBookUrl, postDataAB );
string csvData = Encoding.UTF8.GetString( FourResponse );

string[] lines = csvData.Split( '\n' );
foreach ( string line in lines )
{
string[] items = line.Split( ',' );
if ( items.Length < 5 )
{
continue;
}
email = items[ 4 ];
name = items[ 3 ];
if ( !string.IsNullOrEmpty( email ) && !string.IsNullOrEmpty( name ) )
{
email = email.Trim( '\"' );
name = name.Trim( '\"' );
if ( !email.Equals( "Email" ) && !name.Equals( "Nickname" ) )
{
MailContact mailContact = new MailContact();
mailContact.Name = name;
mailContact.Email = email;
//list.Add( mailContact );
}
}
}

result = true;
//return result;
}
catch
{
}
//return list;
//return name;
return email;
}


}

//In IMailContactExtract.cs
public interface IMailContactExtract
{
string Extract(string username, string password);
}

//In MailContact.cs
public class MailContact
{
private string _email = string.Empty;
private string _name = string.Empty;

public string Name
{
get { return _name; }
set { _name = value; }
}

public string Email
{
get { return _email; }
set { _email = value; }
}
}

//In Default.aspx.cs
protected void LnkBtnAtGetContacts_Click(object sender, EventArgs e)
{
//MailContactList list = null;

YahooExtract extractor = new YahooExtract();
// bool res = extractor.Extract(new NetworkCredential(TxtATUsername.Text.ToString(),TxtATPassword.Text.ToString()), out list);
//Console.WriteLine(res ? "Succeeded" : "Failed");
string email= extractor.Extract(TxtATUsername.Text.ToString(),TxtATPassword.Text.ToString());
Response.Write(email);

}
Posted
Updated 20-Feb-13 16:53pm
v2
Comments
Sandeep Mewara 20-Feb-13 8:05am    
How do you expect someone to suggest you why so without seeing what you have done to get it?

My suggestion, edit/update the question using 'Improve question' and add the related code snippet.
ZurdoDev 20-Feb-13 10:26am    
You'll have to provide the code snippet. Are you using the yahoo api or a manual hack?
Michael Haephrati 20-Feb-13 15:30pm    
My guess is that you didn't export the contact properly from Yahoo. You should expert the contacts as CSV (comma separated).

1 solution

My guess is that you didn't export the contact properly from Yahoo. You should expert the contacts as CSV (comma separated).
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900