npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

kijiji-fb-bot

v2.0.0

Published

A bot that sends Facebook messages with new Kijiji ads

Downloads

28

Readme

kijiji-fb-bot

A node.js bot that scrapes recent Kijiji ads and sends them in a Facebook message.

Features

  • Automatically receive new Kijiji ads matching given search criteria
  • Send commands to the bot to manually retrieve ads

Dependencies

Installation

npm install kijiji-fb-bot

Configuration

You can configure the bot by placing the following JSON files in a configuration directory:

  • botprops.json - Contains basic bot properties:
 {
    "name": "bot name (used for chat commands)",
    "chatId": <chat id to send automatic updates>,
    "scrapeInterval": <frequency of scrapes (in ms)>,
    "remoteAdmin": <1 or 0>
 }
  • facebook.json - Contains the Facebook credentials the bot will use to log in:
{
    "email": "Facebook account email",
    "password": "Facebook account password"
}

Documentation

init(configDir, callback)

Will call callback with a function to stop the bot.

Arguments
  • configDir - The directory containing the bot's configuration files.

  • callback(err, stop) - A callback called after the bot has been started. If there is an error, err will not be null. If everything was successful, stop will be a function that, when called, sets the bot to stop after the next chat message is received. It cannot be stopped immediately as a result of a limitation of the facebook-chat-api module.

Example usage
var bot = require("kijiji-fb-bot");

bot("json/botconfig", function(err, stop) {
    //The bot will work its magic
    //Call stop() when done
});

Chat commands

The bot can be interacted with by sending it Facebook messages. Each command must be prefixed with the bot name specified in botprops.json. The following commands are supported:

  • list - The bot will reply with a list of the last scraped ads.
  • scrape - The bot will scrape and reply with ads posted to Kijiji since the last scrape.
  • info - The bot will reply with information about its state.
  • help - The bot will reply with information about its chat commands.

Additionally, if remoteAdmin is set to 1 in botprops.json, the following chat commands will be available:

  • botprop [prop] [val] - Will set the value of property prop specified in botprops.json to val.
  • adpref [pref] [val] - Will set the value of preference pref specified in adprefs.json to val.
  • searchparam [param] [val] - Will set the value of parameter param specified in searchparams.json to val.

If the val argument is omitted for any of these commands, the bot will reply with the current value.

Example usage

[BOTNAME] [COMMAND] [ARGS]