|
1 |
| -let folder = 'yo' |
| 1 | +let folder = "yo"; |
2 | 2 |
|
3 | 3 | function string_to_slug(str) {
|
4 |
| - str = str.replace(/^\s+|\s+$/g, ''); // trim |
5 |
| - str = str.toLowerCase(); |
6 |
| - |
7 |
| - // remove accents, swap ñ for n, etc |
8 |
| - var from = "àáäâèéëêìíïîòóöôùúüûñç·/_,:;"; |
9 |
| - var to = "aaaaeeeeiiiioooouuuunc------"; |
10 |
| - for (var i=0, l=from.length ; i<l ; i++) { |
11 |
| - str = str.replace(new RegExp(from.charAt(i), 'g'), to.charAt(i)); |
12 |
| - } |
13 |
| - |
14 |
| - str = str.replace(/[^a-z0-9 -]/g, '') // remove invalid chars |
15 |
| - .replace(/\s+/g, '-') // collapse whitespace and replace by - |
16 |
| - .replace(/-+/g, '-'); // collapse dashes |
17 |
| - |
18 |
| - return str; |
| 4 | + str = str.replace(/^\s+|\s+$/g, ""); // trim |
| 5 | + str = str.toLowerCase(); |
| 6 | + |
| 7 | + // remove accents, swap ñ for n, etc |
| 8 | + var from = "àáäâèéëêìíïîòóöôùúüûñç·/_,:;"; |
| 9 | + var to = "aaaaeeeeiiiioooouuuunc------"; |
| 10 | + for (var i = 0, l = from.length; i < l; i++) { |
| 11 | + str = str.replace(new RegExp(from.charAt(i), "g"), to.charAt(i)); |
| 12 | + } |
| 13 | + |
| 14 | + str = str |
| 15 | + .replace(/[^a-z0-9 -]/g, "") // remove invalid chars |
| 16 | + .replace(/\s+/g, "-") // collapse whitespace and replace by - |
| 17 | + .replace(/-+/g, "-"); // collapse dashes |
| 18 | + |
| 19 | + return str; |
19 | 20 | }
|
20 | 21 |
|
21 | 22 | let generatePost = (data) => {
|
22 |
| - let date = new Date() |
| 23 | + const date = new Date(); |
23 | 24 |
|
24 |
| - let day = (date.getDate()).toString().padStart(2, '0') |
25 |
| - let month = (date.getMonth()+1).toString().padStart(2, '0') |
26 |
| - let year = date.getFullYear() |
| 25 | + const day = date.getUTCDate().toString().padStart(2, "0"); |
| 26 | + const month = (date.getUTCMonth() + 1).toString().padStart(2, "0"); |
| 27 | + const year = date.getUTCFullYear(); |
| 28 | + const hour = date.getUTCHours().toString().padStart(2, "0"); |
| 29 | + const minute = date.getUTCMinutes().toString().padStart(2, "0"); |
| 30 | + const second = date.getUTCSeconds().toString().padStart(2, "0"); |
27 | 31 |
|
28 | 32 | let text = `---
|
29 | 33 | title: ${data.title}
|
30 | 34 | date: ${year}-${month}-${day}
|
31 | 35 | ---
|
32 | 36 |
|
33 |
| -${data.content}` |
| 37 | +${data.content}`; |
34 | 38 |
|
35 |
| - let slug = `${year}-${month}-${day}-${string_to_slug(data.title)}` |
36 |
| - let path = `${folder}/${slug}.md` |
| 39 | + let slug = `${year}${month}${day}${hour}${minute}${second}`; |
| 40 | + let path = `${folder}/${slug}.md`; |
37 | 41 |
|
38 |
| - return { path, slug, text } |
39 |
| -} |
| 42 | + return { path, slug, text }; |
| 43 | +}; |
40 | 44 |
|
41 | 45 | exports.handler = async function (event, context) {
|
42 | 46 | const { Octokit } = require("@octokit/rest");
|
43 | 47 | const { createTokenAuth } = require("@octokit/auth-token");
|
44 | 48 | const { request } = require("@octokit/request");
|
45 | 49 |
|
46 |
| - let data = JSON.parse(event.body) |
| 50 | + let data = JSON.parse(event.body); |
47 | 51 |
|
48 |
| - let { path, slug, text } = generatePost(data) |
| 52 | + let { path, slug, text } = generatePost(data); |
49 | 53 |
|
50 |
| - const TOKEN = data.gh_token |
51 |
| - const auth = createTokenAuth(TOKEN) |
52 |
| - const authentication = await auth() |
| 54 | + const TOKEN = data.gh_token; |
| 55 | + const auth = createTokenAuth(TOKEN); |
| 56 | + const authentication = await auth(); |
53 | 57 | // console.log(authentication)
|
54 | 58 |
|
55 | 59 | const octokit = new Octokit({
|
56 | 60 | auth: TOKEN,
|
57 | 61 | });
|
58 | 62 |
|
59 | 63 | const response = await octokit.repos.createOrUpdateFileContents({
|
60 |
| - owner: 'taniki', |
61 |
| - repo: '11d.im', |
62 |
| - path: path, |
63 |
| - message: `✉️👋 yo! ${data.title}`, |
64 |
| - content: Buffer.from(text, 'utf8').toString('base64') |
65 |
| - }) |
| 64 | + owner: "taniki", |
| 65 | + repo: "11d.im", |
| 66 | + path: path, |
| 67 | + message: `✉️👋 yo! ${data.title}`, |
| 68 | + content: Buffer.from(text, "utf8").toString("base64"), |
| 69 | + }); |
66 | 70 |
|
67 | 71 | return {
|
68 | 72 | statusCode: 200,
|
69 |
| - body: "hey" |
| 73 | + body: "hey", |
70 | 74 | };
|
71 | 75 | };
|
0 commit comments