aboutsummaryrefslogtreecommitdiff
path: root/src/routes/index.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/routes/index.js')
-rw-r--r--src/routes/index.js41
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
106router.get("/search", authenticateToken, async (req, res) => { 106router.get("/search", authenticateToken, async (req, res) => {
107 res.render("search", { user: req.user });
108});
109
110// GET /sub-search
111router.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
150router.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
145router.get("/dashboard", authenticateToken, async (req, res) => { 184router.get("/dashboard", authenticateToken, async (req, res) => {
146 let invites = null; 185 let invites = null;