async def new_channel(self, ctx, limit: int = 0):
        """
        Creates a new voice channel.

        This command creates a new voice channel for the user
        to use with friends.
        They can specify how many people should be limited to the channel.
        """
        category = discord.utils.get(ctx.guild.categories,
                                     name='Private Channels')
        if category is None:
            await ctx.send("I couldn't find the required category, "
                           "please contact an admin.")
            return

        if Channel.where('creator_id', ctx.author.id).first():
            await ctx.send("You already have a channel! "
                           "If you believe this is an error then "
                           "please contact an admin.")
        else:
            channel = await ctx.guild.create_voice_channel(ctx.author.name +
                                                           "'s Channel",
                                                           category=category,
                                                           user_limit=limit)

            Channel.create(id=channel.id, creator_id=ctx.author.id, voice=True)

            await ctx.send("Successfully made you a new channel!")
示例#2
0
 def add_bot(self, channel, name):
     channel = channel.lower()
     name = name.lower()
     try:
         Bot.get(Bot.name == name)
     except peewee.DoesNotExist:
         pass  # this seems really unpythonic somehow
     else:
         raise KeyError('Bot already exists')
     try:
         chan_o = Channel.get(Channel.name == channel)
     except peewee.DoesNotExist:
         chan_o = Channel.create(name=channel)
     Bot.create(name=name,
                channel=chan_o)
示例#3
0
    def post(self):
        body = self.check_body(['title', 'base64_img'])
        logging.debug('called')
        try:
            channel = Channel.query(Channel.title == body['title']).get()
            logging.info(body)

            if channel:
                channel.put()
                self.response.out.write(channel.key.id())
            else:
                channel_id = Channel.create(title=body['title'],
                                            base64_img=body['base64_img'])
                self.response.out.write(channel_id)
        except ValueError as e:
            self.abort(code=404, detail=e.message)
示例#4
0
 def _initialize_channels_and_users(self):
   self.info('Loading channels and users...')
   channel_id_to_name_map, channel_name_to_id_map = \
       self.slack.channel_id_name_maps()
   with self.database_manager.transaction():
     for k, v in channel_id_to_name_map.items():
       is_direct = True if k.startswith('D0') else False
       try:
         channel = Channel.get(
             Channel.slack_id == k
         )
         channel.slack_name = v
         channel.is_direct = is_direct
         channel.save()
       except Channel.DoesNotExist:
         channel = Channel.create(
             slack_name=v,
             slack_id=k,
             is_direct=is_direct
         )
       except Exception as e:
         self.error(e)
       channel_members = self.slack.channel_members(channel.slack_name)
       for channel_member in channel_members:
         is_slackbot = True if channel_member[1] == 'USLACKBOT' else False
         try:
           user = User.get(
               User.slack_name == channel_member[1],
               User.slack_id == channel_member[0],
               User.is_slackbot == is_slackbot
           )
         except User.DoesNotExist:
           user = User.create(
               slack_name=channel_member[1],
               slack_id=channel_member[0],
               is_slackbot=is_slackbot
           )
         except Exception as e:
           self.error(e)
         try:
           ChannelUserRelationship.create(
               channel=channel,
               user=user
           )
         except:
           pass
示例#5
0
 def _initialize_channels_and_users(self):
     self.info('Loading channels and users...')
     self.known_slack_channel_ids = []
     self.known_slack_user_ids = []
     with self.database_manager.transaction():
         for key, value in self.channel_id_to_name_map.items():
             is_direct = True if key.lower().startswith('d0') else False
             try:
                 channel = Channel.get(Channel.slack_id == key)
                 channel.slack_name = value
                 channel.is_direct = is_direct
                 channel.save()
             except Channel.DoesNotExist:
                 is_subscribed = True if value.lower(
                 ) == 'uslackbot' else False
                 channel = Channel.create(slack_name=value,
                                          slack_id=key,
                                          is_direct=is_direct,
                                          is_subscribed=is_subscribed)
             except Exception as error:
                 self.error(error)
                 continue
             self.known_slack_channel_ids.append(channel.slack_id)
             self.info(channel)
             channel_members = self.slack.channel_members(
                 channel.slack_name)
             for channel_member in channel_members:
                 try:
                     user = User.get(User.slack_id == channel_member[0])
                     user.slack_name = channel_member[1]
                     user.save()
                 except User.DoesNotExist:
                     user = User.create(slack_name=channel_member[1],
                                        slack_id=channel_member[0])
                 except Exception as error:
                     self.error(error)
                 try:
                     ChannelUserRelationship.create(channel=channel,
                                                    user=user)
                 except Exception:
                     pass
                 self.known_slack_user_ids.append(user.slack_id)
                 self.info(user)