rakutenusa-blackbook 1.0.15 → 1.0.16

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION.yml CHANGED
@@ -1,4 +1,4 @@
1
1
  ---
2
+ :patch: 16
2
3
  :major: 1
3
4
  :minor: 0
4
- :patch: 15
@@ -34,7 +34,10 @@ class Blackbook::Importer::Aol < Blackbook::Importer::PageScraper
34
34
  raise( Blackbook::LegacyAccount, "Your AOL account is not setup for WebMail. Please signup: http://webmail.aol.com")
35
35
  end
36
36
 
37
- base_uri = page.body.scan(/^var gSuccessPath = \"(.+)\";/).first.first
37
+ # aol bumps to a wait page while logging in. if we can't scrape out the js then its a bad login
38
+ extractor = proc { |var_name| page.body.scan(/var\s*#{var_name}\s*=\s*\"(.*?)\"\s*;/).first.first }
39
+
40
+ base_uri = extractor.call( 'gSuccessPath' )
38
41
  raise( Blackbook::BadCredentialsError, "You do not appear to be signed in." ) unless base_uri
39
42
  page = agent.get base_uri
40
43
  end
@@ -70,24 +73,14 @@ class Blackbook::Importer::Aol < Blackbook::Importer::PageScraper
70
73
  page = agent.get uri.to_s
71
74
 
72
75
  # Grab all the contacts
73
- rows = page.search("table tr")
74
- name, email = nil, nil
75
-
76
- results = []
77
- rows.each do |row|
78
- new_name = row.search("span[@class='fullName']").inner_text.strip
79
- if name.blank? || !new_name.blank?
80
- name = new_name
81
- end
82
- next if name.blank?
83
-
84
- email = row.search("td[@class='sectionContent'] span:last").inner_text.strip
85
- next if email.blank?
86
-
87
- results << {:name => name, :email => email}
88
- name, email = nil, nil
76
+ names = page.body.scan( /<span class="fullName">([^<]+)<\/span>/ ).flatten
77
+ emails = page.body.scan( /<span>Email 1:<\/span> <span>([^<]+)<\/span>/ ).flatten
78
+ (0...[names.size,emails.size].max).collect do |i|
79
+ {
80
+ :name => names[i],
81
+ :email => emails[i]
82
+ }
89
83
  end
90
- results
91
84
  end
92
85
 
93
86
  Blackbook.register :aol, self
@@ -13,10 +13,19 @@ class Blackbook::Importer::Gmail < Blackbook::Importer::PageScraper
13
13
  options && options[:username] =~ /@(gmail|googlemail).com$/i ? true : false
14
14
  end
15
15
 
16
+ def import(*args)
17
+ # GMail depends on Hpricot for some reason...
18
+ parser = WWW::Mechanize.html_parser
19
+ WWW::Mechanize.html_parser = Hpricot
20
+ returning super do
21
+ WWW::Mechanize.html_parser = parser
22
+ end
23
+ end
24
+
16
25
  ##
17
26
  # login to gmail
18
27
 
19
- def login
28
+ def login
20
29
  page = agent.get('http://mail.google.com/mail/')
21
30
  form = page.forms.first
22
31
  form.Email = options[:username]
@@ -40,9 +49,10 @@ class Blackbook::Importer::Gmail < Blackbook::Importer::PageScraper
40
49
  ##
41
50
  # scrape gmail contacts for this importer
42
51
 
43
- def scrape_contacts
44
- unless agent.cookies.find{|c| c.name == 'GAUSR' &&
45
- (c.value.include? "mail:#{options[:username]}")}
52
+ def scrape_contacts
53
+ unless agent.cookies.find { |c|
54
+ c.name == 'GAUSR' && c.value.match(/mail(.*?):#{options[:username]}/)
55
+ }
46
56
  raise( Blackbook::BadCredentialsError, "Must be authenticated to access contacts." )
47
57
  end
48
58
 
@@ -63,7 +73,7 @@ class Blackbook::Importer::Gmail < Blackbook::Importer::PageScraper
63
73
  unless clean_email.empty?
64
74
  columns = row/"td"
65
75
  {
66
- :name => ( columns[1] / "b" ).inner_text, # name
76
+ :name => ( columns[1] / "b" / "a" ).inner_html, # name
67
77
  :email => clean_email
68
78
  }
69
79
  end
@@ -75,24 +75,31 @@ class Blackbook::Importer::Hotmail < Blackbook::Importer::PageScraper
75
75
  unless agent.cookies.find{|c| c.name == 'MSPPre' && c.value == options[:username]}
76
76
  raise( Blackbook::BadCredentialsError, "Must be authenticated to access contacts." )
77
77
  end
78
- page = agent.get(@first_page.iframes.first.src)
78
+
79
+ page = agent.get('http://mail.live.com/')
79
80
 
80
- page = agent.click(page.link_with(:text => 'Mail'))
81
- page = agent.get(page.iframes.first.src)
82
- page = agent.get('/mail/PrintShell.aspx?type=contact')
83
-
84
- rows = page.search("//div[@class='ContactsPrintPane cPrintContact BorderTop']")
85
- rows.collect do |row|
86
- vals = {}
87
- row.search("table/tr").each do |pair|
88
- key = pair.search("td[@class='TextAlignRight Label']").first.inner_text.strip rescue nil
89
- next if key.nil?
90
- val = pair.search("td[@class='Value']").first.inner_text.strip
91
- vals[key.to_sym] = val
81
+ if page.iframes.detect { |f| f.src =~ /\/mail\/TodayLight.aspx/ }
82
+ page = agent.get( page.iframes.first.src )
83
+
84
+ if button = page.forms.first.buttons.detect { |b| b.name == 'TakeMeToInbox' }
85
+ page = agent.submit( page.forms.first, button )
92
86
  end
93
- vals[:name] = vals['Name:'.to_sym] rescue ''
94
- vals[:email] = (vals['Personal e-mail:'.to_sym] || vals['Work e-mail:'.to_sym] || vals['Windows Live ID:'.to_sym]).split(' ').first rescue ''
95
- vals
87
+ end
88
+
89
+ page = page.link_with(:text => 'Contact list').click
90
+
91
+ contacts = parse_contacts(page.body)
92
+ while link = page.link_with(:text => 'Next page')
93
+ page = link.click
94
+ contacts += parse_contacts(page.body)
95
+ end
96
+
97
+ contacts
98
+ end
99
+
100
+ def parse_contacts(source)
101
+ source.scan(/ICc.*\:\[.*?,.*?,\['ct'\],'(.*?)',.*?,.*?,'(.*?)',.*\]/).collect do |name, email|
102
+ { :name => (name =~ /\\x26\\x2364\\x3b/ ? nil : name), :email => email.gsub(/\\x40/, '@') }
96
103
  end
97
104
  end
98
105
 
@@ -0,0 +1,404 @@
1
+ ---------------------------------
2
+
3
+
4
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html xmlns="http://www.w3.org/1999/xhtml" >
7
+ <head><link type="text/css" rel="stylesheet" href="http://o.aolcdn.com/cdn.webmail.aol.com/31361/aim/en-us/styles-lite-all.css" /><script type="text/javascript" src="http://o.aolcdn.com/cdn.webmail.aol.com/31361/js/external_compressed/axs.js"></script><script type="text/javascript" src="http://o.aolcdn.com/cdn.webmail.aol.com/31361/js/external_compressed/adsWrapper.js"></script><script type="text/javascript" src="DateFormat.js.aspx"></script><title>
8
+ AIM Mail - Today on AIM
9
+ </title></head>
10
+
11
+ <body onload="onloadFunctions();">
12
+
13
+
14
+
15
+ <div class="WSHat">
16
+ <div class="topHat">
17
+ <div class="salutation">
18
+ Hi, user@aim.com
19
+ </div>
20
+ <a href="http://webmail.aol.com/31361/aim/en-us/common/Logout.aspx?siteState=ver%3a2%7cac%3aWS%7cat%3aSNS%7cld%3awebmail.aol.com%7clc%3aen-us%7cuv%3aAIM%7crt%3aBASIC" class="signOutLink">
21
+ Sign Out
22
+ </a>
23
+
24
+ <ul class="hatLinks"><li><a target="_blank" href="http://pr.atwola.com/promoclk/100001269x1116143256x1077350428/aol?redir=http:%2F%2Fwww.aol.com">AOL</a></li><li><a target="_blank" href="http://my.aol.com">myAOL</a></li><li class="last"><a target="_blank" href="http://pr.atwola.com/promoclk/100001269x1115550333x1077361411/aol?redir=http:%2F%2Fwww.aol.com%2Fmksplash.adp">Make AOL My Home Page</a></li></ul>
25
+ </div>
26
+
27
+ <div class="logoArea">
28
+ <img src="http://o.aolcdn.com/cdn.webmail.aol.com/31361/aim/en-us/images/hat_logo_lite.gif" class="logo" alt="Mail logo">
29
+ <ul class="hatLinks adminLinks">
30
+
31
+ <li class="link"><a href='GeneralSettings.aspx' onclick="try{document.location='GeneralSettings.aspx?user=ULKLrUelQ2';return false;}catch(e){}">
32
+ Settings</a></li>
33
+ <li class="last"><a href="http://help.channels.aol.com/topic.adp?topicId=Product_WebSuiteBasic" onclick="aol.wsl.fOnHelpClick(event, 'http://webmail.aol.com/31361/aim/en-us/'); return false;">Help</a></li>
34
+ </ul>
35
+ </div>
36
+
37
+
38
+ <script>
39
+ var aol = {wsl: {
40
+ fResetSearch: function(sDefaultSearchQuery, sDropdownId) {
41
+ var oForm = document.forms.search;
42
+ oForm.searchQuery.value = sDefaultSearchQuery;
43
+ oForm.searchQuery.className = "wsInputDefault";
44
+ oForm[sDropdownId][0].selected = true;
45
+ oForm.searchSubmit.disabled = true;
46
+ }
47
+ ,fClearSearchTextbox: function() {
48
+ var oSearchForm = document.forms.search;
49
+ var oSearchTextbox = oSearchForm.searchEdit;
50
+ oSearchTextbox.value = "";
51
+ oSearchTextbox.className = "wsInput";
52
+ oSearchForm.searchSubmit.disabled = false;
53
+ }
54
+ ,fbSearchHandler: function(sWebAllSearchUrl, htExtraSearchOptions, sDefaultSearchQuery, sDropdownId) {
55
+ var oForm = document.forms.search;
56
+ var iSelectedOption = oForm[sDropdownId].selectedIndex;
57
+ var bUsingPopout = false;
58
+ if (oForm[sDropdownId].options[iSelectedOption].value == "webAll") {
59
+ window.open(sWebAllSearchUrl + oForm.searchQuery.value);
60
+ bUsingPopout = true;
61
+ }
62
+ if (!bUsingPopout && htExtraSearchOptions) {
63
+ for (var sExtraOptionValue in htExtraSearchOptions) {
64
+ if (oForm[sDropdownId].options[iSelectedOption].value == sExtraOptionValue) {
65
+ window.open(htExtraSearchOptions[sExtraOptionValue] + oForm.searchQuery.value);
66
+ bUsingPopout = true;
67
+ break;
68
+ }
69
+ }
70
+ }
71
+
72
+ if (bUsingPopout) {
73
+ aol.wsl.fResetSearch(sDefaultSearchQuery, sDropdownId);
74
+ }
75
+ return !bUsingPopout;
76
+ }
77
+ ,fOnHelpClick: function(evt, url) {
78
+
79
+
80
+ if(!window.event){
81
+ evt.stopPropagation();
82
+ }
83
+
84
+ if (evt.shiftKey){
85
+ window.open(url + "tools/Support.aspx");
86
+ }
87
+ else
88
+ {
89
+ window.open('http://help.channels.aol.com/topic.adp?topicId=Product_WebSuiteBasic');
90
+ }
91
+
92
+ }
93
+ }};
94
+ </script>
95
+
96
+ <div class="searchArea nobr">
97
+ <form name="searchForm" id=search method="POST"
98
+ onSubmit="return aol.wsl.fbSearchHandler('http://search.aol.com/aolcom/search?invocationType=wbmailcayman&query=', null, 'Search', 'searchIn');"
99
+ action="http://webmail.aol.com/31361/aim/en-us/Lite/MsgList.aspx">
100
+ <input type=hidden name="user" value="ULKLrUelQ2">
101
+ <input type=hidden name='folder' value='Inbox' />
102
+ <input type=hidden name="searchAction" value="search">
103
+ <input type="text" id=searchEdit name="searchQuery" maxlength="256" size=14 onFocus="aol.wsl.fClearSearchTextbox(this);" class="wsInputDefault" value="Search">
104
+ <label for=searchEdit><span class=SROnly>Search</span></label>
105
+ <select id=searchOptions name="searchIn">
106
+ <option value="alltext">Mail All</option>
107
+ <option value="subject">Mail Subject</option>
108
+ <option value="from">Mail Sender</option>
109
+ <option disabled=disabled>------------</option>
110
+
111
+ <option value="webAll">Web</option>
112
+ </select>
113
+ <input id=searchSubmit name="searchSubmit" type=submit disabled="true" value=Go title="Start searching"/>
114
+ </form>
115
+ </div>
116
+
117
+
118
+ <script>
119
+ var lowRes = false;
120
+ if (screen.width < 1024) {
121
+ lowRes = true;
122
+ }
123
+ </script>
124
+
125
+ <div id="myAd">
126
+ <script type="text/javascript">
127
+ var myAd = document.getElementById("myAd");
128
+ adSetTarget('_blank');
129
+ adSetType("I");
130
+ if (lowRes) {
131
+ htmlAdWH(93210713, 468, 60);
132
+ myAd.className="mlBannerSmall";
133
+ } else {
134
+ htmlAdWH(93225974, 728, 90);
135
+ myAd.className="mlBannerLarge";
136
+ }
137
+ </script>
138
+ </div>
139
+
140
+
141
+ </div>
142
+
143
+
144
+ <table cellpadding="0" cellspacing="0" border="0" width="100%" class="tblContainer">
145
+ <tr>
146
+
147
+ <td class="tblLeftNav">
148
+
149
+
150
+ <div class=ws_nav>
151
+ <div class=ws_nav_top>
152
+
153
+ <script>
154
+ var aolLeftNav = {
155
+ fSubmitToMsgList: function(sFolder) {
156
+ if (sFolder) {
157
+ document.forms.MsgList.folder.value = sFolder;
158
+ }
159
+ try{document.forms.MsgList.submit();}catch(ex){}
160
+ },
161
+ fAutoClick: function() {
162
+ if (this === undefined) {
163
+ return;
164
+ } else if (this.click) {
165
+ this.click();
166
+ } else if (this.onclick) {
167
+ this.onclick();
168
+ } else if (this.href) {
169
+ try{document.location = this.href;} catch(e) {}
170
+ }
171
+ }
172
+ };
173
+ </script>
174
+ <form>
175
+ <input type=button value="Check Mail" id="checkMailBtn" onclick="document.forms.MsgList.action='MsgList.aspx#leftNav'; aolLeftNav.fSubmitToMsgList();return false;" />
176
+ <input type=button value="Compose" id="writeMailBtn" onclick='document.forms.Compose.submit();return false;' />
177
+ <input type=hidden name='folder' value='Inbox' />
178
+ </form>
179
+ <div class=fieldsetHidden>
180
+ <form method=POST name=MsgList action='MsgList.aspx' enctype="multipart/form-data" accept-charset=UTF-8>
181
+ <input type=hidden name='user' value='ULKLrUelQ2' />
182
+ <input type=hidden name='folder' value='Inbox' />
183
+
184
+ <input type=hidden name='sort' value='received' />
185
+ <input type=hidden name='sortDir' value='descending' />
186
+ <input type=hidden name='showUserFolders' value='False' />
187
+ </form>
188
+
189
+ <form method=POST name=Compose action='Compose.aspx' enctype="multipart/form-data" accept-charset=UTF-8>
190
+ <input type=hidden name='user' value='ULKLrUelQ2' />
191
+ <input type=hidden name='folder' value='Inbox' />
192
+ <input type=hidden name='showUserFolders' value='False' />
193
+ </form>
194
+ </div>
195
+ </div>
196
+ <h1 id=leftNav class=SROnly>
197
+ <a name=leftNav>List of Folders</a>
198
+ </h1>
199
+ <div class=ws_main_pane>
200
+
201
+ <div id=sysFolders>
202
+ <div class='todayLink'><div class='navItem navItemCurrent'><div class='icon iconToday'></div><div class='navItemLabel'><a title='Today on AIM' href="Today.aspx">Today on AIM</a></div></div></div>
203
+
204
+ <div class="navItem "><div class="icon iconInbox"></div><div class="navItemLabel"><a href=# id=inboxLnk onclick="aolLeftNav.fSubmitToMsgList('Inbox');return false;" title="Inbox Folder View">Inbox<span id="InboxCount"></span></a></div></div>
205
+ <div class="navItem "><div class="icon iconFolder"></div><div class="navItemLabel"><a href=# onclick="aolLeftNav.fSubmitToMsgList('Drafts');return false;" title="Drafts Folder View">Drafts<span id="DraftsCount"></span></span></a></div></div>
206
+ <div class="navItem "><div class="icon iconFolder"></div><div class="navItemLabel"><a href=# id=sentFolderLnk onclick="aolLeftNav.fSubmitToMsgList('Sent');return false;" title="Sent Folder View" id="sentFolderLnk">Sent</a></div></div>
207
+ <div class="navItem "><div class="icon iconFolder"></div><div class="navItemLabel"><a href=# onclick="aolLeftNav.fSubmitToMsgList('Spam');return false;" title="Spam Folder View">Spam<span id="SpamCount"></span></a></div></div>
208
+ <div class="navItem "><div class="icon iconFolder"></div><div class="navItemLabel"><a href=# onclick="aolLeftNav.fSubmitToMsgList('Trash');return false;" title="Trash Folder View">Trash</a></div></div></div>
209
+
210
+ <div class='navItemContacts'><div class='navItem '><div class='icon iconContacts'></div><div class='navItemLabel'><a title='Contacts' href="ContactList.aspx?folder=Inbox&showUserFolders=False">Contacts</a></div></div></div>
211
+
212
+ <div class="navItem"><div class="twisty twistyClosed"><img src="http://o.aolcdn.com/cdn.webmail.aol.com/31361/aim/en-us/images/space.gif" width="10px" height="10px"/></div><div class="myFoldersLabel"><h2 class="plain"><a href="Today.aspx?showUserFolders=true" title="Show all of your folders">My Folders</a></h2></div><span class="ctrl wsLink"><a href="Folders.aspx" >Manage Folders</a></span></div>
213
+
214
+ </div></div>
215
+
216
+ </div>
217
+ <script>
218
+ axs.keyreg("alt+i",aolLeftNav.fAutoClick,"Go to Inbox Folder View",{obj:axs.id("inboxLnk")});
219
+ axs.keyreg("alt+m",aolLeftNav.fAutoClick,"Check Mail",{obj:axs.id("checkMailBtn")});
220
+ axs.keyreg("alt+n",aolLeftNav.fAutoClick,"Compose",{obj:axs.id("writeMailBtn")});
221
+ axs.keyreg("alt+o",aolLeftNav.fAutoClick,"Go to Sent Folder View",{obj:axs.id("sentFolderLnk")});
222
+ </script>
223
+ </div>
224
+ <div class=swAds>
225
+
226
+ <div class="swAd1">
227
+ <script type="text/javascript">
228
+ adSetType("I");
229
+ adSetTarget('_blank');
230
+ htmlAdWH(93237312, 160, 40);
231
+ </script>
232
+ </div>
233
+
234
+
235
+ <div class="swAd2">
236
+ <script type="text/javascript">
237
+ adSetType("I");
238
+ adSetTarget('_blank');
239
+ htmlAdWH(93221707, 160, 40);
240
+ </script>
241
+ </div>
242
+
243
+ </div>
244
+ </td>
245
+ <td class="tblMainArea" id="tblMainArea">
246
+
247
+
248
+
249
+ <div class=omniDiv>
250
+ <script type="text/javascript">
251
+ var s_account = "aolaimmail,aolsvc";
252
+ </script>
253
+
254
+ <!-- In Omniture H code, the file inclusion has to come first -->
255
+ <script type="text/javascript" src="http://o.aolcdn.com/cdn.webmail.aol.com/31361/js/external/OmniUniH.js"></script>
256
+
257
+ <script type="text/javascript">
258
+ s_265.channel = "aim.mail";
259
+ s_265.pageName = "Today";
260
+ s_265.pfxID = "wml";
261
+ s_265.prop1 = "WebSuite Basic";
262
+ s_265.prop2 = "Mail";
263
+ s_265.prop12 = document.URL;
264
+ var s_code = s_265.t();
265
+ if (s_code) document.write(s_code);
266
+ </script>
267
+ </div>
268
+
269
+
270
+
271
+ <style>td {background:#F4F2F0;}</style>
272
+
273
+ <div class=TodayOnAOL>
274
+
275
+ <h1 id=main class=SROnly><a name=main>Today on AIM</a></h1>
276
+ <div class="welcomeMessage">
277
+ <div class='TodayHeader'><span class='TodayHeaderTxt'>You're using AIM Mail Basic which is optimized for your computer and browser.</span></div>
278
+ <div class='TodayGreeting' id='aolTodayGreeting'></div>
279
+ <div class='TodayDate' id='aolLocalTime'></div>
280
+ <script>
281
+ try {
282
+ //Morning, afternoon, or evening?
283
+ var dtToday = new Date();
284
+ var iCurrentHour = dtToday.getHours();
285
+ var sPartOfDayGreeting;
286
+ if (iCurrentHour < 12) {
287
+ sPartOfDayGreeting = "Good Morning, user@aim.com";
288
+ } else if (iCurrentHour >= 12 && iCurrentHour < 18) {
289
+ sPartOfDayGreeting = "Good Afternoon, user@aim.com";
290
+ } else {
291
+ sPartOfDayGreeting = "Good Evening, user@aim.com";
292
+ }
293
+ //defined in DateFormat.js.aspx
294
+ var sLocalTime = DateFormat.FormatDate(dtToday, "EE, MMM dd, yyyy h:mm a");
295
+
296
+ var tnPartOfDayGreeting = document.createTextNode(sPartOfDayGreeting);
297
+ var eTodayGreeting = document.getElementById('aolTodayGreeting');
298
+ if (eTodayGreeting && tnPartOfDayGreeting) {
299
+ eTodayGreeting.appendChild(tnPartOfDayGreeting);
300
+ }
301
+
302
+ var tnLocalTime = document.createTextNode(sLocalTime);
303
+ var eLocalTime = document.getElementById('aolLocalTime');
304
+ if (eLocalTime && tnLocalTime) {
305
+ eLocalTime.appendChild(tnLocalTime);
306
+ }
307
+ } catch (ex) {
308
+ }
309
+ </script>
310
+
311
+ <br />
312
+ <div class="todayMsgCount">
313
+ <a href="http://webmail.aol.com/31361/aim/en-us/lite/msglist.aspx">
314
+
315
+ <span id="TodayMailCount"></span>
316
+
317
+ </a>
318
+ </div>
319
+ </div>
320
+
321
+ <iframe src="http://welcome.mail.aol.com/beta.adp?type=aim" title="Today on AIM" width=100% height=630px frameborder=0 border=0 marginwidth=0 marginheight=0 scrolling="no" align="top" allowTransparency="true"></iframe>
322
+
323
+ </div>
324
+
325
+
326
+
327
+
328
+ </td>
329
+
330
+ </tr>
331
+ <tr><td colspan=2>
332
+
333
+
334
+ <div class="footer_container">
335
+ <ul class="hatLinks"><li><a target="_blank" href="http://www.aol.com/aolnetwork/aolcom_terms.html">Terms of Service</a></li><li><a target="_blank" href="http://about.aol.com/aolnetwork/mem_commitments">Privacy Policy</a></li><li class=last><a target="_blank" href="http://www.aol.com/aolnetwork/trademarks.html">Trademarks</a></li></ul>
336
+ <div class="copyright">&copy; 2007 AOL LLC. All Rights Reserved</div>
337
+ <script>
338
+ axs.l10n.keycap_summary = "This table describes the shortcut keys implemented on this page.";
339
+ axs.l10n.keycap_caption = "Key combinations and the actions they invoke.";
340
+ axs.l10n.keycap_combo = "Key Combination";
341
+ axs.l10n.keycap_act = "Action";
342
+ axs.l10n.keycap_keyshow = "Show or hide the keyboard shortcuts table";
343
+ axs.l10n.keycap_linkshow = "Click this link to show or hide the keyboard shortcuts table.";
344
+ axs.keychart("alt+shift+i");
345
+
346
+ if ((typeof aol != 'undefined') && aol && aol.wsl && aol.wsl.fFocusPerUri) { aol.wsl.fFocusPerUri(); }
347
+ </script>
348
+ </div>
349
+ </td></tr>
350
+ </table>
351
+
352
+
353
+ <iframe id="CheckNewMessagesFrame" style="visibility:hidden;" src=''></iframe>
354
+ <script>
355
+ function updateCheckNewMessagesFrame() {
356
+ var CheckNewMessagesFrame = document.getElementById("CheckNewMessagesFrame");
357
+ if (CheckNewMessagesFrame) {
358
+ CheckNewMessagesFrame.src = 'http://webmail.aol.com/31361/aim/en-us/common/rpc/RPC.aspx?user=ULKLrUelQ2&automatic=true&dojo.transport=iframe&requests=[{"stateToken":"-1","action":"CheckNewMessages"}]]';
359
+ }
360
+ }
361
+ setInterval(updateCheckNewMessagesFrame, 120000);
362
+ </script>
363
+
364
+
365
+ <script>
366
+
367
+ function onloadFunctions() {
368
+ try {
369
+
370
+ setTodaySrc();
371
+
372
+ } catch (ex) {
373
+ }
374
+ }
375
+
376
+ function setMessageCounts(InboxCount, DraftsCount, SpamCount) {
377
+ var InboxCountSpan = document.getElementById("InboxCount");
378
+ if (InboxCountSpan != null && InboxCount != -1) {InboxCountSpan.innerHTML = "&nbsp;(" + InboxCount + ")";}
379
+ var DraftsCountSpan = document.getElementById("DraftsCount");
380
+ if (DraftsCountSpan != null && DraftsCount != -1) {DraftsCountSpan.innerHTML = "&nbsp;(" + DraftsCount + ")";}
381
+ var SpamCountSpan = document.getElementById("SpamCount");
382
+ if (SpamCountSpan != null && SpamCount != -1) {SpamCountSpan.innerHTML = "&nbsp;(" + SpamCount + ")";}
383
+
384
+
385
+ var TodayMailCountSpan = document.getElementById("TodayMailCount");
386
+ if (TodayMailCountSpan != null && InboxCount != -1) {
387
+ if (InboxCount == 0) {
388
+ TodayMailCountSpan.innerHTML = "0 New Messages";
389
+ } else if (InboxCount == 1) {
390
+ TodayMailCountSpan.innerHTML = "{0} New Message".replace("{0}",InboxCount);
391
+ } else {
392
+ TodayMailCountSpan.innerHTML = "{0} New Messages".replace("{0}",InboxCount);
393
+ }
394
+ }
395
+
396
+ }
397
+ </script>
398
+
399
+
400
+ <iframe style="visibility:hidden;" src='MailCounts.aspx'></iframe>
401
+
402
+ </body>
403
+ </html>
404
+ ---------------------------------
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rakutenusa-blackbook
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.15
4
+ version: 1.0.16
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rany Keddo
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2009-04-16 00:00:00 -07:00
13
+ date: 2009-06-23 00:00:00 -07:00
14
14
  default_executable:
15
15
  dependencies: []
16
16
 
@@ -54,6 +54,7 @@ files:
54
54
  - test/fixtures/aol_login_response_stage_2.html
55
55
  - test/fixtures/aol_login_response_stage_3.html
56
56
  - test/fixtures/aol_login_response_stage_4.html
57
+ - test/fixtures/aol_login_response_stage_5.html
57
58
  - test/fixtures/aol_new_contacts.html
58
59
  - test/fixtures/gmail.csv
59
60
  - test/fixtures/gmail_bad_login_response_stage_2.html