Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Allow multiple language selections when fading out #753

Closed
Ten0 opened this issue Oct 13, 2020 · 4 comments
Closed

Allow multiple language selections when fading out #753

Ten0 opened this issue Oct 13, 2020 · 4 comments

Comments

@Ten0
Copy link

Ten0 commented Oct 13, 2020

Hi,

First of all thank you so much for this great app.

I watch streams in several languages and care more about the content than which of these languages it's using.
However the "Languages" parameter tab only allows to check a single language, and will grey out all streams in all languages but that one, and I couldn't figure out how to select several languages there, so the GUI would show live streams in all of them.

Could you please allow selecting several languages there ?

Thanks!

@Ten0
Copy link
Author

Ten0 commented Oct 13, 2020

It looks like as of the API change that corresponds to 1c59156 and according to what is described at #706 (comment), we could instead have StreamLink Twitch GUI query to the API without language filter, then grey out or completely filter out based on the checked languages in the parameters, with additionally, if there's actually a single one selected and the parameter to have them disappear completely is checked, we could filter via the API param.
Maybe related: #706 (comment)

@bastimeyer
Copy link
Member

or completely filter out based on the checked languages in the parameters

No, client side filtering won't be implemented and I won't further comment on it.
#724 (comment)
#724 (comment)

grey out

The fading mechanic is currently tied to the single language selection due to the API filtering restriction and it shares the same language attribute in the SettingsGUI data model fragment. This could be changed, but having two separate language selections for fading and filtering is also not a totally great solution, as it can potentially confuse the user and a brief note/description may need to be added.

@bastimeyer bastimeyer changed the title Allow watching streams of different languages. Allow multiple language selections when fading out Oct 14, 2020
@Ten0
Copy link
Author

Ten0 commented Oct 14, 2020

Hi! Thank you for your quick answer, and for the additional references.
It looks like you've already spent quite some time thinking about this issue.

I agree client-side filtering is dirty, extremely inefficient and never the good solution if you have control over both the server API and the client. I have no idea why Twitch removed that feature of allowing to filter on several languages.

having two separate language selections for fading and filtering is also not a totally great solution, as it can potentially confuse the user and a brief note/description may need to be added.

Unfortunately I beleive you're right it's not a totally great solution, but given the API limitations I'm afraid there's indeed no totally great solution. ^^'

However, I'm not sure whether that's what you meant, but it looks like we wouldn't need to have two different graphical language selections in order to have this, we could just prevent from being in Filter out streams mode if several languages are checked (with indeed an additional note for the user that says due to Twitch API limitations, it's not possible to select multiple languages in when in "Filter out Streams" mode).
It looks like automatically switching to Fade out streams mode and disabling the Filter out streams checkbox when a user selects a second language would be a reasonably easy and not-too-dirty solution to implement this.

With regards to it maybe being confusing for the user, probably the users who would get confused would be those trying to tick multiple languages, so they'd probably rather have that feature after getting confused for a few seconds than having to go through all the un-interesting streams every day.


at #113 (comment):

The infinite scroll mechanism is just one of those: Imagine the scenario where a user has only enabled one single language in which only a few poeple are streaming. Multiple consecutive API requests would be needed in order to fill the blank space of a stream list. This would increase the loading time by a lot.

If the previous suggestion was to be implemented, that would already be a huge gain for me (and apparently for other people: #732 #712 #281 #151). However I still feel like:

  • Loading time is even waaay longer if the user is the one having to manually click the "Fetch more" button to trigger the loading and have his brain compute which streams are greyed out so that he can just examine the other ones, and they are spreaded everywhere un-evenly on the screen.
  • Even if I still had to end up clicking the "Fetch more" button for just one or two streams and it took a while to load, I'd rather have that than 98% greyed-out streams and having to manually search which two are not greyed out in the list.
  • Though it's dirty because we wouldn't really know how many streams to query, it seems reasonable to me that we fill the view with a variable amount of streams as responses arrive, and we keep making other queries as long as it's not filled (or we have reached a threshold of time or number of queries). (We could query a max amount of streams based on the rate of streams matching the filter in the previous response, if we wanted to fine-tune it and not just query 100 streams everytime.)
  • In practice, most multilingual people will know english and another language, and english will represent a large proportion of the streams, so the impact on the number of queries probably wouldn't be too high.

Thanks again for your answer,
What do you think?

@bastimeyer
Copy link
Member

I have pushed some changes onto the rewrite-language-filtering branch for now. Unless I find any issues today, it will be merged into master later, so that it's included in today's nightly build.

This allows selecting multiple languages again and it replaces the fading/filtering radio-boxes with check-boxes which get disabled based on the language selection. Both get disabled if no language has been selected, filtering gets disabled if more than one language has been selected and fading gets disabled if one language has been selected and filtering is activated. Although it's not that simple, it should be fairly easy to understand, especially since I've added additional descriptions.

The only thing which annoys me a bit is that I had to copy the English translations to the other locales, as the descriptions are now text blocks with two lines, and the localization fallback mechanic doesn't work in this case. This also won't report missing translations in the webpack:i18n task. The affected translations are annotated with a FIXME comment.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants