blackbook 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (56) hide show
  1. data/History.txt +18 -0
  2. data/Manifest.txt +55 -0
  3. data/README.txt +71 -0
  4. data/Rakefile +38 -0
  5. data/init.rb +1 -0
  6. data/lib/blackbook.rb +80 -0
  7. data/lib/blackbook/exporter/base.rb +16 -0
  8. data/lib/blackbook/exporter/vcf.rb +45 -0
  9. data/lib/blackbook/exporter/xml.rb +28 -0
  10. data/lib/blackbook/importer/aol.rb +74 -0
  11. data/lib/blackbook/importer/base.rb +39 -0
  12. data/lib/blackbook/importer/csv.rb +61 -0
  13. data/lib/blackbook/importer/gmail.rb +59 -0
  14. data/lib/blackbook/importer/hotmail.rb +125 -0
  15. data/lib/blackbook/importer/page_scraper.rb +86 -0
  16. data/lib/blackbook/importer/yahoo.rb +61 -0
  17. data/test/fixtures/aol_bad_login_response_stage_3.html +565 -0
  18. data/test/fixtures/aol_contacts.html +90 -0
  19. data/test/fixtures/aol_login_response_stage_1.html +158 -0
  20. data/test/fixtures/aol_login_response_stage_2.html +559 -0
  21. data/test/fixtures/aol_login_response_stage_3.html +61 -0
  22. data/test/fixtures/aol_login_response_stage_4.html +48 -0
  23. data/test/fixtures/aol_login_response_stage_5.html +404 -0
  24. data/test/fixtures/gmail.csv +3 -0
  25. data/test/fixtures/gmail_bad_login_response_stage_2.html +560 -0
  26. data/test/fixtures/gmail_contacts.html +228 -0
  27. data/test/fixtures/gmail_login_response_stage_1.html +556 -0
  28. data/test/fixtures/gmail_login_response_stage_2.html +1 -0
  29. data/test/fixtures/gmail_login_response_stage_3.html +249 -0
  30. data/test/fixtures/hotmail_bad_login_response_stage_2.html +31 -0
  31. data/test/fixtures/hotmail_contacts.html +132 -0
  32. data/test/fixtures/hotmail_login_response_stage_1.html +31 -0
  33. data/test/fixtures/hotmail_login_response_stage_2.html +1 -0
  34. data/test/fixtures/hotmail_login_response_stage_3.html +380 -0
  35. data/test/fixtures/yahoo_bad_login_response_stage_2.html +443 -0
  36. data/test/fixtures/yahoo_contacts.csv +3 -0
  37. data/test/fixtures/yahoo_contacts_not_logged_in.html +432 -0
  38. data/test/fixtures/yahoo_contacts_stage_1.html +399 -0
  39. data/test/fixtures/yahoo_login_response_stage_1.html +433 -0
  40. data/test/fixtures/yahoo_login_response_stage_2.html +16 -0
  41. data/test/scripts/live_test.rb +25 -0
  42. data/test/test_blackbook.rb +60 -0
  43. data/test/test_blackbook_exporter_base.rb +16 -0
  44. data/test/test_blackbook_exporter_vcf.rb +52 -0
  45. data/test/test_blackbook_exporter_xml.rb +16 -0
  46. data/test/test_blackbook_importer_aol.rb +107 -0
  47. data/test/test_blackbook_importer_base.rb +24 -0
  48. data/test/test_blackbook_importer_csv.rb +60 -0
  49. data/test/test_blackbook_importer_gmail.rb +96 -0
  50. data/test/test_blackbook_importer_hotmail.rb +143 -0
  51. data/test/test_blackbook_importer_page_scraper.rb +51 -0
  52. data/test/test_blackbook_importer_yahoo.rb +97 -0
  53. data/test/test_helper.rb +47 -0
  54. data/vendor/plugins/blackbook/lib/autotest/blackbook.rb +27 -0
  55. data/vendor/plugins/blackbook/lib/autotest/discover.rb +3 -0
  56. metadata +147 -0
@@ -0,0 +1,3 @@
1
+ "First","Middle","Last","Nickname","Email","Category","Distribution Lists","Messenger ID","Home","Work","Pager","Fax","Mobile","Other","Yahoo! Phone","Primary","Alternate Email 1","Alternate Email 2","Personal Website","Business Website","Title","Company","Work Address","Work City","Work State","Work ZIP","Work Country","Home Address","Home City","Home State","Home ZIP","Home Country","Birthday","Anniversary","Custom 1","Custom 2","Custom 3","Custom 4","Comments","Messenger ID1","Messenger ID2","Messenger ID3","Messenger ID4","Messenger ID5","Messenger ID6","Messenger ID7","Messenger ID8","Messenger ID9","Skype ID","IRC ID","ICQ ID","Google ID","MSN ID","AIM ID","QQ ID"
2
+ "Joe","","User","","joe.user@example.com","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
3
+ "Jane","","User","","jane.user@example.com","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
@@ -0,0 +1,432 @@
1
+
2
+
3
+
4
+
5
+
6
+
7
+
8
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
9
+ <html>
10
+ <head>
11
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
12
+ <title>Sign in to Yahoo!</title>
13
+ <!-- Refresh login page every 15 minutes -->
14
+ <meta http-equiv="Pragma" content="no-cache">
15
+ <meta http-equiv="Expires" content="0">
16
+ <meta http-equiv="refresh" content="900">
17
+
18
+ <link rel="stylesheet" type="text/css" href="https://a248.e.akamai.net/sec.yimg.com/lib/common/css/fonts_2.0.0-b2.css">
19
+ <style type="text/css">
20
+
21
+
22
+
23
+ @import url(https://a248.e.akamai.net/sec.yimg.com/lib/reg/css/yregbase_sec_200704191234.css);
24
+ .ct{background:transparent url(https://a248.e.akamai.net/sec.yimg.com/i/reg/cr_gg_ne.gif) no-repeat top right;top:-1px}
25
+ .ct .cl{background:transparent url(https://a248.e.akamai.net/sec.yimg.com/i/reg/cr_gg_nw.gif) no-repeat top left}
26
+ .cb{background:transparent url(https://a248.e.akamai.net/sec.yimg.com/i/reg/cr_gg_se.gif) no-repeat bottom right;bottom:-1px}
27
+ .cb .cl{background:transparent url(https://login.yahoo.com/i/reg/cr_gg_sw.gif) no-repeat bottom left}
28
+ .clear{clear:both}
29
+ #yreglg select, #yreglg input, #yreglg p, #yreglgtb td, #yreglgtb th{font-size:93%}
30
+ div.yregdsilu h2.yregdnt, div.yregdsilu p.yregsueasy{width:110px}
31
+ /*popup template css */
32
+ #yregtpopup #yregtxt {width:260px;margin:0 0 10px} /* popup template */
33
+ #yregtpopup #yregwp, #yregtpopup #yregmst{width:525px}
34
+ #yregtpopup #yregmst{margin-bottom:5px}
35
+ #yregtpopup #yreglg{margin-bottom:0}
36
+ #yregtpopup #yregft{padding-top:5px}
37
+ /* adding login_verify popup css */
38
+ #yregtgen #yregct{margin-right:15px}
39
+ #yregtgen #yregtxt h2, #yregtpopup #yregtxt h2, #yregpmtxt h3{font:bold 152%/152% arial;color:#333;margin:0}
40
+ #yregtgen #yregtxt p.yregpti, #yregtpopup #yregtxt p.yregpti {color:#666;margin:0 0 2px;font:bold 100%/100% arial}
41
+ #yregtgen #yregtxt, #yregtpopup #yregtxt{margin-bottom:20px}
42
+ #yregtgen #yregtxt #yreghtxt h3, #yregtpopup #yregtxt #yreghtxt h3{margin:0;font:bold 107%/114% arial;color:#8C57A1}
43
+ #yregtgen #yregtxt li h3, #yregtpopup #yregtxt li h3{font:bold 114%/122% arial}
44
+ #yregtgen #yregtxt p, #yregtpopup #yregtxt p{margin:0 0 0.8em;line-height:129%}
45
+ #yregtgen #yregtxt .yregbpt li, #yregtpopup #yregtxt .yregbpt li{margin:0 0 10px 4px;padding:0 0 10px 22px;background:url(https://a248.e.akamai.net/sec.yimg.com/i/reg/purple_arrow.gif) no-repeat 1px 4px}
46
+ #yregtgen.yregab #yregtxt{width:380px}
47
+ #yregtpopup.yregab #yregtxt{width:180px}
48
+ #yregtgen #yregtxt #yreghtxt h2, #yregtpopup #yregtxt #yreghtxt h2{color:#7A067F}
49
+ .yregbx{z-index:3;margin-right:0!important}
50
+ .flicker h3 span {color:#ff0084;font-weight:bold}
51
+ .flicker h3 a {text-decoration:underline;}
52
+
53
+ /* persistency message right above "sign in" bottom */
54
+ em.nwred a {font-style: normal; font-size: 85%; color:#c00; vertical-align:5px;}
55
+ .kmsibold {font-weight:bold; font-size: 114%;}
56
+ p#sigcopys {text-align: left; font-size: 85%; float: right; padding: .4em; margin: .6em .4em 1em 0; border-bottom: 1px dotted #9D9C9D; border-top: 1px dotted #9D9C9D;}
57
+ #sigcopys label{display:block; margin:-1.5em 0 0 2em;}
58
+ input#persistent {margin-bottom: -0em;}
59
+ .subperstxt {line-height:1.75em;}
60
+ .subperstxt2 {margin: 0 0 0 2em; display:block;}
61
+ /* #yregft p.yregfb { font-size:120%; padding-bottom: 5px; padding-up: 5px} */
62
+
63
+ .yreglgsb{margin-top:0}
64
+ </style>
65
+
66
+
67
+
68
+ <!--[if IE]>
69
+ <style type="text/css">
70
+ .yregclb{height:1%}
71
+ #yreglgtb td{text-align:left}
72
+ #yreglgtb td input{width:110px}
73
+ #yregtxt #banner div{position:static} /* ie z-index context stacking bug work-around */
74
+ #yregtpopup #yregtxt{clear:both; float:left;}
75
+ #yregct{padding:0 0 30px}
76
+ </style>
77
+ <![endif]-->
78
+
79
+ <!--[if lte IE 6]>
80
+ <style type="text/css">
81
+ .yregclb{height:30em}
82
+ #yregtxt {height:1%}
83
+ p#sigcopys {margin-right:0.2em}
84
+ </style>
85
+ <![endif]-->
86
+
87
+ </head>
88
+ <!-- ads: 150001282 INT.OFFSET: 0 -->
89
+ <body id="yregtgen">
90
+
91
+ <div id="yregwp">
92
+ <!-- begin header -->
93
+ <table id="yregmst" width="750" cellpadding="0" cellspacing="0" border="0"><tr valign="top">
94
+ <td width="100%"><table width="100%" cellspacing="0" border="0"><tr valign="top">
95
+ <td width="1%"><img src="https://a248.e.akamai.net/sec.yimg.com/i/us/nt/ma/ma_ab_1.gif" alt="Yahoo! Address Book" width=318 height=33 border=0></a></td>
96
+ <td><table width="100%" cellpadding="0" cellspacing="0" border="0"><tr valign="top">
97
+ <td align="right" id="ygmaproplinks" style="padding-right:3px;line-height:12px;"><font face="verdana,geneva,sans-serif" size="-2"><a href="http://www.yahoo.com " target="www" class="header" title="Click here to go to Yahoo! homepage">Yahoo!</a> - <a href="http://help.yahoo.com/help/us/edit/" class="header" target="yhelp" title="Click here for help">Help</a></font></td>
98
+ </tr></table></td></tr></table></td>
99
+ <td align="right" style="padding: 6px 0 0 4px;">
100
+ </td></tr></table>
101
+
102
+
103
+ <!-- end header -->
104
+ <span id="cache"></span>
105
+
106
+
107
+ <script type="text/javascript">
108
+
109
+ function FlashDetector_Detect(targetVersion)
110
+ {
111
+ var pObj = null;
112
+ var tokens, len, curr_tok;
113
+ var hasVersion = -1;
114
+ var playable = false;
115
+ if(navigator.mimeTypes && navigator.mimeTypes['application/x-shockwave-flash'])
116
+ {
117
+ pObj = navigator.mimeTypes['application/x-shockwave-flash'].enabledPlugin;
118
+ }
119
+ if(pObj != null)
120
+ {
121
+ tokens = navigator.plugins['Shockwave Flash'].description.split(' ');
122
+ len = tokens.length;
123
+ while(len--)
124
+ {
125
+ curr_tok = tokens[len];
126
+ if(!isNaN(parseInt(curr_tok)))
127
+ {
128
+ hasVersion = curr_tok;
129
+ FlashDetector_Version = curr_tok;
130
+ break;
131
+ }
132
+ }
133
+ if(hasVersion >= targetVersion)
134
+ {
135
+ playable = true;
136
+ }
137
+ else
138
+ {
139
+ playable = false;
140
+ }
141
+ }
142
+ return playable;
143
+ }
144
+
145
+ var flashDetector_Playable = false;
146
+ var flashDetector_targetVersion = '8';
147
+
148
+ var isIE = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
149
+ var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
150
+ var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;
151
+
152
+ if (isIE && isWin && !isOpera) {
153
+ document.write('<scr' + 'ipt language="VBScript"\> \n');
154
+ document.write('on error resume next \n');
155
+ document.write('flashDetector_Playable = ( IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash." & flashDetector_targetVersion)))\n');
156
+ document.write('</scr' + 'ipt\> \n');
157
+ } else {
158
+ flashDetector_Playable = FlashDetector_Detect(flashDetector_targetVersion);
159
+ }
160
+
161
+ var flashCode = '';
162
+
163
+ if(flashDetector_Playable) {
164
+
165
+ var ts = (new Date()).getTime( );
166
+
167
+ flashCode = '<object type="application/x-shockwave-flash" data="https://login.yahoo.com/login/dataCache.swf" width="0" height="0" id="flashCache"> <param name="allowScriptAccess" value="sameDomain" /> <param name="movie" value="https://login.yahoo.com/login/dataCache.swf?' + ts + '" /> <param name="bgColor" value="#fff" /> </object> ';
168
+
169
+ }
170
+ document.write(flashCode);
171
+
172
+ </script>
173
+
174
+
175
+ <script language="JavaScript">
176
+
177
+ function checkBrowser(){
178
+ var appName = navigator.appName;
179
+ if( appName == "Microsoft Internet Explorer" )
180
+ {
181
+ // this only works in IE 5 for windows and higher ...
182
+ if( navigator.appVersion.indexOf("Windows") == -1 )
183
+ return -1;
184
+ var appVersionAry = navigator.appVersion.split("(");
185
+ if( appVersionAry.length < 2 )
186
+ return -1;
187
+ var appVersion = appVersionAry[1];
188
+ appVersionAry = appVersion.split("; ");
189
+ if( appVersionAry.length < 2 )
190
+ return -1;
191
+ appVersion = appVersionAry[1];
192
+ appVersionAry = appVersion.split(" ");
193
+ if( appVersionAry.length < 2 )
194
+ return -1;
195
+ appVersion = appVersionAry[1];
196
+ var appVersionNumber = parseInt(appVersion);
197
+
198
+ if( appVersionNumber < 5 )
199
+ return -1;
200
+ }
201
+ else
202
+ {
203
+ return -1;
204
+ }
205
+ }
206
+
207
+ </script>
208
+
209
+ <script language="JavaScript">
210
+
211
+ function flashCacheReady (initialized){ //invoked directly by Flash
212
+ getCache();
213
+
214
+ }
215
+ </script>
216
+
217
+
218
+ <script language="JavaScript">
219
+
220
+ var inCache = false;
221
+
222
+ // Get the info from flash
223
+ function getCache(){
224
+ var o={};
225
+ o=(document.getElementById("flashCache")).getCache(o);
226
+ if(o != null) inCache = true;
227
+ else return;
228
+
229
+ if(o.YL != 'null' && o.YL != null) {
230
+ document.cookie = o.YL + ";expires=Thu, 15 Apr 2037 20:00:00 GMT;domain=login.yahoo.com;path=/";
231
+ }
232
+
233
+ if(o.F != 'null' && o.F != null) {
234
+ document.cookie = o.F + ";expires=Thu, 15 Apr 2037 20:00:00 GMT;domain=.yahoo.com;path=/";
235
+ }
236
+
237
+ if(o.YLS != 'null' && o.YLS != null) {
238
+ if((o.YLS.match("n=0")) != null) {
239
+ o.YLS = o.YLS.replace("n=0", "n=9");
240
+ } else {
241
+ o.YLS = o.YLS.concat("&n=9");
242
+ }
243
+ document.cookie = o.YLS + ";expires=Thu, 15 Apr 2037 20:00:00 GMT;domain=.yahoo.com;path=/";
244
+ }
245
+
246
+ if(((o.YL != 'null') && (o.YL != null)) || ((o.F != 'null') && (o.F != null))) {
247
+ document.location.reload();
248
+ }
249
+ }
250
+
251
+ // If the browser is IE, get from the xml cache as well.
252
+
253
+ if((checkBrowser() != -1) && (inCache == false)) {
254
+ function getXML(cookieName,header,spanName)
255
+ {
256
+ var span = document.getElementById("cache");
257
+ span.style.behavior = "url('#default#userData')";
258
+ span.load(spanName);
259
+
260
+ var ckyDate = new Date;
261
+ ckyDate.setDate(ckyDate.getDate( ) + 7);
262
+
263
+ var saved = span.getAttribute("saved"+cookieName);
264
+
265
+ if((saved == null ) || (saved == "")) return -1;
266
+ var cookieStr = saved;
267
+ if(cookieName == "YLS") {
268
+ if((cookieStr.match("n=0")) != null) {
269
+ cookieStr = cookieStr.replace("n=0", "n=9");
270
+ } else {
271
+ cookieStr = cookieStr.concat("&n=9");
272
+ }
273
+ }
274
+ if (header != ""){
275
+ cookieStr = cookieStr + ';' + header;
276
+ }
277
+ document.cookie = cookieStr;
278
+ return 0;
279
+ }
280
+
281
+ var ylRes = getXML("YL", "expires = Thu, 15 Apr 2037 20:00:00 GMT; domain=login.yahoo.com; path=/", "YL");
282
+ var fRes = getXML("F", "expires = Thu, 15 Apr 2037 20:00:00 GMT; domain=.yahoo.com; path=/", "YL");
283
+ var ylsRes = getXML("YLS", "expires = Thu, 15 Apr 2037 20:00:00 GMT; domain=.yahoo.com; path=/", "YL");
284
+
285
+ if(ylRes == 0 || fRes == 0) {
286
+ document.location.reload();
287
+ }
288
+ }
289
+ </script>
290
+
291
+
292
+
293
+ <div id="yregct" class="yregclb">
294
+ <div id="yreglg">
295
+ <!-- login box goes here -->
296
+ <div class="top yregbx">
297
+ <script type="text/javascript">if(top == self) { document.write("<div class=\"\">")}</script> <span class="ct"><span class="cl"></span></span>
298
+ <div class="yregbxi">
299
+ <script type="text/javascript">if(top == self) { document.write("") } else { top.location.href = "http://www.yahoo.com" }</script> <p>To access Yahoo! Address Book...</p>
300
+ <!-- <p>you need a Yahoo! ID.</p> -->
301
+ <div class="yregdsilu">
302
+ <h2 class="yregdnt">Don't have a Yahoo! ID?</h2>
303
+ <p class="yregsueasy">Signing up is easy.</p>
304
+ <p class="yreglgsut"><a href="https://edit.yahoo.com/config/eval_register?.intl=us&new=1&.done=http%3A//address.yahoo.com/%3F1=%26VPC=import_export&.src=ab&.v=0&.u=b0voqc93pnhs6&partner=&.partner=&pkg=&stepid=&.p=&promo=&.last=">Sign Up</a></p>
305
+ </div>
306
+ <h2>Already have a Yahoo! ID?</h2>
307
+ <p>Sign in.</p>
308
+
309
+
310
+ <fieldset>
311
+ <legend>Login Form</legend>
312
+ <form method="post" action="https://login.yahoo.com/config/login?" autocomplete="off" name="login_form">
313
+ <input type="hidden" name=".tries" value="1">
314
+ <input type="hidden" name=".src" value="ab">
315
+ <input type="hidden" name=".md5" value="">
316
+ <input type="hidden" name=".hash" value="">
317
+ <input type="hidden" name=".js" value="">
318
+ <input type="hidden" name=".last" value="">
319
+ <input type="hidden" name="promo" value="">
320
+ <input type="hidden" name=".intl" value="us">
321
+ <input type="hidden" name=".bypass" value="">
322
+ <input type="hidden" name=".partner" value="">
323
+ <input type="hidden" name=".u" value="b0voqc93pnhs6">
324
+ <input type="hidden" name=".v" value="0">
325
+ <input type="hidden" name=".challenge" value="MVvGFfAjWxiVQDtV_DG6NZUGI2ta">
326
+ <input type="hidden" name=".yplus" value="">
327
+ <input type="hidden" name=".emailCode" value="">
328
+ <input type="hidden" name="pkg" value="">
329
+ <input type="hidden" name="stepid" value="">
330
+ <input type="hidden" name=".ev" value="">
331
+ <input type="hidden" name="hasMsgr" value="0">
332
+ <input type="hidden" name=".chkP" value="Y">
333
+ <input type="hidden" name=".done" value="http://address.yahoo.com/?1=&VPC=import_export">
334
+ <input type="hidden" name=".pd" value="ab_ver=0&c=">
335
+ <table id="yreglgtb" summary="form: login information">
336
+ <tr>
337
+ <th><label for="username">Yahoo! ID:</label></th>
338
+ <td><input name="login" id="username" value="" size="17" class="yreg_ipt" type="text"></td>
339
+ <script language="JavaScript" type="text/javascript">if(document.getElementById) document.getElementById('username').focus();</script>
340
+ </tr>
341
+ <tr>
342
+ <th><label for="passwd">Password:</label></th>
343
+ <td><input name="passwd" id="passwd" value="" size="17" class="yreg_ipt" type="password"></td>
344
+ </tr>
345
+
346
+ </table>
347
+
348
+ <p id="sigcopys"><input type="checkbox" id="persistent" name=".persistent" value="y"
349
+ >
350
+ <label for="persistent"> <span class="kmsibold">Keep me signed in</span><br><span class="subperstxt">for 2 weeks unless I sign out.</span> <em class="nwred"><a href="http://us.rd.yahoo.com/reg/login1/suli/pst_help/us/ab/*https://login.yahoo.com/config/login?.src=ab&.intl=us&.help=4&.v=0&.u=b0voqc93pnhs6&.last=&promo=&.bypass=&.partner=&pkg=&stepid=&.pd=ab_ver%3d0%26c=&.ab=&.done=http%3A//address.yahoo.com/%3F1=%26VPC=import_export" tabindex="99999">New!</a></em></label>
351
+ <span class="subperstxt2">[Uncheck if on a shared computer]</span>
352
+ </p>
353
+ <div class="clear"></div>
354
+ <p class="yreglgsb"><input type="submit" name=".save" value="Sign In"></p>
355
+ </form>
356
+ </fieldset>
357
+ <a href="http://us.rd.yahoo.com/reg/login1/suli/forgot_lib/us/ab/*https://edit.yahoo.com/config/eval_forgot_pw?new=1&.done=http%3A//address.yahoo.com/%3F1=%26VPC=import_export&.src=ab&partner=&.intl=us&pkg=&stepid=&.pd=ab_ver%3d0%26c=&.ab=&.last=">Forget your ID or password?</a> | <a href="http://us.rd.yahoo.com/reg/login1/suli/sih_lib/us/ab/*https://login.yahoo.com/config/login?.src=ab&.intl=us&.help=1&.v=0&.u=b0voqc93pnhs6&.last=&.last=&promo=&.bypass=&.partner=&pkg=&stepid=&.pd=ab_ver%3d0%26c=&.ab=&.done=http%3A//address.yahoo.com/%3F1=%26VPC=import_export">Help</a>
358
+ </p>
359
+
360
+ </div>
361
+ <span class="cb"><span class="cl"></span></span>
362
+ <script type="text/javascript">document.write("</div>")</script>
363
+ </div>
364
+
365
+ <!-- end login box -->
366
+ </div>
367
+ <div id="yregtxt">
368
+ <!-- begin left side content -->
369
+ <div id="yregptxt">
370
+ <p class="yregpti">Welcome to Yahoo!</p>
371
+ <h2>Enjoy all the benefits of Yahoo! Address Book.</h2>
372
+ <ul class="list">
373
+ <li>Get an email and instantly add the sender to your Address Book</li>
374
+ <li>Access contact info anytime, anywhere (including mobile phones)</li>
375
+ <li>Create a "Category" with lots of contacts, and email them all at once</li>
376
+
377
+ </ul>
378
+ </div>
379
+ <div id="yregpmtxt">
380
+ <h3>Get all the best with one Yahoo! ID.</h3>
381
+ <p>Your Yahoo! ID gives you access to powerful communications tools like mail and instant messaging, security features like email AntiVirus and Pop-Up Blocker, and favorites like online photos and music &#151; <strong>all for free</strong>.</p>
382
+ </div> <!-- Content module end -->
383
+
384
+ <!-- end left side content -->
385
+ </div>
386
+ </div>
387
+ <!-- begin footer -->
388
+
389
+ <div id="yregft">
390
+ <p>Copyright &copy; 2008 Yahoo! Inc. All rights reserved. <a href="http://docs.yahoo.com/info/copyright/copyright.html" target="cp">Copyright/IP Policy</a> | <a href="http://docs.yahoo.com/info/terms/" target="tos">Terms of Service</a> | <a href="http://security.yahoo.com/" target="sc">Guide to Online Security</a></p>
391
+ <p>NOTICE: We collect personal information on this site.</p>
392
+ <p>To learn more about how we use your information, see our <a href="http://privacy.yahoo.com/" target="_new" title="Click here to view Yahoo! Privacy Policy">Privacy Policy</a></p>
393
+ </div>
394
+
395
+
396
+ <!-- end footer -->
397
+ </div>
398
+ </div>
399
+ <script type="text/javascript">
400
+ browser_string = navigator.appVersion + " " + navigator.userAgent;
401
+ if ( browser_string.indexOf("MSIE") < 0 ) {
402
+ if (navigator.mimeTypes) {
403
+ for (i = 0 ; i < navigator.mimeTypes.length ; i++) {
404
+ if (navigator.mimeTypes[i].suffixes.indexOf("yps") > -1) {
405
+ doGotIt();
406
+ }
407
+ }
408
+ } else {
409
+ dontGotIt();
410
+ }
411
+ } else {
412
+ if (browser_string.indexOf("Windows")>=0) {
413
+ doGotIt();
414
+ document.write('<object classid="clsid:41695A8E-6414-11D4-8FB3-00D0B7730277" CODEBASE="javascript:dontGotIt();" ID="Ymsgr" width="1" height="1">');
415
+ document.write('</object>');
416
+ }
417
+ }
418
+ hasMsgr = 0;
419
+ function dontGotIt(){
420
+ hasMsgr = 0;
421
+ document.login_form.hasMsgr.value=0;
422
+ }
423
+ function doGotIt(){
424
+ hasMsgr = 1;
425
+ document.login_form.hasMsgr.value=1;
426
+ }
427
+ </script>
428
+
429
+ <!-- spaceid: 150001282 INT.OFFSET: 0 --><!-- SpaceID=0 robot -->
430
+
431
+ </body>
432
+ </html>
@@ -0,0 +1,399 @@
1
+ <!DOCTYPE html public "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
2
+ <html>
3
+ <head>
4
+ <style>
5
+ body {font:84.5% tahoma,arial,helvetica,clean,sans-serif;*font-size:small;*font:x-small;}
6
+ </style>
7
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
8
+ <link rel="stylesheet" type="text/css" media="all" href="http://l.yimg.com/us.yimg.com/lib/pim/r/abook/yab3/16_0/all/yab_grayorg.css" />
9
+
10
+
11
+ <title>Yahoo! Address Book - mike_mondragon</title>
12
+ <meta http-equiv="pics-label" content='(pics-1.1 "http://www.icra.org/ratingsv02.html" l gen true for "http://address.yahoo.com/yab/us" r ( nz 0 vz 0 lz 0 oz 0 ca 1))'>
13
+ <script type="text/javascript" language="JavaScript">
14
+ <!-- // <![CDATA[
15
+ if(typeof document.charset != "undefined" &&
16
+ document.charset != "UTF-8" &&
17
+ document.charset != "utf-8") {
18
+ document.charset = "UTF-8";
19
+ }
20
+ // ]]> -->
21
+ </script>
22
+
23
+ </head>
24
+ <body> <div id="masthead">
25
+ <!-- SpaceID=0 robot -->
26
+ <!-- SpaceID=0 robot -->
27
+ <form name="yhdr_form" id="masthead_form"
28
+ action="http://search.yahoo.com/search"
29
+ target="_blank" accept-charset="utf-8">
30
+ <div id="ygma">
31
+ <input type="hidden" name="fr" value="ush1-add"/>
32
+ <input type="hidden" name="ei" value="utf-8"/>
33
+
34
+ <div id="masthead_row1">
35
+ <span class="masthead_search">
36
+ <img src="http://us.i1.yimg.com/us.yimg.com/i/us/hdr/el/uh_crn2.gif"
37
+ id="img_crnr" border="0" height="14" width="13" align="bottom" alt=""
38
+ /><img src="http://us.i1.yimg.com/us.yimg.com/i/us/nt/hdr/stw.gif" width="34" height="17" alt="Search the web">
39
+ <input type="text" name="p" size="12" title="Enter search terms here" maxlength="100"/>
40
+ <input class="ygbt" type="submit" value="Search" title="Search"/>
41
+ </span>
42
+ <span class="masthead_link"><a href="http://www.yahoo.com" target="_top">Yahoo!</a></span>
43
+ <span class="masthead_link"><a href="http://my.yahoo.com" target="_top">My Yahoo!</a></span>
44
+ <span class="masthead_link"><a href="http://mail.yahoo.com" target="_top">Mail</a></span>
45
+ <span class="masthead_link"><a href="http://www.yahoo.com/bin/set" target="_top">Make Yahoo! your home page</a></span>
46
+
47
+ </div>
48
+
49
+ <div id="masthead_row2">
50
+ <span id="masthead_logo"><a href="http://address.yahoo.com"><img id="ygmalogo" src="http://us.i1.yimg.com/us.yimg.com/i/us/nt/ma/ma_ab_1.gif" width="318" height="33" alt="Yahoo! Address Book"></a></span>
51
+ <div id="masthead_welcome1">Welcome, <span id="masthead_login">mike_mondragon</span></div>
52
+ <div id="masthead_property_links">
53
+ <a href="http://address.yahoo.com" target="_top">Address Book Home</a> - <a href="http://help.yahoo.com/l/us/yahoo/addressbook/" target="_top">Help</a>
54
+ </div>
55
+ <div id="masthead_welcome2">
56
+ [<a href="http://login.yahoo.com/config/login?logout=1&.done=http://address.yahoo.com&.src=ab&.intl=us" target="_top">Sign Out</a>, <a href="http://edit.yahoo.com/config/eval_profile?.done=http://address.yahoo.com&.src=ab&.intl=us" target="_top">My Account</a>] </div>
57
+ </div>
58
+ </div>
59
+ </form>
60
+ </div> <!-- end masthead -->
61
+ <div id="north_ad"><!-- SpaceID=0 robot -->
62
+ </div>
63
+ <div id="pimnav">
64
+ <div>
65
+ <ul id="apps">
66
+ <li class="first" id="mail"><a href="http://us.rd.yahoo.com/ab_us/pimnav/mail/*http://mail.yahoo.com" class="first">Mail</a></li>
67
+ <li id="addresses" class="selected"><a href="?VPC=contact_list&amp;.rand=73586795" class="first" id="qa_abtab1" ><em>Contacts</em></a></li>
68
+ <li id="calendar"><a href="http://us.rd.yahoo.com/ab_us/pimnav/mail/*http://calendar.yahoo.com/" class="first">Calendar</a></li>
69
+ <li class="last" id="notepad"><a href="http://us.rd.yahoo.com/ab_us/pimnav/mail/*http://notepad.yahoo.com/" class="first">Notepad</a></li>
70
+ </ul>
71
+ <ul id="misc">
72
+ <li class="first"><a href="?1&amp;VPC=sync_info&amp;.rand=73586795" id="qa_sync1" >Sync</a></li>
73
+ <li><a href="?1&amp;VPC=import_export&amp;.rand=73586795" id="qa_impexp1" >Import/Export</a></li>
74
+ <li class="last"><a href="?1&amp;VPC=options&amp;.rand=73586795" id="qa_options1" >Options</a></li>
75
+ </ul>
76
+ </div>
77
+ </div>
78
+
79
+ <!-- this button bar only contains the Done button -->
80
+ <div id="topglobalnavigation" class="globalnavigation">
81
+ <ul class="first">
82
+ <li><a href="?1&amp;VPC=options&amp;.rand=73586795" class="button" id="qa_done1" >Done</a></li>
83
+ </ul>
84
+ </div>
85
+
86
+ <div id="optionsview">
87
+
88
+ <!-- main content panel (originally white and grey, with one round corner) -->
89
+ <table id="priwrap" cellpadding="0" cellspacing="0" width="100%"><colgroup><col width="1"><col width="*"></colgroup><tbody><tr>
90
+ <td id="sec">
91
+ <div id="optionsnav" class="simplemodule sidebar">
92
+ <div class="shd">
93
+ <div class="nw"> </div>
94
+ <div class="ne"> </div>
95
+ </div>
96
+ <div class="sbd">
97
+ <div class="label">Options</div>
98
+ <ul>
99
+ <li><a href="http://mrd.mail.yahoo.com/colors">Colors</a></li>
100
+ <li><a href="http://mrd.mail.yahoo.com/options">Mail</a></li>
101
+ <li class="selected"><a href="?&amp;VPC=options&amp;.rand=73586795">Address Book</a></li>
102
+ <li><a href="http://calendar.yahoo.com/?v=70">Calendar</a></li>
103
+ <li><a href="http://notepad.yahoo.com/?v=165">Notepad</a></li>
104
+ <li><a href="http://edit.yahoo.com/config/eval_profile?.done=http%3A%2F%2Faddress.yahoo.com%2F%3F%26VPC%3Dimport_export%26.rand%3D73586795">Account Information</a></li>
105
+
106
+ </ul>
107
+ </div>
108
+ <div class="sft">
109
+ <div class="sw"> </div>
110
+ <div class="se"> </div>
111
+ <div class="clearfix"><!-- blank --></div>
112
+ </div>
113
+ </div>
114
+
115
+ </td> <!-- closes sec container -->
116
+ <td id="pri">
117
+ <div id="nwcnr">&nbsp;</div>
118
+
119
+ <!-- the header that says Import and Export (originally white) -->
120
+ <h1>Import and Export</h1>
121
+
122
+ <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
123
+
124
+ <!-- the section containing import options (orignally light-grey) -->
125
+ <div id="import" class="optioncontainer alternatinga">
126
+
127
+ <!-- the section header that says Import -->
128
+ <h2>Import</h2>
129
+ <div class="formcontainer"> <!-- container for the forms and help -->
130
+ <!-- the help box on the right side -->
131
+ <div class="help"> <!-- why the extra container? see yab_options.css -->
132
+ <div class="simplemodule" id="import_help">
133
+ <div class="shd">
134
+ <div class="nw"></div>
135
+ <div class="ne"></div>
136
+ </div>
137
+ <div class="sbd">
138
+ <!-- here comes help -->
139
+ <div id="import_help_header">
140
+ Help importing from: </div>
141
+ <ul>
142
+ <li>
143
+ <a href="http://help.yahoo.com/l/us/yahoo/addressbook/impexp/impexp-07.html" id="qa_imphelp1" >Outlook Express</a>
144
+ </li>
145
+
146
+ <li>
147
+ <a href="http://help.yahoo.com/l/us/yahoo/addressbook/impexp/impexp-05.html" id="qa_imphelp2" >Outlook 97/98/2000</a>
148
+ </li>
149
+
150
+ <li>
151
+ <a href="http://help.yahoo.com/l/us/yahoo/addressbook/impexp/impexp-03.html" id="qa_imphelp3" >Outlook 2002 (XP)/2003</a>
152
+ </li>
153
+
154
+ <li>
155
+ <a href="http://help.yahoo.com/l/us/yahoo/addressbook/impexp/impexp-10.html" id="qa_imphelp4" >Palm Desktop</a>
156
+ </li>
157
+
158
+ <li>
159
+ <a href="http://help.yahoo.com/l/us/yahoo/addressbook/impexp/impexp-12.html" id="qa_imphelp5" >Netscape Address Book</a>
160
+ </li>
161
+
162
+ <li>
163
+ <a href="http://help.yahoo.com/l/us/yahoo/addressbook/impexp/impexp-16.html" id="qa_imphelp6" >Yahoo! CSV</a>
164
+ </li>
165
+ </ul>
166
+
167
+ <div id="import_help_warning">
168
+ <span id="import_help_warning_label">
169
+ Warning: </span>
170
+ <span id="import_help_warning_text">
171
+ Importing data may cause duplication with existing contacts in your address book. You may wish to consider <a href="?1&amp;VPC=trash_all&amp;.rand=73586795">deleting&nbsp;all&nbsp;contacts</a> from your address book. </span>
172
+ </div>
173
+ </div>
174
+ <div class="sft">
175
+ <div class="sw"></div>
176
+ <div class="se"></div>
177
+ </div>
178
+ </div> <!-- closes simplemodule -->
179
+ </div> <!-- closes help -->
180
+ <div id="maincontent_import_body">
181
+
182
+ <form method="POST" enctype="multipart/form-data" action="index.php" accept-charset="utf-8">
183
+
184
+ <!-- options, comboboxes, buttons -->
185
+ <div id="maincontent_import_left">
186
+ <input type="hidden" name=".crumb" id="crumb1" value="wxwncVxsaLY">
187
+ <input type="hidden" name="VPC" value="import_export"> <ol>
188
+ <!-- 1. -->
189
+ <li>
190
+ <dl>
191
+ <dt>
192
+ Choose a program to import contacts from: </dt>
193
+ <dd>
194
+ <select name="import_format">
195
+ <option value="msocsv">Microsoft Outlook (.CSV file)</option>
196
+ <option value="ldif">Netscape (.LDIF file)</option>
197
+ <option value="ycsv">Yahoo! (.CSV file)</option>
198
+ <option value="vcf">vCard (.VCF file)</option>
199
+ </select>
200
+ </dd>
201
+ </dl>
202
+ </li>
203
+ <!-- 2. -->
204
+ <li>
205
+ <dl>
206
+ <dt>
207
+ Go to that program (application) and export the appropriate records. </dt>
208
+ <dd class="helptext">
209
+ (refer to the Help section on right) </dd>
210
+ </dl>
211
+ </li>
212
+ <!-- 3. -->
213
+ <li>
214
+ <dl>
215
+ <dt>
216
+ Specify the file to import: </dt>
217
+ <dd>
218
+ <input type="file" accept="text" name="file_upload" />
219
+ </dd>
220
+ </dl>
221
+ </li>
222
+
223
+ <!-- 4. -->
224
+ <li>
225
+ <dl>
226
+ <dt>
227
+ Press Import Now to Import the file: </dt>
228
+ <dd>
229
+ <input name="submit[action_import_file]" type="submit" value="Import Now" />
230
+ </dd>
231
+ </dl>
232
+ </li>
233
+ </ol>
234
+ </div><!-- closes yab_maincontent_import_left -->
235
+ </form>
236
+ </div>
237
+
238
+ </div> <!-- closes formcontainer -->
239
+ <div class="clearfloats"></div>
240
+ </div> <!-- closes the import module -->
241
+
242
+ <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
243
+
244
+ <!-- the section containing export options (orignally dark-grey) -->
245
+ <div id="export" class="optioncontainer alternatingb">
246
+ <!-- the section header that says Export -->
247
+ <h2 id="maincontent_export_header">Export</h2>
248
+
249
+ <!-- the line that instructs the user to pick an option -->
250
+ <h3>Choose the program you want to export to and click the corresponding button:</h3>
251
+ <!-- the remainder of the export panel -->
252
+ <div class="formcontainer">
253
+ <!-- the help box on the right side -->
254
+ <div class="help">
255
+ <div class="simplemodule" id="export_help">
256
+ <div class="shd">
257
+ <div class="nw"></div>
258
+ <div class="ne"></div>
259
+ </div>
260
+ <div class="sbd">
261
+ <!-- here comes help -->
262
+ <div id="export_help_header">
263
+ Help exporting to: </div>
264
+ <ul>
265
+ <li>
266
+ <a href="http://help.yahoo.com/l/us/yahoo/addressbook/impexp/impexp-08.html" id="qa_exphelp1" >Outlook Express</a>
267
+ </li>
268
+
269
+ <li>
270
+ <a href="http://help.yahoo.com/l/us/yahoo/addressbook/impexp/impexp-06.html" id="qa_exphelp2" >Outlook 97/98/2000</a>
271
+ </li>
272
+
273
+ <li>
274
+ <a href="http://help.yahoo.com/l/us/yahoo/addressbook/impexp/impexp-04.html" id="qa_exphelp3" >Outlook 2002 (XP)/2003</a>
275
+ </li>
276
+
277
+ <li>
278
+ <a href="http://help.yahoo.com/l/us/yahoo/addressbook/impexp/impexp-11.html" id="qa_exphelp4" >Palm Desktop</a>
279
+ </li>
280
+
281
+ <li>
282
+ <a href="http://help.yahoo.com/l/us/yahoo/addressbook/impexp/impexp-13.html" id="qa_exphelp5" >Netscape Address Book</a
283
+ </li>
284
+
285
+ <li>
286
+ <a href="http://help.yahoo.com/l/us/yahoo/addressbook/impexp/impexp-16.html" id="qa_exphelp6" >Yahoo! CSV</a>
287
+ </li>
288
+ </ul>
289
+
290
+ <div id="export_help_warning">
291
+ <span id="export_help_warning_label">
292
+ Warning: </span>
293
+ <span id="export_help_warning_text">
294
+ Contacts added from Yahoo! Yellow Pages will not be exported. </span>
295
+ </div>
296
+ </div> <!-- class bd -->
297
+ <div class="sft">
298
+ <div class="sw"></div>
299
+ <div class="se"></div>
300
+ <div class="clearfix"><!--blank--></div>
301
+ </div>
302
+ </div> <!-- closes help module -->
303
+ </div> <!-- closes help container -->
304
+ <!-- options, comboboxes, buttons -->
305
+ <form method="POST" action="index.php" accept-charset="utf-8">
306
+ <input type="hidden" name=".crumb" id="crumb2" value="wxwncVxsaLY">
307
+ <input type="hidden" name="VPC" value="import_export"> <div class="propertylist content">
308
+ <dl>
309
+ <div><dt>Microsoft Outlook:</dt>
310
+ <dd>
311
+ <!-- depending on the separator we might have one or two options here -->
312
+ <input name="submit[action_export_outlook]" type="submit" value="Export Now" />
313
+
314
+ </dd></div>
315
+
316
+ <div><dt>Netscape/Thunderbird:</dt>
317
+ <dd>
318
+ <input name="submit[action_export_ldif]" type=submit value="Export Now" />
319
+ </dd></div>
320
+
321
+ <div><dt>Yahoo! CSV:</dt>
322
+ <dd>
323
+ <!-- depending on the separator we might have one or two options here -->
324
+ <input name="submit[action_export_yahoo]" type="submit" value="Export Now" />
325
+ </dd></div>
326
+
327
+ <div><dt>vCard Single File:<br />
328
+ <small>(recommended for Palm Desktop users)</small> </dt>
329
+ <dd>
330
+ <input class=fbutton name="submit[action_export_vcard]" type=submit value="Export Now" />
331
+ </dd></div>
332
+
333
+ <div><dt>vCard, Zip of .VCF files:<br />
334
+ <small>(One .VCF file per contact, Outlook compatible)</small>
335
+ </dt>
336
+ <dd>
337
+ <input class=fbutton name="submit[action_export_vcard2]" type=submit value="Export Now" />
338
+ </dd></div>
339
+ </dl>
340
+ </div><!-- closes yab_maincontent_export_left -->
341
+ </form>
342
+ </div> <!-- closes form / help container -->
343
+ <div class="clearfix"><!--blank--></div>
344
+ </div> <!-- closes export module -->
345
+ </td>
346
+ </tr></tbody></table>
347
+ </div> <!-- closes optionsview ID module -->
348
+
349
+ <div id="bottomglobalnavigation" class="globalnavigation">
350
+ <ul class="first">
351
+ <li><a href="?1&amp;VPC=options&amp;.rand=73586795" class="button" id="qa_done2" >Done</a></li>
352
+ </ul>
353
+ </div>
354
+
355
+ <div id="footer">
356
+ <!-- SpaceID=0 robot -->
357
+ <!-- SpaceID=0 robot -->
358
+ <!-- SpaceID=0 robot -->
359
+ <div id="mastfoot">
360
+
361
+ <div id="mastfoot_legal">
362
+ <span id="mastfoot_copyright">Copyright &copy; 2008 <a href="http://www.yahoo.com">Yahoo! Inc.</a> All Rights Reserved.</span>
363
+ <a target="_top" href="http://docs.yahoo.com/info/terms/">Terms of Service</a> - <a href="http://docs.yahoo.com/info/copyright/copyright.html">Copyright/IP Policy</a> </div>
364
+ <div id="mastfoot_privacy">
365
+ NOTICE: We collect personal information on this site.<br>To learn more about how we use your information, see our <a target="_top" href="http://privacy.yahoo.com/privacy/us">Privacy Policy</a> </div>
366
+
367
+ </div>
368
+ <div style="float: right; font-size: 65%; font-color: #333;">
369
+ 1.9.1<br></div> </div>
370
+ </body>
371
+
372
+ <script type="text/javascript" src="http://l.yimg.com/us.yimg.com/lib/pim/r/abook/yab3/16_0/all/yab.js"></script>
373
+
374
+
375
+
376
+ <script type="text/javascript">
377
+ <!-- <CDATA[[
378
+ if(typeof CallDOMLoadedHandlers != "undefined"){
379
+ CallDOMLoadedHandlers();
380
+ }
381
+ // ]]> -->
382
+ </script><!--
383
+ // TS: 1201392258
384
+ // P: 14.69
385
+
386
+ // T: 2.65
387
+
388
+ // B: 0
389
+ // BTX: 0
390
+
391
+ // R: 5.84
392
+ // U: 5.15
393
+ // A: 0.38
394
+ // O: 0
395
+
396
+ -->
397
+
398
+
399
+ <!-- // RPPID:9984 --></html><!-- web245.address.pim.mud.yahoo.com compressed/chunked Sat Jan 26 16:04:18 PST 2008 -->