Publish and read feed

This commit is contained in:
Rogerio Chaves 2020-04-04 16:01:11 +02:00
parent 621b31d27c
commit eddd22fadb
No known key found for this signature in database
GPG Key ID: E6AF5440509B1D94
4 changed files with 46 additions and 10 deletions

1
app/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
node_modules

View File

@ -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();
}); });

View File

@ -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;

View File

@ -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>