]> git.r.bdr.sh - rbdr/pinboard-linkblog-updater/blobdiff - index.js
tooting and fixes
[rbdr/pinboard-linkblog-updater] / index.js
index 549e223b4d19aaef488ce24dfd5cbe43175facd8..2059534c08c2bfadfd7e97e87fa10d2e728e678d 100644 (file)
--- a/index.js
+++ b/index.js
@@ -10,6 +10,7 @@ const internals = {
   apiToken: process.env.PINBOARD_TOKEN,
   blogUrl: process.env.BLOG_URL,
   archiveUrl: process.env.ARCHIVE_URL,
+  tootToken: process.env.TOOT_TOKEN,
 
   date: (new Date()).toISOString().split('T')[0],
 
@@ -20,7 +21,7 @@ const internals = {
 
   getText(posts) {
 
-    const linkText = posts.map((post) => {
+    return posts.map((post) => {
 
       return `=> ${post.href} ${post.description}\n${post.extended}`;
     }).join('\n\n');
@@ -29,7 +30,7 @@ const internals = {
   getTitle(posts) {
 
     if (posts.length === 1) {
-      return posts[0].description;
+      return `Link: ${posts[0].description}`;
     }
     return `${posts.length} links for ${internals.date}`;
   },
@@ -37,7 +38,24 @@ const internals = {
   slugify(text) {
 
     return text.toLowerCase().replace(/[^a-z0-9 ]/g, '').replace(/ +/g, '-')
+  },
+
+  async toot(title) {
+
+    const body = new FormData();
+    body.set(
+      'status',
+      `New post: ${title}\n\nAvailable on:\n\nā™Šļø the gemini archive gemini://gemini.unlimited.pizza/gemlog/\n\n or, the ephemeral blog šŸŒ: https://blog.unlimited.pizza`
+    );
+    return fetch('https://mastodon.social/api/v1/statuses', {
+      method: 'post',
+      headers: {
+        Authorization: `Bearer ${internals.tootToken}`,
+      },
+      body
+    });
   }
+
 };
 
 
@@ -53,8 +71,8 @@ async function run() {
     return;
   }
 
-  const title = internals.getTitle(posts);
-  const text = internals.getText(posts);
+  const title = internals.getTitle(pins);
+  const text = internals.getText(pins);
   const gemtext = internals.generateGemtext(title, text);
   const filename = internals.slugify(title);
 
@@ -74,6 +92,10 @@ async function run() {
       tags: pin.tags.replace('linkblog', 'linkblog-posted')
     });
   }
+
+  if (internals.tootToken) {
+    await internals.toot(title);
+  }
 }
 
 run()