Giter VIP home page Giter VIP logo

wlbot's Introduction

WeatherLink Bot (wlbot)

wlbot is a Node.js based CLI that can be used to make some of the most common API calls that are possible with the WeatherLink v2 API.

Table of Contents

Obtaining a WeatherLink API Key

No matter how you install wlbot, it requires that you have a WeatherLink v2 API Key and Secret.

The WeatherLink Developer Portal outlines how to get your API key at https://weatherlink.github.io/v2-api/tutorial:

To retrieve your WeatherLink v2 API Key and API Secret you can go to WeatherLink.com and visit the Account page at https://www.weatherlink.com/account.

Once on the Account page you can click the Generate v2 Key button to create a new WeatherLink v2 API Key and API Secret.

Note: Your API Secret should never be shared with anyone.

Setting Your Environmental Variables

No matter how you install wlbot, it requires several permanent environmental variables to be set. Before running the CLI locally for this first time, you must set the necessary environment variables. The table below specifies the name and value of the environment variables that are required.

Environment Variable Name Environment Variable Value
WEATHER_LINK_API_KEY <your_api_key>
WEATHER_LINK_API_SECRET <your_api_secret>
WEATHER_LINK_BASE_API_URL https://api.weatherlink.com/v2/

Note: <your_api_key> and <your_api_secret> should be replaced with the API Key and API Secret that you where given when creating your WeatherLink API as described above.

This article describes how you can set permanent environment variables on macos or Linux.

This article describes how you can set permanent environment variables on Windows Operating Systems.

Installing wlbot via npm

wlbot is listed on the npm repository at https://npmjs.com/package/wlbot.

You can globally install the wlbot CLI by:

  1. Opening a command line prompt on your machine and running npm install -g wlbot.

This process could take a minute or two, depending on your internet connection.

Installing wlbot Manually via the Github Repository

It is easy to get a copy of the wlbot CLI running locally.

Install Dependencies

In order to run wlbot locally, the following will need to be installed on your machine:

Clone Repo

Navigate to the location on your development machine where you want to place this project's directory and clone the repository by running the following command:

git clone https://github.com/mike-weiner/wlbot.git

Install npm Packages

wlbot requires several packages to run on top of Node.js. Those packages can be installed by the following command at the root of the directory for this project running:

npm install

Installing CLI Globally

Once you have all of the environment variables required by the CLI set, we need to globally install the CLI in npm. This will allow you to call wlbot on your command line without being in this project's directory.

To globally install the wlbot package, navigate to the project's root directory on your command line. This should be the directory where this README is found. Then run the following command:

npm i -g .

Note: It is not required that you install wlbot globally in npm. However, if it is not installed globally you will only be able to call the wlbot command when you are in the directory where you have this project located.

Calling the CLI

Congrats! You should now be able to open up a new terminal window and run wlbot. You can run wlbot -h to get help understanding how to use this CLI.

wlbot contains a helpful command to ensure that your environmental variables are set correctly. Run wlbot config to print out the values of the environmental variables that are required by wlbot.

You can run wlbot config -l to list the full values of the environmental variables. Note: Be careful running this command as your WeatherLink API Secret's value will be shown. You don't want to share this with anyone.

Common Commands

There are several commands that you will probably call more frequently than others. Some of the more common commands include:

  • wlbot metadata mine: This command will return an array of station-id numbers for the weather station's that your WeatherLink account has permission to view data for.
  • wlbot weather current <station-id>: This command will return the current weather record for the station whose station id matches <station-id>.

Upgrading wlbot via npm

If you installed wlbot via npm, you can quickly get an updated version via the command line.

To see what version of wlbot you currently have installed:

  1. Open a command line window and run wlbot -V.

To upgrade your installed version of wlbot:

  1. Open a command line window and run npm update -g wlbot.

Downloading the upgrade may take a minute or two based on your internet connection.

Contributing

All contributions are welcome!

First, search open issues to see if a ticket has already been created for the issue or feature request that you have. If a ticket does not already exist, open an issue to discuss what contributions you would like to make.

All contributions should be developed in a feature/ branch off of the development branch as a PR will be required before any changes are merged back into the development branch.

If you are introducing new functionality, please add unit tests (UTs) to ensure the functionality of your contribution and its backwards compatibility. All UTs should be able to run locally. You will need to install the devDependencies to run the UTs.

License

Distributed under the MIT License. See LICENSE.txt for more information.

References

Below are several references that were used to help find inspiration for this project, get a starting point for the CLI, and serve as a resource for the WeatherLink API.

wlbot's People

Contributors

mike-weiner avatar dependabot[bot] avatar

Watchers

James Cloos avatar  avatar

Forkers

leemikes

wlbot's Issues

January 2024 Dependency Update

The project's dependencies are severely out of date. They need to be updated to get a new release published. Once that is complete, let's look into dependabot scanning so we can automate keeping dependencies update-to-date and doing a monthly release.

Enable Dependabot Scanning

To help keep dependencies up-to-date, I want to enable dependabot scanning to automatically open PRs to keep dependencies up-to-date. This will help to keep us on a more regular, monthly release schedule.

Move All Test Files into `tests/`

Currently the various unit test (UT) files are spread through the project in various sub-folders named __tests__. This design makes it difficult to quickly see all of the test files.

Instead, let's move all of these files to a new tests/ directory. The .npmignore will need to be updated so these test files are packaged into the built npm package.

Prep for Release of `v1.1.5`

Prep for Release of `v1.1.6`

Tracking issue for the March release of wlbot.

v1.1.6 Change Notes

This month's release of weatherlinkbot (wlbot) is a minor, non-breaking release.

Fixes

To be determined.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.