Esempio n. 1
0
async def argue(event: Event):
    if event.group_id in ENABLED_GROUPS:
        msg = Message(event.message).extract_plain_text()
        if random() <= 0.001:
            reply: Message = MessageSegment.at(
                event.user_id) + MessageSegment.text("{}个头".format(msg[0]))
            await bot.send(event, reply)
            logger.info("怼人了!({} -> 群号 {})".format(str(reply), event.group_id))
Esempio n. 2
0
    async def _send(self, to_chat: int, chat_type: ChatType, message: UnifiedMessage):
        """
        :return:
        """
        self.logger.debug('begin processing message')
        context = dict()
        if chat_type == ChatType.UNSPECIFIED:
            self.logger.warning(f'Sending to undefined group or chat {to_chat}')
            return

        context['message_type'] = f'{chat_type}'
        context['message'] = list()
        if message.image:
            image_name = os.path.basename(message.image)
            context['message'].append(MessageSegment.image(image_name))

        if (chat_type == ChatType.PRIVATE and self.config.NameforPrivateChat) or \
                (chat_type in (ChatType.GROUP, ChatType.DISCUSS) and self.config.NameforGroupChat):
            # name logic
            if message.chat_attrs.name:
                context['message'].append(MessageSegment.text(message.chat_attrs.name))
            if message.chat_attrs.reply_to:
                context['message'].append(MessageSegment.text(' (➡️️' + message.chat_attrs.reply_to.name + ')'))
            if message.chat_attrs.forward_from:
                context['message'].append(MessageSegment.text(' (️️↩️' + message.chat_attrs.forward_from.name + ')'))
            if message.chat_attrs.name:
                context['message'].append(MessageSegment.text(': '))

            # at user
            if message.send_action.user_id:
                context['message'].append(MessageSegment.at(message.send_action.user_id))
                context['message'].append(MessageSegment.text(' '))

        context['message'].append(MessageSegment.text(message.text))

        if chat_type == ChatType.PRIVATE:
            context['user_id'] = to_chat
        else:
            context[f'{chat_type}_id'] = to_chat
        self.logger.debug('finished processing message, ready to send')
        result = await self.bot.send(context, context['message'])
        if message.chat_attrs:
            set_egress_message_id(src_platform=message.chat_attrs.platform,
                                  src_chat_id=message.chat_attrs.chat_id,
                                  src_chat_type=message.chat_attrs.chat_type,
                                  src_message_id=message.chat_attrs.message_id,
                                  dst_platform=self.name,
                                  dst_chat_id=to_chat,
                                  dst_chat_type=chat_type,
                                  dst_message_id=result.get('message_id'),
                                  user_id=self.config.Account)
        self.logger.debug('finished sending')
        return result.get('message_id')
Esempio n. 3
0
async def todo_add(session: CommandSession):
    seconds = session.get('seconds')  # unit: s
    something = session.get('something')
    o_time = session.get('o_time')

    user_id = session.ctx.get('user_id')

    delta = datetime.timedelta(seconds=seconds)

    trigger = DateTrigger(run_date=datetime.datetime.now() + delta)

    something = MessageSegment.at(user_id) + ' ' + something

    scheduler.add_job(func=session.send,
                      trigger=trigger,
                      args=(something, ),
                      misfire_grace_time=60)

    await session.send(f'好的,我会在{o_time}提醒你{something}')
Esempio n. 4
0
async def redb(bot: Bot, event: LuckyKingNotifyEvent):
    atmsg = MessageSegment.at(event.target_id)
    await bot.send(
        event=event,
        message=atmsg + '恭喜你是运气王,请立即红包接力,不要不识好歹',
    )