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!")
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)
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)
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
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)