Fossil SCM
/timeline.rss now accepts the same filter parameters as /timeline (e.g. y=ci for commits and y=w for wiki)
Commit
90adbd84430549a9877ef3ec20171c42ac37afa5
Parent
1eb067d45626121…
1 file changed
+13
-3
+13
-3
| --- src/rss.c | ||
| +++ src/rss.c | ||
| @@ -47,11 +47,14 @@ | ||
| 47 | 47 | |
| 48 | 48 | void page_timeline_rss(void){ |
| 49 | 49 | Stmt q; |
| 50 | 50 | int nLine=0; |
| 51 | 51 | char *zPubDate, *zProjectName, *zProjectDescr, *zFreeProjectName=0; |
| 52 | - const char zSQL[] = | |
| 52 | + Blob bSQL; | |
| 53 | + const char *zType = PD("y","all"); /* Type of events. All if NULL */ | |
| 54 | + blob_zero(&bSQL); | |
| 55 | + const char zSQL1[] = | |
| 53 | 56 | @ SELECT |
| 54 | 57 | @ blob.rid, |
| 55 | 58 | @ uuid, |
| 56 | 59 | @ datetime(event.mtime), |
| 57 | 60 | @ coalesce(ecomment,comment), |
| @@ -58,12 +61,18 @@ | ||
| 58 | 61 | @ coalesce(euser,user), |
| 59 | 62 | @ (SELECT count(*) FROM plink WHERE pid=blob.rid AND isprim), |
| 60 | 63 | @ (SELECT count(*) FROM plink WHERE cid=blob.rid) |
| 61 | 64 | @ FROM event, blob |
| 62 | 65 | @ WHERE blob.rid=event.objid |
| 63 | - @ ORDER BY event.mtime DESC | |
| 64 | 66 | ; |
| 67 | + blob_append( &bSQL, zSQL1, -1 ); | |
| 68 | + | |
| 69 | + if( zType[0]!='a' ){ | |
| 70 | + blob_appendf(&bSQL, " AND event.type=%Q", zType); | |
| 71 | + } | |
| 72 | + | |
| 73 | + blob_append( &bSQL, " ORDER BY event.mtime DESC", -1 ); | |
| 65 | 74 | |
| 66 | 75 | cgi_set_content_type("application/rss+xml"); |
| 67 | 76 | |
| 68 | 77 | zProjectName = db_get("project-name", 0); |
| 69 | 78 | if( zProjectName==0 ){ |
| @@ -83,11 +92,12 @@ | ||
| 83 | 92 | @ <title>%s(zProjectName)</title> |
| 84 | 93 | @ <link>%s(g.zBaseURL)</link> |
| 85 | 94 | @ <description>%s(zProjectDescr)</description> |
| 86 | 95 | @ <pubDate>%s(zPubDate)</pubDate> |
| 87 | 96 | @ <generator>Fossil version %s(MANIFEST_VERSION) %s(MANIFEST_DATE)</generator> |
| 88 | - db_prepare(&q, zSQL); | |
| 97 | + db_prepare(&q, blob_buffer(&bSQL)); | |
| 98 | + blob_reset( &bSQL ); | |
| 89 | 99 | while( db_step(&q)==SQLITE_ROW && nLine<=20 ){ |
| 90 | 100 | const char *zId = db_column_text(&q, 1); |
| 91 | 101 | const char *zDate = db_column_text(&q, 2); |
| 92 | 102 | const char *zCom = db_column_text(&q, 3); |
| 93 | 103 | const char *zAuthor = db_column_text(&q, 4); |
| 94 | 104 |
| --- src/rss.c | |
| +++ src/rss.c | |
| @@ -47,11 +47,14 @@ | |
| 47 | |
| 48 | void page_timeline_rss(void){ |
| 49 | Stmt q; |
| 50 | int nLine=0; |
| 51 | char *zPubDate, *zProjectName, *zProjectDescr, *zFreeProjectName=0; |
| 52 | const char zSQL[] = |
| 53 | @ SELECT |
| 54 | @ blob.rid, |
| 55 | @ uuid, |
| 56 | @ datetime(event.mtime), |
| 57 | @ coalesce(ecomment,comment), |
| @@ -58,12 +61,18 @@ | |
| 58 | @ coalesce(euser,user), |
| 59 | @ (SELECT count(*) FROM plink WHERE pid=blob.rid AND isprim), |
| 60 | @ (SELECT count(*) FROM plink WHERE cid=blob.rid) |
| 61 | @ FROM event, blob |
| 62 | @ WHERE blob.rid=event.objid |
| 63 | @ ORDER BY event.mtime DESC |
| 64 | ; |
| 65 | |
| 66 | cgi_set_content_type("application/rss+xml"); |
| 67 | |
| 68 | zProjectName = db_get("project-name", 0); |
| 69 | if( zProjectName==0 ){ |
| @@ -83,11 +92,12 @@ | |
| 83 | @ <title>%s(zProjectName)</title> |
| 84 | @ <link>%s(g.zBaseURL)</link> |
| 85 | @ <description>%s(zProjectDescr)</description> |
| 86 | @ <pubDate>%s(zPubDate)</pubDate> |
| 87 | @ <generator>Fossil version %s(MANIFEST_VERSION) %s(MANIFEST_DATE)</generator> |
| 88 | db_prepare(&q, zSQL); |
| 89 | while( db_step(&q)==SQLITE_ROW && nLine<=20 ){ |
| 90 | const char *zId = db_column_text(&q, 1); |
| 91 | const char *zDate = db_column_text(&q, 2); |
| 92 | const char *zCom = db_column_text(&q, 3); |
| 93 | const char *zAuthor = db_column_text(&q, 4); |
| 94 |
| --- src/rss.c | |
| +++ src/rss.c | |
| @@ -47,11 +47,14 @@ | |
| 47 | |
| 48 | void page_timeline_rss(void){ |
| 49 | Stmt q; |
| 50 | int nLine=0; |
| 51 | char *zPubDate, *zProjectName, *zProjectDescr, *zFreeProjectName=0; |
| 52 | Blob bSQL; |
| 53 | const char *zType = PD("y","all"); /* Type of events. All if NULL */ |
| 54 | blob_zero(&bSQL); |
| 55 | const char zSQL1[] = |
| 56 | @ SELECT |
| 57 | @ blob.rid, |
| 58 | @ uuid, |
| 59 | @ datetime(event.mtime), |
| 60 | @ coalesce(ecomment,comment), |
| @@ -58,12 +61,18 @@ | |
| 61 | @ coalesce(euser,user), |
| 62 | @ (SELECT count(*) FROM plink WHERE pid=blob.rid AND isprim), |
| 63 | @ (SELECT count(*) FROM plink WHERE cid=blob.rid) |
| 64 | @ FROM event, blob |
| 65 | @ WHERE blob.rid=event.objid |
| 66 | ; |
| 67 | blob_append( &bSQL, zSQL1, -1 ); |
| 68 | |
| 69 | if( zType[0]!='a' ){ |
| 70 | blob_appendf(&bSQL, " AND event.type=%Q", zType); |
| 71 | } |
| 72 | |
| 73 | blob_append( &bSQL, " ORDER BY event.mtime DESC", -1 ); |
| 74 | |
| 75 | cgi_set_content_type("application/rss+xml"); |
| 76 | |
| 77 | zProjectName = db_get("project-name", 0); |
| 78 | if( zProjectName==0 ){ |
| @@ -83,11 +92,12 @@ | |
| 92 | @ <title>%s(zProjectName)</title> |
| 93 | @ <link>%s(g.zBaseURL)</link> |
| 94 | @ <description>%s(zProjectDescr)</description> |
| 95 | @ <pubDate>%s(zPubDate)</pubDate> |
| 96 | @ <generator>Fossil version %s(MANIFEST_VERSION) %s(MANIFEST_DATE)</generator> |
| 97 | db_prepare(&q, blob_buffer(&bSQL)); |
| 98 | blob_reset( &bSQL ); |
| 99 | while( db_step(&q)==SQLITE_ROW && nLine<=20 ){ |
| 100 | const char *zId = db_column_text(&q, 1); |
| 101 | const char *zDate = db_column_text(&q, 2); |
| 102 | const char *zCom = db_column_text(&q, 3); |
| 103 | const char *zAuthor = db_column_text(&q, 4); |
| 104 |