Added agenda and traffic time precursor

This commit is contained in:
Martin Donnelly 2018-03-13 13:46:26 +00:00
parent 4ac3fe4531
commit a75fa2ee37
25 changed files with 13983 additions and 821 deletions

378
notes/log01.txt Normal file
View File

@ -0,0 +1,378 @@
03-07 23:25:48.528 2364-2511/com.tul.aviate D/VolleyRequestBuilder: Requesting: https://maps.google.com/maps/api/geocode/json?language=en_US&latlng=-73.9860%2C40.7501&sensor=true
03-07 23:25:48.599 2364-2520/com.tul.aviate D/VolleyRequestBuilder: Status Code: 200
Response Body: {
"results" : [
{
"address_components" : [
{
"long_name" : "Antarctica",
"short_name" : "AQ",
"types" : [ "country", "political" ]
}
],
"formatted_address" : "Antarctica",
"geometry" : {
"bounds" : {
"northeast" : {
"lat" : -60.1086999,
"lng" : 180
},
"southwest" : {
"lat" : -90,
"lng" : -180
}
},
"location" : {
"lat" : -75.250973,
"lng" : -0.07138899999999999
},
"location_type" : "APPROXIMATE",
"viewport" : {
"northeast" : {
"lat" : -60.1086999,
"lng" : 180
},
"southwest" : {
"lat" : -90,
"lng" : -180
}
}
},
"place_id" : "ChIJS3WQM3uWuaQRdSAPdB--Um4",
"types" : [ "country", "political" ]
}
],
"status" : "OK"
}
03-07 23:26:21.233 2364-3029/com.tul.aviate D/VolleyRequestBuilder: POST {"appKey":"ALq3OMhN7EY-X3U26qyvDhV_zZltfuzddRJU0FrR6--IhrjY4cuvO0Fm6lU3WesnLWNHpcgGSrKCweyHgZjSAxmY5IckAz6fDA","contexts":[{"radius":20.0,"batteryLevel":100,"chargerOn":false,"eid":"","headphoneOn":false,"lat":-73.986,"lng":40.7501,"musicPlaying":false,"notifIds":[],"speed":0.0,"stream":"main","time":"2018-03-07T23:26:21+0000","upcomingMeeting":0}],"cpVersion":3,"lang":"en-US","region":"US"}
03-07 23:26:21.233 2364-3029/com.tul.aviate D/VolleyRequestBuilder: Requesting: https://aviate-yql.media.yahoo.com/v2/ace/cards?region=US&lang=en-US&crumb=LvnvxRvdbc.
03-07 23:26:22.028 2364-2520/com.tul.aviate D/VolleyRequestBuilder: Status Code: 200
Response Body: {"response":{"result":[{"cards":[{"card_id":"4b5b8c71-58d2-3f26-abce-318e3d3a01d6","rendering_engine":"custom","type":"MORNING_NIGHT","type_display_name":"Set Alarm","ttl":1520637982,"layout":{"template":"morning_night"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"USER_LOCATION:OTHER":1.0,"USER_SPEED:STILL":1.0,"TIME_OF_DAY_RANGE:NIGHT":1.0,"STREAM_TYPE:MAIN":1.0,"rule_score":3.0,"TIER":3.0,"score":0.5},"instrumentation":{"rid":"043dtmlda0t8u","bucket":"ga"}},{"card_id":"83a014c3-c0a4-3242-b5a8-79d011b677d6","rendering_engine":"custom","type":"WEATHER","type_display_name":"Weather","ttl":1520637982,"layout":{"template":"weather"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"TIME_OF_DAY_RANGE:NIGHT":1.0,"STREAM_TYPE:MAIN":1.0,"rule_score":3.0,"TIER":3.0,"score":0.25},"instrumentation":{"rid":"043dtmlda0t8u","bucket":"ga"}},{"card_id":"c81eac4b-4553-3d60-85a6-178968bd5065","rendering_engine":"custom","type":"NEWS_DIGEST","type_display_name":"News Digest","ttl":1520637982,"layout":{"template":"news_digest"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"TIME_OF_DAY_RANGE:NIGHT":1.0,"STREAM_TYPE:MAIN":1.0,"rule_score":2.0,"TIER":2.0,"score":0.25},"instrumentation":{"rid":"043dtmlda0t8u","bucket":"ga"}},{"card_id":"bcacee7a-d79a-3e4e-a5b8-77c5b6480a8c","rendering_engine":"custom","type":"CALENDAR","type_display_name":"Calendar","ttl":1520637982,"layout":{"template":"calendar"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"USER_LOCATION:OTHER":1.0,"TIME_OF_DAY_RANGE:NIGHT":1.0,"STREAM_TYPE:MAIN":1.0,"rule_score":2.0,"TIER":2.0,"score":0.25},"instrumentation":{"rid":"043dtmlda0t8u","bucket":"ga"}},{"card_id":"730f79c6-148d-39fd-bba1-1b3eafb8b6dc","rendering_engine":"custom","type":"MUSIC_PLAYING","type_display_name":"Music Player","ttl":1520637982,"layout":{"template":"music_playing"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"STREAM_TYPE:MAIN":1.0,"rule_score":0.0,"TIER":0.0,"score":0.0},"instrumentation":{"rid":"043dtmlda0t8u","bucket":"ga"}},{"card_id":"ee966fd9-7ca1-368c-b56c-427013d5b9e9","rendering_engine":"custom","type":"ARTIST_INFO","type_display_name":"Artist Info","ttl":1520637982,"layout":{"template":"artist_info"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"STREAM_TYPE:MAIN":1.0,"rule_score":0.0,"TIER":0.0,"score":0.0},"instrumentation":{"rid":"043dtmlda0t8u","bucket":"ga"}},{"card_id":"2082d004-1852-3041-8e66-2d6595db402e","rendering_engine":"custom","type":"NEARBY_SHORTCUTS","type_display_name":"Nearby Places","ttl":1520637982,"layout":{"template":"nearby_shortcuts"},"data":{"cafe_yelp_url":"http://m.yelp.com/search?find_desc=Cafes&l=a:-73.986,40.7501,1","restaurant_yelp_url":"http://m.yelp.com/search?find_desc=Restaurant&ls=a:-73.986,40.7501,1","bar_yelp_url":"http://m.yelp.com/search?find_desc=Bars&l=a:-73.986,40.7501,1","cafe_yahoo_url":"https://search.yahoo.com/local/s?p=Cafes&lat=-73.986&lon=40.7501","restaurant_yahoo_url":"https://search.yahoo.com/local/s?p=Restaurants&lat=-73.986&lon=40.7501","bar_yahoo_url":"https://search.yahoo.com/local/s?p=Bars&lat=-73.986&lon=40.7501"},"modules":{},"reason":"","notify":false,"ranking_arguments":{"USER_LOCATION:OTHER":1.0,"USER_SPEED:STILL":1.0,"req_longitude":40.7501,"USER_DIST_FROM_REQ_LOC:WITHIN_800M":1.0,"TIME_OF_DAY_RANGE:NIGHT":1.0,"req_latitude":-73.986,"STREAM_TYPE:MAIN":1.0,"rule_score":1.0,"TIER":1.0,"score":0.0},"instrumentation":{"rid":"043dtmlda0t8u","bucket":"ga"}},{"card_id":"5977faba-e448-31b1-b992-f289e8cab898","rendering_engine":"custom","type":"NEW_APPS","type_display_name":"Recommended Apps","ttl":1520472382,"layout":{"template":"new_apps"},"data":{"apps":[{"display_name":"WhatsApp Messenger","activity_name":"com.whatsapp","package_name":"com.whatsapp","icon_url":"https://lh6.ggpht.com/mp86vbELnqLi2FzvhiKdPX31_oiTRLNyeK8x4IIrbF5eD1D5RdnVwjQP0hwMNR_JdA=w300","description":"WhatsApp Messenger is a FREE messagi
03-07 23:28:21.260 2364-2364/com.tul.aviate D/VolleyRequestBuilder: Requesting: https://aviate-yql.media.yahoo.com/v1/nearby_venues?ll=-73.986%2C40.7501&lang=en-US
03-07 23:28:21.830 2364-4023/com.tul.aviate D/VolleyRequestBuilder: Status Code: 200
Response Body: {"venues":{"result":[],"error":null}}
03-07 23:29:17.697 2364-4049/com.tul.aviate D/VolleyRequestBuilder: POST {"appKey":"ALq3OMhN7EY-X3U26qyvDhV_zZltfuzddRJU0FrR6--IhrjY4cuvO0Fm6lU3WesnLWNHpcgGSrKCweyHgZjSAxmY5IckAz6fDA","contexts":[{"radius":23.429,"batteryLevel":100,"chargerOn":false,"eid":"{\"card\":\"venue\",\"id\":\"4f0329add3e364d5ff7fd6c9\"}","headphoneOn":false,"lat":-73.986,"lng":40.7501,"musicPlaying":false,"notifIds":[],"speed":0.0,"stream":"","time":"2018-03-07T23:29:17+0000","upcomingMeeting":0}],"cpVersion":3,"lang":"en-US","region":"US"}
03-07 23:29:17.697 2364-4049/com.tul.aviate D/VolleyRequestBuilder: Requesting: https://aviate-yql.media.yahoo.com/v2/ace/cards?region=US&eid=%7B%22card%22%3A%22venue%22%2C%22id%22%3A%224f0329add3e364d5ff7fd6c9%22%7D&lang=en-US&crumb=LvnvxRvdbc.
03-07 23:29:17.827 2364-4023/com.tul.aviate D/VolleyRequestBuilder: Status Code: 200
Response Body: {"response":{"result":[{"cards":[{"card_id":"9953c0e9-5b77-3162-bcf4-e19fcd1f541f","rendering_engine":"custom","type":"VENUE_INFO","type_display_name":"Venues","ttl":1520468958,"layout":{"template":"venue_info"},"data":{"name":"Googleplex - Yoshka's Café","category":"Corporate Cafeteria","iconUrl":"https://ss3.4sqi.net/img/categories_v2/education/cafeteria_64.png","id":"4f0329add3e364d5ff7fd6c9","provider":"foursquare","tips":["Formerly \"No Name Café\" for many years, this was recently renovated, changing up the layout to be more streamlined, and naming it after Urs Hölzle's dog, Yoshka, Google's \"first dog\".","Be careful in the courtyard, you may get nailed by some bird poop bombs! Get a table under an umbrella just to play it safe.","Also know as Dead Dog Cafe","Always a good variety of vegetarian options.","It may no longer be nameless, but this café still has an oyster bar on Fridays, when in season, and if there are still any left ;)","Fresh omelets","made-to-order omelets and scrambles at breakfast. and they're delicious!","They won't let you in for dinner until 6:30 sharp, no tailgating!"],"images":["https://igx.4sqi.net/img/general/717x959/1321189_1mEtM_4eX9RXTGpuWIWXwxvPnzgaAXWT-BNXdcubb5o.jpg","https://igx.4sqi.net/img/general/960x720/7438316_4ZvmNmzigLrBOHGhf-6Rrcy_xx5DzwXYc8zBexz3wTc.jpg","https://igx.4sqi.net/img/general/612x612/NLspnriVQFXZcmqa9XdDtwGWv8kUOTPRcUz6AlHjIBQ.jpg","https://igx.4sqi.net/img/general/612x612/417060_NjE35MqlYItSAzENIyEr3I-bHgQFOQY0Aahde8XfvSQ.jpg","https://igx.4sqi.net/img/general/612x612/xuElC9-6dwTv2d_O7diRMzKQ09oG3ywyS7TAuFJKpsg.jpg","https://igx.4sqi.net/img/general/612x612/llBFQB9XTaZyCndf9px4kZlWWnnJU_so8Ypi9RsSzvs.jpg"],"telephone":"","address":"1600 Amphitheatre Pkwy","city":"Mountain View","state":"CA","zip":"94043","latitude":37.421822714115414,"longitude":-122.08427565377625,"twitter":{"handle":null,"viewIntent":null,"tweetIntent":null},"yelp":{"url":null,"rating":0.0,"reviewCount":0,"viewIntent":null}},"modules":{},"reason":"","notify":false,"ranking_arguments":{"poi_latitude":37.421822714115414,"poi_longitude":-122.08427565377625,"USER_LOCATION:OTHER":1.0,"req_longitude":40.7501,"req_latitude":-73.986,"USER_LOCATION_POI_CONFIDENCE:HIGH":1.0,"STREAM_TYPE":1.0,"rule_score":0.0,"TIER":0.0,"USER_DIST_FROM_REQ_LOC:WITHIN_100M":1.0,"score":0.0},"instrumentation":{"rid":"6tqo851da0tee","bucket":"ga"}}]}],"error":null}}
03-07 23:29:23.472 2364-2554/com.tul.aviate D/Volley: [94] a.a: HTTP response for request=<[ ] https://igx.4sqi.net/img/general/717x959/1321189_1mEtM_4eX9RXTGpuWIWXwxvPnzgaAXWT-BNXdcubb5o.jpg 0xda75489a LOW 5> [lifetime=5529], [size=123828], [rc=200], [retryCount=0]
03-07 23:29:23.504 2364-4056/com.tul.aviate D/Volley: [208] o.b: 5580 ms: [ ] https://igx.4sqi.net/img/general/717x959/1321189_1mEtM_4eX9RXTGpuWIWXwxvPnzgaAXWT-BNXdcubb5o.jpg 0xda75489a LOW 5
03-07 23:29:23.559 2364-2556/com.tul.aviate D/Volley: [96] a.a: HTTP response for request=<[ ] https://igx.4sqi.net/img/general/960x720/7438316_4ZvmNmzigLrBOHGhf-6Rrcy_xx5DzwXYc8zBexz3wTc.jpg 0xda75489a LOW 6> [lifetime=5635], [size=156721], [rc=200], [retryCount=0]
03-07 23:29:23.570 2364-4056/com.tul.aviate D/Volley: [208] o.b: 5646 ms: [ ] https://igx.4sqi.net/img/general/960x720/7438316_4ZvmNmzigLrBOHGhf-6Rrcy_xx5DzwXYc8zBexz3wTc.jpg 0xda75489a LOW 6
03-07 23:29:23.609 2364-2553/com.tul.aviate D/Volley: [93] a.a: HTTP response for request=<[ ] https://igx.4sqi.net/img/general/612x612/NLspnriVQFXZcmqa9XdDtwGWv8kUOTPRcUz6AlHjIBQ.jpg 0xda75489a LOW 7> [lifetime=5685], [size=119679], [rc=200], [retryCount=0]
03-07 23:29:23.642 2364-4056/com.tul.aviate D/Volley: [208] o.b: 5718 ms: [ ] https://igx.4sqi.net/img/general/612x612/NLspnriVQFXZcmqa9XdDtwGWv8kUOTPRcUz6AlHjIBQ.jpg 0xda75489a LOW 7
03-07 23:29:27.555 2364-4071/com.tul.aviate D/VolleyRequestBuilder: POST {"appKey":"ALq3OMhN7EY-X3U26qyvDhV_zZltfuzddRJU0FrR6--IhrjY4cuvO0Fm6lU3WesnLWNHpcgGSrKCweyHgZjSAxmY5IckAz6fDA","contexts":[{"radius":23.429,"batteryLevel":100,"chargerOn":false,"eid":"{\"card\":\"venue\",\"id\":\"55a6bb4c498ea7e1d94cbcee\"}","headphoneOn":false,"lat":-73.986,"lng":40.7501,"musicPlaying":false,"notifIds":[],"speed":0.0,"stream":"","time":"2018-03-07T23:29:27+0000","upcomingMeeting":0}],"cpVersion":3,"lang":"en-US","region":"US"}
03-07 23:29:27.556 2364-4071/com.tul.aviate D/VolleyRequestBuilder: Requesting: https://aviate-yql.media.yahoo.com/v2/ace/cards?region=US&eid=%7B%22card%22%3A%22venue%22%2C%22id%22%3A%2255a6bb4c498ea7e1d94cbcee%22%7D&lang=en-US&crumb=LvnvxRvdbc.
03-07 23:29:27.686 2364-4023/com.tul.aviate D/VolleyRequestBuilder: Status Code: 200
Response Body: {"response":{"result":[{"cards":[{"card_id":"9953c0e9-5b77-3162-bcf4-e19fcd1f541f","rendering_engine":"custom","type":"VENUE_INFO","type_display_name":"Venues","ttl":1520468968,"layout":{"template":"venue_info"},"data":{"name":"Googleplex - Costa","category":"Corporate Cafeteria","iconUrl":"https://ss3.4sqi.net/img/categories_v2/education/cafeteria_64.png","id":"55a6bb4c498ea7e1d94cbcee","provider":"foursquare","tips":[],"images":["https://igx.4sqi.net/img/general/960x720/29667004_hETcqY4Ag1g_lH1ZNU0JBxG0pa4e6l9qvkBFsXbPfhY.jpg","https://igx.4sqi.net/img/general/1900x1425/25844686_aaUyNuH6qj_Tx77ugeEDcBtVczcDgA54lvlRYM4wJLk.jpg","https://igx.4sqi.net/img/general/1155x1920/30438269_zPuMdU3DtlAnr5RdRsyKN_iNmePMJA070GXpNMhUyxc.jpg","https://igx.4sqi.net/img/general/1920x1080/18801428_iJi3E-JUgL3-WGSdRs0GCLoJIju6IcIDixZ7mWXC1d0.jpg","https://igx.4sqi.net/img/general/1079x1920/32630050_C_Mh9VfmjZp4dJI25P7S6l5kJ6UYcOIAdF3e6mFJVuI.jpg","https://igx.4sqi.net/img/general/960x720/40989882_WP_SOKhr-kSaiS2gVKOyw2pc1rgCjfpvL_Sl_YTU-1k.jpg"],"telephone":"","address":"1625 Charleston Rd","city":"Mountain View","state":"CA","zip":"94043","latitude":37.42000101238079,"longitude":-122.08348680045991,"twitter":{"handle":null,"viewIntent":null,"tweetIntent":null},"yelp":{"url":null,"rating":0.0,"reviewCount":0,"viewIntent":null}},"modules":{},"reason":"","notify":false,"ranking_arguments":{"poi_latitude":37.42000101238079,"poi_longitude":-122.08348680045991,"USER_LOCATION:OTHER":1.0,"req_longitude":40.7501,"req_latitude":-73.986,"USER_LOCATION_POI_CONFIDENCE:HIGH":1.0,"STREAM_TYPE":1.0,"rule_score":0.0,"TIER":0.0,"USER_DIST_FROM_REQ_LOC:WITHIN_100M":1.0,"score":0.0},"instrumentation":{"rid":"6ok3d29da0teo","bucket":"ga"}}]}],"error":null}}
03-07 23:29:42.068 2364-4081/com.tul.aviate D/VolleyRequestBuilder: POST {"appKey":"ALq3OMhN7EY-X3U26qyvDhV_zZltfuzddRJU0FrR6--IhrjY4cuvO0Fm6lU3WesnLWNHpcgGSrKCweyHgZjSAxmY5IckAz6fDA","contexts":[{"radius":23.429,"batteryLevel":100,"chargerOn":false,"eid":"{\"card\":\"venue\",\"id\":\"4ae5fb66f964a520c5a321e3\"}","headphoneOn":false,"lat":-73.986,"lng":40.7501,"musicPlaying":false,"notifIds":[],"speed":0.0,"stream":"","time":"2018-03-07T23:29:42+0000","upcomingMeeting":0}],"cpVersion":3,"lang":"en-US","region":"US"}
03-07 23:29:42.068 2364-4081/com.tul.aviate D/VolleyRequestBuilder: Requesting: https://aviate-yql.media.yahoo.com/v2/ace/cards?region=US&eid=%7B%22card%22%3A%22venue%22%2C%22id%22%3A%224ae5fb66f964a520c5a321e3%22%7D&lang=en-US&crumb=LvnvxRvdbc.
03-07 23:29:42.198 2364-4023/com.tul.aviate D/VolleyRequestBuilder: Status Code: 200
Response Body: {"response":{"result":[{"cards":[{"card_id":"9953c0e9-5b77-3162-bcf4-e19fcd1f541f","rendering_engine":"custom","type":"VENUE_INFO","type_display_name":"Venues","ttl":1520468983,"layout":{"template":"venue_info"},"data":{"name":"Googleplex - Charlie's Cafe","category":"Corporate Cafeteria","iconUrl":"https://ss3.4sqi.net/img/categories_v2/education/cafeteria_64.png","id":"4ae5fb66f964a520c5a321e3","provider":"foursquare","tips":["The \"original\" Google cafe, it was named for Google's first chef, Charlie Ayers, who also used to cater for The Grateful Dead! He was also (in)famous for refusing to allow ketchup, which he hated.","When they make chicken & waffles, go for a thigh instead of a leg-- it's boneless!","I always hit the Indian section!","Try the vietnemese roasted pork at East meets West","It's like a giant food free court of a mall. Choose your favorite, be at the line, ask for it and enjoy. Healthy, tasty and you,re going to miss it. Google is a great place.","Bottoms up! Awesome munch at Charlie's Google and yeah all you can grab good food making tummy happy!","Oatmeal chocolate chip cookies for the win!!!","Movie night on Thursdays in Kiev for employees and their guests.","Head to East Meets West if you're not in a hurry and go for a ready made burrito if you are!","Это рай для любителей поесть. Такого большого выбора еды в некоторых ресторанах нет. Очереди, конечно, тоже будь здоров.","Busy but plenty of food choices","You have to love Charlie's, it's a landmark for all of us. So many memories here.","The food is perfect! Tons of delicious, healthy choices!","The most popular Google cafe in the entire world. Can be very busy especially during lunch hours, you might see more visitors than Googlers.","All the options!!!! Excellent in house veggie burger!","Beleş yemek ile candır","Awesome Canopus","Burgers are surprisingly good!","google feeding their ppls","Los diferetes estilos de comida Excelente"],"images":["https://igx.4sqi.net/img/general/612x612/165994_MnzIp3CsV7WiAKSsOF5khedK3x9MkayGHTylB617sCs.jpg","https://igx.4sqi.net/img/general/960x720/7906039_DHr63kU8gZNIjOEBGkHNlF0tkcr2lEP_XJw4Ni6PojM.jpg","https://igx.4sqi.net/img/general/720x540/12228350_sPiIrkdDT0HYGKcxAVbGeS3c10Ipb58HWWCIcaOSbuk.jpg","https://igx.4sqi.net/img/general/720x537/BB55kZ6RdwOvmTs3oHBqidDE2cYNTi6qkY-FAx9PxKk.jpg","https://igx.4sqi.net/img/general/720x537/178423_hJURtAc-U2FG9-s2FKvBIxq0H-Hvz6_cKXW3g1EEBWQ.jpg","https://igx.4sqi.net/img/general/960x720/3416797_TtwI8UQl_etwIPTdVB1SFWKRwpf5oL-8RIx79jaWcyQ.jpg"],"telephone":"","address":"1600 Amphitheatre Pkwy","city":"Mountain View","state":"CA","zip":"94043","latitude":37.42226620455291,"longitude":-122.08414672605346,"twitter":{"handle":null,"viewIntent":null,"tweetIntent":null},"yelp":{"url":null,"rating":0.0,"reviewCount":0,"viewIntent":null}},"modules":{},"reason":"","notify":false,"ranking_arguments":{"poi_latitude":37.42226620455291,"poi_longitude":-122.08414672605346,"USER_LOCATION:OTHER":1.0,"req_longitude":40.7501,"req_latitude":-73.986,"USER_LOCATION_POI_CONFIDENCE:HIGH":1.0,"STREAM_TYPE":1.0,"rule_score":0.0,"TIER":0.0,"USER_DIST_FROM_REQ_LOC:WITHIN_100M":1.0,"score":0.0},"instrumentation":{"rid":"b2ujrelda0tf7","bucket":"ga"}}]}],"error":null}}
03-07 23:34:14.476 2364-4275/com.tul.aviate D/VolleyRequestBuilder: Requesting: https://maps.google.com/maps/api/geocode/json?language=en_US&latlng=-11.6565%2C54.3978&sensor=true
03-07 23:34:14.809 2364-4277/com.tul.aviate D/VolleyRequestBuilder: Status Code: 200
Response Body: {
"results" : [],
"status" : "ZERO_RESULTS"
}
03-07 23:36:50.933 2364-4770/com.tul.aviate D/VolleyRequestBuilder: Requesting: https://maps.google.com/maps/api/geocode/json?language=en_US&latlng=-73.9860%2C40.7501&sensor=true
03-07 23:36:50.935 2364-4771/com.tul.aviate D/VolleyRequestBuilder: Status Code: 200
Response Body: {
"results" : [
{
"address_components" : [
{
"long_name" : "Antarctica",
"short_name" : "AQ",
"types" : [ "country", "political" ]
}
],
"formatted_address" : "Antarctica",
"geometry" : {
"bounds" : {
"northeast" : {
"lat" : -60.1086999,
"lng" : 180
},
"southwest" : {
"lat" : -90,
"lng" : -180
}
},
"location" : {
"lat" : -75.250973,
"lng" : -0.07138899999999999
},
"location_type" : "APPROXIMATE",
"viewport" : {
"northeast" : {
"lat" : -60.1086999,
"lng" : 180
},
"southwest" : {
"lat" : -90,
"lng" : -180
}
}
},
"place_id" : "ChIJS3WQM3uWuaQRdSAPdB--Um4",
"types" : [ "country", "political" ]
}
],
"status" : "OK"
}
03-07 23:36:58.381 2364-4826/com.tul.aviate D/VolleyRequestBuilder: POST {"appKey":"ALq3OMhN7EY-X3U26qyvDhV_zZltfuzddRJU0FrR6--IhrjY4cuvO0Fm6lU3WesnLWNHpcgGSrKCweyHgZjSAxmY5IckAz6fDA","contexts":[{"radius":20.0,"batteryLevel":100,"chargerOn":false,"eid":"","headphoneOn":false,"lat":-73.98601,"lng":40.7501,"musicPlaying":false,"notifIds":[],"speed":0.0,"stream":"main","time":"2018-03-07T23:36:58+0000","upcomingMeeting":0}],"cpVersion":3,"lang":"en-US","region":"US"}
03-07 23:36:58.381 2364-4826/com.tul.aviate D/VolleyRequestBuilder: Requesting: https://aviate-yql.media.yahoo.com/v2/ace/cards?region=US&lang=en-US&crumb=LvnvxRvdbc.
03-07 23:36:59.115 2364-4771/com.tul.aviate D/VolleyRequestBuilder: Status Code: 200
Response Body: {"response":{"result":[{"cards":[{"card_id":"4b5b8c71-58d2-3f26-abce-318e3d3a01d6","rendering_engine":"custom","type":"MORNING_NIGHT","type_display_name":"Set Alarm","ttl":1520638619,"layout":{"template":"morning_night"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"USER_LOCATION:OTHER":1.0,"USER_SPEED:STILL":1.0,"TIME_OF_DAY_RANGE:NIGHT":1.0,"STREAM_TYPE:MAIN":1.0,"rule_score":3.0,"TIER":3.0,"score":0.5},"instrumentation":{"rid":"6s5dr81da0tsr","bucket":"ga"}},{"card_id":"83a014c3-c0a4-3242-b5a8-79d011b677d6","rendering_engine":"custom","type":"WEATHER","type_display_name":"Weather","ttl":1520638619,"layout":{"template":"weather"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"TIME_OF_DAY_RANGE:NIGHT":1.0,"STREAM_TYPE:MAIN":1.0,"rule_score":3.0,"TIER":3.0,"score":0.25},"instrumentation":{"rid":"6s5dr81da0tsr","bucket":"ga"}},{"card_id":"c81eac4b-4553-3d60-85a6-178968bd5065","rendering_engine":"custom","type":"NEWS_DIGEST","type_display_name":"News Digest","ttl":1520638619,"layout":{"template":"news_digest"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"TIME_OF_DAY_RANGE:NIGHT":1.0,"STREAM_TYPE:MAIN":1.0,"rule_score":2.0,"TIER":2.0,"score":0.25},"instrumentation":{"rid":"6s5dr81da0tsr","bucket":"ga"}},{"card_id":"bcacee7a-d79a-3e4e-a5b8-77c5b6480a8c","rendering_engine":"custom","type":"CALENDAR","type_display_name":"Calendar","ttl":1520638619,"layout":{"template":"calendar"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"USER_LOCATION:OTHER":1.0,"TIME_OF_DAY_RANGE:NIGHT":1.0,"STREAM_TYPE:MAIN":1.0,"rule_score":2.0,"TIER":2.0,"score":0.25},"instrumentation":{"rid":"6s5dr81da0tsr","bucket":"ga"}},{"card_id":"730f79c6-148d-39fd-bba1-1b3eafb8b6dc","rendering_engine":"custom","type":"MUSIC_PLAYING","type_display_name":"Music Player","ttl":1520638619,"layout":{"template":"music_playing"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"STREAM_TYPE:MAIN":1.0,"rule_score":0.0,"TIER":0.0,"score":0.0},"instrumentation":{"rid":"6s5dr81da0tsr","bucket":"ga"}},{"card_id":"ee966fd9-7ca1-368c-b56c-427013d5b9e9","rendering_engine":"custom","type":"ARTIST_INFO","type_display_name":"Artist Info","ttl":1520638619,"layout":{"template":"artist_info"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"STREAM_TYPE:MAIN":1.0,"rule_score":0.0,"TIER":0.0,"score":0.0},"instrumentation":{"rid":"6s5dr81da0tsr","bucket":"ga"}},{"card_id":"2082d004-1852-3041-8e66-2d6595db402e","rendering_engine":"custom","type":"NEARBY_SHORTCUTS","type_display_name":"Nearby Places","ttl":1520638619,"layout":{"template":"nearby_shortcuts"},"data":{"cafe_yelp_url":"http://m.yelp.com/search?find_desc=Cafes&l=a:-73.98601,40.7501,1","restaurant_yelp_url":"http://m.yelp.com/search?find_desc=Restaurant&ls=a:-73.98601,40.7501,1","bar_yelp_url":"http://m.yelp.com/search?find_desc=Bars&l=a:-73.98601,40.7501,1","cafe_yahoo_url":"https://search.yahoo.com/local/s?p=Cafes&lat=-73.98601&lon=40.7501","restaurant_yahoo_url":"https://search.yahoo.com/local/s?p=Restaurants&lat=-73.98601&lon=40.7501","bar_yahoo_url":"https://search.yahoo.com/local/s?p=Bars&lat=-73.98601&lon=40.7501"},"modules":{},"reason":"","notify":false,"ranking_arguments":{"USER_LOCATION:OTHER":1.0,"USER_SPEED:STILL":1.0,"req_longitude":40.7501,"USER_DIST_FROM_REQ_LOC:WITHIN_800M":1.0,"TIME_OF_DAY_RANGE:NIGHT":1.0,"req_latitude":-73.98601,"STREAM_TYPE:MAIN":1.0,"rule_score":1.0,"TIER":1.0,"score":0.0},"instrumentation":{"rid":"6s5dr81da0tsr","bucket":"ga"}},{"card_id":"5977faba-e448-31b1-b992-f289e8cab898","rendering_engine":"custom","type":"NEW_APPS","type_display_name":"Recommended Apps","ttl":1520473020,"layout":{"template":"new_apps"},"data":{"apps":[{"display_name":"Handcent SMS","activity_name":"com.handcent.nextsms","package_name":"com.handcent.nextsms","icon_url":"https://lh6.ggpht.com/ReVvxN64b_nljbPLsCbS2vI4hPlWewsLBb9kJ7Mqog6_WIiCwmk1sdUoreMitibf2_vW=w300","description":"The most p
03-07 23:41:10.620 2364-5507/com.tul.aviate D/VolleyRequestBuilder: POST {"appKey":"ALq3OMhN7EY-X3U26qyvDhV_zZltfuzddRJU0FrR6--IhrjY4cuvO0Fm6lU3WesnLWNHpcgGSrKCweyHgZjSAxmY5IckAz6fDA","contexts":[{"radius":23.429,"batteryLevel":100,"chargerOn":false,"eid":"","headphoneOn":false,"lat":40.7501,"lng":-73.98601,"musicPlaying":false,"notifIds":[],"speed":0.0,"stream":"main","time":"2018-03-07T23:41:10+0000","upcomingMeeting":0}],"cpVersion":3,"lang":"en-US","region":"US"}
03-07 23:41:10.621 2364-5507/com.tul.aviate D/VolleyRequestBuilder: Requesting: https://aviate-yql.media.yahoo.com/v2/ace/cards?region=US&lang=en-US&crumb=LvnvxRvdbc.
03-07 23:41:10.623 2364-5509/com.tul.aviate D/VolleyRequestBuilder: Requesting: https://maps.google.com/maps/api/geocode/json?language=en_US&latlng=40.7501%2C-73.9860&sensor=true
03-07 23:41:10.905 2364-5512/com.tul.aviate D/VolleyRequestBuilder: Status Code: 200
Response Body: {
"error_message" : "You have exceeded your daily request quota for this API. We recommend registering for a key at the Google Developers Console: https://console.developers.google.com/apis/credentials?project=_",
"results" : [],
"status" : "OVER_QUERY_LIMIT"
}
03-07 23:41:11.038 2364-5509/com.tul.aviate D/VolleyRequestBuilder: Requesting: https://maps.google.com/maps/api/geocode/json?language=en_US&latlng=40.7501%2C-73.9860&sensor=true
03-07 23:41:11.226 2364-5512/com.tul.aviate D/VolleyRequestBuilder: Status Code: 200
Response Body: {
"results" : [
{
"address_components" : [
{
"long_name" : "45",
"short_name" : "45",
"types" : [ "street_number" ]
},
{
"long_name" : "West 35th Street",
"short_name" : "W 35th St",
"types" : [ "route" ]
},
{
"long_name" : "Midtown",
"short_name" : "Midtown",
"types" : [ "neighborhood", "political" ]
},
{
"long_name" : "Manhattan",
"short_name" : "Manhattan",
"types" : [ "political", "sublocality", "sublocality_level_1" ]
},
{
"long_name" : "New York",
"short_name" : "New York",
"types" : [ "locality", "political" ]
},
{
"long_name" : "New York County",
"short_name" : "New York County",
"types" : [ "administrative_area_level_2", "political" ]
},
{
"long_name" : "New York",
"short_name" : "NY",
"types" : [ "administrative_area_level_1", "political" ]
},
{
"long_name" : "United States",
"short_name" : "US",
"types" : [ "country", "political" ]
},
{
"long_name" : "10016",
"short_name" : "10016",
"types" : [ "postal_code" ]
}
],
"formatted_address" : "45 W 35th St, New York, NY 10016, USA",
"geometry" : {
"location" : {
"lat" : 40.7500987,
"lng" : -73.9860094
},
"location_type" : "ROOFTOP",
"viewport" : {
"northeast" : {
"lat" : 40.75144768029149,
"lng" : -73.98466041970849
},
"southwest" : {
"lat" : 40.74874971970849,
"lng" : -73.98735838029151
}
}
},
"place_id" : "ChIJ2QHwe6lZwokRHYPiYCxxl-w",
"types" : [ "street_address" ]
},
{
"address_components" : [
{
"long_name" : "Midtown West",
"short_name" : "Midtown West",
"types" : [ "neighborhood", "political" ]
},
{
"long_name" : "Manhattan",
"short_name" : "Manhattan",
"types" : [ "political", "sublocality", "sublocality_level_1" ]
},
{
"long_name" : "New York",
"short_name" : "New York",
"types" : [ "locality", "political" ]
},
{
"long_name" : "New York County",
"short_name" : "New York County",
"types" : [ "administrative_area_level_2", "political" ]
},
{
"long_name" : "New York",
"short_name" : "NY",
"types" : [ "administrative_area_level_1", "political" ]
},
{
"long_name" : "United States",
"short_name" : "US",
"types" : [ "country", "political" ]
}
],
"formatted_address" : "Midtown West, New York, NY, USA",
"geometry" : {
"bounds" : {
"northeast" : {
"lat" : 40.77410690000001,
"lng" : -73.9734618
},
"southwest" : {
"lat" : 40.7484394,
"lng" : -74.00473989999999
}
},
"location" : {
"lat" : 40.7584306,
"lng" : -73.99264579999999
},
"location_type" : "APPROXIMATE",
"viewport" : {
"northeast" : {
03-07 23:41:11.648 2364-5512/com.tul.aviate D/VolleyRequestBuilder: Status Code: 200
Response Body: {"response":{"result":[{"cards":[{"card_id":"4b5b8c71-58d2-3f26-abce-318e3d3a01d6","rendering_engine":"custom","type":"MORNING_NIGHT","type_display_name":"Set Alarm","ttl":1520638872,"layout":{"template":"morning_night"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"USER_LOCATION:OTHER":1.0,"USER_SPEED:STILL":1.0,"TIME_OF_DAY_RANGE:NIGHT":1.0,"STREAM_TYPE:MAIN":1.0,"rule_score":3.0,"TIER":3.0,"score":0.5},"instrumentation":{"rid":"fvu8rb9da0u4n","bucket":"ga"}},{"card_id":"83a014c3-c0a4-3242-b5a8-79d011b677d6","rendering_engine":"custom","type":"WEATHER","type_display_name":"Weather","ttl":1520638872,"layout":{"template":"weather"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"TIME_OF_DAY_RANGE:NIGHT":1.0,"STREAM_TYPE:MAIN":1.0,"rule_score":3.0,"TIER":3.0,"score":0.25},"instrumentation":{"rid":"fvu8rb9da0u4n","bucket":"ga"}},{"card_id":"c81eac4b-4553-3d60-85a6-178968bd5065","rendering_engine":"custom","type":"NEWS_DIGEST","type_display_name":"News Digest","ttl":1520638872,"layout":{"template":"news_digest"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"TIME_OF_DAY_RANGE:NIGHT":1.0,"STREAM_TYPE:MAIN":1.0,"rule_score":2.0,"TIER":2.0,"score":0.25},"instrumentation":{"rid":"fvu8rb9da0u4n","bucket":"ga"}},{"card_id":"bcacee7a-d79a-3e4e-a5b8-77c5b6480a8c","rendering_engine":"custom","type":"CALENDAR","type_display_name":"Calendar","ttl":1520638872,"layout":{"template":"calendar"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"USER_LOCATION:OTHER":1.0,"TIME_OF_DAY_RANGE:NIGHT":1.0,"STREAM_TYPE:MAIN":1.0,"rule_score":2.0,"TIER":2.0,"score":0.25},"instrumentation":{"rid":"fvu8rb9da0u4n","bucket":"ga"}},{"card_id":"eea4f59a-e8a2-3e12-a917-96e254c416d5","rendering_engine":"custom","type":"VENUE_CHOOSER","type_display_name":"Around Me","ttl":1520469672,"layout":{"template":"venue_chooser"},"data":{"venues":[{"name":"Macy's","category":"Department Store","iconUrl":"https://ss3.4sqi.net/img/categories_v2/shops/departmentstore_64.png","id":"41102700f964a520d60b1fe3","provider":"foursquare","eid":"{\"card\":\"venue\",\"id\":\"41102700f964a520d60b1fe3\"}"},{"name":"Brendan's Bar & Grill","category":"American Restaurant","iconUrl":"https://ss3.4sqi.net/img/categories_v2/food/default_64.png","id":"4adaa371f964a520ec2321e3","provider":"foursquare","eid":"{\"card\":\"venue\",\"id\":\"4adaa371f964a520ec2321e3\"}"},{"name":"Hotel Metro","category":"Hotel","iconUrl":"https://ss3.4sqi.net/img/categories_v2/travel/hotel_64.png","id":"4ad9493df964a520961921e3","provider":"foursquare","eid":"{\"card\":\"venue\",\"id\":\"4ad9493df964a520961921e3\"}"}]},"modules":{},"reason":"","notify":false,"ranking_arguments":{"USER_LOCATION:OTHER":1.0,"req_longitude":-73.98601,"USER_DIST_FROM_REQ_LOC:WITHIN_800M":1.0,"req_latitude":40.7501,"STREAM_TYPE:MAIN":1.0,"USER_LOCATION_POI_CONFIDENCE:HIGH":1.0,"rule_score":2.0,"TIER":2.0,"score":0.25},"instrumentation":{"rid":"fvu8rb9da0u4n","bucket":"ga"}},{"card_id":"730f79c6-148d-39fd-bba1-1b3eafb8b6dc","rendering_engine":"custom","type":"MUSIC_PLAYING","type_display_name":"Music Player","ttl":1520638872,"layout":{"template":"music_playing"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"STREAM_TYPE:MAIN":1.0,"rule_score":0.0,"TIER":0.0,"score":0.0},"instrumentation":{"rid":"fvu8rb9da0u4n","bucket":"ga"}},{"card_id":"ee966fd9-7ca1-368c-b56c-427013d5b9e9","rendering_engine":"custom","type":"ARTIST_INFO","type_display_name":"Artist Info","ttl":1520638872,"layout":{"template":"artist_info"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"STREAM_TYPE:MAIN":1.0,"rule_score":0.0,"TIER":0.0,"score":0.0},"instrumentation":{"rid":"fvu8rb9da0u4n","bucket":"ga"}},{"card_id":"2082d004-1852-3041-8e66-2d6595db402e","rendering_engine":"custom","type":"NEARBY_SHORTCUTS","type_display_name":"Nearby Places","ttl":1520638872,"layout":{"template":"nearby_shortcuts"},"data":{"cafe_yelp_url":"http://m.yelp.com
03-07 23:43:01.589 2364-5577/com.tul.aviate D/VolleyRequestBuilder: POST {"appKey":"ALq3OMhN7EY-X3U26qyvDhV_zZltfuzddRJU0FrR6--IhrjY4cuvO0Fm6lU3WesnLWNHpcgGSrKCweyHgZjSAxmY5IckAz6fDA","contexts":[{"radius":23.429,"batteryLevel":100,"chargerOn":false,"eid":"{\"card\":\"venue\",\"id\":\"41102700f964a520d60b1fe3\"}","headphoneOn":false,"lat":40.7501,"lng":-73.98601,"musicPlaying":false,"notifIds":[],"speed":0.0,"stream":"","time":"2018-03-07T23:43:01+0000","upcomingMeeting":0}],"cpVersion":3,"lang":"en-US","region":"US"}
03-07 23:43:01.590 2364-5577/com.tul.aviate D/VolleyRequestBuilder: Requesting: https://aviate-yql.media.yahoo.com/v2/ace/cards?region=US&eid=%7B%22card%22%3A%22venue%22%2C%22id%22%3A%2241102700f964a520d60b1fe3%22%7D&lang=en-US&crumb=LvnvxRvdbc.
03-07 23:43:03.081 2364-5573/com.tul.aviate D/VolleyRequestBuilder: Status Code: 200
Response Body: {"response":{"result":[{"cards":[{"card_id":"9953c0e9-5b77-3162-bcf4-e19fcd1f541f","rendering_engine":"custom","type":"VENUE_INFO","type_display_name":"Venues","ttl":1520469783,"layout":{"template":"venue_info"},"data":{"name":"Macy's","category":"Department Store","iconUrl":"https://ss3.4sqi.net/img/categories_v2/shops/departmentstore_64.png","id":"41102700f964a520d60b1fe3","provider":"foursquare","tips":["Ride vintage wooden escalators dating back to 1902. Look for them on the Broadway side of the shop between the eighth and ninth floors.","The largest store in the world, it has just about everything you need. I love their perfume department. -Tamesha Warren, Top Chef","The world's largest department store, Macy's flagship store on 34th St. Ride the unique wooden escalators up and down its 11 floors and find anything you can think of.","September 22, 2010 Official launch the \"Material Girl\" brand","Check out the window displays.","On Thanksgiving Eve watch the balloons (designed by Stevens Institute of Technology) being inflated for the next day's parade. Nov 24, 48pm.","Um. Stay off the first floor.","Billing itself as the largest shoe department in the world, the 63,000-square-foot second-floor space has 250,000-plus pairs for sale, from boots, to sandals, to sneakers, to special-occasion finds.","Очень глупый, на мой взгляд, универмаг. Все нелогично и одежды хорошей не особо много. Разве что отдел чемоданным сумок на последнем этаже заслуживает внимания.","Muito bom lugar para se fazer compras, uma vez que há muita concorrência os preços são bons e a variedade é muito boa. Bem localizado e diversificado !","Billing itself as the largest shoe department in the world, the 63,000-square-foot second-floor space has 250,000-plus pairs for sale, from boots, to sandals, to sneakers, to special-occasion finds","Service in the shoe department is the worst","Escape the cold outside and spend an afternoon exploring the world's largest store. When you're feeling hungry, pay a visit to the restaurant downstairs and get a burger.","We love Macy's! Best way to get to all their parades, hands down, NY Waterway! Check out their fireworks on the Hudson on the 4th of July!","The company produces the annual Macy's Thanksgiving Day Parade, a well known parade which has been held on the streets of New York City annually since 1924.","This retail giant has installed solar panels on more than 30 stores and has increased recycled content in its catalogs from 3% to 74% in two years.","This is the worst place in the world.","Enjoy the holiday decor.","this place is a hell-hole.","if you are from our of state, go to guest services and receive a 10% discount coupon!"],"images":["https://igx.4sqi.net/img/general/960x720/26065686_SQW5A9DZSp8Dey3_983Nd1OHj2dqJ6u1q60_BsQO1ms.jpg","https://igx.4sqi.net/img/general/960x720/1555599_57OtMLjOHoO-0jhld8Ma4XnwzvnHIJDrZ1s_B4adJrk.jpg","https://igx.4sqi.net/img/general/612x612/4109893_xFL7EkzFHSaPynNxVG07zeVwiv_H1VqDrn2hrVXyjHY.jpg","https://igx.4sqi.net/img/general/960x720/42823195_193SZBlguyGJqcvxyE1MehjQtRR4l5PvUjhkASeZJJY.jpg","https://igx.4sqi.net/img/general/612x612/577836_7WtK0LssEoOQWWlNWl8CCUQ7mJJaQ_px4Cvir12ajVA.jpg","https://igx.4sqi.net/img/general/612x612/2963_V6QEF_qdQzBLzAa387FsWYY0ftv5tvU3VLeWDkLX5Rc.jpg"],"telephone":"2126954400","address":"151 W 34th St","city":"New York","state":"NY","zip":"10001","latitude":40.75076233170576,"longitude":-73.98927858804879,"twitter":{"handle":"macys","viewIntent":"https://twitter.com/macys#Intent;action=android.intent.action.VIEW;package=com.twitter.android;end","tweetIntent":"#Intent;action=android.intent.action.SEND;component=com.twitter.android/.PostActivity;S.android.intent.extra.TEXT=@macys;end"},"yelp":{"url":"https://m.yelp.com/biz/macys-new-york-12?adjust_creative=ogmBMO91tbdmscbTIaQEdA&utm_campaign=yelp_api&utm_medium=a
03-07 23:43:21.345 2364-5592/com.tul.aviate D/VolleyRequestBuilder: POST {"appKey":"ALq3OMhN7EY-X3U26qyvDhV_zZltfuzddRJU0FrR6--IhrjY4cuvO0Fm6lU3WesnLWNHpcgGSrKCweyHgZjSAxmY5IckAz6fDA","contexts":[{"radius":23.429,"batteryLevel":100,"chargerOn":false,"eid":"{\"card\":\"venue\",\"id\":\"4adaa371f964a520ec2321e3\"}","headphoneOn":false,"lat":40.7501,"lng":-73.98601,"musicPlaying":false,"notifIds":[],"speed":0.0,"stream":"","time":"2018-03-07T23:43:21+0000","upcomingMeeting":0}],"cpVersion":3,"lang":"en-US","region":"US"}
03-07 23:43:21.345 2364-5592/com.tul.aviate D/VolleyRequestBuilder: Requesting: https://aviate-yql.media.yahoo.com/v2/ace/cards?region=US&eid=%7B%22card%22%3A%22venue%22%2C%22id%22%3A%224adaa371f964a520ec2321e3%22%7D&lang=en-US&crumb=LvnvxRvdbc.
03-07 23:43:22.179 2364-5573/com.tul.aviate D/VolleyRequestBuilder: Status Code: 200
Response Body: {"response":{"result":[{"cards":[{"card_id":"9953c0e9-5b77-3162-bcf4-e19fcd1f541f","rendering_engine":"custom","type":"VENUE_INFO","type_display_name":"Venues","ttl":1520469802,"layout":{"template":"venue_info"},"data":{"name":"Brendan's Bar & Grill","category":"American Restaurant","iconUrl":"https://ss3.4sqi.net/img/categories_v2/food/default_64.png","id":"4adaa371f964a520ec2321e3","provider":"foursquare","tips":["Food was very good, service was GREAT! Try the banana caramel for dessert! It's big enough for two so share :)","I've had the most delicious chicken pasta dish here that I actually crave it from time to time. They have amazing desserts also! I can't wait to come back.","If you're staying at the Hilton Garden Inn, you get 15% off!","Food & service were both fantastic..","The upstairs is good for a quite business lunch","The service here is horrible. Good food though.","The place is cute but the service was poor. Don't order the crabcakes.","Go with a group, and stay till it closes.","Really bad place. Overpriced. Poor service.","Bartender is awesome","Lugar bonito e um hambúrguer delicioso","Great organic vegetarian choices, so surprising in an Irish Bar. Brendan's is so much more than that, though. Great ambiance & service.","Burgers and sheapards pie good. Service is great. Food came out very quick.","Good pizza and great burger. This place is bigger than it look from the outside, so don't pass by just because it seems crowded.","Great place! Be sure to look at their virtual tour before you go!","This is the bar to go when you are in the neighborhood.","Muito bom! Cardápio variado, local aconchegante... Bom custo benefício.","Beautiful restaurant. Quiet atmosphere (rare for the area). Food was very good and a decent price. Steak was cooked to perfection. Also amazing bar bites, buffalo chicken sliders were delicious!","This place presents itself better than it ends up performing. I wouldn't have anything more than drinks here.","It's true, if you're staying at the Hilton Garden Inn, they give you 15% off! Also, eating at the bar is much better!!"],"images":["https://igx.4sqi.net/img/general/612x612/1991355__i0QN_RpjhU9m9I4rFzQI1WMBDJ10ERuqNWVHoI0LKk.jpg","https://igx.4sqi.net/img/general/612x612/1816603_AzRRzu1BFyORZ-xMCl7ehJTugZ0te9W0XJE7huURp_s.jpg","https://igx.4sqi.net/img/general/960x720/32962528_51-2OehHXUR7cjMQNkKtw0721RKklE29izqUnHb_v04.jpg","https://igx.4sqi.net/img/general/717x959/43435987_Vdnz4fpRKZicRpDHZ-KbbpJL-f2NrmT7XXOs56Gp1_8.jpg","https://igx.4sqi.net/img/general/720x960/4895803_7nV13ggqoU-JINpyZjr_fnhtEIrDCHGDVG-367J9FTk.jpg","https://igx.4sqi.net/img/general/640x640/4413594_F4at6cLTNm6goQmfm6bOnCrJs1CZaHXvWIW20n4uY3s.jpg"],"telephone":"2125645405","address":"42 W 35th St","city":"New York","state":"NY","zip":"10001","latitude":40.74996888859914,"longitude":-73.98602275871767,"twitter":{"handle":null,"viewIntent":null,"tweetIntent":null},"yelp":{"url":null,"rating":0.0,"reviewCount":0,"viewIntent":null}},"modules":{},"reason":"","notify":false,"ranking_arguments":{"poi_latitude":40.74996888859914,"poi_longitude":-73.98602275871767,"USER_LOCATION:OTHER":1.0,"req_longitude":-73.98601,"req_latitude":40.7501,"USER_LOCATION_POI_CONFIDENCE:HIGH":1.0,"STREAM_TYPE":1.0,"rule_score":0.0,"TIER":0.0,"USER_DIST_FROM_REQ_LOC:WITHIN_100M":1.0,"score":0.0},"instrumentation":{"rid":"6j28mpdda0u8q","bucket":"ga"}}]}],"error":null}}
03-07 23:43:32.040 2364-5601/com.tul.aviate D/VolleyRequestBuilder: POST {"appKey":"ALq3OMhN7EY-X3U26qyvDhV_zZltfuzddRJU0FrR6--IhrjY4cuvO0Fm6lU3WesnLWNHpcgGSrKCweyHgZjSAxmY5IckAz6fDA","contexts":[{"radius":23.429,"batteryLevel":100,"chargerOn":false,"eid":"{\"card\":\"venue\",\"id\":\"4ad9493df964a520961921e3\"}","headphoneOn":false,"lat":40.7501,"lng":-73.98601,"musicPlaying":false,"notifIds":[],"speed":0.0,"stream":"","time":"2018-03-07T23:43:32+0000","upcomingMeeting":0}],"cpVersion":3,"lang":"en-US","region":"US"}
03-07 23:43:32.040 2364-5601/com.tul.aviate D/VolleyRequestBuilder: Requesting: https://aviate-yql.media.yahoo.com/v2/ace/cards?region=US&eid=%7B%22card%22%3A%22venue%22%2C%22id%22%3A%224ad9493df964a520961921e3%22%7D&lang=en-US&crumb=LvnvxRvdbc.
03-07 23:43:32.752 2364-5573/com.tul.aviate D/VolleyRequestBuilder: Status Code: 200
Response Body: {"response":{"result":[{"cards":[{"card_id":"9953c0e9-5b77-3162-bcf4-e19fcd1f541f","rendering_engine":"custom","type":"VENUE_INFO","type_display_name":"Venues","ttl":1520469813,"layout":{"template":"venue_info"},"data":{"name":"Hotel Metro","category":"Hotel","iconUrl":"https://ss3.4sqi.net/img/categories_v2/travel/hotel_64.png","id":"4ad9493df964a520961921e3","provider":"foursquare","tips":["Friendly staff, clean and spacious room but the 'continental' breakfast isn't so continental.. Little choice but delicious muffins and great orange juice.","Car park serving the hotel is opposite hotel towards 6th Ave end of road. Hotel gets a discounted rate.","Roof terrace bar worth a visit for the great views of Empire State Building!","Since you're this close, go to the Empire State Building 2 blocks away.","Super Lage,saubere Zimmer - was will man mehr","Continental breakfast from 6:30 to 11 a.m.","Staff not great, Internet is unreliable. But cozy, clean and great location","Had a great stay here!! Comfortable beds! It's still a bit noisy but it's New-York!","Good location, friendly staff. Breakfast is really basic and simple, but really good coffee shops around if you want something more.","Decent location but reception and bell staff are not great and the rooms are smaller than you find in Paris! Free wine and appetisers in evening are a great touch and those staff are lovely!","Very friendly and accommodating staff. Small room yes but it's NYC. Very comfortable, great amenities!","Excelente hotel. Gran servicio. Buena ubicación. Camas increibles","Best hotel I've ever been (for now)","Great hotel, nearby the subway and times square! Friendly staff and great breakfast!","If you want a room with a tub you have to ask for it.","Very very poor service.","remember to ask for a no smoking room"],"images":["https://igx.4sqi.net/img/general/720x960/740913_oNzfChnIwMZQPzJF_cHAgYx2C-wUTZGxpLHPDxISppI.jpg","https://igx.4sqi.net/img/general/612x612/1388998_2ZkvPYquWoqfY7GkSLsDAl3gNczbCDhlwULO2DujnPc.jpg","https://igx.4sqi.net/img/general/540x960/12673962_t-tpgHNBIC7CAXk8Z28sXranMPntclnMjUDJ8wYpxnE.jpg","https://igx.4sqi.net/img/general/540x720/E0JGGQ0QKPWHZ13X5HYXLSWUPT1IWNX1MPXYY2NDHWLBLXFN.jpg","https://igx.4sqi.net/img/general/612x612/1710932_hdHlwTz0RTCWrpwjnazUFmm38bY1SyqBCzM-4Y1Ao1I.jpg","https://igx.4sqi.net/img/general/537x720/Se7jmbR7GW9GpD_-E0226LhKHv4_qLAiPP_Gybe1iWE.jpg"],"telephone":"8003563870","address":"45 W 35th St","city":"New York","state":"NY","zip":"10001","latitude":40.750143,"longitude":-73.9859914,"twitter":{"handle":"hotelmetronyc","viewIntent":"https://twitter.com/hotelmetronyc#Intent;action=android.intent.action.VIEW;package=com.twitter.android;end","tweetIntent":"#Intent;action=android.intent.action.SEND;component=com.twitter.android/.PostActivity;S.android.intent.extra.TEXT=@hotelmetronyc;end"},"yelp":{"url":"https://m.yelp.com/biz/hotel-metro-new-york?adjust_creative=ogmBMO91tbdmscbTIaQEdA&utm_campaign=yelp_api&utm_medium=api_v2_search&utm_source=ogmBMO91tbdmscbTIaQEdA","rating":3.5,"reviewCount":87,"viewIntent":"https://m.yelp.com/biz/hotel-metro-new-york?adjust_creative=ogmBMO91tbdmscbTIaQEdA&utm_campaign=yelp_api&utm_medium=api_v2_search&utm_source=ogmBMO91tbdmscbTIaQEdA#Intent;action=android.intent.action.VIEW;end"}},"modules":{},"reason":"","notify":false,"ranking_arguments":{"poi_latitude":40.750143,"poi_longitude":-73.9859914,"USER_LOCATION:OTHER":1.0,"req_longitude":-73.98601,"req_latitude":40.7501,"USER_LOCATION_POI_CONFIDENCE:HIGH":1.0,"STREAM_TYPE":1.0,"rule_score":0.0,"TIER":0.0,"USER_DIST_FROM_REQ_LOC:WITHIN_100M":1.0,"score":0.0},"instrumentation":{"rid":"acr6h1pda0u95","bucket":"ga"}}]}],"error":null}}
03-07 23:45:27.722 2364-2364/com.tul.aviate D/VolleyRequestBuilder: Requesting: https://aviate-yql.media.yahoo.com/v1/nearby_venues?ll=40.7500983%2C-73.9860083&lang=en-US
03-07 23:45:28.373 2364-5695/com.tul.aviate D/VolleyRequestBuilder: Status Code: 200
Response Body: {"venues":{"result":[{"id":"41102700f964a520d60b1fe3","name":"Macy's","primary_category":{"id":"","name":"Department Store","icon_url":"https://ss3.4sqi.net/img/categories_v2/shops/departmentstore_64.png","primary":true},"provider":"foursquare"},{"id":"4ad9493df964a520961921e3","name":"Hotel Metro","primary_category":{"id":"","name":"Hotel","icon_url":"https://ss3.4sqi.net/img/categories_v2/travel/hotel_64.png","primary":true},"provider":"foursquare"},{"id":"4adaa371f964a520ec2321e3","name":"Brendan's Bar & Grill","primary_category":{"id":"","name":"American Restaurant","icon_url":"https://ss3.4sqi.net/img/categories_v2/food/default_64.png","primary":true},"provider":"foursquare"},{"id":"4f5bf497e4b09f0f984fe3a6","name":"Metro Grill","primary_category":{"id":"","name":"New American Restaurant","icon_url":"https://ss3.4sqi.net/img/categories_v2/food/newamerican_64.png","primary":true},"provider":"foursquare"},{"id":"49f26f7cf964a5202f6a1fe3","name":"Hotel Metro Rooftop Bar","primary_category":{"id":"","name":"Hotel Bar","icon_url":"https://ss3.4sqi.net/img/categories_v2/travel/hotel_bar_64.png","primary":true},"provider":"foursquare"},{"id":"4cab988aa6e08cfa67f4a694","name":"Raika Studio","primary_category":{"id":"","name":"Salon / Barbershop","icon_url":"https://ss3.4sqi.net/img/categories_v2/shops/salon_barber_64.png","primary":true},"provider":"foursquare"},{"id":"51bc7fb7498e6935e2460ef1","name":"Ebenezer Eyelash Extension - 35th Street","primary_category":{"id":"","name":"Health & Beauty Service","icon_url":"https://ss3.4sqi.net/img/categories_v2/shops/salon_barber_64.png","primary":true},"provider":"foursquare"},{"id":"42911d00f964a520f5231fe3","name":"New York Penn Station","primary_category":{"id":"","name":"Train Station","icon_url":"https://ss3.4sqi.net/img/categories_v2/travel/trainstation_64.png","primary":true},"provider":"foursquare"},{"id":"4cf53fc099c6236ab3144a67","name":"Digital Transitions","primary_category":{"id":"","name":"Office","icon_url":"https://ss3.4sqi.net/img/categories_v2/building/default_64.png","primary":true},"provider":"foursquare"},{"id":"574da377498ef19a1bd08764","name":"Equinox Gramercy","primary_category":{"id":"","name":"Gym / Fitness Center","icon_url":"https://ss3.4sqi.net/img/categories_v2/building/gym_64.png","primary":true},"provider":"foursquare"},{"id":"4b450190f964a520060126e3","name":"Tannen's Magic Shop","primary_category":{"id":"","name":"Hobby Shop","icon_url":"https://ss3.4sqi.net/img/categories_v2/shops/hobbyshop_64.png","primary":true},"provider":"foursquare"},{"id":"4ae6363ef964a520aba521e3","name":"Madison Square Garden","primary_category":{"id":"","name":"Basketball Stadium","icon_url":"https://ss3.4sqi.net/img/categories_v2/arts_entertainment/stadium_basketball_64.png","primary":true},"provider":"foursquare"},{"id":"527abd5611d24c5659aaf60a","name":"Network ESC","primary_category":{"id":"","name":"Office","icon_url":"https://ss3.4sqi.net/img/categories_v2/building/default_64.png","primary":true},"provider":"foursquare"},{"id":"43695300f964a5208c291fe3","name":"Empire State Building","primary_category":{"id":"","name":"Building","icon_url":"https://ss3.4sqi.net/img/categories_v2/building/default_64.png","primary":true},"provider":"foursquare"},{"id":"4ad7a8d9f964a520640d21e3","name":"MTA Subway - 34th St/Herald Sq (B/D/F/M/N/Q/R/W)","primary_category":{"id":"","name":"Metro Station","icon_url":"https://ss3.4sqi.net/img/categories_v2/travel/subway_64.png","primary":true},"provider":"foursquare"},{"id":"558c02f6498e60433bcfd833","name":"The Gregory Hotel New York","primary_category":{"id":"","name":"Hotel","icon_url":"https://ss3.4sqi.net/img/categories_v2/travel/hotel_64.png","primary":true},"provider":"foursquare"},{"id":"42829c80f964a5206a221fe3","name":"Grand Central Terminal","primary_category":{"id":"","name":"Train Station","icon_url":"https://ss3.4sqi.net/img/categories_v2/travel/trainstation_64.png","primary":true},"provider":"foursquare"},{"id":"57180219498e1588034bf6aa","nam
03-07 23:45:33.161 2364-5711/com.tul.aviate D/VolleyRequestBuilder: POST {"appKey":"ALq3OMhN7EY-X3U26qyvDhV_zZltfuzddRJU0FrR6--IhrjY4cuvO0Fm6lU3WesnLWNHpcgGSrKCweyHgZjSAxmY5IckAz6fDA","contexts":[{"radius":23.429,"batteryLevel":100,"chargerOn":false,"eid":"{\"card\":\"venue\",\"id\":\"4f5bf497e4b09f0f984fe3a6\"}","headphoneOn":false,"lat":40.7501,"lng":-73.98601,"musicPlaying":false,"notifIds":[],"speed":0.0,"stream":"","time":"2018-03-07T23:45:33+0000","upcomingMeeting":0}],"cpVersion":3,"lang":"en-US","region":"US"}
03-07 23:45:33.161 2364-5711/com.tul.aviate D/VolleyRequestBuilder: Requesting: https://aviate-yql.media.yahoo.com/v2/ace/cards?region=US&eid=%7B%22card%22%3A%22venue%22%2C%22id%22%3A%224f5bf497e4b09f0f984fe3a6%22%7D&lang=en-US&crumb=LvnvxRvdbc.
03-07 23:45:33.941 2364-5695/com.tul.aviate D/VolleyRequestBuilder: Status Code: 200
Response Body: {"response":{"result":[{"cards":[{"card_id":"9953c0e9-5b77-3162-bcf4-e19fcd1f541f","rendering_engine":"custom","type":"VENUE_INFO","type_display_name":"Venues","ttl":1520469934,"layout":{"template":"venue_info"},"data":{"name":"Metro Grill","category":"New American Restaurant","iconUrl":"https://ss3.4sqi.net/img/categories_v2/food/newamerican_64.png","id":"4f5bf497e4b09f0f984fe3a6","provider":"foursquare","tips":["Great steaks!!!!!!!!!'","Great food. The atmosphere is really New-Yorker ;)","Got some drinks and a menu, waited an hour for the server to come back and take our food order. Never came. Asked to speak with the manager. Never came either. Walked out.","DNAInfo.com: Head-on view of the Empire State Building, which towers just a block away. 13th-floor rooftop is covered by awnings. Prices arent bad. Grub from the restaurants appetizer menu.","Very friendly. There's no such thing as cash only, unless their computer system is down. Good bar lunch special, soup and sandwich of the day for $10 from 12-4 and $4 draft beers 3-7.","Don't get the calamari. So gross.","Vegetarians beware!!Even pasta (penne/ravioli)sauces have chicken stock, one cook told me, better off going somewhere else & less expensive!","Good food but we were told cash only after 11:00 am!! Wtf?!?!"],"images":["https://igx.4sqi.net/img/general/1440x1920/1345561_Lz9SLOLjdKtrQrA9RUL1e0kb3Hz4Mb56D0CyQIm2PAw.jpg","https://igx.4sqi.net/img/general/1440x1920/13837811_Ik9D5O3BcKqz_bI0ODJs4UZDaFXXb4PeDc8hayDv9QI.jpg","https://igx.4sqi.net/img/general/960x540/7092434_yAsZGdZZhN5koCJHJMCmeAHF4Dzu6bTYHy5k7_67DhQ.jpg","https://igx.4sqi.net/img/general/960x720/72647939_oEgIU_PKQkpg1SnyRDYdT5K0Af9trXq-n15Qg7LDT3s.jpg","https://igx.4sqi.net/img/general/960x720/5250189_PUXmd2VRPVdbSC40MMenq7OHbf-PAMUnrOZf0StIyVM.jpg","https://igx.4sqi.net/img/general/959x717/52777457_PvLk5beouhiBp0c1u582haIeTkIgpt9LMQRk-KqEaN8.jpg"],"telephone":"2122793535","address":"45 W 35th St","city":"New York","state":"NY","zip":"10001","latitude":40.749978050701834,"longitude":-73.98598717751102,"twitter":{"handle":"hotelmetronyc","viewIntent":"https://twitter.com/hotelmetronyc#Intent;action=android.intent.action.VIEW;package=com.twitter.android;end","tweetIntent":"#Intent;action=android.intent.action.SEND;component=com.twitter.android/.PostActivity;S.android.intent.extra.TEXT=@hotelmetronyc;end"},"yelp":{"url":"https://m.yelp.com/biz/metro-grill-new-york?adjust_creative=ogmBMO91tbdmscbTIaQEdA&utm_campaign=yelp_api&utm_medium=api_v2_search&utm_source=ogmBMO91tbdmscbTIaQEdA","rating":3.0,"reviewCount":42,"viewIntent":"https://m.yelp.com/biz/metro-grill-new-york?adjust_creative=ogmBMO91tbdmscbTIaQEdA&utm_campaign=yelp_api&utm_medium=api_v2_search&utm_source=ogmBMO91tbdmscbTIaQEdA#Intent;action=android.intent.action.VIEW;end"}},"modules":{},"reason":"","notify":false,"ranking_arguments":{"poi_latitude":40.749978050701834,"poi_longitude":-73.98598717751102,"USER_LOCATION:OTHER":1.0,"req_longitude":-73.98601,"req_latitude":40.7501,"USER_LOCATION_POI_CONFIDENCE:HIGH":1.0,"STREAM_TYPE":1.0,"rule_score":0.0,"TIER":0.0,"USER_DIST_FROM_REQ_LOC:WITHIN_100M":1.0,"score":0.0},"instrumentation":{"rid":"boq6p6tda0ucu","bucket":"ga"}}]}],"error":null}}
03-07 23:45:41.839 2364-2364/com.tul.aviate D/VolleyRequestBuilder: Requesting: https://aviate-yql.media.yahoo.com/v1/nearby_venues?ll=40.7500983%2C-73.9860083&lang=en-US
03-07 23:45:41.950 2364-5695/com.tul.aviate D/VolleyRequestBuilder: Status Code: 200
Response Body: {"venues":{"result":[{"id":"41102700f964a520d60b1fe3","name":"Macy's","primary_category":{"id":"","name":"Department Store","icon_url":"https://ss3.4sqi.net/img/categories_v2/shops/departmentstore_64.png","primary":true},"provider":"foursquare"},{"id":"4ad9493df964a520961921e3","name":"Hotel Metro","primary_category":{"id":"","name":"Hotel","icon_url":"https://ss3.4sqi.net/img/categories_v2/travel/hotel_64.png","primary":true},"provider":"foursquare"},{"id":"4adaa371f964a520ec2321e3","name":"Brendan's Bar & Grill","primary_category":{"id":"","name":"American Restaurant","icon_url":"https://ss3.4sqi.net/img/categories_v2/food/default_64.png","primary":true},"provider":"foursquare"},{"id":"4f5bf497e4b09f0f984fe3a6","name":"Metro Grill","primary_category":{"id":"","name":"New American Restaurant","icon_url":"https://ss3.4sqi.net/img/categories_v2/food/newamerican_64.png","primary":true},"provider":"foursquare"},{"id":"49f26f7cf964a5202f6a1fe3","name":"Hotel Metro Rooftop Bar","primary_category":{"id":"","name":"Hotel Bar","icon_url":"https://ss3.4sqi.net/img/categories_v2/travel/hotel_bar_64.png","primary":true},"provider":"foursquare"},{"id":"4cab988aa6e08cfa67f4a694","name":"Raika Studio","primary_category":{"id":"","name":"Salon / Barbershop","icon_url":"https://ss3.4sqi.net/img/categories_v2/shops/salon_barber_64.png","primary":true},"provider":"foursquare"},{"id":"51bc7fb7498e6935e2460ef1","name":"Ebenezer Eyelash Extension - 35th Street","primary_category":{"id":"","name":"Health & Beauty Service","icon_url":"https://ss3.4sqi.net/img/categories_v2/shops/salon_barber_64.png","primary":true},"provider":"foursquare"},{"id":"42911d00f964a520f5231fe3","name":"New York Penn Station","primary_category":{"id":"","name":"Train Station","icon_url":"https://ss3.4sqi.net/img/categories_v2/travel/trainstation_64.png","primary":true},"provider":"foursquare"},{"id":"4cf53fc099c6236ab3144a67","name":"Digital Transitions","primary_category":{"id":"","name":"Office","icon_url":"https://ss3.4sqi.net/img/categories_v2/building/default_64.png","primary":true},"provider":"foursquare"},{"id":"574da377498ef19a1bd08764","name":"Equinox Gramercy","primary_category":{"id":"","name":"Gym / Fitness Center","icon_url":"https://ss3.4sqi.net/img/categories_v2/building/gym_64.png","primary":true},"provider":"foursquare"},{"id":"4b450190f964a520060126e3","name":"Tannen's Magic Shop","primary_category":{"id":"","name":"Hobby Shop","icon_url":"https://ss3.4sqi.net/img/categories_v2/shops/hobbyshop_64.png","primary":true},"provider":"foursquare"},{"id":"4ae6363ef964a520aba521e3","name":"Madison Square Garden","primary_category":{"id":"","name":"Basketball Stadium","icon_url":"https://ss3.4sqi.net/img/categories_v2/arts_entertainment/stadium_basketball_64.png","primary":true},"provider":"foursquare"},{"id":"527abd5611d24c5659aaf60a","name":"Network ESC","primary_category":{"id":"","name":"Office","icon_url":"https://ss3.4sqi.net/img/categories_v2/building/default_64.png","primary":true},"provider":"foursquare"},{"id":"43695300f964a5208c291fe3","name":"Empire State Building","primary_category":{"id":"","name":"Building","icon_url":"https://ss3.4sqi.net/img/categories_v2/building/default_64.png","primary":true},"provider":"foursquare"},{"id":"4ad7a8d9f964a520640d21e3","name":"MTA Subway - 34th St/Herald Sq (B/D/F/M/N/Q/R/W)","primary_category":{"id":"","name":"Metro Station","icon_url":"https://ss3.4sqi.net/img/categories_v2/travel/subway_64.png","primary":true},"provider":"foursquare"},{"id":"558c02f6498e60433bcfd833","name":"The Gregory Hotel New York","primary_category":{"id":"","name":"Hotel","icon_url":"https://ss3.4sqi.net/img/categories_v2/travel/hotel_64.png","primary":true},"provider":"foursquare"},{"id":"42829c80f964a5206a221fe3","name":"Grand Central Terminal","primary_category":{"id":"","name":"Train Station","icon_url":"https://ss3.4sqi.net/img/categories_v2/travel/trainstation_64.png","primary":true},"provider":"foursquare"},{"id":"57180219498e1588034bf6aa","nam
03-07 23:45:45.579 2364-5733/com.tul.aviate D/VolleyRequestBuilder: POST {"appKey":"ALq3OMhN7EY-X3U26qyvDhV_zZltfuzddRJU0FrR6--IhrjY4cuvO0Fm6lU3WesnLWNHpcgGSrKCweyHgZjSAxmY5IckAz6fDA","contexts":[{"radius":23.429,"batteryLevel":100,"chargerOn":false,"eid":"{\"card\":\"venue\",\"id\":\"49f26f7cf964a5202f6a1fe3\"}","headphoneOn":false,"lat":40.7501,"lng":-73.98601,"musicPlaying":false,"notifIds":[],"speed":0.0,"stream":"","time":"2018-03-07T23:45:45+0000","upcomingMeeting":0}],"cpVersion":3,"lang":"en-US","region":"US"}
03-07 23:45:45.579 2364-5733/com.tul.aviate D/VolleyRequestBuilder: Requesting: https://aviate-yql.media.yahoo.com/v2/ace/cards?region=US&eid=%7B%22card%22%3A%22venue%22%2C%22id%22%3A%2249f26f7cf964a5202f6a1fe3%22%7D&lang=en-US&crumb=LvnvxRvdbc.
03-07 23:45:46.592 2364-5695/com.tul.aviate D/VolleyRequestBuilder: Status Code: 200
Response Body: {"response":{"result":[{"cards":[{"card_id":"9953c0e9-5b77-3162-bcf4-e19fcd1f541f","rendering_engine":"custom","type":"VENUE_INFO","type_display_name":"Venues","ttl":1520469946,"layout":{"template":"venue_info"},"data":{"name":"Hotel Metro Rooftop Bar","category":"Hotel Bar","iconUrl":"https://ss3.4sqi.net/img/categories_v2/travel/hotel_bar_64.png","id":"49f26f7cf964a5202f6a1fe3","provider":"foursquare","tips":["a bit pricey, but the view is nice.","Great view of the Empire State Building and midtown Manhattan","Great view!","No hh price but for $12 a drink it's HUGE","kinda pricey, but the drinks are mixed very nicely and on the stronger side","View of the Empire State Building :)","Great view, but 10.00 for a draft beer is a bit much. Half the price on the ground floor!","$15 for a beefeater on the rocks? Pretty sure I could pretty much buy the bottle for that price.","Hidden gem near Herald Sq. Great view of the Empire State Building and a nice laid back atmosphere.","Such a great view of empire state","$15 for a Jack & Coke. Ripoff alert.","Very pricey compared to UK prices","Great view of the Empire State Building! Closes too early though.","This place is stupid. If you get in. There's a REALLY lame 75 person limit in a very spacious. The bartenders are too anxious to be friendly, if too many people want to spend money. Never again.","Great wines by the glass, only 8$ for a 7oz pour","The Roof Garden is closed after Oct. The Metro Grill on the ground floor is open but i could not create a location without it being a duplicate."],"images":["https://igx.4sqi.net/img/general/720x537/NEJHHQGO0KRQAWHIPBLP5Q4QSXQS2LD5D0J1LTHL4BAIR05W.jpg","https://igx.4sqi.net/img/general/612x612/HNufX68u0LHll9pLb-bRnhp8cTQGYLllZUwUmLpvotE.jpg","https://igx.4sqi.net/img/general/537x720/OH2TVXL5NCN3AGLW5ZEBJ2RHNYDV02AZUHOHG5IPSRCNKOBA.jpg","https://igx.4sqi.net/img/general/540x540/Ncevf_n9um5I503WNezIdx-XKbPsb4lnTyYlhixa3QQ.jpg","https://igx.4sqi.net/img/general/612x612/229633_lW7au2RtNHf9rCsOBXahLeYTOynMMBxlvOtxiLUj6zM.jpg","https://igx.4sqi.net/img/general/612x612/229633_EkLz_rz4LqUGDwOdGVHtOO8cNkFCkgr04MXfddy7RvY.jpg"],"telephone":"2129472501","address":"45 W 35th St","city":"New York","state":"NY","zip":"10001","latitude":40.75004823404805,"longitude":-73.98600934659744,"twitter":{"handle":"hotelmetronyc","viewIntent":"https://twitter.com/hotelmetronyc#Intent;action=android.intent.action.VIEW;package=com.twitter.android;end","tweetIntent":"#Intent;action=android.intent.action.SEND;component=com.twitter.android/.PostActivity;S.android.intent.extra.TEXT=@hotelmetronyc;end"},"yelp":{"url":"https://m.yelp.com/biz/hotel-metro-new-york?adjust_creative=ogmBMO91tbdmscbTIaQEdA&utm_campaign=yelp_api&utm_medium=api_v2_search&utm_source=ogmBMO91tbdmscbTIaQEdA","rating":3.5,"reviewCount":87,"viewIntent":"https://m.yelp.com/biz/hotel-metro-new-york?adjust_creative=ogmBMO91tbdmscbTIaQEdA&utm_campaign=yelp_api&utm_medium=api_v2_search&utm_source=ogmBMO91tbdmscbTIaQEdA#Intent;action=android.intent.action.VIEW;end"}},"modules":{},"reason":"","notify":false,"ranking_arguments":{"poi_latitude":40.75004823404805,"poi_longitude":-73.98600934659744,"USER_LOCATION:OTHER":1.0,"req_longitude":-73.98601,"req_latitude":40.7501,"USER_LOCATION_POI_CONFIDENCE:HIGH":1.0,"STREAM_TYPE":1.0,"rule_score":0.0,"TIER":0.0,"USER_DIST_FROM_REQ_LOC:WITHIN_100M":1.0,"score":0.0},"instrumentation":{"rid":"bd1vc3pda0uda","bucket":"ga"}}]}],"error":null}}
03-07 23:45:55.684 2364-2364/com.tul.aviate D/VolleyRequestBuilder: Requesting: https://aviate-yql.media.yahoo.com/v1/nearby_venues?ll=40.7500983%2C-73.9860083&lang=en-US
03-07 23:45:55.796 2364-5695/com.tul.aviate D/VolleyRequestBuilder: Status Code: 200
Response Body: {"venues":{"result":[{"id":"41102700f964a520d60b1fe3","name":"Macy's","primary_category":{"id":"","name":"Department Store","icon_url":"https://ss3.4sqi.net/img/categories_v2/shops/departmentstore_64.png","primary":true},"provider":"foursquare"},{"id":"4ad9493df964a520961921e3","name":"Hotel Metro","primary_category":{"id":"","name":"Hotel","icon_url":"https://ss3.4sqi.net/img/categories_v2/travel/hotel_64.png","primary":true},"provider":"foursquare"},{"id":"4adaa371f964a520ec2321e3","name":"Brendan's Bar & Grill","primary_category":{"id":"","name":"American Restaurant","icon_url":"https://ss3.4sqi.net/img/categories_v2/food/default_64.png","primary":true},"provider":"foursquare"},{"id":"4f5bf497e4b09f0f984fe3a6","name":"Metro Grill","primary_category":{"id":"","name":"New American Restaurant","icon_url":"https://ss3.4sqi.net/img/categories_v2/food/newamerican_64.png","primary":true},"provider":"foursquare"},{"id":"49f26f7cf964a5202f6a1fe3","name":"Hotel Metro Rooftop Bar","primary_category":{"id":"","name":"Hotel Bar","icon_url":"https://ss3.4sqi.net/img/categories_v2/travel/hotel_bar_64.png","primary":true},"provider":"foursquare"},{"id":"4cab988aa6e08cfa67f4a694","name":"Raika Studio","primary_category":{"id":"","name":"Salon / Barbershop","icon_url":"https://ss3.4sqi.net/img/categories_v2/shops/salon_barber_64.png","primary":true},"provider":"foursquare"},{"id":"51bc7fb7498e6935e2460ef1","name":"Ebenezer Eyelash Extension - 35th Street","primary_category":{"id":"","name":"Health & Beauty Service","icon_url":"https://ss3.4sqi.net/img/categories_v2/shops/salon_barber_64.png","primary":true},"provider":"foursquare"},{"id":"42911d00f964a520f5231fe3","name":"New York Penn Station","primary_category":{"id":"","name":"Train Station","icon_url":"https://ss3.4sqi.net/img/categories_v2/travel/trainstation_64.png","primary":true},"provider":"foursquare"},{"id":"4cf53fc099c6236ab3144a67","name":"Digital Transitions","primary_category":{"id":"","name":"Office","icon_url":"https://ss3.4sqi.net/img/categories_v2/building/default_64.png","primary":true},"provider":"foursquare"},{"id":"574da377498ef19a1bd08764","name":"Equinox Gramercy","primary_category":{"id":"","name":"Gym / Fitness Center","icon_url":"https://ss3.4sqi.net/img/categories_v2/building/gym_64.png","primary":true},"provider":"foursquare"},{"id":"4b450190f964a520060126e3","name":"Tannen's Magic Shop","primary_category":{"id":"","name":"Hobby Shop","icon_url":"https://ss3.4sqi.net/img/categories_v2/shops/hobbyshop_64.png","primary":true},"provider":"foursquare"},{"id":"4ae6363ef964a520aba521e3","name":"Madison Square Garden","primary_category":{"id":"","name":"Basketball Stadium","icon_url":"https://ss3.4sqi.net/img/categories_v2/arts_entertainment/stadium_basketball_64.png","primary":true},"provider":"foursquare"},{"id":"527abd5611d24c5659aaf60a","name":"Network ESC","primary_category":{"id":"","name":"Office","icon_url":"https://ss3.4sqi.net/img/categories_v2/building/default_64.png","primary":true},"provider":"foursquare"},{"id":"43695300f964a5208c291fe3","name":"Empire State Building","primary_category":{"id":"","name":"Building","icon_url":"https://ss3.4sqi.net/img/categories_v2/building/default_64.png","primary":true},"provider":"foursquare"},{"id":"4ad7a8d9f964a520640d21e3","name":"MTA Subway - 34th St/Herald Sq (B/D/F/M/N/Q/R/W)","primary_category":{"id":"","name":"Metro Station","icon_url":"https://ss3.4sqi.net/img/categories_v2/travel/subway_64.png","primary":true},"provider":"foursquare"},{"id":"558c02f6498e60433bcfd833","name":"The Gregory Hotel New York","primary_category":{"id":"","name":"Hotel","icon_url":"https://ss3.4sqi.net/img/categories_v2/travel/hotel_64.png","primary":true},"provider":"foursquare"},{"id":"42829c80f964a5206a221fe3","name":"Grand Central Terminal","primary_category":{"id":"","name":"Train Station","icon_url":"https://ss3.4sqi.net/img/categories_v2/travel/trainstation_64.png","primary":true},"provider":"foursquare"},{"id":"57180219498e1588034bf6aa","nam
03-07 23:46:13.461 2364-5759/com.tul.aviate D/VolleyRequestBuilder: POST {"appKey":"ALq3OMhN7EY-X3U26qyvDhV_zZltfuzddRJU0FrR6--IhrjY4cuvO0Fm6lU3WesnLWNHpcgGSrKCweyHgZjSAxmY5IckAz6fDA","contexts":[{"radius":23.429,"batteryLevel":100,"chargerOn":false,"eid":"{\"card\":\"venue\",\"id\":\"42829c80f964a5206a221fe3\"}","headphoneOn":false,"lat":40.7501,"lng":-73.98601,"musicPlaying":false,"notifIds":[],"speed":0.0,"stream":"","time":"2018-03-07T23:46:13+0000","upcomingMeeting":0}],"cpVersion":3,"lang":"en-US","region":"US"}
03-07 23:46:13.461 2364-5759/com.tul.aviate D/VolleyRequestBuilder: Requesting: https://aviate-yql.media.yahoo.com/v2/ace/cards?region=US&eid=%7B%22card%22%3A%22venue%22%2C%22id%22%3A%2242829c80f964a5206a221fe3%22%7D&lang=en-US&crumb=LvnvxRvdbc.
03-07 23:46:14.443 2364-5695/com.tul.aviate D/VolleyRequestBuilder: Status Code: 200
Response Body: {"response":{"result":[{"cards":[{"card_id":"9953c0e9-5b77-3162-bcf4-e19fcd1f541f","rendering_engine":"custom","type":"VENUE_INFO","type_display_name":"Venues","ttl":1520469974,"layout":{"template":"venue_info"},"data":{"name":"Grand Central Terminal","category":"Train Station","iconUrl":"https://ss3.4sqi.net/img/categories_v2/travel/trainstation_64.png","id":"42829c80f964a5206a221fe3","provider":"foursquare","tips":["This is where it all begins. Or ends. Where S returned from boarding school, where B headed to Yale, and where D and S struck up an unlikely romance. (I Will Always Love You)","Spot someone that looks good and then don't talk to them because that's what you were going to do anyway!","Look left when inbound or right when outbound on the upper level to see Track 61, President Franklin Delano Roosevelt old private platform. His armor-clad train car is still there.","Go to the grand hall and look up!","visit the whispering gallery with a friend.","Best place to just people watch.","Did you know? Famed tight rope walker, Philippe Petit walked the length of a wire stretched high above Grand Centrals Main Concourse in 1987.","See you if you can find the one piece of ceiling they left uncleaned as a reminder","The main concourse boasts a hidden staircase thats used by Grand Central employees. You can see the brass cylinder that conceals the steel steps in the center of the information booth.","The 67 tracks are numbered according to their geographic location in the terminal building rather than the trains' destinations, because all of the trains terminate at Grand Central.","The world's largest Tiffany clock, measuring 14 feet in diameter, resides at the center of the sculptural group at Grand Central's 42nd Street entrance.","Be one of the 750,000 people passing through Grand Central Terminal daily.","The NYC Landmarks Preservation Commission designated Grand Central as a historical landmark on August 2, 1967.","Learn the difference between Grand Central Terminal and Grand Central Station. Impress your friends!","Welcoming over 750 thousand people a day, this station was once the largest indoor space in America. Today, get some shopping done for your trip while you wait!","Look at the ceiling in the Main Concourse. A single dark patch remains above the Michael Jordan Steakhouse, left untouched by renovators to remind visitors of the grime that once covered the ceiling.","If you need a quick bite to eat, head downstairs to Two Boots for a slice and a Coke.","Look up! The beautiful astronomical mural on the Main Concourses ceiling depicts the Mediterranean sky during the October to March zodiac and features 2,500 stars.","a secret, in the form of a new york minute: metro-north trains leave roughly one minute after the posted departure time. do you dare test this theory?","Wash your hands or use hand sanitizer after using public transportation. Especially during flu season. Theres a way to stay well."],"images":["https://igx.4sqi.net/img/general/612x612/708901_Wp8kf7WMP78cuRIsFtB7ma5FyrdNTAh27sFup40TI54.jpg","https://igx.4sqi.net/img/general/612x612/255781_49GRaoM_ILBpgBjFzrW-5XWLZfF2cM5rxluoV-D3KRQ.jpg","https://igx.4sqi.net/img/general/612x612/2420910_1HrTLGBsBHs2OGu8Qy4Rb1XKGBWM9XN20Hvo8h4Qtgc.jpg","https://igx.4sqi.net/img/general/719x719/74210_N5ME9zUWv3CZfu9t-NwSiCE6ZtERroJLRJa9oGBEzwY.jpg","https://igx.4sqi.net/img/general/612x612/2217433_o6e6gHOnJzGT3RzYkObnga0ttapE7uvLQzc0UCdAzz8.jpg","https://igx.4sqi.net/img/general/612x612/189675_ZOuCbqKI2bXKSiDBB8QiFo3XUWKWRcqGhDBgbqlgBLo.jpg"],"telephone":"2125324900","address":"87 E 42nd St","city":"New York","state":"NY","zip":"10017","latitude":40.75272060535746,"longitude":-73.977180482729,"twitter":{"handle":"grandcentralnyc","viewIntent":"https://twitter.com/grandcentralnyc#Intent;action=android.intent.action.VIEW;package=com.twitter.android;end","tweetIntent":"#Intent;action=android.intent.action.SEND;component=com.twitter.android/.PostActivity;S.android.intent.extra.
03-08 00:26:11.729 2364-6791/com.tul.aviate D/VolleyRequestBuilder: POST {"events":["2018-02-19 10:19:32 +0000,Aviate_Home|","2018-02-19 10:20:00 +0000,Aviate_Home|","2018-02-19 10:20:16 +0000,Aviate_Home|","2018-02-19 10:20:23 +0000,Aviate_Home|","2018-02-19 10:20:36 +0000,Aviate_Home|","2018-02-24 21:29:26 +0000,Aviate_Home|","2018-02-24 21:40:19 +0000,App_Opened|com.android.chrome,SPACES,null,0,0","2018-02-24 21:43:19 +0000,Aviate_Home|","2018-02-24 21:43:37 +0000,Aviate_Home|","2018-02-24 21:44:03 +0000,Aviate_Home|","2018-02-24 21:44:30 +0000,Aviate_Home|","2018-02-24 21:45:07 +0000,App_Opened|com.google.android.apps.maps,SPACES,null,0,0","2018-02-24 21:45:22 +0000,Location_Update|56.003784,-4.726800,20.000000,0.000000,","2018-02-24 21:46:47 +0000,Location_Update|56.003506,-4.726800,23.429001,0.361801,","2018-02-24 21:46:55 +0000,Aviate_Home|","2018-02-24 21:51:27 +0000,Aviate_Home|","2018-02-24 21:52:07 +0000,Location_Update|56.003506,-4.726800,23.429001,0.000000,","2018-02-24 21:53:35 +0000,App_Opened|com.google.android.apps.maps,SPACES,null,0,0","2018-02-24 21:53:35 +0000,Location_Update|55.942902,-4.562170,20.000000,151.896576,","2018-02-24 21:53:47 +0000,Location_Update|55.942902,-4.562170,23.429001,0.000000,","2018-02-24 21:56:17 +0000,Location_Update|55.942902,-4.562170,23.429001,0.000000,","2018-02-24 21:57:05 +0000,Aviate_Home|","2018-02-24 21:58:36 +0000,Location_Update|55.941200,-4.549610,20.000000,5.955427,","2018-02-24 21:58:56 +0000,Location_Update|55.940399,-4.547426,23.429001,7.968862,","2018-02-24 21:59:16 +0000,Location_Update|55.939106,-4.544045,23.429001,12.405882,","2018-02-24 21:59:44 +0000,Location_Update|55.937801,-4.540680,23.429001,8.933429,","2018-02-24 21:59:51 +0000,Aviate_Home|","2018-02-24 22:00:17 +0000,Location_Update|55.935497,-4.532600,23.429001,16.847424,","2018-02-24 22:00:48 +0000,Location_Update|55.935398,-4.524649,23.417000,15.721061,","2018-02-24 22:01:57 +0000,Location_Update|55.935497,-4.515150,23.429001,8.528607,","2018-02-24 22:02:58 +0000,Location_Update|55.935299,-4.514701,23.375999,0.579232,","2018-02-24 22:04:02 +0000,Location_Update|55.931900,-4.500795,23.375999,14.668383,","2018-02-24 22:04:37 +0000,Location_Update|55.932598,-4.492359,23.429001,14.962058,","2018-02-24 22:05:09 +0000,Location_Update|55.930202,-4.474922,23.417000,34.393246,","2018-02-24 22:06:11 +0000,Location_Update|55.925804,-4.450023,23.339001,26.053675,","2018-02-24 22:07:18 +0000,Location_Update|55.921299,-4.459558,23.429001,11.518684,","2018-02-24 22:07:36 +0000,Location_Update|55.919102,-4.465290,23.429001,23.299753,","2018-02-24 22:08:19 +0000,Location_Update|55.907860,-4.473067,23.278999,30.773069,","2018-02-24 22:09:18 +0000,Location_Update|55.898659,-4.483298,20.577000,20.255144,","2018-02-24 22:09:27 +0000,Location_Update|55.896713,-4.482484,23.400000,20.255144,","2018-02-24 22:10:29 +0000,Location_Update|55.879711,-4.476359,23.429001,30.838560,","2018-02-24 22:10:54 +0000,Location_Update|55.875999,-4.472400,23.429001,18.800732,","2018-02-24 22:11:37 +0000,Location_Update|55.865097,-4.461020,23.429001,32.254250,","2018-02-24 22:12:04 +0000,Aviate_Home|","2018-02-24 22:13:24 +0000,Location_Update|55.862297,-4.418960,20.000000,26.885384,","2018-02-24 22:13:43 +0000,Location_Update|55.861000,-4.406475,23.417000,41.539467,","2018-02-24 22:14:29 +0000,Location_Update|55.863300,-4.389929,23.429001,22.879976,","2018-02-24 22:15:08 +0000,Location_Update|55.867298,-4.368011,23.417000,36.389935,","2018-02-24 22:15:30 +0000,Location_Update|55.865406,-4.358819,23.400000,27.061846,","2018-02-24 22:16:28 +0000,Location_Update|55.854427,-4.342575,23.375999,27.117811,","2018-02-24 22:16:36 +0000,Location_Update|55.853306,-4.339549,23.400000,27.117811,","2018-02-24 22:17:41 +0000,Aviate_Home|","2018-02-24 22:17:46 +0000,Location_Update|55.849098,-4.310120,20.000000,26.920261,","2018-02-24 22:18:14 +0000,Location_Update|55.849297,-4.299915,23.429001,22.584473,","2018-02-24 22:18:27 +0000,Location_Update|55.850578,-4.295492,20.784000,22.828470,","2018-02-24 22:18:46 +0000,Aviate_Home|","2018-02-24 22:19:38 +0000,Location_Upd
03-08 00:26:11.731 2364-6791/com.tul.aviate D/VolleyRequestBuilder: Requesting: https://api.getaviate.com/v6/devices/events_given_device_id/?device_id=c0b0cf5693633c55-atn7v5qqpk7rv
03-08 00:26:12.099 2364-6797/com.tul.aviate E/VolleyRequestBuilder: Response Error: com.android.volley.l: java.net.UnknownHostException: Unable to resolve host "api.getaviate.com": No address associated with hostname
03-08 01:41:18.372 2364-8012/com.tul.aviate D/VolleyRequestBuilder: POST {"appKey":"ALq3OMhN7EY-X3U26qyvDhV_zZltfuzddRJU0FrR6--IhrjY4cuvO0Fm6lU3WesnLWNHpcgGSrKCweyHgZjSAxmY5IckAz6fDA","contexts":[{"radius":23.429,"batteryLevel":100,"chargerOn":false,"eid":"","headphoneOn":false,"lat":40.7501,"lng":-73.98601,"musicPlaying":false,"notifIds":[],"speed":0.0,"stream":"main","time":"2018-03-08T01:41:18+0000","upcomingMeeting":0}],"cpVersion":3,"lang":"en-US","region":"US"}
03-08 01:41:18.372 2364-8012/com.tul.aviate D/VolleyRequestBuilder: Requesting: https://aviate-yql.media.yahoo.com/v2/ace/cards?region=US&lang=en-US&crumb=LvnvxRvdbc.
03-08 01:41:19.182 2364-8016/com.tul.aviate D/VolleyRequestBuilder: Status Code: 200
Response Body: {"response":{"result":[{"cards":[{"card_id":"4b5b8c71-58d2-3f26-abce-318e3d3a01d6","rendering_engine":"custom","type":"MORNING_NIGHT","type_display_name":"Set Alarm","ttl":1520646079,"layout":{"template":"morning_night"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"USER_LOCATION:OTHER":1.0,"USER_SPEED:STILL":1.0,"TIME_OF_DAY_RANGE:NIGHT":1.0,"STREAM_TYPE:MAIN":1.0,"rule_score":0.0,"TIER":0.0,"score":0.5},"instrumentation":{"rid":"1rt4c3dda155v","bucket":"ga"}},{"card_id":"83a014c3-c0a4-3242-b5a8-79d011b677d6","rendering_engine":"custom","type":"WEATHER","type_display_name":"Weather","ttl":1520646079,"layout":{"template":"weather"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"TIME_OF_DAY_RANGE:NIGHT":1.0,"STREAM_TYPE:MAIN":1.0,"rule_score":0.0,"TIER":0.0,"score":0.25},"instrumentation":{"rid":"1rt4c3dda155v","bucket":"ga"}},{"card_id":"c81eac4b-4553-3d60-85a6-178968bd5065","rendering_engine":"custom","type":"NEWS_DIGEST","type_display_name":"News Digest","ttl":1520646079,"layout":{"template":"news_digest"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"TIME_OF_DAY_RANGE:NIGHT":1.0,"STREAM_TYPE:MAIN":1.0,"rule_score":0.0,"TIER":0.0,"score":0.25},"instrumentation":{"rid":"1rt4c3dda155v","bucket":"ga"}},{"card_id":"bcacee7a-d79a-3e4e-a5b8-77c5b6480a8c","rendering_engine":"custom","type":"CALENDAR","type_display_name":"Calendar","ttl":1520646079,"layout":{"template":"calendar"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"USER_LOCATION:OTHER":1.0,"TIME_OF_DAY_RANGE:NIGHT":1.0,"STREAM_TYPE:MAIN":1.0,"rule_score":2.0,"TIER":2.0,"score":0.25},"instrumentation":{"rid":"1rt4c3dda155v","bucket":"ga"}},{"card_id":"eea4f59a-e8a2-3e12-a917-96e254c416d5","rendering_engine":"custom","type":"VENUE_CHOOSER","type_display_name":"Around Me","ttl":1520476879,"layout":{"template":"venue_chooser"},"data":{"venues":[{"name":"Macy's","category":"Department Store","iconUrl":"https://ss3.4sqi.net/img/categories_v2/shops/departmentstore_64.png","id":"41102700f964a520d60b1fe3","provider":"foursquare","eid":"{\"card\":\"venue\",\"id\":\"41102700f964a520d60b1fe3\"}"},{"name":"Brendan's Bar & Grill","category":"American Restaurant","iconUrl":"https://ss3.4sqi.net/img/categories_v2/food/default_64.png","id":"4adaa371f964a520ec2321e3","provider":"foursquare","eid":"{\"card\":\"venue\",\"id\":\"4adaa371f964a520ec2321e3\"}"},{"name":"Hotel Metro","category":"Hotel","iconUrl":"https://ss3.4sqi.net/img/categories_v2/travel/hotel_64.png","id":"4ad9493df964a520961921e3","provider":"foursquare","eid":"{\"card\":\"venue\",\"id\":\"4ad9493df964a520961921e3\"}"}]},"modules":{},"reason":"","notify":false,"ranking_arguments":{"USER_LOCATION:OTHER":1.0,"req_longitude":-73.98601,"USER_DIST_FROM_REQ_LOC:WITHIN_800M":1.0,"req_latitude":40.7501,"STREAM_TYPE:MAIN":1.0,"USER_LOCATION_POI_CONFIDENCE:HIGH":1.0,"rule_score":1.0,"TIER":1.0,"score":0.25},"instrumentation":{"rid":"1rt4c3dda155v","bucket":"ga"}},{"card_id":"730f79c6-148d-39fd-bba1-1b3eafb8b6dc","rendering_engine":"custom","type":"MUSIC_PLAYING","type_display_name":"Music Player","ttl":1520646079,"layout":{"template":"music_playing"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"STREAM_TYPE:MAIN":1.0,"rule_score":0.0,"TIER":0.0,"score":0.0},"instrumentation":{"rid":"1rt4c3dda155v","bucket":"ga"}},{"card_id":"ee966fd9-7ca1-368c-b56c-427013d5b9e9","rendering_engine":"custom","type":"ARTIST_INFO","type_display_name":"Artist Info","ttl":1520646079,"layout":{"template":"artist_info"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"STREAM_TYPE:MAIN":1.0,"rule_score":0.0,"TIER":0.0,"score":0.0},"instrumentation":{"rid":"1rt4c3dda155v","bucket":"ga"}},{"card_id":"2082d004-1852-3041-8e66-2d6595db402e","rendering_engine":"custom","type":"NEARBY_SHORTCUTS","type_display_name":"Nearby Places","ttl":1520646079,"layout":{"template":"nearby_shortcuts"},"data":{"cafe_yelp_url":"http://m.yelp.com
03-08 01:41:39.919 2364-8016/com.tul.aviate D/Volley: [541] o.b: 21545 ms: [ ] https://aviate-yql.media.yahoo.com/v2/ace/cards?region=US&lang=en-US&crumb=LvnvxRvdbc. 0xfcdc96a0 NORMAL 36
03-08 03:41:36.482 2364-10132/com.tul.aviate D/VolleyRequestBuilder: POST {"appKey":"ALq3OMhN7EY-X3U26qyvDhV_zZltfuzddRJU0FrR6--IhrjY4cuvO0Fm6lU3WesnLWNHpcgGSrKCweyHgZjSAxmY5IckAz6fDA","contexts":[{"radius":23.429,"batteryLevel":100,"chargerOn":false,"eid":"","headphoneOn":false,"lat":40.7501,"lng":-73.98601,"musicPlaying":false,"notifIds":[],"speed":0.0,"stream":"main","time":"2018-03-08T03:41:36+0000","upcomingMeeting":0}],"cpVersion":3,"lang":"en-US","region":"US"}
03-08 03:41:36.482 2364-10132/com.tul.aviate D/VolleyRequestBuilder: Requesting: https://aviate-yql.media.yahoo.com/v2/ace/cards?region=US&lang=en-US&crumb=LvnvxRvdbc.
03-08 03:41:37.384 2364-10136/com.tul.aviate D/VolleyRequestBuilder: Status Code: 200
Response Body: {"response":{"result":[{"cards":[{"card_id":"4b5b8c71-58d2-3f26-abce-318e3d3a01d6","rendering_engine":"custom","type":"MORNING_NIGHT","type_display_name":"Set Alarm","ttl":1520653297,"layout":{"template":"morning_night"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"USER_LOCATION:OTHER":1.0,"USER_SPEED:STILL":1.0,"TIME_OF_DAY_RANGE:NIGHT":1.0,"STREAM_TYPE:MAIN":1.0,"rule_score":0.0,"TIER":0.0,"score":0.5},"instrumentation":{"rid":"6tvri7lda1c7h","bucket":"ga"}},{"card_id":"83a014c3-c0a4-3242-b5a8-79d011b677d6","rendering_engine":"custom","type":"WEATHER","type_display_name":"Weather","ttl":1520653297,"layout":{"template":"weather"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"TIME_OF_DAY_RANGE:NIGHT":1.0,"STREAM_TYPE:MAIN":1.0,"rule_score":0.0,"TIER":0.0,"score":0.25},"instrumentation":{"rid":"6tvri7lda1c7h","bucket":"ga"}},{"card_id":"c81eac4b-4553-3d60-85a6-178968bd5065","rendering_engine":"custom","type":"NEWS_DIGEST","type_display_name":"News Digest","ttl":1520653297,"layout":{"template":"news_digest"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"TIME_OF_DAY_RANGE:NIGHT":1.0,"STREAM_TYPE:MAIN":1.0,"rule_score":0.0,"TIER":0.0,"score":0.25},"instrumentation":{"rid":"6tvri7lda1c7h","bucket":"ga"}},{"card_id":"bcacee7a-d79a-3e4e-a5b8-77c5b6480a8c","rendering_engine":"custom","type":"CALENDAR","type_display_name":"Calendar","ttl":1520653297,"layout":{"template":"calendar"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"USER_LOCATION:OTHER":1.0,"TIME_OF_DAY_RANGE:NIGHT":1.0,"STREAM_TYPE:MAIN":1.0,"rule_score":2.0,"TIER":2.0,"score":0.25},"instrumentation":{"rid":"6tvri7lda1c7h","bucket":"ga"}},{"card_id":"eea4f59a-e8a2-3e12-a917-96e254c416d5","rendering_engine":"custom","type":"VENUE_CHOOSER","type_display_name":"Around Me","ttl":1520484097,"layout":{"template":"venue_chooser"},"data":{"venues":[{"name":"Macy's","category":"Department Store","iconUrl":"https://ss3.4sqi.net/img/categories_v2/shops/departmentstore_64.png","id":"41102700f964a520d60b1fe3","provider":"foursquare","eid":"{\"card\":\"venue\",\"id\":\"41102700f964a520d60b1fe3\"}"},{"name":"Brendan's Bar & Grill","category":"American Restaurant","iconUrl":"https://ss3.4sqi.net/img/categories_v2/food/default_64.png","id":"4adaa371f964a520ec2321e3","provider":"foursquare","eid":"{\"card\":\"venue\",\"id\":\"4adaa371f964a520ec2321e3\"}"},{"name":"Hotel Metro","category":"Hotel","iconUrl":"https://ss3.4sqi.net/img/categories_v2/travel/hotel_64.png","id":"4ad9493df964a520961921e3","provider":"foursquare","eid":"{\"card\":\"venue\",\"id\":\"4ad9493df964a520961921e3\"}"}]},"modules":{},"reason":"","notify":false,"ranking_arguments":{"USER_LOCATION:OTHER":1.0,"req_longitude":-73.98601,"USER_DIST_FROM_REQ_LOC:WITHIN_800M":1.0,"req_latitude":40.7501,"STREAM_TYPE:MAIN":1.0,"USER_LOCATION_POI_CONFIDENCE:HIGH":1.0,"rule_score":1.0,"TIER":1.0,"score":0.25},"instrumentation":{"rid":"6tvri7lda1c7h","bucket":"ga"}},{"card_id":"730f79c6-148d-39fd-bba1-1b3eafb8b6dc","rendering_engine":"custom","type":"MUSIC_PLAYING","type_display_name":"Music Player","ttl":1520653297,"layout":{"template":"music_playing"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"STREAM_TYPE:MAIN":1.0,"rule_score":0.0,"TIER":0.0,"score":0.0},"instrumentation":{"rid":"6tvri7lda1c7h","bucket":"ga"}},{"card_id":"ee966fd9-7ca1-368c-b56c-427013d5b9e9","rendering_engine":"custom","type":"ARTIST_INFO","type_display_name":"Artist Info","ttl":1520653297,"layout":{"template":"artist_info"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"STREAM_TYPE:MAIN":1.0,"rule_score":0.0,"TIER":0.0,"score":0.0},"instrumentation":{"rid":"6tvri7lda1c7h","bucket":"ga"}},{"card_id":"2082d004-1852-3041-8e66-2d6595db402e","rendering_engine":"custom","type":"NEARBY_SHORTCUTS","type_display_name":"Nearby Places","ttl":1520653297,"layout":{"template":"nearby_shortcuts"},"data":{"cafe_yelp_url":"http://m.yelp.com
03-08 03:41:51.474 2364-10136/com.tul.aviate D/Volley: [555] o.b: 14992 ms: [ ] https://aviate-yql.media.yahoo.com/v2/ace/cards?region=US&lang=en-US&crumb=LvnvxRvdbc. 0xfcdc96a0 NORMAL 38
03-08 05:42:16.578 2364-11759/com.tul.aviate D/VolleyRequestBuilder: POST {"appKey":"ALq3OMhN7EY-X3U26qyvDhV_zZltfuzddRJU0FrR6--IhrjY4cuvO0Fm6lU3WesnLWNHpcgGSrKCweyHgZjSAxmY5IckAz6fDA","contexts":[{"radius":23.429,"batteryLevel":100,"chargerOn":false,"eid":"","headphoneOn":false,"lat":40.7501,"lng":-73.98601,"musicPlaying":false,"notifIds":[],"speed":0.0,"stream":"main","time":"2018-03-08T05:42:16+0000","upcomingMeeting":0}],"cpVersion":3,"lang":"en-US","region":"US"}
03-08 05:42:16.578 2364-11759/com.tul.aviate D/VolleyRequestBuilder: Requesting: https://aviate-yql.media.yahoo.com/v2/ace/cards?region=US&lang=en-US&crumb=LvnvxRvdbc.
03-08 05:42:17.346 2364-11763/com.tul.aviate D/VolleyRequestBuilder: Status Code: 200
Response Body: {"response":{"result":[{"cards":[{"card_id":"83a014c3-c0a4-3242-b5a8-79d011b677d6","rendering_engine":"custom","type":"WEATHER","type_display_name":"Weather","ttl":1520660537,"layout":{"template":"weather"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"STREAM_TYPE:MAIN":1.0,"rule_score":0.0,"TIER":0.0,"score":0.25},"instrumentation":{"rid":"fqlvtjhda1j9p","bucket":"ga"}},{"card_id":"c81eac4b-4553-3d60-85a6-178968bd5065","rendering_engine":"custom","type":"NEWS_DIGEST","type_display_name":"News Digest","ttl":1520660537,"layout":{"template":"news_digest"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"STREAM_TYPE:MAIN":1.0,"rule_score":0.0,"TIER":0.0,"score":0.25},"instrumentation":{"rid":"fqlvtjhda1j9p","bucket":"ga"}},{"card_id":"bcacee7a-d79a-3e4e-a5b8-77c5b6480a8c","rendering_engine":"custom","type":"CALENDAR","type_display_name":"Calendar","ttl":1520660537,"layout":{"template":"calendar"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"USER_LOCATION:OTHER":1.0,"STREAM_TYPE:MAIN":1.0,"rule_score":2.0,"TIER":2.0,"score":0.25},"instrumentation":{"rid":"fqlvtjhda1j9p","bucket":"ga"}},{"card_id":"eea4f59a-e8a2-3e12-a917-96e254c416d5","rendering_engine":"custom","type":"VENUE_CHOOSER","type_display_name":"Around Me","ttl":1520491337,"layout":{"template":"venue_chooser"},"data":{"venues":[{"name":"Macy's","category":"Department Store","iconUrl":"https://ss3.4sqi.net/img/categories_v2/shops/departmentstore_64.png","id":"41102700f964a520d60b1fe3","provider":"foursquare","eid":"{\"card\":\"venue\",\"id\":\"41102700f964a520d60b1fe3\"}"},{"name":"Brendan's Bar & Grill","category":"American Restaurant","iconUrl":"https://ss3.4sqi.net/img/categories_v2/food/default_64.png","id":"4adaa371f964a520ec2321e3","provider":"foursquare","eid":"{\"card\":\"venue\",\"id\":\"4adaa371f964a520ec2321e3\"}"},{"name":"Hotel Metro","category":"Hotel","iconUrl":"https://ss3.4sqi.net/img/categories_v2/travel/hotel_64.png","id":"4ad9493df964a520961921e3","provider":"foursquare","eid":"{\"card\":\"venue\",\"id\":\"4ad9493df964a520961921e3\"}"}]},"modules":{},"reason":"","notify":false,"ranking_arguments":{"USER_LOCATION:OTHER":1.0,"req_longitude":-73.98601,"USER_DIST_FROM_REQ_LOC:WITHIN_800M":1.0,"req_latitude":40.7501,"STREAM_TYPE:MAIN":1.0,"USER_LOCATION_POI_CONFIDENCE:HIGH":1.0,"rule_score":1.0,"TIER":1.0,"score":0.25},"instrumentation":{"rid":"fqlvtjhda1j9p","bucket":"ga"}},{"card_id":"4b5b8c71-58d2-3f26-abce-318e3d3a01d6","rendering_engine":"custom","type":"MORNING_NIGHT","type_display_name":"Set Alarm","ttl":1520660537,"layout":{"template":"morning_night"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"USER_LOCATION:OTHER":1.0,"USER_SPEED:STILL":1.0,"STREAM_TYPE:MAIN":1.0,"rule_score":0.0,"TIER":0.0,"score":0.0},"instrumentation":{"rid":"fqlvtjhda1j9p","bucket":"ga"}},{"card_id":"730f79c6-148d-39fd-bba1-1b3eafb8b6dc","rendering_engine":"custom","type":"MUSIC_PLAYING","type_display_name":"Music Player","ttl":1520660537,"layout":{"template":"music_playing"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"STREAM_TYPE:MAIN":1.0,"rule_score":0.0,"TIER":0.0,"score":0.0},"instrumentation":{"rid":"fqlvtjhda1j9p","bucket":"ga"}},{"card_id":"ee966fd9-7ca1-368c-b56c-427013d5b9e9","rendering_engine":"custom","type":"ARTIST_INFO","type_display_name":"Artist Info","ttl":1520660537,"layout":{"template":"artist_info"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"STREAM_TYPE:MAIN":1.0,"rule_score":0.0,"TIER":0.0,"score":0.0},"instrumentation":{"rid":"fqlvtjhda1j9p","bucket":"ga"}},{"card_id":"2082d004-1852-3041-8e66-2d6595db402e","rendering_engine":"custom","type":"NEARBY_SHORTCUTS","type_display_name":"Nearby Places","ttl":1520660537,"layout":{"template":"nearby_shortcuts"},"data":{"cafe_yelp_url":"http://m.yelp.com/search?find_desc=Cafes&l=a:40.7501,-73.98601,1","restaurant_yelp_url":"http://m.yelp.com/search?find_desc=Restaurant&ls
03-08 07:42:34.367 2364-13461/com.tul.aviate D/VolleyRequestBuilder: POST {"appKey":"ALq3OMhN7EY-X3U26qyvDhV_zZltfuzddRJU0FrR6--IhrjY4cuvO0Fm6lU3WesnLWNHpcgGSrKCweyHgZjSAxmY5IckAz6fDA","contexts":[{"radius":23.429,"batteryLevel":100,"chargerOn":false,"eid":"","headphoneOn":false,"lat":40.7501,"lng":-73.98601,"musicPlaying":false,"notifIds":[],"speed":0.0,"stream":"main","time":"2018-03-08T07:42:34+0000","upcomingMeeting":0}],"cpVersion":3,"lang":"en-US","region":"US"}
03-08 07:42:34.367 2364-13461/com.tul.aviate D/VolleyRequestBuilder: Requesting: https://aviate-yql.media.yahoo.com/v2/ace/cards?region=US&lang=en-US&crumb=LvnvxRvdbc.
03-08 07:42:35.267 2364-13465/com.tul.aviate D/VolleyRequestBuilder: Status Code: 200
Response Body: {"response":{"result":[{"cards":[{"card_id":"83a014c3-c0a4-3242-b5a8-79d011b677d6","rendering_engine":"custom","type":"WEATHER","type_display_name":"Weather","ttl":1520667755,"layout":{"template":"weather"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"STREAM_TYPE:MAIN":1.0,"rule_score":3.0,"TIER":3.0,"score":0.25},"instrumentation":{"rid":"ao7mv45da1qbb","bucket":"ga"}},{"card_id":"c81eac4b-4553-3d60-85a6-178968bd5065","rendering_engine":"custom","type":"NEWS_DIGEST","type_display_name":"News Digest","ttl":1520667755,"layout":{"template":"news_digest"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"STREAM_TYPE:MAIN":1.0,"rule_score":2.0,"TIER":2.0,"score":0.25},"instrumentation":{"rid":"ao7mv45da1qbb","bucket":"ga"}},{"card_id":"bcacee7a-d79a-3e4e-a5b8-77c5b6480a8c","rendering_engine":"custom","type":"CALENDAR","type_display_name":"Calendar","ttl":1520667755,"layout":{"template":"calendar"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"USER_LOCATION:OTHER":1.0,"STREAM_TYPE:MAIN":1.0,"rule_score":2.0,"TIER":2.0,"score":0.25},"instrumentation":{"rid":"ao7mv45da1qbb","bucket":"ga"}},{"card_id":"eea4f59a-e8a2-3e12-a917-96e254c416d5","rendering_engine":"custom","type":"VENUE_CHOOSER","type_display_name":"Around Me","ttl":1520498555,"layout":{"template":"venue_chooser"},"data":{"venues":[{"name":"Macy's","category":"Department Store","iconUrl":"https://ss3.4sqi.net/img/categories_v2/shops/departmentstore_64.png","id":"41102700f964a520d60b1fe3","provider":"foursquare","eid":"{\"card\":\"venue\",\"id\":\"41102700f964a520d60b1fe3\"}"},{"name":"Brendan's Bar & Grill","category":"American Restaurant","iconUrl":"https://ss3.4sqi.net/img/categories_v2/food/default_64.png","id":"4adaa371f964a520ec2321e3","provider":"foursquare","eid":"{\"card\":\"venue\",\"id\":\"4adaa371f964a520ec2321e3\"}"},{"name":"Hotel Metro","category":"Hotel","iconUrl":"https://ss3.4sqi.net/img/categories_v2/travel/hotel_64.png","id":"4ad9493df964a520961921e3","provider":"foursquare","eid":"{\"card\":\"venue\",\"id\":\"4ad9493df964a520961921e3\"}"}]},"modules":{},"reason":"","notify":false,"ranking_arguments":{"USER_LOCATION:OTHER":1.0,"req_longitude":-73.98601,"USER_DIST_FROM_REQ_LOC:WITHIN_800M":1.0,"req_latitude":40.7501,"STREAM_TYPE:MAIN":1.0,"USER_LOCATION_POI_CONFIDENCE:HIGH":1.0,"rule_score":2.0,"TIER":2.0,"score":0.25},"instrumentation":{"rid":"ao7mv45da1qbb","bucket":"ga"}},{"card_id":"4b5b8c71-58d2-3f26-abce-318e3d3a01d6","rendering_engine":"custom","type":"MORNING_NIGHT","type_display_name":"Set Alarm","ttl":1520667755,"layout":{"template":"morning_night"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"USER_LOCATION:OTHER":1.0,"USER_SPEED:STILL":1.0,"STREAM_TYPE:MAIN":1.0,"rule_score":3.0,"TIER":3.0,"score":0.0},"instrumentation":{"rid":"ao7mv45da1qbb","bucket":"ga"}},{"card_id":"730f79c6-148d-39fd-bba1-1b3eafb8b6dc","rendering_engine":"custom","type":"MUSIC_PLAYING","type_display_name":"Music Player","ttl":1520667755,"layout":{"template":"music_playing"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"STREAM_TYPE:MAIN":1.0,"rule_score":0.0,"TIER":0.0,"score":0.0},"instrumentation":{"rid":"ao7mv45da1qbb","bucket":"ga"}},{"card_id":"ee966fd9-7ca1-368c-b56c-427013d5b9e9","rendering_engine":"custom","type":"ARTIST_INFO","type_display_name":"Artist Info","ttl":1520667755,"layout":{"template":"artist_info"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"STREAM_TYPE:MAIN":1.0,"rule_score":0.0,"TIER":0.0,"score":0.0},"instrumentation":{"rid":"ao7mv45da1qbb","bucket":"ga"}},{"card_id":"2082d004-1852-3041-8e66-2d6595db402e","rendering_engine":"custom","type":"NEARBY_SHORTCUTS","type_display_name":"Nearby Places","ttl":1520667755,"layout":{"template":"nearby_shortcuts"},"data":{"cafe_yelp_url":"http://m.yelp.com/search?find_desc=Cafes&l=a:40.7501,-73.98601,1","restaurant_yelp_url":"http://m.yelp.com/search?find_desc=Restaurant&ls
03-08 08:40:09.448 2364-14613/com.tul.aviate D/VolleyRequestBuilder: POST {"appKey":"ALq3OMhN7EY-X3U26qyvDhV_zZltfuzddRJU0FrR6--IhrjY4cuvO0Fm6lU3WesnLWNHpcgGSrKCweyHgZjSAxmY5IckAz6fDA","contexts":[{"radius":23.429,"batteryLevel":100,"chargerOn":false,"eid":"","headphoneOn":false,"lat":40.7501,"lng":-73.98601,"musicPlaying":false,"notifIds":[],"speed":0.0,"stream":"main","time":"2018-03-08T08:40:09+0000","upcomingMeeting":0}],"cpVersion":3,"lang":"en-US","region":"US"}
03-08 08:40:09.448 2364-14613/com.tul.aviate D/VolleyRequestBuilder: Requesting: https://aviate-yql.media.yahoo.com/v2/ace/cards?region=US&lang=en-US&crumb=LvnvxRvdbc.
03-08 08:40:10.584 2364-14616/com.tul.aviate D/VolleyRequestBuilder: Status Code: 200
Response Body: {"response":{"result":[{"cards":[{"card_id":"83a014c3-c0a4-3242-b5a8-79d011b677d6","rendering_engine":"custom","type":"WEATHER","type_display_name":"Weather","ttl":1520671210,"layout":{"template":"weather"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"STREAM_TYPE:MAIN":1.0,"rule_score":3.0,"TIER":3.0,"TIME_OF_DAY_RANGE:MORNING":1.0,"score":0.6},"instrumentation":{"rid":"5lilordda1tna","bucket":"ga"}},{"card_id":"c81eac4b-4553-3d60-85a6-178968bd5065","rendering_engine":"custom","type":"NEWS_DIGEST","type_display_name":"News Digest","ttl":1520671210,"layout":{"template":"news_digest"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"STREAM_TYPE:MAIN":1.0,"rule_score":2.0,"TIER":2.0,"TIME_OF_DAY_RANGE:MORNING":1.0,"score":0.55},"instrumentation":{"rid":"5lilordda1tna","bucket":"ga"}},{"card_id":"4b5b8c71-58d2-3f26-abce-318e3d3a01d6","rendering_engine":"custom","type":"MORNING_NIGHT","type_display_name":"Set Alarm","ttl":1520671210,"layout":{"template":"morning_night"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"USER_LOCATION:OTHER":1.0,"USER_SPEED:STILL":1.0,"STREAM_TYPE:MAIN":1.0,"rule_score":3.0,"TIER":3.0,"TIME_OF_DAY_RANGE:MORNING":1.0,"score":0.5},"instrumentation":{"rid":"5lilordda1tna","bucket":"ga"}},{"card_id":"bcacee7a-d79a-3e4e-a5b8-77c5b6480a8c","rendering_engine":"custom","type":"CALENDAR","type_display_name":"Calendar","ttl":1520671210,"layout":{"template":"calendar"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"USER_LOCATION:OTHER":1.0,"STREAM_TYPE:MAIN":1.0,"rule_score":2.0,"TIER":2.0,"TIME_OF_DAY_RANGE:MORNING":1.0,"score":0.25},"instrumentation":{"rid":"5lilordda1tna","bucket":"ga"}},{"card_id":"eea4f59a-e8a2-3e12-a917-96e254c416d5","rendering_engine":"custom","type":"VENUE_CHOOSER","type_display_name":"Around Me","ttl":1520502010,"layout":{"template":"venue_chooser"},"data":{"venues":[{"name":"Macy's","category":"Department Store","iconUrl":"https://ss3.4sqi.net/img/categories_v2/shops/departmentstore_64.png","id":"41102700f964a520d60b1fe3","provider":"foursquare","eid":"{\"card\":\"venue\",\"id\":\"41102700f964a520d60b1fe3\"}"},{"name":"Brendan's Bar & Grill","category":"American Restaurant","iconUrl":"https://ss3.4sqi.net/img/categories_v2/food/default_64.png","id":"4adaa371f964a520ec2321e3","provider":"foursquare","eid":"{\"card\":\"venue\",\"id\":\"4adaa371f964a520ec2321e3\"}"},{"name":"Hotel Metro","category":"Hotel","iconUrl":"https://ss3.4sqi.net/img/categories_v2/travel/hotel_64.png","id":"4ad9493df964a520961921e3","provider":"foursquare","eid":"{\"card\":\"venue\",\"id\":\"4ad9493df964a520961921e3\"}"}]},"modules":{},"reason":"","notify":false,"ranking_arguments":{"USER_LOCATION:OTHER":1.0,"req_longitude":-73.98601,"USER_DIST_FROM_REQ_LOC:WITHIN_800M":1.0,"req_latitude":40.7501,"STREAM_TYPE:MAIN":1.0,"USER_LOCATION_POI_CONFIDENCE:HIGH":1.0,"rule_score":2.0,"TIER":2.0,"score":0.25},"instrumentation":{"rid":"5lilordda1tna","bucket":"ga"}},{"card_id":"730f79c6-148d-39fd-bba1-1b3eafb8b6dc","rendering_engine":"custom","type":"MUSIC_PLAYING","type_display_name":"Music Player","ttl":1520671210,"layout":{"template":"music_playing"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"STREAM_TYPE:MAIN":1.0,"rule_score":0.0,"TIER":0.0,"score":0.0},"instrumentation":{"rid":"5lilordda1tna","bucket":"ga"}},{"card_id":"ee966fd9-7ca1-368c-b56c-427013d5b9e9","rendering_engine":"custom","type":"ARTIST_INFO","type_display_name":"Artist Info","ttl":1520671210,"layout":{"template":"artist_info"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"STREAM_TYPE:MAIN":1.0,"rule_score":0.0,"TIER":0.0,"score":0.0},"instrumentation":{"rid":"5lilordda1tna","bucket":"ga"}},{"card_id":"2082d004-1852-3041-8e66-2d6595db402e","rendering_engine":"custom","type":"NEARBY_SHORTCUTS","type_display_name":"Nearby Places","ttl":1520671210,"layout":{"template":"nearby_shortcuts"},"data":{"cafe_yelp_url":"http://m.y
03-08 09:35:39.295 2364-16114/com.tul.aviate D/VolleyRequestBuilder: POST {"appKey":"ALq3OMhN7EY-X3U26qyvDhV_zZltfuzddRJU0FrR6--IhrjY4cuvO0Fm6lU3WesnLWNHpcgGSrKCweyHgZjSAxmY5IckAz6fDA","contexts":[{"radius":23.429,"batteryLevel":100,"chargerOn":false,"eid":"","headphoneOn":false,"lat":40.7501,"lng":-73.98601,"musicPlaying":false,"notifIds":[],"speed":0.0,"stream":"main","time":"2018-03-08T09:35:39+0000","upcomingMeeting":0}],"cpVersion":3,"lang":"en-US","region":"US"}
03-08 09:35:39.307 2364-16114/com.tul.aviate D/VolleyRequestBuilder: Requesting: https://aviate-yql.media.yahoo.com/v2/ace/cards?region=US&lang=en-US&crumb=LvnvxRvdbc.
03-08 09:35:40.526 2364-16119/com.tul.aviate D/VolleyRequestBuilder: Status Code: 200
Response Body: {"response":{"result":[{"cards":[{"card_id":"83a014c3-c0a4-3242-b5a8-79d011b677d6","rendering_engine":"custom","type":"WEATHER","type_display_name":"Weather","ttl":1520674540,"layout":{"template":"weather"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"STREAM_TYPE:MAIN":1.0,"rule_score":3.0,"TIER":3.0,"TIME_OF_DAY_RANGE:MORNING":1.0,"score":0.6},"instrumentation":{"rid":"dffig2pda20vc","bucket":"ga"}},{"card_id":"c81eac4b-4553-3d60-85a6-178968bd5065","rendering_engine":"custom","type":"NEWS_DIGEST","type_display_name":"News Digest","ttl":1520674540,"layout":{"template":"news_digest"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"STREAM_TYPE:MAIN":1.0,"rule_score":2.0,"TIER":2.0,"TIME_OF_DAY_RANGE:MORNING":1.0,"score":0.55},"instrumentation":{"rid":"dffig2pda20vc","bucket":"ga"}},{"card_id":"4b5b8c71-58d2-3f26-abce-318e3d3a01d6","rendering_engine":"custom","type":"MORNING_NIGHT","type_display_name":"Set Alarm","ttl":1520674540,"layout":{"template":"morning_night"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"USER_LOCATION:OTHER":1.0,"USER_SPEED:STILL":1.0,"STREAM_TYPE:MAIN":1.0,"rule_score":3.0,"TIER":3.0,"TIME_OF_DAY_RANGE:MORNING":1.0,"score":0.5},"instrumentation":{"rid":"dffig2pda20vc","bucket":"ga"}},{"card_id":"bcacee7a-d79a-3e4e-a5b8-77c5b6480a8c","rendering_engine":"custom","type":"CALENDAR","type_display_name":"Calendar","ttl":1520674540,"layout":{"template":"calendar"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"USER_LOCATION:OTHER":1.0,"STREAM_TYPE:MAIN":1.0,"rule_score":2.0,"TIER":2.0,"TIME_OF_DAY_RANGE:MORNING":1.0,"score":0.25},"instrumentation":{"rid":"dffig2pda20vc","bucket":"ga"}},{"card_id":"eea4f59a-e8a2-3e12-a917-96e254c416d5","rendering_engine":"custom","type":"VENUE_CHOOSER","type_display_name":"Around Me","ttl":1520505340,"layout":{"template":"venue_chooser"},"data":{"venues":[{"name":"Macy's","category":"Department Store","iconUrl":"https://ss3.4sqi.net/img/categories_v2/shops/departmentstore_64.png","id":"41102700f964a520d60b1fe3","provider":"foursquare","eid":"{\"card\":\"venue\",\"id\":\"41102700f964a520d60b1fe3\"}"},{"name":"Brendan's Bar & Grill","category":"American Restaurant","iconUrl":"https://ss3.4sqi.net/img/categories_v2/food/default_64.png","id":"4adaa371f964a520ec2321e3","provider":"foursquare","eid":"{\"card\":\"venue\",\"id\":\"4adaa371f964a520ec2321e3\"}"},{"name":"Hotel Metro","category":"Hotel","iconUrl":"https://ss3.4sqi.net/img/categories_v2/travel/hotel_64.png","id":"4ad9493df964a520961921e3","provider":"foursquare","eid":"{\"card\":\"venue\",\"id\":\"4ad9493df964a520961921e3\"}"}]},"modules":{},"reason":"","notify":false,"ranking_arguments":{"USER_LOCATION:OTHER":1.0,"req_longitude":-73.98601,"USER_DIST_FROM_REQ_LOC:WITHIN_800M":1.0,"req_latitude":40.7501,"STREAM_TYPE:MAIN":1.0,"USER_LOCATION_POI_CONFIDENCE:HIGH":1.0,"rule_score":2.0,"TIER":2.0,"score":0.25},"instrumentation":{"rid":"dffig2pda20vc","bucket":"ga"}},{"card_id":"730f79c6-148d-39fd-bba1-1b3eafb8b6dc","rendering_engine":"custom","type":"MUSIC_PLAYING","type_display_name":"Music Player","ttl":1520674540,"layout":{"template":"music_playing"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"STREAM_TYPE:MAIN":1.0,"rule_score":0.0,"TIER":0.0,"score":0.0},"instrumentation":{"rid":"dffig2pda20vc","bucket":"ga"}},{"card_id":"ee966fd9-7ca1-368c-b56c-427013d5b9e9","rendering_engine":"custom","type":"ARTIST_INFO","type_display_name":"Artist Info","ttl":1520674540,"layout":{"template":"artist_info"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"STREAM_TYPE:MAIN":1.0,"rule_score":0.0,"TIER":0.0,"score":0.0},"instrumentation":{"rid":"dffig2pda20vc","bucket":"ga"}},{"card_id":"2082d004-1852-3041-8e66-2d6595db402e","rendering_engine":"custom","type":"NEARBY_SHORTCUTS","type_display_name":"Nearby Places","ttl":1520674540,"layout":{"template":"nearby_shortcuts"},"data":{"cafe_yelp_url":"http://m.y
03-08 09:46:39.742 2364-16308/com.tul.aviate D/VolleyRequestBuilder: POST {"events":["2018-02-19 10:19:32 +0000,Aviate_Home|","2018-02-19 10:20:00 +0000,Aviate_Home|","2018-02-19 10:20:16 +0000,Aviate_Home|","2018-02-19 10:20:23 +0000,Aviate_Home|","2018-02-19 10:20:36 +0000,Aviate_Home|","2018-02-24 21:29:26 +0000,Aviate_Home|","2018-02-24 21:40:19 +0000,App_Opened|com.android.chrome,SPACES,null,0,0","2018-02-24 21:43:19 +0000,Aviate_Home|","2018-02-24 21:43:37 +0000,Aviate_Home|","2018-02-24 21:44:03 +0000,Aviate_Home|","2018-02-24 21:44:30 +0000,Aviate_Home|","2018-02-24 21:45:07 +0000,App_Opened|com.google.android.apps.maps,SPACES,null,0,0","2018-02-24 21:45:22 +0000,Location_Update|56.003784,-4.726800,20.000000,0.000000,","2018-02-24 21:46:47 +0000,Location_Update|56.003506,-4.726800,23.429001,0.361801,","2018-02-24 21:46:55 +0000,Aviate_Home|","2018-02-24 21:51:27 +0000,Aviate_Home|","2018-02-24 21:52:07 +0000,Location_Update|56.003506,-4.726800,23.429001,0.000000,","2018-02-24 21:53:35 +0000,App_Opened|com.google.android.apps.maps,SPACES,null,0,0","2018-02-24 21:53:35 +0000,Location_Update|55.942902,-4.562170,20.000000,151.896576,","2018-02-24 21:53:47 +0000,Location_Update|55.942902,-4.562170,23.429001,0.000000,","2018-02-24 21:56:17 +0000,Location_Update|55.942902,-4.562170,23.429001,0.000000,","2018-02-24 21:57:05 +0000,Aviate_Home|","2018-02-24 21:58:36 +0000,Location_Update|55.941200,-4.549610,20.000000,5.955427,","2018-02-24 21:58:56 +0000,Location_Update|55.940399,-4.547426,23.429001,7.968862,","2018-02-24 21:59:16 +0000,Location_Update|55.939106,-4.544045,23.429001,12.405882,","2018-02-24 21:59:44 +0000,Location_Update|55.937801,-4.540680,23.429001,8.933429,","2018-02-24 21:59:51 +0000,Aviate_Home|","2018-02-24 22:00:17 +0000,Location_Update|55.935497,-4.532600,23.429001,16.847424,","2018-02-24 22:00:48 +0000,Location_Update|55.935398,-4.524649,23.417000,15.721061,","2018-02-24 22:01:57 +0000,Location_Update|55.935497,-4.515150,23.429001,8.528607,","2018-02-24 22:02:58 +0000,Location_Update|55.935299,-4.514701,23.375999,0.579232,","2018-02-24 22:04:02 +0000,Location_Update|55.931900,-4.500795,23.375999,14.668383,","2018-02-24 22:04:37 +0000,Location_Update|55.932598,-4.492359,23.429001,14.962058,","2018-02-24 22:05:09 +0000,Location_Update|55.930202,-4.474922,23.417000,34.393246,","2018-02-24 22:06:11 +0000,Location_Update|55.925804,-4.450023,23.339001,26.053675,","2018-02-24 22:07:18 +0000,Location_Update|55.921299,-4.459558,23.429001,11.518684,","2018-02-24 22:07:36 +0000,Location_Update|55.919102,-4.465290,23.429001,23.299753,","2018-02-24 22:08:19 +0000,Location_Update|55.907860,-4.473067,23.278999,30.773069,","2018-02-24 22:09:18 +0000,Location_Update|55.898659,-4.483298,20.577000,20.255144,","2018-02-24 22:09:27 +0000,Location_Update|55.896713,-4.482484,23.400000,20.255144,","2018-02-24 22:10:29 +0000,Location_Update|55.879711,-4.476359,23.429001,30.838560,","2018-02-24 22:10:54 +0000,Location_Update|55.875999,-4.472400,23.429001,18.800732,","2018-02-24 22:11:37 +0000,Location_Update|55.865097,-4.461020,23.429001,32.254250,","2018-02-24 22:12:04 +0000,Aviate_Home|","2018-02-24 22:13:24 +0000,Location_Update|55.862297,-4.418960,20.000000,26.885384,","2018-02-24 22:13:43 +0000,Location_Update|55.861000,-4.406475,23.417000,41.539467,","2018-02-24 22:14:29 +0000,Location_Update|55.863300,-4.389929,23.429001,22.879976,","2018-02-24 22:15:08 +0000,Location_Update|55.867298,-4.368011,23.417000,36.389935,","2018-02-24 22:15:30 +0000,Location_Update|55.865406,-4.358819,23.400000,27.061846,","2018-02-24 22:16:28 +0000,Location_Update|55.854427,-4.342575,23.375999,27.117811,","2018-02-24 22:16:36 +0000,Location_Update|55.853306,-4.339549,23.400000,27.117811,","2018-02-24 22:17:41 +0000,Aviate_Home|","2018-02-24 22:17:46 +0000,Location_Update|55.849098,-4.310120,20.000000,26.920261,","2018-02-24 22:18:14 +0000,Location_Update|55.849297,-4.299915,23.429001,22.584473,","2018-02-24 22:18:27 +0000,Location_Update|55.850578,-4.295492,20.784000,22.828470,","2018-02-24 22:18:46 +0000,Aviate_Home|","2018-02-24 22:19:38 +0000,Location_Upd
03-08 09:46:39.743 2364-16308/com.tul.aviate D/VolleyRequestBuilder: Requesting: https://api.getaviate.com/v6/devices/events_given_device_id/?device_id=c0b0cf5693633c55-atn7v5qqpk7rv
03-08 09:46:39.965 2364-16312/com.tul.aviate E/VolleyRequestBuilder: Response Error: com.android.volley.l: java.net.UnknownHostException: Unable to resolve host "api.getaviate.com": No address associated with hostname
03-08 11:26:19.748 2364-18259/com.tul.aviate D/VolleyRequestBuilder: POST {"appKey":"ALq3OMhN7EY-X3U26qyvDhV_zZltfuzddRJU0FrR6--IhrjY4cuvO0Fm6lU3WesnLWNHpcgGSrKCweyHgZjSAxmY5IckAz6fDA","contexts":[{"radius":23.429,"batteryLevel":100,"chargerOn":false,"eid":"","headphoneOn":false,"lat":40.7501,"lng":-73.98601,"musicPlaying":false,"notifIds":[],"speed":0.0,"stream":"main","time":"2018-03-08T11:26:19+0000","upcomingMeeting":0}],"cpVersion":3,"lang":"en-US","region":"US"}
03-08 11:26:19.748 2364-18259/com.tul.aviate D/VolleyRequestBuilder: Requesting: https://aviate-yql.media.yahoo.com/v2/ace/cards?region=US&lang=en-US&crumb=LvnvxRvdbc.
03-08 11:26:20.770 2364-18264/com.tul.aviate D/VolleyRequestBuilder: Status Code: 200
Response Body: {"response":{"result":[{"cards":[{"card_id":"2082d004-1852-3041-8e66-2d6595db402e","rendering_engine":"custom","type":"NEARBY_SHORTCUTS","type_display_name":"Nearby Places","ttl":1520681180,"layout":{"template":"nearby_shortcuts"},"data":{"cafe_yelp_url":"http://m.yelp.com/search?find_desc=Cafes&l=a:40.7501,-73.98601,1","restaurant_yelp_url":"http://m.yelp.com/search?find_desc=Restaurant&ls=a:40.7501,-73.98601,1","bar_yelp_url":"http://m.yelp.com/search?find_desc=Bars&l=a:40.7501,-73.98601,1","cafe_yahoo_url":"https://search.yahoo.com/local/s?p=Cafes&lat=40.7501&lon=-73.98601","restaurant_yahoo_url":"https://search.yahoo.com/local/s?p=Restaurants&lat=40.7501&lon=-73.98601","bar_yahoo_url":"https://search.yahoo.com/local/s?p=Bars&lat=40.7501&lon=-73.98601"},"modules":{},"reason":"","notify":false,"ranking_arguments":{"USER_LOCATION:OTHER":1.0,"USER_SPEED:STILL":1.0,"req_longitude":-73.98601,"USER_DIST_FROM_REQ_LOC:WITHIN_800M":1.0,"TIME_OF_DAY_RANGE:LUNCH":1.0,"req_latitude":40.7501,"STREAM_TYPE:MAIN":1.0,"rule_score":1.0,"TIER":1.0,"score":0.5},"instrumentation":{"rid":"9gk9g5tda27es","bucket":"ga"}},{"card_id":"83a014c3-c0a4-3242-b5a8-79d011b677d6","rendering_engine":"custom","type":"WEATHER","type_display_name":"Weather","ttl":1520681180,"layout":{"template":"weather"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"TIME_OF_DAY_RANGE:LUNCH":1.0,"STREAM_TYPE:MAIN":1.0,"rule_score":0.0,"TIER":0.0,"score":0.25},"instrumentation":{"rid":"9gk9g5tda27es","bucket":"ga"}},{"card_id":"c81eac4b-4553-3d60-85a6-178968bd5065","rendering_engine":"custom","type":"NEWS_DIGEST","type_display_name":"News Digest","ttl":1520681180,"layout":{"template":"news_digest"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"TIME_OF_DAY_RANGE:LUNCH":1.0,"STREAM_TYPE:MAIN":1.0,"rule_score":0.0,"TIER":0.0,"score":0.25},"instrumentation":{"rid":"9gk9g5tda27es","bucket":"ga"}},{"card_id":"bcacee7a-d79a-3e4e-a5b8-77c5b6480a8c","rendering_engine":"custom","type":"CALENDAR","type_display_name":"Calendar","ttl":1520681180,"layout":{"template":"calendar"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"USER_LOCATION:OTHER":1.0,"TIME_OF_DAY_RANGE:LUNCH":1.0,"STREAM_TYPE:MAIN":1.0,"rule_score":2.0,"TIER":2.0,"score":0.25},"instrumentation":{"rid":"9gk9g5tda27es","bucket":"ga"}},{"card_id":"eea4f59a-e8a2-3e12-a917-96e254c416d5","rendering_engine":"custom","type":"VENUE_CHOOSER","type_display_name":"Around Me","ttl":1520511980,"layout":{"template":"venue_chooser"},"data":{"venues":[{"name":"Macy's","category":"Department Store","iconUrl":"https://ss3.4sqi.net/img/categories_v2/shops/departmentstore_64.png","id":"41102700f964a520d60b1fe3","provider":"foursquare","eid":"{\"card\":\"venue\",\"id\":\"41102700f964a520d60b1fe3\"}"},{"name":"Brendan's Bar & Grill","category":"American Restaurant","iconUrl":"https://ss3.4sqi.net/img/categories_v2/food/default_64.png","id":"4adaa371f964a520ec2321e3","provider":"foursquare","eid":"{\"card\":\"venue\",\"id\":\"4adaa371f964a520ec2321e3\"}"},{"name":"Hotel Metro","category":"Hotel","iconUrl":"https://ss3.4sqi.net/img/categories_v2/travel/hotel_64.png","id":"4ad9493df964a520961921e3","provider":"foursquare","eid":"{\"card\":\"venue\",\"id\":\"4ad9493df964a520961921e3\"}"}]},"modules":{},"reason":"","notify":false,"ranking_arguments":{"USER_LOCATION:OTHER":1.0,"req_longitude":-73.98601,"USER_DIST_FROM_REQ_LOC:WITHIN_800M":1.0,"req_latitude":40.7501,"STREAM_TYPE:MAIN":1.0,"USER_LOCATION_POI_CONFIDENCE:HIGH":1.0,"rule_score":2.0,"TIER":2.0,"score":0.25},"instrumentation":{"rid":"9gk9g5tda27es","bucket":"ga"}},{"card_id":"4b5b8c71-58d2-3f26-abce-318e3d3a01d6","rendering_engine":"custom","type":"MORNING_NIGHT","type_display_name":"Set Alarm","ttl":1520681180,"layout":{"template":"morning_night"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"USER_LOCATION:OTHER":1.0,"USER_SPEED:STILL":1.0,"TIME_OF_DAY_RANGE:LUNCH":1.0,"STREAM_TYPE:MAIN":1.0,"rule_score":0
03-08 12:26:56.720 2364-18819/com.tul.aviate D/VolleyRequestBuilder: POST {"events":["2018-02-19 10:19:32 +0000,Aviate_Home|","2018-02-19 10:20:00 +0000,Aviate_Home|","2018-02-19 10:20:16 +0000,Aviate_Home|","2018-02-19 10:20:23 +0000,Aviate_Home|","2018-02-19 10:20:36 +0000,Aviate_Home|","2018-02-24 21:29:26 +0000,Aviate_Home|","2018-02-24 21:40:19 +0000,App_Opened|com.android.chrome,SPACES,null,0,0","2018-02-24 21:43:19 +0000,Aviate_Home|","2018-02-24 21:43:37 +0000,Aviate_Home|","2018-02-24 21:44:03 +0000,Aviate_Home|","2018-02-24 21:44:30 +0000,Aviate_Home|","2018-02-24 21:45:07 +0000,App_Opened|com.google.android.apps.maps,SPACES,null,0,0","2018-02-24 21:45:22 +0000,Location_Update|56.003784,-4.726800,20.000000,0.000000,","2018-02-24 21:46:47 +0000,Location_Update|56.003506,-4.726800,23.429001,0.361801,","2018-02-24 21:46:55 +0000,Aviate_Home|","2018-02-24 21:51:27 +0000,Aviate_Home|","2018-02-24 21:52:07 +0000,Location_Update|56.003506,-4.726800,23.429001,0.000000,","2018-02-24 21:53:35 +0000,App_Opened|com.google.android.apps.maps,SPACES,null,0,0","2018-02-24 21:53:35 +0000,Location_Update|55.942902,-4.562170,20.000000,151.896576,","2018-02-24 21:53:47 +0000,Location_Update|55.942902,-4.562170,23.429001,0.000000,","2018-02-24 21:56:17 +0000,Location_Update|55.942902,-4.562170,23.429001,0.000000,","2018-02-24 21:57:05 +0000,Aviate_Home|","2018-02-24 21:58:36 +0000,Location_Update|55.941200,-4.549610,20.000000,5.955427,","2018-02-24 21:58:56 +0000,Location_Update|55.940399,-4.547426,23.429001,7.968862,","2018-02-24 21:59:16 +0000,Location_Update|55.939106,-4.544045,23.429001,12.405882,","2018-02-24 21:59:44 +0000,Location_Update|55.937801,-4.540680,23.429001,8.933429,","2018-02-24 21:59:51 +0000,Aviate_Home|","2018-02-24 22:00:17 +0000,Location_Update|55.935497,-4.532600,23.429001,16.847424,","2018-02-24 22:00:48 +0000,Location_Update|55.935398,-4.524649,23.417000,15.721061,","2018-02-24 22:01:57 +0000,Location_Update|55.935497,-4.515150,23.429001,8.528607,","2018-02-24 22:02:58 +0000,Location_Update|55.935299,-4.514701,23.375999,0.579232,","2018-02-24 22:04:02 +0000,Location_Update|55.931900,-4.500795,23.375999,14.668383,","2018-02-24 22:04:37 +0000,Location_Update|55.932598,-4.492359,23.429001,14.962058,","2018-02-24 22:05:09 +0000,Location_Update|55.930202,-4.474922,23.417000,34.393246,","2018-02-24 22:06:11 +0000,Location_Update|55.925804,-4.450023,23.339001,26.053675,","2018-02-24 22:07:18 +0000,Location_Update|55.921299,-4.459558,23.429001,11.518684,","2018-02-24 22:07:36 +0000,Location_Update|55.919102,-4.465290,23.429001,23.299753,","2018-02-24 22:08:19 +0000,Location_Update|55.907860,-4.473067,23.278999,30.773069,","2018-02-24 22:09:18 +0000,Location_Update|55.898659,-4.483298,20.577000,20.255144,","2018-02-24 22:09:27 +0000,Location_Update|55.896713,-4.482484,23.400000,20.255144,","2018-02-24 22:10:29 +0000,Location_Update|55.879711,-4.476359,23.429001,30.838560,","2018-02-24 22:10:54 +0000,Location_Update|55.875999,-4.472400,23.429001,18.800732,","2018-02-24 22:11:37 +0000,Location_Update|55.865097,-4.461020,23.429001,32.254250,","2018-02-24 22:12:04 +0000,Aviate_Home|","2018-02-24 22:13:24 +0000,Location_Update|55.862297,-4.418960,20.000000,26.885384,","2018-02-24 22:13:43 +0000,Location_Update|55.861000,-4.406475,23.417000,41.539467,","2018-02-24 22:14:29 +0000,Location_Update|55.863300,-4.389929,23.429001,22.879976,","2018-02-24 22:15:08 +0000,Location_Update|55.867298,-4.368011,23.417000,36.389935,","2018-02-24 22:15:30 +0000,Location_Update|55.865406,-4.358819,23.400000,27.061846,","2018-02-24 22:16:28 +0000,Location_Update|55.854427,-4.342575,23.375999,27.117811,","2018-02-24 22:16:36 +0000,Location_Update|55.853306,-4.339549,23.400000,27.117811,","2018-02-24 22:17:41 +0000,Aviate_Home|","2018-02-24 22:17:46 +0000,Location_Update|55.849098,-4.310120,20.000000,26.920261,","2018-02-24 22:18:14 +0000,Location_Update|55.849297,-4.299915,23.429001,22.584473,","2018-02-24 22:18:27 +0000,Location_Update|55.850578,-4.295492,20.784000,22.828470,","2018-02-24 22:18:46 +0000,Aviate_Home|","2018-02-24 22:19:38 +0000,Location_Upd
03-08 12:26:56.721 2364-18819/com.tul.aviate D/VolleyRequestBuilder: Requesting: https://api.getaviate.com/v6/devices/events_given_device_id/?device_id=c0b0cf5693633c55-atn7v5qqpk7rv
03-08 12:26:56.936 2364-18822/com.tul.aviate E/VolleyRequestBuilder: Response Error: com.android.volley.l: java.net.UnknownHostException: Unable to resolve host "api.getaviate.com": No address associated with hostname
03-08 13:26:19.968 2364-19278/com.tul.aviate D/VolleyRequestBuilder: POST {"appKey":"ALq3OMhN7EY-X3U26qyvDhV_zZltfuzddRJU0FrR6--IhrjY4cuvO0Fm6lU3WesnLWNHpcgGSrKCweyHgZjSAxmY5IckAz6fDA","contexts":[{"radius":23.429,"batteryLevel":100,"chargerOn":false,"eid":"","headphoneOn":false,"lat":40.7501,"lng":-73.98601,"musicPlaying":false,"notifIds":[],"speed":0.0,"stream":"main","time":"2018-03-08T13:26:19+0000","upcomingMeeting":0}],"cpVersion":3,"lang":"en-US","region":"US"}
03-08 13:26:19.968 2364-19278/com.tul.aviate D/VolleyRequestBuilder: Requesting: https://aviate-yql.media.yahoo.com/v2/ace/cards?region=US&lang=en-US&crumb=LvnvxRvdbc.
03-08 13:26:20.889 2364-19282/com.tul.aviate D/VolleyRequestBuilder: Status Code: 200
Response Body: {"response":{"result":[{"cards":[{"card_id":"2082d004-1852-3041-8e66-2d6595db402e","rendering_engine":"custom","type":"NEARBY_SHORTCUTS","type_display_name":"Nearby Places","ttl":1520688381,"layout":{"template":"nearby_shortcuts"},"data":{"cafe_yelp_url":"http://m.yelp.com/search?find_desc=Cafes&l=a:40.7501,-73.98601,1","restaurant_yelp_url":"http://m.yelp.com/search?find_desc=Restaurant&ls=a:40.7501,-73.98601,1","bar_yelp_url":"http://m.yelp.com/search?find_desc=Bars&l=a:40.7501,-73.98601,1","cafe_yahoo_url":"https://search.yahoo.com/local/s?p=Cafes&lat=40.7501&lon=-73.98601","restaurant_yahoo_url":"https://search.yahoo.com/local/s?p=Restaurants&lat=40.7501&lon=-73.98601","bar_yahoo_url":"https://search.yahoo.com/local/s?p=Bars&lat=40.7501&lon=-73.98601"},"modules":{},"reason":"","notify":false,"ranking_arguments":{"USER_LOCATION:OTHER":1.0,"USER_SPEED:STILL":1.0,"req_longitude":-73.98601,"USER_DIST_FROM_REQ_LOC:WITHIN_800M":1.0,"TIME_OF_DAY_RANGE:LUNCH":1.0,"req_latitude":40.7501,"STREAM_TYPE:MAIN":1.0,"TIME_OF_DAY_RANGE:AFTERNOON":1.0,"rule_score":1.0,"TIER":1.0,"score":0.5},"instrumentation":{"rid":"4eq9p6hda2eft","bucket":"ga"}},{"card_id":"83a014c3-c0a4-3242-b5a8-79d011b677d6","rendering_engine":"custom","type":"WEATHER","type_display_name":"Weather","ttl":1520688381,"layout":{"template":"weather"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"TIME_OF_DAY_RANGE:LUNCH":1.0,"STREAM_TYPE:MAIN":1.0,"TIME_OF_DAY_RANGE:AFTERNOON":1.0,"rule_score":0.0,"TIER":0.0,"score":0.25},"instrumentation":{"rid":"4eq9p6hda2eft","bucket":"ga"}},{"card_id":"c81eac4b-4553-3d60-85a6-178968bd5065","rendering_engine":"custom","type":"NEWS_DIGEST","type_display_name":"News Digest","ttl":1520688381,"layout":{"template":"news_digest"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"TIME_OF_DAY_RANGE:LUNCH":1.0,"STREAM_TYPE:MAIN":1.0,"TIME_OF_DAY_RANGE:AFTERNOON":1.0,"rule_score":0.0,"TIER":0.0,"score":0.25},"instrumentation":{"rid":"4eq9p6hda2eft","bucket":"ga"}},{"card_id":"bcacee7a-d79a-3e4e-a5b8-77c5b6480a8c","rendering_engine":"custom","type":"CALENDAR","type_display_name":"Calendar","ttl":1520688381,"layout":{"template":"calendar"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"USER_LOCATION:OTHER":1.0,"TIME_OF_DAY_RANGE:LUNCH":1.0,"STREAM_TYPE:MAIN":1.0,"TIME_OF_DAY_RANGE:AFTERNOON":1.0,"rule_score":2.0,"TIER":2.0,"score":0.25},"instrumentation":{"rid":"4eq9p6hda2eft","bucket":"ga"}},{"card_id":"eea4f59a-e8a2-3e12-a917-96e254c416d5","rendering_engine":"custom","type":"VENUE_CHOOSER","type_display_name":"Around Me","ttl":1520519181,"layout":{"template":"venue_chooser"},"data":{"venues":[{"name":"Macy's","category":"Department Store","iconUrl":"https://ss3.4sqi.net/img/categories_v2/shops/departmentstore_64.png","id":"41102700f964a520d60b1fe3","provider":"foursquare","eid":"{\"card\":\"venue\",\"id\":\"41102700f964a520d60b1fe3\"}"},{"name":"Brendan's Bar & Grill","category":"American Restaurant","iconUrl":"https://ss3.4sqi.net/img/categories_v2/food/default_64.png","id":"4adaa371f964a520ec2321e3","provider":"foursquare","eid":"{\"card\":\"venue\",\"id\":\"4adaa371f964a520ec2321e3\"}"},{"name":"Hotel Metro","category":"Hotel","iconUrl":"https://ss3.4sqi.net/img/categories_v2/travel/hotel_64.png","id":"4ad9493df964a520961921e3","provider":"foursquare","eid":"{\"card\":\"venue\",\"id\":\"4ad9493df964a520961921e3\"}"}]},"modules":{},"reason":"","notify":false,"ranking_arguments":{"USER_LOCATION:OTHER":1.0,"req_longitude":-73.98601,"USER_DIST_FROM_REQ_LOC:WITHIN_800M":1.0,"req_latitude":40.7501,"STREAM_TYPE:MAIN":1.0,"USER_LOCATION_POI_CONFIDENCE:HIGH":1.0,"rule_score":2.0,"TIER":2.0,"score":0.25},"instrumentation":{"rid":"4eq9p6hda2eft","bucket":"ga"}},{"card_id":"4b5b8c71-58d2-3f26-abce-318e3d3a01d6","rendering_engine":"custom","type":"MORNING_NIGHT","type_display_name":"Set Alarm","ttl":1520688381,"layout":{"template":"morning_night"},"data":{},"modules":{},"reason":"","notify":false,"
03-08 15:30:51.194 2364-21396/com.tul.aviate D/VolleyRequestBuilder: POST {"appKey":"ALq3OMhN7EY-X3U26qyvDhV_zZltfuzddRJU0FrR6--IhrjY4cuvO0Fm6lU3WesnLWNHpcgGSrKCweyHgZjSAxmY5IckAz6fDA","contexts":[{"radius":23.429,"batteryLevel":100,"chargerOn":false,"eid":"","headphoneOn":false,"lat":40.7501,"lng":-73.98601,"musicPlaying":false,"notifIds":[],"speed":0.0,"stream":"main","time":"2018-03-08T15:30:51+0000","upcomingMeeting":0}],"cpVersion":3,"lang":"en-US","region":"US"}
03-08 15:30:51.195 2364-21396/com.tul.aviate D/VolleyRequestBuilder: Requesting: https://aviate-yql.media.yahoo.com/v2/ace/cards?region=US&lang=en-US&crumb=LvnvxRvdbc.
03-08 15:30:52.237 2364-21403/com.tul.aviate D/VolleyRequestBuilder: Status Code: 200
Response Body: {"response":{"result":[{"cards":[{"card_id":"cfa2b45e-7ae8-3fb9-8429-9a99eed6f146","rendering_engine":"dunkv2","type":"BREAKING_NEWS","type_display_name":"Breaking News","ttl":1520526648,"layout":{},"data":{"header":{"title":"Breaking News","image":"https://s.yimg.com/bt/api/res/1.2/vnju81YhY9ThONsKu9c.kg--/YXBwaWQ9eW5ld3M7Y2M9ODY0MDA7cT04NTtmaT1maWxsO3B5b2ZmPTA-/http://media.zenfs.com/en/homerun/feed_manager_auto_publish_494/6cbb4467e6e9372c2d492c8f7bad7e95"},"breakingNews":{"title":"Miss Universe in Moscow: How Trump's beauty contest spawned a business deal with Russians and a bond with Putin","excerpt":"This is the first of two excerpts adapted from Russian Roulette: The Inside Story of Putin's War on America and the Election of Donald Trump (Twelve Books), by Michael Isikoff, Chief Investigative Correspondent for Yahoo News, and David Corn, Washington bureau chief of Mother Jones. It will be released on March 13.","datePublished":"53 mins ago","articleUrl":"https://www.yahoo.com/news/miss-universe-moscow-trumps-beauty-contest-spawned-business-deal-russians-bond-putin-100026386.html"}},"modules":[{"ref":["header"],"type":"header"},{"ref":["breakingNews"],"type":"storyBreakingNews"}],"reason":"","notify":true,"notification_id":"cfa2b45e-7ae8-3fb9-8429-9a99eed6f146","notification_title":"Breaking News","notification_text":"Miss Universe in Moscow: How Trump's beauty contest spawned a business deal with Russians and a bond with Putin","ranking_arguments":{"STORY_AGE:30MIN_TO_2HOUR":1.0,"pubtime_ts":1.52051982E9,"STREAM_TYPE:MAIN":1.0,"rule_score":0.0,"TIER":0.0,"score":0.5},"instrumentation":{"rid":"206ku41da2lp8","bucket":"ga"}},{"card_id":"83a014c3-c0a4-3242-b5a8-79d011b677d6","rendering_engine":"custom","type":"WEATHER","type_display_name":"Weather","ttl":1520695848,"layout":{"template":"weather"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"STREAM_TYPE:MAIN":1.0,"TIME_OF_DAY_RANGE:AFTERNOON":1.0,"rule_score":0.0,"TIER":0.0,"score":0.25},"instrumentation":{"rid":"206ku41da2lp8","bucket":"ga"}},{"card_id":"c81eac4b-4553-3d60-85a6-178968bd5065","rendering_engine":"custom","type":"NEWS_DIGEST","type_display_name":"News Digest","ttl":1520695848,"layout":{"template":"news_digest"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"STREAM_TYPE:MAIN":1.0,"TIME_OF_DAY_RANGE:AFTERNOON":1.0,"rule_score":0.0,"TIER":0.0,"score":0.25},"instrumentation":{"rid":"206ku41da2lp8","bucket":"ga"}},{"card_id":"bcacee7a-d79a-3e4e-a5b8-77c5b6480a8c","rendering_engine":"custom","type":"CALENDAR","type_display_name":"Calendar","ttl":1520695848,"layout":{"template":"calendar"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"USER_LOCATION:OTHER":1.0,"STREAM_TYPE:MAIN":1.0,"TIME_OF_DAY_RANGE:AFTERNOON":1.0,"rule_score":2.0,"TIER":2.0,"score":0.25},"instrumentation":{"rid":"206ku41da2lp8","bucket":"ga"}},{"card_id":"eea4f59a-e8a2-3e12-a917-96e254c416d5","rendering_engine":"custom","type":"VENUE_CHOOSER","type_display_name":"Around Me","ttl":1520526648,"layout":{"template":"venue_chooser"},"data":{"venues":[{"name":"Macy's","category":"Department Store","iconUrl":"https://ss3.4sqi.net/img/categories_v2/shops/departmentstore_64.png","id":"41102700f964a520d60b1fe3","provider":"foursquare","eid":"{\"card\":\"venue\",\"id\":\"41102700f964a520d60b1fe3\"}"},{"name":"Brendan's Bar & Grill","category":"American Restaurant","iconUrl":"https://ss3.4sqi.net/img/categories_v2/food/default_64.png","id":"4adaa371f964a520ec2321e3","provider":"foursquare","eid":"{\"card\":\"venue\",\"id\":\"4adaa371f964a520ec2321e3\"}"},{"name":"Hotel Metro","category":"Hotel","iconUrl":"https://ss3.4sqi.net/img/categories_v2/travel/hotel_64.png","id":"4ad9493df964a520961921e3","provider":"foursquare","eid":"{\"card\":\"venue\",\"id\":\"4ad9493df964a520961921e3\"}"}]},"modules":{},"reason":"","notify":false,"ranking_arguments":{"USER_LOCATION:OTHER":1.0,"req_longitude":-73.98601,"USER_DIST_FROM_REQ_LOC:WITHIN_800M":1.0,"req
03-08 17:31:25.974 2364-22200/com.tul.aviate D/VolleyRequestBuilder: POST {"appKey":"ALq3OMhN7EY-X3U26qyvDhV_zZltfuzddRJU0FrR6--IhrjY4cuvO0Fm6lU3WesnLWNHpcgGSrKCweyHgZjSAxmY5IckAz6fDA","contexts":[{"radius":23.429,"batteryLevel":100,"chargerOn":false,"eid":"","headphoneOn":false,"lat":40.7501,"lng":-73.98601,"musicPlaying":false,"notifIds":[],"speed":0.0,"stream":"main","time":"2018-03-08T17:31:25+0000","upcomingMeeting":0}],"cpVersion":3,"lang":"en-US","region":"US"}
03-08 17:31:25.975 2364-22200/com.tul.aviate D/VolleyRequestBuilder: Requesting: https://aviate-yql.media.yahoo.com/v2/ace/cards?region=US&lang=en-US&crumb=LvnvxRvdbc.
03-08 17:31:26.848 2364-22207/com.tul.aviate D/VolleyRequestBuilder: Status Code: 200
Response Body: {"response":{"result":[{"cards":[{"card_id":"c81eac4b-4553-3d60-85a6-178968bd5065","rendering_engine":"custom","type":"NEWS_DIGEST","type_display_name":"News Digest","ttl":1520703086,"layout":{"template":"news_digest"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"TIME_OF_DAY_RANGE:EVENING":1.0,"TIME_OF_DAY_RANGE:DINNER":1.0,"STREAM_TYPE:MAIN":1.0,"rule_score":0.0,"TIER":0.0,"score":0.55},"instrumentation":{"rid":"e2ompl9da2sre","bucket":"ga"}},{"card_id":"83a014c3-c0a4-3242-b5a8-79d011b677d6","rendering_engine":"custom","type":"WEATHER","type_display_name":"Weather","ttl":1520703086,"layout":{"template":"weather"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"TIME_OF_DAY_RANGE:EVENING":1.0,"TIME_OF_DAY_RANGE:DINNER":1.0,"STREAM_TYPE:MAIN":1.0,"rule_score":0.0,"TIER":0.0,"score":0.5},"instrumentation":{"rid":"e2ompl9da2sre","bucket":"ga"}},{"card_id":"2082d004-1852-3041-8e66-2d6595db402e","rendering_engine":"custom","type":"NEARBY_SHORTCUTS","type_display_name":"Nearby Places","ttl":1520703086,"layout":{"template":"nearby_shortcuts"},"data":{"cafe_yelp_url":"http://m.yelp.com/search?find_desc=Cafes&l=a:40.7501,-73.98601,1","restaurant_yelp_url":"http://m.yelp.com/search?find_desc=Restaurant&ls=a:40.7501,-73.98601,1","bar_yelp_url":"http://m.yelp.com/search?find_desc=Bars&l=a:40.7501,-73.98601,1","cafe_yahoo_url":"https://search.yahoo.com/local/s?p=Cafes&lat=40.7501&lon=-73.98601","restaurant_yahoo_url":"https://search.yahoo.com/local/s?p=Restaurants&lat=40.7501&lon=-73.98601","bar_yahoo_url":"https://search.yahoo.com/local/s?p=Bars&lat=40.7501&lon=-73.98601"},"modules":{},"reason":"","notify":false,"ranking_arguments":{"TIME_OF_DAY_RANGE:EVENING":1.0,"TIME_OF_DAY_RANGE:DINNER":1.0,"USER_LOCATION:OTHER":1.0,"USER_SPEED:STILL":1.0,"req_longitude":-73.98601,"USER_DIST_FROM_REQ_LOC:WITHIN_800M":1.0,"req_latitude":40.7501,"STREAM_TYPE:MAIN":1.0,"rule_score":1.0,"TIER":1.0,"score":0.5},"instrumentation":{"rid":"e2ompl9da2sre","bucket":"ga"}},{"card_id":"ecfe852b-16d9-389a-981c-e3ce3c5ec52c","rendering_engine":"dunkv2","type":"BREAKING_NEWS","type_display_name":"Breaking News","ttl":1520533887,"layout":{},"data":{"header":{"title":"Breaking News","image":"https://s.yimg.com/bt/api/res/1.2/5spGka7CV0p3BvYDqpYQwQ--/YXBwaWQ9eW5ld3M7Y2M9ODY0MDA7cT04NTtmaT1maWxsO3B5b2ZmPTA-/http://media.zenfs.com/en/homerun/feed_manager_auto_publish_494/77a4bb8d263c49dbf8c05d729879c28e"},"breakingNews":{"title":"Nationalist autocrats are on the march. Trump yawns.","excerpt":"President Trump leaves the impression that his administration isn't interested in checking the brazen power of dictators, mainly because it's true.","datePublished":"37 mins ago","articleUrl":"https://www.yahoo.com/news/nationalist-autocrats-march-trump-yawns-100038611.html"}},"modules":[{"ref":["header"],"type":"header"},{"ref":["breakingNews"],"type":"storyBreakingNews"}],"reason":"","notify":true,"notification_id":"ecfe852b-16d9-389a-981c-e3ce3c5ec52c","notification_title":"Breaking News","notification_text":"Nationalist autocrats are on the march. Trump yawns.","ranking_arguments":{"STORY_AGE:30MIN_TO_2HOUR":1.0,"pubtime_ts":1.520528026E9,"STREAM_TYPE:MAIN":1.0,"rule_score":0.0,"TIER":0.0,"score":0.5},"instrumentation":{"rid":"e2ompl9da2sre","bucket":"ga"}},{"card_id":"bcacee7a-d79a-3e4e-a5b8-77c5b6480a8c","rendering_engine":"custom","type":"CALENDAR","type_display_name":"Calendar","ttl":1520703086,"layout":{"template":"calendar"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"TIME_OF_DAY_RANGE:EVENING":1.0,"TIME_OF_DAY_RANGE:DINNER":1.0,"USER_LOCATION:OTHER":1.0,"STREAM_TYPE:MAIN":1.0,"rule_score":2.0,"TIER":2.0,"score":0.25},"instrumentation":{"rid":"e2ompl9da2sre","bucket":"ga"}},{"card_id":"eea4f59a-e8a2-3e12-a917-96e254c416d5","rendering_engine":"custom","type":"VENUE_CHOOSER","type_display_name":"Around Me","ttl":1520533886,"layout":{"template":"venue_chooser"},"data":{"venues":[{"name":"Macy's","category":"Dep
03-08 19:58:38.095 2364-24207/com.tul.aviate D/VolleyRequestBuilder: POST {"appKey":"ALq3OMhN7EY-X3U26qyvDhV_zZltfuzddRJU0FrR6--IhrjY4cuvO0Fm6lU3WesnLWNHpcgGSrKCweyHgZjSAxmY5IckAz6fDA","contexts":[{"radius":23.429,"batteryLevel":100,"chargerOn":false,"eid":"","headphoneOn":false,"lat":40.7501,"lng":-73.98601,"musicPlaying":false,"notifIds":[],"speed":0.0,"stream":"main","time":"2018-03-08T19:58:38+0000","upcomingMeeting":0}],"cpVersion":3,"lang":"en-US","region":"US"}
03-08 19:58:38.095 2364-24207/com.tul.aviate D/VolleyRequestBuilder: Requesting: https://aviate-yql.media.yahoo.com/v2/ace/cards?region=US&lang=en-US&crumb=LvnvxRvdbc.
03-08 19:58:39.368 2364-24211/com.tul.aviate D/VolleyRequestBuilder: Status Code: 200
Response Body: {"response":{"result":[{"cards":[{"card_id":"c81eac4b-4553-3d60-85a6-178968bd5065","rendering_engine":"custom","type":"NEWS_DIGEST","type_display_name":"News Digest","ttl":1520711918,"layout":{"template":"news_digest"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"TIME_OF_DAY_RANGE:EVENING":1.0,"TIME_OF_DAY_RANGE:DINNER":1.0,"STREAM_TYPE:MAIN":1.0,"rule_score":2.0,"TIER":2.0,"score":0.55},"instrumentation":{"rid":"7lquadlda35fe","bucket":"ga"}},{"card_id":"83a014c3-c0a4-3242-b5a8-79d011b677d6","rendering_engine":"custom","type":"WEATHER","type_display_name":"Weather","ttl":1520711918,"layout":{"template":"weather"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"TIME_OF_DAY_RANGE:EVENING":1.0,"TIME_OF_DAY_RANGE:DINNER":1.0,"STREAM_TYPE:MAIN":1.0,"rule_score":0.0,"TIER":0.0,"score":0.5},"instrumentation":{"rid":"7lquadlda35fe","bucket":"ga"}},{"card_id":"2082d004-1852-3041-8e66-2d6595db402e","rendering_engine":"custom","type":"NEARBY_SHORTCUTS","type_display_name":"Nearby Places","ttl":1520711918,"layout":{"template":"nearby_shortcuts"},"data":{"cafe_yelp_url":"http://m.yelp.com/search?find_desc=Cafes&l=a:40.7501,-73.98601,1","restaurant_yelp_url":"http://m.yelp.com/search?find_desc=Restaurant&ls=a:40.7501,-73.98601,1","bar_yelp_url":"http://m.yelp.com/search?find_desc=Bars&l=a:40.7501,-73.98601,1","cafe_yahoo_url":"https://search.yahoo.com/local/s?p=Cafes&lat=40.7501&lon=-73.98601","restaurant_yahoo_url":"https://search.yahoo.com/local/s?p=Restaurants&lat=40.7501&lon=-73.98601","bar_yahoo_url":"https://search.yahoo.com/local/s?p=Bars&lat=40.7501&lon=-73.98601"},"modules":{},"reason":"","notify":false,"ranking_arguments":{"TIME_OF_DAY_RANGE:EVENING":1.0,"TIME_OF_DAY_RANGE:DINNER":1.0,"USER_LOCATION:OTHER":1.0,"USER_SPEED:STILL":1.0,"req_longitude":-73.98601,"USER_DIST_FROM_REQ_LOC:WITHIN_800M":1.0,"req_latitude":40.7501,"STREAM_TYPE:MAIN":1.0,"rule_score":1.0,"TIER":1.0,"score":0.5},"instrumentation":{"rid":"7lquadlda35fe","bucket":"ga"}},{"card_id":"c6af2a8a-bf0f-3aa2-a73c-9a6069baef6b","rendering_engine":"dunkv2","type":"BREAKING_NEWS","type_display_name":"Breaking News","ttl":1520542719,"layout":{},"data":{"header":{"title":"Breaking News","image":"https://s.yimg.com/bt/api/res/1.2/.whLyoxZjsZoJWar78Y7lw--/YXBwaWQ9eW5ld3M7Y2M9ODY0MDA7cT04NTtmaT1maWxsO3B5b2ZmPTA-/http://media.zenfs.com/en/homerun/feed_manager_auto_publish_494/096c00b3e674105583ec66dac472fa99"},"breakingNews":{"title":"Trump and the Russians: A new book describes how it all began — at a Las Vegas nightclub","excerpt":"A party at a raunchy Las Vegas nightclub in 2013 greased the wheels for Trump's later cooperation with a Russian oligarch close to Putin, and yet another Trump Tower meeting comes to light: revelations in \"Russian Roulette,\" a new book by investigative journalists Michael Isikoff and David Corn.","datePublished":"1 hour ago","articleUrl":"https://www.yahoo.com/news/trump-russians-new-book-describes-began-las-vegas-nightclub-140006326.html"}},"modules":[{"ref":["header"],"type":"header"},{"ref":["breakingNews"],"type":"storyBreakingNews"}],"reason":"","notify":true,"notification_id":"c6af2a8a-bf0f-3aa2-a73c-9a6069baef6b","notification_title":"Breaking News","notification_text":"Trump and the Russians: A new book describes how it all began — at a Las Vegas nightclub","ranking_arguments":{"STORY_AGE:30MIN_TO_2HOUR":1.0,"pubtime_ts":1.520535089E9,"STREAM_TYPE:MAIN":1.0,"rule_score":0.0,"TIER":0.0,"score":0.5},"instrumentation":{"rid":"7lquadlda35fe","bucket":"ga"}},{"card_id":"bcacee7a-d79a-3e4e-a5b8-77c5b6480a8c","rendering_engine":"custom","type":"CALENDAR","type_display_name":"Calendar","ttl":1520711918,"layout":{"template":"calendar"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"TIME_OF_DAY_RANGE:EVENING":1.0,"TIME_OF_DAY_RANGE:DINNER":1.0,"USER_LOCATION:OTHER":1.0,"STREAM_TYPE:MAIN":1.0,"rule_score":2.0,"TIER":2.0,"score":0.25},"instrumentation":{"rid":"7lquadlda35fe","bucket"
03-08 21:58:49.035 2364-25272/com.tul.aviate D/VolleyRequestBuilder: POST {"appKey":"ALq3OMhN7EY-X3U26qyvDhV_zZltfuzddRJU0FrR6--IhrjY4cuvO0Fm6lU3WesnLWNHpcgGSrKCweyHgZjSAxmY5IckAz6fDA","contexts":[{"radius":23.429,"batteryLevel":100,"chargerOn":false,"eid":"","headphoneOn":false,"lat":40.7501,"lng":-73.98601,"musicPlaying":false,"notifIds":[],"speed":0.0,"stream":"main","time":"2018-03-08T21:58:49+0000","upcomingMeeting":0}],"cpVersion":3,"lang":"en-US","region":"US"}
03-08 21:58:49.035 2364-25272/com.tul.aviate D/VolleyRequestBuilder: Requesting: https://aviate-yql.media.yahoo.com/v2/ace/cards?region=US&lang=en-US&crumb=LvnvxRvdbc.
03-08 21:58:50.235 2364-25276/com.tul.aviate D/VolleyRequestBuilder: Status Code: 200
Response Body: {"response":{"result":[{"cards":[{"card_id":"4b5b8c71-58d2-3f26-abce-318e3d3a01d6","rendering_engine":"custom","type":"MORNING_NIGHT","type_display_name":"Set Alarm","ttl":1520719130,"layout":{"template":"morning_night"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"USER_LOCATION:OTHER":1.0,"USER_SPEED:STILL":1.0,"TIME_OF_DAY_RANGE:NIGHT":1.0,"STREAM_TYPE:MAIN":1.0,"rule_score":3.0,"TIER":3.0,"score":0.5},"instrumentation":{"rid":"2ccrgnlda3cgq","bucket":"ga"}},{"card_id":"83a014c3-c0a4-3242-b5a8-79d011b677d6","rendering_engine":"custom","type":"WEATHER","type_display_name":"Weather","ttl":1520719130,"layout":{"template":"weather"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"TIME_OF_DAY_RANGE:NIGHT":1.0,"STREAM_TYPE:MAIN":1.0,"rule_score":3.0,"TIER":3.0,"score":0.25},"instrumentation":{"rid":"2ccrgnlda3cgq","bucket":"ga"}},{"card_id":"c81eac4b-4553-3d60-85a6-178968bd5065","rendering_engine":"custom","type":"NEWS_DIGEST","type_display_name":"News Digest","ttl":1520719130,"layout":{"template":"news_digest"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"TIME_OF_DAY_RANGE:NIGHT":1.0,"STREAM_TYPE:MAIN":1.0,"rule_score":2.0,"TIER":2.0,"score":0.25},"instrumentation":{"rid":"2ccrgnlda3cgq","bucket":"ga"}},{"card_id":"bcacee7a-d79a-3e4e-a5b8-77c5b6480a8c","rendering_engine":"custom","type":"CALENDAR","type_display_name":"Calendar","ttl":1520719130,"layout":{"template":"calendar"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"USER_LOCATION:OTHER":1.0,"TIME_OF_DAY_RANGE:NIGHT":1.0,"STREAM_TYPE:MAIN":1.0,"rule_score":2.0,"TIER":2.0,"score":0.25},"instrumentation":{"rid":"2ccrgnlda3cgq","bucket":"ga"}},{"card_id":"eea4f59a-e8a2-3e12-a917-96e254c416d5","rendering_engine":"custom","type":"VENUE_CHOOSER","type_display_name":"Around Me","ttl":1520549930,"layout":{"template":"venue_chooser"},"data":{"venues":[{"name":"Macy's","category":"Department Store","iconUrl":"https://ss3.4sqi.net/img/categories_v2/shops/departmentstore_64.png","id":"41102700f964a520d60b1fe3","provider":"foursquare","eid":"{\"card\":\"venue\",\"id\":\"41102700f964a520d60b1fe3\"}"},{"name":"Brendan's Bar & Grill","category":"American Restaurant","iconUrl":"https://ss3.4sqi.net/img/categories_v2/food/default_64.png","id":"4adaa371f964a520ec2321e3","provider":"foursquare","eid":"{\"card\":\"venue\",\"id\":\"4adaa371f964a520ec2321e3\"}"},{"name":"Hotel Metro","category":"Hotel","iconUrl":"https://ss3.4sqi.net/img/categories_v2/travel/hotel_64.png","id":"4ad9493df964a520961921e3","provider":"foursquare","eid":"{\"card\":\"venue\",\"id\":\"4ad9493df964a520961921e3\"}"}]},"modules":{},"reason":"","notify":false,"ranking_arguments":{"USER_LOCATION:OTHER":1.0,"req_longitude":-73.98601,"USER_DIST_FROM_REQ_LOC:WITHIN_800M":1.0,"req_latitude":40.7501,"STREAM_TYPE:MAIN":1.0,"USER_LOCATION_POI_CONFIDENCE:HIGH":1.0,"rule_score":2.0,"TIER":2.0,"score":0.25},"instrumentation":{"rid":"2ccrgnlda3cgq","bucket":"ga"}},{"card_id":"730f79c6-148d-39fd-bba1-1b3eafb8b6dc","rendering_engine":"custom","type":"MUSIC_PLAYING","type_display_name":"Music Player","ttl":1520719130,"layout":{"template":"music_playing"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"STREAM_TYPE:MAIN":1.0,"rule_score":0.0,"TIER":0.0,"score":0.0},"instrumentation":{"rid":"2ccrgnlda3cgq","bucket":"ga"}},{"card_id":"ee966fd9-7ca1-368c-b56c-427013d5b9e9","rendering_engine":"custom","type":"ARTIST_INFO","type_display_name":"Artist Info","ttl":1520719130,"layout":{"template":"artist_info"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"STREAM_TYPE:MAIN":1.0,"rule_score":0.0,"TIER":0.0,"score":0.0},"instrumentation":{"rid":"2ccrgnlda3cgq","bucket":"ga"}},{"card_id":"2082d004-1852-3041-8e66-2d6595db402e","rendering_engine":"custom","type":"NEARBY_SHORTCUTS","type_display_name":"Nearby Places","ttl":1520719130,"layout":{"template":"nearby_shortcuts"},"data":{"cafe_yelp_url":"http://m.yelp.com
03-08 23:26:15.116 2364-27710/com.tul.aviate D/VolleyRequestBuilder: Requesting: https://aviate-yql.media.yahoo.com/v2/ace/sync?crumb=LvnvxRvdbc.
03-08 23:26:16.111 2364-27714/com.tul.aviate D/VolleyRequestBuilder: Status Code: 200
Response Body: {"sync":{"result":[{"profile":{"inferred":[],"wifiConnected":[],"declared":[]},"model":{"model_id":"rules_v1_20150401","type":"linear","features":{"SPORTS_NFL":[{"unit_feature_ids":["STREAM_TYPE:MAIN","USER_INTEREST:FOOTBALL_TEAM","GAME_PROGRESS:SCHEDULED"],"weight":0.25},{"unit_feature_ids":["STREAM_TYPE:MAIN","USER_INTEREST:FOOTBALL_TEAM","GAME_PROGRESS:LIVE"],"weight":0.5},{"unit_feature_ids":["STREAM_TYPE:MAIN","USER_INTEREST:FOOTBALL_TEAM","GAME_PROGRESS:COMPLETED"],"weight":0.25},{"unit_feature_ids":["STREAM_TYPE:ENTERTAINMENT","GAME_PROGRESS:SCHEDULED"],"weight":0.25},{"unit_feature_ids":["STREAM_TYPE:ENTERTAINMENT","GAME_PROGRESS:LIVE"],"weight":0.4},{"unit_feature_ids":["STREAM_TYPE:ENTERTAINMENT","GAME_PROGRESS:COMPLETED"],"weight":0.25}],"SPORTS_NBA":[{"unit_feature_ids":["STREAM_TYPE:MAIN","USER_INTEREST:BASKETBALL_TEAM","GAME_PROGRESS:SCHEDULED"],"weight":0.2},{"unit_feature_ids":["STREAM_TYPE:MAIN","USER_INTEREST:BASKETBALL_TEAM","GAME_PROGRESS:LIVE"],"weight":1.25},{"unit_feature_ids":["STREAM_TYPE:MAIN","USER_INTEREST:BASKETBALL_TEAM","GAME_PROGRESS:COMPLETED"],"weight":0.2},{"unit_feature_ids":["STREAM_TYPE:ENTERTAINMENT","GAME_PROGRESS:SCHEDULED"],"weight":0.2},{"unit_feature_ids":["STREAM_TYPE:ENTERTAINMENT","GAME_PROGRESS:LIVE"],"weight":1.25},{"unit_feature_ids":["STREAM_TYPE:ENTERTAINMENT","GAME_PROGRESS:COMPLETED"],"weight":0.2}],"MORNING_NIGHT":[{"unit_feature_ids":["STREAM_TYPE:TODAY","USER_LOCATION:HOME","TIME_OF_DAY_RANGE:MORNING"],"weight":1},{"unit_feature_ids":["STREAM_TYPE:TODAY","USER_LOCATION:HOME","TIME_OF_DAY_RANGE:NIGHT"],"weight":1},{"unit_feature_ids":["STREAM_TYPE:TODAY","USER_LOCATION:OTHER","USER_SPEED:STILL","TIME_OF_DAY_RANGE:MORNING"],"weight":1.0},{"unit_feature_ids":["STREAM_TYPE:TODAY","USER_LOCATION:OTHER","TIME_OF_DAY_RANGE:NIGHT"],"weight":1.0},{"unit_feature_ids":["STREAM_TYPE:MAIN","USER_LOCATION:HOME","TIME_OF_DAY_RANGE:MORNING"],"weight":1},{"unit_feature_ids":["STREAM_TYPE:MAIN","USER_LOCATION:HOME","TIME_OF_DAY_RANGE:NIGHT"],"weight":1},{"unit_feature_ids":["STREAM_TYPE:MAIN","USER_LOCATION:OTHER","USER_SPEED:STILL","TIME_OF_DAY_RANGE:MORNING"],"weight":1.0},{"unit_feature_ids":["STREAM_TYPE:MAIN","USER_LOCATION:OTHER","USER_SPEED:STILL","TIME_OF_DAY_RANGE:NIGHT"],"weight":1.0}],"SPORTS_CRICKET":[{"unit_feature_ids":["STREAM_TYPE:MAIN","USER_INTEREST:CRICKET","GAME_PROGRESS:SCHEDULED"],"weight":0.2},{"unit_feature_ids":["STREAM_TYPE:MAIN","USER_INTEREST:CRICKET","GAME_PROGRESS:LIVE"],"weight":1.25},{"unit_feature_ids":["STREAM_TYPE:MAIN","USER_INTEREST:CRICKET","GAME_PROGRESS:COMPLETED"],"weight":0.2},{"unit_feature_ids":["STREAM_TYPE:ENTERTAINMENT","USER_INTEREST:CRICKET","GAME_PROGRESS:SCHEDULED"],"weight":0.25},{"unit_feature_ids":["STREAM_TYPE:ENTERTAINMENT","USER_INTEREST:CRICKET","GAME_PROGRESS:LIVE"],"weight":1.25},{"unit_feature_ids":["STREAM_TYPE:ENTERTAINMENT","USER_INTEREST:CRICKET","GAME_PROGRESS:COMPLETED"],"weight":0.2}],"RELATED_ARTISTS":[{"unit_feature_ids":["STREAM_TYPE:ENTERTAINMENT","USER_INTEREST:MUSIC_ARTIST"],"weight":0.05},{"unit_feature_ids":["STREAM_TYPE:ENTERTAINMENT","DEVICE_STATUS:HEADPHONE_PLUGGED"],"weight":1.8},{"unit_feature_ids":["STREAM_TYPE:ENTERTAINMENT","DEVICE_STATUS:MUSIC_PLAYING"],"weight":1.8},{"unit_feature_ids":["STREAM_TYPE:MAIN","USER_INTEREST:MUSIC_ARTIST"],"weight":0.05},{"unit_feature_ids":["STREAM_TYPE:MAIN","DEVICE_STATUS:HEADPHONE_PLUGGED","USER_INTEREST:MUSIC_ARTIST"],"weight":1.8},{"unit_feature_ids":["STREAM_TYPE:MAIN","DEVICE_STATUS:MUSIC_PLAYING"],"weight":1.8}],"NEWS_DIGEST":[{"unit_feature_ids":["STREAM_TYPE:ENTERTAINMENT","TIME_OF_DAY_RANGE:ALL_DAY"],"weight":0.25},{"unit_feature_ids":["STREAM_TYPE:MAIN"],"weight":0.25},{"unit_feature_ids":["STREAM_TYPE:MAIN","TIME_OF_DAY_RANGE:MORNING"],"weight":0.25},{"unit_feature_ids":["STREAM_TYPE:MAIN","TIME_OF_DAY_RANGE:EVENING"],"weight":0.5}],"ANOMALOUS_WEATHER":[{"unit_feature_ids":["STREAM_TYPE:TODAY","WEATHER:ANOMALOUS_TOMORROW","TIME_OF_DAY_RANGE:ALL_DAY"],"weight":1.75},{"unit_fe
03-08 23:26:34.956 2364-27714/com.tul.aviate D/Volley: [1005] o.b: 19838 ms: [ ] https://aviate-yql.media.yahoo.com/v2/ace/sync?crumb=LvnvxRvdbc. 0xfcdc96a0 NORMAL 72
03-08 23:59:42.690 2364-28265/com.tul.aviate D/VolleyRequestBuilder: POST {"appKey":"ALq3OMhN7EY-X3U26qyvDhV_zZltfuzddRJU0FrR6--IhrjY4cuvO0Fm6lU3WesnLWNHpcgGSrKCweyHgZjSAxmY5IckAz6fDA","contexts":[{"radius":23.429,"batteryLevel":100,"chargerOn":false,"eid":"","headphoneOn":false,"lat":40.7501,"lng":-73.98601,"musicPlaying":false,"notifIds":[],"speed":0.0,"stream":"main","time":"2018-03-08T23:59:40+0000","upcomingMeeting":0}],"cpVersion":3,"lang":"en-US","region":"US"}
03-08 23:59:42.691 2364-28265/com.tul.aviate D/VolleyRequestBuilder: Requesting: https://aviate-yql.media.yahoo.com/v2/ace/cards?region=US&lang=en-US&crumb=LvnvxRvdbc.
03-08 23:59:43.655 2364-28269/com.tul.aviate D/VolleyRequestBuilder: Status Code: 200
Response Body: {"response":{"result":[{"cards":[{"card_id":"4b5b8c71-58d2-3f26-abce-318e3d3a01d6","rendering_engine":"custom","type":"MORNING_NIGHT","type_display_name":"Set Alarm","ttl":1520726384,"layout":{"template":"morning_night"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"USER_LOCATION:OTHER":1.0,"USER_SPEED:STILL":1.0,"TIME_OF_DAY_RANGE:NIGHT":1.0,"STREAM_TYPE:MAIN":1.0,"rule_score":3.0,"TIER":3.0,"score":0.5},"instrumentation":{"rid":"9ti4op1da3jjg","bucket":"ga"}},{"card_id":"83a014c3-c0a4-3242-b5a8-79d011b677d6","rendering_engine":"custom","type":"WEATHER","type_display_name":"Weather","ttl":1520726384,"layout":{"template":"weather"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"TIME_OF_DAY_RANGE:NIGHT":1.0,"STREAM_TYPE:MAIN":1.0,"rule_score":3.0,"TIER":3.0,"score":0.25},"instrumentation":{"rid":"9ti4op1da3jjg","bucket":"ga"}},{"card_id":"c81eac4b-4553-3d60-85a6-178968bd5065","rendering_engine":"custom","type":"NEWS_DIGEST","type_display_name":"News Digest","ttl":1520726384,"layout":{"template":"news_digest"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"TIME_OF_DAY_RANGE:NIGHT":1.0,"STREAM_TYPE:MAIN":1.0,"rule_score":2.0,"TIER":2.0,"score":0.25},"instrumentation":{"rid":"9ti4op1da3jjg","bucket":"ga"}},{"card_id":"bcacee7a-d79a-3e4e-a5b8-77c5b6480a8c","rendering_engine":"custom","type":"CALENDAR","type_display_name":"Calendar","ttl":1520726384,"layout":{"template":"calendar"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"USER_LOCATION:OTHER":1.0,"TIME_OF_DAY_RANGE:NIGHT":1.0,"STREAM_TYPE:MAIN":1.0,"rule_score":2.0,"TIER":2.0,"score":0.25},"instrumentation":{"rid":"9ti4op1da3jjg","bucket":"ga"}},{"card_id":"eea4f59a-e8a2-3e12-a917-96e254c416d5","rendering_engine":"custom","type":"VENUE_CHOOSER","type_display_name":"Around Me","ttl":1520557184,"layout":{"template":"venue_chooser"},"data":{"venues":[{"name":"Macy's","category":"Department Store","iconUrl":"https://ss3.4sqi.net/img/categories_v2/shops/departmentstore_64.png","id":"41102700f964a520d60b1fe3","provider":"foursquare","eid":"{\"card\":\"venue\",\"id\":\"41102700f964a520d60b1fe3\"}"},{"name":"Brendan's Bar & Grill","category":"American Restaurant","iconUrl":"https://ss3.4sqi.net/img/categories_v2/food/default_64.png","id":"4adaa371f964a520ec2321e3","provider":"foursquare","eid":"{\"card\":\"venue\",\"id\":\"4adaa371f964a520ec2321e3\"}"},{"name":"Hotel Metro","category":"Hotel","iconUrl":"https://ss3.4sqi.net/img/categories_v2/travel/hotel_64.png","id":"4ad9493df964a520961921e3","provider":"foursquare","eid":"{\"card\":\"venue\",\"id\":\"4ad9493df964a520961921e3\"}"}]},"modules":{},"reason":"","notify":false,"ranking_arguments":{"USER_LOCATION:OTHER":1.0,"req_longitude":-73.98601,"USER_DIST_FROM_REQ_LOC:WITHIN_800M":1.0,"req_latitude":40.7501,"STREAM_TYPE:MAIN":1.0,"USER_LOCATION_POI_CONFIDENCE:HIGH":1.0,"rule_score":2.0,"TIER":2.0,"score":0.25},"instrumentation":{"rid":"9ti4op1da3jjg","bucket":"ga"}},{"card_id":"730f79c6-148d-39fd-bba1-1b3eafb8b6dc","rendering_engine":"custom","type":"MUSIC_PLAYING","type_display_name":"Music Player","ttl":1520726384,"layout":{"template":"music_playing"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"STREAM_TYPE:MAIN":1.0,"rule_score":0.0,"TIER":0.0,"score":0.0},"instrumentation":{"rid":"9ti4op1da3jjg","bucket":"ga"}},{"card_id":"ee966fd9-7ca1-368c-b56c-427013d5b9e9","rendering_engine":"custom","type":"ARTIST_INFO","type_display_name":"Artist Info","ttl":1520726384,"layout":{"template":"artist_info"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"STREAM_TYPE:MAIN":1.0,"rule_score":0.0,"TIER":0.0,"score":0.0},"instrumentation":{"rid":"9ti4op1da3jjg","bucket":"ga"}},{"card_id":"2082d004-1852-3041-8e66-2d6595db402e","rendering_engine":"custom","type":"NEARBY_SHORTCUTS","type_display_name":"Nearby Places","ttl":1520726384,"layout":{"template":"nearby_shortcuts"},"data":{"cafe_yelp_url":"http://m.yelp.com
03-09 00:28:42.134 2364-28961/com.tul.aviate D/VolleyRequestBuilder: POST {"appKey":"ALq3OMhN7EY-X3U26qyvDhV_zZltfuzddRJU0FrR6--IhrjY4cuvO0Fm6lU3WesnLWNHpcgGSrKCweyHgZjSAxmY5IckAz6fDA","contexts":[{"radius":23.429,"batteryLevel":100,"chargerOn":false,"eid":"","headphoneOn":false,"lat":40.7501,"lng":-73.98601,"musicPlaying":false,"notifIds":[],"speed":0.0,"stream":"main","time":"2018-03-09T00:28:42+0000","upcomingMeeting":0}],"cpVersion":3,"lang":"en-US","region":"US"}
03-09 00:28:42.135 2364-28961/com.tul.aviate D/VolleyRequestBuilder: Requesting: https://aviate-yql.media.yahoo.com/v2/ace/cards?region=US&lang=en-US&crumb=LvnvxRvdbc.
03-09 00:28:43.014 2364-28876/com.tul.aviate D/VolleyRequestBuilder: Status Code: 200
Response Body: {"response":{"result":[{"cards":[{"card_id":"326b2e00-b861-3a3f-963c-9df9e8be0a5b","rendering_engine":"dunkv2","type":"MOVIES","type_display_name":"Recommended Movies","ttl":1520562523,"layout":{"template":"movies"},"data":{"bef7f3d4-4b02-3442-8a1e-6a67ee127a58-ACEMultiMovieHeader-6f5c946338e29c2f115633f5143847ff":{"title":"In Theaters Near You"},"bef7f3d4-4b02-3442-8a1e-6a67ee127a58-AviateMultiMovieCarousel-9009612c850fdaddc2db251aa68bc07e":{"title":"Recommended Movies","movieList":"movies","movies":[{"title":"Black Panther","image":"http://d.yimg.com/sr/imgv1/1/858174ff-550c-38df-8777-f5d688dfb773","meta":[{"text":"Action"}],"movieUrl":"action://app/requery?q=Black%20Panther&eid={\"card\":\"movie\",\"id\":\"b2561e1d-580f-42cd-828c-6adc4cc7231f\"}"},{"title":"Red Sparrow","image":"http://d.yimg.com/sr/imgv1/1/4ab89122-da64-363e-a7cb-5726ea854b0c","rating":"50%","freshness":"rotten","meta":[{"text":"Mystery"}],"movieUrl":"action://app/requery?q=Red%20Sparrow&eid={\"card\":\"movie\",\"id\":\"3b8be9ed-ce86-4eae-8047-eb5ff479a8a4\"}"},{"title":"Peter Rabbit","image":"http://d.yimg.com/sr/imgv1/1/2db97d0b-7693-39c8-81d1-76d7b899c5f5","rating":"59%","freshness":"rotten","meta":[{"text":"Adventure"}],"movieUrl":"action://app/requery?q=Peter%20Rabbit&eid={\"card\":\"movie\",\"id\":\"2f3feec1-6291-4518-95ea-aff46173165f\"}"},{"title":"A Wrinkle in Time","image":"http://d.yimg.com/sr/imgv1/1/de3e2178-6538-3ef3-8311-66dd3cf6603d","meta":[{"text":"Adventure"}],"movieUrl":"action://app/requery?q=A%20Wrinkle%20in%20Time&eid={\"card\":\"movie\",\"id\":\"bb21e6fd-212b-4976-85f4-328399ad9934\"}"},{"title":"The Greatest Showman","image":"http://d.yimg.com/sr/imgv1/1/f4cd972a-941d-38c9-8b5b-2cb48e6771b3","rating":"55%","freshness":"rotten","meta":[{"text":"Biography"}],"movieUrl":"action://app/requery?q=The%20Greatest%20Showman&eid={\"card\":\"movie\",\"id\":\"79fd73fa-5bbe-39ab-85da-e95bd4e20059\"}"},{"title":"Jumanji: Welcome to the Jungle","image":"http://d.yimg.com/sr/imgv1/1/3e2d9fef-f4f1-33fd-9d94-289e8b4c221d","rating":"76%","freshness":"fresh","meta":[{"text":"Action"}],"movieUrl":"action://app/requery?q=Jumanji%3A%20Welcome%20to%20the%20Jungle&eid={\"card\":\"movie\",\"id\":\"dca60337-76f1-4bc3-a91b-d23820f19873\"}"},{"title":"The Shape of Water","image":"http://d.yimg.com/sr/imgv1/1/0afd1955-2fc6-35cf-ab37-9446a9d6f5a7","rating":"92%","freshness":"fresh","meta":[{"text":"Adventure"}],"movieUrl":"action://app/requery?q=The%20Shape%20of%20Water&eid={\"card\":\"movie\",\"id\":\"13e61a87-88c8-4544-b805-51618be4dd0a\"}"},{"title":"The Rocky Horror Picture Show","image":"http://d.yimg.com/sr/imgv1/1/3813028b-c57f-3674-9285-5b2a84d221a8","rating":"80%","freshness":"fresh","meta":[{"text":"Comedy"}],"movieUrl":"action://app/requery?q=The%20Rocky%20Horror%20Picture%20Show&eid={\"card\":\"movie\",\"id\":\"827e5d3e-027d-47db-b64b-0b50c37e2438\"}"}]}},"modules":[{"type":"header","id":"6f5c946338e29c2f115633f5143847ff","ref":["bef7f3d4-4b02-3442-8a1e-6a67ee127a58-ACEMultiMovieHeader-6f5c946338e29c2f115633f5143847ff"],"instrumentation":{"name":"ACEMultiMovieHeader","keys":{"template":"header"}}},{"type":"moviesCarousel","id":"9009612c850fdaddc2db251aa68bc07e","ref":["bef7f3d4-4b02-3442-8a1e-6a67ee127a58-AviateMultiMovieCarousel-9009612c850fdaddc2db251aa68bc07e"],"instrumentation":{"name":"AviateMultiMovieCarousel","keys":{"template":"moviesCarousel"}}}],"reason":"","notify":false,"ranking_arguments":{"TIME_OF_DAY_RANGE:NIGHT":1.0,"STREAM_TYPE:MAIN":1.0,"rule_score":0.0,"TIER":0.0,"DAY_OF_WEEK:FRI":1.0,"score":0.75},"instrumentation":{"rid":"77kq59pda3l9r","bucket":"ga"}},{"card_id":"4b5b8c71-58d2-3f26-abce-318e3d3a01d6","rendering_engine":"custom","type":"MORNING_NIGHT","type_display_name":"Set Alarm","ttl":1520728123,"layout":{"template":"morning_night"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"USER_LOCATION:OTHER":1.0,"USER_SPEED:STILL":1.0,"TIME_OF_DAY_RANGE:NIGHT":1.0,"STREAM_TYPE:MAIN":1.0,"rule_score":0.0,"TIER":0.0,"score":
03-09 00:29:41.254 2364-28991/com.tul.aviate D/VolleyRequestBuilder: POST {"appKey":"ALq3OMhN7EY-X3U26qyvDhV_zZltfuzddRJU0FrR6--IhrjY4cuvO0Fm6lU3WesnLWNHpcgGSrKCweyHgZjSAxmY5IckAz6fDA","contexts":[{"radius":23.429,"batteryLevel":100,"chargerOn":false,"eid":"","headphoneOn":false,"lat":40.7501,"lng":-73.98601,"musicPlaying":false,"notifIds":[],"speed":0.0,"stream":"main","time":"2018-03-09T00:29:41+0000","upcomingMeeting":0}],"cpVersion":3,"lang":"en-US","region":"US"}
03-09 00:29:41.254 2364-28991/com.tul.aviate D/VolleyRequestBuilder: Requesting: https://aviate-yql.media.yahoo.com/v2/ace/cards?region=US&lang=en-US&crumb=LvnvxRvdbc.
03-09 00:29:41.626 2364-28876/com.tul.aviate D/VolleyRequestBuilder: Status Code: 200
Response Body: {"response":{"result":[{"cards":[{"card_id":"326b2e00-b861-3a3f-963c-9df9e8be0a5b","rendering_engine":"dunkv2","type":"MOVIES","type_display_name":"Recommended Movies","ttl":1520562582,"layout":{"template":"movies"},"data":{"bef7f3d4-4b02-3442-8a1e-6a67ee127a58-ACEMultiMovieHeader-8a3a8dadffca2f09055d76aa33b72195":{"title":"In Theaters Near You"},"bef7f3d4-4b02-3442-8a1e-6a67ee127a58-AviateMultiMovieCarousel-106549a7e2b3629bc4412ff9d295a5ee":{"title":"Recommended Movies","movieList":"movies","movies":[{"title":"Black Panther","image":"http://d.yimg.com/sr/imgv1/1/858174ff-550c-38df-8777-f5d688dfb773","meta":[{"text":"Action"}],"movieUrl":"action://app/requery?q=Black%20Panther&eid={\"card\":\"movie\",\"id\":\"b2561e1d-580f-42cd-828c-6adc4cc7231f\"}"},{"title":"A Wrinkle in Time","image":"http://d.yimg.com/sr/imgv1/1/de3e2178-6538-3ef3-8311-66dd3cf6603d","meta":[{"text":"Adventure"}],"movieUrl":"action://app/requery?q=A%20Wrinkle%20in%20Time&eid={\"card\":\"movie\",\"id\":\"bb21e6fd-212b-4976-85f4-328399ad9934\"}"},{"title":"Jumanji: Welcome to the Jungle","image":"http://d.yimg.com/sr/imgv1/1/3e2d9fef-f4f1-33fd-9d94-289e8b4c221d","rating":"76%","freshness":"fresh","meta":[{"text":"Action"}],"movieUrl":"action://app/requery?q=Jumanji%3A%20Welcome%20to%20the%20Jungle&eid={\"card\":\"movie\",\"id\":\"dca60337-76f1-4bc3-a91b-d23820f19873\"}"},{"title":"Red Sparrow","image":"http://d.yimg.com/sr/imgv1/1/4ab89122-da64-363e-a7cb-5726ea854b0c","rating":"50%","freshness":"rotten","meta":[{"text":"Mystery"}],"movieUrl":"action://app/requery?q=Red%20Sparrow&eid={\"card\":\"movie\",\"id\":\"3b8be9ed-ce86-4eae-8047-eb5ff479a8a4\"}"},{"title":"The Shape of Water","image":"http://d.yimg.com/sr/imgv1/1/0afd1955-2fc6-35cf-ab37-9446a9d6f5a7","rating":"92%","freshness":"fresh","meta":[{"text":"Adventure"}],"movieUrl":"action://app/requery?q=The%20Shape%20of%20Water&eid={\"card\":\"movie\",\"id\":\"13e61a87-88c8-4544-b805-51618be4dd0a\"}"},{"title":"Operation Red Sea","image":"http://d.yimg.com/sr/imgv1/1/534d3627-bffd-3275-8db5-2fa718447399","rating":"80%","freshness":"fresh","meta":[{"text":"Action"}],"movieUrl":"action://app/requery?q=Operation%20Red%20Sea&eid={\"card\":\"movie\",\"id\":\"774125b9-f44f-4c18-9351-9dbf8e0bb7ba\"}"},{"title":"Darkest Hour","image":"http://d.yimg.com/sr/imgv1/1/a0f4cc4c-1a49-3880-9bc1-9b6662ac64fb","rating":"86%","freshness":"fresh","meta":[{"text":"Biography"}],"movieUrl":"action://app/requery?q=Darkest%20Hour&eid={\"card\":\"movie\",\"id\":\"3de4e77b-b368-4f4a-898e-3b78d2f52ef5\"}"}]}},"modules":[{"type":"header","id":"8a3a8dadffca2f09055d76aa33b72195","ref":["bef7f3d4-4b02-3442-8a1e-6a67ee127a58-ACEMultiMovieHeader-8a3a8dadffca2f09055d76aa33b72195"],"instrumentation":{"name":"ACEMultiMovieHeader","keys":{"template":"header"}}},{"type":"moviesCarousel","id":"106549a7e2b3629bc4412ff9d295a5ee","ref":["bef7f3d4-4b02-3442-8a1e-6a67ee127a58-AviateMultiMovieCarousel-106549a7e2b3629bc4412ff9d295a5ee"],"instrumentation":{"name":"AviateMultiMovieCarousel","keys":{"template":"moviesCarousel"}}}],"reason":"","notify":false,"ranking_arguments":{"TIME_OF_DAY_RANGE:NIGHT":1.0,"STREAM_TYPE:MAIN":1.0,"rule_score":0.0,"TIER":0.0,"DAY_OF_WEEK:FRI":1.0,"score":0.75},"instrumentation":{"rid":"0qsglq1da3lbm","bucket":"ga"}},{"card_id":"4b5b8c71-58d2-3f26-abce-318e3d3a01d6","rendering_engine":"custom","type":"MORNING_NIGHT","type_display_name":"Set Alarm","ttl":1520728182,"layout":{"template":"morning_night"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"USER_LOCATION:OTHER":1.0,"USER_SPEED:STILL":1.0,"TIME_OF_DAY_RANGE:NIGHT":1.0,"STREAM_TYPE:MAIN":1.0,"rule_score":0.0,"TIER":0.0,"score":0.5},"instrumentation":{"rid":"0qsglq1da3lbm","bucket":"ga"}},{"card_id":"83a014c3-c0a4-3242-b5a8-79d011b677d6","rendering_engine":"custom","type":"WEATHER","type_display_name":"Weather","ttl":1520728182,"layout":{"template":"weather"},"data":{},"modules":{},"reason":"","notify":false,"ranking_arguments":{"TIME_OF_DAY_RANGE:NIGHT":1.0,"
03-09 00:30:20.329 29080-29170/? D/VolleyRequestBuilder: Requesting: https://maps.google.com/maps/api/geocode/json?language=en_US&latlng=40.7501%2C-73.9860&sensor=true
03-09 00:30:20.447 29080-29185/? E/VolleyRequestBuilder: Response Error: com.android.volley.l: java.net.UnknownHostException: Unable to resolve host "maps.google.com": No address associated with hostname
03-09 00:30:20.865 29080-29158/? D/VolleyRequestBuilder: Requesting: https://maps.google.com/maps/api/geocode/json?language=en_US&latlng=40.7501%2C-73.9860&sensor=true
03-09 00:30:20.870 29080-29185/? E/VolleyRequestBuilder: Response Error: com.android.volley.l: java.net.UnknownHostException: Unable to resolve host "maps.google.com": No address associated with hostname
03-09 00:30:22.846 29080-29138/? D/VolleyRequestBuilder: Requesting: https://maps.google.com/maps/api/geocode/json?language=en_US&latlng=40.7501%2C-73.9860&sensor=true
03-09 00:30:22.849 29080-29185/? E/VolleyRequestBuilder: Response Error: com.android.volley.l: java.net.UnknownHostException: Unable to resolve host "maps.google.com": No address associated with hostname

33
package-lock.json generated
View File

@ -2250,6 +2250,11 @@
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
"integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
},
"elapsed": {
"version": "0.0.7",
"resolved": "https://registry.npmjs.org/elapsed/-/elapsed-0.0.7.tgz",
"integrity": "sha1-t9lUz+DH5CwMgsMgqgzDZ4jax2w="
},
"electron-to-chromium": {
"version": "1.3.33",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.33.tgz",
@ -5628,6 +5633,11 @@
}
}
},
"humanize-duration": {
"version": "3.12.1",
"resolved": "https://registry.npmjs.org/humanize-duration/-/humanize-duration-3.12.1.tgz",
"integrity": "sha512-Eu68Xnq5C38391em1zfVy8tiapQrOvTNTlWpax9smHMlEEUcudXrdMfXMoMRyZx4uODowYgi1AYiMzUXEbG+sA=="
},
"iconv-lite": {
"version": "0.4.19",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz",
@ -7223,6 +7233,11 @@
"xtend": "4.0.1"
}
},
"moment": {
"version": "2.21.0",
"resolved": "https://registry.npmjs.org/moment/-/moment-2.21.0.tgz",
"integrity": "sha512-TCZ36BjURTeFTM/CwRcViQlfkMvL1/vFISuNLO5GkcVm1+QHfbSiNqZuWeMFjj1/3+uAjXswgRk30j1kkLYJBQ=="
},
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
@ -10748,6 +10763,11 @@
"resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz",
"integrity": "sha1-ucczDHBChi9rFC3CdLvMWGbONUY="
},
"string": {
"version": "3.3.3",
"resolved": "https://registry.npmjs.org/string/-/string-3.3.3.tgz",
"integrity": "sha1-XqIRzZLSKOGEKUmQpsyXs2anfLA="
},
"string-template": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/string-template/-/string-template-1.0.0.tgz",
@ -10834,6 +10854,19 @@
"minimist": "1.2.0"
}
},
"sugar": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/sugar/-/sugar-2.0.4.tgz",
"integrity": "sha1-eab6TavFh/uFWlLucXbdBCv3V7A=",
"requires": {
"sugar-core": "2.0.4"
}
},
"sugar-core": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/sugar-core/-/sugar-core-2.0.4.tgz",
"integrity": "sha1-nbBzDmxH630oGEp5xKsYsreUbKA="
},
"supports-color": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",

View File

@ -14,6 +14,7 @@
"browserify": "^16.1.0",
"cheerio": "^1.0.0-rc.2",
"debug-logger": "^0.4.1",
"elapsed": "0.0.7",
"eslint": "^4.18.0",
"express": "^4.16.2",
"fecha": "^2.3.2",
@ -29,16 +30,20 @@
"gulp-inject": "^4.3.0",
"gulp-uglify": "^3.0.0",
"hh-mm-ss": "^1.2.0",
"humanize-duration": "^3.12.1",
"jquery": "^3.3.1",
"lodash": "^4.17.5",
"log4js": "^2.5.3",
"loggy": "^1.0.2",
"memory-cache": "^0.2.0",
"moment": "^2.21.0",
"muicss": "^0.9.36",
"node-foursquare-venues": "^1.1.0",
"openweather-apis": "^3.3.5",
"request-json": "^0.6.3",
"strict-uri-encode": "^2.0.0",
"string": "^3.3.3",
"sugar": "^2.0.4",
"twitter": "^1.7.1",
"uglifyify": "^4.0.5",
"underscore": "^1.8.3",

View File

@ -6,6 +6,8 @@ const weather = require('./server/weather');
const euronews = require('./server/euronews');
const foursquare = require('./server/foursquare');
const rightbyme = require('./server/RightByMe');
const agenda = require('./server/agenda');
const directions = require('./server/directions');
logger.level = 'debug';
@ -131,9 +133,9 @@ app.get('/article', cache('1 hour'), (req, res) => {
.then((d) => {
res.send(d);
}).catch((e) => {
logger.error(e);
res.status(500).send('There was an error!');
});
logger.error(e);
res.status(500).send('There was an error!');
});
}
else {
// throw new Error('Weather: LL missing');
@ -142,6 +144,34 @@ app.get('/article', cache('1 hour'), (req, res) => {
}
});
app.get('/agenda', cache('15 minutes'), (req, res) => {
agenda.doTodaysAgenda()
.then((d) => {
res.send(d);
}).catch((e) => {
logger.error(e);
res.status(500).send('There was an error!');
});
});
app.get('/traffic', cache('1 hour'), (req, res) => {
logger.debug(req.query);
if (req.query.hasOwnProperty('olat')) {
directions.getTraffic(req.query.olat, req.query.olon, req.query.dlat, req.query.dlon)
.then((d) => {
res.send(d);
}).catch((e) => {
logger.error(e);
res.status(500).send('There was an error!');
});
}
else {
// throw new Error('Weather: LL missing');
logger.warn('FS: oLat missing');
res.status(500).send('oLat Missing');
}
});
app.listen(port, (err) => {
if (err)
return logger.error('Server error:', err);

40
server/agenda.js Normal file
View File

@ -0,0 +1,40 @@
const calHandler = require('./lib/calHandler');
const logger = require('log4js').getLogger('Agenda');
logger.level = 'debug';
function compare(a, b) {
if (a.ts < b.ts)
return -1;
if (a.ts > b.ts)
return 1;
return 0;
}
async function getTodaysAgenda() {
let three = [];
for (const item of calHandler.calendars)
await calHandler.getAdvancedCalV3(item)
.then((d) => {
three = three.concat(d.three);
})
.catch((e) => {
'use strict';
logger.error(e);
});
three = three.sort(compare);
return three;
}
async function doTodaysAgenda() {
return new Promise((resolve, reject) => {
const today = getTodaysAgenda();
return resolve(today);
});
}
module.exports = { doTodaysAgenda };

41
server/directions.js Normal file
View File

@ -0,0 +1,41 @@
const request = require('request');
const logger = require('log4js').getLogger('Directions');
logger.level = 'debug';
const { reduceEstDirections } = require('./reducers/directions');
module.exports = {
'getTraffic': doGetEstDirections
};
//
// https://maps.googleapis.com/maps/api/directions/json?origin=Toronto&destination=Montreal&key=AIzaSyBl7O9LHIthCagcqIaDkQ4um_hghYG5reE
function doGetEstDirections(olat, olon, dlat, dlon) {
logger.debug('doGetEstDirections');
const url = `https://sgws2.maps.yahoo.com/Directions?time=now&cache=n&flags=J&olat=${olat}&olon=${olon}&dlat=${dlat}&dlon=${dlon}`;
logger.debug(url);
return new Promise(function(resolve, reject) {
request(url, function(err, resp, body) {
if (err)
// Logger.error(err);
return reject(err);
// Throw err;
const output = reduceEstDirections(body);
console.log(output);
return resolve(output);
}, function(error, response, body) {
console.log(response);
if (response.statusCode !== 200) {
logger.error(response.statusCode);
logger.error(body);
return reject(error);
}
});
});
}

View File

@ -12,7 +12,7 @@ function doGetFourSquareExplore(ll) {
'section': 'topPicks',
'v': '20170801',
'limit': 3,
'radius': 500
'radius': 800
};
foursquare.venues.explore(fsObj, function(err, fsData) {

679
server/lib/calHandler.js Normal file
View File

@ -0,0 +1,679 @@
const request = require('request');
const log4js = require('log4js');
const logger = log4js.getLogger('calHandler');
const STRING = require('string');
const util = require('util');
const Elapsed = require('elapsed');
const Sugar = require('sugar');
const { inRange } = require('lodash');
const moment = require('moment');
Sugar.extend();
logger.level = 'error';
moment.updateLocale('en', {
'calendar' : {
'lastDay' : '[Yesterday\n] HH:mm',
'sameDay' : '[Today\n] HH:mm',
'nextDay' : '[Tomorrow\n] HH:mm',
'lastWeek' : '[last] dddd [at] HH:mm',
'nextWeek' : 'dddd[\n] HH:mm',
'sameElse' : 'YYYY-MM-DD'
}
});
function processICAL(ical) {
'use strict';
logger.info('+ processICAL');
let workingBlock = [];
const segments = {
'meetingStartID': 'DTSTART;TZID=Europe/London:',
'meetingStartAlt': 'DTSTART:',
'meetingStartAltOther': 'DTSTART;VALUE=DATE:',
'meetingEndID': 'DTEND;TZID=Europe/London:',
'meetingEndAlt': 'DTEND:',
'meetingEndAltOther': 'DTEND;VALUE=DATE:',
'meetingDescID': 'DESCRIPTION:',
'summaryID': 'SUMMARY:',
'begin': 'BEGIN:VEVENT',
'end': 'END:VEVENT',
'beginAlarm': 'BEGIN:VALARM',
'endAlarm': 'END:VALARM',
'recur': 'RRULE:'
};
const rules = ['FREQ', 'WKST', 'UNTIL', 'BYMONTH', 'BYMONTHDAY', 'INTERVAL', 'BYDAY'];
function nThDayOfMonth(monthsAhead, wantedDay) {
const now = new Date();
for(let t = 0; t < monthsAhead; t++) {
}
}
function processRecurrence(workBlock) {
const _workBlock = Object.assign({}, workBlock);
const dateLimit = new Date().reset('month').addMonths(2);
const recurArray = [];
logger.info('---===---');
logger.debug('>> Processing recurrence...');
logger.debug(`Expanding ${_workBlock.summary}`);
logger.debug('DateLimit:', dateLimit);
// logger.debug('Processing recurrence...');
const weekBits = { 'SU': 0, 'MO': 1, 'TU': 2, 'WE': 3, 'TH': 4, 'FR': 5, 'SA': 6 };
const now = new Date();
const day = now.getDate();
const dayNum = now.getDay();
const month = now.getMonth();
const year = now.getFullYear();
const byDayRegEx = /(\d)(\w.)/;
const recurSettings = { 'freq': null, 'wkst': null, 'until': null, 'bymonth': null, 'bymonthday': null, 'interval': null, 'byday': null };
const firstSplit = _workBlock.recur.split(';');
for (let t = 0; t < firstSplit.length; t++) {
const ws = firstSplit[t].split('=');
if (rules.indexOf(ws[0]) > -1)
recurSettings[ws[0].toLowerCase()] = ws[1];
}
// if all null discard..
if (recurSettings.freq === null && recurSettings.wkst === null && recurSettings.until === null && recurSettings.byday === null && recurSettings.bymonth === null && recurSettings.bymonthday === null && recurSettings.interval === null)
return null;
if (recurSettings.until !== null) {
// have we expired?
const _until = Date.create(recurSettings.until).isPast();
if (_until) {
logger.warn('EXPIRED!!');
return null;
}
}
if (recurSettings.freq !== null) {
// logger.debug(_workBlock);
let newStart, newEnd;
const origStart = new Date(_workBlock.dtstart);
const origEnd = new Date(_workBlock.dtend);
const _dstart = new Date(_workBlock.dtstart);
const _dend = new Date(_workBlock.dtend);
logger.debug('>> origStart', origStart);
const _d = origStart.getDate();
const _m = origStart.getMonth();
const _h = origStart.getHours();
const _min = origStart.getMinutes();
const _secs = origStart.getSeconds();
const distance = origEnd - origStart;
_workBlock.details = {
_d,
_m,
_h,
_min,
_secs,
distance
};
logger.debug('freq:', recurSettings.freq);
if (recurSettings.freq === 'YEARLY') {
logger.warn('YEARLY');
if (recurSettings.bymonth !== null && recurSettings.bymonthday !== null) {
let _yearCount = year;
logger.debug('>> Yearly with specific month / day');
let newBlock;
newStart = new Date().set({ 'year':_yearCount, 'month': recurSettings.bymonth - 1, 'day': recurSettings.bymonthday, 'hour':_h, 'minutes':_min, 'seconds':_secs });
newEnd = new Date(_dstart).addMilliseconds(distance);
do {
newBlock = Object.assign({}, _workBlock);
newBlock.dstart = new Date(newStart);
newBlock.dend = new Date(newEnd);
recurArray.push(newBlock);
_yearCount++;
newStart = new Date().set({ 'year':_yearCount, 'month': recurSettings.bymonth - 1, 'day': recurSettings.bymonthday, 'hour':_h, 'minutes':_min, 'seconds':_secs });
newEnd = new Date(_dstart).addMilliseconds(distance);
}
while(newStart < dateLimit);
}
else if (recurSettings.bymonth === null && recurSettings.bymonthday === null) {
logger.debug('>> Yearly no specific month / day');
// extract month and year from dtstart
let newBlock;
do {
newBlock = Object.assign({}, _workBlock);
newBlock.dtstart = new Date(_dstart);
newBlock.dtend = new Date(_dend);
// logger.info(newBlock.dtstart.medium());
recurArray.push(newBlock);
_dstart.advance({ 'year':1 });
_dend.advance({ 'year':1 });
}
while(_dstart < dateLimit);
}
// logger.info('** recurArray', recurArray);
return recurArray;
}
if (recurSettings.freq === 'MONTHLY' ) {
const interval = parseInt(recurSettings.interval, 10) || 1;
logger.warn(`MONTHLY - ${interval}`);
let newBlock;
if (recurSettings.byday === null)
do {
newBlock = Object.assign({}, _workBlock);
newBlock.dtstart = new Date(_dstart);
newBlock.dtend = new Date(_dend);
// logger.info(newBlock.dtstart.medium());
recurArray.push(newBlock);
_dstart.addMonths(interval);
_dend.addMonths(interval);
}
while(_dstart < dateLimit);
else {
logger.warn('BYDAY!!! ', recurSettings.byday);
_dstart.setUTC(true);
const byday = byDayRegEx.exec(recurSettings.byday);
const dayNumber = weekBits[byday[2]];
const stepCount = parseInt(byday[1], 10) - 1;
do {
const _findSun = new Date.create(_dstart, { 'fromUTC': true } ).reset('month');
const firstDay = _findSun.getDay();
// find first occurance of the wanted day.
if (firstDay !== dayNumber) {
const add = (dayNumber - firstDay + 7) ;
_findSun.addDays(add).addWeeks(stepCount);
}
else
_findSun.addWeeks(stepCount);
newBlock = Object.assign({}, _workBlock);
newBlock.dtstart = new Date(_findSun).addMilliseconds(_workBlock.timeStartMS);
newBlock.dtend = new Date(_findSun).addMilliseconds(_workBlock.timeEndMS);
// logger.info(newBlock.dtstart.medium());
recurArray.push(newBlock);
// all done, next.
_dstart.reset('month').addDays(32);
_dend.reset('month').addDays(32);
}
while(_dstart < dateLimit);
// something
}
return recurArray;
}
if (recurSettings.freq === 'WEEKLY') {
const interval = parseInt(recurSettings.interval, 10) || 1;
logger.warn(`WEEKLY - ${interval}`);
let newBlock;
do {
newBlock = Object.assign({}, _workBlock);
newBlock.dtstart = new Date(_dstart);
newBlock.dtend = new Date(_dend);
// logger.info(newBlock.dtstart.medium());
recurArray.push(newBlock);
_dstart.addWeeks(interval);
_dend.addWeeks(interval);
}
while(_dstart < dateLimit);
}
return recurArray;
}
// if we get here we've skipped everything just return the _workblock
return [];
}
function processBlock(block) {
logger.debug('>> processBlock');
let _wb;
const workBlock = {
'summary': '',
'dtstart': null,
'dtend': null,
'description': '',
'timeStart': null,
'timeEnd': null,
'duration': 0,
'combined': '',
'recur': null,
'timeStartMS': null,
'timeEndMS': null,
'ts' : null,
'allday' : false
};
let alarmFlag = false, ws, blockStep;
for (let step = 0; step < block.length; step++) {
blockStep = block[step];
if (blockStep.indexOf(segments.recur) >= 0)
workBlock.recur = STRING(block[step].split(segments.recur)[1]).collapseWhitespace().s;
// logger.debug(workBlock.recur);
if (blockStep.indexOf(segments.summaryID) >= 0)
workBlock.summary = STRING(block[step].split(segments.summaryID)[1]).collapseWhitespace().s;
if (blockStep.indexOf(segments.meetingStartID) >= 0) {
ws = STRING(block[step].split(segments.meetingStartID)[1]).collapseWhitespace().s;
// workBlock.dtstart = Date.create(ws);
workBlock.dtstart = new Sugar.Date(ws).raw;
}
if (blockStep.indexOf(segments.meetingEndID) >= 0) {
ws = STRING(block[step].split(segments.meetingEndID)[1]).collapseWhitespace().s;
// workBlock.dtend = Date.create(ws);
workBlock.dtend = new Sugar.Date(ws).raw;
}
if (blockStep.indexOf(segments.meetingStartAlt) >= 0) {
ws = STRING(block[step].split(segments.meetingStartAlt)[1]).collapseWhitespace().s;
// console.log('>> ws', ws);
// workBlock.dtstart = Date.create(ws);
// let d = new Sugar.Date();
workBlock.dtstart = new Sugar.Date(ws).raw;
// console.log('>> date', workBlock.dtstart);
}
if (blockStep.indexOf(segments.meetingEndAlt) >= 0) {
ws = STRING(block[step].split(segments.meetingEndAlt)[1]).collapseWhitespace().s;
// workBlock.dtend = Date.create(ws);
workBlock.dtend = new Sugar.Date(ws).raw;
// console.log('>> date', workBlock.dtend);
}
if (blockStep.indexOf(segments.meetingStartAltOther) >= 0) {
ws = STRING(block[step].split(segments.meetingStartAltOther)[1]).collapseWhitespace().s;
// workBlock.dtstart = Date.create(ws);
workBlock.dtstart = new Sugar.Date(ws).raw;
}
if (blockStep.indexOf(segments.meetingEndAltOther) >= 0) {
ws = STRING(block[step].split(segments.meetingEndAltOther)[1]).collapseWhitespace().s;
// console.log('>> ws', ws);
// workBlock.dtend = Date.create(ws);
workBlock.dtend = new Sugar.Date(ws).raw;
}
if (blockStep.indexOf(segments.meetingDescID) >= 0)
if (!alarmFlag) {
workBlock.description = STRING(block[step].split(segments.meetingDescID)[1]).collapseWhitespace().s;
}
if (blockStep.indexOf(segments.beginAlarm) >= 0)
alarmFlag = true;
}
workBlock.summary = workBlock.summary.replace(/\\/g, '');
workBlock.description = workBlock.description.replace(/\\/g, '');
if (workBlock.dtstart !== null) {
// workBlock.timeStart = workBlock.dtstart.format('{24hr}:{mm}:{ss}');
workBlock.timeStart = Sugar.Date(workBlock.dtstart).format('{24hr}:{mm}:{ss}').raw;
workBlock.timeStartMS = ((workBlock.dtstart.getHours() * 60 * 60 ) + (workBlock.dtstart.getMinutes() * 60 ) + workBlock.dtstart.getSeconds()) * 1000;
// console.log('>> workBlock.timeStart', workBlock.timeStart);
workBlock.combined = `<em>${workBlock.timeStart}</em> - '`;
workBlock.long = `<em>${Sugar.Date(workBlock.dtstart).format('{Weekday}').raw}, ${workBlock.timeStart}</em> - `;
// console.log('>> workBlock.long', workBlock.long);
}
workBlock.combined = workBlock.combined + workBlock.summary;
workBlock.longcombined = workBlock.long + workBlock.summary;
if (workBlock.dtend !== null) {
workBlock.timeEnd = Sugar.Date(workBlock.dtend).format('{24hr}:{mm}:{ss}').raw;
workBlock.timeEndMS = ((workBlock.dtend.getHours() * 60 * 60 ) + (workBlock.dtend.getMinutes() * 60 ) + workBlock.dtend.getSeconds()) * 1000;
}
if (workBlock.dtstart !== null && workBlock.dtend !== null) {
const elapsedTime = new Elapsed(workBlock.dtstart, workBlock.dtend);
workBlock.duration = elapsedTime.optimal;
workBlock.combined = `${workBlock.combined }, ${ elapsedTime.optimal}`;
workBlock.longcombined = `${workBlock.longcombined }, ${ elapsedTime.optimal}`;
}
workBlock.allday = (workBlock.timeStart === '0:00:00' && workBlock.timeEnd === '0:00:00');
return workBlock;
}
function buildRecurranceArray(wb) {
const _wb = processRecurrence(wb);
return _wb;
}
const lines = ical.split('\r\n'), l = lines.length;
let counter = 0;
let alarmed = false;
while (counter < l)
if (lines[counter].indexOf(segments.begin) < 0)
counter++;
else {
let subcounter = 0;
const subBlock = [];
alarmed = false;
while (subcounter < 75)
if (lines[counter + subcounter].indexOf(segments.end) < 0) {
if (lines[counter + subcounter].indexOf(segments.beginAlarm) > -1)
alarmed = true;
if (!alarmed)
subBlock.push(lines[counter + subcounter]);
if (lines[counter + subcounter].indexOf(segments.endAlarm) > -1)
alarmed = false;
subcounter++;
}
else
break;
counter = counter + subcounter;
const b = processBlock(subBlock);
if (!b.recur ) {
if (Array.isArray(b))
logger.error('!returned an array...');
else
if (b.dtstart !== null) {
b.ts = b.dtstart.format('{X}');
workingBlock.push(b);
}
}
else {
// logger.warn('We need to spread the recurrance!!');
// logger.debug(b);
let recurBlocks = buildRecurranceArray(b);
if (recurBlocks)
recurBlocks = recurBlocks.map((item) => {
if (item.dtstart)
item.ts = item.dtstart.format('{X}');
return item;
});
if (recurBlocks && recurBlocks.length > 0)
workingBlock = workingBlock.concat(recurBlocks);
}
}
logger.info('- processICAL');
// If (workingBlock.dtstart == null) return {};
return workingBlock;
}
/*
['https://calendar.google.com/calendar/ical/martind2000%40gmail.com/private-40cfebc9f7dcfa7fde6b9bf2f0092c93/basic.ics',
'https://calendar.google.com/calendar/ical/mt5pgdhknvgoc8usfnrso9vkv0%40group.calendar.google.com/private-58876002af9f302a593acfa6fa792dcf/basic.ics',
'https://www.tripit.com/feed/ical/private/DB96E4BB-94A9BD8F9CC1CF51C6CC0D920840F4F5/tripit.ics',
'https://calendar.google.com/calendar/ical/en.uk%23holiday%40group.v.calendar.google.com/public/basic.ics',
'https://calendar.google.com/calendar/ical/i8dglj12p5nuv20sbjmun5s588%40group.calendar.google.com/private-c8adccb41e56d6a2f285078aaed313f5/basic.ics',
'https://calendar.google.com/calendar/ical/qppj4ebvdur1qui4v0fdpl7l70%40group.calendar.google.com/private-b5071cb2c3fe49544ffbbd08645088f1/basic.ics',
'https://calendar.google.com/calendar/ical/8h3vi3rd5rvpfe11klvgre0q4c%40group.calendar.google.com/private-e9df93163a7046658946be45fb08db6f/basic.ics',
'https://calendar.google.com/calendar/embed?src=family18216414236505453132%40group.calendar.google.com&ctz=Europe%2FLondon']
*/
module.exports = {
'calendars': ['https://calendar.google.com/calendar/ical/martind2000%40gmail.com/private-40cfebc9f7dcfa7fde6b9bf2f0092c93/basic.ics',
'https://calendar.google.com/calendar/ical/mt5pgdhknvgoc8usfnrso9vkv0%40group.calendar.google.com/private-58876002af9f302a593acfa6fa792dcf/basic.ics',
'https://www.tripit.com/feed/ical/private/DB96E4BB-94A9BD8F9CC1CF51C6CC0D920840F4F5/tripit.ics',
'https://calendar.google.com/calendar/ical/en.uk%23holiday%40group.v.calendar.google.com/public/basic.ics',
'https://calendar.google.com/calendar/ical/i8dglj12p5nuv20sbjmun5s588%40group.calendar.google.com/private-c8adccb41e56d6a2f285078aaed313f5/basic.ics',
'https://calendar.google.com/calendar/ical/qppj4ebvdur1qui4v0fdpl7l70%40group.calendar.google.com/private-b5071cb2c3fe49544ffbbd08645088f1/basic.ics',
'https://calendar.google.com/calendar/ical/8h3vi3rd5rvpfe11klvgre0q4c%40group.calendar.google.com/private-e9df93163a7046658946be45fb08db6f/basic.ics',
'https://calendar.google.com/calendar/embed?src=family18216414236505453132%40group.calendar.google.com&ctz=Europe%2FLondon'],
'jsonBlock': [],
'getTodaysSimple': function() {
'use strict';
logger.info('+ getTodaysSimple');
const today = {
'entries': []
};
const _td = new Date.create('today');
const _tm = new Date.create('tomorrow') - 1 ;
today.entries = this.jsonBlock.filter((item) => {
if (!item || !item.dtstart || !item.dtend) return false;
return item.dtstart.isBetween(_td, _tm) || item.dtend.isBetween(_td, _tm);
});
logger.info('- getTodaysSimple');
return today;
},
'getTomorrow': function() {
'use strict';
logger.info('+ getTomorrow');
const today = {
'entries': []
};
const _tm = new Date.create('tomorrow');
const _da = new Date.create('tomorrow').addDays(1);
today.entries = this.jsonBlock.filter((item) => {
if (!item || !item.dtstart || !item.dtend) return false;
return item.dtstart.isBetween(_tm, _da) || item.dtend.isBetween(_tm, _da);
});
logger.info('- getTomorrow');
return today;
},
'getThreeDays': function() {
logger.info('+ getThreeDays');
const three = {
'entries': []
};
const _tdms = new Date.create('today').getTime();
const _tmms = new Date.create('tomorrow').addDays(2).getTime() - 1 ;
three.entries = this.jsonBlock.filter((item) => {
if (!item || !item.dtstart || !item.dtend) return false;
return inRange(item.dtstart.getTime(), _tdms, _tmms) || inRange(item.dtend.getTime(), _tdms, _tmms);
});
three.entries = three.entries.map( obj => {
obj.readDate = moment(obj.dtstart.getTime()).calendar();
if (obj.allday) {
let fixReadDate = obj.readDate.split('\n');
if (fixReadDate.length === 2) {
obj.readDate = `${fixReadDate[0]}\nAll Day`;
}
}
return obj;
});
logger.info('- getThreeDays');
return three;
},
'getWeek': function() {
'use strict';
logger.info('+ getWeek');
const today = {
'entries': []
};
const now = new Date.create('today');
logger.debug('>> now', now);
const twoDays = new Date.create('today').addDays(2).beginningOfDay();
logger.debug('>> twoDays', twoDays);
const sevenDays = new Date.create('today').addDays(7).beginningOfDay();
logger.debug('>> sevenDays', sevenDays);
logger.debug('>> trip', { now, twoDays, sevenDays });
/* for (let t = 0; t < this.jsonBlock.length; t++)
// logger.debug('>> between', Sugar.Date(this.jsonBlock[t].dtstart).raw, Sugar.Date(this.jsonBlock[t].dtstart).isBetween(twoDays, sevenDays));
if (Date(this.jsonBlock[t].dtstart).isBetween(twoDays, sevenDays))
today.entries.push(this.jsonBlock[t]);*/
today.entries = this.jsonBlock.filter((item) => {
if (!item || !item.dtstart || !item.dtend) return false;
return item.dtstart.isBetween(twoDays, sevenDays) || item.dtend.isBetween(twoDays, sevenDays);
});
logger.info('- getWeek');
return today;
},
'getTodaysMeetings': function() {
'use strict';
logger.info('+ getTodaysMeetings');
const today = {
'previous': [], 'upcoming': [], 'current': {}
};
const now = new Date();
for (let t = 0; t < this.jsonBlock.length; t++)
if (Sugar.Date(this.jsonBlock[t].dtstart).isToday().raw) {
if (Sugar.Date(this.jsonBlock[t].dtstart).isAfter(now).raw)
today.upcoming.push(this.jsonBlock[t]);
else
today.previous.push(this.jsonBlock[t]);
if (now.isBetween(this.jsonBlock[t].dtstart, this.jsonBlock[t].dtend))
today.current = this.jsonBlock[t];
}
// logger.debug(today);
logger.info('- getTodaysMeetings');
return today;
}, 'getSimpleCalV2': function(url, cb) {
'use strict';
const self = this;
// Var calJson = [];
try {
request(url, function(err, res, body) {
if (err) {
logger.error('Get remote Calendar Request failed');
// Callback.call(null, new Error('Request failed'));
return;
}
self.jsonBlock = processICAL(body);
// logger.debug(self.jsonBlock);
const st = self.getTodaysSimple();
if (typeof cb === 'function')
cb(st);
}, function(error, response, body) {
if (response.statusCode !== 200) {
logger.error(response.statusCode);
logger.error(body);
}
});
}
catch (e) {
logger.error(e);
}
}, 'getSimpleCalV3': function(url) {
'use strict';
const self = this;
return new Promise(function(resolve, reject) {
try {
request(url, function(err, res, body) {
if (err)
// logger.error(err);
return reject(err);
// Throw err;
self.jsonBlock = processICAL(body);
logger.debug(self.jsonBlock);
const st = self.getTodaysSimple();
return resolve(st);
}, function(error, response, body) {
if (response.statusCode !== 200) {
logger.error(response.statusCode);
// logger.error(body);
return reject(error);
}
});
}
catch (e) {
logger.error(e);
return reject(e);
}
});
// Var calJson = [];
}, 'getAdvancedCalV3': function(url) {
'use strict';
const self = this;
return new Promise(function(resolve, reject) {
try {
request(url, function(err, res, body) {
if (err)
// logger.error(err);
return reject(err);
// Throw err;
self.jsonBlock = processICAL(body);
logger.debug('jsonBlock length', self.jsonBlock.length);
// logger.debug(self.jsonBlock);
const st = self.getTodaysSimple().entries;
const tom = self.getTomorrow().entries;
const week = self.getWeek().entries;
const three = self.getThreeDays().entries;
const obj = { 'today': st, 'tomorrow': tom, 'week': week, 'three':three };
// logger.warn(obj);
return resolve(obj);
}, function(error, response, body) {
if (response.statusCode !== 200) {
logger.error(response.statusCode);
// logger.error(body);
return reject(error);
}
});
}
catch (e) {
logger.error(e);
return reject(e);
}
});
// Var calJson = [];
}
/**
* Created by Martin on 16/02/2016.
*/
};

View File

@ -0,0 +1,47 @@
const logger = require('log4js').getLogger('Directions 🔧');
const { get, isEmpty, has } = require('lodash');
const humanizeDuration = require('humanize-duration');
logger.level = 'debug';
const htmlTidy = /<(\/*?)(?!(em|p|br\s*\/|strong|h1|h2|h3))\w+?.+?>/gim;
function reduceEstDirections(body = '') {
if (body === '') return {};
const jBody = JSON.parse(body);
const obj = {};
const { ResultSet } = jBody;
if (has(ResultSet, 'Result')) {
const directions = get(ResultSet, 'Result.yahoo_driving_directions');
obj.totalTime = parseFloat(get(directions, 'total_time'));
obj.totalTimeWithTraffic = parseFloat(get(directions, 'total_time_with_traffic'));
obj.readable = humanizeDuration(obj.totalTimeWithTraffic * 60 * 1000);
obj.timePercentage = ((obj.totalTime * ( obj.totalTimeWithTraffic / 100 )) + obj.totalTime) - 100;
if ( obj.totalTimeWithTraffic > (obj.totalTime * 1.75)) {
obj.traffic = 'heavy traffic';
obj.class = 'trafficHeavy';
}
else if ( obj.totalTimeWithTraffic > (obj.totalTime * 1.5)) {
obj.traffic = 'some traffic';
obj.class = 'trafficMedium';
}
else if ( obj.totalTimeWithTraffic > (obj.totalTime * 1.25)) {
obj.traffic = 'light traffic';
obj.class = 'trafficLight';
}
else {
obj.traffic = 'no traffic';
obj.class = 'trafficNone';
}
}
return obj;
}
module.exports = { reduceEstDirections };

View File

@ -400,4 +400,22 @@ li {
font-size:14px;
font-weight: 500;
}
#connectionStatus {
margin-top:15px;
margin-bottom:15px;
}
.trafficHeavy {
color: #fa4a50;
}
.trafficLight {
color: #fdbd15;
}
.trafficMedium {
color: #fba010;
}
@import "./src/css/weather";

View File

@ -11,7 +11,7 @@
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
const CACHE_VERSION = { 'version': '0.0.214' };
const CACHE_VERSION = { 'version': '0.0.322' };
const dataCacheName = 'jubileeData-v1';
const cacheName = 'jubilee-final-1';
const filesToCache = [

View File

@ -27,6 +27,11 @@
<div class="mui-container">
<div id="greet"></div>
<div id="location" class="mui-row" style="display: none;"></div>
</div>
<div class="mui-container" id="connectionStatus" style="display:none;">
<div class="mui--text-center"><i class="large material-icons mui--align-middle mui--text-center" style="color:grey;">new_releases</i></div>
<div class="mui--text-body1 mui--text-center">No internet connection</div>
</div>
<div class="mui-container" id="viewFrame">
<div id="weatherAlertShell" class="mui-panel" style="display: none;">
@ -38,6 +43,10 @@
<div id="byme"></div>
</div>
<div id="agendaShell" class="mui-panel" style="display: none;">
<div class="mui--text-title cardTitle">Upcoming events</div>
<div id="agenda"></div>
</div>
<div id="nearbyShell" class="mui-panel" style="display: none;">
<div class="mui--text-title cardTitle">Around me</div>

155
src/v1/js/Agenda.js Normal file
View File

@ -0,0 +1,155 @@
const $ = require('jquery');
const _ = require('underscore');
const Backbone = require('backbone');
const request = require('request');
const { get } = require('lodash');
// const { reduceNearby } = require('./libs/reducers');
const { toHour } = require('./libs/utils');
const TimeFormat = require('hh-mm-ss');
const fecha = require('fecha');
const AgendaItem = Backbone.Model.extend({
});
const AgendaCollection = Backbone.Collection.extend({
'model': AgendaItem
});
const agendaCollection = new AgendaCollection();
const AgendaItemView = Backbone.View.extend({
'tagName': 'div',
'className': 'itemRow mui-row',
'template': _.template(`
<div class="mui-col-xs-3 mui--text-caption mui--text-dark-secondary mui--align-middle"><%= readDate %></div>
<div class="mui-col-xs-9 mui--text-dark mui--text-subhead mui--align-middle"><%= summary %></div>
`),
'initialize': function() {
this.render();
},
'attributes': function() {
return {
/* 'data-id': this.model.id*/
};
},
'render': function() {
this.$el.html(this.template(this.model.toJSON()));
}
});
const AgendaModel = Backbone.Model.extend({
'defaults' : function (obj) {
// return a new object
return {
'update' : new Date().getTime()
};
}, 'initialize': function() {
this.agendaCollection = agendaCollection;
this.timerID = 0;
this.tick();
this.set('totalResults', 0);
this.listenTo(this, 'change:update', this.getAgenda);
this.getAgenda();
},
'tick': function() {
this.timerID = setTimeout(
() => this.tick(),
toHour()
);
},
'onChange': function() {
this.getAgenda();
},
'getAgenda': function() {
const time = new Date().getTime() ;
const lastUpdate = time - (this.get('time') || 0);
console.log(`>> Agenda last fetch: ${TimeFormat.fromMs(lastUpdate, 'hh:mm')} ago`);
if (lastUpdate > 120000)
request({
'url': `${window.loc}/agenda`,
'method': 'GET',
'qs': {
}
}, function(err, res, body) {
if (err)
console.error(err);
else {
console.log('statusCode', res.statusCode);
const now = new Date().getTime();
const agendaJSON = JSON.parse(body);
const newAgenda = [];
console.log('>> agendaJSON', agendaJSON);
for(const item of agendaJSON) {
//
const dend = new Date(item.dtend).getTime();
if (dend > now) {
// console.log('>> agenda', item);
const timeStart = fecha.format(new Date(item.dtstart), 'shortTime');
item.timeStart = timeStart;
newAgenda.push(item);
}
// console.log(dend);
}
this.agendaCollection.reset(newAgenda);
this.logUpdate();
}
}.bind(this));
}, 'logUpdate': function() {
console.log('>> Agenda logging:');
const time = new Date().getTime() ;
this.set('time', time);
}
});
const AgendaView = Backbone.View.extend({
'id':'nearby',
'className': '',
'initialize': function(options) {
this.eventBus = options.eventBus;
this.model.agendaCollection.bind('reset', this.render, this);
this.eventBus.on('focused', this.focused, this);
}, 'focused': function() {
console.log('>> Agenda received focus msg');
const now = new Date().getTime();
const since = now - this.model.get('time');
console.log(`Agenda was last updated: ${TimeFormat.fromMs(since, 'hh:mm')} ago`);
if (since > (60 * 1000 * 60) )
this.model.set('update', now);
},
'render': function() {
console.info('>> Agenda:Render');
console.log('>> Agenda', this.model.agendaCollection);
this.$el.empty();
if (this.model.agendaCollection.length === 0)
this.$el.parent().hide();
else
this.model.agendaCollection.each(function(item) {
const aView = new AgendaItemView({ 'model': item });
this.$el.append(aView.el);
this.$el.parent().show();
// this.$el.append(personView.el); // adding all the person objects.
}, this);
}
});
module.exports = { AgendaModel, AgendaView };

View File

@ -30,6 +30,7 @@ const ForecastModel = Backbone.Model.extend({
'll': ll
}
}, function(err, res, body) {
console.log('statusCode', res.statusCode);
if (err)
console.error(err);
else{

View File

@ -6,8 +6,7 @@ const TimeFormat = require('hh-mm-ss');
const { distance } = require('./libs/utils');
const NodeGeocoder = require('node-geocoder');
// const locationData = require('./location-data.json');
// const locationData = require('./portGlasgow-Aldi-2018-03-09.json');
const LocationModel = Backbone.Model.extend({
'defaults': {
@ -56,7 +55,7 @@ const LocationModel = Backbone.Model.extend({
// this.set('location', location);
}.bind(this));
this.watcher = geolocation.createWatcher();
this.watcher = geolocation.createWatcher();
this.listenTo(this, 'change:location', this.onChange);
// this.tick();
@ -104,7 +103,7 @@ const LocationModel = Backbone.Model.extend({
geocoder.reverse(latlong)
.then(function(res) {
console.log(JSON.stringify(res));
newLocation.city = res[0].city;
newLocation.city = res[0].extra.neighborhood || res[0].city;
newLocation.cityCC = `${res[0].city},${res[0].countryCode}`;
newLocation.address = res[0].formattedAddress;
// this.set('location', newLocation);
@ -126,25 +125,29 @@ const LocationModel = Backbone.Model.extend({
const lastGeocode = this.get('lastGeocode');
const distanceFromLastGeocode = distance(lastGeocode.lat, lastGeocode.lng, latitude, longitude);
console.log('>> distance from last record', distanceFromLast);
const currentSince = currentTime - current.timestamp;
const sinceLastGeocode = currentTime - lastGeocode.timestamp;
console.log('>> distance from last record', distanceFromLast, TimeFormat.fromMs(currentSince, 'hh:mm:ss'));
// console.log('>> distanceFromLastGeocode', distanceFromLastGeocode, TimeFormat.fromMs(timestamp - lastGeocode.timestamp, 'hh:mm:ss'));
console.log('>> distanceFromLastGeocode', distanceFromLastGeocode, TimeFormat.fromMs(currentTime - lastGeocode.timestamp, 'hh:mm:ss'));
console.log('>> distanceFromLastGeocode', distanceFromLastGeocode, TimeFormat.fromMs(sinceLastGeocode, 'hh:mm:ss'));
// console.log(`(currentTime:${currentTime}, timestamp:${timestamp}, lastGeocode.timestamp:${lastGeocode.timestamp})`);
// console.log('(currentTime - current.timestamp > 900000) ', (currentTime - current.timestamp > 900000));
// if ((distanceFromLast > 0.5 && distanceFromLast < 2.0) || (timestamp - current.timestamp > 900000)) {
if ((distanceFromLast > 0.5 && distanceFromLast < 2.0) || ((currentTime - current.timestamp > 900000) && (currentTime - lastGeocode.timestamp < 1.8e+6))) {
if (((distanceFromLast > 0.80 && distanceFromLast < 2.0) && ( currentSince > 120000)) || ((currentSince > 900000) && (sinceLastGeocode < 1.8e+6))) {
// dont bother re geocoding
console.log('Slightly moved from previous');
// this.set('location', newLocation);
// this.set('moving', moving);
this.set( newLocation);
}
else if (distanceFromLastGeocode >= 2.0 || (currentTime - lastGeocode.timestamp >= 1.8e+6) ) {
console.log('Moved from previous', (currentTime - lastGeocode.timestamp >= 1.8e+6));
else if (((distanceFromLastGeocode >= 2.0) && (sinceLastGeocode > 120000)) || (sinceLastGeocode >= 1.8e+6) ) {
console.log('>> Moved from previous', sinceLastGeocode, (sinceLastGeocode >= 1.8e+6));
console.info('>> Location:geocoder request');
geocoder.reverse(latlong)
.then(function(res) {
newLocation.city = res[0].city;
console.log('>> location res', JSON.stringify(res));
newLocation.city = res[0].extra.neighborhood || res[0].city;
newLocation.cityCC = `${res[0].city},${res[0].countryCode}`;
newLocation.address = res[0].formattedAddress;
console.log('!!! Setting location...');
@ -169,7 +172,12 @@ const LocationModel = Backbone.Model.extend({
// const location = this.get('location');
// location.moving = false;
this.set('moving', false);
console.log(this);
const lastGeocode = this.get('lastGeocode');
const currentTime = new Date().getTime();
const sinceLastGeocode = currentTime - lastGeocode.timestamp;
console.log('>> stopped:', TimeFormat.fromMs(sinceLastGeocode, 'hh:mm:ss'));
},
30000
);
@ -177,6 +185,21 @@ const LocationModel = Backbone.Model.extend({
});
module.exports = { LocationModel };
const LocationView = Backbone.View.extend({
'initialize' : function(options) {
this.model.bind('change', this.render, this);
}, 'template': _.template(`
<div class="">Moving:<%=moving%></div>
`),
'render': function() {
this.$el.html(this.template(this.model.attributes));
console.log('>> location attributes', this.model.attributes);
return this;
}
});
module.exports = { LocationModel, LocationView };
// https://www.npmjs.com/package/node-geocoder

View File

@ -51,7 +51,7 @@ const NearbyModel = Backbone.Model.extend({
this.timerID = 0;
this.tick();
this.set('totalResults', 0);
this.listenTo(this, 'change:llFixed change:section change:update', this.onChange);
this.listenTo(this, 'change:llFixed change:atHome change:section change:update', this.onChange);
},
'tick': function() {
const hour = parseInt((new Date()).getHours().toString(), 10);
@ -65,38 +65,51 @@ const NearbyModel = Backbone.Model.extend({
);
},
'onChange': function() {
this.getNearby();
if (this.get('atHome')) {
console.log('At home, so no fetching...');
this.logUpdate();
}
else
this.getNearby();
},
'getNearby': function() {
const llFixed = this.get('llFixed');
const hour = parseInt((new Date()).getHours().toString(), 10);
const section = this.get('section');
const time = new Date().getTime() ;
const lastUpdate = time - (this.get('time') || 0);
console.log('>> Nearby section:', hour, section);
console.info('>> Nearby:request');
request({
'url': `${window.loc}/fsexplore`,
'method': 'GET',
'qs': {
'll': llFixed,
'section': section
}
}, function(err, res, body) {
if (err)
console.error(err);
else {
const fsJSON = JSON.parse(body);
const groups = get(fsJSON, 'response.groups');
const items = groups[0].items;
const newItems = [];
this.set('totalResults', get(fsJSON, 'response.totalResults'));
for(const item of items)
newItems.push(reduceNearby(item));
console.log(`>> Nearby last fetch: ${TimeFormat.fromMs(lastUpdate, 'hh:mm')} ago`);
this.fsCollection.reset(newItems);
this.logUpdate();
}
}.bind(this));
if (lastUpdate > 120000)
request({
'url': `${window.loc}/fsexplore`,
'method': 'GET',
'qs': {
'll': llFixed,
'section': section
}
}, function(err, res, body) {
if (err)
console.error(err);
else {
console.log('statusCode', res.statusCode);
const fsJSON = JSON.parse(body);
const groups = get(fsJSON, 'response.groups');
const items = groups[0].items;
const newItems = [];
this.set('totalResults', get(fsJSON, 'response.totalResults'));
for(const item of items)
newItems.push(reduceNearby(item));
this.fsCollection.reset(newItems);
this.logUpdate();
}
}.bind(this));
}, 'logUpdate': function() {
console.log('Nearby logging:');
@ -116,6 +129,7 @@ const NearbyView = Backbone.View.extend({
// this.model.bind('change', this.render, this);
this.location.bind('change:llFixed', this.updateLocation, this);
this.location.bind('change:atHome', this.atHome, this);
this.$nearby = $('#nearby');
@ -132,7 +146,8 @@ const NearbyView = Backbone.View.extend({
if (l.has('atHome')) {
const llFixed = l.get('llFixed');
this.model.set('llFixed', llFixed);
const atHome = l.get('atHome');
this.model.set({ 'llFixed': llFixed, 'atHome': atHome });
}
else
console.log('>> Nearby No location yet');
@ -165,13 +180,22 @@ const NearbyView = Backbone.View.extend({
const fsdetail = new FSDetailView({ 'fsID':id });
}, 'focused': function() {
console.log('>> Nearby received focus msg');
if (this.location.get('atHome')) {
console.log('Still at home');
return;
}
const now = new Date().getTime();
const since = now - this.model.get('time');
console.log(this.model.get('time'));
console.log(`Nearby was last updated: ${TimeFormat.fromMs(since, 'hh:mm')} ago`);
if (since > (60 * 1000 * 60) )
if (since > (60 * 1000 * 60) )
this.model.set('update', now);
}, 'atHome': function() {
if (this.location.get('atHome'))
this.$el.parent().hide();
}
});

View File

@ -61,11 +61,14 @@ const NewsModel = Backbone.Model.extend({
console.info('>> News:request');
request({
'url': `${window.loc}/news`,
'method': 'GET'
'method': 'GET', 'qs': {
'limit': 10
}
}, function(err, res, body) {
if (err)
console.error(err);
else {
console.log('statusCode', res.statusCode);
const fsJSON = JSON.parse(body);
// console.log(body);
const newItems = [];
@ -145,7 +148,7 @@ const NewsView = Backbone.View.extend({
console.log(`News was last updated: ${TimeFormat.fromMs(since, 'hh:mm')} ago`);
if (since > (60 * 1000 * 60) )
if (since > (60 * 1000 * 60) )
this.model.set('update', now);
}
});

View File

@ -22,6 +22,7 @@ const NewsCardModel = Backbone.Model.extend({
'guid': guid
}
}, function(err, res, body) {
console.log('statusCode', res.statusCode);
if (err)
console.error(err);
else{

View File

@ -50,12 +50,20 @@ const ByMeModel = Backbone.Model.extend({
'll': ll
}
}, function(err, res, body) {
console.log('statusCode', res.statusCode);
if (err)
console.error(err);
else {
// console.log(body);
const fsJSON = JSON.parse(body);
let fsJSON;
try {
fsJSON = JSON.parse(body);
}
catch(err) {
console.error(err);
console.log(body);
}
// console.log(fsJSON);

View File

@ -105,6 +105,7 @@ const WeatherModel = Backbone.Model.extend({
'll': llFixed
}
}, function(err, res, body) {
console.log('statusCode', res.statusCode);
if (err)
console.error(err);
else {

View File

@ -65,6 +65,7 @@ const WeatherAlertModel = Backbone.Model.extend({
'll': llFixed
}
}, function (err, res, body) {
console.log('statusCode', res.statusCode);
if (err)
console.error(err);
else {

View File

@ -4,7 +4,7 @@ const $ = require('jquery');
const _ = require('underscore');
const Backbone = require('backbone');
const { LocationModel } = require('./Location');
const { LocationModel, LocationView } = require('./Location');
const { GreetModel, GreetView } = require('./Greet');
const { NearbyModel, NearbyView } = require('./Nearby');
const { WeatherModel, WeatherView } = require('./Weather');
@ -13,10 +13,10 @@ const { ForecastModel, ForecastView } = require('./Forecast');
const { NewsModel, NewsView } = require('./News');
const { NewsCardModel, NewsCardView } = require('./NewsViewer');
const { ByMeModel, ByMeView } = require('./RightByMe');
const { AgendaModel, AgendaView } = require('./Agenda');
var app = app || {};
const live = true;
const live = false;
if (live) {
window.loc = 'https://jubilee.silvrtree.co.uk';
@ -42,6 +42,8 @@ else
app.locationModel = new LocationModel();
app.locationView = new LocationView({ 'model': app.locationModel, 'el':'#location' });
// new TrainView({ 'model': new TrainModel(route), 'eventBus': app.eventBus });
app.greetView = new GreetView({ 'model': new GreetModel(), 'eventBus': app.eventBus, 'location': app.locationModel });
@ -60,8 +62,29 @@ else
app.byMe = new ByMeView({ 'model': new ByMeModel(), 'eventBus': app.eventBus, 'location': app.locationModel, 'el':'#byme' });
app.agenda = new AgendaView({ 'model': new AgendaModel(), 'eventBus': app.eventBus, 'el':'#agenda' });
app.updateOnlineStatus = function(event) {
if (navigator.onLine)
// handle online status
{
console.log('online');
$('#connectionStatus').hide(500);
}
else
// handle offline status
{
console.log('offline');
$('#connectionStatus').show(500);
}
};
window.addEventListener('focus', () => {
console.log('Window has focus...');
app.eventBus.trigger('focused');
});
window.addEventListener('online', app.updateOnlineStatus);
window.addEventListener('offline', app.updateOnlineStatus);
})();

File diff suppressed because one or more lines are too long

350
test/directions.spec.js Normal file
View File

@ -0,0 +1,350 @@
const { reduceEstDirections } = require('../server/reducers/directions');
const expect = require('expect.js');
const requestData = {
'@lang': 'en-US',
'ResultSet': {
'@version': '2.0',
'@lang': 'en-US',
'Error': '0',
'ErrorMessage': 'No error',
'Locale': 'en-US',
'Result': {
'yahoo_driving_directions': {
'routeHandle': '0',
'address': [
{
'type': 'Origin',
'lat': '55.942592',
'lon': '-4.556346',
'line1': '',
'line2': '',
'line3': '',
'line4': '',
'country': ''
},
{
'type': 'Destination',
'lat': '55.872443',
'lon': '-3.548992',
'line1': '',
'line2': '',
'line3': '',
'line4': '',
'country': ''
}
],
'total_distance': '83339',
'total_time': '65.0',
'total_time_with_traffic': '70.0',
'boundingbox': {
'north': '55.942587',
'south': '55.832605',
'east': '-3.541074',
'west': '-4.556462'
},
'route_id': 'AIUACAAAAB4AAABRAAAAlgAAAKAAAAB42mNYwMDAxMQABI+6DtXs5zyRzgAFBvE1Yi4Mi6wY/v+HCDywZ0ACXEBs/kYnl4nhz5vK2okuu+Ea4+ZXi61gXmSDR2PShr4NjECL4YJs6Qcz5wJpB4aEhgeMQClGrglVHA4OTAw+/ADTGiAC9jefAA==',
'directions': {
'route_leg': [
{
'@type': 'PrivateRouteLeg',
'number': '1',
'lat': '55.942587',
'lon': '-4.556462',
'distance': '2060',
'description': 'Head toward Bruce Street on Glasgow Road (A814). Go for 2.1 km.',
'time': '3',
'time_with_traffic': '3',
'turn_angle': '0',
'exit_num': '',
'man_type': '0',
'street': 'A814, GLASGOW ROAD'
},
{
'@type': 'PrivateRouteLeg',
'number': '2',
'lat': '55.935098',
'lon': '-4.526989',
'distance': '1616',
'description': 'Continue on Dumbarton Road (A82). Go for 1.6 km.',
'time': '2',
'time_with_traffic': '2',
'turn_angle': '0',
'exit_num': '',
'man_type': '11',
'street': 'A82, DUMBARTON ROAD'
},
{
'@type': 'PrivateRouteLeg',
'number': '3',
'lat': '55.931944',
'lon': '-4.503633',
'distance': '3334',
'description': 'Take the 2nd exit from Dunglass Roundabout roundabout onto Great Western Road (A82) toward Glasgow/Erskine Bridge/(A898). Go for 3.3 km.',
'time': '3',
'time_with_traffic': '3',
'turn_angle': '-90',
'exit_num': '',
'man_type': '29',
'street': 'A82, GREAT WESTERN ROAD',
'sign': '(A898), Erskine Bridge, Glasgow'
},
{
'@type': 'PrivateRouteLeg',
'number': '4',
'lat': '55.926161',
'lon': '-4.452403',
'distance': '2919',
'description': 'Take ramp onto A898 toward Erskine Bridge/Paisley/(M898). Go for 2.9 km.',
'time': '2',
'time_with_traffic': '2',
'turn_angle': '-30',
'exit_num': '',
'man_type': '19',
'street': 'A898, ',
'sign': '(M898), Erskine Bridge, Paisley'
},
{
'@type': 'PrivateRouteLeg',
'number': '5',
'lat': '55.910207',
'lon': '-4.472519',
'distance': '1152',
'description': 'Keep right onto M898 toward Paisley/Glasgow Airport/Greenock/(M8). Go for 1.2 km.',
'time': '1',
'time_with_traffic': '1',
'turn_angle': '30',
'exit_num': '',
'man_type': '23',
'street': 'M898, ',
'sign': '(M8), Glasgow Airport, Greenock, Paisley'
},
{
'@type': 'PrivateRouteLeg',
'number': '6',
'lat': '55.901495',
'lon': '-4.481091',
'distance': '396',
'description': 'Keep left onto M898 toward Paisley/Airports. Go for 396 m.',
'time': '0',
'time_with_traffic': '0',
'turn_angle': '-30',
'exit_num': '',
'man_type': '21',
'street': 'M898, ',
'sign': 'Airports, Paisley'
},
{
'@type': 'PrivateRouteLeg',
'number': '7',
'lat': '55.898287',
'lon': '-4.483226',
'distance': '64579',
'description': 'Keep left onto M8. Go for 64.6 km.',
'time': '42',
'time_with_traffic': '42',
'turn_angle': '-30',
'exit_num': '',
'man_type': '21',
'street': 'M8, '
},
{
'@type': 'PrivateRouteLeg',
'number': '8',
'lat': '55.895294',
'lon': '-3.596402',
'distance': '240',
'description': 'Take exit 3A toward Bathgate/(A89)/Broxburn/Livingston West/(A779). Go for 240 m.',
'time': '0',
'time_with_traffic': '0',
'turn_angle': '-30',
'exit_num': '',
'man_type': '17',
'street': ', ',
'sign': '(A779), (A89), Bathgate, Broxburn, Livingston West'
},
{
'@type': 'PrivateRouteLeg',
'number': '9',
'lat': '55.897204',
'lon': '-3.595244',
'distance': '420',
'description': 'Take the 1st exit from roundabout onto Carnegie Road (A779) toward Glasgow/(M8)/Livingston/Bathgate/(A89)/Broxburn. Go for 420 m.',
'time': '1',
'time_with_traffic': '1',
'turn_angle': '-90',
'exit_num': '',
'man_type': '29',
'street': 'A779, CARNEGIE ROAD',
'sign': '(A89), (M8), A779, Bathgate, Broxburn, Glasgow, Livingston'
},
{
'@type': 'PrivateRouteLeg',
'number': '10',
'lat': '55.897193',
'lon': '-3.601885',
'distance': '840',
'description': 'Take the 1st exit from Boghall Roundabout roundabout onto A779 toward Glasgow/(M8)/Livingston. Go for 840 m.',
'time': '1',
'time_with_traffic': '1',
'turn_angle': '-90',
'exit_num': '',
'man_type': '29',
'street': 'A779, ',
'sign': '(M8), A779, Glasgow, Livingston'
},
{
'@type': 'PrivateRouteLeg',
'number': '11',
'lat': '55.890466',
'lon': '-3.596713',
'distance': '1622',
'description': 'Take the 1st exit from Starlaw West Roundabout roundabout onto Starlaw Road (A779) toward Livingston/Kirkton Campus/Alba Centre/Starlaw Park. Go for 1.6 km.',
'time': '2',
'time_with_traffic': '2',
'turn_angle': '-90',
'exit_num': '',
'man_type': '29',
'street': 'A779, STARLAW ROAD',
'sign': 'Alba Centre, Kirkton Campus, Livingston, Starlaw Park'
},
{
'@type': 'PrivateRouteLeg',
'number': '12',
'lat': '55.89009',
'lon': '-3.570975',
'distance': '657',
'description': 'Take the 3rd exit from Tailend Roundabout roundabout onto Starlaw Road (A779). Go for 657 m.',
'time': '1',
'time_with_traffic': '1',
'turn_angle': '-90',
'exit_num': '',
'man_type': '29',
'street': 'A779, STARLAW ROAD'
},
{
'@type': 'PrivateRouteLeg',
'number': '13',
'lat': '55.886743',
'lon': '-3.563787',
'distance': '486',
'description': 'Take the 2nd exit from Toll Roundabout roundabout onto A705. Go for 486 m.',
'time': '1',
'time_with_traffic': '1',
'turn_angle': '-90',
'exit_num': '',
'man_type': '29',
'street': 'A705, '
},
{
'@type': 'PrivateRouteLeg',
'number': '14',
'lat': '55.885638',
'lon': '-3.557596',
'distance': '2131',
'description': 'Turn right onto Simpson Parkway (B7015). Go for 2.1 km.',
'time': '3',
'time_with_traffic': '3',
'turn_angle': '90',
'exit_num': '',
'man_type': '13',
'street': 'B7015, SIMPSON PARKWAY'
},
{
'@type': 'PrivateRouteLeg',
'number': '15',
'lat': '55.876765',
'lon': '-3.542415',
'distance': '345',
'description': 'Continue on Simpson Parkway. Go for 345 m.',
'time': '0',
'time_with_traffic': '0',
'turn_angle': '0',
'exit_num': '',
'man_type': '11',
'street': ', SIMPSON PARKWAY'
},
{
'@type': 'PrivateRouteLeg',
'number': '16',
'lat': '55.873793',
'lon': '-3.541074',
'distance': '197',
'description': 'Take the 3rd exit from Rosebank Roundabout roundabout. Go for 197 m.',
'time': '1',
'time_with_traffic': '1',
'turn_angle': '-90',
'exit_num': '',
'man_type': '29',
'street': ', '
},
{
'@type': 'PrivateRouteLeg',
'number': '17',
'lat': '55.872957',
'lon': '-3.542737',
'distance': '222',
'description': 'Take the 2nd exit from Brotherton Roundabout roundabout. Go for 222 m.',
'time': '1',
'time_with_traffic': '1',
'turn_angle': '-90',
'exit_num': '',
'man_type': '29',
'street': ', '
},
{
'@type': 'PrivateRouteLeg',
'number': '18',
'lat': '55.873075',
'lon': '-3.546073',
'distance': '123',
'description': 'Take the 1st exit from roundabout. Go for 123 m.',
'time': '0',
'time_with_traffic': '0',
'turn_angle': '-90',
'exit_num': '',
'man_type': '29',
'street': ', '
},
{
'@type': 'PrivateRouteLeg',
'number': '19',
'lat': '55.872313',
'lon': '-3.547393',
'distance': '0',
'description': 'Arrive at your destination.',
'time': '0',
'time_with_traffic': '0',
'turn_angle': '0',
'exit_num': '',
'man_type': '2',
'street': ', '
}
]
},
'copy_right': 'Copyright &copy; 2018 Yahoo! Inc. All rights reserved. &copy; Navteq'
},
'geocode_results': null
}
}
};
const goodOutput = { 'totalTime': '65.0',
'totalTimeWithTraffic': '70.0',
'readable': '1 hour, 10 minutes',
'timePercentage': 10.5,
'traffic': 'no traffic',
'class': 'trafficNone' };
describe('Directions', () => {
it('should gracefully handle no data', done => {
expect(reduceEstDirections()).to.eql({});
done();
});
it('Should process data correctly', done => {
expect(reduceEstDirections(requestData)).to.eql(goodOutput);
done();
});
});

File diff suppressed because it is too large Load Diff