Ejemplo n.º 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()
Ejemplo n.º 2
0
        } // imageSearch()

        /**
         * Ищет маленькую картинку в большой картинке. И кликает по ней мышкой.
         * @param Bitmap smallImage - искомая картинка
         * @param int colorDelta - допустимая погрешность в цвете
         * @param Rectangle rec - прямоугольник, где искать маленькую картинку
         * @return Rectangle - координаты найденой картинки (Если картинка не найдена, то пустой прямоугольник)
         */
        public static Rectangle imageSearchAndMouseClick(Bitmap smallImage, int colorDelta = 0, Rectangle searchRec = new Rectangle())
        {
            Rectangle rec = BotClass.imageSearchAndMouseMove(smallImage, colorDelta, searchRec);

            if (!rec.IsEmpty)
            { // Картинка была найдена, курсор сдвинут
                // Ждём
                System.Threading.Thread.Sleep(2000);

                // Кликаем
                BotClass.mouseClick();
            } // if

            return(rec);
        } // imageSearchAndMouseClick()
Ejemplo n.º 3
0
        } // loadSmallImage()

        /**
         * Ищет шаблон и кликает по нему мышкой.
         */
        public Boolean mouseClick()
        {
            if (!this.rec.IsEmpty)
            { // Картинка уже была найдена
                // Двигаем курсор на заранее найденый прямоугольник
                BotClass.moveCursor(this.rec);
                // И кликаем
                BotClass.mouseClick();

                return(true);
            } // if

            BotClass.create_screen_shot();

            Rectangle rec = BotClass.imageSearchAndMouseClick(this.image, this.delta);

            return(this.rectangleToBool(rec));
        } // mouseClick()
Ejemplo n.º 4
0
        } // makeLike()

        /**
         * Открываем непросмотренные видео.
         */
        public static bool openNewVideo()
        {
            // Нашли двоеточие во времени у непросмотренного видео.
            Rectangle rec = YouTube.searchNewVideos();

            if (!rec.IsEmpty)
            { // Нашли ещё непросмотренное видео
                // Размер картинки видео в списке 196*110
                // Размер картинки видео над полоской времени 196*94
                // Сдвигаем найденый прямоугольник на 100 и 80 пиксель, и растягиваем прямоугольник до 75 и 70 пикселей.
                rec.Offset(-100, -80);
                rec.Size = new Size(75, 70);

                // Двигаем курсор мышки и кликаем
                BotClass.moveCursor(rec);
                BotClass.mouseClick();

                return(true);
            } // if

            return(false);
        } // openNewVideo()