Автокликер Clickermann :: Форум

Основной раздел => Использование => Topic started by: Луций on August 29, 2014, 05:12:28 PM

Title: Бот для размещения обьявлений
Post by: Луций on August 29, 2014, 05:12:28 PM
Я написал скрипт для подачи обьявлений на одной доскет (без капчи), пока он умеет:

1  менятьсвой айпи через прокси (через тор)
2 создает новую временную почту
3 создает новый аккаунт и подтверждает письмо
4 правит данные аккаунта на совершенно рандомные - что бы избежать бана при реге
5 дает само обьявление, и сохраняет ссылку на него для потомков

еще он оповещает о текущих действиях всплывающими сообщениями и сохраняет скриншоты с ошибками и прочее

пока у меня затруднения:
1 как сделать звуковые оповещения? сделал файлы вав в папке саунды - не хочет воспроизводить
2 может где можно укоротить и оптимизировать?

даже не пытайтесь запускать скрипт у себя на компе - там привязка к ярлыкам и запущенным окнам, лучше помогите деньгами советами по моему кривожопому коду

Code: (clickermann) [Select]
begin:
$s=3
WNDSTATE(WNDFIND("Блокнот"), 0)   ///свернуть все окна
WNDSTATE(WNDFIND("Excel"), 0)
WNDSTATE(WNDFIND("tor"), 0)
WNDSTATE(WNDFIND("firefox"), 0)
SETKBLAYOUT (WNDFIND("tor"), 1033)
SETKBLAYOUT (WNDFIND("clickermann"), 1033)

SUB(c)
   WAITMS(100)
   keydown(#ctrl)
   WAITMS(100)
   keypress(#c)
   WAITMS(100)
   keyup(#ctrl)
   WAITMS(100)
END_SUB

SUB(v)
   WAITMS(100)
   keydown(#ctrl)
   WAITMS(100)
   keypress(#v)
   WAITMS(100)
   keyup(#ctrl)
   WAITMS(100)
END_SUB

//newmailbox
WNDSTATE(WNDFIND("tor"), 1)
WAITMS(500)
LCLICK(951,10)  // klik
LCLICK(90,38)    //  menu
WAITMS(500)
LCLICK(126,75)   // new id
wait(3)
//mailnew
HINTPOPUP ("цикл", $s)
LCLICK(500,23)  // 2498329
WAITMS(100)
LCLICK(500,23)  // 2498329
keypress(#f6)
WAITMS(500)
KEYSTRING("my10minutemail.com")
WAITMS(100)
keypress(#enter)
WAITMS(500)
FOR($i, $i < 10)
   GETSCREEN
   if(pxl(373,362)=3355443)
      move(440,500)
      ldown(430,500)
      WAITMS(100)
      move(860,500)
      WAITMS(500)
      lup(900,500)
      c()
      $i=10
   else
      WAIT(1)
      IF($i > 8)
         hintpopup("почты не будет")
         screenshot
         goto(begin)
      END_IF
   end_if
END_CYC
//slandonew
LCLICK(391,15)  // newtab
WAITMS(500)
KEYSTRING("ssl.slando.ua/account/register")
WAITMS(100)
keypress(#enter)
FOR($i, $i < 10)
   GETSCREEN
   IF_PICTURE_IN (200,90, 430,170, "slando.bmp")
      LCLICK(445,278)  // mail
      v()
      LCLICK(445,336)  // pass
      v()
      LCLICK(445,392)  // check
      v()
      LCLICK(443,527)  // box
      WAITMS(500)
      LCLICK(450,617)  // send
      $i = 10
   else
      wait(1)
      if($i > 8)
         hintpopup("сландо не грузит")
         screenshot
         goto(begin)
      end_if
   end_if
END_CYC
//savemail
LCLICK(199,423)  // klik
wait(1)
keypress(#home)
FOR($i, $i < 10)
   getscreen
   if(pxl((999,300)!15198207)
      WNDSTATE(WNDFIND("tor"), 0)
      WNDSTATE(WNDFIND("firefox"), 1)
      keydown(#home)
      v()
      WNDSTATE(WNDFIND("firefox"), 0)
      WNDSTATE(WNDFIND("tor"), 1)
      $i=10
   else
      wait(1)
      if($i > 8)
         hintpopup("айпи забанен")
         screenshot
         goto(begin)
      end_if
   end_if
end_cyc
//letter
LCLICK(250,15)  // tab1
FOR($i, $i < 60)
   keypress(34)
   wait(1)
   getscreen
   IF_PICTURE_IN (540,200, 800,500, "activ.bmp")
      lclick($_return1, $_return2)
      $i = 60
   else
      LCLICK(1201,576)  // mailclick
      wait(1)
      LCLICK(949,597)  // letterclick
      if($i>55)
         hintpopup("письма нет")
         screenshot
         goto(begin)
      end_if
   end_if
END_CYC
//settings
LCLICK(613,15)  //altw
WAITMS(500)
LCLICK(387,14)  // tab2
WAITMS(500)
keystring("slando.ua/myaccount/settings")
WAITMS(100)
keypress(#enter)
WAIT(2)
LCLICK(176,405)  // klik
FOR($i, $i < 10)
   GETSCREEN
   IF_PIXEL_IN(0,0, 422,222, 3080380)//slandologo
      WAIT(3)
      LCLICK(300,310)  // izmenit
      wait(1)
      LCLICK(300,245)  // name
      SETKBLAYOUT (WNDFIND("tor"), 1049)
      $name = RND(1,9)
      SWITCH($name)
      CASE(1)
         keystring("fktrcfylh")
      CASE(2)
         keystring("jktu")
      CASE(3)
         keystring("bhf")
      CASE(4)
         keystring("cthutq")
      CASE(5)
         keystring("ktif")
      CASE(6)
         keystring("ltybc")
      CASE(7)
         keystring("bkmz")
      CASE(8)
         keystring("gfif")
      CASE(9)
         keystring("ctvty")
      default
      END_SWITCH
      SETKBLAYOUT (WNDFIND("tor"), 1033)
      LCLICK(300,320)       // nomer
      $nomer= (RND(1000000,9999999))
      keystring("063")
      keystring($nomer)
      wait(1)
      LCLICK(300,160)  // region
      wait(1)
      SWITCH($s)
      CASE(1)
         LCLICK(300,270)    // область
         WAITMS(500)
         LCLICK(300,225)          // город
         WAITMS(500)
         LCLICK(300,390)          // днепр
      CASE(2)
         LCLICK(300,270)    // область
         WAITMS(500)
         LCLICK(300,225)          // город
         WAITMS(500)
         ldown(541,410)
         wait(1,2)
         ldown(541,410)
         WAITMS(500)
         LCLICK(300,380)  // кривой рог
         WAITMS(500)
         LCLICK(300,380)  // кривой рог
      CASE(3)
         ldown(555,345)
         WAIT(2)
         lup(555,345)
         WAITMS(500)
         lclick(300,210)      // область
         WAITMS(500)
         LCLICK(300,225)          // город
         ldown(540,414)
         wait(1)
         lup(540,414)
         WAITMS(500)
         LCLICK(300,305)  // Харьков
      CASE(4)
         LCLICK(300,320)        // область
         WAITMS(500)
         LCLICK(300,225)           // город
         WAITMS(500)
         LCLICK(537,325)  // scroll
         WAITMS(500)
         LCLICK(285,324)  // житомир
      CASE(5)
         LCLICK(555,235)  // scroll
         WAITMS(500)
         lclick(300,285)      // область
         WAITMS(500)
         LCLICK(300,225)          // город
         Ldown(539,344)  // 9529888
         wait(2)
         lup(539,344)
         LCLICK(295,254)   // КИЕВ
      CASE(6)
         Ldown(557,345)  // scroll
         wait(1)
         lup(557,345)
         WAITMS(500)
         LCLICK(300,220)        // область
         WAITMS(500)
         LCLICK(300,227)          // город
         WAITMS(500)
         LCLICK(300,335)        // николаев
      CASE(7)
         Ldown(557,345)  // scroll
         wait(1,5)
         lup(557,345)
         LCLICK(300,285)  // область
         WAITMS(500)
         LCLICK(300,227)          // город
         WAITMS(500)
         LCLICK(300,310)        // одесса
      CASE(8)
         Ldown(557,345)  // scroll
         wait(1)
         lup(557,345)
         WAITMS(500)
         LCLICK(300,275)        // область
         WAITMS(500)
         LCLICK(300,227)          // город
         WAITMS(500)
         LCLICK(543,334)  // 11504706
         WAITMS(500)
         LCLICK(288,408)         //  полтава
      CASE(9)
         Ldown(557,345)  // scroll
         wait(1)
         lup(557,345)
         LCLICK(300,333)  // область
         WAITMS(500)
         LCLICK(300,227)          // город
         WAITMS(500)
         LCLICK(300,335)      //ровно
      CASE(10)
         Ldown(560,287)  // scroll
         wait(2)
         Lup(560,287)
         LCLICK(300,350)  // область
         WAITMS(500)
         LCLICK(300,340)          // город
         WAITMS(500)
         LCLICK(300,309)        // суммы
      DEFAULT
         LCLICK(300,270)    // область
         WAITMS(500)
         LCLICK(300,225)          // город
         WAITMS(500)
         LCLICK(300,390)          // днепр
      END_SWITCH
      WAITMS(500)
      lclick(300,725)      // save
      WAITMS(100)
      LCLICK(283,658)  // 14185263
      wait(1)
      $i = 10
   else
      wait(1)
      if($i >8)
         hintpopup("не грузит")
         screenshot
         goto(begin)
      end_if
   end_if
end_cyc
//obyava
new:
waitms(500)
LCLICK(862,15)  // altf4
waitms(500)
LCLICK(613,404)  // confirm
waitms(500)
LCLICK(638,12)  // tab3
WAITMS(500)
keystring("slando.ua/post-new-ad")
WAITMS(100)
keypress(#enter)
FOR($i, $i < 10)
   GETSCREEN
   IF_PICTURE_IN (200,90, 430,170, "slando.bmp")
      wait(2)
      LCLICK(500,310)       //rubrika
      wait(1)
      LCLICK(500,310)       //rubrika
      wait(1)
      LCLICK(500,310)       //rubrika
      wait(1)
      LCLICK(300,470)   // usluji
      wait(1)
      LCLICK(550,415)   // vibor
      WNDSTATE(WNDFIND("tor"), 0)
      WNDSTATE(WNDFIND("firefox"), 1)
      WAITMS(500)
      keydown(#right)
      c()
      keydown(#right)
      WAITMS(500)
      WNDSTATE(WNDFIND("firefox"), 0)
      WNDSTATE(WNDFIND("tor"), 1)
      WAITMS(500)
      LCLICK(500,400)    // лицо
      WAITMS(500)
      LCLICK(500,425)    //casnoe
      WAITMS(500)
      LCLICK(467,225)  // zagolovok
      v()
      WNDSTATE(WNDFIND("tor"), 0)
      WNDSTATE(WNDFIND("firefox"), 1)
      c()
      keydown(#down)
      WAITMS(500)
      keydown(#home)
      WNDSTATE(WNDFIND("firefox"), 0)
      WNDSTATE(WNDFIND("tor"), 1)
      WAITMS(500)
      LCLICK(502,670)   //foto
      WAITMS(500)
      keydown(#shift)
      WAITMS(100)
      keystring("C:")
      WAITMS(100)
      keyup(#shift)
      WAITMS(100)
      keystring("\gruz\")
      WAITMS(100)
      v()
      WAITMS(100)
      keystring(".jpg")
      WAITMS(100)
      keypress(#right)
      WAITMS(500)
      KEYPRESS(#enter)
      WAITMS(500)
      execute("notepad.exe", STRCONCAT("C:\gruz\", FROMCLIP(), ".txt"))
      WAITMS(500)
      keydown(#ctrl)
      WAITMS(100)
      KEYPRESS(#a)
      WAITMS(100)
      KEYUP(#ctrl)
      c()
      keydown(#alt)
      WAITMS(100)
      keypress(#f4)
      keyup(#alt)
      WAITMS(100)
      LCLICK(500,500)     // opis
      v()
      LCLICK(200,400)     // klik
      WAITMS(100)
      KEYPRESS(#end)       //////
      WAITMS(500)
      move(933,387)        // move
      WAITMS(100)
      lclick(933,387)      // опублик
      $i = 10
      WAIT(3)
      keypress(#home)
      WAIT(1)
      getscreen
      if_pixel_in(888,203,1077,248, 5422725)
         $m=0
         $s=$s+1
         HINTPOPUP ("это успех")
         goto(begin)
      else
         $m=$m+1
         if ($m>2)
            HINTPOPUP ("начинаем с начала", $m)
            screenshot
            wait(1)
            goto(begin)
         end_if
         HINTPOPUP ("ошибки случаются", $m)
         screenshot
         keypress(#f6)
         goto(new)
      end_if
   else
      wait(1)
      if($s>10)
         halt
      end_if
   end_if
end_cyc
Title: Re: Бот для размещения обьявлений
Post by: Johnny on August 30, 2014, 10:28:53 AM
1 в какой базе и как хранить тексты заголовки и фото так, что бы скрипт быстро копировал их от туда, мои изыскания с экселем ни к чему не привели
кликер умеет писать и читать текстовые файлы построчно. этого тебе будет достаточно я думаю.

Quote
2 как сделать файл отчетности с ссылкой на обьявление созданое, заголовком и временем создания
так же кликер умеет смотреть системное время и работать с буфером обмена. ссылку можешь с браузера копировать

Quote
3 можно ли как то кликер научить распознавать капчу с помощь посторонних прог?
можно. более того данный инструмент был реализован мной еще год назад и лежит тут же на сайте. agclient

держи в курсе. мне интересны именно НЕ игровые скрипты.
Title: Re: Бот для размещения обьявлений
Post by: Луций on August 30, 2014, 01:08:11 PM
чувак, как вытаскивать системное время хотяб, напиши плз пример
с построчной работой тоже не совсем понял, ща буду капчерез искать
Title: Re: Бот для размещения обьявлений
Post by: aden on August 30, 2014, 01:20:08 PM
Джони срочно нужна новая версия кликера с огромной кнопкой 100х100px посередине для открытия инструкции по командам =)
Title: Re: Бот для размещения обьявлений
Post by: Atas on September 01, 2014, 08:27:31 AM
Quote
... (если еще кто подскажет как избавиться от каракулей вместо русских букв - вообще супер будет)
Каракули получаются когда копируешь скрипт из редактора Clickermann'а. Попробуй сначала сохранить скрипт, потом открыть его в Блокноте, и скопировать уже из него.
Прочитать каракули поможет всеми любимая программа Shtirlitz v4.01, есть так же плагин Shtirlitz для Notepad++.
Title: Re: Бот для размещения обьявлений
Post by: Луций on September 10, 2014, 12:18:00 AM
обновил первый пост, призываю местных 2,5 админа на помощ
Title: Re: Бот для размещения обьявлений
Post by: Vint on September 10, 2014, 10:46:35 AM
2 как сделать нормальные рабочие сабы (у меня ctrl+v пашет а ctrl+c не хочет)
А как ты саб на ctrl+c вызывал? Просто в SUB(с) у тебя "с" русская, предполагаю, что вызывал как положено английскую как и "v". Короче коварняя c/с на одной кнопке иногда подводит, нужно следить, а лучше не давать такие имена. я пишу сразу copy() и панто свитчер если что меня поправит и не даст спутать одну букву.

В стр. 108 лишняя скобка
if(pxl((324,243)=5422725)

В генераторе телефона  в
$nomer= (RND(0,9999999)
нет закрывающей скобки из-за чего он выдаёт номера вида "(654789"
При этом номера не обязательно будут 7-и значные, если это важно нужно переделать для формирования номера с нужным количеством цифр.

По поводу вставки вместо имени мусора из 9 вариантов, не лучше бы выбирать из реальных имён, кому нужно объявление от "jhgdfhj" я его и смотреть не буду.

Когда писал подобные скрипты при работе с браузером, тоже сначала вводил в адресную строку кейстрингом. Но потом понял что кейстринг иногда довольно ненадёжная вещь, особенно если комп начинает тупить не вовремя. Переделал все открытия страниц на вызов браузера через execute
Как пример... для начала открываю одну ненужную страницу, чтобы при закрытии вкладки (последней) не закрывался браузер. Знаю что можно настроить, но по умолчанию у всех так.
Code: (clickermann) [Select]
   $hwnd = WNDFIND("Mozilla Firefox")
   IF($hwnd > 0)
      EXECUTE("firefox.exe", "yandex.ru")      //запуск Мозилы
      WAIT(3)
   END_IF

В дальнейшем при необходимости открываю нужную страницу, она открывается в новой вкладке
Code: (clickermann) [Select]
EXECUTE("firefox.exe", "slando.ua/myaccount/settings")
После обработки закрываю ненужную вкладку вызывая close()
Code: (clickermann) [Select]
SUB(close)
   KEYDOWN (#CTRL)
   WAITMS (50)
   KEYDOWN (#W)
   WAITMS (50)
   KEYUP (#W)
   KEYUP (#CTRL)
   WAITMS(500)
END_SUB

А работа с адресами в блокноте как в строках 409+ через keystring ...
вместо
Code: (clickermann) [Select]
      execute("notepad.exe")
      WAITMS(500)
      keydown(#ctrl)
      WAITMS(100)
      keypress(#o)
      WAITMS(50)
      keyup(#ctrl)
      WAIT(1)
      keydown(#shift)
      WAITMS(100)
      keystring("C:")
      WAITMS(100)
      keyup(#shift)
      WAITMS(100)
      keystring("\gruz\")
      WAITMS(100)
      KEYDOWN (#CTRL)
      WAITMS (50)
      KEYDOWN (#V)
      WAITMS (50)
      KEYUP (#V)
      WAITMS(100)
      KEYUP (#CTRL)
      WAITMS(100)
      keystring(".txt")
      WAITMS(500)
      KEYPRESS(#enter)

проще вызвать блокнот передав ему в параметре путь к файлу
Code: (clickermann) [Select]
execute("notepad.exe", STRCONCAT("C:\gruz\", FROMCLIP(), ".txt"))или понятнее
Code: (clickermann) [Select]
$file = STRCONCAT("C:\gruz\", FROMCLIP(), ".txt")
execute("notepad.exe", $file)
Title: Re: Бот для размещения обьявлений
Post by: Луций on September 10, 2014, 02:29:34 PM
jhgdfhj - это реальное имя набранное на рус раскладке =) с сменой раскладки я скрипт так и не подружил, и еще без скобок некоторых у меня все работает как не странно, а вот за нормальный запуск блокнота спасибо ща буду править
Title: Re: Бот для размещения обьявлений
Post by: aden on September 10, 2014, 02:43:20 PM
jhgdfhj - это реальное имя набранное на рус раскладке =) с сменой раскладки я скрипт так и не подружил
пунтосвичер подсказывает что вы хотели набрать на русской раскладке "орпваро" может я чего недогоняю но мне кажется такого имени нет =)
Title: Re: Бот для размещения обьявлений
Post by: Луций on September 10, 2014, 03:58:53 PM
jhgdfhj - это реальное имя набранное на рус раскладке =) с сменой раскладки я скрипт так и не подружил
пунтосвичер подсказывает что вы хотели набрать на русской раскладке "орпваро" может я чего недогоняю но мне кажется такого имени нет =)

так у меня в скрипте и нет такого, это предыдущий комментатор придумал, но проблема с сменой языка есть, как решить - ума не приложу
Title: Re: Бот для размещения обьявлений
Post by: Vint on September 10, 2014, 04:17:30 PM
Да хоть по нормальному переключить на русский
Code: (clickermann) [Select]
SETKBLAYOUT (WNDFIND("Mozilla Firefox"), 1049)
SETKBLAYOUT (WNDFIND("Clickermann - "), 1049)

Хоть поставить пантосвитчер и в конце добавлять пробел+Backspace
Title: Re: Бот для размещения обьявлений
Post by: Vint on September 10, 2014, 04:22:20 PM
... и еще без скобок некоторых у меня все работает как не странно...
Значит там нет проверки на правильность номера, можно вводить что попало.
Но номер неправильно, вот запусти и посмотри
Code: (clickermann) [Select]
FOR($i, $i<20)
   $nomer= (RND(0,9999999)
   LOGWRITE ($nomer)
END_CYC
HALT
А потомь добавь скобку и убедись. Точнее удали лишнюю.
Title: Re: Бот для размещения обьявлений
Post by: Луций on September 10, 2014, 05:09:21 PM
    SETKBLAYOUT (WNDFIND("Mozilla Firefox"), 1049)
    SETKBLAYOUT (WNDFIND("Clickermann - "), 1049)

это переключение на англ всегда? а на русский как?
Title: Re: Бот для размещения обьявлений
Post by: Oraven on September 10, 2014, 06:20:36 PM
    SETKBLAYOUT (WNDFIND("Mozilla Firefox"), 1049)
    SETKBLAYOUT (WNDFIND("Clickermann - "), 1049)

это переключение на англ всегда? а на русский как?

1033 - это английская
1049 - русская
Title: Re: Бот для размещения обьявлений
Post by: Луций on September 11, 2014, 05:03:58 AM
еще у меня     

$file = STRCONCAT("C:\gruz\", FROMCLIP(), ".txt")
execute("notepad.exe", $file)

не хочет работать (синтаксическая ошибка) , вообще всю ту абракадабру, которую мне предложили заменить этим изображением я писал потому, что кликер вместо "C:\" писал "C;\" и тому подобное, думаю тут та же беда но как исправить я хз, и не совсем понимаю что делает STRCONCAT

при этом первое выражение вот что пишет: c;\gruz\1.txt

$file = STRCONCAT("c:\gruz\", FROMCLIP(), ".txt")
keystring($file)

а это заработало нормально:
execute("notepad.exe", STRCONCAT("C:\gruz\", FROMCLIP(), ".txt"))


Title: Re: Бот для размещения обьявлений
Post by: aden on September 11, 2014, 07:02:10 AM
ну как же так то
в инструкции по русски написано простым языком, что тут может быть непонятного
Code: (html5) [Select]
STRCONCAT ("str1", "str2", ...) - строковая функция; возвращает объединенную строку

Title: Re: Бот для размещения обьявлений
Post by: Луций on September 12, 2014, 07:14:08 PM
а как ее заставить вводить "C:" вместо "C;"?
Title: Re: Бот для размещения обьявлений
Post by: Oraven on September 12, 2014, 07:19:39 PM
а как ее заставить вводить "C:" вместо "C;"?

keystring обрабатывает каждый символ и нажимает соответствующую клавишу. Но что бы получить : нужно перед нажатием клавиши "Ж" зажать Shift. Функция этого не умеет делать.
Title: Re: Бот для размещения обьявлений
Post by: aden on September 12, 2014, 09:46:58 PM
копипастой же=)
Title: Re: Бот для размещения обьявлений
Post by: Луций on September 13, 2014, 08:04:35 AM
может я тупой, но у меня постоянно ошибки интерпритации, в общем нужно вот это:

WAITMS(500)
      keydown(#shift)
      WAITMS(100)
      keystring("C:")
      WAITMS(100)
      keyup(#shift)
      WAITMS(100)
      keystring("\gruz\")
      WAITMS(100)
      v()
      WAITMS(100)
      keystring(".jpg")
      WAITMS(100)
      keypress(#right)
      WAITMS(500)
      KEYPRESS(#enter)
      WAITMS(500)

превратить в вот это:

$pic= STRCONCAT("C:\gruz\", FROMCLIP(), ".txt"))
keystring($pic)

кстати скрипт еще раз обновил, перешел практически полностью на поиск картинок, теперь не могу вдуплить как прикрутить свои звуки
Title: Re: Бот для размещения обьявлений
Post by: Угрюмыч on September 15, 2014, 12:13:44 PM
может я тупой, но у меня постоянно ошибки интерпретации, в общем нужно вот это...
Но что бы получить : нужно зажать Shift. Функция этого не умеет делать.
Code: (clickermann) [Select]
keydown(#shift)
WAITMS(100)
keystring("C:")
WAITMS(100)
keyup(#shift)
WAITMS(100)
$pic= STRCONCAT("\gruz\", FROMCLIP(), ".jpg")
keystring($pic)
А жаль... В идеале KEYSTRING должна и shift нажимать, и раскладку менять когда надо. А сейчас, если попытаться выполнить этот код при русской раскладке, букв мы не увидим :-[ Ну если только из буфера прилетят...
Title: Re: Бот для размещения обьявлений
Post by: Vint on September 15, 2014, 03:27:31 PM
Жаль конечно. Но в Кликермане KEYSTRING это всего лишь такой себе аккумулятор KEYPRESS (keycode), чтобы не писать простыню последовательностей. Да он наверно и вызывает KEYPRESS передавая символы по одному.