[REJECTED] TheCogCollective - game-library

Discord Name: vjFaLk#2164 and Alchez#0426

GitHub Repository (Must be V3): https://github.com/TheCogCollective/Discord_Game_Library

Description:

The cog in our repo allows:

  • managing game libraries for multiple users,
  • providing suggestions from their common games,
  • checking if user(s) have particular games in their library,
  • connecting and syncing up user libraries from Steam,
  • creating polls for common games for people to vote on (using Strawpoll.me; max 30 games)

The inspiration for this idea came from multiple people wondering what to play next :thinking:.

We’re aware of the 3-cog minimum requirement for applications, but we feel our singular cog provides a fair amount of tools that would be better together than split over multiple smaller ones.

Thanks!

I find this cog very interesting
Maybe there is some chance to make a repo with multiple cogs from different people?
Because it really would be sad to see this cog declined just becasue the repo does not have three cogs

1 Like

Thanks for the support, @Smashidachi. Glad you like the cog idea!

We actually don’t mind adding cogs from other repos, it’ll help lend more effect to “The Cog Collective” :slight_smile:

This is a really nice cog, but it seems to be a little broken. Just testing it with a friend. Voice isn’t priority like the priority order says. Also the online User suggest doesn’t work for us. Only works as [p]game suggest voice.

But a really nice cog to find something to play as a group :slight_smile:

Ah, yeah, seems like the default choice wasn’t set properly. As for the “online” check, I’ll make a fix for that so it’ll pick up only users who have games in their libraries.

Thanks for using the cog! :slightly_smiling_face:

Hey @Mistery, I’ve made some fixes if you wanted to test them out again:

  • Priority order should be pulling voice now if no option is given
  • Suggestions for online users should be consistent with voice users

Don’t know what you did, but can’t update the Repo. Bot says everything is up to date.

@Mistery, after some discussion on the server, seems like it was most likely coming from bad naming of the cog. The latest fix changes the cog name to remove the special character.

Sorry for the inconvenience, but to reload your cog cleanly, you will have to run the following commands:

  • [p]unload game-library
  • [p]cog uninstall game-library
  • [p]repo update
  • [p]cog install gamelib
  • [p]load gamelib

Let me know if you get an error at some step.

Just an update from the previous post - the 4th command in the provided steps to reload the cog should instead be:

  • [p]cog install <repo_name> gamelib

If you’ve followed the installation steps from the repo, you can run:

  • [p]cog install collective gamelib

Hi Alchez, thank you for your patience while I review your repo.

Commit hash at time of review - f5986aa567689854afd75bdb32b151359cca1cee

gamelib

game.py

  • Line 9: You import a library which is blocking and expect to use it in a blocking fashion throughout the cog. By this we mean that everything on the bot has to be written asynchronously. That is to say without expecting one thing to happen before another and without waiting too long in between tasks. All interactions with the internet on the bot should be awaited. The library you’re using is expecting synchronous calls that is first this step then the next step. In this case if the steam servers are down for even a tiny blip or for whatever reason they take a couple seconds to respond your bot will hang until steam responds because this library is not designed to handle the api request asynchronously. You should look at making all usage of the steam library async - there’s approved cog creator examples around- or build your own access to the API for just what you need utilizing aiohttp.
  • Line 25-26: These should be on two lines not one.
  • Line 383: OSError is not the correct error that can apply here. You should look at requests.exceptions.HTTPError to be more explicit although because this library uses requests it is recommended not to be used on the bot at all. In the future for generic exceptions you want to catch without linters going crazy you should use Exception although that is also not recommended as it can lead to unexpected behavior and you should always be explicit.

Given the simplicity of the cog you have here I will be rejecting your application. I’m willing to consider this at most 2 cogs combined into 1, however it does not meet our minimum requirement of at least 3 cogs and it does not meet our requirements for complexity to be exempt from the 3 cog minimum.

You may re-apply once you have fixed the above listed issues, consider moving the strawpoll portion into its own separate cog with more functionality, have at least 1 more cog, and no sooner than 1 month from today.