Live dc++ forum
Форма входа
Логин:
Пароль:
Главная | Клиентские скрипты (greylink) - Страница 4 - Форум | Пятница, 29.03.2024, 08:06
[ Новые сообщения · Участники · Правила форума · Поиск
Форум » >> » DC++ » Клиентские скрипты (greylink)
Клиентские скрипты (greylink)
hmuryДата: Воскресенье, 05.10.2008, 10:58 | Сообщение # 1
Генерал-лейтенант
Сообщений: 599
Репутация: 32
Статус: Offline
Сайт посвященный Луа http://www.lua.ru
Форум с готовыми скриптами на http://mydc.ru
Еще один форум на http://adrium.ipbfree.com

мой знакомый, Chaser, написал скрипт "объявление на хабе"

Code
dcpp = {}
spamtable = {}
-- spamtable= { ["dc.ru"] = { 0, 10, "sample" } , ["localhost"] = { 0, 12, "hello there!" } }

function spam(hubname, timeout, text)
           spamtable[hubname] = { 0, timeout, text }
end

function dcpp.OnTimer()
           for hubname, hubentry in pairs(spamtable) do
                   if (hubentry[1] == 0) and (hubentry[3] ~= "") then
                           hubentry[1] = hubentry[2]
                           DC():SendPublicMessage(hubname, hubentry[3])
                   else
                           hubentry[1] = hubentry[1] - 1
                   end
           end
           return nil
end

text =          "Спам-бот. Запуск спама на хабе с периодом 600 секунд:\r\n"
text = text ..  "/lua spam(\"dc.ufanet.ru\", 600, \" ТУТ ВАШЕ СООБЩЕНИЕ \")\r\n"
text = text ..  "\r\n"
text = text ..  "Чтобы отключить спам на хабе, наберите\r\n"
text = text ..  "/lua spam(\"dc.ufanet.ru\", 0, \"\")\r\n"
text = text ..  "\r\n"
text = text ..  "Адрес хаба надо писать в точности, как в столбце 'Сервер'\r\n"
text = text ..  "в списке 'Избранных хабов'\r\n"

DC():MessageBox(text, "spam.lua", "ok", "info")
DC():RunTimer(1)

это надо вставить в блокнот и сохранить в папку Scripts с именем spam.lua, обязательно в кодировке utf-8. запуск командой

Code
/luafile spam.lua


Сообщение отредактировал livedc - Четверг, 19.03.2009, 20:19
 
deityДата: Понедельник, 26.01.2009, 19:29 | Сообщение # 46
Полковник
Сообщений: 238
Репутация: 4
Статус: Offline
SMT,
спасибо, но к сожалению не срабатывает
-на висте скрипт не запускается
-на хр ругается и файл нулевой

 
SMTДата: Понедельник, 26.01.2009, 21:58 | Сообщение # 47
Генерал-лейтенант
Сообщений: 514
Репутация: 28
Статус: Offline
надо скачать и установить msxml.msi с официальной страницы
http://www.microsoft.com/downloa....lang=en

Добавлено (26.01.2009, 21:58)
---------------------------------------------
ещё заметил странность: из консоли cmd.exe скрипт нормально запускается (конмандой run). а из проводника не очень.

можно попробовать написать run.bat с одной командой start run.js

Сообщение отредактировал SMT - Понедельник, 26.01.2009, 21:52
 
deityДата: Понедельник, 26.01.2009, 22:05 | Сообщение # 48
Полковник
Сообщений: 238
Репутация: 4
Статус: Offline
у меня уже стоят эти пакеты - аж 4 штуки ...и через cmd таже ошибка ....

 
SMTДата: Понедельник, 26.01.2009, 22:49 | Сообщение # 49
Генерал-лейтенант
Сообщений: 514
Репутация: 28
Статус: Offline
оказывается, у меня тоже никак не запускается из проводника даже через bat-файл.
но когда запускаю Far Manager, нажимаю Enter на файле, то появляется hublist.xml

какая-та странность с настройками безопасности IE, что запрещены ActiveX в скриптах

 
UkitoДата: Суббота, 31.01.2009, 23:30 | Сообщение # 50
Рядовой
Сообщений: 9
Репутация: 0
Статус: Offline
существует ли ткое: GetHubAddress() что б возвращало значение адреса где выполнена команда /luafile xxx.lua
 
SMTДата: Воскресенье, 01.02.2009, 00:34 | Сообщение # 51
Генерал-лейтенант
Сообщений: 514
Репутация: 28
Статус: Offline
в текущей версии нет. lua давно не обновлялся, похоже это направление заброшено
 
UkitoДата: Воскресенье, 01.02.2009, 01:52 | Сообщение # 52
Рядовой
Сообщений: 9
Репутация: 0
Статус: Offline
=( жаль, толькочто обновился, но ето некто так и не розвивает (((

а еще у меня неработает самый простой екзампл
http://www.evilmana.com/tutorials/lua_tutorial_09.php

хочу вывести в общий чат первую строку в текстовом файле.. file:read()

 
SMTДата: Воскресенье, 01.02.2009, 09:19 | Сообщение # 53
Генерал-лейтенант
Сообщений: 514
Репутация: 28
Статус: Offline
скрипт печатает файл Favorites.xml в чат хаба 127.0.0.1
Code
file = io.open(DC():GetAppPath() .. "Settings/Favorites.xml", "r")

for line in file:lines() do
   DC():SendPublicMessage("127.0.0.1", line)
end

Добавлено (01.02.2009, 09:19)
---------------------------------------------
пример посложнее выкидывает в чат случайную строку из файла

Code
file = io.open(DC():GetAppPath() .. "Settings/Favorites.xml", "r")
messages = { }
i = 1

for line in file:lines() do
   messages[i] = line
   i=i+1
end

DC():SendPublicMessage("127.0.0.1", messages[math.random(i-1)])
 
UkitoДата: Воскресенье, 01.02.2009, 12:21 | Сообщение # 54
Рядовой
Сообщений: 9
Репутация: 0
Статус: Offline
SMT, Спасибо!.. а если в моем тектовом файле откуда я беру текст, все на русском, и иногда попадаются англ словечки... У меня в чате непишет по русски... =(
 
SetuperДата: Воскресенье, 01.02.2009, 13:06 | Сообщение # 55
Майор
Сообщений: 98
Репутация: 6
Статус: Offline
Для этого существуют функции: ToUtf8(str) и FromUtf8(str)

lua master
 
SMTДата: Воскресенье, 01.02.2009, 13:07 | Сообщение # 56
Генерал-лейтенант
Сообщений: 514
Репутация: 28
Статус: Offline
Quote (Ukito)
а если в моем тектовом файле откуда я беру текст, все на русском, и иногда попадаются англ словечки... У меня в чате непишет по русски... =(

клиент использует кодировку UTF-8. нужно или
1) в блокноте пересохранить скрипт (если там есть русские сообщения) и файл с цитатами, указав принудительно кодировку UTF-8 [мне такой способ больше нравится], или же
2) оставить файлы в привычной тебе кодировке и пользоваться функциями DC():ToUtf8 перед отправкой на хаб и DC():FromUtf8, если принимаешь строки от клиента. примеры, как перекодировать из кодировки windows в UTF-8 и обратно, были в этой теме
 
UkitoДата: Воскресенье, 01.02.2009, 15:09 | Сообщение # 57
Рядовой
Сообщений: 9
Репутация: 0
Статус: Offline
SMT, спасибо, я пересохранил файл в итф8 и заработало как мне хочется...

Но теперь я хочу услложнить задачу, выполнять скрипт через определенный промежуток времени например каждый час. тоесть через каждые 60 мин, в чат будет писатся случайная строка из тектового файла.

 
SMTДата: Воскресенье, 01.02.2009, 16:30 | Сообщение # 58
Генерал-лейтенант
Сообщений: 514
Репутация: 28
Статус: Offline
посмотри, как сделан скрипт "объявление на хабе", spam.lua, из стандартной поставки клиента

Добавлено (01.02.2009, 16:30)
---------------------------------------------

Quote (deity)
спасибо, но к сожалению не срабатывает
-на висте скрипт не запускается
-на хр ругается и файл нулевой

на странице http://www.netcrucible.com/xslt/xslt-tool.htm
есть бесплатная windows-программа для преобразования XML
http://www.netcrucible.com/xslt/xslt.zip

из архива нужно достать xslt.exe и Richtx32.ocx

запускаем. указываем
File -> XSLT -> Open -> fav2hublist.xsl
File -> XML -> Open -> Favorites.xml

нажимаем Process -> XForm

в правом окне получается файл hublist.xml

 
UkitoДата: Воскресенье, 01.02.2009, 17:14 | Сообщение # 59
Рядовой
Сообщений: 9
Репутация: 0
Статус: Offline
Я так и непонял как работает функцыя DC():RunTimer(1) sad

Добавлено (01.02.2009, 17:14)
---------------------------------------------
особенно по тому как ето офрмлено в spam.lua

 
SetuperДата: Воскресенье, 01.02.2009, 17:55 | Сообщение # 60
Майор
Сообщений: 98
Репутация: 6
Статус: Offline
Функция DC():RunTimer(1) устанавливает своим параметром временной интервал выполнения функции dcpp.OnTimer()

Code
dcpp = {}
iCounter = 0 -- счётчик
iTime = 30 -- интервал между отсылками (в сек)
sHub = "localhost:411"
sMsg = "Сообщение в чат"

function dcpp.OnTimer()
   iCounter = iCounter + 1
   if iCounter == iTime then
     iCounter = 0
     DC():SendPublicMessage(sHub, sMsg)
   end
end
DC():RunTimer(1)


lua master
 
Форум » >> » DC++ » Клиентские скрипты (greylink)
Поиск:


В движке поковырялся LiveDC :p © 2024
Сделать бесплатный сайт с uCoz