Если фри, то выше кинули, если через сервисы, можно также "вдохновиться" моим скриптом решалки Яндекс капчи, там ровно такая же суть, но прикручено решение через антигейт (с ручными индусами), но можно так и любой сервис с индусами прикрутить. Решение на гуру не чекал, баланса небыло на аке)
Модуль прерывает скрипт
-
Составил скрипт, который в ходе работы вызывает модуль.
После выполнения модуля поток завершает работу, как будто модуль - это последнее действие в алгоритме. В логе надпись: "Поток №1 : Ok"В чем может быть причина и как можно исправить/настроить?
Добавлю, что нет общих переменных и параметров у скрипта и модуля. Модуль автономный, независимый.
-
OK, но как я понимаю, прописано это не в виде экшна? Собственно, хочется знать, как направить поток дальше по скрипту. Действия «Success» и «Fail» не используются в модуле.
В обучающем ролике "Расширение функционала BAS с помощью модулей" не нашел ответа.
Ну ладно, хотя бы понятно, что этого не должно быть "по умолчанию".
-
@UserTrue Ну, просто модуль работает без ошибок сам по себе и ничего не дает скрипту в качестве ответа. Грубо говоря набор тривиальных действий (типа "бездействия") на странице и все. Ошибаться-то не где.
Просто не могу понять, где это я заставил его прерывать весь поток по окончании. И как это вообще можно сделать. Щас буду все пересматривать еще раз.
-
Все, сделаль. Почему-то поток работает нормально, когда модули расположены в созданной функции скрипта. Я же размещал обращения к модулям прямо в main'е.
Ну то есть нельзя из main запускать модули. Они прерывают поток по окончании в этом случае. Следует создавать функцию с этими модулями и ссылаться на нее в main'e. Странно, но работает именно так.
Или этого не было, или я упустил это при просмотре обучающих роликов.
-
@DrPrime
Нет, нет ни саксес, ни брейк.
Я начал проверять на простом тестовом скрипте.
Создал первый модуль - тупо вывод в лог надписи.
Создал второй модуль, который вызывает в себе первый.
Третий скрипт тестировал. Он содержал в себе цикл из нескольких повторений модуля 2.
Если цикл вызывался в main, то поток заканчивал работу с успехом "Поток №1 : Ok" после первой итерации. Если цикл был внесен в функцию, а main ссылался на эту функцию, тогда цикл повторялся заданное количество раз.PS: Возможно это из-за моей ауры. Индивидуальные баги)) Сталкивался с этим еще в универе. Писал дома рабочую программу в Delphi. А когда принес преподу, она не работала. И он не мог найти почему)) Да и в обсуждениях здесь таких багов никто больше не испытывал, судя по темам.
-
@IvanM said in Модуль прерывает скрипт:
Я начал проверять на простом тестовом скрипте.
Можете приложить тестовый скрипт и ваш тестовый модуль? Что бы я мог повторить ошибку
-
@Fox
layer3.xml - алгоритм с функцией, работает как надо.
layer3_error.xml - алгоритм с main, прерывается преждевременно .
layer2.xml - скрипт модуля к которому обращается layer3.
layer1.xml - скрипт модуля к которому обращается модуль layer2.Добавлю, что сегодня на другой машине сработали успешно оба варианта скриптов. Дело только в железе или настройках домашнего ПК? Если нет, то вообще не представляю в чем причина.
@UserTrue
В оригинальном скрипте да, использовал. Но проблема была не в них. Тестовый скрипт без меток также прерывался.@DrPrime
Да, не уточнил. "Модули" - мои скрипты BAS, созданные для визуального упрощения. -
@IvanM said in Модуль прерывает скрипт:
@Fox
layer3.xml - алгоритм с функцией, работает как надо.Вы используете какой то кастомный модуль, установленный не через менеджер модулей

layer3_error.xml - алгоритм с main, прерывается преждевременно .
Действие "Layer2" пытается обратится к несуществующей функции Layer1_Layer1
Если я правильно понял алгоритм, вы создали модуль 1, который выводит данные в лог, создали модуль 2, который использует модуль 1. И затем использовали в скрипте модуль 2 в цикле в функции Main.