Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: gogodanse on September 03, 2020, 01:28:37 AM
-
1.Получаем HTTPGET
2.Если находим нужные слова получаем айди
3.Ищем в коде строчку с масивом "videoId\":\"P_nlzisJQac\" жирным выделен айди
4.Нашли и копируем в буфер обмена
Накидал код но прога вылетает с ошибкой, значит ошибка у меня в мозгу
$HTML = HTTPGET ("https://www.youtube.com/watch?v=P_nlzisJQac")
if ((strpos($HTML, "СЕЙЧАС СМОТРЯТ:") > 0) | (strpos($HTML, "НАЧАЛАСЬ") > 0))
$str = TFREAD($HTML)
STRSEPARATE($str, STRCONCAT(CHAR(34), "videoId", CHAR(34), ":"), $arr)
$our_code = STRFILTER($arr[1], CHAR(34), 0)
LOGWRITE ($our_code) //
END_IF
HALT
-
$var = HTTPGET("https://www.youtube.com/channel/UCi_VsjkIy8vPMQnRMhPu9OA/live")
STRSEPARATE($var, STRCONCAT(CHAR(34), "videoId", CHAR(34), ":" ), $arr)
$our_code = STRFILTER($arr[1], CHAR(34), 0)
LOGWRITE ($our_code)
HALT
В логе появляется айди но сразу после него лишний хлам
-
У меня с ютуба вообще не получает ответ.
$template = STRCONCAT(CHAR(34), "videoId\", CHAR(34), ":" )
$start = STRPOS($var, $template) + 13
$end = STRPOS($var, "\", $start) - 1
$our_code = STRCUT2($var, $start, $end)
-
У меня с ютуба вообще не получает ответ.
$template = STRCONCAT(CHAR(34), "videoId\", CHAR(34), ":" )
$start = STRPOS($var, $template) + 13
$end = STRPOS($var, "\", $start) - 1
$our_code = STRCUT2($var, $start, $end)
.dll для чтения сертификата https закидывал ?
-
У меня просто софт закрывается с ошибкой
-
Есть у кого идеи ?
-
.dll для чтения сертификата https закидывал ?
Нет. Теперь закинул.
Оно мне без надобности было, я подобные вещи на кликере не делаю.
-
Подожди, подожди. А мой пример? У меня всё работает. Там нечему закрываться с ошибкой.
$var = HTTPGET("https://www.youtube.com/channel/UCi_VsjkIy8vPMQnRMhPu9OA/live")
$template = STRCONCAT(CHAR(34), "videoId\", CHAR(34), ":" )
$start = STRPOS($var, $template) + 13
$end = STRPOS($var, "\", $start) - 1
$our_code = STRCUT2($var, $start, $end)
LOGWRITE($our_code)
HALT
лог
14:58:13 XOuXIlN5MAI
-
Подожди, подожди. А мой пример? У меня всё работает. Там нечему закрываться с ошибкой.
$var = HTTPGET("https://www.youtube.com/channel/UCi_VsjkIy8vPMQnRMhPu9OA/live")
$template = STRCONCAT(CHAR(34), "videoId\", CHAR(34), ":" )
$start = STRPOS($var, $template) + 13
$end = STRPOS($var, "\", $start) - 1
$our_code = STRCUT2($var, $start, $end)
LOGWRITE($our_code)
HALT
лог
14:58:13 XOuXIlN5MAI
Сигнатура проблемы:
Имя события проблемы: APPCRASH
Имя приложения: Clickermann.exe
Версия приложения: 4.13.0.0
Отметка времени приложения: 5afc1cad
Имя модуля с ошибкой: Clickermann.exe
Версия модуля с ошибкой: 4.13.0.0
Отметка времени модуля с ошибкой: 5afc1cad
Код исключения: c0000005
Смещение исключения: 0000b716
Версия ОС: 6.3.9600.2.0.0.272.79
Код языка: 1049
Дополнительные сведения 1: 87cd
Дополнительные сведения 2: 87cd7c77fc4deb39aae5ecef832f09c1
Дополнительные сведения 3: fb4a
Дополнительные сведения 4: fb4ad2ee372e565f0551b35331d91e94
Ознакомьтесь с заявлением о конфиденциальности в Интернете:
http://go.microsoft.com/fwlink/?linkid=280262
Если заявление о конфиденциальности в Интернете недоступно, ознакомьтесь с его локальным вариантом:
C:\Windows\system32\ru-RU\erofflps.txt
-
Все заработало спасибо большое <3
-
.
-
.
А что говорить ? windows server 2012 R2 standart, вылетела ошибка ? жмете "Попытаться исправить" перезапускаете и что-то чинится, это же windows он даже не написал в чом была проблема
-
.
Посмотри пожалуйста
не работает
$var = HTTPGET ("https://www.youtube.com/channel/UCi_VsjkIy8vPMQnRMhPu9OA/live")
$template = STRCONCAT(CHAR(34), "videoId\", CHAR(34), ":" )
$start = STRPOS($var, $template) + 13
$end = STRPOS($var, "\", $start) - 1
$our_code = STRCUT2($var, $start, $end)
$HTML = HTTPGET ("https://www.youtube.com/channel/UCi_VsjkIy8vPMQnRMhPu9OA/live")
if ((strpos($HTML, "Сейчас смотрят") > 0))
WAIT(10)
KEYSTRING($our_code)
END_IF
HALT
Мне нужно чтобы он сначала нашел слово и если оно есть в коде то забрал бы из него айди и написал куда мне нужно
-
HTTPGET не работает с https, только с http
-
HTTPGET не работает с https, только с http
Hito намутил же dll-ки для https.
http://crapware.aidf.org/forum/index.php?topic=5198.msg33755#msg33755
Спасибо Hito! :)
Вот так вроде стабильно работает скрипт и Clickermann не крашится.
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
Пробовал делать и другие варианты, но кликер то работает, то вырубается, как то безсистемно. А этот скрипт с массивом, у меня ни разу не заглючил.
-
HTTPGET не работает с https, только с http
Hito намутил же dll-ки для https.
http://crapware.aidf.org/forum/index.php?topic=5198.msg33755#msg33755
Спасибо Hito! :)
Вот так вроде стабильно работает скрипт и Clickermann не крашится.
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
Пробовал делать и другие варианты, но кликер то работает, то вырубается, как то безсистемно. А этот скрипт с массивом, у меня ни разу не заглючил.
У меня тоже вылетал но твой вариант работает, спасибо :)
-
HTTPGET не работает с https, только с http
Hito намутил же dll-ки для https.
http://crapware.aidf.org/forum/index.php?topic=5198.msg33755#msg33755
Спасибо Hito! :)
Вот так вроде стабильно работает скрипт и Clickermann не крашится.
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
-
Вот другой какой то айди нашел, я в них не сильно разбираюсь, их там много.))
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: Скрипт переделал. Оказалось, что фраза "Сейчас смотрят" может быть в разных местах страницы. Добавил поиск по всему массиву.
-
Вот другой какой то айди нашел, я в них не сильно разбираюсь, их там много.))
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: Скрипт переделал. Оказалось, что фраза "Сейчас смотрят" может быть в разных местах страницы. Добавил поиск по всему массиву.
Я кстати не чекал сколько раз это фраза повторяется, вот это круто, спасибо большое чув@к
-
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)
-
Всё правильно. Цикл FOR сделан только для перебора входного массива $arr_1, чтобы найти подстроку "Сейчассмотрят", т.к. номер строки, в которой может находиться эта подстрока, заранее не известен.
Так что делать проверку других условий в теле этого цикла нельзя.
Получается вот что: при поиске подстроки "Сейчассмотрят" в первой ячейке массива $arr_1, скрипт ничего не находит и должен перейти к проверке следующей строки, но у тебя уже срабатывает IF в блоке ELSE, который должен сработать только при условии, что подстроки "Сейчассмотрят" нет во всех ячейках массива $arr_1, а не только в первой.
В общем, все проверки условий надо делать после того как отработает цикл и вернет какое то значение, например в переменную-флаг:
FOR($i = 0, $i < ARRSIZE($arr_1)
//
END_CYC
IF($sejchas_smotryat = 1)
// Если смотрят
ELSE
// Если не смотрят
END_IF
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
-
Всё правильно. Цикл FOR сделан только для перебора входного массива $arr_1, чтобы найти подстроку "Сейчассмотрят", т.к. номер строки, в которой может находиться эта подстрока, заранее не известен.
Так что делать проверку других условий в теле этого цикла нельзя.
Получается вот что: при поиске подстроки "Сейчассмотрят" в первой ячейке массива $arr_1, скрипт ничего не находит и должен перейти к проверке следующей строки, но у тебя уже срабатывает IF в блоке ELSE, который должен сработать только при условии, что подстроки "Сейчассмотрят" нет во всех ячейках массива $arr_1, а не только в первой.
В общем, все проверки условий надо делать после того как отработает цикл и вернет какое то значение, например в переменную-флаг:
FOR($i = 0, $i < ARRSIZE($arr_1)
//
END_CYC
IF($sejchas_smotryat = 1)
// Если смотрят
ELSE
// Если не смотрят
END_IF
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
А можно ли как то очищать масив допустим если я два раза этот код использую для двух разных каналов ? потому что когда второй раз этот код проходит то оур код чушь начинает писать
-
А можно ли как то очищать масив допустим если я два раза этот код использую для двух разных каналов ? потому что когда второй раз этот код проходит то оур код чушь начинает писать
Цитата из Справки Clickermann:
UNDEFINE
Удаляет переменную из памяти.
Синтаксис
UNDEFINE ($var)
Параметры
$var - символьное имя переменной
Примечания
Если обратиться к удаленной переменной, ее значение представится как 0.
Так же эта процедура может использоваться для удаления массива и всех его элементов.
-
Смотри в некоторых каналах есть "videoId\":\"8xGWvKktDxA\",\"broadcastId\":\"1\",\"pollDelayMs\":\"15000\"}}, бродкаст айди
И Получается в логе он выписывает айди + бродкаст 8xGWvKktDxAbroadcastId1
-
Получается надо брать следующий масив перед videoId а не предыдущий перед poolDelayMs ?
-
Ну там как бы да, надо подбирать и разбивать входную строку по разному, страница то динамическая, в ней всё может меняться.
Вот этот кусок скрипта получает код страницы, фильтрует и разбивает его на куски, начинающиеся текстом "RenderervideoId", а сам "RenderervideoId" удаляет. Каждый такой кусок попадает в отдельную ячейку массива $arr_1. При этом, вторая ячейка массива $arr_1[1] и все последующие ячейки, будут начинаться с текста идущего за текстом "RenderervideoId".
STRSEPARATE(STRFILTER(HTTPGET ("https://www.youtube.com/channel/UCi_VsjkIy8vPMQnRMhPu9OA/live"), "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890_Сейчассмотрят", 1), "RenderervideoId", $arr_1)
TFWRITEARR("out.txt", $arr_1)
HALT
Надо подобрать эту подстроку, вместо "RenderervideoId", по которой лучше разбивать код страницы. Вывод в файл в этом поможет. В нем отфильтрованный текст, без пробелов, кавычек, скобок и прочего мусора, который не содержится в айди и фразе "Сейчассмотрят".
-
Ну там как бы да, надо подбирать и разбивать входную строку по разному, страница то динамическая, в ней всё может меняться.
Вот этот кусок скрипта получает код страницы, фильтрует и разбивает его на куски, начинающиеся текстом "RenderervideoId", а сам "RenderervideoId" удаляет. Каждый такой кусок попадает в отдельную ячейку массива $arr_1. При этом, вторая ячейка массива $arr_1[1] и все последующие ячейки, будут начинаться с текста идущего за текстом "RenderervideoId".
STRSEPARATE(STRFILTER(HTTPGET ("https://www.youtube.com/channel/UCi_VsjkIy8vPMQnRMhPu9OA/live"), "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890_Сейчассмотрят", 1), "RenderervideoId", $arr_1)
TFWRITEARR("out.txt", $arr_1)
HALT
Надо подобрать эту подстроку, вместо "RenderervideoId", по которой лучше разбивать код страницы. Вывод в файл в этом поможет. В нем отфильтрованный текст, без пробелов, кавычек, скобок и прочего мусора, который не содержится в айди и фразе "Сейчассмотрят".
Спасибо чувак я разобрался, оказывается эта строка появляется если на одном канале сразу несколько стримов, и она указывает какой по счету это стрим
-
Все плохо, через 4 часа работы кликер перестает получать httpget есть ещё варианты у кого-нибудь ?
-
Тебе ещё повезло, что хоть столько работало.
Яндекс или любой другой крупняк тебя бы сразу не пустил.
Там сразу палят, что не авторизован. Куки, заголовки, ip, отпечаток канвас, разрешение экрана, список расширений и т.д. Вариант только через прокси и то по паре запросов. Бесплатные прокси с популярных сайтов не подойдут, они в чёрном списке сразу.
Только авторизоваться и слать правильные заголовки и куки из своего аккаунта. Ну и не частить с запросами. VK, например, не чаще 2 раз в секунду при работе через API.
Кликером ты это не сделаешь. Да и не кликером тоже, если опыта нет.
-
Тебе ещё повезло, что хоть столько работало.
Яндекс или любой другой крупняк тебя бы сразу не пустил.
Там сразу палят, что не авторизован. Куки, заголовки, ip, отпечаток канвас, разрешение экрана, список расширений и т.д. Вариант только через прокси и то по паре запросов. Бесплатные прокси с популярных сайтов не подойдут, они в чёрном списке сразу.
Только авторизоваться и слать правильные заголовки и куки из своего аккаунта. Ну и не частить с запросами. VK, например, не чаще 2 раз в секунду при работе через API.
Кликером ты это не сделаешь. Да и не кликером тоже, если опыта нет.
Я помню делал такого бота просто с одной строчкой HTTPGET, но не помню чтобы ютуб банил, скорее всего квоту изменили на запросы, хотяяя
-
Тебе ещё повезло, что хоть столько работало.
Яндекс или любой другой крупняк тебя бы сразу не пустил.
Там сразу палят, что не авторизован. Куки, заголовки, ip, отпечаток канвас, разрешение экрана, список расширений и т.д. Вариант только через прокси и то по паре запросов. Бесплатные прокси с популярных сайтов не подойдут, они в чёрном списке сразу.
Только авторизоваться и слать правильные заголовки и куки из своего аккаунта. Ну и не частить с запросами. VK, например, не чаще 2 раз в секунду при работе через API.
Кликером ты это не сделаешь. Да и не кликером тоже, если опыта нет.
Ты бы винт мог потестить свой способ который ты в этой теме указал ? Допустим заместо HALT - WAIT(30)
И посмотреть сколько раз подряд он даст айди
Я просто думаю может у меня с сервером что-то не так