mirror of
https://github.com/uhIgnacio/EmoteManager.git
synced 2024-08-15 02:23:13 +00:00
format and nextcord
This commit is contained in:
parent
3eaac0148d
commit
84c5276076
3 changed files with 679 additions and 645 deletions
120
bot.py
120
bot.py
|
@ -3,6 +3,8 @@
|
|||
# © lambda#0987 <lambda@lambda.dance>
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
import sys
|
||||
import asyncio
|
||||
import base64
|
||||
import logging
|
||||
import traceback
|
||||
|
@ -17,74 +19,78 @@ logger = logging.getLogger(__name__)
|
|||
logger.setLevel(logging.INFO)
|
||||
|
||||
# SelectorEventLoop on windows doesn't support subprocesses lol
|
||||
import asyncio
|
||||
import sys
|
||||
if sys.platform == 'win32':
|
||||
loop = asyncio.ProactorEventLoop()
|
||||
asyncio.set_event_loop(loop)
|
||||
loop = asyncio.ProactorEventLoop()
|
||||
asyncio.set_event_loop(loop)
|
||||
|
||||
|
||||
class Bot(Bot):
|
||||
startup_extensions = (
|
||||
'cogs.emote',
|
||||
'cogs.meta',
|
||||
'bot_bin.debug',
|
||||
'bot_bin.misc',
|
||||
'bot_bin.systemd',
|
||||
'jishaku',
|
||||
)
|
||||
startup_extensions = (
|
||||
'cogs.emote',
|
||||
'cogs.meta',
|
||||
'bot_bin.debug',
|
||||
'bot_bin.misc',
|
||||
'bot_bin.systemd',
|
||||
'jishaku',
|
||||
)
|
||||
|
||||
def __init__(self, **kwargs):
|
||||
with open('data/config.py', encoding='utf-8') as f:
|
||||
config = eval(f.read(), {})
|
||||
def __init__(self, **kwargs):
|
||||
with open('data/config.py', encoding='utf-8') as f:
|
||||
config = eval(f.read(), {})
|
||||
|
||||
super().__init__(config=config, **kwargs)
|
||||
# allow use of the bot's user ID before ready()
|
||||
token_part0 = self.config['tokens']['discord'].partition('.')[0].encode()
|
||||
self.user_id = int(base64.b64decode(token_part0 + b'=' * (3 - len(token_part0) % 3)))
|
||||
super().__init__(config=config, **kwargs)
|
||||
# allow use of the bot's user ID before ready()
|
||||
token_part0 = self.config['tokens']['discord'].partition('.')[
|
||||
0].encode()
|
||||
self.user_id = int(base64.b64decode(
|
||||
token_part0 + b'=' * (3 - len(token_part0) % 3)))
|
||||
|
||||
def process_config(self):
|
||||
"""Load the emojis from the config to be used when a command fails or succeeds
|
||||
We do it this way so that they can be used anywhere instead of requiring a bot instance.
|
||||
"""
|
||||
super().process_config()
|
||||
import utils.misc
|
||||
default = ('❌', '✅')
|
||||
utils.SUCCESS_EMOJIS = utils.misc.SUCCESS_EMOJIS = (
|
||||
self.config.get('response_emojis', {}).get('success', default))
|
||||
|
||||
def process_config(self):
|
||||
"""Load the emojis from the config to be used when a command fails or succeeds
|
||||
We do it this way so that they can be used anywhere instead of requiring a bot instance.
|
||||
"""
|
||||
super().process_config()
|
||||
import utils.misc
|
||||
default = ('❌', '✅')
|
||||
utils.SUCCESS_EMOJIS = utils.misc.SUCCESS_EMOJIS = (
|
||||
self.config.get('response_emojis', {}).get('success', default))
|
||||
|
||||
def main():
|
||||
import sys
|
||||
import sys
|
||||
|
||||
if len(sys.argv) == 1:
|
||||
shard_count = None
|
||||
shard_ids = None
|
||||
elif len(sys.argv) < 3:
|
||||
print('Usage:', sys.argv[0], '[<shard count> <hyphen-separated list of shard IDs>]', file=sys.stderr)
|
||||
sys.exit(1)
|
||||
else:
|
||||
shard_count = int(sys.argv[1])
|
||||
shard_ids = list(map(int, sys.argv[2].split('-')))
|
||||
if len(sys.argv) == 1:
|
||||
shard_count = None
|
||||
shard_ids = None
|
||||
elif len(sys.argv) < 3:
|
||||
print(
|
||||
'Usage:', sys.argv[0], '[<shard count> <hyphen-separated list of shard IDs>]', file=sys.stderr)
|
||||
sys.exit(1)
|
||||
else:
|
||||
shard_count = int(sys.argv[1])
|
||||
shard_ids = list(map(int, sys.argv[2].split('-')))
|
||||
|
||||
Bot(
|
||||
intents=discord.Intents(
|
||||
guilds=True,
|
||||
# we hardly need DM support but it's helpful to be able to run the help/support commands in DMs
|
||||
messages=True,
|
||||
# we don't need DM reactions because we don't ever paginate in DMs
|
||||
guild_reactions=True,
|
||||
emojis=True,
|
||||
# everything else, including `members` and `presences`, is implicitly false.
|
||||
),
|
||||
Bot(
|
||||
intents=nextcord.Intents(
|
||||
guilds=True,
|
||||
# we hardly need DM support but it's helpful to be able to run the help/support commands in DMs
|
||||
messages=True,
|
||||
# we don't need DM reactions because we don't ever paginate in DMs
|
||||
guild_reactions=True,
|
||||
emojis=True,
|
||||
# everything else, including `members` and `presences`, is implicitly false.
|
||||
),
|
||||
|
||||
# the least stateful bot you will ever see 😎
|
||||
chunk_guilds_at_startup=False,
|
||||
member_cache_flags=discord.MemberCacheFlags.none(),
|
||||
# disable message cache
|
||||
max_messages=None,
|
||||
# the least stateful bot you will ever see 😎
|
||||
chunk_guilds_at_startup=False,
|
||||
member_cache_flags=nextcord.MemberCacheFlags.none(),
|
||||
# disable message cache
|
||||
max_messages=None,
|
||||
|
||||
shard_count=shard_count,
|
||||
shard_ids=shard_ids,
|
||||
).run()
|
||||
|
||||
shard_count=shard_count,
|
||||
shard_ids=shard_ids,
|
||||
).run()
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
main()
|
||||
|
|
1118
cogs/emote.py
1118
cogs/emote.py
File diff suppressed because it is too large
Load diff
|
@ -1,49 +1,53 @@
|
|||
{
|
||||
'description':
|
||||
'Emote Manager lets you manage custom server emotes effortlessly.\n\n'
|
||||
'NOTE: Most commands will be unavailable until both you and the bot have the '
|
||||
'"Manage Emojis" permission.',
|
||||
'description':
|
||||
'Emote Manager lets you manage custom server emotes effortlessly.\n\n'
|
||||
'NOTE: Most commands will be unavailable until both you and the bot have the '
|
||||
'"Manage Emojis" permission.',
|
||||
|
||||
# a channel ID to invite people to when they request help with the bot
|
||||
# the bot must have Create Instant Invite permissions for this channel
|
||||
# if set to None, the support command will be disabled
|
||||
'support_server_invite_channel': None,
|
||||
|
||||
'prefixes': ['em/'],
|
||||
# a channel ID to invite people to when they request help with the bot
|
||||
# the bot must have Create Instant Invite permissions for this channel
|
||||
# if set to None, the support command will be disabled
|
||||
'support_server_invite_channel': None,
|
||||
|
||||
'tokens': {
|
||||
'discord': 'sek.rit.token',
|
||||
},
|
||||
'prefixes': ['em/'],
|
||||
|
||||
'ignore_bots': {
|
||||
'default': True,
|
||||
'overrides': {
|
||||
'channels': [
|
||||
],
|
||||
'guilds': [
|
||||
],
|
||||
},
|
||||
},
|
||||
'tokens': {
|
||||
'discord': 'sek.rit.token',
|
||||
},
|
||||
|
||||
'copyright_license_file': 'data/short-license.txt',
|
||||
'ignore_bots': {
|
||||
'default': True,
|
||||
'overrides': {
|
||||
'channels': [
|
||||
],
|
||||
'guilds': [
|
||||
],
|
||||
},
|
||||
},
|
||||
|
||||
'socks5_proxy_url': None, # required for connecting to the EC API over a Tor onion service
|
||||
'use_socks5_for_all_connections': False, # whether to use socks5 for all HTTP operations (other than discord.py)
|
||||
'user_agent': 'EmoteManagerBot (https://github.com/iomintz/emote-manager-bot)',
|
||||
'ec_api_base_url': None, # set to None to use the default of https://ec.emote.bot/api/v0
|
||||
'http_head_timeout': 10, # timeout for the initial HEAD request before retrieving any images (up this if using Tor)
|
||||
'http_read_timeout': 60, # timeout for retrieving an image
|
||||
'copyright_license_file': 'data/short-license.txt',
|
||||
|
||||
# emotes that the bot may use to respond to you
|
||||
# If not provided, the bot will use '❌', '✅' instead.
|
||||
#
|
||||
# You can obtain these ones from the discordbots.org server under the name "tickNo" and "tickYes"
|
||||
# but I uploaded them to my test server
|
||||
# so that both the staging and the stable versions of the bot can use them
|
||||
'response_emojis': {
|
||||
'success': { # emotes used to indicate success or failure
|
||||
False: '<:error:478164511879069707>',
|
||||
True: '<:success:478164452261363712>'
|
||||
},
|
||||
},
|
||||
# required for connecting to the EC API over a Tor onion service
|
||||
'socks5_proxy_url': None,
|
||||
# whether to use socks5 for all HTTP operations (other than discord.py)
|
||||
'use_socks5_for_all_connections': False,
|
||||
'user_agent': 'EmoteManagerBot (https://github.com/iomintz/emote-manager-bot)',
|
||||
# set to None to use the default of https://ec.emote.bot/api/v0
|
||||
'ec_api_base_url': None,
|
||||
# timeout for the initial HEAD request before retrieving any images (up this if using Tor)
|
||||
'http_head_timeout': 10,
|
||||
'http_read_timeout': 60, # timeout for retrieving an image
|
||||
|
||||
# emotes that the bot may use to respond to you
|
||||
# If not provided, the bot will use '❌', '✅' instead.
|
||||
#
|
||||
# You can obtain these ones from the discordbots.org server under the name "tickNo" and "tickYes"
|
||||
# but I uploaded them to my test server
|
||||
# so that both the staging and the stable versions of the bot can use them
|
||||
'response_emojis': {
|
||||
'success': { # emotes used to indicate success or failure
|
||||
False: '<:error:478164511879069707>',
|
||||
True: '<:success:478164452261363712>'
|
||||
},
|
||||
},
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue