FilterContainer.java:
=====================
This class is a container that keeps either content filters or sort filters organized.
Sort/content filters ({@link FilterItem}s) are organized within {@link FilterGroup}s.
FilterGroup.java:
=================
This class represents a filter category/group. For example 'Sort order'.
Its main purpose is to host a bunch of {@link FilterItem}s that belong to that
group. Eg. 'Relevance', 'Views', 'Rating'
FilterItem.java:
================
This class represents a single filter option.
*More in detail:*
For example youtube offers the filter group 'Sort order'. This group
consists of filter options like 'Relevance', 'Views', 'Rating' etc.
-> for each filter option a FilterItem has to be created.
BaseSearchFilters.java:
=======================
The base class for every service describing their {@link FilterItem}s,
{@link FilterGroup}s, the relation between content filters and sort filters.
YouTube provides that meta info panel when users search for really sensitive content like suicide (e.g. "blue whale").
It contains:
- an encouragement as title (e.g. "We are with you")
- a phone number as action
- details about how to call the phone number (e.g. availability)
- an url pointing to the website of an association
Also add a test that just checks if a meta info is properly extracted
This test only tests that search results are returned, when no content filters
are provided and crisis resources blocking search results should be returned.
Searches with blocking crisis resources and content filters should work too, as
the bypass has been implemented for them.
As search parameters to bypass crisis resources blocking search results have
been implemented, they need to be added to search tests, in order to pass
them.
The subscriber count is now lower than the expected count as some people
unsubscribed to the Sports system channel. The expected count has been so
lowered.
YouTube doesn't return anymore a suggestion for the query "algorythm", but does
for the query "on board ing" ("on boarding"). This search query is now used and
had to be URL-encoded.
URL encoding in the complete YoutubeSearchExtractorTest test class uses now
extractor's Util class instead of Java's URLDecoder class directly.
YouTube is rolling out or A/B testing a new date format returned inside player
responses, which are precise to the second instead of the day.
This commit makes the StreamExtractor tests use these more precise dates.
This commit fixes the testRelatedItems test method by:
- accepting consent in the test class, in order to extract mixes in
recommendations;
- removing assertion of a music mix inside the recommendations, as YouTube
doesn't seem to return such mixes anymore, at least for the video used in the
test class.