directus-migrator/update.js

98 lines
2.4 KiB
JavaScript

const directus = require('@directus/sdk-js');
const yaml = require('js-yaml');
const fs = require('fs');
const moment = require('moment');
const slug = require('slugg')
var config;
try {
config = yaml.safeLoad(fs.readFileSync(__dirname+'/config.yml', 'utf8'));
} catch (e) {
console.log(e);
}
const client = new directus({
url: config.directus_url,
project: '_',
token: config.directus_token,
apiVersion: 1 // Optional - default 1
});
client.getItems('oreolek_blog')
.catch(error => console.error(error))
.then(res => {
if (res === undefined) {
console.error('no data!');
return;
}
const len = res.rows.length;
for (var i = 0; i < len; i++) {
var entry = res.rows[i];
if (entry.active == 2) // draft
continue;
console.log(entry.title);
var pubdate = moment(entry.published_at).format('YYYY-MM-DD');
var newslug = entry.slug;
if(entry.slug == undefined)
{
newslug = slug(entry.title);
}
var layout = "post";
if (entry.layout != undefined && entry.layout.length > 0) {
layout = entry.layout;
}
var content = {
title: entry.title,
date: pubdate,
tags: entry.tags,
slug: newslug,
password: entry.password,
layout: layout
};
content = "---\n"
+ yaml.safeDump(content)
+ "\n---\n"
+ entry.content;
fs.writeFile("./source/posts/"+pubdate+'-'+newslug+'.md', content, function(err) {
if(err) {
return console.log(err);
}
});
};
});
client.getItems('oreolek_blog_pages')
.catch(error => console.error(error))
.then(res => {
if (res === undefined) {
console.error('no data!');
return;
}
const len = res.rows.length;
for (var i = 0; i < len; i++) {
var entry = res.rows[i];
var layout = "page";
if (entry.layout != undefined && entry.layout.length > 0) {
layout = entry.layout;
}
var newslug = entry.slug;
if(entry.slug == undefined)
{
newslug = slug(entry.title);
}
var content = "---\ntitle: "
+ entry.title
+ "\nslug:"
+ newslug
+ "\nlayout:"
+ layout
+ "\n---\n"
+ entry.content;
fs.writeFile("./source/"+newslug+'.md', content, function(err) {
if(err) {
return console.log(err);
}
});
}
});