Bläddra i källkod

Improve search and list error messages

Zed 4 år sedan
förälder
incheckning
1ce6ff2b2f
2 ändrade filer med 19 tillägg och 13 borttagningar
  1. 2 2
      src/routes/list.nim
  2. 17 11
      src/routes/rss.nim

+ 2 - 2
src/routes/list.nim

@@ -9,8 +9,8 @@ import ../views/[general, timeline, list]
 export getListTimeline, getGraphList
 
 template respList*(list, timeline, title, vnode: typed) =
-  if list.id.len == 0:
-    resp Http404, showError("List \"" & @"id" & "\" not found", cfg)
+  if list.id.len == 0 or list.name.len == 0:
+    resp Http404, showError("List " & @"id" & " not found", cfg)
 
   let
     html = renderList(vnode, timeline.query, list)

+ 17 - 11
src/routes/rss.nim

@@ -36,12 +36,18 @@ proc timelineRss*(req: Request; cfg: Config; query: Query): Future[Rss] {.async.
     return Rss(feed: profile.username, cursor: "suspended")
 
   if profile.fullname.len > 0:
-    let rss = compress renderTimelineRss(timeline, profile, cfg, multi=(names.len > 1))
+    let rss = compress renderTimelineRss(timeline, profile, cfg,
+                                         multi=(names.len > 1))
     return Rss(feed: rss, cursor: timeline.bottom)
 
-template respRss*(rss) =
+template respRss*(rss, page) =
   if rss.cursor.len == 0:
-    resp Http404, showError("User \"" & @"name" & "\" not found", cfg)
+    let info = case page
+               of "User": " \"$1\" " % @"name"
+               of "List": " $1 " % @"id"
+               else: " "
+
+    resp Http404, showError(page & info & "not found", cfg)
   elif rss.cursor.len == 9 and rss.cursor == "suspended":
     resp Http404, showError(getSuspended(rss.feed), cfg)
 
@@ -66,7 +72,7 @@ proc createRssRouter*(cfg: Config) =
 
       var rss = await getCachedRss(key)
       if rss.cursor.len > 0:
-        respRss(rss)
+        respRss(rss, "Search")
 
       let tweets = await getSearch[Tweet](query, cursor)
       rss.cursor = tweets.bottom
@@ -74,7 +80,7 @@ proc createRssRouter*(cfg: Config) =
                                           genQueryUrl(query), cfg)
 
       await cacheRss(key, rss)
-      respRss(rss)
+      respRss(rss, "Search")
 
     get "/@name/rss":
       cond cfg.enableRss
@@ -86,12 +92,12 @@ proc createRssRouter*(cfg: Config) =
 
       var rss = await getCachedRss(key)
       if rss.cursor.len > 0:
-        respRss(rss)
+        respRss(rss, "User")
 
       rss = await timelineRss(request, cfg, Query(fromUser: @[name]))
 
       await cacheRss(key, rss)
-      respRss(rss)
+      respRss(rss, "User")
 
     get "/@name/@tab/rss":
       cond cfg.enableRss
@@ -112,12 +118,12 @@ proc createRssRouter*(cfg: Config) =
 
       var rss = await getCachedRss(key)
       if rss.cursor.len > 0:
-        respRss(rss)
+        respRss(rss, "User")
 
       rss = await timelineRss(request, cfg, query)
 
       await cacheRss(key, rss)
-      respRss(rss)
+      respRss(rss, "User")
 
     get "/@name/lists/@slug/rss":
       cond cfg.enableRss
@@ -146,7 +152,7 @@ proc createRssRouter*(cfg: Config) =
 
       var rss = await getCachedRss(key)
       if rss.cursor.len > 0:
-        respRss(rss)
+        respRss(rss, "List")
 
       let
         list = await getCachedList(id=(@"id"))
@@ -155,4 +161,4 @@ proc createRssRouter*(cfg: Config) =
       rss.feed = compress renderListRss(timeline.content, list, cfg)
 
       await cacheRss(key, rss)
-      respRss(rss)
+      respRss(rss, "List")