Author Topic: Анализ найденных скриншотов с новыми  (Read 3560 times)

0 Members and 6 Guests are viewing this topic.

Rekmozd

  • Зашел в гости
  • *
  • Posts: 9
    • View Profile
Добрый день, трудяги. Пишу код для девушки, что то типо чат бота, и там нужно сделать анализ уже отработанных клиентов. Продумал алгоритм, все прописал, но как всегда есть камень предкновения. Вопрос в чем, используя функцию if_picture_in можно ли в роли имени скрина использовать переменную, которую можно изменять в цикле? Кроме этого вопроса я найду решения на другие сам, в том числе и на косяки, которые сейчас есть в коде, проблема только в этом....   Привожу код, думаю поможет понять суть моей проблемы...  За ранее спасибо.

Code: (clickermann) [Select]
getscreen
scanpicture ($online, 121,200, 297,791,"online.bmp",-1,80)                //добавление в массив всех координат клиентов онлайн

$ind=0                             //счетчик количества заскринованых клиентов     
for ($i=0,$i<arrsize($online),2)
   screenshotex($online[$i],$online[$i+1],$online[$i]+237,$online[$i+1]+16,"MAN")   //сохранение скринов клиентов
   if($ind<10)
      STRWRITELN ("text.txt",strconcat("MAN000",$ind,".bmp"))    //запись в тхт имя скрина, до 9 строки 1 циферного счетчика
     
   end_if
   if($ind>9)
      STRWRITELN ("text.txt",strconcat("MAN00",$ind,".bmp")) //запись в тхт имя скрина,от 10  строки для 2 циферного счетчика
   end_if
   INC ($ind)
end_cyc

$x_cord=1390          //координата Х для выбора всех клиенток
$y_cord =457          //координата У для переключения на другую клиентку (в след. цыклах она изменяется)
$base = 0


for($wom=1,$wom<7,1)
   TOCLIP (STRREADLN ("massage.txt",$wom))     //копипаст сообщения для клиента
   waitms(300)
   lclick($x_cord, $y_cord)
   waitms(300)
   
   
   if_picture_in($online[$i],$online[$i+1],$online[$i]+237,$online[$i+1]+16,STRREADLN("text.txt",$base),-1,80)
//задумка такая, по координатам первого скина хочу запустить сравнение с базой скринов, был ли такой мужик уже, имя скрина хотел брать из текстовика, куда они все записывались

   
   for ($i=0,$i<arrsize($online),2)
      move($online[$i]+117,$online[$i+1]+8)               //дальше просто алгоритм прокликивания мужиков и копипаста сообщений
      waitms(200)
      lclick(447,254)
      waims(200)
      keydown(17)
      keypress(86)
      waitms(100)
      keyup(17)     
   end_cyc
   inc($y_cord,21)
   inc($base) 
   
end_cyc

halt
« Last Edit: January 26, 2018, 04:59:43 PM by Vint »

dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
Re: Анализ найденных скриншотов с новыми
« Reply #1 on: January 26, 2018, 04:18:15 PM »
один вопрос - в "massage.txt" 6 строк с сообщениями. их нужно все поочереди отправлять каждому мужику? или чередовать - первоя строка первому, вторая второму и тд? или сначала всем присылаем первую, пеотом вторую и тд? или всем отправить только первую строку, а на следующей странице вторую?

судя по скрипту выше (то что удалось понять), сначала первую строку все, потом вторую всем и тд .

Rekmozd

  • Зашел в гости
  • *
  • Posts: 9
    • View Profile
Re: Анализ найденных скриншотов с новыми
« Reply #2 on: January 26, 2018, 04:26:22 PM »
Задумка такая:
1 клиентка 1 строка - всем мужикам
2 клиентка 2 строка - всем мужикам
...
6 клиентка 6 строка - всем мужикам.


Там код после применения if_picture_in довольно кривой, если принципиально - могу дописать как оно все должно быть. Проблема именно в использовании имени файла как переменной, ну типо взять $message = "имя скрина 1.bmp" и писать потом if_picture_in (x,y ,x1,y,$message,-1,80) в таком виде выдает ошибку, и я не понимаю, либо нельзя применять переменные в виде имени файла в функции if_picture_in, или я идиот...
« Last Edit: January 26, 2018, 04:53:27 PM by Rekmozd »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Анализ найденных скриншотов с новыми
« Reply #3 on: January 26, 2018, 04:32:43 PM »
Конечно можно.
На самом деле составлять базу данных нет нужды, в последней бета версии функция GETFILELIST заработала как нужно. С помощью неё можно получить список имеющихся файлов по заданной маске
Code: (clickermann) [Select]
GETFILELIST($arr, "screens\MAN*.bmp")
http://crapware.aidf.org/forum/index.php?topic=356.msg25321#msg25321

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

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Анализ найденных скриншотов с новыми
« Reply #4 on: January 26, 2018, 04:49:55 PM »
ну типо взять $message = "имя скрина 1.txt" и писать потом if_picture_in (x,y ,x1,y,$message,-1,80) в таком виде выдает ошибку

Всё можно.
Почему txt - то? когда должно быть bmp
Или почему в качастве примера взято не то, что в коде?

Вот это почти нормально
Code: (clickermann) [Select]
if_picture_in($online[$i],$online[$i+1],$online[$i]+237,$online[$i+1]+16,STRREADLN("text.txt",$base),-1,80)но нет закрывающего тэга, поэтому всё может пойти вразнос.
И все картинки должны существовать.
« Last Edit: January 26, 2018, 04:58:36 PM by Vint »


Rekmozd

  • Зашел в гости
  • *
  • Posts: 9
    • View Profile
Re: Анализ найденных скриншотов с новыми
« Reply #5 on: January 26, 2018, 04:53:33 PM »
Верно, ошибочка) исправил)

Rekmozd

  • Зашел в гости
  • *
  • Posts: 9
    • View Profile
Re: Анализ найденных скриншотов с новыми
« Reply #6 on: January 26, 2018, 04:54:25 PM »
Конечно можно.
На самом деле составлять базу данных нет нужды, в последней бета версии функция GETFILELIST заработала как нужно. С помощью неё можно получить список имеющихся файлов по заданной маске
Code: (clickermann) [Select]
GETFILELIST($arr, "screens\MAN*.bmp")
http://crapware.aidf.org/forum/index.php?topic=356.msg25321#msg25321

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


Да там картинки весом 15кб... Спасибо большое, буду рыться и искать где напортачил...  А есть не на яндексе? А то у меня Порошенко... на работе впн не поставить.
« Last Edit: January 26, 2018, 04:56:09 PM by Rekmozd »

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Анализ найденных скриншотов с новыми
« Reply #7 on: January 26, 2018, 04:59:11 PM »
дописал. Нет закрывающего END_IF


dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
Re: Анализ найденных скриншотов с новыми
« Reply #8 on: January 26, 2018, 05:13:04 PM »
в GETFILELIST пока сомневаюсь, коряво она работала на 4.12 , в 4.13 не тестил.

у тебя там с циклами неразбериха.

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

Code: (clickermann) [Select]

SUB(action) // процедура записи скрина и имени, и действия над мужиком
   screenshotex($online[$i],$online[$i+1],$online[$i]+237,$online[$i+1]+16,"MAN")   //сохраняем скрин клиента. 237х16 - много!!!
   //запись в тхт имя скрина
   if($i<10)
      STRWRITELN ("names.txt",strconcat("screens\MAN000",$i,".bmp"))
   end_if
   if($i>9)
      STRWRITELN ("names.txt",strconcat("screens\MAN00",$i,".bmp"))
   end_if
   
   //действия с мужиком
   move($online[$i]+117,$online[$i+1]+8)
   waitms(200)
   lclick(447,254)
   waims(200)
   keydown(17)
   keypress(86)
   waitms(100)
   keyup(17)
   //после ctrl+v наверно еще чето нажать нужно
   
END_SUB

//---------------------------------------



//координаты клиенток
$x_cord=1390          //координата Х для выбора всех клиенток
$y_cord =457          //координата У для переключения на другую клиентку (в след. цыклах она изменяется)



for($wom=1,$wom<7,1)      //перебор строк и клиенток
   TOCLIP (STRREADLN ("massage.txt",$wom))     //копипаст сообщения для клиента
   waitms(300)
   lclick($x_cord, $y_cord + (($wom-1)*21) ) //клик по клиентке , со сдвигом на 21 по У при каждом проходе цикла
   waitms(300)
   
   UNDEFINE($online)  //обнуляем массив перед следующим сканом
   getscreen
   scanpicture ($online, 121,200, 297,791,"online.bmp",-1,80)                //добавление в массив всех координат клиентов онлайн
   
   //перебираем всех найденых на экране
   for ($i=0,$i<arrsize($online),2)
     
      IF(TFCOUNT ("names.txt") > 0) //проверка на наличие в файле строк
         
         FOR($n = 1,$n < TFCOUNT ("names.txt")+1) // перебор всех скринов на наличие повторок
           
            if_picture_in($online[$i],$online[$i+1],$online[$i]+237,$online[$i+1]+16,STRREADLN("names.txt",$n),-1,80)
               print("уже есть в базе")   //если совпадет с одним из уже существующих скринов
               //завершаем цикл
               $n = TFCOUNT ("names.txt")+1
            end_if
           
         END_CYC
         
         //если в базе скринов такого нет
         IF($n = TFCOUNT ("names.txt")+1)
            action()
         END_IF
         
      else  //если файл пустой (его нет)
         action()
      END_IF
     
     
   end_cyc
end_cyc



halt



забыл про обнуление массива перед сканом scanpicture, поправил.
« Last Edit: January 26, 2018, 05:29:26 PM by dramster »

Rekmozd

  • Зашел в гости
  • *
  • Posts: 9
    • View Profile
Re: Анализ найденных скриншотов с новыми
« Reply #9 on: January 26, 2018, 10:15:24 PM »
в GETFILELIST пока сомневаюсь, коряво она работала на 4.12 , в 4.13 не тестил.

у тебя там с циклами неразбериха.

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

Code: (clickermann) [Select]

SUB(action) // процедура записи скрина и имени, и действия над мужиком
   screenshotex($online[$i],$online[$i+1],$online[$i]+237,$online[$i+1]+16,"MAN")   //сохраняем скрин клиента. 237х16 - много!!!
   //запись в тхт имя скрина
   if($i<10)
      STRWRITELN ("names.txt",strconcat("screens\MAN000",$i,".bmp"))
   end_if
   if($i>9)
      STRWRITELN ("names.txt",strconcat("screens\MAN00",$i,".bmp"))
   end_if
   
   //действия с мужиком
   move($online[$i]+117,$online[$i+1]+8)
   waitms(200)
   lclick(447,254)
   waims(200)
   keydown(17)
   keypress(86)
   waitms(100)
   keyup(17)
   //после ctrl+v наверно еще чето нажать нужно
   
END_SUB

//---------------------------------------



//координаты клиенток
$x_cord=1390          //координата Х для выбора всех клиенток
$y_cord =457          //координата У для переключения на другую клиентку (в след. цыклах она изменяется)



for($wom=1,$wom<7,1)      //перебор строк и клиенток
   TOCLIP (STRREADLN ("massage.txt",$wom))     //копипаст сообщения для клиента
   waitms(300)
   lclick($x_cord, $y_cord + (($wom-1)*21) ) //клик по клиентке , со сдвигом на 21 по У при каждом проходе цикла
   waitms(300)
   
   UNDEFINE($online)  //обнуляем массив перед следующим сканом
   getscreen
   scanpicture ($online, 121,200, 297,791,"online.bmp",-1,80)                //добавление в массив всех координат клиентов онлайн
   
   //перебираем всех найденых на экране
   for ($i=0,$i<arrsize($online),2)
     
      IF(TFCOUNT ("names.txt") > 0) //проверка на наличие в файле строк
         
         FOR($n = 1,$n < TFCOUNT ("names.txt")+1) // перебор всех скринов на наличие повторок
           
            if_picture_in($online[$i],$online[$i+1],$online[$i]+237,$online[$i+1]+16,STRREADLN("names.txt",$n),-1,80)
               print("уже есть в базе")   //если совпадет с одним из уже существующих скринов
               //завершаем цикл
               $n = TFCOUNT ("names.txt")+1
            end_if
           
         END_CYC
         
         //если в базе скринов такого нет
         IF($n = TFCOUNT ("names.txt")+1)
            action()
         END_IF
         
      else  //если файл пустой (его нет)
         action()
      END_IF
     
     
   end_cyc
end_cyc



halt



забыл про обнуление массива перед сканом scanpicture, поправил.



Тот скрипт вообще не доработан, я его не выстраивал красиво, там куча вставок непродумок и тд... Как раз после сообщения Oraven и Vint нашел косяк с не закрытым IF, потом нашел и чтение нулевой строки из ТХТ в инструкцию самой IF_PICTURE_IN. За пол часа справился, даже проверил что он проверяет сами скрины, и тут у меня на работе запустился скрипт выключения компа... выложил бы уже работоспособный, но тупо не успел сохранить...

Про размер скринов, там он весит 15 кб, и клиентов будет за 3 часа не более сотни, там не сильно надо быстродействие. Но при желании можно скринить в базу только ник нэймы.

Rekmozd

  • Зашел в гости
  • *
  • Posts: 9
    • View Profile
Re: Анализ найденных скриншотов с новыми
« Reply #10 on: January 26, 2018, 10:19:51 PM »
бедные мужики, такой значится вы им подарок к 23 февраля решили приготовить!   ;D
Ну а когда они на этих ваших подсадных кукушек начнут клевать, вы им баб надувных по почте отправлять будете?  :P

Бот просто для того, что бы завязать разговор. А когда крендель отпишется, тогда уже будет живой человек) И по секрету (всему свету) расскажу, что когда у них там дело идет к встрече, то самой "подсадной" показывают мужика, и предлагают ехать к нему) Там все чисто))

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Анализ найденных скриншотов с новыми
« Reply #11 on: January 29, 2018, 05:19:30 PM »
Бот просто для того, что бы завязать разговор. А когда крендель отпишется, тогда уже будет живой человек) И по секрету (всему свету) расскажу, что когда у них там дело идет к встрече, то самой "подсадной" показывают мужика, и предлагают ехать к нему) Там все чисто))
К чёрту подробности... Город какой?   :) ;D


Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Анализ найденных скриншотов с новыми
« Reply #12 on: January 29, 2018, 07:36:15 PM »
Тыж супермодератор, можешь по доступному IP любого здесь пробить с точностью до номера дома.
Выходит, что все девушки форума для тебя доступны!  :o
Зачем ты палишь контору.
Я так и сделал через 2 секунды после написания поста. Но не буду же я это всем говорить, может люди в неведении.

Пост то создан ради прикола. Вспомнились возгласы на Япе и прочих пикабу.


Rekmozd

  • Зашел в гости
  • *
  • Posts: 9
    • View Profile
Re: Анализ найденных скриншотов с новыми
« Reply #13 on: February 02, 2018, 01:01:32 PM »
Бот просто для того, что бы завязать разговор. А когда крендель отпишется, тогда уже будет живой человек) И по секрету (всему свету) расскажу, что когда у них там дело идет к встрече, то самой "подсадной" показывают мужика, и предлагают ехать к нему) Там все чисто))
К чёрту подробности... Город какой?   :) ;D

Неважно какой город. Сайт знакомств для Буржуев, которые хотят словяночек в жены. Наших мужиков там нету)

Rekmozd

  • Зашел в гости
  • *
  • Posts: 9
    • View Profile
Re: Анализ найденных скриншотов с новыми
« Reply #14 on: February 05, 2018, 12:40:45 PM »
Бот просто для того, что бы завязать разговор. А когда крендель отпишется, тогда уже будет живой человек) И по секрету (всему свету) расскажу, что когда у них там дело идет к встрече, то самой "подсадной" показывают мужика, и предлагают ехать к нему) Там все чисто))
К чёрту подробности... Город какой?   :) ;D

Неважно какой город. Сайт знакомств для Буржуев, которые хотят словяночек в жены. Наших мужиков там нету)
По сути все вам помогающие втянуты соучастниками в сводничество на коммерческой основе с элементами мошенничества. Маловероятно, что вы на сайте уведомляете,  о том что все надеющиеся создать семью общаются с одним и тем-же ботом.

Во первых, общается не бот, а живой человек, и бота я пишу для автоматизации однотипных действий. Во вторых, если бы вы зашли на какой нибудь сайт знакомств, будь то наш или западный, везде есть подставные работники самого сайта, которые используя топовых клиенток общаются от их имени. Если у человека достаточно развит мозг, он это понимает, и на сообщения подставных не отвечает, я был на парочке сайтов и видел это воочию.
« Last Edit: February 05, 2018, 12:42:54 PM by Rekmozd »