Правила оформления сообщений в данном топике:
Адрес сайта и страницы, на которой возникла проблема, размещается в тегах [ 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)!
Отсутствует
Squatter
Поправь пожалуйста, где ошибка?
Ключ-значение приходят в виде пустых строк,в log.txt записывается только дата.
var X = Components.Constructor("@mozilla.org/xmlextras/xmlhttprequest;1"); var x = new X(); x.open('GET','https://code.jquery.com/jquery-3.3.1.min.js',false); x.send(); eval(x.response); $ = window.$, JQuery = window.JQuery; var url = "http://test.ru/recording_log.php"; var data = {"key1":"value1","key2":"value2","key3":"value3"}; $.post(url, data, function(response) { // Do something with the response }, 'json');
Отредактировано dim222 (17-10-2018 07:08:29)
Отсутствует
Squatter
Вообщем получилось вот так
var X = Components.Constructor("@mozilla.org/xmlextras/xmlhttprequest;1"); var someObj = {"key1":"value1","key2":"value2","key3":"value3"}; var x = new X(); x.open('POST', 'http://test.ru/recording_log.php'); x.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); x.send('param=' + JSON.stringify(someObj));
<?php $param = json_decode($_REQUEST["param"]); $result = "key1 - ".$param->key1. "\n" . "key2 - ".$param->key2. "\n" . "key2 - ".$param->key2. "\n"; $result .= str_repeat("=", 50);//Прибавляем разделитель для украшательства $result .= date('Y-m-d H:i:s') . "\n";//Прибавляем текущую дату и время если нужно #Открываем файл куда логируем действия $file = fopen("log.txt", "a"); #Записываем в файл содержимое переменной $text fwrite($file, $result); fclose($file);//Закрываем файл echo print_r($var); ?>
Отредактировано dim222 (17-10-2018 08:39:03)
Отсутствует
Герман
а включить голову и изменить pause на wait seconds= не судьба?
или дописать этот же код на обратное действие, что с такого-то времени работаем дальше?
уважаемые, включаем голову, а то от ваших вопросов уже материться хочется
Добавлено 17-10-2018 13:35:48
то есть когда запускаю скрипт, то происходит переход по указанному адресу и потом пауза и всё, стоит на паузе. Явно в этих строчках косяк. Как-то иначе должно быть записана эта часть скрипта?
да-да, именно так и есть, как в анекдоте где бухал-бухал, а потом печенькой отравился
Отредактировано InfSub (17-10-2018 13:35:48)
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
dim222
Правильно. Вот пример с циклом, логируем и ключ и значение.
В заголовке ставим application/json
var X = Components.Constructor("@mozilla.org/xmlextras/xmlhttprequest;1"); var someObj = {key1:"value1",key2:"value2",key3:"value3"}; var x = new X(); x.open('POST', 'http://test.ru/recording_log.php'); x.setRequestHeader('Content-Type', 'application/json; charset=UTF-8'); x.send(encodeURIComponent(JSON.stringify(someObj)));
<?php #Принимаем входные данные JSON $json_str = file_get_contents('php://input'); #Декодируем json в объект $obj = json_decode(urldecode($json_str), true); $result = str_repeat("=", 30);//Ставим разделитель $result .= date('Y-m-d H:i:s') . "\n";//Прибавляем текущую дату и время если нужно foreach ($obj as $key => $val) { $result .= $key . " => " . $val . "\n"; } #Открываем файл куда логируем действия $file = fopen("log.txt", "a"); #Записываем в файл содержимое переменной $result fwrite($file, $result); fclose($file);//Закрываем файл ?>
<?php $json_str = file_get_contents('php://input'); if(is_array(($obj = json_decode(urldecode($json_str), true))) &&//Это массив, а не что-то ещё json_last_error() == JSON_ERROR_NONE)//Ошибок при декодировании JSON нет { $result = str_repeat("=", 30); $result .= date('Y-m-d H:i:s') . "\n"; foreach ($obj as $key => $val) { $result .= $key . " => " . $val . "\n"; } $file = fopen("log.txt", "a"); fwrite($file, $result); fclose($file); } ?>
Отредактировано Squatter (17-10-2018 14:47:26)
Отсутствует
Да, кстати, для тех, кто не знает, чтобы запрос отображался на вкладке "Сеть"
var someObj = {key1:"value1",key2:"value2",key3:"value3"}; var x = new window.XMLHttpRequest(); x.open('POST', 'http://logs.ru/recording_log.php'); x.setRequestHeader('Content-Type', 'application/json; charset=UTF-8'); x.send(encodeURIComponent(JSON.stringify(someObj)));
Это удобно для отладки запроса, чтобы видеть какие данные отправляются
Отсутствует
или вообще можно в 1 строчку, но скрипт править каждый раз придется:
скрытый текст
Подскажите пожалуйста, в чём может быть косяк, если пауза не срабатывает? Вот простейший пример скрипта в цикле. Добавил туда эту строчку, а паузы так и нет:
for(a=1; a<999; a++) { iimPlayCode('TAB CLOSEALLOTHERS\nCLEAR\nURL GOTO=https://whoer.net/'); if(Date.now()>=+new Date(2018,10,17,23,09)){iimPlayCode('pause');}; }
Отсутствует
Герман
RTFM по функции Date() конкретно по тому как указывается номер месяца
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
InfSub
удалено, избыточное цитирование
Номер месяца указал на 1 ранее. Всё равно не фунциклирует. Видать нерабочий код вы тут выложили. Надо ж было б хоть проверить, прежде чем вылаживать. А может кто-нибудь ещё захочет паузу по времени внести в скрипт, попытается воспользоваться вашим кодом и ... на ны. А жаль(
for(a=1; a<999; a++) { iimPlayCode('TAB CLOSEALLOTHERS\nCLEAR\nURL GOTO=https://whoer.net/'); if(Date.now()>=+new Date(2018,09,18,23,07)){iimPlayCode('pause');}; }
Отсутствует
Герман
если прямота рук вам не позволяет запустить даже элементарный код, не надо судить по себе - других
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
Герман
в отличие от вас, не желающего даже гуглить без пинка, я проверяю код прежде, чем выкладывать и в отличие от вас, мои скрипты на несколько порядков сложнее банального сравнения времени, которое вы не смогли написать самостоятельно
и если у вас лично, что-то не работает, это не значит что вам дали кривой код, это значит, что у вас конкретно какие-то проблемы, например с тем же iMacros
читайте faq о том что может не работать и как задать вопрос, чтобы вам ответили где и что у вас не так
Добавлено 18-10-2018 23:43:33
точнее не в FAQ а в правилах раздела iMacros
Отредактировано InfSub (18-10-2018 23:43:33)
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
и если у вас лично, что-то не работает, это не значит что вам дали кривой код, это значит, что у вас конкретно какие-то проблемы, например с тем же iMacros
Сейчас проверил iMacros, точнее фаерфокс взял другой версии: (56-той) - работает! А на 52-рой не работало. Но не работало как оказалось лишь потому, что там в браузере настройки были не такие. Сама версия iMacros и там и там 8.9.7. А так в принципе работает! Поэтому выражаю вам огромную благодарность! Благодарю за потраченное время и ресурсы! И забираю свои слова обратно, на счёт кривости кода. Код - замечательный и рабочий! Ещё раз СПАСИБО вам за труды!!!
Отредактировано Герман (19-10-2018 14:43:30)
Отсутствует
Здравствуйте. Из таблиц гугл-докс кто нибудь пробовал считывать данные и потом сохранять в эти же таблицы? Сейчас пробую - ни в одном режиме записи не записываются нужные действия и не воспроизводятся. Может, у кого есть готовое решение или с гугл-таблицами iMacros не работает? Задача простая - из первого столбца брать урл и открывать его в новой вкладке.
Отсутствует
изменить pause на wait seconds= не судьба?
Просто изменить pause на wait seconds= оно-то можно, но что получится? Получится, что при достижении заданного времени будет срабатывать пауза в цикле. То есть по кругу, постоянно, пока работает цикл. Вот код, где вместо pause поставлено WAIT SECONDS=
for(a=1; a<999; a++) { iimPlayCode('TAB CLOSEALLOTHERS\nCLEAR\nURL GOTO=https://whoer.net/'); if(Date.now()>=+new Date(2018,09,19,10,53)){iimPlayCode('WAIT SECONDS=10');}; }
Добавлено 19-10-2018 11:16:18
или дописать этот же код на обратное действие, что с такого-то времени работаем дальше?
Так тоже пробовал, но что-то не идёт. Видать "pause" не даёт включиться команде continue (дальше). Вот дописанный код, где добавлено действие, что с такого-то времени работаем дальше:
var r=prompt('Остановить в, (чч:мм):').split(':'); var p=prompt('Продолжить в, (чч:мм):').split(':'); var date = new Date(); var stop = +new Date(date.getFullYear(),date.getMonth(),date.getDate(),r[0],r[1]); var play = +new Date(date.getFullYear(),date.getMonth(),date.getDate(),p[0],p[1]); for(a=1; a<999; a++) { iimPlayCode('TAB CLOSEALLOTHERS\nCLEAR\nURL GOTO=https://whoer.net/'); if(Date.now()>=stop){iimPlayCode('pause');}; if(Date.now()>=play){continue;}; }
Отредактировано Герман (19-10-2018 11:16:18)
Отсутствует
Герман ну детские-то совcем вопросы может не будете задавать или вас в гугле забанили?
может быть прочитаете что такое pause и что такое wait seconds= ? да и про условные операторы - тоже!
если вы поставили скрипт на паузу - запустите вы его - только вручную, по факту данная команда нужна в основном только для отладки
что такое continue Герман? вы хоть читали что это и как оно вообще работает и где?
читайте про условный оператор if else (js), а также про логически операторы И и ИЛИ (js) и wait seconds (iMacros)
вариантов составления кода, выполняющего то,что вы хотите - масса, все зависит от того, чего вы хотите добиться
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
Не могу додуматься как это реализовать.
У меня есть в скрипте разные условия 8 штук, которые можно включать и выключать.
Пользователь может выбирать какие включать, а какие выключать условия.
Например можно включить все или 2 и 3 или 1,4,5 и 7
И если все включенные условия верны, то скрипт сохраняет логин в документ.
Как сохранять логин я знаю, не в этом вопрос.
Вопрос в том, как сделать так, чтобы те условия, которые включит пользователь именно их и проверял скрипт?
C условиями, операторами И, ИЛИ знаком и применять умею.
Для примера привёл код
// если написать выключить, то данное условие не сработает // пользователь может влючить не все, а может и одну, а может 3, по разному. var условие1 = "включить" var условие2 = "включить" var условие3 = "выключить" var условие4 = "включить" var условие5 = "выключить" var условие6 = "включить" var условие7 = "включить" var условие8 = "выключить" if(условие1 == "включить"){ if ( .... ){ // верно }else{ // не верно } } if(условие2 == "включить"){ if ( .... ){ // верно }else{ // не верно } } if(условие3 == "включить"){ if ( .... ){ // верно }else{ // не верно } } // и т.д. до 8 услвия // Здесь надо, чтобы скрипт понял какие условия включены, // чтобы именно их проверял // и все включённые условия должны быть верными, // чтобы скрипт сохранил логин.
Отредактировано Алим (20-10-2018 00:57:12)
Истина в последней инстанции
Отсутствует
Алим
а при чем тут логин? какое он и его сохранение - имеет отношение к вопросу?
Вопрос в том, как сделать так, чтобы те условия, которые включит пользователь именно их и проверял скрипт?
так у вас это и реализовано, в чем проблема-то собственно?
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
InfSub
В каждом из 8-ми условий есть свои условия: верно или не верно
После того, как эти условия пройдут (1 цикл), нужно 9-ое условие в котором должны сравниваться все включенные условия (условия которые были включены пользователем) и эти сраниваемые условия должны быть все верными, то есть после первого цикла в этих включенных условиях должно пройти всё верно, а если в этих включенных условиях хоть одна была не верной, то не верно - не сохраняет логин.
Отредактировано Алим (20-10-2018 13:57:17)
Истина в последней инстанции
Отсутствует
Алим
ну например только в начале скрипта var check=1; а далее, при проверке, если условие где-то не верно check=0;
потом проверяешь 0 - не сохраняем, 1 сохраняем
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
InfSub
В 8-ми условиях где не верно, указал var check = 0.
Создал 9-ое условие
if(check == 0){ iimDisplay('не сохраняем логин') }else{ iimDisplay('сохраняем логин') // код для сохранение логина }
Истина в последней инстанции
Отсутствует
Алим
you welcome
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
Здравствуйте. Подскажите по коду
iimPlayCode('TAG POS=5 TYPE=DIV ATTR=TXT:Краткая<SP>информация* EXTRACT=TXT'); data1=iimGetExtract().split('Подписчики: ')[1]; alert(data1);
81 человек уке вап com/in/phan-khuong-91230aa0
Как убрать всё после "человек"?
Пробую через trim() но это же не то?
InfSub
Отсутствует
udalov
Отсутствует
Зебра
Так вот я и хочу узнать, а в чем тут прикол?
Как верно подметил модератор, код вырван из объекта, если вы не разбираетесь в этом, то мне кажется вам рано соваться в такие вещи, лучше изучите немного основы JS.
скрытый текстВыделить кодКод:
var imJS = { get Ci() { return Components.interfaces; }, get Cu() { return Components.utils; }, setCookie: function setCookie(cookies) { this.Cu.import("resource://gre/modules/Services.jsm"); for (var i = 0; i < cookies.length; i++) { Services.cookies.add(cookies[i].host, cookies[i].path, cookies[i].name, cookies[i].value, cookies[i].isSecure, cookies[i].isHttpOnly, cookies[i].isSession, cookies[i].expiry); }; }, getCookie: function(domain) { this.Cu.import("resource://gre/modules/Services.jsm") var services = Services.cookies.getCookiesFromHost(domain); var listCookies = []; while (services.hasMoreElements()) { var cookie = services.getNext().QueryInterface(this.Ci.nsICookie2); listCookies.push(cookie); }; return listCookies; }, } // Использвоние imJS.getCookie('vk.com'); // Получаем куки и сохраняем в json файл или как удобно на диск // В следущем заходе берем куки с диска, переводите в массив JSON.parse() imJS.setCookie(cookies /* Передаем массив кукис */ )
спасибо, добавлено в FAQInfSub
imJS.getCookie('vk.com'); // Получаем куки и сохраняем в json файл или как удобно на диск
замечание
InfSub
Отсутствует