Skip to content

Commit 38cb848

Browse files
committed
formatted events
1 parent f12ea43 commit 38cb848

6 files changed

Lines changed: 29 additions & 325 deletions

File tree

data.coffee

Lines changed: 23 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,35 @@
11
parser = require 'xml2json'
22
rest = require 'restler'
33
date = require 'date-utils'
4-
_date = require 'underscore.date'
4+
moment = require 'moment'
5+
ical = require 'ical'
56

67
parseFeed = (feed) ->
78
JSON.parse(parser.toJson(feed)).feed.entry
89

910
messageFeed = 'http://groups.google.com/group/kc-nodejs/feed/atom_v1_0_topics.xml'
10-
eventFeed = 'http://www.google.com/calendar/feeds/nodekc.org_e8lg6hesldeld1utui23ebpg7k%40group.calendar.google.com/public/basic'
11+
eventFeed = 'http://www.google.com/calendar/ical/nodekc.org_e8lg6hesldeld1utui23ebpg7k%40group.calendar.google.com/public/basic.ics'
1112
twitterFeed = 'http://search.twitter.com/search.json?q=%40nodekc'
1213

1314
lastMessageFetchResult = {}
1415
lastEventFetchResult = {}
1516
lastTwitterFetchResult = {}
1617

18+
determineDate = (start, end) ->
19+
start = moment(new Date start)
20+
end = moment(new Date end)
21+
date = start.format('dddd, MMM, Do')
22+
23+
return date if start.diff(end, 'days') == -1
24+
25+
date + start.format(' h:mma') + " for " + start.from(end, true)
26+
27+
1728
striphtml = (value) ->
1829
value.replace(/<(?:.|\n)*?>/gm, ' ')
1930

2031
timeAgo = (date) ->
21-
_date(new Date(date)).fromNow()
32+
moment(new Date(date)).fromNow()
2233

2334
formatContent = (content) ->
2435
content = striphtml(content).trim()
@@ -61,16 +72,16 @@ fetchEvents = (cb) ->
6172
if lastEventFetchResult.on? and lastEventFetchResult.on > (new Date).addMinutes(-1)
6273
cb lastEventFetchResult.value
6374
return
75+
76+
ical.fromURL eventFeed, {}, (err, calendar) ->
77+
console.log calendar
78+
events = for k,v of calendar
79+
{title: v.summary, location: v.location, details: v.description, when: determineDate v.start, v.end }
80+
console.log events
81+
lastEventFetchResult.value = events
82+
lastEventFetchResult.on = new Date
6483

65-
rest.get(eventFeed).on('complete', (data) ->
66-
events = for x in parseFeed data
67-
{ title: x.title.$t, when: striphtml(x.summary.$t), url: x.id }
68-
69-
lastEventFetchResult.value = events
70-
lastEventFetchResult.on = new Date
71-
72-
cb events
73-
)
84+
cb events
7485

7586
module.exports = {
7687
load: (keys...) ->

data/messages.xml

Lines changed: 0 additions & 28 deletions
This file was deleted.

package.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,9 @@
1010
"restler": "latest",
1111
"underscore.date": "latest",
1212
"date-utils": "latest",
13-
"xml2json": "latest"
13+
"xml2json": "latest",
14+
"ical": "latest",
15+
"moment": "latest"
1416
}
1517
}
1618

test.js

Lines changed: 0 additions & 5 deletions
This file was deleted.

utility/atomParser.js

Lines changed: 0 additions & 275 deletions
This file was deleted.

0 commit comments

Comments
 (0)