| 
									
										
										
										
											2009-12-04 14:31:19 -05:00
										 |  |  | function scrapeNotices(user) | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-20 17:40:38 -05:00
										 |  |  |      var notices = []; | 
					
						
							| 
									
										
										
										
											2009-11-19 19:12:58 -05:00
										 |  |  |      $(".notice").each(function(){ | 
					
						
							| 
									
										
										
										
											2009-12-04 14:31:19 -05:00
										 |  |  |           var notice = getNoticeFromElement($(this)); | 
					
						
							|  |  |  |           if (user) { | 
					
						
							|  |  |  |                notice['user'] = user; | 
					
						
							|  |  |  |           } else { | 
					
						
							|  |  |  |                notice['user'] = getUserFromElement($(this)); | 
					
						
							|  |  |  |           } | 
					
						
							|  |  |  |           if(notice['geo']) | 
					
						
							|  |  |  |                notices.push(notice); | 
					
						
							| 
									
										
										
										
											2009-11-19 19:12:58 -05:00
										 |  |  |      }); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-12-04 14:31:19 -05:00
										 |  |  |      return notices; | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2009-11-19 19:12:58 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-12-04 14:31:19 -05:00
										 |  |  | function scrapeUser() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |      var avatarURL = $(".entity_profile .entity_depiction img.avatar").attr('src'); | 
					
						
							|  |  |  |      var profileURL = $(".entity_profile .entity_nickname .url").attr('href'); | 
					
						
							|  |  |  |      var nickname = $(".entity_profile .entity_nickname .nickname").text(); | 
					
						
							| 
									
										
										
										
											2009-11-19 19:12:58 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-12-04 14:31:19 -05:00
										 |  |  |      return { | 
					
						
							|  |  |  |         'profile_image_url': avatarURL, | 
					
						
							|  |  |  |         'profile_url': profileURL, | 
					
						
							|  |  |  |         'screen_name': nickname | 
					
						
							|  |  |  |      }; | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2009-11-19 19:12:58 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  | function getNoticeFromElement(noticeElement) | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-20 17:40:38 -05:00
										 |  |  |     var notice = {}; | 
					
						
							| 
									
										
										
										
											2009-12-04 14:31:19 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  |     if(noticeElement.find(".geo").length) { | 
					
						
							| 
									
										
										
										
											2009-11-20 17:40:38 -05:00
										 |  |  |         var latlon = noticeElement.find(".geo").attr('title').split(";"); | 
					
						
							| 
									
										
										
										
											2009-11-19 19:12:58 -05:00
										 |  |  |         notice['geo']={'coordinates': [ | 
					
						
							| 
									
										
										
										
											2009-11-20 17:40:38 -05:00
										 |  |  |             parseFloat(latlon[0]), | 
					
						
							|  |  |  |             parseFloat(latlon[1])] }; | 
					
						
							| 
									
										
										
										
											2009-11-19 19:12:58 -05:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2009-12-04 14:31:19 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-21 21:01:17 +02:00
										 |  |  |     notice['html'] = noticeElement.find(".e-content").html(); | 
					
						
							| 
									
										
										
										
											2009-12-04 14:31:19 -05:00
										 |  |  |     notice['url'] = noticeElement.find("a.timestamp").attr('href'); | 
					
						
							|  |  |  |     notice['created_at'] = noticeElement.find("abbr.published").text(); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-19 19:12:58 -05:00
										 |  |  |     return notice; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-12-04 14:31:19 -05:00
										 |  |  | function getUserFromElement(noticeElement) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |      var avatarURL = noticeElement.find("img.avatar").attr('src'); | 
					
						
							|  |  |  |      var profileURL = noticeElement.find(".author a.url").attr('href'); | 
					
						
							|  |  |  |      var nickname =  noticeElement.find(".author .nickname").text(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |      return { | 
					
						
							|  |  |  |           'profile_image_url': avatarURL, | 
					
						
							|  |  |  |           'profile_url': profileURL, | 
					
						
							|  |  |  |           'screen_name': nickname | 
					
						
							|  |  |  |     }; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-19 19:12:58 -05:00
										 |  |  | function showMapstraction(element, notices) { | 
					
						
							|  |  |  |      if(element instanceof jQuery) element = element[0]; | 
					
						
							|  |  |  |      if(! $.isArray(notices)) notices = [notices]; | 
					
						
							|  |  |  |      var mapstraction = new mxn.Mapstraction(element, _provider); | 
					
						
							| 
									
										
										
										
											2009-11-19 10:51:46 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  |      var minLat = 181.0; | 
					
						
							|  |  |  |      var maxLat = -181.0; | 
					
						
							|  |  |  |      var minLon = 181.0; | 
					
						
							|  |  |  |      var maxLon = -181.0; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-19 19:12:58 -05:00
										 |  |  |      for (var i in notices) | 
					
						
							| 
									
										
										
										
											2009-11-19 10:51:46 -05:00
										 |  |  |      { | 
					
						
							| 
									
										
										
										
											2009-11-19 19:12:58 -05:00
										 |  |  |           var n = notices[i]; | 
					
						
							| 
									
										
										
										
											2009-11-19 10:51:46 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  |           var lat = n['geo']['coordinates'][0]; | 
					
						
							|  |  |  |           var lon = n['geo']['coordinates'][1]; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |           if (lat < minLat) { | 
					
						
							|  |  |  |                minLat = lat; | 
					
						
							|  |  |  |           } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |           if (lat > maxLat) { | 
					
						
							|  |  |  |                maxLat = lat; | 
					
						
							|  |  |  |           } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |           if (lon < minLon) { | 
					
						
							|  |  |  |                minLon = lon; | 
					
						
							|  |  |  |           } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |           if (lon > maxLon) { | 
					
						
							|  |  |  |                maxLon = lon; | 
					
						
							|  |  |  |           } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-19 11:51:15 -05:00
										 |  |  |           pt = new mxn.LatLonPoint(lat, lon); | 
					
						
							|  |  |  |           mkr = new mxn.Marker(pt); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-06-01 18:41:17 +00:00
										 |  |  |           mkr.setIcon(n['user']['profile_image_url'], [24, 24]); | 
					
						
							| 
									
										
										
										
											2009-11-19 13:20:55 -05:00
										 |  |  |           mkr.setInfoBubble('<a href="'+ n['user']['profile_url'] + '">' + n['user']['screen_name'] + '</a>' + ' ' + n['html'] + | 
					
						
							|  |  |  |                             '<br/><a href="'+ n['url'] + '">'+ n['created_at'] + '</a>'); | 
					
						
							| 
									
										
										
										
											2009-11-19 11:51:15 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  |           mapstraction.addMarker(mkr); | 
					
						
							|  |  |  |      } | 
					
						
							| 
									
										
										
										
											2009-11-19 10:51:46 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-19 11:51:15 -05:00
										 |  |  |      bounds = new mxn.BoundingBox(minLat, minLon, maxLat, maxLon); | 
					
						
							| 
									
										
										
										
											2009-11-19 10:51:46 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-19 11:51:15 -05:00
										 |  |  |      mapstraction.setBounds(bounds); | 
					
						
							| 
									
										
										
										
											2009-11-19 19:12:58 -05:00
										 |  |  | } |