git ssb

3+

ev / sdash



Tree: e0a6ca5dfb54b357d64d5b3e6aa2ca7a4dcc61b3

Files: e0a6ca5dfb54b357d64d5b3e6aa2ca7a4dcc61b3 / index.js

2912 bytesRaw
1var express = require('express');
2var pull = require('pull-stream');
3var client = require('ssb-client');
4var avatar = require('ssb-avatar');
5var markdown = require('marked');
6var favicon = require('serve-favicon');
7var moment = require('moment');
8
9var me = '@EMovhfIrFk4NihAKnRNhrfRaqIhBv1Wj8pTxJNgvCCY=.ed25519';
10
11var pin = '%6ogHrwUivc2Tn3nq87vepXfPDLMWIiEIu0rqGPl0Kkg=.sha256';
12
13var bloburl = 'http://localhost:8989/blobs/get/';
14
15var app = express();
16
17app.set('views', './layouts')
18app.set('view engine', 'jade');
19
20app.use(express.static('static'));
21app.use(favicon(__dirname + '/static/favicon.ico'));
22
23app.get('/:key', function (req, res) {
24 console.log(req.params);
25 client(function (err, sbot) {
26 if (err) {
27 throw err;
28 }
29 avatar(sbot, me, req.params.key, function (err, avatar){
30 if (err) {
31 throw err;
32 }
33 key = req.params.key;
34 res.render('profile', {avatar, bloburl, key});
35 })
36 })
37});
38
39
40app.get('/:key([^/]+/[^/]+)', function (req, res) {
41 console.log(req.params);
42 client(function (err, sbot) {
43 if (err) {
44 throw err;
45 }
46 avatar(sbot, me, req.params.key, function (err, avatar){
47 if (err) {
48 throw err;
49 }
50 key = req.params.key;
51 res.render('profile', {avatar, bloburl, key});
52 })
53 })
54});
55
56app.get('/', function (req, res) {
57 client(function (err, sbot) {
58 if (err) {
59 throw err;
60 }
61 avatar(sbot, me, me, function (err, avatar){
62 if (err) {
63 throw err;
64 }
65 name = avatar.name;
66 image = avatar.image;
67 })
68 pull(
69 sbot.query.read({query: [{$filter: { key: pin}}], limit: 1, reverse: true}),
70 pull.drain(function (data) {
71 pinned = data;
72 })
73 )
74 pull(
75 sbot.query.read({query: [{$filter: { value: { author: me, content: {type: 'post'}}}}], limit: 1, reverse: true}),
76 pull.drain(function (data) {
77 post = data;
78 })
79 )
80 pull(
81 sbot.query.read({query: [{$filter: { value: { author: me, content: {type: 'vote'}}}}], limit: 1, reverse: true}),
82 pull.drain(function (data) {
83 vote = data;
84 pull(
85 sbot.query.read({query: [{$filter: { key: data.value.content.vote.link}}]}),
86 pull.drain(function (reblog) {
87 avatar(sbot, me, reblog.value.author, function (err, avatar){
88 if (err) {
89 throw err;
90 }
91 reauthor = avatar;
92 gotPost();
93 })
94 redo = reblog;
95 })
96 )
97 })
98 )
99 pull(
100 sbot.query.read({query: [{$filter: { value: { author: me, content: {type: 'git-update'}}}}], limit: 1, reverse: true}),
101 pull.drain(function (data) {
102 gits = data;
103 })
104 )
105 });
106 function gotPost() {
107 res.render('index', { title: 'Evbogue.com', markdown, moment, bloburl});
108 }
109});
110
111
112app.listen('7000');
113
114
115

Built with git-ssb-web