def __init__(self, config): super(Client, self).__init__() self.config = config self.events = Emitter() self.packets = Emitter() self.api = APIClient(self.config.token, self) self.gw = GatewayClient(self, self.config.max_reconnects, self.config.encoder) self.state = State(self, StateConfig(self.config.get('state', {}))) if self.config.manhole_enable: self.manhole_locals = { 'client': self, 'state': self.state, 'api': self.api, 'gw': self.gw, } self.manhole = DiscoBackdoorServer( self.config.manhole_bind, banner='Disco Manhole', localf=lambda: self.manhole_locals) self.manhole.start()
def __init__(self, config): self.config = config self.client = APIClient(config.token) self.shards = {} self.config.shard_count = self.client.gateway_bot_get()['shards'] if self.config.shard_count > 1: self.config.shard_count = 10
def main(): # Initialize the client print("Starting up...") # client = discord.Client() client = APIClient(settings.BOT_TOKEN) # Define event handlers for the client # on_ready may be called multiple times in the event of a reconnect, # hence the running flag @client.event async def on_ready(): if this.running: return this.running = True # Set the playing status if settings.NOW_PLAYING: print("Setting NP game", flush=True) await client.change_presence(game=discord.Game( name=settings.NOW_PLAYING)) print("Logged in!", flush=True) # Load all events print("Loading events...", flush=True) n_ev = 0 for ev in BaseEvent.__subclasses__(): event = ev() sched.add_job(event.run, 'interval', (client, ), minutes=event.interval_minutes) n_ev += 1 sched.start() print(f"{n_ev} events loaded", flush=True) # The message handler for both new message and edits async def common_handle_message(message): text = message.content if text.startswith( settings.COMMAND_PREFIX) and text != settings.COMMAND_PREFIX: cmd_split = text[len(settings.COMMAND_PREFIX):].split() try: await message_handler.handle_command(cmd_split[0].lower(), cmd_split[1:], message, client) except: print("Error while handling message", flush=True) raise @client.event async def on_message(message): await common_handle_message(message) @client.event async def on_message_edit(before, after): await common_handle_message(after) # Finally, set the bot running client.run(settings.BOT_TOKEN)
def __init__(self, settings, client=None, max_channels_per_category=50): """Accepts Django settings object and optional Discord APIClient (for testing).""" self._client = client or APIClient(settings.DISCORD_API_TOKEN) self._guild_id = settings.DISCORD_GUILD_ID self._puzzle_category_name = settings.DISCORD_PUZZLE_CATEGORY self._archived_category_name = settings.DISCORD_ARCHIVE_CATEGORY self._puzzle_announcements_id = settings.DISCORD_PUZZLE_ANNOUNCEMENTS_CHANNEL self._max_channels_per_category = max_channels_per_category
def execute_url(cls, url, **kwargs): from disco.api.client import APIClient results = WEBHOOK_URL_RE.findall(url) if len(results) != 1: return Exception('Invalid Webhook URL') return cls(id=results[0][0], token=results[0][1]).execute(client=APIClient(None), **kwargs)
def __init__(self): self.client = None self.avatars = {} if self.TOKEN and not settings.IS_TEST: self.client = APIClient(self.TOKEN) members = self.client.guilds_members_list(self.GUILD).values() for member in members: self.avatars[member.user.username] = member.user.avatar_url for member in members: self.avatars[member.name] = member.user.avatar_url
def guild_delete(guild): if not g.user.admin: return '', 401 from disco.api.client import APIClient client = APIClient(current_app.config['token']) client.users_me_guilds_delete(guild.guild_id) guild.enabled = False guild.save() return '', 204
def __init__(self, settings, client=None, max_channels_per_category=50): """Accepts Django settings object and optional Discord APIClient (for testing).""" self._client = client or APIClient(settings.DISCORD_API_TOKEN) self._max_channels_per_category = max_channels_per_category
def __init__(self): self.client = None self.avatars = None if self.TOKEN and not settings.IS_TEST: self.client = APIClient(self.TOKEN)
def __init__(self): self.api = APIClient(settings.DISCORD_BOT_TOKEN) self.guild = self.api.http(Routes.USERS_ME_GUILDS_LIST).json()[0]
def create_client(): return APIClient(env("DISCORD_TOKEN", default=""))