-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathimport.js
More file actions
66 lines (60 loc) · 1.64 KB
/
import.js
File metadata and controls
66 lines (60 loc) · 1.64 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#!/usr/bin/env node
var FB = require('fb');
var async = require('async');
var moment = require('moment');
var fs = require('fs');
var posts = [];
FB.setAccessToken(process.env.FB_ACCESSTOKEN);
FB.api(process.env.FB_SITE, function(res) {
var i = 1;
async.forEach(res.data, function (item, callback){
console.log(item);
if(!item.message) {
return callback();
}
var post = {
"id": item.id.toString().split("_")[1],
"slug": slugify(item.message.substring(0,50)),
"title": item.message.substring(0,50) + "...",
"html": item.message,
"image": null,
"featured": 0,
"page": 0,
"author_id":1,
"created_at": moment(item.created_time).unix()
};
if(item.picture) {
post.image = item.picture;
}
posts.push(post);
callback();
}, function(err) {
console.log(posts); i
var imp = {
"meta":{
// epoch time in milliseconds
"exported_on": 1388805572000,
// Data version, current is 003
"version": "003"
},
"data":{
"posts": posts
}
};
fs.writeFile("import.json", JSON.stringify(imp), function(err) {
if(err) {
console.log(err);
} else {
console.log("The file was saved!");
}
});
});
});
function slugify(text) {
return text.toString().toLowerCase()
.replace(/\s+/g, '-') // Replace spaces with -
.replace(/[^\w\-]+/g, '') // Remove all non-word chars
.replace(/\-\-+/g, '-') // Replace multiple - with single -
.replace(/^-+/, '') // Trim - from start of text
.replace(/-+$/, ''); // Trim - from end of text
}