Название: Сервис мнений о пользователях (адаптировано для сборки fraer72) ( http://forum.jimbot....bot-by-fraer72/ )
Суть: Скрипт позволяет оставить мнения о пользователях/прочитать мнения о пользователях
Авторы: Imda(взят за основу скрипт его сервиса жалоб), DeadInside(редактирование скрипта, адаптация для JimBot by Fraer72)
Инструкция по установке:
1) Создаем в корне бота папку mneniya
2) В \services\ChatBot\scripts\command создадим файл Mnen_add.bsh
3) Зальем в Mnen_add.bsh вот это:
Code
/**
* Скрипт для добавления мнений
* !мнение <id> <text>
*/
import ru.jimbot.modules.AbstractServer;
import ru.jimbot.util.*;
import ru.jimbot.modules.chat.*;
import ru.jimbot.modules.*;
//Установка скрипта как обработчика команды
if(in.equals("install")){
cmd.addCommand("!мнение", new Cmd("!мнение","$n $s",39,name));
cmd.addAuth("Mneniya","Сервис мнений");
out="Ok";
return;
}
//Создать папку mneniya в корне бота
// Проверим полномочия
if(!cmd.isChat(proc,uin) && !cmd.psp.testAdmin(uin)) return;
if(!cmd.auth(proc,uin, "Mneniya")) return;
try{
Vector v = cmd.getParser().parseArgs(msg);
int i = (Integer)v.get(0);
String pt = (String)v.get(1);
Users u = cmd.srv.us.getUser(i);
Users us = cmd.srv.us.getUser(uin);
OutputStreamWriter ow = new OutputStreamWriter(new FileOutputStream("./mneniya/"+u.id,true),"windows-1251");
java.sql.Date D = new java.sql.Date(new java.util.Date().getTime());
ow.write(D+" ["+us.id+"]"+us.localnick+":"+pt+"\n");
ow.close();
proc.mq.add(uin,"Мнение о пользователе успешно добавлено!");
} catch (Exception ex) {
ex.printStackTrace();
proc.mq.add(uin,"Ошибка "+ex.getMessage());
}
4) Создадим в той же директории файл Mnen_read.bsh
5) Зальем в Mnen_read.bsh следующий скрипт:
Code
/**
* Просмотр мнений.
* !мнения - количество мнений, таблица
* !мнения <id> - мнения юзера
*/
import ru.jimbot.modules.AbstractServer;
import ru.jimbot.util.*;
import ru.jimbot.modules.chat.*;
import ru.jimbot.modules.*;
//Установка скрипта как обработчика команды
if(in.equals("install")){
cmd.addCommand("!мнения", new Cmd("!мнения","$s",39,name));
cmd.addAuth("mneniya","Сервис мнений (просмотр)");
out="Ok";
return;
}
if(!cmd.isChat(proc,uin) && !cmd.psp.testAdmin(uin)) return;
if(!cmd.auth(proc,uin, "Mneniya")) return;
try{
Vector v = cmd.getParser().parseArgs(msg);
String smsg = (String)v.get(0);
String l;
if(smsg.equals("")||smsg.equals(" "))
{
File pets = new File ("./mneniya/");
String[] fl = pets.list(); //Список файлов fl
l = "Мнения о пользователе:\n"; //Начало отчета l
l += "ID - Количество:"+"\n"; //Добавили в строку ИД, петиции (Заглавие таблицы)
for(int i=0;i<fl.length;i++) //Пробегаем все файлы fl[i]
{ //
String ffl = cmd.psp.loadText("./mneniya/"+fl[i]); //Читаем файл
String[] sffl = ffl.split("\n"); //Бьем на строки
l+=fl[i]+" - "+sffl.length+"\n"; //Вписываем в отчет данные
}
} else
{
String pl = "./mneniya/"+smsg;
File g = new File (pl);
if (g.exists()){
String s = cmd.psp.loadText("./mneniya/"+smsg);
l="Мнения о пользователе ["+smsg+"]\n";
Users u = cmd.srv.us.getUser(smsg);
l+=s;
}
else {
l="Мнений нет";
}
}
proc.mq.add(uin,l);
} catch (Exception ex) {
ex.printStackTrace();
proc.mq.add(uin,"Ошибка "+ex.getMessage());
}
6) Выполним запрос в таблицу help следующего вида:
Code
INSERT INTO `help` ( `id` , `auth` , `command` , `info` ) VALUES ('100', 'Mneniya', '!мнение <id> <text>', 'Оставить мнение о пользователе');
INSERT INTO `help` ( `id` , `auth` , `command` , `info` ) VALUES ('101', 'Mneniya', '!мнение 0 <text>', 'Оставить мнение о чате');
INSERT INTO `help` ( `id` , `auth` , `command` , `info` ) VALUES ('102', 'mneniya', '!мнения', 'Листинг мнений (ид - количество)');
INSERT INTO `help` ( `id` , `auth` , `command` , `info` ) VALUES ('103', 'mneniya', '!мнения <id>', 'Прочесть мнения о пользователе');
7) Перезапускаем бот Вот вообщем выложил... Может кому пригодится...