projects
/
citadel.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
3caa16d
)
Parse date format correctly in Atom feeds
author
Art Cancro
<ajc@citadel.org>
Mon, 27 Feb 2017 00:11:05 +0000
(19:11 -0500)
committer
Art Cancro
<ajc@citadel.org>
Mon, 27 Feb 2017 00:11:05 +0000
(19:11 -0500)
citadel/modules/rssclient/serv_rssclient.c
patch
|
blob
|
history
diff --git
a/citadel/modules/rssclient/serv_rssclient.c
b/citadel/modules/rssclient/serv_rssclient.c
index 6ace63fa09d5d21e9901c0dc4bb33023d8024aa1..686dd7268cedffe0b25578ee304ea3403262d08b 100644
(file)
--- a/
citadel/modules/rssclient/serv_rssclient.c
+++ b/
citadel/modules/rssclient/serv_rssclient.c
@@
-119,7
+119,6
@@
void rss_end_element(void *data, const char *el)
{
struct rssparser *r = (struct rssparser *)data;
{
struct rssparser *r = (struct rssparser *)data;
- syslog(LOG_DEBUG, "end: %s", el);
if ( // end of a new item(rss) or entry(atom)
(!strcasecmp(el, "entry"))
|| (!strcasecmp(el, "item"))
if ( // end of a new item(rss) or entry(atom)
(!strcasecmp(el, "entry"))
|| (!strcasecmp(el, "item"))
@@
-220,7
+219,15
@@
void rss_end_element(void *data, const char *el)
}
else if (!strcasecmp(el, "updated")) { // date/time stamp (atom) 2003-12-13T18:30:02Z
}
else if (!strcasecmp(el, "updated")) { // date/time stamp (atom) 2003-12-13T18:30:02Z
- // FIXME parse it
+ if ((r->msg)&&(r->msg->cm_fields[eTimestamp]==NULL)) {
+ struct tm t;
+ char zulu;
+ memset(&t, 0, sizeof t);
+ sscanf(ChrPtr(r->CData), "%d-%d-%dT%d:%d:%d%c", &t.tm_year, &t.tm_mon, &t.tm_mday, &t.tm_hour, &t.tm_min, &t.tm_sec, &zulu);
+ t.tm_year -= 1900;
+ t.tm_mon -= 1;
+ CM_SetFieldLONG(r->msg, eTimestamp, mktime(&t));
+ }
}
else if (!strcasecmp(el, "link")) { // link to story (rss)
}
else if (!strcasecmp(el, "link")) { // link to story (rss)