Publish and read feed
This commit is contained in:
parent
621b31d27c
commit
eddd22fadb
|
@ -0,0 +1 @@
|
||||||
|
node_modules
|
13
app/index.js
13
app/index.js
|
@ -1,6 +1,13 @@
|
||||||
let server = require("./lib/express");
|
let server;
|
||||||
require("./lib/ssb");
|
require("./lib/ssb");
|
||||||
require("./lib/electron");
|
|
||||||
|
setTimeout(() => {
|
||||||
|
server = require("./lib/express");
|
||||||
|
}, 500);
|
||||||
|
|
||||||
|
setTimeout(() => {
|
||||||
|
require("./lib/electron");
|
||||||
|
}, 1000);
|
||||||
|
|
||||||
if (process.env.NODE_ENV !== "production") {
|
if (process.env.NODE_ENV !== "production") {
|
||||||
const chokidar = require("chokidar");
|
const chokidar = require("chokidar");
|
||||||
|
@ -13,7 +20,7 @@ if (process.env.NODE_ENV !== "production") {
|
||||||
Object.keys(require.cache).forEach((id) => {
|
Object.keys(require.cache).forEach((id) => {
|
||||||
if (/[\/\\]lib[\/\\]/.test(id)) delete require.cache[id];
|
if (/[\/\\]lib[\/\\]/.test(id)) delete require.cache[id];
|
||||||
});
|
});
|
||||||
server.close();
|
if (server) server.close();
|
||||||
server = require("./lib/express");
|
server = require("./lib/express");
|
||||||
BrowserWindow.getAllWindows()[0].reload();
|
BrowserWindow.getAllWindows()[0].reload();
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,22 +1,45 @@
|
||||||
const express = require("express");
|
const express = require("express");
|
||||||
const app = express();
|
const app = express();
|
||||||
const port = 3000;
|
const port = 3000;
|
||||||
|
const bodyParser = require("body-parser");
|
||||||
|
const pull = require("pull-stream");
|
||||||
|
const Client = require("ssb-client");
|
||||||
|
|
||||||
|
let ssbServer;
|
||||||
|
let ssbKeys;
|
||||||
|
Client((err, server) => {
|
||||||
|
if (err) throw err;
|
||||||
|
ssbServer = server;
|
||||||
|
ssbServer.whoami((err, keys) => {
|
||||||
|
if (err) throw err;
|
||||||
|
ssbKeys = keys;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
app.use(bodyParser.json());
|
||||||
|
app.use(bodyParser.urlencoded({ extended: true }));
|
||||||
app.set("view engine", "ejs");
|
app.set("view engine", "ejs");
|
||||||
|
|
||||||
app.use(express.static("public"));
|
app.use(express.static("public"));
|
||||||
|
|
||||||
app.get("/", (_req, res) => {
|
app.get("/", (_req, res) => {
|
||||||
res.render("index", { message: "Hello there21!" });
|
pull(
|
||||||
|
ssbServer.createFeedStream(),
|
||||||
|
pull.collect((err, msgs) => {
|
||||||
|
const posts = msgs.map((x) => x.value.content);
|
||||||
|
|
||||||
|
res.render("index", { posts, profile: ssbKeys });
|
||||||
|
})
|
||||||
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
app.post("/publish", (req, res) => {
|
app.post("/publish", (req, res) => {
|
||||||
console.log("req.body", req.body);
|
ssbServer.publish({ type: "post", text: req.body.message }, (err, msg) => {
|
||||||
res.redirect("/");
|
res.redirect("/");
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
const server = app.listen(port, () =>
|
const expressServer = app.listen(port, () =>
|
||||||
console.log(`Example app listening at http://localhost:${port}`)
|
console.log(`Example app listening at http://localhost:${port}`)
|
||||||
);
|
);
|
||||||
|
|
||||||
module.exports = server;
|
module.exports = expressServer;
|
||||||
|
|
|
@ -10,6 +10,11 @@
|
||||||
<textarea name="message"></textarea>
|
<textarea name="message"></textarea>
|
||||||
<input type="submit" value="Send" />
|
<input type="submit" value="Send" />
|
||||||
</form>
|
</form>
|
||||||
<h1><%= message %></h1>
|
<p>
|
||||||
|
Whoami: <%= profile.id %>
|
||||||
|
</p>
|
||||||
|
<% posts.map(post => { %>
|
||||||
|
<div><%= post.text %></div>
|
||||||
|
<% }) %>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
Loading…
Reference in New Issue