Giter Site home page Giter Site logo

trellobot's Introduction

Trellobot

A simple Discord bot to log and report events from your Trello boards in your Discord server.

Image example of Trellobot alert

Setup

  1. Clone repository.
  2. Run npm install.
  3. Configure conf.json file as desired (see below).
  4. Generate tokens and set up .auth file (see below).
  5. All done. Run Trellobot with node trellobot.js.

conf.json

There are several important values in here which inform Trellobot's operation. Here's what they're all for, and how to set them.

(optional properties marked with * asterisks)

Property Explanation
boardIDs An array of board IDs (strings) determining on which boards Trellobot reports. IDs can be extracted from the URLs of your Trello boards. (eg. the board ID for https://trello.com/b/HF8XAoZd/welcome-board is HF8XAoZd).
serverID An ID string determining which Discord server Trellobot uses. Enable developer mode in Discord and right click a server icon to copy its ID.
channelID An ID string determining which channel on your Discord server Trellobot uses to post reports. Enable developer mode in Discord and right click a channel to copy its ID.
pollInterval An integer determining how often (in milliseconds) Trellobot polls your boards for activity.
prefix* A string determining the prefix for Trellobot commands in Discord. Currently unused. Defaults to . (period).
contentString* A string included posted alongside all embeds. If you'd like to ping a certain role every time the bot posts, for example, you would put that string here.
enabledEvents* An array of event names (strings) determining whitelisted events (ie. which events will be reported; if empty, all events are enabled). Eligible event names can be found in the events.md file.
userIDs* An object mapping Discord IDs to Trello usernames, like so: userIDs: {"TrelloUser": "1395184357104955", ...}, so Trellobot can pull relevant user data from Discord.
realNames* A boolean (defaulting to true) that determines whether Trellobot uses the full names or usernames from Trello (eg. John Smith vs jsmiff2)

You can refer to the conf.json included in the repository for an example.

.auth

The .auth file is included as a template to save you time, but you will need to create the keys and tokens yourself to run Trellobot. Here's how:

Property How to get the value
discordToken Create an app for Trellobot to work through on Discord's developer site, then create a bot user (below app description/icon) and copy the token.
trelloKey Visit this page to generate your public Trello API key.
trelloToken Visit https://trello.com/1/connect?name=Trellobot&response_type=token&expiration=never&key=YOURPUBLICKEY (replacing YOURPUBLICKEY with the appropriate key) to generate a token that does not expire. Remove &expiration=never from the URL if you'd prefer a temporary token.

That's all for now.

i know the name is lame

trellobot's People

Contributors

angush avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

trellobot's Issues

No Trello Reports

Hey there, everything is working fine as in it is launching and I am able to run .ping fine. But the actual reporting of the trello cards does not work. Anyone able to lend some advice?

Server with ID "*****" not found!

Hello !

Tried using your bot but I'm stuck on this message :

root@cd877668d43c:/opt/trellobot/trellobot# node trellobot.js
Server with ID "****" not found! I can't function without a valid server and channel.
Please add the correct server ID to your conf file, or if the conf data is correct, ensure I have proper access.
You may need to add me to your server using this link: [redacted]

(I removed the server ID and invite link from this issue).
I'm 100% sure to I have completed the configuration file correctly. I even used the generated invite link, but nope. Did I miss something ?

Bot cannot authorize Trello account

Hello, when clicking the link the bot gives about authorizing the bot with a Trello account. The bot replies with this:

Either you didn't select a board or you haven't authorized your Trello account with Discord! Please authorize here: https://trello.snazzah-is.cool/auth

I get the following error after attempting to go through the link:

image

No Reports?

I got it up-and-running and .ping works but I'm not getting any reports. Time is 10000ms (10 seconds) and I have 'cardCreated' as the only thing. I created a new card on the board and nothing was logged.

Anyone got a fix?

Can't add anything to "enabledEvents" because npm install isn't working fully.

C:\trellobot-master>node trellobot.js
undefined:11
"cardDescriptionChanged"
^

SyntaxError: Unexpected string in JSON at position 222
at JSON.parse ()
at Object. (C:\trellobot-master\trellobot.js:5:19)
�[90m at Module._compile (internal/modules/cjs/loader.js:955:30)�[39m
�[90m at Object.Module._extensions..js (internal/modules/cjs/loader.js:991:10)�[39m
�[90m at Module.load (internal/modules/cjs/loader.js:811:32)�[39m
�[90m at Function.Module._load (internal/modules/cjs/loader.js:723:14)�[39m
�[90m at Function.Module.runMain (internal/modules/cjs/loader.js:1043:10)�[39m
�[90m at internal/main/run_main_module.js:17:11�[39m


C:\trellobot-master>npm install
npm WARN [email protected] requires a peer of bufferutil@^3.0.3 but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of erlpack@discordapp/erlpack but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of node-opus@^0.2.7 but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of opusscript@^0.0.6 but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of sodium@^2.0.3 but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of libsodium-wrappers@^0.7.3 but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of uws@^9.14.0 but none is installed. You must install peer dependencies yourself.

audited 43 packages in 0.709s
found 4 moderate severity vulnerabilities
run npm audit fix to fix them, or npm audit for details


I tried doing "npm install XXXXX" for each missing node but it didn't work.

Cannot Find Module Error.

When I try to run node trellobot.js I get the following error message

Error: Cannot find module '/Users/Dos/trellobot.js' at Function.Module._resolveFilename (internal/modules/cjs/loader.js:582:15) at Function.Module._load (internal/modules/cjs/loader.js:508:25) at Function.Module.runMain (internal/modules/cjs/loader.js:754:12) at startup (internal/bootstrap/node.js:283:19) at bootstrapNodeJSCore (internal/bootstrap/node.js:622:3)

Ability to have multiple board/channel setups.

Right now I'm running more than one instance of the bot so I can have multiple instances, but it would work great if it could work with multiple channels and their event setup for each in just one instance. ;)

Inaccurate event timestamp check

Based on this article, it looks like only the first 8 characters of a Trello event ID contain the timestamp, but trello-events compares the entire ID when trying to determine whether an event is newer. I noticed the problem when my bot instance started posting the same event over and over again.

The fix is simple (line 76 in trello-events/index.js):
actionId = parseInt(boardActions[ix].id.slice(0, 8), 16);

TypeError: resp.reverse is not a function

Hello,

I tried installing the trellobot on my debian 9 machine but I am not able to run it. After setting up the config and starting the bot, this shows up:

== Bot logged in as @Trellobot#2254. Ready for action! ==
/home/sargon/trellobot/node_modules/trello-events/index.js:71
var boardActions = resp.reverse();
^

TypeError: resp.reverse is not a function
at /home/sargon/trellobot/node_modules/trello-events/index.js:71:27
at Request._callback (/home/sargon/trellobot/node_modules/node-trello/lib/node-trello.coffee:60:16)
at Request.self.callback (/home/sargon/trellobot/node_modules/request/main.js:122:22)
at Request.emit (events.js:182:13)
at Request. (/home/sargon/trellobot/node_modules/request/main.js:661:16)
at Request.emit (events.js:187:15)
at IncomingMessage. (/home/sargon/trellobot/node_modules/request/main.js:623:14)
at IncomingMessage.emit (events.js:187:15)
at endReadableNT (_stream_readable.js:1092:12)
at process._tickCallback (internal/process/next_tick.js:63:19)

Reminder system

Would it be possible to integrate an automatic reminder system based on the "due date" of a Trello card? The system could ping a discord user according to a defined ping cycle, example :

  • 1 week before
  • 2 days before
  • The same day
  • etc...

As long as the card has not been moved to a specific list or archived.

token issue

im 90% sure the token is correct. i regenerated it a few times and it still dosen't work

(node:3337) UnhandledPromiseRejectionWarning: Error: An invalid token was provided.
at Promise (/home/pi/Bots/Trello_2/node_modules/discord.js/src/client/rest/RESTMethods.js:32:44)
at new Promise ()
at RESTMethods.login (/home/pi/Bots/Trello_2/node_modules/discord.js/src/client/rest/RESTMethods.js:31:12)
at Client.login (/home/pi/Bots/Trello_2/node_modules/discord.js/src/client/Client.js:277:30)
at Object. (/home/pi/Bots/Trello_2/trellobot.js:28:5)
at Module._compile (internal/modules/cjs/loader.js:778:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
at Module.load (internal/modules/cjs/loader.js:653:32)
at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
at Function.Module._load (internal/modules/cjs/loader.js:585:3)
(node:3337) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:3337) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

Bot crash on start

Unable to install these dependencies whatever i try to do.

Then if i start the bot it crashes
b067733f633fd89a4fb05d43f4ca10bd

trello-events 'trelloError' event called

Hey, I've been working around trello-events package myself and trying to figure out how it was working.
So I copy-pasted a bit of your code.
Nothing was working at all (discord was but not trello-events), so I decided to add the trelloError event.
And poof, an error showed up:
Error: read ECONNRESET at TLSWrap.onStreamRead (internal/stream_bas ESET', code: 'ECONNRESET', syscall: 'read' }
I looked around and found nothing yet, maybe you could help me,
Thanks.

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.