Merge branch 'master' of ssh://git.citadel.org/appl/gitroot/citadel
[citadel.git] / citadel / modules / rssclient / serv_rssclient.c
index 0d8442b41551ba101e2c46196c56594a3dbf26fb..b2cd3747f92ccfad92bbe97544b0fdbdd507882b 100644 (file)
@@ -409,14 +409,21 @@ void rss_save_item(rss_item *ri)
                        StrBuf *EmailAddress;
                        StrBuf *EncBuf;
                        int FromAt;
+                       int FromLen;
                        
                        UserName = NewStrBuf();
                        EmailAddress = NewStrBuf();
                        EncBuf = NewStrBuf();
 ////TODO!
+                       StrBufTrim(ri->author_or_creator);
                        From = html_to_ascii(ChrPtr(ri->author_or_creator),
                                             StrLength(ri->author_or_creator), 
                                             512, 0);
+                       FromLen = strlen(From);
+                       if (From[FromLen - 1] == '\n')
+                       {
+                               From[FromLen - 1] = '\0';
+                       }
                        FromAt = strchr(From, '@') != NULL;
                        if (!FromAt && StrLength (ri->author_email) > 0)
                        {
@@ -424,7 +431,7 @@ void rss_save_item(rss_item *ri)
                                if (!IsEmptyStr(From))
                                {
                                        StrBufPrintf(Encoded,
-                                                    "\"%s\" <%s>", 
+                                                    "%s<%s>", 
                                                     From, 
                                                     ChrPtr(ri->author_email));
                                }
@@ -443,7 +450,7 @@ void rss_save_item(rss_item *ri)
                                {
                                        Encoded = NewStrBuf();
                                        StrBufPrintf(Encoded,
-                                                    "\"%s\" <%s>", 
+                                                    "%s<%s>", 
                                                     From, 
                                                     "rss@localhost"); /// TODO: get hostname?
                                }
@@ -473,7 +480,13 @@ void rss_save_item(rss_item *ri)
                        StrBufSpaceToBlank(ri->title);
                        len = StrLength(ri->title);
                        Sbj = html_to_ascii(ChrPtr(ri->title), len, 512, 0);
-                       Encoded = NewStrBufPlain(Sbj, -1);
+                       len = strlen(Sbj);
+                       if (Sbj[len - 1] == '\n')
+                       {
+                               len --;
+                               Sbj[len] = '\0';
+                       }
+                       Encoded = NewStrBufPlain(Sbj, len);
                        free(Sbj);
 
                        StrBufTrim(Encoded);
@@ -845,6 +858,13 @@ void RSS_item_link_end (StrBuf *CData, rss_item *ri, rssnetcfg *Cfg, const char*
                StrBufTrim(ri->link);
        }
 }
+void RSS_item_relink_end(StrBuf *CData, rss_item *ri, rssnetcfg *Cfg, const char** Attr)
+{
+       if (StrLength(CData) > 0) {
+               NewStrBufDupAppendFlush(&ri->reLink, CData, NULL, 0);
+               StrBufTrim(ri->reLink);
+       }
+}
 
 void RSSATOM_item_title_end (StrBuf *CData, rss_item *ri, rssnetcfg *Cfg, const char** Attr)
 {
@@ -1319,6 +1339,12 @@ CTDL_MODULE_INIT(rssclient)
        AddRSSEndHandler(RSS_item_guid_end,        RSS_RSS|RSS_REQUIRE_BUF, HKEY("guid"));
        AddRSSEndHandler(ATOM_item_id_end,         RSS_ATOM|RSS_REQUIRE_BUF, HKEY("id"));
        AddRSSEndHandler(RSS_item_link_end,        RSS_RSS|RSS_REQUIRE_BUF, HKEY("link"));
+#if 0 
+// hm, rss to the comments of that blog, might be interesting in future, but... 
+       AddRSSEndHandler(RSS_item_relink_end,      RSS_RSS|RSS_REQUIRE_BUF, HKEY("commentrss"));
+// comment count...
+       AddRSSEndHandler(RSS_item_relink_end,      RSS_RSS|RSS_REQUIRE_BUF, HKEY("comments"));
+#endif
        AddRSSEndHandler(RSSATOM_item_title_end,   RSS_ATOM|RSS_RSS|RSS_REQUIRE_BUF, HKEY("title"));
        AddRSSEndHandler(ATOM_item_content_end,    RSS_ATOM|RSS_REQUIRE_BUF, HKEY("content"));
        AddRSSEndHandler(RSS_item_description_end, RSS_RSS|RSS_ATOM|RSS_REQUIRE_BUF, HKEY("encoded"));