Перейти к содержимому


Мнения о пользователях


Сообщений в теме: 10

#1 DeadInside

    Профи

  • Пользователи
  • PipPipPipPipPip
  • 436 сообщений
  • ГородPhiladelphia

Отправлено 13 Июль 2010 - 12:31

Название: Сервис мнений о пользователях (адаптировано для сборки fraer72) + Проверка на пустое мнение ( http://forum.jimbot....bot-by-fraer72/ )
Суть: Скрипт позволяет оставить мнения о пользователях/прочитать мнения о пользователях
Авторы: Imda(взят за основу скрипт его сервиса жалоб), DeadInside(редактирование скрипта + проверка на наличие текста мнения), REDOSS & olegteror (Помощь при реализации проверки)

Инструкция по установке:
1) Создаем в корне бота папку mneniya
2) В \services\ChatBot\scripts\command создадим файл Mnen_add.bsh
3) Зальем в Mnen_add.bsh вот это:
/**
* Скрипт для добавления мнений
* !мнение <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);
   if (pt.equals("") || pt.equals(" ")) {
             proc.mq.add(uin, "Введите текст мнения! (!мнение <id> <text>)");
             return;
   }
   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 следующий скрипт:
/**
* Просмотр мнений.
* !мнения - количество мнений, таблица
* !мнения <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 следующего вида:
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) Перезапускаем бот

Вот вообщем выложил... Может кому пригодится...
P.S.: Кто может помочь с проверкой на пустое сообщение в первом скрипте, помогите плз..

Сообщение отредактировал DeadInside: 29 Август 2010 - 17:11


#2 _MasteR_

    Профи

  • Пользователи
  • PipPipPipPipPip
  • 768 сообщений
  • ГородSearchMe

Отправлено 13 Июль 2010 - 12:33

Этот скрипт уже оооочень давно есть
И находиться в разделе "готовые скрипты"

#3 rustpro

    Специалист

  • Пользователи
  • PipPipPipPip
  • 237 сообщений
  • ГородМахачкала

Отправлено 13 Июль 2010 - 16:26

Просмотр сообщенияassassins4 (13 Июль 2010 - 12:33) писал:

Этот скрипт уже оооочень давно есть
И находиться в разделе "готовые скрипты"


точно очень давно)))))

#4 olegteror

    QT Coder.

  • Специалисты
  • PipPipPipPipPip
  • 543 сообщений

Отправлено 13 Июль 2010 - 17:13

Цитата

P.S.: Кто может помочь с проверкой на пустое сообщение в первом скрипте, помогите плз..
q.equals("")

#5 DeadInside

    Профи

  • Пользователи
  • PipPipPipPipPip
  • 436 сообщений
  • ГородPhiladelphia

Отправлено 13 Июль 2010 - 18:36

Цитата

Этот скрипт уже оооочень давно есть
И находиться в разделе "готовые скрипты"

Цитата

точно очень давно)))))

Дайте ссылку на сообщение, в котором дан хотябы обычный сервис мнений, без запроса для базы фраера?

#6 ~ LeVa ~

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 180 сообщений
  • ГородАхТуБиНсК)

Отправлено 13 Июль 2010 - 21:33

да я где то на форуме видал такой скрипт))

#7 DeadInside

    Профи

  • Пользователи
  • PipPipPipPipPip
  • 436 сообщений
  • ГородPhiladelphia

Отправлено 13 Июль 2010 - 22:56

юзай поиск =) нету =)
есть только жалобы =)

#8 nek

    Профи

  • Модераторы
  • 2 293 сообщений

Отправлено 14 Июль 2010 - 00:06

Те же яйца, только вид с боку.

#9 DeadInside

    Профи

  • Пользователи
  • PipPipPipPipPip
  • 436 сообщений
  • ГородPhiladelphia

Отправлено 28 Август 2010 - 13:56

Если с проверкой на наличие текста, то получится так?:

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

Добавил
if (pt.equals("") || pt.equals(" ")) {
             proc.mq.add(uin, "Введите текст мнения! (!мнение <id> <text>)");
             return;

Правильно?

Сообщение отредактировал DeadInside: 28 Август 2010 - 13:58


#10 REDOSS

    Профи

  • Специалисты
  • PipPipPipPipPip
  • 800 сообщений
  • ГородКраснодар

Отправлено 28 Август 2010 - 17:54

Должно быть так.
сама проверка:
Скрытый текст
Готовый код:
Скрытый текст

Сообщение отредактировал REDOSS: 28 Август 2010 - 17:56


#11 DeadInside

    Профи

  • Пользователи
  • PipPipPipPipPip
  • 436 сообщений
  • ГородPhiladelphia

Отправлено 29 Август 2010 - 17:07

Ред, спасиб, +1...

обновил первый пост





Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 скрытых пользователей