Страница 1 из 6

cron [bot] запуск команд

Добавлено: 22:46, 20.09.2008
Fantomas
Бот-приложение для запуска комманд (сообщение в канал, смена темы и т.д.) по расписанию
Первая тестовая версия
Конфигурационный файл (cron.txt) состоит из строк, каждая из которых описывает команду, которая будет запускаться по расписанию. Каждая строка состоит из 6 полей, поля отделяются друг от друга пробелом. Поля имеют следующее назначение:

1. Минуты (0-59)
2. Часы (0-23)
3. День месяца (1-31)
4. Месяц в году (1-12)
5. День недели (1-7)
6. Команда, которая будет запущена

Каждое из первых 5 полей может быть записано несколькими способами:

1. Символом * (означает любое значение)
2. Списком через запятую (1,2,3)
3. Диапазоном через тире (1-31)
4. Шагом значений диапазона (например */2 означает через_раз)
Команды:
comm_msg('канал', 'текст') - опубликовать сообщение
comm_status('канал', 'статус') - опубликовать состояние
comm_ban(тип_ограничения, тип_идентификации, тип_анонимности, время_бана, 'идентификация', 'канал', 'причина')

Типы ограничения:
0 - Запретить доступ к чату;
1 - Запретить доступ к каналу;
2 - Запретить публикацию в канале;
3 - Запретить публикацию картинок;
4 - Запретить публикацию объявлений.

Типы идентификации:
0 - учётная запись;
1 - IP-адрес;
2 - диапазон IP-адресов (пример: 192.168.0.0-192.168.0.255).

Типы анонимности:
0 - обычное ограничение;
1 - анонимное ограничение.

Идентификация:
учётная запись либо IP-адрес, либо диапазон IP-адресов

comm_theme('канал', 'тема') - смена темы канала

comm_welcome('канал', 'приветствие') - смена приветствия

comm_privatemsg('пользователь', 'ip', 'текст') - опубликовать сообщение в приват

comm_privatestatus('пользователь', 'ip', 'статус') - опубликовать соостояние в приват

comm_privateclose('пользователь', 'ip') - закрыть приват

comm_channelclose('канал') - закрыть канал

comm_channelcreate(режим, 'канал') - создать канал
Режимы:
0 - не отображать в списке каналов (вход для всех);
1 - отображать в списке каналов (вход для всех);
2 - не отображать в списке каналов (вход только по приглашению);
3 - отображать в списке каналов (вход только по приглашению).
скачать: http://multi-up.com/22156/

Re: cron [bot] запуск команд

Добавлено: 00:49, 21.09.2008
Hell_Excalibur
Тема, завтра попробую утром, эх жаль без перезагрузки сервера никак :( Убьют за рестарт...

Re: cron [bot] запуск команд

Добавлено: 05:26, 21.09.2008
ЯROSLOVE
Извиняюсь, но не работает. Не понятно вообще - подключается бот или только пытается, никакого интерфейса нет или лога. Пробовал ежеминутные сообщения вывести - тишина полная.
И вопрос по папке data, что это?

Re: cron [bot] запуск команд

Добавлено: 13:18, 21.09.2008
Fantomas
ЯROSLOVE писал(а):Извиняюсь, но не работает. Не понятно вообще - подключается бот или только пытается, никакого интерфейса нет или лога. Пробовал ежеминутные сообщения вывести - тишина полная.
И вопрос по папке data, что это?
Если зеленая иконка в трее, значит работает.
Покажите вашу запись в файле cron.txt

Re: cron [bot] запуск команд

Добавлено: 14:35, 21.09.2008
Padonag
работает ...но вот отсутсвие интерфейса нерадует...чтобы исправить челибо надо вырубать бота и править файлик..

Re: cron [bot] запуск команд

Добавлено: 14:43, 21.09.2008
Fantomas
Padonag писал(а):работает ...но вот отсутсвие интерфейса нерадует...чтобы исправить челибо надо вырубать бота и править файлик..
не надо вырубать

Re: cron [bot] запуск команд

Добавлено: 14:55, 21.09.2008
Fantomas
ЯROSLOVE писал(а):И вопрос по папке data, что это?
там небольшой интерпретатор, например чтобы бот выводил каждые 5 минут новую цитату с сайта баш.орг.ру в канал main можно написать такой скриптик:

Код: Выделить всё

<?
$url = 'http://bash.org.ru/rss';
$hndl = fopen($url, 'r');
$contents = '';
while (!feof($hndl)) {
  $contents .= fread($hndl, 8192);
}
fclose($hndl);
preg_match_all("/<title>(.*?)<\/title>/", $contents, $titles, PREG_PATTERN_ORDER);
preg_match_all("/<description><!\[CDATA\[(.*?)\]\]><\/description>/", $contents, $desc, PREG_PATTERN_ORDER);
$i=rand(0, count($titles[1]));
$desc[1][$i]=str_replace('<br>', chr(13), $desc[1][$i]);
comm_msg('main', htmlspecialchars_decode($desc[1][$i]));
?>
сохранить его в папку с программой под названием bash.txt и в cron.txt вписать такую строчку:

Код: Выделить всё

*/5 * * * * require_once('bash.txt')

Re: cron [bot] запуск команд

Добавлено: 21:49, 21.09.2008
LLV
Fantomas, как сделать чтобы было несколько RSS лент и они менялись с помощью темы канала.
т.е есть 3 адресса:

http://bash.org.ru/rss
http://img.lenta.ru/r/EX/import.rss
http://www.securitylab.ru/_Services/Export/RSS/

и в зависимости от темы bash.org.ru, lenta.ru, securitylab.ru... включались эти ленты?

Re: cron [bot] запуск команд

Добавлено: 22:48, 21.09.2008
CraSTI
а все понял понял!!! +)))))

Re: cron [bot] запуск команд

Добавлено: 23:59, 21.09.2008
CraSTI
LLV писал(а):Fantomas, как сделать чтобы было несколько RSS лент и они менялись с помощью темы канала.
т.е есть 3 адресса:

http://bash.org.ru/rss
http://img.lenta.ru/r/EX/import.rss
http://www.securitylab.ru/_Services/Export/RSS/

и в зависимости от темы bash.org.ru, lenta.ru, securitylab.ru... включались эти ленты?
я думаю можно сделать так. Создать текстовик в нем написать.

Код: Выделить всё

<?
$url = 'http://img.lenta.ru/r/EX/import.rss';    --------- ССЫЛКУ
$hndl = fopen($url, 'r');
$contents = '';
while (!feof($hndl)) {
  $contents .= fread($hndl, 8192);
}
fclose($hndl);
preg_match_all("/<title>(.*?)<\/title>/", $contents, $titles, PREG_PATTERN_ORDER);
preg_match_all("/<description><!\[CDATA\[(.*?)\]\]><\/description>/", $contents, $desc, PREG_PATTERN_ORDER);
$i=rand(0, count($titles[1]));
$desc[1][$i]=str_replace('<br>', chr(13), $desc[1][$i]);
comm_msg('КАНАЛ', htmlspecialchars_decode($desc[1][$i]));     ----------- КАНАЛ
?>
а в cron дописать

Код: Выделить всё

*/5 * * * * require_once('ИМЯ_ФАЙЛА')
кстати если хочешь сделать рамку для RSS редактируй след.
открой скрипт для RSS дальше найди строку

Код: Выделить всё

comm_msg('КАНАЛ', htmlspecialchars_decode($desc[1][$i]));
и сверху и снизу напиши типа

Код: Выделить всё

comm_msg('КАНАЛ', '*****************');
получается:

Код: Выделить всё

comm_msg('КАНАЛ, '*****************');
comm_msg('КАНАЛ', htmlspecialchars_decode($desc[1][$i]));
comm_msg('КАНАЛ', '*****************');
Результат:
[0:22:02] Пряничек (N/A): *****************
[0:22:02] Пряничек (N/A): miks: где твой роут джек?
jack: and don't you come back no more no more no more
[0:22:02] Пряничек (N/A): *****************

Re: cron [bot] запуск команд

Добавлено: 13:36, 22.09.2008
MARVELtm
хорошую прогромуленку смастерили, спасибо! есть тока одно "но" =) хотелось бы файл cron.txt изменять не отключая бота(и вообще бот ли это :!: ) , т.е. прям из клиента! (допустим в привате)

Re: cron [bot] запуск команд

Добавлено: 15:52, 22.09.2008
ЯROSLOVE
Перепробовал кучу портов, бот согласен работать только на изначально забитым в ини порту.
* * * * * comm_msg('main', 'Всем привет!') - по идее должен ежеминутно выводить сообщение. Молчит падонак.

Re: cron [bot] запуск команд

Добавлено: 16:37, 22.09.2008
ЯROSLOVE
Заработал бот с пятого перезапуска. Вообще, на 4-м комфорте почти все боты и плагины работают непредсказуемо. Низкий поклон и слова благодарности Fantomasу - незаменимая и очень нужная вещь его бот.

Re: cron [bot] запуск команд

Добавлено: 16:56, 22.09.2008
CraSTI
ЯROSLOVE писал(а):Перепробовал кучу портов, бот согласен работать только на изначально забитым в ини порту.
* * * * * comm_msg('main', 'Всем привет!') - по идее должен ежеминутно выводить сообщение. Молчит падонак.
Я понял. вроде как работает пока что все получается
Стоит 3 бота Мафия Бот с поддержкой плагинов + плагины (OpenSource)--ПОГОДА Cron


Нет, работает все нормально !!!!!

Код: Выделить всё

* * * * * comm_msg('test', 'тест')
----------------доп. инфа.------------------------------
Да, есть проблема с запуском стольких ботов не без этого:)
1.Cron ругался сильно когда я его кинул в папку на другом диск путь такой -d:\commfort\comm_cron- отказывался запусть скрипт баш.орг
-Решение проблемы положил на диск C:\comm_cron Заработал
2.Cron ругался на порты так как не может работать с ботом который выдавал погоду
-Решение проблемы я созда копию UDPAddons.ini и назвал ее 1UDPAddons.ini
затем выставляю порты: файл UDPAddons.ini работал у меня с comm_cron с портом 44445 а файл 1UDPAddons.ini работал с ботом погоды с портом 6556 затем в боте погоды выставляю настройку на файл 1UDPAddons.ini и бот погоды будет работать отдельно не кому не мешая:)

Re: cron [bot] запуск команд

Добавлено: 21:49, 22.09.2008
Viper
Благодарю тебя ДОБРЫЙ человек!!!!! как раз то что мне нужно!!!!!
Вот сейчас набиваю бота чтобы он каждый день выводил какой праздник, прикольно будет, кто захочет потом скину!!!