Author Topic: Умники и умницы ХЭЭЭЛП  (Read 4934 times)

0 Members and 1 Guest are viewing this topic.

gogodanse

  • Освоившийся
  • **
  • Posts: 58
    • View Profile
Re: Умники и умницы ХЭЭЭЛП
« Reply #15 on: September 06, 2020, 12:33:09 PM »
HTTPGET не работает с https, только с http

Hito намутил же dll-ки для https.
http://crapware.aidf.org/forum/index.php?topic=5198.msg33755#msg33755
Спасибо Hito!  :)

Вот так вроде стабильно работает скрипт и Clickermann не крашится.
Code: (clickermann) [Select]
STRSEPARATE(STRFILTER(HTTPGET ("https://www.youtube.com/channel/UCi_VsjkIy8vPMQnRMhPu9OA/live"), "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890_Сейчассмотрят", 1), "wwwyoutubecomchannel", $arr_1)

IF(STRPOS($arr_1[8], "Сейчассмотрят"))
   STRSEPARATE($arr_1[8], "live", $arr_2)
   $our_code = $arr_2[0]
   LOGWRITE ($our_code) // айди стрима в лог

   // KEYSTRING($our_code) // вписываем айди куда нужно
   // KEYPRESS(#ENTER)
END_IF

HALT

Пробовал делать и другие варианты, но кликер то работает, то вырубается, как то безсистемно. А этот скрипт с массивом, у меня ни разу не заглючил.


У меня тоже вылетал но твой вариант работает, спасибо  :)

gogodanse

  • Освоившийся
  • **
  • Posts: 58
    • View Profile
Re: Умники и умницы ХЭЭЭЛП
« Reply #16 on: September 06, 2020, 01:37:06 PM »
HTTPGET не работает с https, только с http

Hito намутил же dll-ки для https.
http://crapware.aidf.org/forum/index.php?topic=5198.msg33755#msg33755
Спасибо Hito!  :)

Вот так вроде стабильно работает скрипт и Clickermann не крашится.
Code: (clickermann) [Select]
STRSEPARATE(STRFILTER(HTTPGET ("https://www.youtube.com/channel/UCi_VsjkIy8vPMQnRMhPu9OA/live"), "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890_Сейчассмотрят", 1), "wwwyoutubecomchannel", $arr_1)

IF(STRPOS($arr_1[8], "Сейчассмотрят"))
   STRSEPARATE($arr_1[8], "live", $arr_2)
   $our_code = $arr_2[0]
   LOGWRITE ($our_code) // айди стрима в лог

   // KEYSTRING($our_code) // вписываем айди куда нужно
   // KEYPRESS(#ENTER)
END_IF

HALT

Пробовал делать и другие варианты, но кликер то работает, то вырубается, как то безсистемно. А этот скрипт с массивом, у меня ни разу не заглючил.

Только мне нужно чтобы он только айди стрима брал а не айди канала  UCi_VsjkIy8vPMQnRMhPu9OA

4.У.В.@.К

  • Активный участник
  • ***
  • Posts: 117
    • View Profile
Re: Умники и умницы ХЭЭЭЛП
« Reply #17 on: September 06, 2020, 02:19:34 PM »
Вот другой какой то айди нашел, я в них не сильно разбираюсь, их там много.))

Code: (clickermann) [Select]
STRSEPARATE(STRFILTER(HTTPGET ("https://www.youtube.com/channel/UCi_VsjkIy8vPMQnRMhPu9OA/live"), "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890_Сейчассмотрят", 1), "RenderervideoId", $arr_1)

FOR($i = 0, $i < ARRSIZE($arr_1))
   IF(STRPOS($arr_1[$i], "Сейчассмотрят"))
      STRSEPARATE($arr_1[1], "pollDelayMs", $arr_2)
      $our_code = $arr_2[0]
      LOGWRITE ($our_code) // айди стрима в лог
      // KEYSTRING($our_code) // вписываем айди куда нужно
      // KEYPRESS(#ENTER)
      $i = ARRSIZE($arr_1) // выходим из цикла
   END_IF
END_CYC

HALT

UPD: Скрипт переделал. Оказалось, что фраза "Сейчас смотрят" может быть в разных местах страницы. Добавил поиск по всему массиву.
« Last Edit: September 06, 2020, 05:55:35 PM by 4.У.В.@.К »

gogodanse

  • Освоившийся
  • **
  • Posts: 58
    • View Profile
Re: Умники и умницы ХЭЭЭЛП
« Reply #18 on: September 06, 2020, 09:36:11 PM »
Вот другой какой то айди нашел, я в них не сильно разбираюсь, их там много.))

Code: (clickermann) [Select]
STRSEPARATE(STRFILTER(HTTPGET ("https://www.youtube.com/channel/UCi_VsjkIy8vPMQnRMhPu9OA/live"), "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890_Сейчассмотрят", 1), "RenderervideoId", $arr_1)

FOR($i = 0, $i < ARRSIZE($arr_1))
   IF(STRPOS($arr_1[$i], "Сейчассмотрят"))
      STRSEPARATE($arr_1[1], "pollDelayMs", $arr_2)
      $our_code = $arr_2[0]
      LOGWRITE ($our_code) // айди стрима в лог
      // KEYSTRING($our_code) // вписываем айди куда нужно
      // KEYPRESS(#ENTER)
      $i = ARRSIZE($arr_1) // выходим из цикла
   END_IF
END_CYC

HALT

UPD: Скрипт переделал. Оказалось, что фраза "Сейчас смотрят" может быть в разных местах страницы. Добавил поиск по всему массиву.

Я кстати не чекал сколько раз это фраза повторяется, вот это круто, спасибо большое чув@к

gogodanse

  • Освоившийся
  • **
  • Posts: 58
    • View Profile
Re: Умники и умницы ХЭЭЭЛП
« Reply #19 on: September 07, 2020, 12:40:07 PM »
4.У.В.@.К

ЧО за бред, у меня ELSE не работает

FOR($i = 0, $i < ARRSIZE($arr_1)
   IF(STRPOS($arr_1[$i], "Сейчассмотрят"))
      STRSEPARATE($arr_1[1], "pollDelayMs", $arr_2)
      $our_code = $arr_2[0]
      if(wndfind("PACK1") = 0)
         KEYSTRING($our_code)
         $h = hget(753,424)
         hsettext($h, "PACK1")
         WAIT(1)
         LCLICK(601,689)
         $i = ARRSIZE($arr_1) // выходим из цикла
      END_IF
   ELSE
      if(wndfind("PACK1") > 0)
         WNDBUMP(wndfind("PACK1"))
         WAIT(1)
         LCLICK(1148,413)
      END_IF
   END_IF
END_CYC


Если окна нету а переменная "сейчассмотрят" есть то выполняем действия if(wndfind("PACK1") = 0), если окно есть а переменная "сейчассмотрят" нету то закрываем окно  if(wndfind("PACK1") > 0)

4.У.В.@.К

  • Активный участник
  • ***
  • Posts: 117
    • View Profile
Re: Умники и умницы ХЭЭЭЛП
« Reply #20 on: September 07, 2020, 06:25:00 PM »
Всё правильно. Цикл FOR сделан только для перебора входного массива $arr_1, чтобы найти подстроку "Сейчассмотрят", т.к. номер строки, в которой может находиться эта подстрока, заранее не известен.
Так что делать проверку других условий в теле этого цикла нельзя.
Получается вот что: при поиске подстроки "Сейчассмотрят" в первой ячейке массива $arr_1, скрипт ничего не находит и должен перейти к проверке следующей строки, но у тебя уже срабатывает IF в блоке ELSE, который должен сработать только при условии, что подстроки "Сейчассмотрят" нет во всех ячейках массива $arr_1, а не только в первой.

В общем, все проверки условий надо делать после того как отработает цикл и вернет какое то значение, например в переменную-флаг:
Code: (clickermann) [Select]
FOR($i = 0, $i < ARRSIZE($arr_1)
  //
END_CYC

IF($sejchas_smotryat = 1)
  // Если смотрят
ELSE
  // Если не смотрят
END_IF

Code: (clickermann) [Select]
STRSEPARATE(STRFILTER(HTTPGET ("https://www.youtube.com/channel/UCi_VsjkIy8vPMQnRMhPu9OA/live"), "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890_Сейчассмотрят", 1), "RenderervideoId", $arr_1)

FOR($i = 0, $i < ARRSIZE($arr_1))
   IF(STRPOS($arr_1[$i], "Сейчассмотрят"))
      STRSEPARATE($arr_1[1], "pollDelayMs", $arr_2)
      $our_code = $arr_2[0]
      $sejchas_smotryat = 1 // делаем отметку, что сейчас смотрят
      $i = ARRSIZE($arr_1)  // выходим из цикла
   END_IF
END_CYC

IF($sejchas_smotryat = 1)
   IF(WNDFIND("PACK1") = 0)
      KEYSTRING($our_code)
      $h = HGET(753,424)
      HSETTEXT($h, "PACK1")
      WAIT(1)
      LCLICK(601,689)
   END_IF
ELSE
   IF(WNDFIND("PACK1") > 0)
      WNDBUMP(WNDFIND("PACK1"))
      WAIT(1)
      LCLICK(1148,413)
   END_IF
END_IF

HALT
« Last Edit: September 08, 2020, 07:29:16 AM by 4.У.В.@.К »

gogodanse

  • Освоившийся
  • **
  • Posts: 58
    • View Profile
Re: Умники и умницы ХЭЭЭЛП
« Reply #21 on: September 08, 2020, 10:27:29 PM »
Всё правильно. Цикл FOR сделан только для перебора входного массива $arr_1, чтобы найти подстроку "Сейчассмотрят", т.к. номер строки, в которой может находиться эта подстрока, заранее не известен.
Так что делать проверку других условий в теле этого цикла нельзя.
Получается вот что: при поиске подстроки "Сейчассмотрят" в первой ячейке массива $arr_1, скрипт ничего не находит и должен перейти к проверке следующей строки, но у тебя уже срабатывает IF в блоке ELSE, который должен сработать только при условии, что подстроки "Сейчассмотрят" нет во всех ячейках массива $arr_1, а не только в первой.

В общем, все проверки условий надо делать после того как отработает цикл и вернет какое то значение, например в переменную-флаг:
Code: (clickermann) [Select]
FOR($i = 0, $i < ARRSIZE($arr_1)
  //
END_CYC

IF($sejchas_smotryat = 1)
  // Если смотрят
ELSE
  // Если не смотрят
END_IF

Code: (clickermann) [Select]
STRSEPARATE(STRFILTER(HTTPGET ("https://www.youtube.com/channel/UCi_VsjkIy8vPMQnRMhPu9OA/live"), "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890_Сейчассмотрят", 1), "RenderervideoId", $arr_1)

FOR($i = 0, $i < ARRSIZE($arr_1))
   IF(STRPOS($arr_1[$i], "Сейчассмотрят"))
      STRSEPARATE($arr_1[1], "pollDelayMs", $arr_2)
      $our_code = $arr_2[0]
      $sejchas_smotryat = 1 // делаем отметку, что сейчас смотрят
      $i = ARRSIZE($arr_1)  // выходим из цикла
   END_IF
END_CYC

IF($sejchas_smotryat = 1)
   IF(WNDFIND("PACK1") = 0)
      KEYSTRING($our_code)
      $h = HGET(753,424)
      HSETTEXT($h, "PACK1")
      WAIT(1)
      LCLICK(601,689)
   END_IF
ELSE
   IF(WNDFIND("PACK1") > 0)
      WNDBUMP(WNDFIND("PACK1"))
      WAIT(1)
      LCLICK(1148,413)
   END_IF
END_IF

HALT


А можно ли как то очищать масив допустим если я два раза этот код использую для двух разных каналов ? потому что когда второй раз этот код проходит то оур код чушь начинает писать

4.У.В.@.К

  • Активный участник
  • ***
  • Posts: 117
    • View Profile
Re: Умники и умницы ХЭЭЭЛП
« Reply #22 on: September 09, 2020, 08:08:04 AM »
А можно ли как то очищать масив допустим если я два раза этот код использую для двух разных каналов ? потому что когда второй раз этот код проходит то оур код чушь начинает писать

Цитата из Справки Clickermann:
Quote
UNDEFINE

Удаляет переменную из памяти.

Синтаксис
UNDEFINE ($var)

Параметры
$var - символьное имя переменной

Примечания

Если обратиться к удаленной переменной, ее значение представится как 0.
Так же эта процедура может использоваться для удаления массива и всех его элементов.

gogodanse

  • Освоившийся
  • **
  • Posts: 58
    • View Profile
Re: Умники и умницы ХЭЭЭЛП
« Reply #23 on: September 09, 2020, 02:15:25 PM »
Смотри в некоторых каналах есть "videoId\":\"8xGWvKktDxA\",\"broadcastId\":\"1\",\"pollDelayMs\":\"15000\"}}, бродкаст айди

И Получается в логе он выписывает айди + бродкаст 8xGWvKktDxAbroadcastId1

gogodanse

  • Освоившийся
  • **
  • Posts: 58
    • View Profile
Re: Умники и умницы ХЭЭЭЛП
« Reply #24 on: September 09, 2020, 02:18:55 PM »
Получается надо брать следующий масив перед videoId а не предыдущий перед poolDelayMs ?

4.У.В.@.К

  • Активный участник
  • ***
  • Posts: 117
    • View Profile
Re: Умники и умницы ХЭЭЭЛП
« Reply #25 on: September 09, 2020, 05:34:06 PM »
Ну там как бы да, надо подбирать и разбивать входную строку по разному, страница то динамическая, в ней всё может меняться.
Вот этот кусок скрипта получает код страницы, фильтрует и разбивает его на куски, начинающиеся текстом "RenderervideoId", а сам "RenderervideoId" удаляет. Каждый такой кусок попадает в отдельную ячейку массива $arr_1. При этом, вторая ячейка массива $arr_1[1] и все последующие ячейки, будут начинаться с текста идущего за текстом "RenderervideoId".

Code: (clickermann) [Select]
STRSEPARATE(STRFILTER(HTTPGET ("https://www.youtube.com/channel/UCi_VsjkIy8vPMQnRMhPu9OA/live"), "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890_Сейчассмотрят", 1), "RenderervideoId", $arr_1)

TFWRITEARR("out.txt", $arr_1)

HALT

Надо подобрать эту подстроку, вместо "RenderervideoId", по которой лучше разбивать код страницы. Вывод в файл в этом поможет. В нем отфильтрованный текст, без пробелов, кавычек, скобок и прочего мусора, который не содержится в айди и фразе "Сейчассмотрят".

gogodanse

  • Освоившийся
  • **
  • Posts: 58
    • View Profile
Re: Умники и умницы ХЭЭЭЛП
« Reply #26 on: September 10, 2020, 01:12:19 AM »
Ну там как бы да, надо подбирать и разбивать входную строку по разному, страница то динамическая, в ней всё может меняться.
Вот этот кусок скрипта получает код страницы, фильтрует и разбивает его на куски, начинающиеся текстом "RenderervideoId", а сам "RenderervideoId" удаляет. Каждый такой кусок попадает в отдельную ячейку массива $arr_1. При этом, вторая ячейка массива $arr_1[1] и все последующие ячейки, будут начинаться с текста идущего за текстом "RenderervideoId".

Code: (clickermann) [Select]
STRSEPARATE(STRFILTER(HTTPGET ("https://www.youtube.com/channel/UCi_VsjkIy8vPMQnRMhPu9OA/live"), "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890_Сейчассмотрят", 1), "RenderervideoId", $arr_1)

TFWRITEARR("out.txt", $arr_1)

HALT

Надо подобрать эту подстроку, вместо "RenderervideoId", по которой лучше разбивать код страницы. Вывод в файл в этом поможет. В нем отфильтрованный текст, без пробелов, кавычек, скобок и прочего мусора, который не содержится в айди и фразе "Сейчассмотрят".

Спасибо чувак я разобрался, оказывается эта строка появляется если на одном канале сразу несколько стримов, и она указывает какой по счету это стрим

gogodanse

  • Освоившийся
  • **
  • Posts: 58
    • View Profile
Re: Умники и умницы ХЭЭЭЛП
« Reply #27 on: September 12, 2020, 01:05:19 AM »
Все плохо, через 4 часа работы кликер перестает получать httpget есть ещё варианты у кого-нибудь ?

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Умники и умницы ХЭЭЭЛП
« Reply #28 on: September 12, 2020, 09:09:22 AM »
Тебе ещё повезло, что хоть столько работало.
Яндекс или любой другой крупняк тебя бы сразу не пустил.
Там сразу палят, что не авторизован. Куки, заголовки, ip, отпечаток канвас, разрешение экрана, список расширений и т.д. Вариант только через прокси и то по паре запросов. Бесплатные прокси с популярных сайтов не подойдут, они в чёрном списке сразу.
Только авторизоваться и слать правильные заголовки и куки из своего аккаунта. Ну и не частить с запросами. VK, например, не чаще 2 раз в секунду при работе через API.
Кликером ты это не сделаешь. Да и не кликером тоже, если опыта нет.
« Last Edit: September 12, 2020, 09:11:32 AM by Vint »


gogodanse

  • Освоившийся
  • **
  • Posts: 58
    • View Profile
Re: Умники и умницы ХЭЭЭЛП
« Reply #29 on: September 12, 2020, 08:21:03 PM »
Тебе ещё повезло, что хоть столько работало.
Яндекс или любой другой крупняк тебя бы сразу не пустил.
Там сразу палят, что не авторизован. Куки, заголовки, ip, отпечаток канвас, разрешение экрана, список расширений и т.д. Вариант только через прокси и то по паре запросов. Бесплатные прокси с популярных сайтов не подойдут, они в чёрном списке сразу.
Только авторизоваться и слать правильные заголовки и куки из своего аккаунта. Ну и не частить с запросами. VK, например, не чаще 2 раз в секунду при работе через API.
Кликером ты это не сделаешь. Да и не кликером тоже, если опыта нет.

Я помню делал такого бота просто с одной строчкой HTTPGET, но не помню чтобы ютуб банил, скорее всего квоту изменили на запросы, хотяяя