Giter Site home page Giter Site logo

harambot's Introduction

Hi, I'm Dave

I am a Co-Founder of WOCH Studios and a Full Stack Developer. I currently work at Siren Solutions as a Senior Implementation Consultant. I like to building things.

If you'd like to help support my open source work please consider sponsoring me on GitHub

Github-sponsors

What I work with

Datastores

MySQL Postgres Oracle ElasticSearch

Languages

Python JavaScript TypeScript Go Java Shell Script Apache Groovy PHP

Frameworks

Django Flask React Spring

Cloud

Render Azure Heroku AWS

OS

Windows Pop!_OS Ubuntu Android

Automation

Ansible Docker Kubernetes

Tools

Grafana Prometheus Terraform Wireguard Jenkins Insomnia CMake

Projects I maintain

Projects I contribute to

Articles I write

harambot's People

Contributors

dependabot[bot] avatar dmcp89 avatar ebrock 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

Watchers

 avatar  avatar  avatar  avatar

harambot's Issues

"Waivers"

I believe the command /waivers is spelled wrong (currently "waviers"). That's all!

Trade command failing in NBA leagues

Describe the bug
trade command is not working as expected for NBA leagues

To Reproduce
Steps to reproduce the behavior:
Run the trade command while a trade is up for approval

Expected behavior
Harambot should post the trade details to the channel for voting

2022-10-16T21:01:54.444173+00:00 app[worker.1]: [2022-10-16 21:01:54,444 INFO] [/app/harambot/cogs/yahoo.py.yahoo.trade] trade called
2022-10-16T21:01:55.257737+00:00 app[worker.1]: Error while fetching player details for player: Aaron Gordon in league 15944
2022-10-16T21:01:55.257771+00:00 app[worker.1]: Traceback (most recent call last):
2022-10-16T21:01:55.257771+00:00 app[worker.1]:   File "/app/harambot/yahoo_api.py", line 82, in get_player_details
2022-10-16T21:01:55.257772+00:00 app[worker.1]:     embed.add_field(name="Total Points", value=player['player_points']['total'])
2022-10-16T21:01:55.257773+00:00 app[worker.1]: KeyError: 'player_points'
2022-10-16T21:01:55.260232+00:00 app[worker.1]: [2022-10-16 21:01:55,259 ERROR] [discord.ext.commands.bot.bot.on_command_error] Ignoring exception in command trade
2022-10-16T21:01:55.260232+00:00 app[worker.1]: Traceback (most recent call last):
2022-10-16T21:01:55.260233+00:00 app[worker.1]:   File "/app/.heroku/python/lib/python3.10/site-packages/discord/ext/commands/core.py", line 190, in wrapped
2022-10-16T21:01:55.260233+00:00 app[worker.1]:     ret = await coro(*args, **kwargs)
2022-10-16T21:01:55.260234+00:00 app[worker.1]:   File "/app/harambot/cogs/yahoo.py", line 72, in trade
2022-10-16T21:01:55.260235+00:00 app[worker.1]:     api_details = self.yahoo_api.get_player_details(player['name'])["text"]+"\n"
2022-10-16T21:01:55.260235+00:00 app[worker.1]: TypeError: 'NoneType' object is not subscriptable
2022-10-16T21:01:55.260236+00:00 app[worker.1]: 
2022-10-16T21:01:55.260236+00:00 app[worker.1]: The above exception was the direct cause of the following exception:
2022-10-16T21:01:55.260237+00:00 app[worker.1]: 
2022-10-16T21:01:55.260237+00:00 app[worker.1]: Traceback (most recent call last):
2022-10-16T21:01:55.260237+00:00 app[worker.1]:   File "/app/.heroku/python/lib/python3.10/site-packages/discord/ext/commands/bot.py", line 1347, in invoke
2022-10-16T21:01:55.260237+00:00 app[worker.1]:     await ctx.command.invoke(ctx)
2022-10-16T21:01:55.260237+00:00 app[worker.1]:   File "/app/.heroku/python/lib/python3.10/site-packages/discord/ext/commands/core.py", line 986, in invoke
2022-10-16T21:01:55.260237+00:00 app[worker.1]:     await injected(*ctx.args, **ctx.kwargs)  # type: ignore
2022-10-16T21:01:55.260238+00:00 app[worker.1]:   File "/app/.heroku/python/lib/python3.10/site-packages/discord/ext/commands/core.py", line 199, in wrapped
2022-10-16T21:01:55.260238+00:00 app[worker.1]:     raise CommandInvokeError(exc) from exc
2022-10-16T21:01:55.260238+00:00 app[worker.1]: discord.ext.commands.errors.CommandInvokeError: Command raised an exception: TypeError: 'NoneType' object is not subscriptable
2022-10-16T21:01:55.260267+00:00 app[worker.1]: [2022-10-16 21:01:55] [ERROR   ] discord.ext.commands.bot: Ignoring exception in command trade
2022-10-16T21:01:55.260267+00:00 app[worker.1]: Traceback (most recent call last):
2022-10-16T21:01:55.260267+00:00 app[worker.1]:   File "/app/.heroku/python/lib/python3.10/site-packages/discord/ext/commands/core.py", line 190, in wrapped
2022-10-16T21:01:55.260267+00:00 app[worker.1]:     ret = await coro(*args, **kwargs)
2022-10-16T21:01:55.260267+00:00 app[worker.1]:   File "/app/harambot/cogs/yahoo.py", line 72, in trade
2022-10-16T21:01:55.260268+00:00 app[worker.1]:     api_details = self.yahoo_api.get_player_details(player['name'])["text"]+"\n"
2022-10-16T21:01:55.260268+00:00 app[worker.1]: TypeError: 'NoneType' object is not subscriptable
2022-10-16T21:01:55.260268+00:00 app[worker.1]: 
2022-10-16T21:01:55.260268+00:00 app[worker.1]: The above exception was the direct cause of the following exception:
2022-10-16T21:01:55.260268+00:00 app[worker.1]: 
2022-10-16T21:01:55.260268+00:00 app[worker.1]: Traceback (most recent call last):
2022-10-16T21:01:55.260268+00:00 app[worker.1]:   File "/app/.heroku/python/lib/python3.10/site-packages/discord/ext/commands/bot.py", line 1347, in invoke
2022-10-16T21:01:55.260269+00:00 app[worker.1]:     await ctx.command.invoke(ctx)
2022-10-16T21:01:55.260269+00:00 app[worker.1]:   File "/app/.heroku/python/lib/python3.10/site-packages/discord/ext/commands/core.py", line 986, in invoke
2022-10-16T21:01:55.260269+00:00 app[worker.1]:     await injected(*ctx.args, **ctx.kwargs)  # type: ignore
2022-10-16T21:01:55.260279+00:00 app[worker.1]:   File "/app/.heroku/python/lib/python3.10/site-packages/discord/ext/commands/core.py", line 199, in wrapped
2022-10-16T21:01:55.260279+00:00 app[worker.1]:     raise CommandInvokeError(exc) from exc
2022-10-16T21:01:55.260279+00:00 app[worker.1]: discord.ext.commands.errors.CommandInvokeError: Command raised an exception: TypeError: 'NoneType' object is not subscriptable

Allow moderators to configure harambot

Currently, harambot is set up to only allow the owner of the discord guild to configure it. For larger guilds it would be convenient to allow moderators or admins to configure it as well.

Think I'm missing a step

I followed the directions step by step, but once I added the bot to my Discord server, it didn't message me directly to be set up. It also shows as offline in the Discord server.

I also get this issue on Heroku:

Application error
An error occurred in the application and your page could not be served. If you are the application owner, check your logs for details. You can do this from the Heroku CLI with the command
heroku logs --tail

I'm not a developer, so I'm not sure what to troubleshoot here. Can you help? Thanks!

Matchups command not working for NHL leagues

The $matchups command is not returning anything when using an NHL league.

[2021-11-30 23:18:44,546 INFO] [/home/dave/workspace/python/bots/harambot/harambot/cogs/yahoo.py.yahoo.standings] standings called
Error while fetching matchups for league: 70652
Traceback (most recent call last):
  File "/home/dave/workspace/python/bots/harambot/harambot/yahoo_api.py", line 132, in get_matchups
    team1_win_probability = "{:.0%}".format(team1[1]['win_probability'])
KeyError: 'win_probability'

Seems like the win probability will be not always get returned.

Heroku deployment issues with 0.2.0-Beta

Describe the bug
the bot was deployed to heroku, added to the discord server, and successfully configured. however, it is not responding to any bot commands.

To Reproduce
Steps to reproduce the behavior:

  1. issued a command such as "$standings", no response

Expected behavior

response from the bot commands.

logs from Heroku bot

> `2022-10-02T18:52:39.486349+00:00 app[worker.1]: [2022-10-02 18:52:39] [ERROR   ] discord.client: Ignoring exception in on_message
> 2022-10-02T18:52:39.486356+00:00 app[worker.1]: Traceback (most recent call last):
> 2022-10-02T18:52:39.486357+00:00 app[worker.1]:   File "/app/.heroku/python/lib/python3.10/site-packages/peewee.py", line 7024, in get
> 2022-10-02T18:52:39.486357+00:00 app[worker.1]:     return clone.execute(database)[0]
> 2022-10-02T18:52:39.486358+00:00 app[worker.1]:   File "/app/.heroku/python/lib/python3.10/site-packages/peewee.py", line 4389, in __getitem__
> 2022-10-02T18:52:39.486358+00:00 app[worker.1]:     return self.row_cache[item]
> 2022-10-02T18:52:39.486359+00:00 app[worker.1]: IndexError: list index out of range
> 2022-10-02T18:52:39.486359+00:00 app[worker.1]: 
> 2022-10-02T18:52:39.486360+00:00 app[worker.1]: During handling of the above exception, another exception occurred:
> 2022-10-02T18:52:39.486360+00:00 app[worker.1]: 
> 2022-10-02T18:52:39.486360+00:00 app[worker.1]: Traceback (most recent call last):
> 2022-10-02T18:52:39.486361+00:00 app[worker.1]:   File "/app/.heroku/python/lib/python3.10/site-packages/discord/client.py", line 409, in _run_event
> 2022-10-02T18:52:39.486361+00:00 app[worker.1]:     await coro(*args, **kwargs)
> 2022-10-02T18:52:39.486362+00:00 app[worker.1]:   File "/app/.heroku/python/lib/python3.10/site-packages/discord/ext/commands/bot.py", line 1392, in on_message
> 2022-10-02T18:52:39.486362+00:00 app[worker.1]:     await self.process_commands(message)
> 2022-10-02T18:52:39.486363+00:00 app[worker.1]:   File "/app/.heroku/python/lib/python3.10/site-packages/discord/ext/commands/bot.py", line 1389, in process_commands
> 2022-10-02T18:52:39.486363+00:00 app[worker.1]:     await self.invoke(ctx)  # type: ignore
> 2022-10-02T18:52:39.486363+00:00 app[worker.1]:   File "/app/.heroku/python/lib/python3.10/site-packages/discord/ext/commands/bot.py", line 1347, in invoke
> 2022-10-02T18:52:39.486364+00:00 app[worker.1]:     await ctx.command.invoke(ctx)
> 2022-10-02T18:52:39.486364+00:00 app[worker.1]:   File "/app/.heroku/python/lib/python3.10/site-packages/discord/ext/commands/core.py", line 978, in invoke
> 2022-10-02T18:52:39.486364+00:00 app[worker.1]:     await self.prepare(ctx)
> 2022-10-02T18:52:39.486365+00:00 app[worker.1]:   File "/app/.heroku/python/lib/python3.10/site-packages/discord/ext/commands/core.py", line 897, in prepare
> 2022-10-02T18:52:39.486365+00:00 app[worker.1]:     await self.call_before_hooks(ctx)
> 2022-10-02T18:52:39.486365+00:00 app[worker.1]:   File "/app/.heroku/python/lib/python3.10/site-packages/discord/ext/commands/core.py", line 843, in call_before_hooks
> 2022-10-02T18:52:39.486365+00:00 app[worker.1]:     await hook(ctx)
> 2022-10-02T18:52:39.486366+00:00 app[worker.1]:   File "/app/harambot/cogs/yahoo.py", line 30, in cog_before_invoke
> 2022-10-02T18:52:39.486366+00:00 app[worker.1]:     guild = Guild.get(Guild.guild_id == str(ctx.guild.id))
> 2022-10-02T18:52:39.486367+00:00 app[worker.1]:   File "/app/.heroku/python/lib/python3.10/site-packages/peewee.py", line 6576, in get
> 2022-10-02T18:52:39.486367+00:00 app[worker.1]:     return sq.get()
> 2022-10-02T18:52:39.486367+00:00 app[worker.1]:   File "/app/.heroku/python/lib/python3.10/site-packages/peewee.py", line 7027, in get
> 2022-10-02T18:52:39.486367+00:00 app[worker.1]:     raise self.model.DoesNotExist('%s instance matching query does '
> 2022-10-02T18:52:39.486368+00:00 app[worker.1]: database.models.GuildDoesNotExist: <Model: Guild> instance matching query does not exist:
> 2022-10-02T18:52:39.486369+00:00 app[worker.1]: SQL: SELECT "t1"."id", "t1"."guild_id", "t1"."access_token", "t1"."refresh_token", "t1"."expires_in", "t1"."token_type", "t1"."xoauth_yahoo_guid", "t1"."token_time", "t1"."league_id", "t1"."league_type", "t1"."RIP_text", "t1"."RIP_image_url" FROM "guild" AS "t1" WHERE ("t1"."guild_id" = %s) LIMIT %s OFFSET %s
> 2022-10-02T18:52:39.486370+00:00 app[worker.1]: Params: ['842247078146474025', 1, 0]

Stats command fails in leagues with category scoring

Describe the bug
The stats command fails to retrieve player stats when running against a NBA fantasy league

To Reproduce
Steps to reproduce the behavior:

  1. Install and configure harambot with a yahoo NBA fantasy leauge
  2. Add harambot to your discord server
  3. run $stats Lebron James
  4. See logs
2022-10-11T04:51:53.679349+00:00 app[worker.1]: Error while fetching player details for player: Lebron James in league 15944
2022-10-11T04:51:53.679371+00:00 app[worker.1]: Traceback (most recent call last):
2022-10-11T04:51:53.679371+00:00 app[worker.1]:   File "/app/harambot/yahoo_api.py", line 82, in get_player_details
2022-10-11T04:51:53.679372+00:00 app[worker.1]:     embed.add_field(name="Total Points", value=player['player_points']['total'])
2022-10-11T04:51:53.679372+00:00 app[worker.1]: KeyError: 'player_points'

Expected behavior
Player stat card returned

Placeholder for team names?

Is your feature request related to a problem? Please describe.
Would it be possible to add placeholders for team names instead of having to type out long and wordy team names?

Describe the solution you'd like
Example store team name "Goeddert Hurts 2B So Good" as "David"

Describe alternatives you've considered
Or can we add a list so users can choose from options

Additional context
this is for the roster query

Bot needs to sync commands once configured on new server

Describe the bug
Currently, the bot only syncs the commands to each server at start-up. This means any time a new guild adds the bot it will only have the configure command available until the bot is restarted.

To Reproduce
Steps to reproduce the behavior:

  1. Add bot to new guild
  2. Configure guild with /configure
  3. Try to run any other command
  4. No commands available

Expected behavior
All commands should be available once a guild has been configured.

Waiver command fails when there are no transactions in previous 24 hours

Describe the bug
If there are no transactions within the commands look back period (24 hours) the command will hang and return an error

To Reproduce
Steps to reproduce the behavior:

  1. Ensure no waiver transactions have taken place in the last 24 hours
  2. Run the waiver command

Expected behavior
Bot should message that it did not find any transactions

Adding Bot to Server

Discussed in #53

Originally posted by stear541 September 13, 2022
Hi there, I have the bot running locally and see the following message in the WSL terminal:
[2022-09-13 12:46:46,357 INFO] [harambot.py.harambot.on_ready] Everything's all ready to go~
[2022-09-13 13:16:58,971 INFO] [harambot.py.harambot.on_guild_join] Joined The Homies Fantasy Football

So the bot is running and has been added to the server successfully.

However commands within Discord are not quite working. Typing $standings for example does not return any message from the bot. What permissions are needed on the bot's OAuth2 URL generator? I have bot selected followed by Send Messages and Embed Links. Anything else needed?

Any other tips?

Thanks!

Refactor set_yahoo_from_interaction to decorator in Yahoo Cog

We call this function to set the correct yahoo credentials before each command in the Yahoo cog:

    async def set_yahoo_from_interaction(
        self, interaction: discord.Interaction
    ):
        guild = Guild.get(Guild.guild_id == str(interaction.guild_id))
        self.yahoo_api = Yahoo(
            OAuth2(
                self.KEY, self.SECRET, store_file=False, **model_to_dict(guild)
            ),
            guild.league_id,
            guild.league_type,
        )
        return

This should be refactored to a decorator that is attached to each command.

Trade causes bot to not respond

Describe the bug
Bot will not respond on trade call

To Reproduce
Call trade with /trade

Expected behavior
Should return last trade call from league

Screenshots
image

Error while issuing $trade

Describe the bug
calling $trade results in an error

To Reproduce
Steps to reproduce the behavior:

  1. issue $trade command

Expected behavior
Latest trade awaiting league approval is displayed

Additional context

[2021-11-30 23:51:21,270 INFO] [/home/dave/workspace/python/bots/harambot/harambot/cogs/yahoo.py.yahoo.trade] trade called
Error while fetching latest trade
Traceback (most recent call last):
  File "/home/dave/workspace/python/bots/harambot/harambot/yahoo_api.py", line 159, in get_latest_trade
    return accepted_trades[0]
IndexError: list index out of range
Ignoring exception in command trade:
Traceback (most recent call last):
  File "/home/dave/workspace/python/bots/harambot/.venv/lib/python3.7/site-packages/discord/ext/commands/core.py", line 85, in wrapped
    ret = await coro(*args, **kwargs)
  File "/home/dave/workspace/python/bots/harambot/harambot/cogs/yahoo.py", line 26, in setup
    await func(cog, ctx)
  File "/home/dave/workspace/python/bots/harambot/harambot/cogs/yahoo.py", line 72, in trade
    trader = teams[latest_trade['trader_team_key']]
TypeError: 'NoneType' object is not subscriptable

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/dave/workspace/python/bots/harambot/.venv/lib/python3.7/site-packages/discord/ext/commands/bot.py", line 939, in invoke
    await ctx.command.invoke(ctx)
  File "/home/dave/workspace/python/bots/harambot/.venv/lib/python3.7/site-packages/discord/ext/commands/core.py", line 863, in invoke
    await injected(*ctx.args, **ctx.kwargs)
  File "/home/dave/workspace/python/bots/harambot/.venv/lib/python3.7/site-packages/discord/ext/commands/core.py", line 94, in wrapped
    raise CommandInvokeError(exc) from exc
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: TypeError: 'NoneType' object is not subscriptable

Trade command fails on leagues with trade review setting set to Commissioner approval

Describe the bug
My league's trade review setting is set to "Commissioner", when I run the trade command the bot returns an error.

To Reproduce
Steps to reproduce the behavior:

  1. Configure the bot with a league that has the trade review setting set to "Commissioner"
  2. Have a trade accepted in the league
  3. Run Trade command

Expected behavior
Trade details returned for league vote.

Matchups command fails with in leagues with category scoring

Describe the bug
The matchups command fails to retrieve match ups when running against an NBA fantasy league

To Reproduce
Steps to reproduce the behavior:

  1. Install and configure harambot with a yahoo NBA fantasy leauge
  2. Add harambot to your discord server
  3. run $mstachups
  4. See logs
2022-10-11T04:56:38.974695+00:00 app[worker.1]: Error while fetching matchups for league: 15944
2022-10-11T04:56:38.974708+00:00 app[worker.1]: Traceback (most recent call last):
2022-10-11T04:56:38.974709+00:00 app[worker.1]:   File "/app/harambot/yahoo_api.py", line 131, in get_matchups
2022-10-11T04:56:38.974710+00:00 app[worker.1]:     team1_projected_points = team1[1]['team_projected_points']['total']
2022-10-11T04:56:38.974710+00:00 app[worker.1]: KeyError: 'team_projected_points'

Expected behavior
Matchups card returned

Matchup Command failing for category scoring NHL league

Describe the bug
The matchup command does not return when run against a NHL league that uses category scoring

To Reproduce
Steps to reproduce the behavior:

  1. Configure the bot to run against an NHL league that uses category scoring format
  2. Run the matchup command

Expected behavior
A clear and concise description of what you expected to happen.

Logs

Oct 17 07:58:35 PM  Error while fetching matchups for league: 43608
Oct 17 07:58:35 PM  Traceback (most recent call last):
Oct 17 07:58:35 PM    File "/usr/local/lib/python3.10/site-packages/harambot/yahoo_api.py", line 120, in get_matchups
Oct 17 07:58:35 PM      team1_details = self.get_matchup_details(matchup["0"]["team"])
Oct 17 07:58:35 PM    File "/usr/local/lib/python3.10/site-packages/harambot/yahoo_api.py", line 146, in get_matchup_details
Oct 17 07:58:35 PM      team1_projected_points = team[1]["team_projected_points"]["total"]
Oct 17 07:58:35 PM  KeyError: 'team_projected_points'
Oct 17 07:58:35 PM  [2023-10-17 23:58:35] [ERROR   ] discord.app_commands.tree: Ignoring exception in command 'matchups'
Oct 17 07:58:35 PM  Traceback (most recent call last):
Oct 17 07:58:35 PM    File "/usr/local/lib/python3.10/site-packages/discord/app_commands/commands.py", line 827, in _do_call
Oct 17 07:58:35 PM      return await self._callback(self.binding, interaction, **params)  # type: ignore
Oct 17 07:58:35 PM    File "/usr/local/lib/python3.10/site-packages/harambot/cogs/yahoo.py", line 264, in matchups
Oct 17 07:58:35 PM      week, details = self.yahoo_api.get_matchups()
Oct 17 07:58:35 PM  TypeError: cannot unpack non-iterable NoneType object
Oct 17 07:58:35 PM  

Waiver messages do not show ownership information

Describe the bug
The messages sent by the waiver command do not show who made the transaction.

To Reproduce
Steps to reproduce the behavior:

  1. Run the waiver command

Expected behavior
Messages should contain ownership information

Support Multiple RIP Image URLs

Is your feature request related to a problem? Please describe.
Could support for multiple RIP image urls be added? Then if 2+ exist, one could be returned at random

Describe the solution you'd like
Multiple image urls can be added when doing /configure. When /rip is sent, a random image url is returned. Could even simply be a CSV list in /configure that gets parsed and randomly selected when returning the embed.

Describe alternatives you've considered
It's possible to just reconfigure often, maybe a new image once a week.

Additional context
Gotta keep the trash talking fresh!

Setup Heroku Deployments

In order to streamline bot configuration and deployment I want to setup deployments through Heroku

Bot doesn't respond to /configure command after Heroku install

Describe the bug
Hi there. I just went through the Heroku deployment workflow to install the service, pasted Yahoo and Discord credentials into the appropriate fields, etc.. When I add the bot to my league's discord, my logs look normal:

2023-08-03T19:51:25.121316+00:00 app[worker.1]: Requirement already satisfied: yahoo-oauth==2.0 in ./.heroku/python/lib/python3.11/site-packages (from -r requirements.txt (line 54)) (2.0)
2023-08-03T19:51:25.123776+00:00 app[worker.1]: Requirement already satisfied: yarl==1.8.1 in ./.heroku/python/lib/python3.11/site-packages (from -r requirements.txt (line 55)) (1.8.1)
2023-08-03T19:51:29.879002+00:00 app[worker.1]: [2023-08-03 19:51:29] [INFO    ] discord.client: logging in using static token
2023-08-03T19:51:30.264395+00:00 app[worker.1]: [2023-08-03 19:51:30] [INFO    ] discord.gateway: Shard ID None has connected to Gateway (Session ID: f1adaa0aab91ad13a89549deacf8477f).
2023-08-03T19:51:32.285216+00:00 app[worker.1]: [2023-08-03 19:51:32,285 INFO] [harambot.py.bot.on_ready] Everything's all ready to go~
2023-08-03T19:51:32.285791+00:00 app[worker.1]: [2023-08-03 19:51:32,285 INFO] [/app/harambot/cogs/webserver.py.webserver.webserver] Webserver started on port 6838
2023-08-03T19:52:11.895656+00:00 app[worker.1]: [2023-08-03 19:52:11,895 INFO] [harambot.py.bot.on_guild_join] Joined Bill's Professional Football Server
2023-08-03T19:52:11.899240+00:00 app[worker.1]: [2023-08-03 19:52:11,899 INFO] [harambot.py.bot.on_guild_join] Guild not configured!

I created a bot invite link: https://discord.com/oauth2/authorize?client_id=XXX&permissions=277025505344&scope=bot

And discord adds the bot and I am prompted to give a configure command

Harambot
BOT
 โ€” Today at 12:52 PM
Thank you for adding Harambot to your server!
        Please complete your setup by running the /configure command!

However, when I send back the /configure command, I receive no further prompt from the bot:

image

To Reproduce
Steps to reproduce the behavior:

  1. Followed the Heroku installation workflow through https://heroku.com/deploy
  2. Installed the Yahoo App per instructions
  3. Installed the Discord bot per instructions
  4. Get an initial DM from the discord bot, and log lines in the heroku instance saying Guild not configured
  5. (a few times) Tried uninstalling the heroku app, restarting, etc..

Expected behavior
Expect sending /configure to the bot to give me a prompt to configure the guild as described in your installation instructions

Screenshots
See Above

Update trade command to use discord polls

Is your feature request related to a problem? Please describe.
Update the trade command to use the native discord polls instead of emojis for voting on trades.

Describe the solution you'd like
When the trade command is called it should create a poll with the latest trade that is up for league approval.

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.