multi-account-post-schedule.../routes/index.js

145 lines
3.6 KiB
JavaScript

var express = require('express');
var router = express.Router();
var sqlite3 = require('sqlite3');
const database_masto = "mastodon_multi_accounts.db"
/* GET home page. */
router.get('/', function (req, res, next) {
res.render('index', {title: 'Express'});
});
// publier un message avec un certain compte
router.get('/publish', function (req, res, next) {
res.render('index', {title: 'Express'});
});
const connect = require('@databases/sqlite');
const {sql} = require('@databases/sqlite');
const db = connect(database_masto);
async function prepare() {
await db.query(sql`
CREATE TABLE IF NOT EXISTS app_data (
id VARCHAR NOT NULL PRIMARY KEY,
value VARCHAR NOT NULL
);
`);
}
const prepared = prepare();
function createDatabase() {
var newdb = new sqlite3.Database(database_masto, sqlite3.OPEN_READWRITE | sqlite3.OPEN_CREATE, (err) => {
createTables(newdb);
})
}
function createTables(newdb) {
newdb.exec(`
create table posts_scheduled
(
action_id int primary key not null,
post_username text not null,
content text not null,
medias text,
date_schedule datetime
);
insert into posts_scheduled
values (NULL, "modominem", "un message d'example", "un jour")
;
`, () => {
getAllPosts(newdb);
});
}
function getAllPosts(db) {
db.all(`
select *
from posts_scheduled p orderyby p.action_id desc`, "les posts", (err, rows) => {
if (rows) {
rows.forEach(row => {
console.log(row.post_username + "\t" +
row.content + "\t" +
row.medias);
});
} else {
console.log('no rows')
}
});
}
router.get('/init-db', function (req, res, next) {
var db = new sqlite3.Database(database_masto, sqlite3.OPEN_READWRITE | sqlite3.OPEN_CREATE, (err) => {
console.log('got to create db')
createDatabase()
}
)
res.render('created_db', {});
});
router.get('/list', function (req, res, next) {
var db = new sqlite3.Database('../masto_posts.db', sqlite3.OPEN_READWRITE | sqlite3.OPEN_CREATE, (err) => {
if (err && err.code == "SQLITE_CANTOPEN") {
createDatabase();
return;
} else if (err) {
console.log("Getting error " + err);
exit(1);
}
getAllPosts(db);
});
let posts_list = [{
action_id: 1,
post_username: "modominem",
content: "demo post list",
medias: "media file name from assets folder",
date_schedule: "2022-07-07 "
}]
getAllPosts(db)
res.render('database', {posts_list: posts_list});
});
router.get('/add-to-db-example', function (req, res, next) {
var db = new sqlite3.Database('../masto_posts.db',
sqlite3.OPEN_READWRITE | sqlite3.OPEN_CREATE,
(err) => {
if (err && err.code == "SQLITE_CANTOPEN") {
createDatabase();
return;
} else if (err) {
console.log("Getting error " + err);
exit(1);
}
db.exec(`
insert into posts_scheduled
values (NULL, "modominem", "un message d'example", "un jour")
;
`);
});
let posts_list = []
res.render('database', {posts_list: posts_list});
});
// publier le message en db dans la file
router.get('/publish-last-entry', function (req, res, next) {
res.render('index', {title: 'Express'});
});
module.exports = router;