(config): Add emoji support.
This commit is contained in:
@@ -1,8 +1,38 @@
|
|||||||
|
from discord import PartialEmoji
|
||||||
import configparser as cfgp
|
import configparser as cfgp
|
||||||
|
|
||||||
from .args import args
|
from .args import args
|
||||||
|
|
||||||
|
|
||||||
|
class configEmoji(PartialEmoji):
|
||||||
|
__slots__ = ('fallback',)
|
||||||
|
|
||||||
|
def __init__(self, *args, fallback=None, **kwargs):
|
||||||
|
super().__init__(*args, **kwargs)
|
||||||
|
self.fallback = fallback
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def from_str(cls, emojistr: str):
|
||||||
|
"""
|
||||||
|
Parses emoji strings of one of the following forms
|
||||||
|
`<a:name:id> or fallback`
|
||||||
|
`<:name:id> or fallback`
|
||||||
|
`<a:name:id>`
|
||||||
|
`<:name:id>`
|
||||||
|
"""
|
||||||
|
splits = emojistr.rsplit(' or ', maxsplit=1)
|
||||||
|
|
||||||
|
fallback = splits[1] if len(splits) > 1 else None
|
||||||
|
emojistr = splits[0].strip('<> ')
|
||||||
|
animated, name, id = emojistr.split(':')
|
||||||
|
return cls(
|
||||||
|
name=name,
|
||||||
|
fallback=PartialEmoji(name=fallback),
|
||||||
|
animated=bool(animated),
|
||||||
|
id=int(id)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
class Conf:
|
class Conf:
|
||||||
def __init__(self, configfile, section_name="DEFAULT"):
|
def __init__(self, configfile, section_name="DEFAULT"):
|
||||||
self.configfile = configfile
|
self.configfile = configfile
|
||||||
@@ -11,6 +41,7 @@ class Conf:
|
|||||||
converters={
|
converters={
|
||||||
"intlist": self._getintlist,
|
"intlist": self._getintlist,
|
||||||
"list": self._getlist,
|
"list": self._getlist,
|
||||||
|
"emoji": configEmoji.from_str,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
self.config.read(configfile)
|
self.config.read(configfile)
|
||||||
@@ -20,6 +51,7 @@ class Conf:
|
|||||||
self.default = self.config["DEFAULT"]
|
self.default = self.config["DEFAULT"]
|
||||||
self.section = self.config[self.section_name]
|
self.section = self.config[self.section_name]
|
||||||
self.bot = self.section
|
self.bot = self.section
|
||||||
|
self.emojis = self.config['EMOJIS'] if 'EMOJIS' in self.config else self.section
|
||||||
|
|
||||||
# Config file recursion, read in configuration files specified in every "ALSO_READ" key.
|
# Config file recursion, read in configuration files specified in every "ALSO_READ" key.
|
||||||
more_to_read = self.section.getlist("ALSO_READ", [])
|
more_to_read = self.section.getlist("ALSO_READ", [])
|
||||||
|
|||||||
@@ -1,9 +1,11 @@
|
|||||||
import discord
|
import discord
|
||||||
import datetime
|
import datetime
|
||||||
from meta.client import client
|
|
||||||
from bot.settings.setting_types import Integer
|
|
||||||
from meta import sharding
|
from meta import sharding
|
||||||
|
from meta import conf
|
||||||
|
from meta.client import client
|
||||||
from utils.lib import utc_now
|
from utils.lib import utc_now
|
||||||
|
from settings.setting_types import Integer
|
||||||
|
|
||||||
from modules.reminders.reminder import Reminder
|
from modules.reminders.reminder import Reminder
|
||||||
from modules.reminders.data import reminders
|
from modules.reminders.data import reminders
|
||||||
@@ -17,8 +19,8 @@ remainder_content = (
|
|||||||
"Click [here]({}) to vote, thank you for the support!"
|
"Click [here]({}) to vote, thank you for the support!"
|
||||||
).format(topgg_upvote_link)
|
).format(topgg_upvote_link)
|
||||||
|
|
||||||
lion_loveemote = '<:lionloveemote:933003977656795136>'
|
lion_loveemote = conf.emojis.getemoji('lionlove')
|
||||||
lion_yayemote = '<:lionyayemote:933003929229352990>'
|
lion_yayemote = conf.emojis.getemoji('lionyay')
|
||||||
|
|
||||||
|
|
||||||
def get_last_voted_timestamp(userid: Integer):
|
def get_last_voted_timestamp(userid: Integer):
|
||||||
|
|||||||
@@ -17,4 +17,8 @@ lion_sync_period = 60
|
|||||||
|
|
||||||
topgg_password =
|
topgg_password =
|
||||||
topgg_route =
|
topgg_route =
|
||||||
topgg_port =
|
topgg_port =
|
||||||
|
|
||||||
|
[EMOJIS]
|
||||||
|
lionyay =
|
||||||
|
lionlove =
|
||||||
|
|||||||
Reference in New Issue
Block a user