All Projects → 5310 → discord-bot-castform

5310 / discord-bot-castform

Licence: other
A Discord bot that forecasts weather for Pokémon GO

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to discord-bot-castform

Wildbeast
Feature-rich Discord bot framework
Stars: ✭ 220 (+746.15%)
Mutual labels:  discord-bot
sara
A multi-functional bot that I never finish because I'm too lazy.
Stars: ✭ 11 (-57.69%)
Mutual labels:  discord-bot
Minecord
A lightweight but powerful Minecraft Discord bot with recipe lookup, server pings, name history, skin renders, and more.
Stars: ✭ 30 (+15.38%)
Mutual labels:  discord-bot
Bot
A super Awesome Discord bot
Stars: ✭ 247 (+850%)
Mutual labels:  discord-bot
Fortnite-LobbyBot
No description or website provided.
Stars: ✭ 38 (+46.15%)
Mutual labels:  discord-bot
buttons
A simple to use interactive session and paginator with custom button support for discord.py.
Stars: ✭ 30 (+15.38%)
Mutual labels:  discord-bot
Avrae
A Discord bot to streamline running D&D 5e.
Stars: ✭ 216 (+730.77%)
Mutual labels:  discord-bot
Discord-Bot
Discord C#/.NET Bot
Stars: ✭ 43 (+65.38%)
Mutual labels:  discord-bot
YappyGitHub
A github monitor bot for Discord
Stars: ✭ 64 (+146.15%)
Mutual labels:  discord-bot
voice
Implementation of the Discord Voice API for discord.js and other JS/TS libraries
Stars: ✭ 310 (+1092.31%)
Mutual labels:  discord-bot
Sidekick
Dice and LFG bot for Discord.
Stars: ✭ 254 (+876.92%)
Mutual labels:  discord-bot
discord-js-bot
A cool multipurpose discord bot built using discord.js v13 with moderation, music, ticketing, translation, and much more
Stars: ✭ 135 (+419.23%)
Mutual labels:  discord-bot
discordcaptcha
Verification bot for Discord
Stars: ✭ 142 (+446.15%)
Mutual labels:  discord-bot
Bastion
🚀 Get an enhanced Discord experience!
Stars: ✭ 234 (+800%)
Mutual labels:  discord-bot
lyrics-finder
🎤 | Search the lyrics to your music with Lyrics Finder
Stars: ✭ 20 (-23.08%)
Mutual labels:  discord-bot
Titan
Create Discord server widgets for websites of all sizes! A simple to setup process for end-users. Server members may view or send messages into an embedded Discord channel.
Stars: ✭ 221 (+750%)
Mutual labels:  discord-bot
partner-bot
Automates partnerships in the big community of discord.
Stars: ✭ 119 (+357.69%)
Mutual labels:  discord-bot
NanoSpace
Erela.js & Discord.js@v14 (Prefix Commands!)
Stars: ✭ 59 (+126.92%)
Mutual labels:  discord-bot
PruneBot
PruneBot is an easy to use multi-purpose bot and it has a free open source code to setup your own prune bot to your own server.
Stars: ✭ 13 (-50%)
Mutual labels:  discord-bot
discord-cryptocurrency-bot
cryptocurrency bot for Discord chat platform: checks exchange info, runs data analysis, fires automatic alerts, and more
Stars: ✭ 28 (+7.69%)
Mutual labels:  discord-bot

discord-bot-castform

This bot queries AccuWeather for configured locations and converts it into in-game weather forecasts for Pokémon GO.

In the distant past of 2018 Pokémon GO used to pull the forecasts from AccuWeather at predictable times of the day. We could reliably predict the in-game weather by just running those hours through our various models. But that's no longer the case, so the bot now scans every hour and reports all the forecasts for the next twelve hours like so:

screenshot

Look, Discord Flavored Markdown doesn't do tables. This is the best I can do. The most recent forecast is the leftmost column of emoji, and the rightmost column is the earliest. Naturally, the further into the future you go, the fewer forecasts are available, forming this nice triangle. And those black orbs are forecasts where no data is available for whatever reason.

Now, since I can't afford to get a commercial AW key to serve the entire planet, I've built this solely for personal use. Feel free to run your own instance though :D

Install

This is a Node.js project. It also makes of of a lot of ES2015+ so use at least Node 14 which should be LTS by now. I myself will always be on the latest unstable.

As per usual, switch to the repository and run: $ npm init

Configure

All the configuration for this bot is stored in a file named config.json. Duplicate the included template.locations.json and then and rename it to config.json. Edit this file to suit your needs.

Locations

It should be pretty self-explanatory from the placeholder config for Kolkata: An object where the keys are shorthand names for the weather supercells you want to query, with longer names defined within the value object alongside the essential AccuWeather location ID, API Key, timezone, when to pull forecasts every hour, and an optional custom model name.

You can get the AccuWeather location ID for your location by simply visiting your desired area from a browser and copying the id, like so:

https://www.accuweather.com/en/in/kolkata/206690/weather-forecast/206690
                                  -area-- --ID--                  --ID--

In my city the weather cells are definitely level 10 S2 cells.

AccuWeather API Key

You'll need at least one from AccuWeather APIs.

A free one will do, unless you add far too many locations and run out of your daily limit of 50 calls.

Discord Webhook

Create webhooks for the channels you need.

Inspect the webhook URLs this generates. They will contain an ID and token that you will need to add to the list of webhooks for every location in the config, like so:

https://discord.com/api/webhooks/<ID>/<token>

No example ID and token for you, don't want you spamming my channels ;]

A single instance of the bot can push webhooks to any number of Discord servers and channels within reason, as long as you set them up in the configuration.

Data Storage

By default the bot will save all forecast data pulled from AccuWeather to dist under the data/aw/<location>/ folders. And if you specified a custom model for your location, it'll save converted in-game predictions too, even though this information can also be directly derived from the AW data alone.

The AW data is needed used to compile reports from past forecasts every hour. If you want to delete these files, make sure to leave at least the last two days.

Run

$ npm start

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].