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

138 lines
3.5 KiB
JavaScript
Raw Normal View History

2022-07-07 18:23:44 +02:00
var express = require('express');
var router = express.Router();
2022-07-07 19:03:04 +02:00
var sqlite3 = require('sqlite3');
2022-07-07 18:23:44 +02:00
2022-07-07 19:03:04 +02:00
const database_masto = "mastodon_multi_accounts.db"
2022-07-07 18:23:44 +02:00
/* GET home page. */
2022-07-07 19:03:04 +02:00
router.get('/', function (req, res, next) {
res.render('index', {title: 'Express'});
2022-07-07 18:23:44 +02:00
});
// publier un message avec un certain compte
2022-07-07 19:03:04 +02:00
router.get('/publish', function (req, res, next) {
res.render('index', {title: 'Express'});
2022-07-07 18:23:44 +02:00
});
2022-07-07 19:03:04 +02:00
const connect = require('@databases/sqlite');
const {sql} = require('@databases/sqlite');
const db = connect(database_masto);
2022-07-07 19:16:56 +02:00
2022-07-07 18:23:44 +02:00
function createDatabase() {
2022-07-07 19:03:04 +02:00
var newdb = new sqlite3.Database(database_masto, sqlite3.OPEN_READWRITE | sqlite3.OPEN_CREATE, (err) => {
2022-07-07 18:23:44 +02:00
createTables(newdb);
2022-07-07 19:03:04 +02:00
})
2022-07-07 18:23:44 +02:00
}
2022-07-07 19:03:04 +02:00
2022-07-07 18:23:44 +02:00
function createTables(newdb) {
2022-07-07 19:16:56 +02:00
async function prepare() {
await db.query(sql`
create table posts_scheduled
(
action_id integer
constraint posts_scheduled_pk
primary key autoincrement,
post_username varchar not null,
content varchar not null,
medias varchar,
datetime datetime
);
create unique index posts_scheduled_action_id_uindex
on posts_scheduled (action_id);
insert into posts_scheduled
values (NULL, "modominem", "un message d'example", NULL);
`);
console.log('requête de création faite')
}
const prepared = prepare();
2022-07-07 18:23:44 +02:00
}
function getAllPosts(db) {
2022-07-07 19:16:56 +02:00
db.query(sql`SELECT * FROM posts_scheduled;`).then(
(results) =>
{
console.log(results)
},
(err) => console.error(err),
);
2022-07-07 18:23:44 +02:00
}
2022-07-07 19:03:04 +02:00
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', {});
2022-07-07 18:23:44 +02:00
});
2022-07-07 19:03:04 +02:00
router.get('/list', function (req, res, next) {
2022-07-07 18:23:44 +02:00
2022-07-07 19:03:04 +02:00
var db = new sqlite3.Database('../masto_posts.db', sqlite3.OPEN_READWRITE | sqlite3.OPEN_CREATE, (err) => {
2022-07-07 18:23:44 +02:00
if (err && err.code == "SQLITE_CANTOPEN") {
createDatabase();
return;
} else if (err) {
console.log("Getting error " + err);
exit(1);
}
2022-07-07 19:03:04 +02:00
getAllPosts(db);
2022-07-07 18:23:44 +02:00
});
2022-07-07 19:03:04 +02:00
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 "
}]
2022-07-07 18:23:44 +02:00
getAllPosts(db)
res.render('database', {posts_list: posts_list});
});
2022-07-07 19:03:04 +02:00
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});
});
2022-07-07 18:23:44 +02:00
// publier le message en db dans la file
2022-07-07 19:03:04 +02:00
router.get('/publish-last-entry', function (req, res, next) {
res.render('index', {title: 'Express'});
2022-07-07 18:23:44 +02:00
});
module.exports = router;