Esempio n. 1
0
async def era_welcome1(bot: Bot, usr_id: int, ctx: Context, react: Emoji,
                       arg: list):
    nozoki_role = ctx.guild.get_role(
        (int(bot.config[str(ctx.guild.id)]["role_ids"]["nozoki"])))
    member = ctx.guild.get_member(usr_id)
    usr = bot.get_user(usr_id)
    embed = me.MyEmbed().setTarget(target=ctx.channel, bot=bot)
    if bool(nozoki_role) & bool(member):
        if str(react) == "🍌":
            if usr in ctx.message.mentions:
                await member.add_roles(nozoki_role)
                await ctx.message.delete()
                invite = bot.config[str(ctx.guild.id)].get("rules_channel")
                desc_r = str()
                if invite:
                    desc_r = f"サーバの詳細はこちらで確認ください\r{invite}"
                embed.default_embed(
                    header_icon=ctx.guild.icon_url,
                    header="有難うございますd(゚Д゚ )",
                    footer="ありがとうめっせいじ",
                    footer_arg=EMBED2_IDENTIFIER,
                    description=
                    f"\r公開チャンネルが見れるようになりました\r☆-(ノ゚Д゚)八(゚Д゚ )ノイエーイ\r{desc_r}",
                )
                await embed.sendEmbed(
                    bottoms=["☑"],
                    greeting=f"{usr.mention}",
                    dust=False,
                )
    else:
        raise extentions.GetDatafromDiscordError(
            f"Nozokiロールオブジェクトの取得に失敗しました。\r登録しているIDを確認してください({int(bot.config[str(ctx.guild.id)]['role_ids']['nozoki'])})"
        )
Esempio n. 2
0
 def __init__(self):
     super().__init__()
     self.no_category_name = "Help"  # カテゴリが見つからなかった場合のカテゴリ
     self.command_attrs["description"] = "このメッセージを表示"
     self.command_attrs["help"] = "このBOTのヘルプコマンドです。"
     self.command_attrs["aliases"] = [
         "ヘルプ",
         "へるぷ",
         "h",
         "h",
         "コマンド",
         "こまんど",
         "cmd",
         "へ",
     ]
     self.dfembed = me.MyEmbed().default_embed(
         mention_author=True,
         footer="ℹ操作ガイド",
         footer_arg=EMBED_IDENTIFIER,
         time=False,
         footer_icon=True,
         dust=True,
     )
     self.counts = [
         "1️⃣",
         "2️⃣",
         "3️⃣",
         "4️⃣",
         "5️⃣",
         "6️⃣",
         "7️⃣",
         "8️⃣",
         "9️⃣",
         "🔟",
     ]
Esempio n. 3
0
 async def on_member_join(self, member: Member):
     if member.bot:
         return
     welcome_room = self.bot.get_channel(
         int(self.bot.config[str(
             member.guild.id)]["channel_ids"]["welcome"]))
     if welcome_room:
         opt = me.MyEmbed().setTarget(target=welcome_room, bot=self.bot)
         oyakusoku = (
             "```無許可の宣伝‍\r他人を傷付ける発言```は禁止です他でおやりなさい🙅‍\r同意されたら↓貴方のBananaをpush!"
         )
         opt.default_embed(
             header="はじめまして、ボットです",
             header_icon=True,
             description="ようこそ猿sのディスコード鯖へ🍌",
             footer="入る前に",
             footer_arg=EMBED1_IDENTIFIER,
         )
         opt.add(name="注意事項🤞", value=oyakusoku)
         await opt.sendEmbed(
             greeting="ようこそ!",
             mention=str(member.mention),
             dust=False,
             bottoms="🍌",
         )
     else:
         raise extentions.GetDatafromDiscordError(
             f"Welcomeチャンネルオブジェクトの取得に失敗しました。\r登録しているIDを確認してください({self.welcome_room_id})"
         )
Esempio n. 4
0
 def __init__(self, bot: Bot):
     self.teams = {}
     self.bot = bot
     self.ctx = Context
     self.size = 5
     self.now = int()
     self.dembed = me.MyEmbed()
     self.cid = int()
Esempio n. 5
0
 async def view(self, ctx: Context):
     """
     登録されている語句が表示されます
     """
     if ctx.invoked_subcommand is None:
         embed = me.MyEmbed(ctx)
         self.view_titles_toembed(embed, t=self.db_cat, title="YokoYari")
         self.view_titles_toembed(embed, t=self.db_cmd, title="Phrase")
         await embed.sendEmbed(mention=ctx.author.mention)
 async def on_member_remove(self, member: Member):
     if member.bot:
         return
     leave_notice_room = self.bot.get_channel(
         int(self.bot.config[str(
             member.guild.id)]["channel_ids"]["leave_notice"]))
     opt = me.MyEmbed().setTarget(target=leave_notice_room, bot=self.bot)
     opt.default_embed(
         footer="サーバー脱退通知",
         header_icon=str(member.avatar_url),
         header=f"{member.name}",
         description=f"が脱退しました。\rUserID: {member.mention}",
         dust=False,
     )
     await opt.sendEmbed()
Esempio n. 7
0
 async def pins(self, ctx: Context):
     myembed = me.MyEmbed(ctx)
     myembed.default_embed(mention_author=True, dust=False)
     pins = await ctx.channel.pins()
     if pins:
         count = 1
         for ms in pins:
             image_url = str()
             if ms.embeds:
                 for embed in ms.embeds:
                     myembed.import_embed(embed)
                     myembed.change(footer=f"📌ピン留め表示 {count}/{len(pins)}", )
                     await myembed.sendEmbed()
             else:
                 if ms.attachments and ms.attachments[0].proxy_url:
                     image_url = ms.attachments[0].proxy_url
                 myembed.default_embed(
                     footer=f"📌ピン留め表示 {count}/{len(pins)}",
                     header=f"{ms.author.display_name}",
                     header_icon=str(ms.author.avatar_url),
                     time=ms.created_at,
                     image_url=image_url,
                     description=ms.content,
                 )
                 await myembed.sendEmbed()
             count += 1
     else:
         myembed = me.MyEmbed(ctx)
         myembed.default_embed(
             footer="📌ピン留め表示",
             title="ピン留めが見つかりませんでした",
             description="**このチャンネルにピン留めは無い様(*゚∀゚)ゞデシ**",
             mention_author=True,
             time=False,
         )
         await myembed.sendEmbed()
 async def on_member_update(self, before, after):
     br = set(before.roles)
     ar = set(after.roles)
     dif = len(br) - len(ar)
     if dif != 0:
         room = self.bot.get_channel(
             int(self.bot.config[str(
                 after.guild.id)]["channel_ids"]["room"]))
         opt = me.MyEmbed().setTarget(target=room, bot=self.bot)
         conf = list((br - ar) if len(br) > len(ar) else (ar - br))
         async for entry in after.guild.audit_logs(
                 action=AuditLogAction.member_role_update,
                 oldest_first=False):
             if entry.created_at > self.lastchecktime.replace(tzinfo=None):
                 if isinstance(entry.target, Member) | isinstance(
                         entry.target, User):
                     opt.default_embed(
                         footer="ロール変更通知",
                         header=f"{entry.user.name}により",
                         header_icon=str(entry.user.avatar_url),
                     )
                     nozoki = room.guild.get_role(
                         int(self.bot.config[str(
                             after.guild.id)]["role_ids"]["nozoki"]))
                     if conf[0] != nozoki:
                         if dif > 0:
                             conf = list(br - ar)
                             opt.change(
                                 description=
                                 f"「**{conf[0].name}**」のロールから除かれました",
                                 color=conf[0].color.value,
                             )
                         elif dif < 0:
                             conf = list(ar - br)
                             opt.change(
                                 description=
                                 f"「**{conf[0].name}**」のロールに加わりました",
                                 color=conf[0].color.value,
                             )
                         await opt.sendEmbed(
                             greeting=f"{after.mention}くん、ロール変更通知です")
     self.lastchecktime = datetime.now(utc)
Esempio n. 9
0
 async def serch(self, ctx: Context, name: str):
     g = ctx.guild
     opt = me.MyEmbed(ctx)
     opt.default_embed(mention_author=True, footer="🔎ロール検索")
     i = 0
     context = str()
     flag_find = True
     for (role, lastone) in mm.lastone(await g.fetch_roles()):
         if role.name == name:
             flag_find = False
             for m in role.members:
                 i += 1
                 context += f"{i} : {m.mention}\r"
             if context:
                 opt.add(name=f"🧻 {name} の猿ども", value=context, inline=False)
             else:
                 opt.add(name=f"🧻 {name} の猿ども",
                         value="は、居ませんでした😢",
                         inline=False)
         elif lastone & flag_find:
             opt.add(name=f"🧻 {name} なんてなかった",
                     value="そんなロールはござらん",
                     inline=False)
     await opt.sendEmbed()
Esempio n. 10
0
 async def send_error_message(self, error):
     embed = me.MyEmbed(self.context)
     embed.default_embed(header="ヘルプエラー",
                         title="help対象が見つかりませんでした",
                         description="入力を確認してもう一度お試しあれ")
     await embed.sendEmbed(greeting=f"{self.context.author.mention}")
Esempio n. 11
0
 async def view_phrase(self, ctx):
     embed = me.MyEmbed(ctx).default_embed(header="トリガープレビュー")
     await self.view_titles_toembed(embed, t=self.db_cmd, title="phrase")
     await embed.sendEmbed(greeting=ctx.author.mention)
Esempio n. 12
0
 async def view_cat(self, ctx):
     embed = me.MyEmbed(ctx)
     await self.view_titles_toembed(embed, t=self.db_cat, title="Reaction")
     await embed.sendEmbed(greeting=ctx.author.mention)
Esempio n. 13
0
 async def on_command_error(self, ctx: Context, error):
     if not (self.owner):
         self.owner = self.bot.get_user(self.bot.owner_id)
         if self.owner:
             self.__notice_owner_message = (
                 self.owner.mention + self.__notice_owner_message
             )
     cmd = str()
     embed = me.MyEmbed(ctx)
     try:
         cmd = ((str(error)).split('"', maxsplit=2))[1]
         result = self.db_cmd.tbselect(cmd)
         if result:
             await ctx.send(result[0].body)
             return
         else:
             dubleq = str(error).split('"')
             embed.default_embed(
                 footer=self.__error_fotter, title=self.__error_title
             )
             if dubleq:
                 if dubleq[0] == "Command " and dubleq[2] == " is not found":
                     # await ctx.message.add_reaction("‍🙅‍")
                     await ctx.message.add_reaction("❔")
                     return
                 else:
                     embed.add(
                         name=self.__undefine_error_title,
                         value=f"```{str(error)}```",
                         greeting=self.__notice_owner_message,
                     )
             else:
                 embed.add(
                     name=self.__undefine_error_title,
                     value=f"```{str(error)}```",
                     greeting=self.__notice_owner_message,
                 )
     except IndexError:
         embed.default_embed(
             footer=self.__error_fotter,
             title=self.__error_title,
             greeting=f"{ctx.author.mention}",
             time=False,
         )
         if "required argument that is missing." in str(error):
             string = f"{ctx.command}"
             # if ctx.invoked_subcommand:
             #     string = (ctx.invoked_subcommand).name
             # else:
             #     string = f"{ctx.command}"
             embed.change(
                 description=self.__missing_arg_message,
                 footer_arg=f"{EMBED_IDENTIFIER} {string}",
                 bottoms=[E_CH_REACTION_ACCEPT],
             )
         elif "You do not own this bot." in str(error):
             embed.change_description(self.__permission_message)
         elif "The check functions for command cmd failed." in str(error):
             embed.change_description(self.__permission_message)
         else:
             embed.add(
                 name=self.__undefine_error_title,
                 value=f"```{str(error)}```",
                 greeting=self.__notice_owner_message,
             )
     await embed.sendEmbed()