Network Pipe Manufacturer

    rss-to-facebook

    1.0.6 • Public • Published

    rss-to-facebook

    This is the module that you need to send rss news to a facebook page.

    support for:

    • Cron sintaxis to flexible time publishing.
    • Filter function, to filter your content.
    • Preprocess function to add extra data to meessages.
    • Enabled link preview option.
    • Flexible message template with handlebar.

    Install

    npm i rss-to-facebook

    use

    const rssToFacebook = require("rss-to-facebook");
    const {
      FACEBOOK_APP_ID, FACEBOOK_APP_SECRET, FACEBOOK_PAGE_ACCES_TOKEN, FACEBOOK_PAGE_ID,
    } = process.env;
    
    rssToFacebook({
      facebookAppID: FACEBOOK_APP_ID,
      facebookAppSecret: FACEBOOK_APP_SECRET,
      facebookPageAccesToken: FACEBOOK_PAGE_ACCES_TOKEN,
      facebookPageID: FACEBOOK_PAGE_ID,
      cron: "*/15 * * * * *", // publish every 15 seconds, cron sintaxis
      timezone: "America/Havana", // your defined timezone
      // rss source
      source: "https://feed.informer.com/digests/ZO8A5LZCGA/feeder.rss", // can be an async function or and array of objects
      // source: async () => {
      //   return db.get({ limit: 10 }); // your custom db
      // },
      // source: [{colo:"red"}],
      // add new fields to show in the message
      preprocess: async (item) => {
        item.color = "green";
        return item;
      },
      // define you own message template
      template:
        'Color is {{color}}, <a href="{{image}}"> </a> <b><a href="{{link}}">{{title}}</a></b>\n @{{channel}}',
      // filter news of the day, use this function to filter already published posts
      filter: async ({ date }) => { // async functtion
        // must be async
        const d = new Date();
        return (
          date.getDate() === d.getDate() &&
          date.getMonth() === d.getMonth() &&
          date.getFullYear() === d.getFullYear()
        );
      },
      // add extra common fields to all items,
      extraFields: { colo: "red", line: "stroke" }, // add line field to all items and overwrite color field
    });

    Cron sintaxis

     # ┌────────────── second (optional)
     # │ ┌──────────── minute
     # │ │ ┌────────── hour
     # │ │ │ ┌──────── day of month
     # │ │ │ │ ┌────── month
     # │ │ │ │ │ ┌──── day of week
     # │ │ │ │ │ │
     # │ │ │ │ │ │
     # * * * * * *
    
    • every five minutes. 0 */5 * * * *
    • every quarter hour. 0 */15 * * * *
    • every hour at minute 30. 0 30 * * * *
    • three times every hour, at minute 0, 5 and 10 0 0,5,10 * * * *
    • every half hour 0 */30 * * * *

    More example https://crontab.guru/examples.html

    Timezone

    https://github.com/moment/moment-timezone/blob/develop/data/packed/latest.json

    Template fields

    • title
    • link
    • image
    • channel
    • description
    • date

    use the preprocess function to add fields, then modify the template to show the new fields in the message

    rssToTelegram({
    ...
     preprocess: async (item) => {
       item.color = "green";
       return item; 
     },
     template: 'Color is {{color}}, Link is {{link}}, Title is {{title}} \n @{{channel}}',
    ...
    })

    Donate Bitcoin:

    bitcoin:3GqQcxFk5y7onUyoTKqZHwoWXvLusqJSVG

    3GqQcxFk5y7onUyoTKqZHwoWXvLusqJSVG

    Contact: fabiel.leon.oliva@gmail.com

    Install

    npm i rss-to-facebook

    DownloadsWeekly Downloads

    4

    Version

    1.0.6

    License

    ISC

    Unpacked Size

    8.3 kB

    Total Files

    7

    Last publish

    Collaborators

    • fabiel