Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ==UserScript==
- // @name Youtube subscription search
- // @namespace https://www.youtube.com/
- // @include https://www.youtube.com/*
- // @grant GM_addStyle
- // @require http://code.jquery.com/jquery-latest.js
- // ==/UserScript==
- GM_addStyle(`
- #subSearch {
- width: 100%;
- padding: 6px 10px;
- font-size: 16px;
- color: #666;
- background: #fff;
- cursor:pointer;
- }
- #subSearch:hover {
- background: #dcdcdc;
- }
- input#subSearch:focus {
- background-color: yellow;
- }
- ytd-guide-collapsible-entry-renderer[can-show-more],
- #expander-item,
- #collapser-item {
- background-color: #e1e1e1 !important;
- }
- `);
- $(function(){
- let sub_titles;
- let more_titles;
- let $sub_block = $('#sections').find('ytd-guide-section-renderer').eq(2);
- $sub_block.prepend(
- `
- <input id="subSearch" type="text" placeholder="Find subscription"/>
- `
- );
- sub_titles = $sub_block.find('#items').children('ytd-guide-entry-renderer').find('.title').toArray();
- $sub_block.on('keyup clear', '#subSearch', filterSubscriptions);
- $sub_block.on('click', 'ytd-guide-collapsible-entry-renderer', clearFilter);
- function filterSubscriptions(e) {
- const search_text = e.target.value.toLowerCase();
- sub_titles.forEach(function(subscription) {
- const item = subscription.textContent;
- if( item.toLowerCase().indexOf(search_text) != -1 ) {
- $(subscription).closest('ytd-guide-entry-renderer').css('display','block');
- } else {
- $(subscription).closest('ytd-guide-entry-renderer').css('display','none');
- }
- });
- }
- function clearFilter() {
- let checkExist = setInterval(function() {
- let attr = $sub_block.find('#items').children('ytd-guide-collapsible-entry-renderer').attr('expanded');
- if ( typeof attr !== undefined && attr !== false ) {
- $('#subSearch').val('').focus();
- $( "#subSearch" ).trigger( "clear" );
- more_titles = $sub_block.find('#items #expandable-items').children('ytd-guide-entry-renderer').find('.title').toArray();
- if(sub_titles.length < more_titles.length) {
- sub_titles.push.apply(sub_titles, more_titles);
- }
- clearInterval(checkExist);
- }
- }, 100);
- }
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement