Mercurial > eldonilo > blog
comparison server.js @ 7:7ab6b48122af
Add support for content in Atom and improve published display.
| author | Emmanuel Gil Peyrot <linkmauve@linkmauve.fr> |
|---|---|
| date | Wed, 02 Nov 2011 09:35:46 -0700 |
| parents | 29becdd02dea |
| children | 360186772aa3 |
comparison
equal
deleted
inserted
replaced
| 6:29becdd02dea | 7:7ab6b48122af |
|---|---|
| 147 return handlePubSub(payload, stanza.attrs.from); | 147 return handlePubSub(payload, stanza.attrs.from); |
| 148 } | 148 } |
| 149 }); | 149 }); |
| 150 | 150 |
| 151 var parseAtom = function(atom, id, jid) { | 151 var parseAtom = function(atom, id, jid) { |
| 152 var article = new Element('article', {'e:id': id, 'e:date': '2011-06-02T10:59:39Z'}); | 152 var article = new Element('article', {'e:id': id}); |
| 153 | 153 |
| 154 var avatar = article.c('aside').c('img') | 154 var avatar = article.c('aside').c('img') |
| 155 article.up(); | 155 article.up(); |
| 156 | 156 |
| 157 try { | 157 try { |
| 181 footer.t(' (').c('a', {href: 'mailto:' + email}).t('email').up().t(')'); | 181 footer.t(' (').c('a', {href: 'mailto:' + email}).t('email').up().t(')'); |
| 182 } catch (e) { } | 182 } catch (e) { } |
| 183 footer.up(); | 183 footer.up(); |
| 184 } | 184 } |
| 185 | 185 |
| 186 var published = atom.getChild('published', ns.atom).getText(); | 186 var published = (function() { |
| 187 if (published) { | 187 try { |
| 188 if (author) | 188 var elem = atom.getChild('published', ns.atom); |
| 189 footer.t(', '); | 189 var iso8601 = elem.getText(); |
| 190 footer.c('time', {datetime: published}).t((new Date).set8601(published).getRelative()).up(); | 190 var d = (new Date).set8601(iso8601); |
| 191 } | 191 var relative = d.getRelative(); |
| 192 | |
| 193 return {iso8601: iso8601, relative: relative}; | |
| 194 } catch (e) { | |
| 195 var d = new Date; | |
| 196 return {iso8601: d.to8601(), relative: d.getRelative()}; | |
| 197 } | |
| 198 })(); | |
| 199 | |
| 200 if (author) | |
| 201 footer.t(', '); | |
| 202 footer.c('time', {datetime: published.iso8601}).t(published.relative).up(); | |
| 203 article.attrs['e:date'] = published.iso8601; | |
| 192 | 204 |
| 193 try { | 205 try { |
| 194 var summary = atom.getChild('summary', ns.atom).getText(); | 206 var summary = atom.getChild('summary', ns.atom).getText(); |
| 195 if (summary) | 207 if (summary) |
| 196 article.c('p').t(summary).up(); | 208 article.c('p').t(summary).up(); |
