Правила оформления сообщений в данном топике:
Адрес сайта и страницы, на которой возникла проблема, размещается в тегах [ spoiler][ noindex]http://адрес_сайта/название_страницы[ /noindex][ /spoiler]
Для размещения кода, используйте тег "Code" внутри тега "Spoiler" - [ spoiler][ code]ваш код[ /code][ /spoiler]
или выложите на сайт «Pastebin».
При размещении объемных материалов, используйте тег "Spoiler" - [ spoiler]ваш текст[ /spoiler]
или выложите на сайт «Pastebin».
Размещать изображения в открытом виде. Для размещения скриншотов и других изображений, используйте тег "Spoiler" - [ spoiler][ img]http://ссылка_на_изображение[ /img][ /spoiler]
.
«Можно ответить на любой вопрос, если вопрос задан правильно.»
Платон
«Не каждый вопрос заслуживает ответа.»
Сайрус
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
как вытянуть числа из скобок ?
(249 л.с.) - Только числа
пока только удаляю все ненужное, но может есть и более верный вариант
InfSub
Отредактировано tiger8265 (29-05-2020 15:04:45)
Отсутствует
Блин чот я перегрелся походу!
Не могу понять почему не передаётся объект в анонимную функцию?
var obj_inject = { 'canvas':{ 'r': 0, 'g': 3, 'b': -4, 'a': 2 } }; var inject = function(obj) { window.console.log(obj) }; var script_1 = window.document.createElement('script'); script_1.textContent = "(" + inject + ")(" + obj_inject + ")"; window.document.documentElement.appendChild(script_1);
Отсутствует
Так в параметрах вызова же…
var obj_inject = { 'canvas':{ 'r': 0, 'g': 3, 'b': -4, 'a': 2 } }; var inject = function(obj) { window.console.log(obj) }; inject(obj_inject);
В чём конечная цель?
---------UPD
Чем пытаться внедрять скрипт текстом лучше юзайте wrappedJSObject чтобы получить доступ к пространству имён скриптов текущей страницы
//В макросе выполняем var win = window.content.document.defaultView.wrappedJSObject; win.inject = function() { window.console.log("test"); }; //В консоле по Ctrl + Shift + k вызываем для проверки inject();
Отредактировано Squatter (26-06-2020 09:41:05)
Отсутствует
Squatter
Спасибо что откликнулся!
По твоему варианту я пробовал, но .....блин чот проблема возникает ...Не хотит принимать массив аргументов в :
var obj_inject = { 'canvas':{ 'r': 0, 'g': 3, 'b': -4, 'a': 2 } }; var canvas_inject = function (obj) { var win = window.content.document.defaultView.wrappedJSObject; const toBlob = win.HTMLCanvasElement.prototype.toBlob; const toDataURL = win.HTMLCanvasElement.prototype.toDataURL; const getImageData = win.CanvasRenderingContext2D.prototype.getImageData; var noisify = function (canvas, cont) { const shift = obj; const width = canvas.width, height = canvas.height; const imageData = getImageData.apply(cont, [0, 0, width, height]); for (let i = 0; i < height; i++) { for (let j = 0; j < width; j++) { const n = ((i * (width * 4)) + (j * 4)); imageData.data[n + 0] = imageData.data[n + 0] + shift.r; imageData.data[n + 1] = imageData.data[n + 1] + shift.g; imageData.data[n + 2] = imageData.data[n + 2] + shift.b; imageData.data[n + 3] = imageData.data[n + 3] + shift.a; } } }; Object.defineProperty(win.HTMLCanvasElement.prototype, "toBlob", { "value": function () { noisify(this, this.getContext("2d")); return toBlob.apply(this, arguments); } }); // Object.defineProperty(win.HTMLCanvasElement.prototype, "toDataURL", { "value": function () { noisify(this, this.getContext("2d")); return toDataURL.apply(this, arguments); } }); // Object.defineProperty(win.CanvasRenderingContext2D.prototype, "getImageData", { "value": function () { noisify(this.canvas, this); return getImageData.apply(this, arguments); } }); }; canvas_inject(obj_inject['canvas']);
При этом если внедрить самовызывающий скрипт то параметры имеенно объектом не передаются...выдаёт 'undefined'
var obj_inject = { 'canvas':{ 'r': 0, 'g': 3, 'b': -4, 'a': 2 } }; var canvas_inject = function (obj) { const toBlob = HTMLCanvasElement.prototype.toBlob; const toDataURL = HTMLCanvasElement.prototype.toDataURL; const getImageData = CanvasRenderingContext2D.prototype.getImageData; var noisify = function (canvas, cont) { const shift = obj; const width = canvas.width, height = canvas.height; const imageData = getImageData.apply(cont, [0, 0, width, height]); for (let i = 0; i < height; i++) { for (let j = 0; j < width; j++) { const n = ((i * (width * 4)) + (j * 4)); imageData.data[n + 0] = imageData.data[n + 0] + shift.r; imageData.data[n + 1] = imageData.data[n + 1] + shift.g; imageData.data[n + 2] = imageData.data[n + 2] + shift.b; imageData.data[n + 3] = imageData.data[n + 3] + shift.a; } } }; Object.defineProperty(HTMLCanvasElement.prototype, "toBlob", { "value": function () { noisify(this, this.getContext("2d")); return toBlob.apply(this, arguments); } }); // Object.defineProperty(HTMLCanvasElement.prototype, "toDataURL", { "value": function () { noisify(this, this.getContext("2d")); return toDataURL.apply(this, arguments); } }); // Object.defineProperty(CanvasRenderingContext2D.prototype, "getImageData", { "value": function () { noisify(this.canvas, this); return getImageData.apply(this, arguments); } }); }; var canvas_Finger = window.document.createElement('script'); canvas_Finger.textContent = "(" + canvas_inject + ")(" + obj_inject['canvas'] + ")"; window.document.documentElement.appendChild(canvas_Finger);
а если конкретно указать значения из ключа, то всё робит!
Что за фигня?
Отсутствует
блин чот проблема возникает ...Не хотит принимать массив аргументов в
Не туда… совсем
Ладно, если передать объект по твоему способу с внедрением, то так
var obj_inject = { 'canvas':{ 'r': 0, 'g': 3, 'b': -4, 'a': 2 } }; var canvas_inject = function (obj) { const toBlob = HTMLCanvasElement.prototype.toBlob; const toDataURL = HTMLCanvasElement.prototype.toDataURL; const getImageData = CanvasRenderingContext2D.prototype.getImageData; var noisify = function (canvas, cont) { const shift = obj; const width = canvas.width, height = canvas.height; const imageData = getImageData.apply(cont, [0, 0, width, height]); for (let i = 0; i < height; i++) { for (let j = 0; j < width; j++) { const n = ((i * (width * 4)) + (j * 4)); imageData.data[n + 0] = imageData.data[n + 0] + shift.r; imageData.data[n + 1] = imageData.data[n + 1] + shift.g; imageData.data[n + 2] = imageData.data[n + 2] + shift.b; imageData.data[n + 3] = imageData.data[n + 3] + shift.a; } } }; Object.defineProperty(HTMLCanvasElement.prototype, "toBlob", { "value": function () { noisify(this, this.getContext("2d")); return toBlob.apply(this, arguments); } }); // Object.defineProperty(HTMLCanvasElement.prototype, "toDataURL", { "value": function () { noisify(this, this.getContext("2d")); return toDataURL.apply(this, arguments); } }); // Object.defineProperty(CanvasRenderingContext2D.prototype, "getImageData", { "value": function () { noisify(this.canvas, this); return getImageData.apply(this, arguments); } }); }; var canvas_Finger = window.document.createElement('script'); canvas_Finger.textContent = "(" + canvas_inject + ")(" + JSON.stringify(obj_inject['canvas']) + ")"; window.document.documentElement.appendChild(canvas_Finger);
Отсутствует
Squatter
Тьфу ты блин ........
Мне даже и в голову не пришло перевести в строку Json.
Спасибо....подсказал ...направил!
Добавлено 26-06-2020 14:49:52
Squatter
Изначально пробовал через"wrappedJSObject", но ошибку выдавало о не достатке аргументов (где писал про массив с аргументами), психанул бросил , так и не понял в чём заморока была.
Если для тебя это очевидные вещи , тыкни носом .
Отредактировано dim222 (26-06-2020 14:49:52)
Отсутствует
Задача переместить файл из одной папки в другую
Не понимает русских имён в файле и пробел.
Как это указать в регулярке?
Components.utils.import("resource://gre/modules/FileUtils.jsm"); var FFM = { moveFile: function (from, to) { var toFileName = (/(\w?\:?\\?[\w\-_\\]*\\+)([\w-_]+\.[\w-_]+)/gi).exec(to)[2]; var toFolderPath = (/(\w?\:?\\?[\w\-_\\]*\\+)([\w-_]+\.[\w-_]+)/gi).exec(to)[1]; var file = new FileUtils.File(from); // Тут инстанс файла, который копируем var newFolderPath = new FileUtils.File(toFolderPath); // Тут инстанс папки, куда копируем if (file.exists()) { try { file.moveTo(newFolderPath, toFileName); return true; } catch (e) { window.console.log(e); return false; } } else { return false; } }, } FFM.moveFile("C:\\папка\\1 запись.mp4", "E:\\1 запись.mp4");
Ругается на
var toFileName = (/(\w?\:?\\?[\w\-_\\]*\\+)([\w-_]+\.[\w-_]+)/gi).exec(to)[2]; var toFolderPath = (/(\w?\:?\\?[\w\-_\\]*\\+)([\w-_]+\.[\w-_]+)/gi).exec(to)[1];
Отредактировано Алим (01-08-2020 10:28:57)
Истина в последней инстанции
Отсутствует
Алим
Так укажи что русские буквы [а-яА-Я]
Для пробельных символов \s
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
Так укажи что русские буквы [а-яА-Я]
Для пробельных символов \s
Про это я знал, но как правильно туда это вставить, вот в чём вопрос
var toFileName = (/(\s\w?\:?\\?[\w\-_\\]*\\+)([\w-_]+\.[\w-_]+\.[а-яА-Я]+)/gi).exec(to)[2]; var toFolderPath = (/(\s\w?\:?\\?[\w\-_\\]*\\+)([\w-_]+\.[\w-_]+\.[а-яА-Я]+)/gi).exec(to)[1];
Истина в последней инстанции
Отсутствует
туда это вставить
Да, случай запущенный.. разбери рег. выражение на составляющие и поймешь куда вставлять, вместо того чтобы пихать куда попало...
С чего вдруг пробел может оказаться перед буквой диска?
С какого перепуга расширение файла будет состоять из одних русских букв? Вообще от куда в расширении файла русские буквы?
Из составленного тобой рег. выражения именно так оно выходит
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
Алим
Отсутствует
Алим
var toFileName = (/(\w?\:?\\?[\w\-_\\]*\\+)([\w-_]+\.[\w-_]+)/gi).exec(to)[2]; var toFolderPath = (/(\w?\:?\\?[\w\-_\\]*\\+)([\w-_]+\.[\w-_]+)/gi).exec(to)[1];
Отсутствует
dim222
Это все хорошо, но пока Алим не разберётся в принципах составления рег выражения, он так и будет задавать подобные вопросы
Я понимаю если б там реально сложное рег выражение было, но тут же по сути основы
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
InfSub
Разобрался, теперь работает
var toFileName = (/(\w?\:?\\?[\w\-_\\а-яА-Я\s]*\\+)([\w-_а-яА-Я\s]+\.[\w-_]+)/gi).exec(to)[2]; var toFolderPath = (/(\w?\:?\\?[\w\-_\\а-яА-Я\s]*\\+)([\w-_а-яА-Я\s]+\.[\w-_]+)/gi).exec(to)[1];
Отредактировано Алим (12-08-2020 21:44:57)
Истина в последней инстанции
Отсутствует
Алим
Если вы используете модификатор i то не имеет смысла указывать диапазоны букв в разном регистре
Впрочем для русских букв - проверьте, иногда не работает
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
InfSub
var toFileName = (/(\w?\:?\\?[\w\-_\\а-яё\s]*\\+)([\w-_а-яё\s]+\.[\w-_]+)/gi).exec(to)[2]; var toFolderPath = (/(\w?\:?\\?[\w\-_\\а-яё\s]*\\+)([\w-_а-яё\s]+\.[\w-_]+)/gi).exec(to)[1];
Если в скрипте указано в пути сохранения так - НОвая пАПкА, а на компьютере нет такой папки, то скрипт создаст новую папку с таким же регистром. Если папка уже была "Новая папка", то не создаст новую папку и не перезапишет, а сохраняет именно в неё. Проверил.
Истина в последней инстанции
Отсутствует
Добавлено 16-02-2020 19:41:53
andreas1990
Что собственно вы ходите сделать?
хочу поменять отпечаток канвас фингерпринт. стоит плагин в браузере, но не знаю как imacros заставить ткнуть кнопку в этом плагине.
буду пробовать писать регер акаунтов.
первым делом надо почистить историю и куки.
второе сменить отпечаток канвас и юзерагент.
прочитать с файла csv данные акаунта и регнуть эти данные.
Отсутствует
Добрый день
В 55й мазиле не хочет вставлять логин,и пароль в окошко прокси,вот тестирую в других версиях мазилы которые ниже всё замечательно работает,а в 55й не хочет,но мне именно 55я нужна.
Вот код IIM
'==\=======/==' SET !ERRORIGNORE YES TAB OPEN TAB T=2 SET !DATASOURCE C:\1\iMacros\IP22.txt SET !DATASOURCE_LINE 1 SET !DATASOURCE_COLUMNS 5 CLEAR ONLOGIN USER={{!COL3}} PASSWORD={{!COL4}} ' Установка параметров SET IPHTTP {{!COL1}} SET IPSSL {{!COL1}} SET IPFTP {{!COL1}} SET IPSOCKS {{!COL1}} SET SOCKSVER "5" SET PORTALL {{!COL2}} ONLOGIN USER={{!COL3}} PASSWORD={{!COL4}} ' Переход к вкладке настроек URL GOTO=about:config WAIT SECONDS=3 ' Непосредственная запись настроек ' Команда которая включает прокси SET !VAR1 EVAL("prefs=Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);prefs.setIntPref("network.proxy.type",1);") ' Устанавливает один протакол для всех одинаковым SET !VAR1 EVAL("prefs=Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);prefs.setBoolPref("network.proxy.share_proxy_settings",true);") ' Установить каждому отдельный прокси SET !VAR1 EVAL("prefs=Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);prefs.setBoolPref("network.proxy.share_proxy_settings",true);") ' Устанавливает HTTP прокси SET !VAR1 EVAL("prefs=Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);prefs.setCharPref("network.proxy.http",'{{IPHTTP}}');") ' Установить порт для HTTP прокси SET !VAR1 EVAL("prefs=Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);prefs.setIntPref("network.proxy.http_port",{{PORTALL}});") ' Устанавливаем SSL прокси SET !VAR1 EVAL("prefs=Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);prefs.setCharPref("network.proxy.ssl",'{{IPSSL}}');") ' Устанавливаем порт для SSL прокси SET !VAR1 EVAL("prefs=Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);prefs.setIntPref("network.proxy.ssl_port",{{PORTALL}});") ' Установка FTP прокси SET !VAR1 EVAL("prefs=Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);prefs.setCharPref("network.proxy.ftp",'{{IPFTP}}');") ' Установка порта для FTP прокси SET !VAR1 EVAL("prefs=Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);prefs.setIntPref("network.proxy.ftp_port",{{PORTALL}});") ' Установка SOCKS прокси SET !VAR1 EVAL("prefs=Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);prefs.setCharPref("network.proxy.socks",'{{IPSOCKS}}');") ' Установка порта для SOCKS SET !VAR1 EVAL("prefs=Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);prefs.setIntPref("network.proxy.socks_port",{{PORTALL}});") ' Установка версии SOCKS (4 или 5) SET !VAR1 EVAL("prefs=Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);prefs.setIntPref("network.proxy.socks_version",{{SOCKSVER}});") ' Установка логина и пароля прокси SET !VAR1 EVAL("prefs=Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);prefs.setCharPref("extensions.proxyauth.authtoken",'{{LOGPASS}}');") TAB T=1 SET !EXTRACT NULL SET !DATASOURCE C:\1\iMacros\URL.txt SET !DATASOURCE_LINE 1 SET !DATASOURCE_COLUMNS 5 'PROMPT {{!COL1}} 'WAIT SECONDS=3 TAB CLOSEALLOTHERS SET !TIMEOUT 10 TAB OPEN TAB T=2 URL GOTO=https://www.youtube.com/ SET !EXTRACT NULL WAIT SECONDS=3
Отсутствует
как сказать макросу что бы подождал загрузки страницы? страница динамическая на java
WAIT SECONDS=
SET !TIMEOUT_PAGE x
не подходят
imagesearch тоже не катит так как картинок нету
подскажите оч. нужно
Отсутствует
Привет! Ребята подскажите кусок кода чтоб дату текущего времени писало в текстовом файле ява-скрипта при сохранении текста.
Например вот код:
iimPlayCode('TAG POS=2 TYPE=DIV ATTR=TXT:тут<SP>содержание<SP>текста EXTRACT=TXT\nSAVEAS TYPE=EXTRACT FOLDER=* FILE=SMS.txt');
Так тут сохраняется просто текст. А надо чтоб ещё и дата и время после текста приписывались.
Отсутствует
Так тут сохраняется просто текст. А надо чтоб ещё и дата и время после текста приписывались.
А файлик датой именовать а не SMS.txt есть же команда генерации текущего времени будет несколько файлов TXT такого формата 08.10.2020:10:10.txt
Отредактировано googlenoob (10-10-2020 11:41:14)
Отсутствует