Giter Club home page Giter Club logo

plexi's People

Contributors

collectioncard avatar copetan avatar trademark124 avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

trademark124

plexi's Issues

Reactions for embeds are not checked for validity.

Plexi does not currently check to make sure that a reaction is valid. If an already requested movie is searched for and a user manually adds a thumbs up emote, Plexi will attempt to request it again. This works for any of the emotes that Plexi recognizes.

@kgranger777 should take a look at this issue. Might be a good place for him to start.

The issue lies within the handleMessageReactionAddAction method in the SearchSubmenu class.

Optimize the Paginator class for submenus

Currently, the paginator class goes straight for a submenu if there is only one result on the main menu. This is intended behavior. The issue is that we still send the first menu over and then immediately send the second menu to discord and edit the message. Not only is this sending more data, but the user can see the first menu for a brief second before the message is edited.

Proposal: We should make the paginator class go straight into a submenu if it meets the criteria instead of doing what it currently does.

Mispelling in the search command console log [BUG]

Describe the bug
When a user searches for media via the search command, Plexi logs the user, query, and number of results for the search. In the results portion of that log, it currently states " There result is X pages long" where X is the number of results.

To Reproduce
Steps to reproduce the behavior:

  1. Search for a movie with Plexi's search command
  2. Check the console
  3. See error

Expected behavior
The sentence should state "The result is X pages long" We should change There to The and remove the double space before the X.

Screenshots
Screenshot of typo
image

Plexi Host System:

  • OS: Mac OS
  • Version: 10.14.4 - Mojave

Additional context
NA

Plexi cannot request TV shows

For some reason, totally not because I'm to lazy to get episode requests working, plexi is unable to request television shows. Ideally, Plexi should be able to request the entire show or just the latest season.

Features to add

  • ability to request shows
    • request the latest season
    • request the entire series (disabled via config)

Items to remove

  • remove the hardcoded error response when reacting positively to the show's more info embed.

Document the code

All of the code needs documentation. We CANNOT release v1.0 without doing so. Its starting to get to the point where I am losing track of some of the lesser edited parts of Plexi.

Add similar movie reaction

There should be a button in the MovieMoreInfo embed that results in a new view being presented (paginated) that allows the user to view movies that tmdb believes are similar to the original.

@Copetan Which emoji should we use for this?

Allow users to approve media requests

Currently, admins need to log into ombi to approve media requests. Plexi should be able to approve media using the following commands:
[PREFIX]approve tv ID_NUMBER
[PREFIX]approve movie ID_NUMBER

Invalid request status

If a bit of media is requested but still not approved, Plexi will show it as being fully requested despite that not being true.

Occasional issue when shutting down plexi

Seemingly randomly, Plexi is unable to shut down properly. Following is the error printed to the log:

279525 [JDA Gateway-Worker 1] ERROR net.dv8tion.jda.internal.requests.WebSocketClient - Was unable to schedule next packet due to rejected execution by threadpool
java.util.concurrent.RejectedExecutionException: Task java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask@43e66292 rejected from java.util.concurrent.ScheduledThreadPoolExecutor@4d21949e[Shutting down, pool size = 1, active threads = 1, queued tasks = 0, completed tasks = 8]
    at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:2063)
    at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:830)
    at java.util.concurrent.ScheduledThreadPoolExecutor.delayedExecute(ScheduledThreadPoolExecutor.java:326)
    at java.util.concurrent.ScheduledThreadPoolExecutor.schedule(ScheduledThreadPoolExecutor.java:533)
    at net.dv8tion.jda.internal.requests.WebSocketSendingThread.scheduleIdle(WebSocketSendingThread.java:82)
    at net.dv8tion.jda.internal.requests.WebSocketSendingThread.scheduleNext(WebSocketSendingThread.java:167)
    at net.dv8tion.jda.internal.requests.WebSocketSendingThread.run(WebSocketSendingThread.java:157)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)

Even though this exception is thrown, the bot doesnt seem to have an issue shutting down.

OKHTTP reports that a response body was not closed

After running for a while, Plexi will report "WARNING: A connection to OMBI_URL was leaked. Did you forget to close a response body? To see where this was allocated, set the OkHttpClient logger level to FINE: Logger.getLogger(OkHttpClient.class.getName()).setLevel(Level.FINE);"

This is something that needs to be addressed.

Improve logging by adding textfile logs [ENHANCEMENT]

Is your feature request related to a problem? Please describe.
If the application were to crash due to an issue, we wouldn't be able to determine the exact cause of the issue. This and the fact that it would be nice to have the ability to audit past user actions / issues means that we should add a proper logging feature.

Describe the solution you'd like
Implement a text file that logs all activity/errors. If possible, make it so the log was timestamped and make each launch its own text file.

Describe alternatives you've considered
There is no current way to do this within Plexi

Additional context
It might be worthwhile to look into the logging lib that JDA uses since it is already included in the project. It might have a way to do this without too much additional work.

Missing reactions in the search command [BUG]

Describe the bug
Occasionally, there will be a reaction (or multiple) missing from the search paginator. This most likely extends to the others as they all share the same base class. Manually adding the reaction works just fine.

To Reproduce
Steps to reproduce the behavior:

  1. Use the search command
  2. A reaction might be missing
    This bug does not happen every time

Expected behavior
All emotes required to use the paginator should appear.

Plexi Host System:

  • OS: Mac OS
  • Version 10.11 El Capitan

Additional context
In my testing it seems to happen the most on the first time a paginator of any type is created by plexi.

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.