当前位置: 首页>>代码示例>>Python>>正文


Python HandlerManager.trigger方法代码示例

本文整理汇总了Python中pajbot.models.handler.HandlerManager.trigger方法的典型用法代码示例。如果您正苦于以下问题:Python HandlerManager.trigger方法的具体用法?Python HandlerManager.trigger怎么用?Python HandlerManager.trigger使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在pajbot.models.handler.HandlerManager的用法示例。


在下文中一共展示了HandlerManager.trigger方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: roulette

# 需要导入模块: from pajbot.models.handler import HandlerManager [as 别名]
# 或者: from pajbot.models.handler.HandlerManager import trigger [as 别名]
    def roulette(self, **options):
        message = options['message']
        user = options['source']
        bot = options['bot']

        try:
            bet = int(message.split(' ')[0])
        except (ValueError, TypeError, AttributeError):
            bot.whisper(user.username, 'I didn\'t recognize your bet! Usage: !roulette 150 to bet 150 points')
            return False

        if bet > user.points:
            bot.whisper(user.username, 'You don\'t have enough points to do a roulette for {} points :('.format(bet))
            return False

        if bet < self.settings['min_roulette_amount']:
            bot.whisper(user.username, 'You have to bet at least {} point! :('.format(self.settings['min_roulette_amount']))
            return False

        # Calculating the result
        result = self.rigged_random_result()
        points = bet if result else -bet
        user.points += points

        if points > 0:
            bot.me('{0} won {1} points in roulette! FeelsGoodMan'.format(user.username_raw, bet))
        else:
            bot.me('{0} lost {1} points in roulette! FeelsBadMan'.format(user.username_raw, bet))

        HandlerManager.trigger('on_roulette_finish', user, points)
开发者ID:Cophy08,项目名称:pajbot,代码行数:32,代码来源:roulette.py

示例2: create_stream

# 需要导入模块: from pajbot.models.handler import HandlerManager [as 别名]
# 或者: from pajbot.models.handler.HandlerManager import trigger [as 别名]
    def create_stream(self, status):
        log.info('Attempting to create a stream!')
        with DBManager.create_session_scope(expire_on_commit=False) as db_session:
            stream_chunk = db_session.query(StreamChunk).filter_by(broadcast_id=status['broadcast_id']).one_or_none()
            new_stream = False
            if stream_chunk is not None:
                stream = stream_chunk.stream
            else:
                log.info('checking if there is an active stream already')
                stream = db_session.query(Stream).filter_by(ended=False).order_by(Stream.stream_start.desc()).first()
                new_stream = stream is None

                if new_stream:
                    log.info('No active stream, create new!')
                    stream = Stream(status['created_at'],
                            title=status['title'])
                    db_session.add(stream)
                    db_session.commit()
                    log.info('Successfully added stream!')
                stream_chunk = StreamChunk(stream, status['broadcast_id'], status['created_at'])
                db_session.add(stream_chunk)
                db_session.commit()
                stream.stream_chunks.append(stream_chunk)
                log.info('Created stream chunk')

            self.current_stream = stream
            self.current_stream_chunk = stream_chunk
            db_session.expunge_all()

            if new_stream:
                HandlerManager.trigger('on_stream_start', stop_on_false=False)

            log.info('Successfully created a stream')
开发者ID:kyroskoh,项目名称:pajbot,代码行数:35,代码来源:stream.py

示例3: award_tokens

# 需要导入模块: from pajbot.models.handler import HandlerManager [as 别名]
# 或者: from pajbot.models.handler.HandlerManager import trigger [as 别名]
    def award_tokens(self, tokens, redis=None, force=False):
        """ Returns True if tokens were awarded properly.
        Returns False if not.
        Tokens can only be rewarded once per stream ID.
        """

        streamer = StreamHelper.get_streamer()
        stream_id = StreamHelper.get_current_stream_id()

        if stream_id is False:
            return False

        if redis is None:
            redis = RedisManager.get()

        key = '{streamer}:{username}:tokens'.format(
                streamer=streamer, username=self.username)

        if force:
            res = True
            redis.hset(key, stream_id, tokens)
        else:
            res = True if redis.hsetnx(key, stream_id, tokens) == 1 else False
            if res is True:
                HandlerManager.trigger('on_user_gain_tokens', self, tokens)
        return res
开发者ID:kyroskoh,项目名称:pajbot,代码行数:28,代码来源:user.py

示例4: roulette

# 需要导入模块: from pajbot.models.handler import HandlerManager [as 别名]
# 或者: from pajbot.models.handler.HandlerManager import trigger [as 别名]
    def roulette(self, **options):
        message = options['message']
        user = options['source']
        bot = options['bot']

        try:
            bet = int(message.split(' ')[0])
        except (ValueError, TypeError, AttributeError):
            bot.me('Sorry, {0}, I didn\'t recognize your bet! FeelsBadMan'.format(user.username_raw))
            return False

        if bet > user.points:
            bot.me('Sorry, {0}, you don\'t have enough points! FeelsBadMan'.format(user.username_raw))
            return False

        if bet <= 0:
            bot.me('Sorry, {0}, you have to bet at least 1 point! FeelsBadMan'.format(user.username_raw))
            return False

        # Calculating the result
        result = self.rigged_random_result()
        points = bet if result else -bet
        user.points += points

        if points > 0:
            bot.me('{0} won {1} points in roulette! FeelsGoodMan'.format(user.username_raw, bet))
        else:
            bot.me('{0} lost {1} points in roulette! FeelsBadMan'.format(user.username_raw, bet))

        HandlerManager.trigger('on_roulette_finish', user, points)
开发者ID:ManikDV,项目名称:pajbot,代码行数:32,代码来源:roulette.py

示例5: paid_timeout

# 需要导入模块: from pajbot.models.handler import HandlerManager [as 别名]
# 或者: from pajbot.models.handler.HandlerManager import trigger [as 别名]
    def paid_timeout(self, **options):
        message = options['message']
        bot = options['bot']
        source = options['source']

        _time = self.settings['timeout_length']
        _cost = self.settings['cost']

        if message is None or len(message) == 0:
            return False

        username = message.split(' ')[0]
        if len(username) < 2:
            return False

        victim = bot.users.find(username)
        if victim is None:
            bot.whisper(source.username, 'This user does not exist FailFish')
            return False

        """
        if victim == source:
            bot.whisper(source.username, 'You can\'t timeout yourself FailFish')
            return False
            """

        if victim.moderator is True:
            bot.whisper(source.username, 'This person has mod privileges, timeouting this person is not worth it.')
            return False

        if victim.level >= self.settings['bypass_level']:
            bot.whisper(source.username, 'This person\'s user level is too high, you can\'t timeout this person.')
            return False

        now = datetime.datetime.now()
        if victim.timed_out is True and victim.timeout_end > now:
            victim.timeout_end += datetime.timedelta(seconds=_time)
            bot.whisper(victim.username, '{victim.username}, you were timed out for an additional {time} seconds by {source.username}'.format(
                victim=victim,
                source=source,
                time=_time))
            bot.whisper(source.username, 'You just used {0} points to time out {1} for an additional {2} seconds.'.format(_cost, username, _time))
            num_seconds = int((victim.timeout_end - now).total_seconds())
            bot._timeout(username, num_seconds)
        else:
            bot.whisper(source.username, 'You just used {0} points to time out {1} for {2} seconds.'.format(_cost, username, _time))
            bot.whisper(username, '{0} just timed you out for {1} seconds. /w {2} !$unbanme to unban yourself for points forsenMoney'.format(source.username, _time, bot.nickname))
            bot._timeout(username, _time)
            victim.timed_out = True
            victim.timeout_start = now
            victim.timeout_end = now + datetime.timedelta(seconds=_time)

        payload = {'user': source.username, 'victim': victim.username}
        bot.websocket_manager.emit('timeout', payload)
        HandlerManager.trigger('on_paid_timeout',
                source, victim, _cost,
                stop_on_false=False)
开发者ID:SanderVDA,项目名称:pajbot,代码行数:59,代码来源:paidtimeout.py

示例6: commit_all

# 需要导入模块: from pajbot.models.handler import HandlerManager [as 别名]
# 或者: from pajbot.models.handler.HandlerManager import trigger [as 别名]
    def commit_all(self):
        log.info('Commiting all...')
        for key, manager in self.commitable.items():
            log.info('Commiting {0}'.format(key))
            manager.commit()
            log.info('Done with {0}'.format(key))
        log.info('ok!')

        HandlerManager.trigger('on_commit', stop_on_false=False)
开发者ID:ManikDV,项目名称:pajbot,代码行数:11,代码来源:bot.py

示例7: on_message

# 需要导入模块: from pajbot.models.handler import HandlerManager [as 别名]
# 或者: from pajbot.models.handler.HandlerManager import trigger [as 别名]
 def on_message(self, source, msg_raw, message_emotes, whisper, urls):
     if len(message_emotes) > 0:
         if hasattr(self, 'bingo_running') and self.bingo_running is True:
             if len(message_emotes) == 1 and len(msg_raw.split(' ')) == 1:
                 if message_emotes[0]['code'] == self.bingo_target:
                     HandlerManager.trigger('on_bingo_win', source, self.bingo_points, self.bingo_target)
                     self.bingo_running = False
                     self.bingo_bttv_twitch_running = False
                     self.bot.me('{0} won the bingo! {1} was the target. Congrats, {2} points to you PogChamp'.format(source.username_raw, self.bingo_target, self.bingo_points))
                     source.points += self.bingo_points
                     log.info('{0} won the bingo for {1} points!'.format(source.username_raw, self.bingo_points))
开发者ID:ManikDV,项目名称:pajbot,代码行数:13,代码来源:bingo.py

示例8: accept_duel

# 需要导入模块: from pajbot.models.handler import HandlerManager [as 别名]
# 或者: from pajbot.models.handler.HandlerManager import trigger [as 别名]
    def accept_duel(self, **options):
        """
        Accepts any active duel requests you've received.

        How to add: !add funccommand accept accept_duel --cd 0 --usercd 0
        How to use: !accept
        """

        bot = options['bot']
        source = options['source']

        init_dueling_variables(source)
        duel_tax = 0.3  # 30% tax

        if source.duel_request is not False:
            if source.points < source.duel_price or source.duel_request.points < source.duel_price:
                bot.whisper(source.username, 'Your duel request with {} was cancelled due to one of you not having enough points.'.format(source.duel_request.username_raw))
                bot.whisper(source.duel_request.username, 'Your duel request with {} was cancelled due to one of you not having enough points.'.format(source.username_raw))
                source.duel_request.duel_target = False
                source.duel_request = False
                return False
            source.points -= source.duel_price
            source.duel_request.points -= source.duel_price
            winning_pot = int(source.duel_price * (1.0 - duel_tax))
            participants = [source, source.duel_request]
            winner = random.choice(participants)
            participants.remove(winner)
            loser = participants.pop()
            winner.points += source.duel_price
            winner.points += winning_pot

            bot.duel_manager.user_won(winner, winning_pot)
            bot.duel_manager.user_lost(loser, source.duel_price)

            arguments = {
                    'winner': winner.username,
                    'loser': loser.username,
                    'total_pot': source.duel_price,
                    'extra_points': winning_pot,
                    }

            if source.duel_price > 0:
                message = self.get_phrase('message_won_points', **arguments)
                bot.websocket_manager.emit('notification', {'message': '{} won the duel vs {}'.format(winner.username_raw, loser.username_raw)})
            else:
                message = self.get_phrase('message_won', **arguments)
            bot.say(message)
            source.duel_request.duel_target = False
            source.duel_request = False
            source.duel_price = 0
            HandlerManager.trigger('on_duel_complete',
                    winner, loser,
                    winning_pot, source.duel_price)
开发者ID:Cophy08,项目名称:pajbot,代码行数:55,代码来源:duel.py

示例9: roulette

# 需要导入模块: from pajbot.models.handler import HandlerManager [as 别名]
# 或者: from pajbot.models.handler.HandlerManager import trigger [as 别名]
    def roulette(self, **options):
        if self.settings['only_roulette_after_sub']:
            if self.last_sub is None:
                return False
            if datetime.datetime.now() - self.last_sub > datetime.timedelta(seconds=self.settings['after_sub_roulette_time']):
                return False

        message = options['message']
        user = options['source']
        bot = options['bot']

        if message is None:
            bot.whisper(user.username, 'I didn\'t recognize your bet! Usage: !roulette 150 to bet 150 points')
            return False

        msg_split = message.split(' ')
        if msg_split[0].lower() in ('all', 'allin'):
            bet = user.points_available()
        else:
            try:
                bet = int(message.split(' ')[0])
            except (ValueError, TypeError):
                bot.whisper(user.username, 'I didn\'t recognize your bet! Usage: !roulette 150 to bet 150 points')
                return False

        if not user.can_afford(bet):
            bot.whisper(user.username, 'You don\'t have enough points to do a roulette for {} points :('.format(bet))
            return False

        if bet < self.settings['min_roulette_amount']:
            bot.whisper(user.username, 'You have to bet at least {} point! :('.format(self.settings['min_roulette_amount']))
            return False

        # Calculating the result
        result = self.rigged_random_result()
        points = bet if result else -bet
        user.points += points

        with DBManager.create_session_scope() as db_session:
            r = Roulette(user.id, points)
            db_session.add(r)

        if points > 0:
            bot.me('{0} won {1} points in roulette and now has {2} points! FeelsGoodMan'.format(user.username_raw, bet, user.points_available()))
        else:
            bot.me('{0} lost {1} points in roulette and now has {2} points! FeelsBadMan'.format(user.username_raw, bet, user.points_available()))

        HandlerManager.trigger('on_roulette_finish', user, points)
开发者ID:kyroskoh,项目名称:pajbot,代码行数:50,代码来源:roulette.py

示例10: go_offline

# 需要导入模块: from pajbot.models.handler import HandlerManager [as 别名]
# 或者: from pajbot.models.handler.HandlerManager import trigger [as 别名]
    def go_offline(self):
        with DBManager.create_session_scope(expire_on_commit=False) as db_session:
            self.current_stream.ended = True
            self.current_stream.stream_end = self.first_offline
            self.current_stream_chunk.chunk_end = self.first_offline

            db_session.add(self.current_stream)
            db_session.add(self.current_stream_chunk)

            db_session.commit()

            db_session.expunge_all()

        self.last_stream = self.current_stream
        self.current_stream = None
        self.current_stream_chunk = None

        HandlerManager.trigger('on_stream_stop', stop_on_false=False)
开发者ID:kyroskoh,项目名称:pajbot,代码行数:20,代码来源:stream.py

示例11: on_message

# 需要导入模块: from pajbot.models.handler import HandlerManager [as 别名]
# 或者: from pajbot.models.handler.HandlerManager import trigger [as 别名]
 def on_message(self, source, message, emotes, whisper, urls, event):
     if whisper is False and source.username in self.valid_usernames:
         # Did twitchnotify tell us about a new sub?
         m = self.new_sub_regex.search(message)
         if m:
             username = m.group(1)
             user = self.bot.users[username]
             self.on_new_sub(user)
             HandlerManager.trigger('on_user_sub', user)
         else:
             # Did twitchnotify tell us about a resub?
             m = self.resub_regex.search(message)
             if m:
                 username = m.group(1)
                 num_months = int(m.group(2))
                 user = self.bot.users[username]
                 self.on_resub(user, num_months)
                 HandlerManager.trigger('on_user_resub', user, num_months)
开发者ID:coral,项目名称:pajbot,代码行数:20,代码来源:subalert.py

示例12: end_raffle

# 需要导入模块: from pajbot.models.handler import HandlerManager [as 别名]
# 或者: from pajbot.models.handler.HandlerManager import trigger [as 别名]
    def end_raffle(bot, source, message, event, args):
        if not Dispatch.raffle_running:
            return False

        Dispatch.raffle_running = False

        if len(Dispatch.raffle_users) == 0:
            bot.me('Wow, no one joined the raffle DansGame')
            return False

        winner = random.choice(Dispatch.raffle_users)

        Dispatch.raffle_users = []

        bot.websocket_manager.emit('notification', {'message': '{} won {} points in the raffle!'.format(winner.username_raw, Dispatch.raffle_points)})
        bot.me('The raffle has finished! {0} won {1} points! PogChamp'.format(winner.username_raw, Dispatch.raffle_points))

        winner.points += Dispatch.raffle_points

        HandlerManager.trigger('on_raffle_win', winner, Dispatch.raffle_points)
开发者ID:carriercomm,项目名称:pajbot,代码行数:22,代码来源:dispatch.py

示例13: end_raffle

# 需要导入模块: from pajbot.models.handler import HandlerManager [as 别名]
# 或者: from pajbot.models.handler.HandlerManager import trigger [as 别名]
    def end_raffle(self):
        if not self.raffle_running:
            return False

        self.raffle_running = False

        if len(self.raffle_users) == 0:
            self.bot.me('Wow, no one joined the raffle DansGame')
            return False

        winner = random.choice(self.raffle_users)

        self.raffle_users = []

        self.bot.websocket_manager.emit('notification', {'message': '{} won {} points in the raffle!'.format(winner.username_raw, self.raffle_points)})
        self.bot.me('The raffle has finished! {0} won {1} points! PogChamp'.format(winner.username_raw, self.raffle_points))

        winner.points += self.raffle_points

        HandlerManager.trigger('on_raffle_win', winner, self.raffle_points)
开发者ID:ManikDV,项目名称:pajbot,代码行数:22,代码来源:raffle.py

示例14: on_pubmsg

# 需要导入模块: from pajbot.models.handler import HandlerManager [as 别名]
# 或者: from pajbot.models.handler.HandlerManager import trigger [as 别名]
    def on_pubmsg(self, chatconn, event):
        if event.source.user == self.nickname:
            return False

        # We use .lower() in case twitch ever starts sending non-lowercased usernames
        source = self.users[event.source.user.lower()]

        res = HandlerManager.trigger('on_pubmsg',
                source, event.arguments[0],
                stop_on_false=True)
        if res is False:
            return False

        self.parse_message(event.arguments[0], source, event, tags=event.tags)
开发者ID:ManikDV,项目名称:pajbot,代码行数:16,代码来源:bot.py

示例15: parse_message

# 需要导入模块: from pajbot.models.handler import HandlerManager [as 别名]
# 或者: from pajbot.models.handler.HandlerManager import trigger [as 别名]
    def parse_message(self, msg_raw, source, event, tags={}, whisper=False):
        msg_lower = msg_raw.lower()

        if source is None:
            log.error('No valid user passed to parse_message')
            return False

        if source.banned:
            self.ban(source.username)
            return False

        # If a user types when timed out, we assume he's been unbanned for a good reason and remove his flag.
        if source.timed_out is True:
            source.timed_out = False

        message_emotes = []
        for tag in tags:
            if tag['key'] == 'subscriber' and event.target == self.channel:
                if source.subscriber and tag['value'] == '0':
                    source.subscriber = False
                elif not source.subscriber and tag['value'] == '1':
                    source.subscriber = True
            elif tag['key'] == 'emotes' and tag['value']:
                emote_data = tag['value'].split('/')
                for emote in emote_data:
                    try:
                        emote_id, emote_occurrence = emote.split(':')
                        emote_indices = emote_occurrence.split(',')
                        emote_count = len(emote_indices)
                        emote = self.emotes[int(emote_id)]
                        first_index, last_index = emote_indices[0].split('-')
                        first_index = int(first_index)
                        last_index = int(last_index)
                        emote_code = msg_raw[first_index:last_index + 1]
                        if emote_code[0] == ':':
                            emote_code = emote_code.upper()
                        message_emotes.append({
                            'code': emote_code,
                            'twitch_id': emote_id,
                            'start': first_index,
                            'end': last_index,
                            })

                        tag_as = None
                        if emote_code.startswith('trump'):
                            tag_as = 'trump_sub'
                        elif emote_code.startswith('eloise'):
                            tag_as = 'eloise_sub'
                        elif emote_code.startswith('forsen'):
                            tag_as = 'forsen_sub'
                        elif emote_code.startswith('nostam'):
                            tag_as = 'nostam_sub'
                        elif emote_code.startswith('reynad'):
                            tag_as = 'reynad_sub'
                        elif emote_id in [12760, 35600, 68498, 54065, 59411, 59412, 59413, 62683, 70183, 70181, 68499, 70429, 70432, 71432, 71433]:
                            tag_as = 'massan_sub'

                        if tag_as is not None:
                            if source.tag_as(tag_as) is True:
                                self.execute_delayed(60 * 60 * 24, source.remove_tag, (tag_as, ))

                        if emote.id is None and emote.code is None:
                            # The emote we just detected is new, set its code.
                            emote.code = emote_code
                            if emote.code not in self.emotes:
                                self.emotes[emote.code] = emote

                        emote.add(emote_count, self.reactor)
                    except:
                        log.exception('Exception caught while splitting emote data')
            elif tag['key'] == 'display-name' and tag['value']:
                try:
                    source.update_username(tag['value'])
                except:
                    log.exception('Exception caught while updating a users username')
            elif tag['key'] == 'user-type':
                source.moderator = tag['value'] == 'mod' or source.username == self.streamer

        for emote in self.emotes.custom_data:
            num = 0
            for match in emote.regex.finditer(msg_raw):
                num += 1
                message_emotes.append({
                    'code': emote.code,
                    'bttv_hash': emote.emote_hash,
                    'start': match.span()[0],
                    'end': match.span()[1] - 1,  # don't ask me
                    })
            if num > 0:
                emote.add(num, self.reactor)

        urls = self.find_unique_urls(msg_raw)

        res = HandlerManager.trigger('on_message',
                source, msg_raw, message_emotes, whisper, urls,
                stop_on_false=True)
        if res is False:
            return False

        log.debug('{2}{0}: {1}'.format(source.username, msg_raw, '<w>' if whisper else ''))
#.........这里部分代码省略.........
开发者ID:ManikDV,项目名称:pajbot,代码行数:103,代码来源:bot.py


注:本文中的pajbot.models.handler.HandlerManager.trigger方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。