diff --git a/index.js b/index.js
index bb9a1b2..88cf67e 100644
--- a/index.js
+++ b/index.js
@@ -11,15 +11,15 @@ var memo = require('asyncmemo')
var lru = require('lrucache')
var serveEmoji = require('emoji-server')()
var {
- MdRenderer,
- renderEmoji,
- formatMsgs,
- wrapPage,
- renderThread,
- renderAbout,
- renderShowAll,
- renderRssItem,
- wrapRss,
+ MdRenderer,
+ renderEmoji,
+ formatMsgs,
+ wrapPage,
+ renderThread,
+ renderAbout,
+ renderShowAll,
+ renderRssItem,
+ wrapRss,
} = require('./render');
var appHash = hash([fs.readFileSync(__filename)])
@@ -52,16 +52,16 @@ exports.init = function (sbot, config) {
}
defaultOpts.marked = {
- gfm: true,
- mentions: true,
- tables: true,
- breaks: true,
- pedantic: false,
- sanitize: true,
- smartLists: true,
- smartypants: false,
- emoji: renderEmoji,
- renderer: new MdRenderer(defaultOpts)
+ gfm: true,
+ mentions: true,
+ tables: true,
+ breaks: true,
+ pedantic: false,
+ sanitize: true,
+ smartLists: true,
+ smartypants: false,
+ emoji: renderEmoji,
+ renderer: new MdRenderer(defaultOpts)
}
var getMsg = memo({cache: lru(100)}, getMsgWithValue, sbot)
@@ -96,146 +96,146 @@ exports.init = function (sbot, config) {
}
function serveFeed(req, res, feedId, ext) {
- console.log("serving feed: " + feedId)
+ console.log("serving feed: " + feedId)
- var showAll = req.url.endsWith("?showAll");
+ var showAll = req.url.endsWith("?showAll");
- getAbout(feedId, function (err, about) {
+ getAbout(feedId, function (err, about) {
+ if (err) return respond(res, 500, err.stack || err)
+
+ function render() {
+ switch (ext) {
+ case 'rss':
+ return pull(
+ // formatMsgs(feedId, ext, defaultOpts)
+ renderRssItem(defaultOpts), wrapRss(about.name, defaultOpts)
+ );
+ default:
+ return pull(
+ renderAbout(defaultOpts, about,
+ renderShowAll(showAll, req.url)), wrapPage(about.name)
+ );
+ }
+ }
+
+ pull(
+ sbot.createUserStream({ id: feedId, reverse: true, limit: showAll ? -1 : (ext == 'rss' ? 25 : 10) }),
+ pull.collect(function (err, logs) {
if (err) return respond(res, 500, err.stack || err)
-
- function render() {
- switch (ext) {
- case 'rss':
- return pull(
- // formatMsgs(feedId, ext, defaultOpts)
- renderRssItem(defaultOpts), wrapRss(about.name, defaultOpts)
- );
- default:
- return pull(
- renderAbout(defaultOpts, about,
- renderShowAll(showAll, req.url)), wrapPage(about.name)
- );
- }
- }
-
+ res.writeHead(200, {
+ 'Content-Type': ctype(ext)
+ })
pull(
- sbot.createUserStream({ id: feedId, reverse: true, limit: showAll ? -1 : (ext == 'rss' ? 25 :10) }),
- pull.collect(function (err, logs) {
- if (err) return respond(res, 500, err.stack || err)
- res.writeHead(200, {
- 'Content-Type': ctype(ext)
- })
- pull(
- pull.values(logs),
- paramap(addAuthorAbout, 8),
- paramap(addFollowAbout, 8),
- paramap(addVoteMessage, 8),
- paramap(addGitLinks, 8),
- render(),
- toPull(res, function (err) {
- if (err) console.error('[viewer]', err)
- })
- )
- })
+ pull.values(logs),
+ paramap(addAuthorAbout, 8),
+ paramap(addFollowAbout, 8),
+ paramap(addVoteMessage, 8),
+ paramap(addGitLinks, 8),
+ render(),
+ toPull(res, function (err) {
+ if (err) console.error('[viewer]', err)
+ })
)
- })
+ })
+ )
+ })
}
function serveUserFeed(req, res, url) {
- var feedId = url.substring(url.lastIndexOf('user-feed/')+10, 100)
- console.log("serving user feed: " + feedId)
+ var feedId = url.substring(url.lastIndexOf('user-feed/')+10, 100)
+ console.log("serving user feed: " + feedId)
- var following = []
- var channelSubscriptions = []
-
- getAbout(feedId, function (err, about) {
- pull(
- sbot.createUserStream({ id: feedId }),
- pull.filter((msg) => {
- return !msg.value ||
- msg.value.content.type == 'contact' ||
- (msg.value.content.type == 'channel' &&
- typeof msg.value.content.subscribed != 'undefined')
- }),
- pull.collect(function (err, msgs) {
- msgs.forEach((msg) => {
- if (msg.value.content.type == 'contact')
- {
- if (msg.value.content.following)
- following[msg.value.content.contact] = 1
- else
- delete following[msg.value.content.contact]
- }
- else // channel subscription
- {
- if (msg.value.content.subscribed)
- channelSubscriptions[msg.value.content.channel] = 1
- else
- delete channelSubscriptions[msg.value.content.channel]
- }
- })
-
- serveFeeds(req, res, following, channelSubscriptions, feedId, 'user feed ' + (about ? about.name : ""))
- })
- )
- })
+ var following = []
+ var channelSubscriptions = []
+
+ getAbout(feedId, function (err, about) {
+ pull(
+ sbot.createUserStream({ id: feedId }),
+ pull.filter((msg) => {
+ return !msg.value ||
+ msg.value.content.type == 'contact' ||
+ (msg.value.content.type == 'channel' &&
+ typeof msg.value.content.subscribed != 'undefined')
+ }),
+ pull.collect(function (err, msgs) {
+ msgs.forEach((msg) => {
+ if (msg.value.content.type == 'contact')
+ {
+ if (msg.value.content.following)
+ following[msg.value.content.contact] = 1
+ else
+ delete following[msg.value.content.contact]
+ }
+ else // channel subscription
+ {
+ if (msg.value.content.subscribed)
+ channelSubscriptions[msg.value.content.channel] = 1
+ else
+ delete channelSubscriptions[msg.value.content.channel]
+ }
+ })
+
+ serveFeeds(req, res, following, channelSubscriptions, feedId, 'user feed ' + (about ? about.name : ""))
+ })
+ )
+ })
}
function serveFeeds(req, res, following, channelSubscriptions, feedId, name) {
- pull(
- sbot.createLogStream({ reverse: true, limit: 5000 }),
- pull.filter((msg) => {
- return !msg.value ||
- (msg.value.author in following ||
- msg.value.content.channel in channelSubscriptions)
- }),
- pull.take(150),
- pull.collect(function (err, logs) {
- if (err) return respond(res, 500, err.stack || err)
- res.writeHead(200, {
- 'Content-Type': ctype("html")
- })
- pull(
- pull.values(logs),
- paramap(addAuthorAbout, 8),
- paramap(addFollowAbout, 8),
- paramap(addVoteMessage, 8),
- paramap(addGitLinks, 8),
- pull(renderThread(defaultOpts), wrapPage(name)),
- toPull(res, function (err) {
- if (err) console.error('[viewer]', err)
- })
- )
+ pull(
+ sbot.createLogStream({ reverse: true, limit: 5000 }),
+ pull.filter((msg) => {
+ return !msg.value ||
+ (msg.value.author in following ||
+ msg.value.content.channel in channelSubscriptions)
+ }),
+ pull.take(150),
+ pull.collect(function (err, logs) {
+ if (err) return respond(res, 500, err.stack || err)
+ res.writeHead(200, {
+ 'Content-Type': ctype("html")
+ })
+ pull(
+ pull.values(logs),
+ paramap(addAuthorAbout, 8),
+ paramap(addFollowAbout, 8),
+ paramap(addVoteMessage, 8),
+ paramap(addGitLinks, 8),
+ pull(renderThread(defaultOpts), wrapPage(name)),
+ toPull(res, function (err) {
+ if (err) console.error('[viewer]', err)
})
- )
+ )
+ })
+ )
}
function serveChannel(req, res, url) {
- var channelId = url.substring(url.lastIndexOf('channel/')+8, 100)
- console.log("serving channel: " + channelId)
+ var channelId = url.substring(url.lastIndexOf('channel/')+8, 100)
+ console.log("serving channel: " + channelId)
- var showAll = req.url.endsWith("?showAll")
-
- pull(
- sbot.query.read({ limit: showAll ? 300 : 10, reverse: true, query: [{$filter: { value: { content: { channel: channelId }}}}]}),
- pull.collect(function (err, logs) {
- if (err) return respond(res, 500, err.stack || err)
- res.writeHead(200, {
- 'Content-Type': ctype("html")
- })
- pull(
- pull.values(logs),
- paramap(addAuthorAbout, 8),
- paramap(addVoteMessage, 8),
- pull(renderThread(defaultOpts, '',
- renderShowAll(showAll, req.url)),
- wrapPage('#' + channelId)),
- toPull(res, function (err) {
- if (err) console.error('[viewer]', err)
- })
- )
+ var showAll = req.url.endsWith("?showAll")
+
+ pull(
+ sbot.query.read({ limit: showAll ? 300 : 10, reverse: true, query: [{$filter: { value: { content: { channel: channelId }}}}]}),
+ pull.collect(function (err, logs) {
+ if (err) return respond(res, 500, err.stack || err)
+ res.writeHead(200, {
+ 'Content-Type': ctype("html")
+ })
+ pull(
+ pull.values(logs),
+ paramap(addAuthorAbout, 8),
+ paramap(addVoteMessage, 8),
+ pull(renderThread(defaultOpts, '',
+ renderShowAll(showAll, req.url)),
+ wrapPage('#' + channelId)),
+ toPull(res, function (err) {
+ if (err) console.error('[viewer]', err)
})
- )
+ )
+ })
+ )
}
function serveId(req, res, id, ext, query) {
@@ -297,25 +297,25 @@ exports.init = function (sbot, config) {
}
function addFollowAbout(msg, cb) {
- if (msg.value.content.contact)
- getAbout(msg.value.content.contact, function (err, about) {
- if (err) return cb(err)
- msg.value.content.contactAbout = about
- cb(null, msg)
- })
- else
- cb(null, msg)
+ if (msg.value.content.contact)
+ getAbout(msg.value.content.contact, function (err, about) {
+ if (err) return cb(err)
+ msg.value.content.contactAbout = about
+ cb(null, msg)
+ })
+ else
+ cb(null, msg)
}
function addVoteMessage(msg, cb) {
- if (msg.value.content.type == 'vote' && msg.value.content.vote.link[0] == '%')
- getMsg(msg.value.content.vote.link, function (err, linkedMsg) {
- if (linkedMsg)
- msg.value.content.vote.linkedText = linkedMsg.value.content.text
- cb(null, msg)
- })
- else
- cb(null, msg)
+ if (msg.value.content.type == 'vote' && msg.value.content.vote.link[0] == '%')
+ getMsg(msg.value.content.vote.link, function (err, linkedMsg) {
+ if (linkedMsg)
+ msg.value.content.vote.linkedText = linkedMsg.value.content.text
+ cb(null, msg)
+ })
+ else
+ cb(null, msg)
}
function addAuthorAbout(msg, cb) {
@@ -327,20 +327,20 @@ exports.init = function (sbot, config) {
}
function addGitLinks(msg, cb) {
- if (msg.value.content.type == 'git-update')
- getMsg(msg.value.content.repo, function (err, gitRepo) {
- if (gitRepo)
- msg.value.content.repoName = gitRepo.value.content.name
- cb(null, msg)
- })
- else if (msg.value.content.type == 'issue')
- getMsg(msg.value.content.project, function (err, gitRepo) {
- if (gitRepo)
- msg.value.content.repoName = gitRepo.value.content.name
- cb(null, msg)
- })
- else
- cb(null, msg)
+ if (msg.value.content.type == 'git-update')
+ getMsg(msg.value.content.repo, function (err, gitRepo) {
+ if (gitRepo)
+ msg.value.content.repoName = gitRepo.value.content.name
+ cb(null, msg)
+ })
+ else if (msg.value.content.type == 'issue')
+ getMsg(msg.value.content.project, function (err, gitRepo) {
+ if (gitRepo)
+ msg.value.content.repoName = gitRepo.value.content.name
+ cb(null, msg)
+ })
+ else
+ cb(null, msg)
}
}
diff --git a/render.js b/render.js
index a6b4d87..d19fc32 100644
--- a/render.js
+++ b/render.js
@@ -515,8 +515,8 @@ function renderDefault(c) {
}
function renderShowAll(showAll, url) {
- if (showAll)
- return '';
- else
- return '
' + h('a', { href : url + '?showAll' }, 'Show whole feed').outerHTML;
+ if (showAll)
+ return '';
+ else
+ return '
' + h('a', { href : url + '?showAll' }, 'Show whole feed').outerHTML;
}