pymedusa / Medusa

Automatic Video Library Manager for TV Shows. It watches for new episodes of your favorite shows, and when they are posted it does its magic.
https://pymedusa.com
GNU General Public License v3.0
1.76k stars 274 forks source link

Paginating show view - is implemented "illogically"... Suggesting to fix/improve #7385

Closed rafi-d closed 3 years ago

rafi-d commented 4 years ago

Using 0.37. Nice work with improved vue!
Just commenting on a "bug" in the new pagination feature:

  1. See attached. When paginating by lines # (as per the current design) - seasons are being split in the middle between pages.
  2. Also the summery in the bottom lines is illogical for the last/first season when splitted

    I suggest to fix it by: A. Page size will be # of seasons, and not # lines , so for example : page=2 - two whole seasons=1 page B. Provide the paging control also at the beginning of the page, not only at the bottom

1

p0psicles commented 4 years ago

That's not that easy to implement unfortunately.

p0psicles commented 4 years ago

I'll add an option that disabled pagination

rafi-d commented 4 years ago

Good workaround... But, that by-seasons# is the logical way to do it, right?... Isn't it just adding up/counting the episodes and split in the right place?... :) Plus, you will be the first in the world to implement "smart pagination" as it should really be, who knows, it might be named after you ... ;)

p0psicles commented 4 years ago

Yeah, but i'm using vue-good-tables for the vue table rendering. I already had to add allot of modifications. And pagination was one of the features I could kinda use out of the box. So rewriting that will cost me like 3 days. I can use my time better. So i'm moving on.

rafi-d commented 4 years ago

OK.

On a side-note: I wanted to open a couple of PRs (utorrent client fix, season 0 support, the proposed simple file-size filter I'm using etc), and had problems syncing my remote fork to you (push -force of develop did not work, it asked to merge stuff). What would be the easiest way for me to "reset" my remote fork to your current develop branch, so to easily checkin the PR into it? Exact steps if you can please...

Thanks

p0psicles commented 4 years ago

you can checkin at discord?

rafi-d commented 4 years ago

I don't think so. Never tried/registered.

p0psicles commented 4 years ago

https://discord.gg/zMdAdUK

shawnhicks commented 4 years ago

I'll add an option that disabled pagination

Where is the "DISABLE PAGINATION" option? This feature is useless to me, it makes the pages load substantially slower than without. Can't access Specials until browser lets me get to the end of the page, choose All, wait some more for the fields to be prettied up, scroll again to the end (HOME and END key navigation seem to be broken as well). The dropdown for season lists Specials as the first item, but does nothing when they're not visible due to episode limit. Saturday Night Live should be your test case, as it probably has the largest number of episodes including specials. I like the "Search Episodes" entry box, but it needs a "clear filter/search" button. It would be nice to search show descriptions, not just titles. I always wondered why episode descriptions wasn't optionally displayed as a separate field instead of just a hover.

rafi-d commented 4 years ago

Can't access Specials until browser lets me get to the end of the page,

Do you auto-download specials? If so, how?

shawnhicks commented 4 years ago

I don't auto-download specials, I search for them manually. To clarify, with the new pagination, I can't see the Specials section of the page until overriding the limit at the bottom of the initially loaded page, then waiting for the rest to draw.

p0psicles commented 4 years ago

Pls tone it down a notch. I've spend allot of hours trying to improve this project for you guys. Sometime it takes a couple of iterations. I'll add the option when I get time and feel like it. Because users like you, I feel less like it

rafi-d commented 4 years ago

I don't auto-download specials, I search for them manually. To clarify, with the new pagination, I can't see the Specials section of the page until overriding the limit at the bottom of the initially loaded page, then waiting for the rest to draw.

Do you want to try test my mod/code-change so to try auto-downloading the specials?

p0psicles commented 4 years ago

@rafi-d you can create a PR. I'm also interested.

rafi-d commented 4 years ago

Sure, after I am satisfied it is working well, so not to take much of your time... If someone else who has interest in watching specials and can try it out - it can help.

It is not easy to test it, since specials are rare, and the way I test it (at least that it becomes "wanted") , is by changing my PC date. Sadly, I don't know how to change it back to unaired status. Any easy way to do it?

medariox commented 4 years ago

Change the value in the DB.

rafi-d commented 4 years ago

Change the value in the DB.

For some reason it does not seem to work (changed to episode status 1). Is it related to it being in season 0? or to cache? Or o the new vue implementation?

It might be useful is you can add "Unaired" to the Change status to: list on the show page ... :)

shawnhicks commented 4 years ago

How do I roll back to a version that doesn't have pagination? The following is the performance analysis of SNL. I'm ready to fork, where was the pagination last disabled/unimplemented? The time it takes to do a full page load of SNL (including clicking "All") takes MINUTES with pagination.

image

Is this right? image

medariox commented 4 years ago

No kidding, it's because you are disabling pagination. You can check the commit history yourself. Stop polluting this thread with nonsense.

p0psicles commented 4 years ago

Cleaning thread

shawnhicks commented 4 years ago

To be blunt, I love Medusa, I loved it's predecessors; I'm annoyed that pagination is slowing my use down, and that work on a feature that doesn't appear to add value has been prioritized over a verifiable UI bug I reported 6 weeks ago. While I understand the described intent behind pagination, I don't see how it's an optimization or improves UX, it is increasing script processing by the browser and adding a detrimental delay. It takes 85 seconds to load SNL over the network by initiating separate http get requests for each season and waiting for the browser to draw a table before requesting the next season. That's irrespective of the actual script processing time. (Ironic that it's chopping tables by episode count rather than displaying each entire season until the limit is reached.) The entire show is loaded (all seasons are transferred) whether or not it's displayed, so it's not about saving server cpu time or network bandwidth, only to present/draw tables one at a time instead of the entire page at once. I did wireshark captures to confirm behavior. I want to go back to default displaying the whole page with a single get, how can I do that? I've never had an issue with a second or two (or ten) of black screen while a page loads, but this multi-minute delay in getting to the Specials season of SNL is disturbing. (It happens to be the highest number of episodes of any show I use.) The additional cpu usage on both the server and the client retards performance. If there's a more appropriate location to voice my complaint, please inform me. If I can get an expedited resolution to this issue, I might be willing to pay for it.

p0psicles commented 4 years ago

@shawnhicks as you can see in PR #7438 i've added the option. My billable rate is € 60 an hour. I've spent two hours on it. Let me know how you want to do the transaction.

Having that out of the way. You don't have any right to complain. I do this in my spare time. I'm not getting paid for it. I enjoy programming. But the enjoyment goes away pretty fast with people like you thinking they are entitled to support, while doing absolutely nothing to help the project them self. Did you create any pull requests? Did you help others by answering questions in github issues or on discord? Did you write any documentation in the WIKI? No. But you do know which feature adds value and which does not? And dare to complain about us spending time on "not-important" features over your personal issue?

Let me tell you, if you know best. Then improve displayShow. We'll be expecting a PR.

shawnhicks commented 4 years ago

As soon as I see it working in release, I'd be happy to paypal your €120. If I had the time to work on it myself, I would. My professional experience is in application engineering (focused on networks), not programming. I've spent far more time interpreting policy and writing specifications than coding. I excel at solving expensive edge cases. I have limited experience using github, although I've used many IDEs and version control systems over the years. It always bothers me when someone makes a change that breaks a workflow. If I have any sense of entitlement, it's based on the number of years I've relied on a product to discover that the entire environment has to be re-engineered to accommodate a non-value-add change (speaking generally). I use Medusa as the central component to a hobby I have great passion for, and limited time to enjoy. Plex (lifetime paid) is the secondary, and I can be just as frustrated when they break something that I rely on. I may not be working on Medusa specifically, but I've contributed many hours to TheTVDB, Plex, and other related tools doing debug, performance analysis and policy discussion. I think I started using sickbeard around 2010, maybe earlier.

shawnhicks commented 4 years ago

I'm thrilled to see the option to disable pagination working in production, unfortunately the performance issue caused by loading one table at a time persists. I believe this was "vueification", I want it as fast as before the recent tampering. It currently takes 150 seconds to complete loading of SNL. Willing to send partial payment as appreciation. What paypal address should I send it to?

p0psicles commented 4 years ago

Before vueification some of the bigger shows. Like daily shows didn't load at all. They do now. So that's not an option. I did what you requested.

shawnhicks commented 4 years ago

/home/displayShow gets this: /api/v2/series/tvdb76177/episodes?limit=1000&season=1 then it gets /api/v2/series/tvdb76177/episodes?limit=1000 Why not &season=0? I mean, if your going to grab each season individually, why grab the whole thing all over again?

I still want to know where to send payment.

p0psicles commented 4 years ago

Tnx for reporting the bug. I've fixed it in #7490 For the paypal, contact me on discord