Commit b422fc1e8e938b340e5961d30a2d16edb54dd647
show channel when rendering post, show all followed channels in user-feed
Anders Rune Jensen committed on 4/15/2017, 7:48:09 PMParent: 2ee923fecc38c7bee0a0f0520fae62c565d18e63
Files changed
index.js | changed |
index.js | |||
---|---|---|---|
@@ -142,28 +142,42 @@ | |||
142 | 142 … | var feedId = url.substring(url.lastIndexOf('user-feed/')+10, 100) | |
143 | 143 … | console.log("serving user feed: " + feedId) | |
144 | 144 … | ||
145 | 145 … | var following = [] | |
146 … | + var channelSubscriptions = [] | ||
146 | 147 … | ||
147 | 148 … | pull( | |
148 | 149 … | sbot.createUserStream({ id: feedId }), | |
149 | 150 … | pull.filter((msg) => { | |
150 | - return !msg.value || msg.value.content.type == 'contact' | ||
151 … | + return !msg.value || | ||
152 … | + msg.value.content.type == 'contact' || | ||
153 … | + (msg.value.content.type == 'channel' && | ||
154 … | + typeof msg.value.content.subscribed != 'undefined') | ||
151 | 155 … | }), | |
152 | 156 … | pull.collect(function (err, msgs) { | |
153 | 157 … | msgs.forEach((msg) => { | |
154 | - if (msg.value.content.following) | ||
155 | - following[msg.value.content.contact] = 1 | ||
156 | - else | ||
157 | - delete following[msg.value.content.contact] | ||
158 … | + if (msg.value.content.type == 'contact') | ||
159 … | + { | ||
160 … | + if (msg.value.content.following) | ||
161 … | + following[msg.value.content.contact] = 1 | ||
162 … | + else | ||
163 … | + delete following[msg.value.content.contact] | ||
164 … | + } | ||
165 … | + else // channel subscription | ||
166 … | + { | ||
167 … | + if (msg.value.content.subscribed) | ||
168 … | + channelSubscriptions[msg.value.content.channel] = 1 | ||
169 … | + else | ||
170 … | + delete following[msg.value.content.channel] | ||
171 … | + } | ||
158 | 172 … | }) | |
159 | 173 … | ||
160 | - serveFeeds(req, res, following, feedId) | ||
174 … | + serveFeeds(req, res, following, channelSubscriptions, feedId) | ||
161 | 175 … | }) | |
162 | 176 … | ) | |
163 | 177 … | } | |
164 | 178 … | ||
165 | - function serveFeeds(req, res, following, feedId) { | ||
179 … | + function serveFeeds(req, res, following, channelSubscriptions, feedId) { | ||
166 | 180 … | var opts = defaultOpts | |
167 | 181 … | ||
168 | 182 … | opts.marked = { | |
169 | 183 … | gfm: true, | |
@@ -180,9 +194,11 @@ | |||
180 | 194 … | ||
181 | 195 … | pull( | |
182 | 196 … | sbot.createLogStream({ reverse: true, limit: 1000 }), | |
183 | 197 … | pull.filter((msg) => { | |
184 | - return !msg.value || msg.value.author in following | ||
198 … | + return !msg.value || | ||
199 … | + (msg.value.author in following || | ||
200 … | + msg.value.content.channel in channelSubscriptions) | ||
185 | 201 … | }), | |
186 | 202 … | pull.filter((msg) => { // channel subscription | |
187 | 203 … | return !msg.value.content.subscribed | |
188 | 204 … | }), | |
@@ -228,8 +244,11 @@ | |||
228 | 244 … | sbot.createLogStream({ reverse: true, limit: 2000 }), | |
229 | 245 … | pull.filter((msg) => { | |
230 | 246 … | return !msg.value || msg.value.content.channel == channelId | |
231 | 247 … | }), | |
248 … | + pull.filter((msg) => { // channel subscription | ||
249 … | + return !msg.value.content.subscribed | ||
250 … | + }), | ||
232 | 251 … | pull.collect(function (err, logs) { | |
233 | 252 … | if (err) return respond(res, 500, err.stack || err) | |
234 | 253 … | res.writeHead(200, { | |
235 | 254 … | 'Content-Type': ctype("html") | |
@@ -560,12 +579,13 @@ | |||
560 | 579 … | } | |
561 | 580 … | ||
562 | 581 … | function render(opts, c) | |
563 | 582 … | { | |
564 | - if (c.type === 'post') | ||
565 | - return renderPost(opts, c) | ||
566 | - else if (c.type == 'vote' && c.vote.expression == 'Dig') { | ||
583 … | + if (c.type === 'post') { | ||
567 | 584 … | var channel = c.channel ? ' in #' + c.channel : '' | |
585 … | + return channel + renderPost(opts, c) | ||
586 … | + } else if (c.type == 'vote' && c.vote.expression == 'Dig') { | ||
587 … | + var channel = c.channel ? ' in #' + c.channel : '' | ||
568 | 588 … | var linkedText = 'this' | |
569 | 589 … | if (typeof c.vote.linkedText != 'undefined') | |
570 | 590 … | linkedText = c.vote.linkedText.substring(0, 100) | |
571 | 591 … | return ' dug ' + '<a href="/' + c.vote.link + '">' + linkedText + '</a>' + channel |
Built with git-ssb-web