OppoYoutubeLiker

Simple auto liker for russian and other opposition channel :)

// ==UserScript==
// @name            OppoYoutubeLiker
// @description     Simple auto liker for russian and other opposition channel :)
// @description:ru  Простой автолайкер для русского и других оппозиционных каналов :)
// @description:de  Einfacher Auto-Liker für russische und andere Oppositionskanäle :)
// @description:fr  Un simple liker automatique pour les chaînes russes et autres chaînes d'opposition. :)
// @description:it  Semplice auto liker per il canale russo e altri canali di opposizione :)
// @version         0.0.2 [Beta]
// @author          https://github.com/OppoYoutubeLiker
// @namespace       https://github.com/OppoYoutubeLiker/OppoYoutubeLiker
// @supportURL      https://github.com/OppoYoutubeLiker/OppoYoutubeLiker/issues
// @license         GNU 3.0 & OWN
// @match           https://www.youtube.com/*
// @match           https://m.youtube.com/*
// @match           https://www.youtube-nocookie.com/*
// @match           https://music.youtube.com/*
// @grant           none
// @run-at          document-start
// @compatible      chrome Chrome + Tampermonkey or Violentmonkey
// @compatible      firefox Firefox + Greasemonkey or Tampermonkey or Violentmonkey
// @compatible      opera Opera + Tampermonkey or Violentmonkey
// @compatible      edge Edge + Tampermonkey or Violentmonkey
// @compatible      safari Safari + Tampermonkey or Violentmonkey
// ==/UserScript==

function OppoYoutubeLiker(){

    const Channels = ["ABU-SADDAM SHISHANI", "ABU-SADDAM SHISHANI [LIVE]", "Activatica", "Acute Angle", "Alexander Thorn", "Alexandr Plushev", "Alferov", "Alferov Live", "ARU TV", "BBC News - Русская служба", "Current Time", "DW на русском", "Euronews по-русски", "Europa Live", "Fake News", "kamikadzedead", "Meduza", "MyGap", "New Rush Word", "Om TV", "Politeka Online", "PRO FV", "Proekt_media", "Ramy Zaycman", "RusNews", "Sasha Sotnik", "Sergey Aleksashenko", "sotavision", "SunandreaS", "SVTV", "The Insider", "Think Tank", "TV Rain", "Александр Балу", "Александр Долгополов", "Алексей Навальный", "Андрей Трофимов", "БАРМАЛЕЙКА", "Белая Рысь", "Бондаренко LIVE", "Быть Или", "Вадим Коровин", "Вестник Бури", "Вестник Бури Originals", "Вечный", "Владимир Милов", "Голос Америки", "Дед Архимед", "Дневник Депутата", "Евгений Ройзман", "Екатерина Шульман", "Ёшкин Крот", "Заповедник", "И Грянул Грэм", "Илья Яшин", "Инвалиды Россия Disabled in Russia", "КАНАЛ МОРДОР", "КЛИРИК", "Котрикадзе Дзядко", "Кочегарка FM Presents", "Кстати Новости Нижнего Новгорода", "Леонид Волков", "Любовь Соболь", "Майкл Наки", "Мари Говори", "Медиазона", "Михаил Ходорковский", "Навальный LIVE", "Настоящее Время ", "Нино Росебашвили", "Общество защиты интернета", "Острый Угол", "Открытые Медиа", "Популярная политика", "Проект Гроза", "Радио Свобода", "РАЗГОВОРНЫЙ ЖАНР", "Реальная журналистика", "Роман Цимбалюк", "Свободные", "Сергей Бойко", "Сергей Гуриев", "Сергей Смирнов", "Татьяна Фельгенгауэр", "Телеканал OstWest", "Телеканал Дождь", "Тихий Барин", "Тихий Барин TV - II", "ТЫ ИЛЛЮМИНАТ", "Убежище оппозиции", "Утро Февраля", "Фактор", "Феникс возрождение", "Фонд Ройзмана", "Ходорковский LIVE", "ШЕПЕЛИН", "Alexey Arestovych", "DW Українською", "OmTV UA", "Вечер с Яниной Соколовой", "Алексей Гончаренко", "DW Беларусь", "TrashSmash", "Smash", "Konan Ў!", "NEXTA Live", "NEXTA", "БЕЛСАТ NEWS", "ВОТ ТАК", "БЕЛСАТ NOW", "Реальная Беларусь", "Charter97video", "ЖЭСТАЧАЙШЫЙ МУЛЬТ"];                         //Channel names/titles

  var Buttons = document.querySelectorAll('#menu ytd-toggle-button-renderer button.style-scope.yt-icon-button');        //Get button values
  var LikeState = Buttons[0].attributes["aria-pressed"].nodeValue;                                                      //Get buttons state
  if(LikeState==="true"){return;}                                                                                       //If the status is "true", the script will be stopped. If the status is "false", the script will continue.

    for (var i = 0; i < 10; i++) {                                                                                      //Create a loop between 1 and 10

        if((document.getElementsByClassName('yt-simple-endpoint style-scope yt-formatted-string')[i].href.indexOf('/user/') >= 0 || document.getElementsByClassName('yt-simple-endpoint style-scope yt-formatted-string')[i].href.indexOf('/c/') >= 0 || document.getElementsByClassName('yt-simple-endpoint style-scope yt-formatted-string')[i].href.indexOf('/channel/') >= 0) && Channels.includes(document.getElementsByClassName('yt-simple-endpoint style-scope yt-formatted-string')[i].innerHTML)){            //If href contains "/c/" AND channel name is in array then ...

        document.getElementsByClassName("style-scope ytd-toggle-button-renderer")[1].click();                            //Set like
        i=11;                                                                                                            //Define  max. value to leave FOR loop

        }
    }
}
setInterval(OppoYoutubeLiker, 10000);                                                                                     //Define interval in which a like will be checked. Check every 10 seconds.