示例#1
0
        } // isYouTubePage()

        /**
         * Ставит лайк у видео
         */
        public static bool makeLike()
        {
            // Иконка "нравится"
            Stencil likeIcon = new Stencil("YouTube-Like-Icon.png");

            likeIcon.setColorDelta(5);


            // Иконка "нравится"
            Stencil likedIcon = new Stencil("YouTube-Liked-Icon.png");

            likedIcon.setColorDelta(5);

            //@TODO проверить есть ли у браузера вертикальный бегунок и в зависимости от этого работать дальше.

            // Счётчик сколько раз мы "прокрутим" экран браузера вниз.
            int counter = 0;

            // Пока не увидим символ лайка, "прокручиваем" экран браузера вниз и считаем эти "прокручивания".
            while (!likeIcon.mouseClick() && !likedIcon.isFound())
            {
                counter++;
                BotClass.keyDown(Keys.PageDown);
                BotClass.keyUp(Keys.PageDown);

                // Не забываем сбросить старые результаты поиска
                likeIcon.resetRec();

                // Ждём две секунды, чтобы экран прокрутился вниз.
                System.Threading.Thread.Sleep(2000);
            } // while

            // после нажатия на "лайк", появляется меню "поделится" и активным становится строчка с УРЛ
            System.Threading.Thread.Sleep(2000);

            // Сдвигаем курсор в сторону и кликаем по пустому полю.
            Rectangle likeIconRec = likeIcon.getRec();

            likeIconRec.Offset(-50, 0);
            BotClass.moveCursor(likeIconRec);
            BotClass.mouseClick();

            // Возвращаем экран обратно (не пойму почему, но не всегда срабатывает. Перекликнуть рядом с кнопкой? Пока лишний раз наверх крутим)
            for (int i = 0; i <= counter + 1; i++)
            {
                BotClass.keyDown(Keys.PageUp);
                BotClass.keyUp(Keys.PageUp);

                // Ждём, вдруг...
                System.Threading.Thread.Sleep(500);
            } // for

            return(true);
        } // makeLike()
示例#2
0
        } // refreshPage()

        /**
         * Проверяем загрузилась ли страница
         */
        private void waitUntilPageIsLoaded()
        {
            // ждём, пока не пропадёт надпись "соединяемся"
            Stencil connecting = new Stencil("mozilla-firefox-connecting.png");

            //connecting.setColorDelta(0);

            do
            { // Ждём
                System.Threading.Thread.Sleep(500);

                // сбрасываем старые находки
                connecting.resetRec();
            } while (connecting.isFound());
        } // waitUntilPageIsLoaded()
示例#3
0
        } // waitUntilPageIsLoaded()

        /**
         * Ждёт пока видео не просмотрится до конца
         */
        public static bool waitUntilVideoSeen()
        {
            Stencil videoSeen = new Stencil("YouTube-Video-Seen.png");

            //videoSeen.setColorDelta(0);

            do
            {
                // Ждём по 10 секунд
                System.Threading.Thread.Sleep(10000);
                // Не забываем сбросить результаты прошлого поиска.
                videoSeen.resetRec();
            } while (!videoSeen.isFound());

            return(true);
        } // waitUntilVideoSeen()
示例#4
0
        } // openVideosOfChanel()

        /**
         * По двоеточии во времени ищет непросмотренные видео.
         */
        public static Rectangle searchNewVideos()
        {
            YouTube.waitUntilPageIsLoaded();

            // Признак непросмотренного видео
            Stencil videoTimeColon = new Stencil("YouTube-Video-TimeColon.png");

            videoTimeColon.setColorDelta(37);

            // Признак конца страницы
            Stencil videoListScrolledToDown = new Stencil("YouTube-VideoList-ScrolledToDown.png");
            //videoListScrolledToDown.setColorDelta(0);

            // Кнопка показать больше видео
            Stencil videoListShowMore = new Stencil("YouTube-VideoList-ShowMore.png");

            //videoListShowMore.setColorDelta(0);

            // Ищем непросмотренное видео, пока не дойдём до конца страницы
            while (!(
                       videoTimeColon.isFound() ||
                       videoListScrolledToDown.isFound()))
            {
                BotClass.keyDown(Keys.PageDown);
                BotClass.keyUp(Keys.PageDown);

                // Не забываем сбросить старые результаты поиска
                videoTimeColon.resetRec();
                videoListScrolledToDown.resetRec();
                videoListShowMore.resetRec();

                // Ждём две секунды, чтобы экран прокрутился вниз.
                System.Threading.Thread.Sleep(2000);

                //а так же не должно быть кнопки "показать больше"
                if (videoListShowMore.mouseClick())
                {
                    // Когда нажали на кнопку "показать больше", сдвигаем курсор в сторону
                    BotClass.moveCursor(1, 1);
                    System.Threading.Thread.Sleep(500);
                }
            } // while

            return(videoTimeColon.getRec());
        } // searchNewVideos()
示例#5
0
        }     // openChanel()

        /**
         * Открывает верын канал.
         *
         * @return bool true - если находится изображения канала, в противном случае false
         */
        public static bool openVeraChanel()
        {
            YouTube.waitUntilPageIsLoaded();
            Stencil emptyChanelIcon = new Stencil("YouTube-EmptyChanel-Icon.png");

            do
            { // Ждём
                System.Threading.Thread.Sleep(500);

                // надо сбрасывать старые находки
                emptyChanelIcon.resetRec();
            } while (emptyChanelIcon.isFound());

            Stencil veraChanel = new Stencil("VeraChanel-Icon.png");

            //veraChanel.setColorDelta(0);
            return(veraChanel.mouseClick());
        } // openVeraChanel()