Mozdef / bot /irc /modules /roulette.py
ineso22's picture
Upload folder using huggingface_hub
7c89ed7 verified
#!/usr/bin/env python
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at https://mozilla.org/MPL/2.0/.
# Copyright (c) 2014 Mozilla Corporation
#
# Copy of https://github.com/gdestuynder/Stupid-python-bot/blob/master/modules/roulette.py
# ported to kitnirc
import logging
import random
from kitnirc.modular import Module
from kitnirc.user import User
# get a logger for the module
# via the Python logging library.
_log = logging.getLogger(__name__)
# KitnIRC modules subclass kitnirc.modular.Module
class Roulette(Module):
"""A basic KitnIRC module responding to !r with some fun."""
def start(self, *args, **kwargs):
super(Roulette, self).start(*args, **kwargs)
self.gun_max_load = 6
self.gun_bullet_slot = random.randint(1, self.gun_max_load)
self.gun_current_slot = 0
# tell KitnIRC what events to route here
@Module.handle("PRIVMSG")
def bang(self, client, actor, recipient, message):
message = message.strip()
if "!r" in message:
_log.info("Responding to %r in %r", actor, recipient)
self.gun_current_slot = self.gun_current_slot + 1
if self.gun_current_slot == self.gun_max_load:
client.reply(recipient, actor, "im not gonna kill you this time... another try?")
self.gun_bullet_slot = random.randint(1, self.gun_max_load)
self.gun_current_slot = 0
if self.gun_current_slot == self.gun_bullet_slot:
if not isinstance(actor, User):
actor = User(actor)
client.msg(recipient, '*BANG*. {0} is lying on the floor'.format(actor.nick))
self.gun_bullet_slot = random.randint(1, self.gun_max_load)
self.gun_current_slot = 0
else:
client.msg(recipient, '*click* (slot {0})'.format(self.gun_current_slot))
# tell kitnirc that we handled this, no need to pass to other modules.
return True
# Let KitnIRC know what module class it should be loading.
module = Roulette