@@ -19,8 +19,8 @@ proc getQuery*(request: Request; tab, name: string): Query =
19
19
of " search" : initQuery (params (request), name= name)
20
20
else : Query (fromUser: @ [name])
21
21
22
- proc fetchSingleTimeline * (after: string ; query: Query ; skipRail= false ):
23
- Future [(Profile , Timeline , PhotoRail )] {.async .} =
22
+ proc fetchSingleTimeline * (after: string ; query: Query ; skipRail= false , skipRecommendations = false ):
23
+ Future [(Profile , Timeline , PhotoRail , Recommendations )] {.async .} =
24
24
let name = query.fromUser[0 ]
25
25
26
26
var
@@ -52,6 +52,13 @@ proc fetchSingleTimeline*(after: string; query: Query; skipRail=false):
52
52
else :
53
53
rail = getCachedPhotoRail (name)
54
54
55
+ var recommendations: Future [Recommendations ]
56
+ if skipRecommendations:
57
+ recommendations = newFuture [Recommendations ]()
58
+ recommendations.complete (@ [])
59
+ else :
60
+ recommendations = getCachedRecommendations (profileId)
61
+
55
62
var timeline =
56
63
case query.kind
57
64
of posts: await getTimeline (profileId, after)
@@ -76,7 +83,7 @@ proc fetchSingleTimeline*(after: string; query: Query; skipRail=false):
76
83
if fetched and not found:
77
84
await cache (profile)
78
85
79
- return (profile, timeline, await rail)
86
+ return (profile, timeline, await rail, await recommendations )
80
87
81
88
proc get * (req: Request ; key: string ): string =
82
89
params (req).getOrDefault (key)
@@ -89,12 +96,12 @@ proc showTimeline*(request: Request; query: Query; cfg: Config; prefs: Prefs;
89
96
html = renderTweetSearch (timeline, prefs, getPath ())
90
97
return renderMain (html, request, cfg, prefs, " Multi" , rss= rss)
91
98
92
- var (p, t, r) = await fetchSingleTimeline (after, query)
99
+ var (p, t, r, rc ) = await fetchSingleTimeline (after, query)
93
100
94
101
if p.suspended: return showError (getSuspended (p.username), cfg)
95
102
if p.id.len == 0 : return
96
103
97
- let pHtml = renderProfile (p, t, r, prefs, getPath ())
104
+ let pHtml = renderProfile (p, t, r, rc, prefs, getPath ())
98
105
result = renderMain (pHtml, request, cfg, prefs, pageTitle (p), pageDesc (p),
99
106
rss= rss, images = @ [p.getUserpic (" _400x400" )],
100
107
banner= p.banner)
@@ -127,7 +134,7 @@ proc createTimelineRouter*(cfg: Config) =
127
134
timeline.beginning = true
128
135
resp $ renderTweetSearch (timeline, prefs, getPath ())
129
136
else :
130
- var (_, timeline, _) = await fetchSingleTimeline (after, query, skipRail= true )
137
+ var (_, timeline, _, _ ) = await fetchSingleTimeline (after, query, skipRail= true , skipRecommendations = true )
131
138
if timeline.content.len == 0 : resp Http404
132
139
timeline.beginning = true
133
140
resp $ renderTimelineTweets (timeline, prefs, getPath ())
0 commit comments