Полезная информация

На IRC-канале #mozilla-ru можно получить техническую консультацию онлайн и, конечно же, порцию общения.

iMacros » iMacros for Firefox - общие вопросы, обсуждение возможностей (Часть 1) » 27-04-2017 11:42:00

InfSub, сначала он использовался в iim, но потом мне понадобилось переделать скрипт в js и просто скопировала содержимое eval. Этот кусок кода именно в js работал раньше.
Вот он в iim (в таком виде работает правильно):

скрытый текст

Выделить код

Код:

SET COMMENT EVAL("var words = ['amazing','sweet']; var string = ''; string += words[parseInt(Math.[h]random[/h]() * 25)]; string")


Сейчас в интернетах нашла такое решение вдруг кому понадобится:
скрытый текст

Выделить код

Код:

var arr = ["Яблоко", "Апельсин", "Груша", "Лимон"];
var rand = Math.floor(Math.[h]random[/h]() * arr.length);
alert( arr[rand] );

iMacros » iMacros for Firefox - общие вопросы, обсуждение возможностей (Часть 1) » 27-04-2017 00:42:21

Здравствуйте. Почему-то перестал работать в iMacros данный код:

скрытый текст

Выделить код

Код:

var words = ['слово1','слово2','слово3','итд','слово31']; var string = ''; string += words[parseInt(Math.[h]random[/h]() * 30)]; string;


В чём ошибка? Выдаёт все слова, а не выбирает одно из них. Раньше все работало нормально.
Версия 8.9.7

iMacros » iMacros for Firefox - общие вопросы, обсуждение возможностей (Часть 1) » 07-04-2017 08:19:41

Здравствуйте. Возникла такая проблема, скрипт рассылки на фейсбук работает, только перестал рассылать сообщения в группы, только заходит, ждет и уходит в другую группу... Честно не пойму в чем причина, помогите разобраться. Вот сам код:

скрытый текст

Выделить код

Код:

SET !ERRORIGNORE YES
SET !VAR1 "Отзывы, жалобы и предложения о компаниях"
SET !VAR2 EVAL("Math.floor(Math.[h]random[/h]()*30 + 1);")
SET !VAR3 EVAL("Math.floor(Math.[h]random[/h]()*30 + 1);")
SET !VAR4 EVAL("Math.floor(Math.[h]random[/h]()*30 + 1);")
SET !VAR5 EVAL("Math.floor(Math.[h]random[/h]()*30 + 1);")
URL GOTO=https://www.facebook.com/groups/?category=groups&ref=tab_nav
'SET !REPLAYSPEED MEDIUM
TAG POS={{!LOOP}} TYPE=A ATTR=HREF:/groups/*
WAIT SECONDS={{!VAR2}}
TAG POS=1 TYPE=TEXTAREA ATTR=NAME:xhpc_message
WAIT SECONDS={{!VAR3}}
TAG POS=1 TYPE=TEXTAREA FORM=ID:* ATTR=ID:u* CONTENT={{!VAR1}}
WAIT SECONDS={{!VAR4}}
TAG POS=1 TYPE=BUTTON FORM=ID:* ATTR=TXT:Опубликовать
WAIT SECONDS={{!VAR5}}


[color=red]исправлено
код публикуется в тегах [b]cod

iMacros » iMacros for Firefox - общие вопросы, обсуждение возможностей (Часть 1) » 05-04-2017 21:21:18

udalov пишет:

нужно второе, т.е. проверить вхождение рандома в диапазон. if(26 > (s) < 50)

используйте так-:

скрытый текст

Выделить код

Код:

function rand(min, max){
    return (min + Math.floor(Math.[h]random[/h]()*(max - min)));
}

rand(0, 50);   
check = "сгенерировали число меньше 50: "+s+"";
alert('что нужно делать, если число меньше 50?');
iimDisplay(check);

rand(50, 51)
check = "сгенерировали число, равное 50: "+s+"";
iimDisplay(check);
alert('а если равно');

rand(52, 100);
check = "сгенерировали число больше 50: "+s+"";
iimDisplay(check);
alert('а что если больше?');

iMacros » iMacros for Firefox - общие вопросы, обсуждение возможностей (Часть 1) » 05-04-2017 19:19:57

udalov пишет:

вариант разбиения сгенерированного рандома на диапазоны

не совсем понял, что Вы хотите получить? рандом в диапазоне или проверить вхождение рандома в диапазон.
попробуйте так- рандом в диапазоне

скрытый текст

Выделить код

Код:

var min = 26;
var max = 50;
var number = max - min;
s=Math.floor(Math.[h]random[/h]()*(number));
var result = s + min; 

iMacros » iMacros for Firefox - общие вопросы, обсуждение возможностей (Часть 1) » 05-04-2017 17:54:32

Здравствуйте. Подскажите вариант разбиения сгенерированного рандома на диапазоны, например, от 0 и до 25, от 26 и до 50, от 51 и до 75, от 76 и до 100. Вроде на форуме были подобные примеры, найти их не смог. Мой образец позволяет разбить на 3 части по фиксированным значениям, а хотелось бы больше и по диапазонам:

скрытый текст

Выделить код

Код:

var number=100;
for(q=1; q<=10; q++){
s=Math.floor(Math.[h]random[/h]()*(number));
iimSet("s", s)
if((s) < 50){
    check = "сгенерировали число меньше 50: "+s+"";
    iimDisplay(check);
}else if ((s)=50){
    check = "сгенерировали число, равное 50: "+s+"";
    iimDisplay(check);
}else{
    check = "сгенерировали число больше 50: "+s+"";
    iimDisplay(check);
}
iimPlayCode('PAUSE');
}

iMacros » iMacros for Firefox - общие вопросы, обсуждение возможностей (Часть 1) » 04-04-2017 16:39:34

Здравствуйте. Такой вопрос: можно ли (и самое главное, как) проверить сгенерированное рандомное число на чётность? Задача: в зависимости от сгенерированного числа скрипт делает действие 1 (если число чётное) или действие 2 (если нечётное). Я пока смог сделать проверку меньше или больше определённого числа. В принципе, тоже рабочий вариант, но чёт\нечет мне видится красивее.

скрытый текст

Выделить код

Код:

var number=100;
for(q=1; q<=10; q++){
s=Math.floor(Math.[h]random[/h]()*(number));
iimSet("s", s)
if((s) <= 50){
    check = "сгенерировали число меньше 50: "+s+"";
    iimDisplay(check);
}else{
    check = "сгенерировали число больше 50: "+s+"";
    iimDisplay(check);
}
iimPlayCode('PAUSE');
}

iMacros » iMacros for Firefox - общие вопросы, обсуждение возможностей (Часть 1) » 31-03-2017 11:59:31

udalov пишет:

В каких случаях правильно  применять {{ }}, а в каких '+ +'?

без разницы, работает и так и так - везде
если не работает - ищите ошибки, например

скрытый текст

Выделить код

Код:

r=Math.floor(Math.[h]random[/h]()*7);


может вернуть 0, что для TAG POS= не допустимо

iMacros » iMacros for Firefox - общие вопросы, обсуждение возможностей (Часть 1) » 31-03-2017 11:03:16

InfSub пишет:

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

Думаю, ему нужна такая конструкция:

скрытый текст

Выделить код

Код:

if(iimPlay("тут проверка 1")>0){
    iimPlayCode('действие');
    }else if (iimPlay("тут проверка 2")<0){
        iimPlayCode('действие');
}else{
    iimPlayCode('действие если проверка 1 и 2 не подходят')
}


Я вот я не могу понять, почему в первом коде переменная TAG POS= работает, если её указывать в виде {{r}} , а во втором - в виде '+r+' .
Из-за iimSet("r", r); ?? Из-за ret = ? Из-за iimPlay("CODE:??
В каких случаях правильно  применять {{ }}, а в каких '+ +'?

1

Выделить код

Код:

for (r = 1; r <= 5; r++) {
iimSet("r", r);
ret = iimPlay("CODE:TAG POS={{r}} TYPE=A ATTR=class:photoWrapper EXTRACT=HREF \nTAB OPEN \nTAB T=2 \nURL GOTO={{!EXTRACT}}");
}


[spoiler=2]

Выделить код

Код:

for(q=1; q<=5; q++){
r=Math.floor(Math.[h]random[/h]()*7);
iimPlayCode('SET !TIMEOUT_STEP 0 \n SET !ERRORIGNORE YES \n TAG P

iMacros » iMacros for Firefox - общие вопросы, обсуждение возможностей (Часть 1) » 24-02-2017 16:59:51

Rushec91
Изучи основы программирования, потом основы js это не долго :)

скрытый текст

Выделить код

Код:

function rnd(min, max) {
    return Math.floor(Math.[h]random[/h]() * (max - min + 1)) + min;
};

//Всё что выше это функция(function), вставь её в начало скрипта


var a = rnd(5, 17) // Тут мы отправляем в функцию диапазон чисел от 5 до 17, функция его обрабатывает и выдаёт рандомное значение(значение будет в перемeнной 'a') 
//Далее мы эту переменную вставляем в условие цикла (d<=a)

for (var d = 1; d <= a; d++) {
        iimPlay("INST/Inst222.iim");
}

iMacros » iMacros for Firefox - общие вопросы, обсуждение возможностей (Часть 1) » 24-02-2017 15:15:34

nikolay1987
удалено - избыточное цитирование
Не совсем понял почему, но он мне просто цифру выдает и кнопку "ОК"

Я сделал правильно?

скрытый текст

Выделить код

Код:

function rnd(min, max) 
{return Math.floor(Math.[h]random[/h]() * (max - min + 1)) + min;};
var a = rnd(5, 17)
alert(a)

{iimPlay("INST/Inst222.iim");}


InfSub

iMacros » iMacros for Firefox - общие вопросы, обсуждение возможностей (Часть 1) » 24-02-2017 14:20:27

Rushec91

скрытый текст

Выделить код

Код:

function rnd(min, max) {
    return Math.floor(Math.[h]random[/h]() * (max - min + 1)) + min;
};

var a = rnd(5, 17)
alert(a)

iMacros » iMacros for Firefox - общие вопросы, обсуждение возможностей (Часть 1) » 23-02-2017 12:24:28

udalov

скрытый текст

Выделить код

Код:

var a = 6; 
var b = 1; 
var timer1=Math.floor(Math.[h]random[/h]()*(a - b) + b);
alert(timer1)

iMacros » iMacros for Firefox - общие вопросы, обсуждение возможностей (Часть 1) » 23-02-2017 11:54:59

Подскажите, второй вариант кода не работает, потому что нельзя использовать в Math.random переменные a и b или я делаю всё не так?

скрытый текст

Выделить код

Код:

var timer1=Math.floor(Math.[h]random[/h]()* (1 - 6) + 6); 
Выделить код

Код:

var cm = 6; 
var cm2 = 1; 

iimSet("a", cm);
iimSet ("b", cm2);

var timer1=Math.floor(Math.[h]random[/h]()*({{a}} - {{b}} + {{b}});

iMacros » iMacros for Firefox - общие вопросы, обсуждение возможностей (Часть 1) » 08-02-2017 20:58:49

udalov пишет:

Может быть, это ограничения Инстаграма на количество подписок? В любом случае, без кода макроса ответа сложно получить.

Вот код, на счет ограничения самого интаграма не знаю, я думаю если бы было ограничение то оно срабатывало по достижению определенного пика но, такая ерунда происходит то на 500 подписках, то на 100 а иногда и на 900.

скрытый текст

Выделить код

Код:

VERSION BUILD=9030808 RECORDER=FX
SET !ERRORIGNORE YES
SET !ERRORCONTINUE YES
FILTER TYPE=IMAGES STATUS=OFF
TAB T=1


TAG POS=2 TYPE=BUTTON ATTR=TXT:Подписаться
SET !VAR1 EVAL("Math.floor(Math.[h]random[/h]()*10 + 38);")
WAIT SECONDS={{!VAR1}}


код публикуется в тегах code внутри спойлера

InfSub

iMacros » iMacros for Firefox - общие вопросы, обсуждение возможностей (Часть 1) » 08-02-2017 12:11:36

Алим
Можно было и без перемешивания обойтись:

скрытый текст

Выделить код

Код:

var linkList = window.document.querySelectorAll("li[id*='result_']");

var a = several[h]Random[/h](0, linkList.length, linkList.length);

alert(a);

for (i=0; i<linkList.length; i++) {
    alert(a[i])
    }

function several[h]Random[/h](min, max, num) {
    var i, arr = [], res = [];
    for (i = min; i <= max; i++ ) arr.push(i);
    for (i = 0; i < num; i++) res.push(arr.splice(Math.floor(Math.[h]random[/h]() * (arr.length)), 1)[0])
    return res;
    }

iMacros » iMacros for Firefox - общие вопросы, обсуждение возможностей (Часть 1) » 07-02-2017 19:05:19

На странице сайта озон есть товары.
Количество товаров на странице может быть разное: до 18 и до 30

скрытый текст
Войдите или зарегистрируйтесь, чтобы увидеть скрытый текст.


Задача стояла - рандомно открывать страницы товаров во второй вкладке и чтобы повторно не открывал одни и теже товары на странице.
Идея пришла такая: поместить цифры от 1 до 30 в массив, потом их размешать и открывать последовательно. Таким образом получается рандом и без повторов. Это я реализовал благодаря гугл поиску, по кускам собрал js.

Потом возникла проблема. Количество товаров на странице в зависимости от запроса товара, может быть разной.

Вопрос. Как сделать так, чтобы цифры в массиве удалялись или не брались остальные не нужные?
Например 18 товаров и нужны цифры от 1 до 18, а от 19 до 30 чтобы цифры не использовались.

Решил сделать через условие, но пропускает циклы где попадаются цифры больше 18

iMacros » iMacros for Firefox - общие вопросы, обсуждение возможностей (Часть 1) » 30-01-2017 18:36:12

есть вот такой код

скрытый текст

Выделить код

Код:

curr_vkl = window.location.hostname;

var links = window.document.querySelectorAll('li a');
if(links.length == 0) 
{
 location = 'http://yandex.ru';
} 
 else 
{
    links[Math.floor(Math.[h]random[/h]()*links.length)].click();
}


код публикуется в тегах code внутри спойлера

как сделать чтоб нажимались только ссылки содержащие curr_vkl

InfSub

iMacros » iMacros for Firefox - общие вопросы, обсуждение возможностей (Часть 1) » 29-01-2017 16:53:31

скрытый текст

Выделить код

Код:

var letters = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','w','x','y','z']; 
var string = ''; 
for(var i = 0; i < 7; i++){string += letters[parseInt(Math.[h]random[/h]() * 25)]}; 
iimPlayCode('PROMPT "'+string+'"');

iMacros » iMacros for Firefox - общие вопросы, обсуждение возможностей (Часть 1) » 29-01-2017 13:02:47

Как сделать чтобы этот код заработал в iimPlayCode ?
Вторая строчка EVAL

скрытый текст

Выделить код

Код:

iimPlayCode("SET !ERRORIGNORE YES\n" +
"SET !VAR1 EVAL('var letters = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','w','x','y','z']; var string = ''; for(var i = 0; i < 7; i++){string += letters[parseInt(Math.[h]random[/h]() * 25)]}; string')\n"+
"PROMPT {{!VAR1}}")


Отдельно в js сделал и передал в iimPlayCode и заработало )

iMacros » iMacros for Firefox - общие вопросы, обсуждение возможностей (Часть 1) » 17-01-2017 20:59:29

не вставляется экстракт
[spoiler][code]for (a = 1; a <80; a++){
iimSet("a",a);
var r = Math.random() * 8 + 1;
var macro;
macro =  "CODE:";
macro +=  "SET !ERRORIGNORE YES" + "\n";
macro +=  "SET !REPLAYSPEED SLOW" + "\n";
macro +=  "SET !EXTRACT_TEST_POPUP NO" + "\n";
macro +=  'TAG POS={{a}} TYPE=DIV ATTR=CLASS:"grid_i_tx clamp" EXTRACT=TXT' + '\n';
macro +=  "SET !VAR2 {{!EXTRACT}}" + "\n";     
macro +=  "WAIT SECONDS=1" + "\n";
macro +=  'TAG POS={{a}} TYPE=SPAN ATTR=class:"ic ic-msg __empty ic16"' + '\n';
macro +=  "WAIT SECONDS=1" + "\n";
var extractedtext=iimGetLastExtract();
var macro2;
macro2 =  "CODE:";
macro2 +=  "SET !ERRORIGNORE YES" + "\n";
macro2 +=  "SET !REPLAYSPEED MEDIUM" + "\n";
macro2 +=  "TAG POS=1 TYPE=TEXTAREA ATTR=NAME:fr.msg CONTENT={{extractedtext}}" + "\n";
macro2 +=  "PAUSE" + "\n";
macro2 +=  "TAG POS=1 TYPE=INPUT:SUBMIT ATTR=CLASS:base-button_target" + "\n";
macro2 +=  "WAIT SECONDS=1" + "\n";
macro2 +=  "BACK" + "\n";
macro2 +=  "WAIT SECONDS

iMacros » iMacros for Firefox - общие вопросы, обсуждение возможностей (Часть 1) » 17-01-2017 01:42:46

InfSub пишет:

скрытый текст

Выделить код

Код:

macro +=  "SET !VAR1"+ Math.floor(Math.[h]random[/h]()*10 + 1) + "\n"; 


Спасибо за столь быстрый ответ
Но увы ... Ошибку перестал выдавать, только при запуске JS он его прогоняет но не выполняет. Пишит теперь типо ошибка в строке 3 а это

скрытый текст
macro =  "CODE:";

iMacros » iMacros for Firefox - общие вопросы, обсуждение возможностей (Часть 1) » 16-01-2017 22:16:39

Всем привет.
Подскажите в JS не работает вот этот код

скрытый текст

Выделить код

Код:

macro +=  "SET !VAR1 EVAL("Math.floor(Math.[h]random[/h]()*10 + 1); ")" + "\n"; 


Вот общий код

var macro;
скрытый текст

Выделить код

Код:

macro =  "CODE:";
macro +=  "SET !ERRORIGNORE YES" + "\n";
macro +=  "FILTER TYPE=IMAGES STATUS=ON" + "\n";  
macro +=  "SET !REPLAYSPEED MEDIUM" + "\n"; 
macro +=  "SET !VAR1 EVAL("Math.floor(Math.[h]random[/h]()*10 + 1); ")" + "\n"; 
macro +=  "SET !DATASOURCE C:\\iMacros\\Macros\\data\\podpis.txt" + "\n";
macro += "SET !DATASOURCE_LINE "+i+ "\n";
macro +=  "ADD !EXTRACT {{!COL1}} " + "\n"; 
macro +=  "URL GOTO={{!COL1}}" + "\n"; 
macro +=  "WAIT SECONDS={{!VAR1}}" + "\n"; 


код публикуется в тегах code внутри спойлера

Может его можно чем то заминить
За ранее благодарен

InfSub

iMacros » iMacros for Firefox - общие вопросы, обсуждение возможностей (Часть 1) » 14-11-2016 19:29:19

не могу понять после выполнения всего цикла
следующая строка извлекается со значение NULL из текстового файла в чем может быть дело

[spoiler][code]
for (var zk=1;zk<=14;zk++){

//iimPlayCode("set !extract null");
macros = "CODE: SET !DATASOURCE_DELIMITER ;"+n;
macros += "CMDLINE !DATASOURCE C:\\Zadaniy.txt"+n;
macros += "SET !DATASOURCE_COLUMNS "+8+n;
// macros += "SET !LOOP "+zk+n;
macros += "SET !DATASOURCE_LINE "+zk+n;
macros += "ADD !EXTRACT {{!COL1}}"+n;
macros += "ADD !EXTRACT {{!COL2}}"+n;
macros += "ADD !EXTRACT {{!COL3}}"+n;
macros += "ADD !EXTRACT {{!COL4}}"+n;
macros += "ADD !EXTRACT {{!COL5}}"+n;
macros += "ADD !EXTRACT {{!COL6}}"+n;
macros += "ADD !EXTRACT {{!COL7}}"+n;
macros += "ADD !EXTRACT {{!COL8}}"+n;

iimPlay(macros);
var nomer   = iimGetExtract(1);
var strzap  = iimGetExtract(2);
var strtube = iimGetExtract(3);
var videokanal = iimGetExtract(4);
var vid = iimGetExtract(5);
var recl = iimGetExtract(6);
var pod_recl = iimGetExtract(7);
var v

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2011 Mozilla Russia
Язык отображения форума: [Русский] [English]