diff options
Diffstat (limited to 'src/routes/index.js')
-rw-r--r-- | src/routes/index.js | 41 |
1 files changed, 40 insertions, 1 deletions
diff --git a/src/routes/index.js b/src/routes/index.js index 0dafd3e..604cabb 100644 --- a/src/routes/index.js +++ b/src/routes/index.js | |||
@@ -102,8 +102,13 @@ router.get("/subs", authenticateToken, async (req, res) => { | |||
102 | res.render("subs", { subs, user: req.user }); | 102 | res.render("subs", { subs, user: req.user }); |
103 | }); | 103 | }); |
104 | 104 | ||
105 | // GET /search-subreddits | 105 | // GET /search |
106 | router.get("/search", authenticateToken, async (req, res) => { | 106 | router.get("/search", authenticateToken, async (req, res) => { |
107 | res.render("search", { user: req.user }); | ||
108 | }); | ||
109 | |||
110 | // GET /sub-search | ||
111 | router.get("/sub-search", authenticateToken, async (req, res) => { | ||
107 | if (!req.query || !req.query.q) { | 112 | if (!req.query || !req.query.q) { |
108 | res.render("sub-search", { user: req.user }); | 113 | res.render("sub-search", { user: req.user }); |
109 | } else { | 114 | } else { |
@@ -141,6 +146,40 @@ router.get("/search", authenticateToken, async (req, res) => { | |||
141 | } | 146 | } |
142 | }); | 147 | }); |
143 | 148 | ||
149 | // GET /post-search | ||
150 | router.get("/post-search", authenticateToken, async (req, res) => { | ||
151 | if (!req.query || !req.query.q) { | ||
152 | res.render("post-search", { user: req.user }); | ||
153 | } else { | ||
154 | const { q, options } = req.query.q.split(/\s+/).reduce( | ||
155 | (acc, word) => { | ||
156 | if (word.startsWith("+")) { | ||
157 | acc.options.push(word.slice(1)); | ||
158 | } else { | ||
159 | acc.q += `${word} `; | ||
160 | } | ||
161 | return acc; | ||
162 | }, | ||
163 | { options: [], q: "" }, | ||
164 | ); | ||
165 | |||
166 | const { items, after } = await G.searchSubmissions(q, { | ||
167 | include_over_18: options.includes("nsfw"), | ||
168 | }); | ||
169 | const message = | ||
170 | items.length === 0 | ||
171 | ? "no results found" | ||
172 | : `showing ${items.length} results`; | ||
173 | res.render("post-search", { | ||
174 | items, | ||
175 | after, | ||
176 | message, | ||
177 | user: req.user, | ||
178 | original_query: req.query.q, | ||
179 | }); | ||
180 | } | ||
181 | }); | ||
182 | |||
144 | // GET /dashboard | 183 | // GET /dashboard |
145 | router.get("/dashboard", authenticateToken, async (req, res) => { | 184 | router.get("/dashboard", authenticateToken, async (req, res) => { |
146 | let invites = null; | 185 | let invites = null; |