|
 |
|
 |
| Пишем плагины сами! |
| 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, Не отрицаю
|
| |
|
| |
| 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:
Тема продолжает развиваться в отдельном потоке, эта тема пока что закрыта не будет. Ссылка поднята в шапку.
|
|
| Copyright Gigabyte © 2012 |
 |
| |