writr 1.8.6 → 1.8.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/migrate/ghostMigrationProvider.js +8 -6
- package/dist/migrate/ghostMigrationProvider.js.map +1 -1
- package/dist/migrate/wordpressMigrationProvider.d.ts +1 -1
- package/dist/migrate/wordpressMigrationProvider.js +11 -9
- package/dist/migrate/wordpressMigrationProvider.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.GhostMigrationProvider = void 0;
|
|
4
|
-
const
|
|
4
|
+
const axios_1 = require("axios");
|
|
5
5
|
const log_1 = require("../log");
|
|
6
6
|
const parser_1 = require("../utils/parser");
|
|
7
7
|
const storageService_1 = require("../storage/storageService");
|
|
@@ -16,11 +16,11 @@ class GhostMigrationProvider {
|
|
|
16
16
|
const { searchParams, origin } = url;
|
|
17
17
|
const key = searchParams.get('key');
|
|
18
18
|
let totalPosts;
|
|
19
|
-
const { posts, meta } = await
|
|
19
|
+
const { posts, meta } = (await axios_1.default.get(`${origin}/ghost/api/v2/content/posts/?key=${key}`)).data;
|
|
20
20
|
totalPosts = [...posts];
|
|
21
21
|
const { pagination: { pages } } = meta;
|
|
22
22
|
for (let i = 2; i <= pages; i++) {
|
|
23
|
-
const { posts } = await
|
|
23
|
+
const { posts } = (await axios_1.default.get(`${origin}/ghost/api/v2/content/posts/?key=${key}&page=${i}`)).data;
|
|
24
24
|
totalPosts = totalPosts.concat(posts);
|
|
25
25
|
}
|
|
26
26
|
return totalPosts;
|
|
@@ -31,12 +31,14 @@ class GhostMigrationProvider {
|
|
|
31
31
|
}
|
|
32
32
|
async saveMedia(mediaFetched, dest) {
|
|
33
33
|
const { mediaUrl, slug } = mediaFetched;
|
|
34
|
-
const response = await
|
|
35
|
-
const { rawBody: media, headers } = response;
|
|
34
|
+
const response = await axios_1.default.get(mediaUrl, { responseType: 'arraybuffer' });
|
|
35
|
+
// const { rawBody: media, headers } = response;
|
|
36
|
+
const { data: media, headers } = response;
|
|
36
37
|
const mime_type = headers['content-type'];
|
|
37
38
|
const extension = mime_type.split('/')[1];
|
|
38
39
|
const filename = `${slug}.${extension}`;
|
|
39
|
-
|
|
40
|
+
const mediaBuffer = Buffer.from(media, 'binary').toString('base64');
|
|
41
|
+
await this.storage.set(`${dest}/images/${filename}`, mediaBuffer);
|
|
40
42
|
return `/images/${filename}`;
|
|
41
43
|
}
|
|
42
44
|
async migrate(src, dest) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ghostMigrationProvider.js","sourceRoot":"","sources":["../../src/migrate/ghostMigrationProvider.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"ghostMigrationProvider.js","sourceRoot":"","sources":["../../src/migrate/ghostMigrationProvider.ts"],"names":[],"mappings":";;;AAAA,iCAA0B;AAC1B,gCAAsC;AAEtC,4CAAuC;AACvC,8DAAyD;AAEzD,MAAa,sBAAsB;IAKjC;QACE,IAAI,CAAC,MAAM,GAAG,IAAI,eAAM,EAAE,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,IAAI,+BAAc,EAAE,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,GAAW;QAC1B,IAAG;YACD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;YACzB,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;YACrC,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAEpC,IAAI,UAAiC,CAAC;YAEtC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,eAAK,CAAC,GAAG,CAAC,GAAG,MAAM,oCAAoC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YACnG,UAAU,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;YAExB,MAAM,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,CAAC;YAEvC,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,EAAE,EAAE;gBAC9B,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,MAAO,eAAK,CAAC,GAAG,CAAC,GAAG,MAAM,oCAAoC,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;gBACxG,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;aACvC;YAED,OAAO,UAAU,CAAC;SAEnB;QAAC,OAAO,KAAU,EAAE;YACnB,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;SAChC;IACH,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,YAAiB,EAAE,IAAY;QAC7C,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,YAAY,CAAC;QACxC,MAAM,QAAQ,GAAwB,MAAM,eAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC,CAAC;QACjG,gDAAgD;QAChD,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAC;QAC1C,MAAM,SAAS,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;QAC1C,MAAM,SAAS,GAAG,SAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG,GAAG,IAAI,IAAI,SAAS,EAAE,CAAC;QACxC,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;QACnE,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,WAAW,QAAQ,EAAE,EAAE,WAAW,CAAC,CAAC;QAClE,OAAO,WAAW,QAAQ,EAAE,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,GAAW,EAAE,IAAY;QACrC,IAAG;YACD,IAAI,oBAAc,EAAE,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;YAC3D,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YAEzC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;gBACxB,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;gBAEhE,6BAA6B;gBAC7B,IAAI,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAC,CAAC,CAAC;gBAEjF,IAAG,aAAa,EAAE;oBAChB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAC,EAAE,IAAI,CAAC,CAAC;oBAC/E,SAAS,IAAI,KAAK,KAAK,KAAK,SAAS,OAAO,CAAC;iBAC9C;gBAED,wBAAwB;gBACxB,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAExC,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,IAAI,KAAK,EAAE,SAAS,CAAC,CAAC;aACzD;YACD,IAAI,oBAAc,EAAE,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;YAClE,OAAO,IAAI,CAAC;SACb;QAAC,OAAO,KAAU,EAAE;YACnB,MAAM,IAAI,KAAK,CAAC,oCAAoC,GAAG,GAAG,CAAC,CAAA;SAC5D;IACH,CAAC;CAEF;AA5ED,wDA4EC"}
|
|
@@ -4,7 +4,7 @@ export declare class WordpressMigrationProvider implements MigrationProviderInte
|
|
|
4
4
|
storage: any;
|
|
5
5
|
constructor();
|
|
6
6
|
fetchPosts(src: string): Promise<Record<string, any>[]>;
|
|
7
|
-
fetchMedia(src: string, id: string): Promise<
|
|
7
|
+
fetchMedia(src: string, id: string): Promise<any>;
|
|
8
8
|
saveMedia(mediaFetched: any, dest: string): Promise<string | null>;
|
|
9
9
|
fetchCategoriesPerPost(src: string, postId: string): Promise<Record<string, any>[]>;
|
|
10
10
|
fetchTagsPerPost(src: string, postId: string): Promise<Record<string, any>[]>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.WordpressMigrationProvider = void 0;
|
|
4
|
-
const
|
|
4
|
+
const axios_1 = require("axios");
|
|
5
5
|
const parser_1 = require("../utils/parser");
|
|
6
6
|
const storageService_1 = require("../storage/storageService");
|
|
7
7
|
const log_1 = require("../log");
|
|
@@ -13,13 +13,13 @@ class WordpressMigrationProvider {
|
|
|
13
13
|
async fetchPosts(src) {
|
|
14
14
|
try {
|
|
15
15
|
let posts;
|
|
16
|
-
const response = await
|
|
16
|
+
const response = await axios_1.default.get(`${src}/wp-json/wp/v2/posts?page=1`);
|
|
17
17
|
const headers = response.headers;
|
|
18
|
-
const body = JSON.parse(response.
|
|
18
|
+
const body = typeof response.data == 'string' ? JSON.parse(response.data) : response.data;
|
|
19
19
|
const pages = headers['x-wp-totalpages'];
|
|
20
20
|
posts = [...body];
|
|
21
21
|
for (let i = 2; i <= parseInt(pages); i++) {
|
|
22
|
-
const body = await
|
|
22
|
+
const body = (await axios_1.default.get(`${src}/wp-json/wp/v2/posts?page=${i}`)).data;
|
|
23
23
|
posts = posts.concat(body);
|
|
24
24
|
}
|
|
25
25
|
return posts;
|
|
@@ -30,7 +30,7 @@ class WordpressMigrationProvider {
|
|
|
30
30
|
}
|
|
31
31
|
async fetchMedia(src, id) {
|
|
32
32
|
try {
|
|
33
|
-
return await
|
|
33
|
+
return (await axios_1.default.get(`${src}/wp-json/wp/v2/media/${id}`)).data;
|
|
34
34
|
}
|
|
35
35
|
catch (error) {
|
|
36
36
|
return null;
|
|
@@ -42,10 +42,12 @@ class WordpressMigrationProvider {
|
|
|
42
42
|
return null;
|
|
43
43
|
const { source_url, slug, mime_type } = mediaFetched;
|
|
44
44
|
const encodedURI = encodeURI(source_url);
|
|
45
|
-
const
|
|
45
|
+
const response = await axios_1.default.get(encodedURI, { responseType: 'arraybuffer' });
|
|
46
|
+
const { data: media, headers } = response;
|
|
47
|
+
const mediaBuffer = Buffer.from(media, 'binary').toString('base64');
|
|
46
48
|
const extension = mime_type.split('/')[1];
|
|
47
49
|
const filename = `${slug}.${extension}`;
|
|
48
|
-
await this.storage.set(`${dest}/images/${filename}`,
|
|
50
|
+
await this.storage.set(`${dest}/images/${filename}`, mediaBuffer);
|
|
49
51
|
return `/images/${filename}`;
|
|
50
52
|
}
|
|
51
53
|
catch (error) {
|
|
@@ -54,7 +56,7 @@ class WordpressMigrationProvider {
|
|
|
54
56
|
}
|
|
55
57
|
async fetchCategoriesPerPost(src, postId) {
|
|
56
58
|
try {
|
|
57
|
-
return await
|
|
59
|
+
return (await axios_1.default.get(`${src}/wp-json/wp/v2/categories?post=${postId}`)).data;
|
|
58
60
|
}
|
|
59
61
|
catch (error) {
|
|
60
62
|
return [];
|
|
@@ -62,7 +64,7 @@ class WordpressMigrationProvider {
|
|
|
62
64
|
}
|
|
63
65
|
async fetchTagsPerPost(src, postId) {
|
|
64
66
|
try {
|
|
65
|
-
return await
|
|
67
|
+
return (await axios_1.default.get(`${src}/wp-json/wp/v2/tags?post=${postId}`)).data;
|
|
66
68
|
}
|
|
67
69
|
catch (error) {
|
|
68
70
|
return [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wordpressMigrationProvider.js","sourceRoot":"","sources":["../../src/migrate/wordpressMigrationProvider.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"wordpressMigrationProvider.js","sourceRoot":"","sources":["../../src/migrate/wordpressMigrationProvider.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "writr",
|
|
3
|
-
"version": "1.8.
|
|
3
|
+
"version": "1.8.7",
|
|
4
4
|
"description": "A Simple to Use Markdown Blog",
|
|
5
5
|
"main": "./dist/index",
|
|
6
6
|
"types": "./dist/index",
|
|
@@ -38,13 +38,13 @@
|
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
40
|
"array-sort": "^1.0.0",
|
|
41
|
+
"axios": "^0.27.2",
|
|
41
42
|
"browser-sync": "^2.27.10",
|
|
42
43
|
"cheerio": "^1.0.0-rc.11",
|
|
43
44
|
"commander": "^9.2.0",
|
|
44
45
|
"ecto": "^1.2.3",
|
|
45
46
|
"feed": "^4.2.2",
|
|
46
47
|
"fs-extra": "^10.1.0",
|
|
47
|
-
"got": "^11.8.2",
|
|
48
48
|
"gray-matter": "^4.0.3",
|
|
49
49
|
"helper-date": "^1.0.1",
|
|
50
50
|
"inquirer": "^8.2.4",
|