Пример #1
0
 async def remove(self, ctx, subject=None, id: int = None):
     """Remove review from DB. User is just allowed to remove his own review
     For admin it is possible to use 'id' as subject shorcut and delete review by its ID
     """
     if not await self.check_member(ctx):
         return
     if subject is None:
         if utils.is_bot_admin(ctx):
             await ctx.send(messages.review_remove_format_admin)
         else:
             await ctx.send(messages.review_remove_format)
     elif subject == "id":
         if utils.is_bot_admin(ctx):
             if id is None:
                 await ctx.send(messages.review_remove_id_format)
             else:
                 review_repo.remove(id)
                 await ctx.send(messages.review_remove_success)
         else:
             await ctx.send(utils.fill_message("insufficient_rights", user=ctx.author.id))
     else:
         subject = subject.lower()
         if self.rev.remove(str(ctx.message.author.id), subject):
             await ctx.send(messages.review_remove_success)
         else:
             await ctx.send(messages.review_remove_error)
Пример #2
0
 def remove(self, author, subject):
     """Remove review from DB"""
     result = review_repo.get_review_by_author_subject(author, subject)
     if result:
         review_repo.remove(result.id)
         return True
     else:
         return False
Пример #3
0
 async def reviews(self, ctx, subcommand=None, subject=None,
                   tier: int = None, *args):
     if subcommand is None:
         await ctx.send(messages.review_format)
     else:
         for role in ctx.message.author.roles:
             if "MUNI" == role.name or "Host" == role.name:
                 await ctx.send(messages.review_add_denied.format(
                                user=ctx.message.author.mention))
                 return
         if subcommand == 'add':
             if subject is None or tier is None:
                 await ctx.send(messages.review_add_format)
                 return
             author = ctx.message.author.id
             anonym = False
             if tier < 0 or tier > 4:
                 await ctx.send(messages.review_tier)
                 return
             if args:
                 if args[0] == "anonym":
                     anonym = True
                     args = args[1:]
                 args = ' '.join(args)
             args_len = len(args)
             if args_len == 0:
                 args = None
             try:
                 self.rev.add_review(author, subject, tier, anonym, args)
             except:
                 await ctx.send(messages.review_wrong_subject)
                 return
             await ctx.send(messages.review_added)
         elif subcommand == 'remove':
             if subject is None:
                 await ctx.send(messages.review_remove_format)
             elif subject == 'id':
                 if ctx.author.id == config.admin_id:
                     if tier is None:
                         await ctx.send(messages.review_remove_id_format)
                     else:
                         review_repo.remove(tier)
                         await ctx.send(messages.review_remove_success)
                 else:
                     await ctx.send(messages.insufficient_rights.format(
                             user=utils.generate_mention(ctx.author.id)))
             else:
                 if self.rev.remove(str(ctx.message.author.id), subject):
                     await ctx.send(messages.review_remove_success)
                 else:
                     await ctx.send(messages.review_remove_error)
         else:
             subject = subcommand
             embed = self.rev.list_reviews(subject.lower())
             if not embed:
                 await ctx.send(messages.review_wrong_subject)
                 return
             msg = await ctx.send(embed=embed)
             if msg.embeds[0].description[-1].isnumeric():
                 await msg.add_reaction("⏪")
                 await msg.add_reaction("◀")
                 await msg.add_reaction("▶")
                 await msg.add_reaction("👍")
                 await msg.add_reaction("🛑")
                 await msg.add_reaction("👎")
                 if msg.embeds[0].fields[3].name == "Text page":
                     await msg.add_reaction("🔼")
                     await msg.add_reaction("🔽")
Пример #4
0
 async def reviews(self,
                   ctx,
                   subcommand=None,
                   subject=None,
                   tier: int = None,
                   *args):
     if subcommand is None:
         await ctx.send(messages.review_format)
     else:
         if isinstance(ctx.message.channel, discord.DMChannel):
             guild = self.bot.get_guild(config.guild_id)
             roles = guild.get_member(ctx.message.author.id).roles
         else:
             roles = ctx.message.author.roles
         if subcommand == 'add':
             for role in roles:
                 if role.name in config.reviews_forbidden_roles:
                     await ctx.send(
                         messages.review_add_denied.format(
                             user=ctx.message.author.mention))
                     return
             if subject is None or tier is None:
                 await ctx.send(messages.review_add_format)
                 return
             author = ctx.message.author.id
             anonym = False
             if tier < 0 or tier > 4:
                 await ctx.send(messages.review_tier)
                 return
             if args:
                 if args[0] == "anonym":
                     anonym = True
                     args = args[1:]
                 args = ' '.join(args)
             args_len = len(args)
             if args_len == 0:
                 args = None
             try:
                 self.rev.add_review(author, subject, tier, anonym, args)
             except:
                 await ctx.send(messages.review_wrong_subject)
                 return
             await ctx.send(messages.review_added)
         elif subcommand == 'remove':
             if subject is None:
                 await ctx.send(messages.review_remove_format)
             elif subject == 'id':
                 if ctx.author.id == config.admin_id:
                     if tier is None:
                         await ctx.send(messages.review_remove_id_format)
                     else:
                         review_repo.remove(tier)
                         await ctx.send(messages.review_remove_success)
                 else:
                     await ctx.send(
                         messages.insufficient_rights.format(
                             user=utils.generate_mention(ctx.author.id)))
             else:
                 if self.rev.remove(str(ctx.message.author.id), subject):
                     await ctx.send(messages.review_remove_success)
                 else:
                     await ctx.send(messages.review_remove_error)
         else:
             subject = subcommand
             embed = self.rev.list_reviews(subject.lower())
             if not embed:
                 await ctx.send(messages.review_wrong_subject)
                 return
             msg = await ctx.send(embed=embed)
             footer = msg.embeds[0].footer.text.split('|')[0]
             if msg.embeds[0].description[-1].isnumeric():
                 if footer != "Review: 1/1 ":
                     await msg.add_reaction("⏪")
                     await msg.add_reaction("◀")
                     await msg.add_reaction("▶")
                 await msg.add_reaction("👍")
                 await msg.add_reaction("🛑")
                 await msg.add_reaction("👎")
                 if msg.embeds[0].fields[3].name == "Text page":
                     await msg.add_reaction("🔼")
                     await msg.add_reaction("🔽")