yinfo пишетНо ведь мы можем запустить iMacros c помощью кнопки "Воспроизвести" и уйти на другие вкладки, при этом скрипт продолжает работать. Значит, iMacros запоминает текущее окно.
Нет нельзя, имакрос работает только в текущей вкладке.
Спасибо за внимание к моему вопросу!
Наверное, это как-то можно сделать, обходными путями:
1. изменив код расширения imacros (и лишив себя возможности обновлений);
2. используя управляющие скрипты iMacros для манипуляции вкладками Firefox, а эмуляцию нажатий возложить на какую-то стороннюю библиотеку, например jquery.
То есть от iMacros взять только возможность доступа к коллекции вкладок gBrowser.tabs, а уже страницей манипулировать с помощью jquery.
Но оба этих пути представляются достаточно трудоемкими.
Как выполнить команду iimPlay() на неактивной вкладке (из управляющего Javascript)? Первый ответ, который приходит в голову - что это сделать нельзя. Ведь сначала нужно с помощью команды TAB активировать нужную вкладку и только потом вызывать iimPlay().
Но ведь мы можем запустить iMacros c помощью кнопки "Воспроизвести" и уйти на другие вкладки, при этом скрипт продолжает работать. Значит, iMacros запоминает текущее окно. Может можно это текущее окно как-то установить из управляющего javascript?
Коллеги, нашел сервис и успешно использую его. Называется AudioRecorder. Позволяет записывать звук - клипа или всего того, что вам нужно. При открытии сайта вылезает окно - разрешить доступ к звуковой карте/микрофону - это я нажимаю руками -да, к звуковой карте. iMacros почему-то не работает с этим окном, или я ошибаюсь? А вот дальше, после ручного согласия, уже можно использовать iMacros: щелкнуть по значку микрофона, переключиться на вкладку с музыкой , как отследить окончание музыки не понятно, и сохранить файл на диск.
просто нужно проверить там есть картинка(каптча) или нету, ну и я решил что можно проверить таким способом как: если сохранится картинка(каптча) , значит картинка там есть, если не сохраниться -нету. Возможно немного сложно, но просто я новичок и не очень шарю в различных комбмнацыях.
18-04-2015 23:23:36
И если не сложно растолкуйте мне плз , что нужно вставлять в (..) после if, while, for, do и т. д. , просто пишут в основном на примере цыфер. А как и какие команды подставлять даже не представляю.
Дружище, у нас есть вот такой выбор:
1. либо мы ждем прихода спецов, которые помогут тебе;
2. либо мы , два нуба, пытаемся сформулировать и решить твою проблему.
Мне кажется, у тебя чуть нарушена логика. Правильнее так:
Если нет капчи То
делаем свое дело
Иначе
запускаемРаспознаниеКапчиУИндусовЛибоРискуемСразуПолучитьБан
все зависит от сайта, который ты хочешь штурмовать)
…готовых сервисов для того чтоб делиться закладками over9000 погуглите и не изобретайте велосипед.
алсо база вобще лишняя, достаточно текстового файла, да просто заведите на любом блогохостинге пару аккаунтов, одним зафрендите другого и пишите френдс онли.
чтоб постить к себе ссылочки достаточно простой СВ кнопки а для чтения вообще ничего не надо.
Спасибо, что ответили мне.
Я хочу так написать свой маме.. чтобы 10 миллионов китайцев не постеснялись ответить своим мамам таким же способом.
Привет всем! у меня есть к вам вопрос. Как сделать так чтобы если картинка(каптча) сохранялась то страничка перезагружалась, и это действия началось заново,если нет то продолжалось действие. Сижу ломаю голову, нечего не выходит.
Приветы:)
pourquoi? (франц) - на кой?(русск)
Капча сохранялась.. кем, тобой? Расскажи, может всё проще)
Привет.
Решаю конкретную задачу: моя мама всего пару лет как увидела интернет. Сына видит раз в месяц - мы живем далеко друг от друга. Она открывает для себя интернет, я хочу иметь возможность делиться с ней полезными ссылками.
Хочу написать такой плагин(расширение?): на понравившейся мне странице нажимаю кнопку - ссылка заносится в базу. Свой логин забиваю один раз, он сохраняется в настройках. Мама при запуске FireFox один раз вводит логин (он сохраняется в настройках) - и видит рекомендованные ссылки.
Мой уровень : программист 1С 10 лет, XPCOM изучаю последние 6 месяцев. Основной вопрос: где можно захостить базу данных. Что-то я читал, что у Майкрософта какие-то базы данных можно хостить бесплатно. Что скажете об этом? Можно ли реально где-то бесплатно захостить базу данных бесплатно для моих целей?
Ломал голову над задачкой: как из одного управляющего JS загрузить другой JS и передать туда параметры.
Сам вызов делается легко - с помощью iimPlay, но вот передача параметров - это проблема. Не догадались создатели iMacros сделать что-то вроде iimPlay ( String macro [, int timeout] [,params]).
Test1.js -вызывающий скрипт, Test2.js - вызываемый скрипт (должен лежать в корне папки Macros).
Test1.js
[spoiler][code]function callFuncAnotherJS (jsName, funcName, params){
iimPlay("CODE:URL GOTO=imacros://run/?m="+jsName+".js",60);
var timer;
var AnotherJS = imns.storage[jsName];
var timeEvent = {
observe: function(subject, topic, data) {
AnotherJS = imns.storage[jsName];
if(!(AnotherJS==null)){
timer.cancel();
timer = null;
AnotherJS[funcName](params);
}
}
}
if (AnotherJS == null){
timer = Components.classes[
если речь о запущенном скрипте, то проверять возвращаемые ошибки, либо файл прочитан, либо - ошибка
Я вот только сегодня ночью начал пробовать код, который мониторит папку на предмет наличия файла с параметрами:
var paramsFolder = "C:\\iMacros\\Macros\\params\\"; window.setInterval(function(){ var file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile); file.initWithPath( paramsFolder ); var entries = file.directoryEntries; var array = []; while(entries.hasMoreElements()){ var entry = entries.getNext(); entry.QueryInterface(Components.interfaces.nsIFile); array.push(entry); } if (array.length>0){ /* Тут что-то делаем с файлами... */ } }, 2000);
04-04-2015 12:00:39
yinfo, js, если не использовать различные хаки, не имеет доступа до файловой системы, иначе бы, вы уже давно лишились всей конфиденциальной информации просто зайдя на чей-либо сайт
Не спорю со специалистом, ибо я нуб, но вот работающий код, который читает локальный файл "D:\\scr.txt", причем с кириллицей:[spoiler][code]function toUnicode(charset, data){
var uniConv = Components.classes['@mozilla.org/intl/scriptableunicodeconverter'];
uniConv = uniConv.createInstance(Components.interfaces.nsIScriptableUnicodeConverter);
uniConv.charset = charset;
data = uniConv.ConvertToUnicode(data);
return data;
};
function read(path) {
var file = Components.classes["@mozilla.org/file/local;1"]
.createInstance(Components.interfaces.nsILocalFile);
file.initWithPath( path );
if ( file.exists() == false ) {
alert("File does not exist");
}
var is = Components.classes["@mozilla.org/network/file-input
InfSub пишетiMacros - не умеет считывать имена файлов в директории, только в ручную, если добавить весь список или переименовать все, и дать файлам имена от 1 одного до n, например: 1 2 3 ... 159... n, после чего запустить скрипт, используя цикл
Эх. А может можно, чтобы содержание папки он куда-нибудь записал, а потом эти данные использовал для вставки, без всяких переименований? Или еще какой хитрый вариант.
Не хитрый, но популярный вариант (как я понимаю) для iMacros: использовать управляющий JavaScript, который может и содержимое локальной файловой системы читать/писать и вызывать сам iMacros.
только постоянно опрашивать. без вариантов.
А жаль.
вместо интервала лучше используй таймаут, чтоб функция сама себя через него вызывала, тогда туда проще надежней поставить остановку цикла, а интервал если не убить(что может по каким либо причинам не случиться) так и будет крутиться до перезапуска браузера и при перезапуске скрипта будет запущено уже два интервала итд
Спасибо за мысль про setTimeout, этот метод, ИМХО, действительно больше подходит для моей цели.
"до перезапуска браузера" - это было бы идеально, но у меня почему-то все не как у людей.. setTimeout в глобальном пространстве имен отсутствует, он в моем контексте исполнения (iMacros) существует только для двух объектов:
1.window.setTimeout()
и
2.WorkerGlobalScope.setTimeout()
С первым вариантом легкая трудность - window закрыли и setTimeout не работает (это и логично и проверил только что).
А что за зверь WorkerGlobalScope я пока так и не понял (источни
При запуске FireFox загружается JavaScript, который должен мониторить заданный каталог локальной файловой системы на предмет появления в нём новых файлов .TXT.
При обнаружении файла .TXT JavaScript обрабатывает файл и удаляет.
Я пока реализовал самый тупой вариант, что пришел в голову - использовать setInterval :
const Cc = Components.classes; const Ci = Components.interfaces; var paramsFolder = "C:\\iMacros\\Macros\\params\\"; window.setInterval(function(){ var file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile); file.initWithPath( paramsFolder ); var entries = file.directoryEntries; var array = []; while(entries.hasMoreElements()){ var entry = entries.getNext(); entry.QueryInterface(Ci.nsIFile); array.push(entry); } if (array.length>0){ /* Тут что-то делаем с файлами... */ } }, 2000);
Так как я изучаю только FireFox XUL и Javac
…Сделал небольшое открытие - как в управляющем JS использовать функции из другого управляющего JS, играющего роль библиотеки функций.
Оказывается, в пространстве имен управляющего JS есть служебный класс imns со свойством imns.storage, возвращающим объект (тип wrappedJSObject) к которому можно определять функции и они будут доступны другим управляющим скриптам на всех окнах!
Создаем и запускаем скрипт "Библиотеки":
После этого выполняем другой скрипт с одной единственной строчкой:
Я отлаживаю несколько управляющих js скриптов, можно ли используемые в них мои функции вынести в один js файл, чтобы править в одном месте?
от вы какие-то чудные, может за вами ещё в туалете подтирать , ну нахрена мозги эволюция сотворила?!!!!
1 --- использовать команды Imacros ONLOGIN USER=_____________ PASSWORD=_____________________
2 --- использовать дополнения которые автоматически заполняют логин прокси и пароль прокси https://addons.mozilla.org/ru/firefox/a … src=search
Шеф, только спокойствие! Я как раз основы изучаю. За совет спасибо.
PS а сайт, Яндекс тот же, не забанит если его с пяти вкладок с разных проксей анализировать?(Поиск или Маркет) Без авторизации.
Сбылась мечта * , моя мечта!)) искал долго и нудно, чувствовал задним местом, что где-то рядом ползаю.
Теперь по делу: imacros при смене прокси и завершении сценария в javascript, возвращается к настройкам которые были до смены прокси, а хотелось бы в нужный момент 1 раз включить прокси и чтоб оно к примеру работало до конца 3-го сценария, либо до нового переключения ! и вот на тебе :[spoiler=немного оффтопа о прокси на js ]iim
JS ---- главное оставить верхнюю строчку и строчку включения прокси и удалить ненужные ниже (зависит от вида прокси) и установить нужные числа
[code]
var prefs = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);// manual proxy configuration
prefs.setIntPref("network.proxy.type", 1);// use the proxy server for all protocols
prefs.setBoolPref("network.proxy.share_proxy_settings", true);// HTTP Proxy
…
prefs.setCharPref("network.proxy
На сайте знакомств mamba.ru не получается выбрать страну и город.
Приведенный ниже код открывает список выбора, курсор позиционируется на стране "Россия", но нажатия не происходит.
Помогите, пожалуйста, разобраться.
VERSION BUILD=8820413 RECORDER=FX TAB T=1 URL GOTO=http://www.mamba.ru/search.phtml?t=a&sz=b&ia=F&lf=M&af=19&at=36&s_c=3159_0_0_0&target= TAG POS=1 TYPE=SELECT FORM=ACTION:/search.phtml ATTR=NAME:s_c CONTENT=%1_1_1 WAIT SECONDS=5 TAG POS=1 TYPE=SELECT ATTR=NAME:countryId CONTENT=$Россия
Сам спросил и сам ответил :) Как из javacsript с помощью imacros сохранить в текст произвольное значение.
iimSet("i",123); iimPlay("CODE:SET !EXTRACT {{i}}\n SAVEAS TYPE=EXTRACT FOLDER=C:\\ FILE=hiprsites.txt");
macros = "CODE:SAVEAS ??? FOLDER=* FILE=my.csv";
iimPlay(macros);
Ав какое место вставить ii_myvar, которое и надо сохранить? :(
Как с помощью iMacros сохранить данные, полученные в javascript? Как я понимаю, javascript внутри FireFox не имеет возможности писать во внешние файлы.
var myvar = "Строка, которую надо сохранить"; iimSet("ii_myvar", myvar};//передали строку в iMacros macros = "SAVEAS ??? FOLDER=* FILE=my.csv"; iimPlay(macros);
Как подправить этот код (??? в строке №3) или вообще написать по-другому, чтобы чтобы записать в my.csv "Строка, которую надо сохранить"?
вместо "url" хочу прописать этот самый заголовок вкладки, чтобы было понятно.
с помощью JS: сохраняете нужную вам часть кода страницы в переменную и обрезаете всё лишнее до и после того, что вам нужно.
заголовок страницы обычно находится внутри тега <title>, который в свою очередь внутри тега <head>:скрытый текстВыделить кодКод:
macros1 = "CODE:TAG POS=1 TYPE=HEAD ATTR=HTM:* EXTRACT=HTM\n"; iplay = "Shivaki" "hid=90594"(macros1); s1 = iimGetLastExtract(); s1 = s1.toString().replace(/<\/title>(.*)/,'').replace(/(.*)<title>/,''); alert(s1);
для данной страницы форума получаем: iMacros | Форум Mozilla Россия.
зависит от того, что прописано в шапке <HEAD> того сайта, над которым хотите издеваться
Вы предложили вариант, когда я работаю в JS и вызываю iimPlay.
А я, наоборот, нахожусь в IMacros. Код примерно такой:
TAG POS=1 TYPE=A ATTR=HREF:https://www.mysite.ru* EXTRACT=TXT SAVEAS TYPE=EXTRACT FOLDER=* FILE=url.txt
Подскажите, как с помощью Imacros получить заголовк текущей вкладки?
Зачем: вот мы бродили по сату, нашли что-то интересное и хотим сохранить все ссылки с помощью
Но вместо "url" хочу прописать этот самый заголовок вкладки, чтобы было понятно.
yinfo пишет: -p Profile0 -no-remoteи так во всех открытых профилях FF: Profile0, Profile1, Profile2 и т.д., насколько хватит мощности компьютера :-))
Именно так :-) А чтобы мощности хватило, вместо FF использовать Pale Moon, который кушает оперативку и проц примерно на 30% меньше.
Уважаемый Sborka, мой вопрос: как при старте FireFox запустить управляющий JavaScript файл SI-Run-Test.js из демонстрационных скриптов iMacrosa.
По запуску обычных js-скриптов в html-коде вопросов нет.
Не удается именно запустить демо-скрипт.
Вопрос решил так: скрипт можно добавить в закладки. Копируем ссылку и вставляем в строку запуска. Получилось вот что:
"C:\Program Files\Mozilla Firefox\firefox.exe" imacros://run/?m=Demo-Firefox%5CSI-Run-Test.js -p Profile0 -no-remote