Skip to content

Commit f148743

Browse files
committed
add posting functionality through steemconnect, routes/views/logic etc
1 parent 347d78b commit f148743

File tree

16 files changed

+156
-14
lines changed

16 files changed

+156
-14
lines changed

app.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,13 @@ let logger = require('morgan');
55
let cookieParser = require('cookie-parser');
66
let bodyParser = require('body-parser');
77
let session = require('express-session');
8+
let expressSanitized = require('express-sanitize-escape');
89

910
let index = require('./routes/index');
1011
let user = require('./routes/user');
1112
let auth = require('./routes/auth');
1213
let feed = require('./routes/feed');
14+
let post = require('./routes/post');
1315

1416
let config = require('./config')
1517

@@ -30,6 +32,7 @@ app.set('view engine', 'pug');
3032
app.use(logger('dev'));
3133
app.use(bodyParser.json());
3234
app.use(bodyParser.urlencoded({ extended: false }));
35+
app.use(expressSanitized.middleware());
3336
app.use(cookieParser());
3437
app.use(express.static(path.join(__dirname, 'public')));
3538

@@ -38,6 +41,8 @@ app.use('/user', user);
3841
app.use('/auth', auth);
3942
app.use('/logout', auth);
4043
app.use('/feed', feed);
44+
app.use('/post', post);
45+
app.use('/post/create-post', post);
4146

4247

4348
// catch 404 and forward to error handler

modules/steemconnect.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ let config = require('../config')
44
let steem = steemconnect2.Initialize({
55
app: config.auth.client_id,
66
callbackURL: config.auth.redirect_uri ,
7-
scope: ['login','vote']
7+
scope: ['login','vote', 'comment']
88
});
99

1010
module.exports = steem;

modules/util.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
module.exports.urlString = () => {
2+
let string = ''
3+
let allowedChars = "abcdefghijklmnopqrstuvwxyz0123456789";
4+
for (var i = 0; i < 32; i++){
5+
string += allowedChars.charAt(Math.floor(Math.random() * allowedChars.length));
6+
}
7+
return string;
8+
}

package-lock.json

Lines changed: 25 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
"cookie-parser": "~1.4.3",
1111
"debug": "~2.6.9",
1212
"express": "~4.15.5",
13+
"express-sanitize-escape": "^1.1.0",
1314
"express-session": "^1.15.6",
1415
"morgan": "~1.9.0",
1516
"pug": "2.0.0-beta11",

public/stylesheets/style.css

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
* {
2+
box-sizing: border-box;
3+
}
14
body {
25
padding: 50px;
36
font: 14px "Lucida Grande", Helvetica, Arial, sans-serif;
@@ -15,3 +18,28 @@ main {
1518
img {
1619
max-width: 100%;
1720
}
21+
22+
form {
23+
24+
}
25+
26+
input, label, textarea, button {
27+
margin: 15px 0;
28+
width: 100%;
29+
border-radius: 3px;
30+
padding: 5px;
31+
}
32+
33+
input, textarea {
34+
border: solid 1px #7b7b7b;
35+
}
36+
input:focus, textarea:focus {
37+
outline: 0;
38+
}
39+
40+
textarea {
41+
min-height: 400px;
42+
}
43+
button {
44+
cursor: pointer;
45+
}

routes/auth.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ let router = express.Router();
44

55
/* GET auth listing. */
66
router.get('/', (req, res, next) => {
7-
if (!req.query.access_token) {
7+
if (!req.query.access_token ) {
88
let uri = steem.getLoginURL();
99
console.log(uri);
1010
res.redirect(uri);

routes/post.js

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
let express = require('express');
2+
let util = require('../modules/util');
3+
let steem = require('../modules/steemconnect')
4+
let router = express.Router();
5+
6+
/* GET users listing. */
7+
router.get('/', (req, res, next) => {
8+
if (!req.session.steemconnect) {
9+
res.redirect('/auth')
10+
} else {
11+
console.log(req.session.steemconnect)
12+
res.render('post', {
13+
name: req.session.steemconnect.name
14+
});
15+
}
16+
});
17+
18+
router.post('/create-post', (req, res) => {
19+
if (!req.session.steemconnect) {
20+
res.redirect('/auth')
21+
} else {
22+
console.log(req.body)
23+
console.log(req.session.steemconnect.name)
24+
25+
let author = req.session.steemconnect.name
26+
let permlink = util.urlString()
27+
var tags = req.body.tags.split(',').map(item => item.trim());
28+
let primaryTag = tags[0] || 'photography'
29+
let otherTags = tags.slice(1)
30+
let title = req.body.title
31+
let body = req.body.post
32+
33+
steem.comment('', primaryTag, author, permlink, title, body, '', (err, steemResponse) => {
34+
console.log(err, steemResponse)
35+
let msg;
36+
if (err) {
37+
let msg = `Post Failed ${err}`
38+
} else {
39+
let msg = 'Posted To the Steem Network'
40+
}
41+
42+
res.render('post', {
43+
name: req.session.steemconnect.name,
44+
msg: msg
45+
})
46+
});
47+
48+
}
49+
});
50+
51+
module.exports = router;

routes/user.js

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,15 @@ router.get('/', (req, res, next) => {
66
if (!req.session.steemconnect) {
77
res.redirect('/auth')
88
} else {
9-
let userMetadata = JSON.parse(req.session.steemconnect.json_metadata)
9+
let userMetadata = {};
10+
if (req.session.steemconnect.json_metadata == '' || req.session.steemconnect.json_metadata === undefined) {
11+
userMetadata.profile = { about: ''}
12+
console.log(userMetadata)
13+
} else {
14+
userMetadata = JSON.parse(req.session.steemconnect.json_metadata)
15+
console.log(userMetadata)
16+
}
17+
1018
res.render('user', {
1119
name: req.session.steemconnect.name,
1220
about: userMetadata.profile.about,

views/create-post.pug

Whitespace-only changes.

0 commit comments

Comments
 (0)