Пишем плагины сами! - Страница 13 - Форум
Воскресенье, 20.05.2012, 21:19
Приветствую Вас Гость | RSS
Главная | Пишем плагины сами! - Страница 13 - Форум | Регистрация | Вход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 13 из 13«12111213
Форум » Jabber » Плагины - Talisman bot » Пишем плагины сами! (Для тех кто хочет научиться писать плагины)
Пишем плагины сами!
40tman Дата: Воскресенье, 18.09.2011, 22:45 | Сообщение # 181
Лейтенант
Группа: Пользователи
Сообщений: 54
Репутация: 5
Статус: Offline
Code
ROLL_FILE = 'dynamic/roll.txt'  

def handler_lol(type, source, nick):
     try:
         if type == 'public':
             loc = time.localtime()
             data = loc[0],loc[1],loc[2]
             otv = source[2]
             roll = eval(read_file('static/lol.txt'))['lol']
             action = random.choice(roll)
             if not os.path.exists(ROLL_FILE) or not isinstance(eval(read_file(ROLL_FILE)), dict):
                 new=open(ROLL_FILE,'w')
                 new.write('{}')
                 new.close()
             txt=eval(read_file(ROLL_FILE))
             if not data in txt:
                 txt[data]={}
             if not otv in txt[data]:
                 txt[data][otv]=action
             else:
                 reply(type, source, u'Твоя роль уже известна на сегодня - '+txt[data][otv])
                 return
             write_file(ROLL_FILE, str(txt))
             reply(type, source, u'Ты сегодня '+action)
         else:
             reply(type, source, u'Или ты , или "ролл" надо писать в чятике :vagan:')
     except:
         reply(type, source, u'Что-то сломалось!')
         raise

register_command_handler(handler_lol, 'ролл', ['фан','все'], 10, 'Крутит ролл.', 'ролл', ['ролл ***'])
 
MaDJuNE Дата: Понедельник, 19.09.2011, 00:45 | Сообщение # 182
Рядовой
Группа: Пользователи
Сообщений: 4
Репутация: 0
Статус: Offline
40tman, спасибо огромное!

Добавлено (19.09.2011, 00:45)
---------------------------------------------
40tman, не пашет почему-то

 
40tman Дата: Понедельник, 19.09.2011, 00:52 | Сообщение # 183
Лейтенант
Группа: Пользователи
Сообщений: 54
Репутация: 5
Статус: Offline
скрин ошибки кинь сюда, если она есть
 
MaDJuNE Дата: Понедельник, 19.09.2011, 01:00 | Сообщение # 184
Рядовой
Группа: Пользователи
Сообщений: 4
Репутация: 0
Статус: Offline
40tman, ошибки нету. просто не реагирует бот на команду

Добавлено (19.09.2011, 01:00)
---------------------------------------------
40tman, Все, разобрался. у меня проблема была

 
GrandDizel Дата: Понедельник, 19.09.2011, 12:34 | Сообщение # 185
Подполковник
Группа: Beta-Tester
Сообщений: 132
Репутация: 10
Статус: Offline
привет мне объяснить(научить) как делать параметры к команде например

торент 3 пункт назначения 5
торент 5 пираты карибского моря

тоесть чтобы первая цифра (первый параметр) показывал количество выводимых результатов а второй параметр название чего либо искомого



 
WitcherGeralt Дата: Четверг, 22.09.2011, 01:47 | Сообщение # 186
Полковник
Группа: Beta-Tester
Сообщений: 199
Репутация: 33
Статус: Offline
GrandDizel, прикалываешься?

Code

ls = args.split() # где args параметры
if ls[0].isdigit(): # проверка является ли первый параметр числом
     args = args[len(ls[0]):].lstrip() # отсекаем первый параметр и  получаем ключ поиска
     number = int(ls.pop(0)) # число
else:
     number = 1 # число до дефолту


Так, либо ещё тысячей и одним способом.


 
the_boore_over Дата: Вторник, 25.10.2011, 14:40 | Сообщение # 187
Рядовой
Группа: Пользователи
Сообщений: 8
Репутация: 0
Статус: Offline
Как сделать такой плагин, который бы реагировал киком на определённое слово, сказанное в любом контексте (в середине предложения). И если сказавший это слово админ - то просто предупреждение.
 
GrandDizel Дата: Вторник, 25.10.2011, 15:22 | Сообщение # 188
Подполковник
Группа: Beta-Tester
Сообщений: 132
Репутация: 10
Статус: Offline
можно взять order плагин(предварительно сделав копию плагина на всякий) который стандартно есть в талисмане и смотреть там список матов и к матам можно дописать слова


 
Gigabyte Дата: Вторник, 25.10.2011, 15:58 | Сообщение # 189
Owner
Группа: Администраторы
Сообщений: 353
Репутация: 142
Статус: Offline
the_boore_over, ты поставил 2 задачи. Вторая решает банальной проверкой доступа юзера
Code
if has_access(source, 20, gch):
         пишем предупреждение
else:
         кикаем


Первая задача - способов масса. Например каждое сообщение обрабатывать атрибутом ".count(искомое слово)"




 
GrandDizel Дата: Вторник, 25.10.2011, 16:29 | Сообщение # 190
Подполковник
Группа: Beta-Tester
Сообщений: 132
Репутация: 10
Статус: Offline
на мой взгляд предложенный мной вариант является самым простым и доступным решением поставленной задачи))


 
Gigabyte Дата: Вторник, 25.10.2011, 16:38 | Сообщение # 191
Owner
Группа: Администраторы
Сообщений: 353
Репутация: 142
Статус: Offline
GrandDizel, Не отрицаю smile



 
the_boore_over Дата: Вторник, 25.10.2011, 22:07 | Сообщение # 192
Рядовой
Группа: Пользователи
Сообщений: 8
Репутация: 0
Статус: Offline
Согласен, но order_plugin.py не пашет, о чём я и писал в мастерской.
Запустил его filt obscene 1
и на маты не реагирует. Или я что-то не так делаю?

Добавлено (25.10.2011, 22:07)
---------------------------------------------

Code
order_stats = {}
order_obscene_words = [u'хуй']

def order_check_obscene_words(body):
  body=body.lower()
  body=u' '+body+u' '
  for x in order_obscene_words:
   if body.count(x):
    return True
  return False
def order_check_obscene(body, gch, jid, nick):
  if order_check_obscene_words(body):
                 reply(type, body,u'йух')
   return True
  return False


что здесь не так?
 
Информация от администратора Gigabyte:
Тема продолжает развиваться в отдельном потоке, эта тема пока что закрыта не будет. Ссылка поднята в шапку.
Форум » Jabber » Плагины - Talisman bot » Пишем плагины сами! (Для тех кто хочет научиться писать плагины)
Страница 13 из 13«12111213
Поиск:

Copyright Gigabyte © 2012
Создать сайт бесплатно