oddluck / limnoria-plugins

Limnoria plugins I wrote or forked.
Do What The F*ck You Want To Public License
39 stars 17 forks source link

SpiffyTitles: YouTube - Get Channel Info #26

Open fred0r opened 4 years ago

fred0r commented 4 years ago

When someone pastes a YT-Url to a Users YT-Channel, the bot only shows 'YouTube' and the Bot-Console shows: SpiffyTitles: error getting video id from https://www.youtube.com/channel/.........

matiasw commented 7 months ago

There is a preliminary implementation of channel info support at https://github.com/matiasw/limnoria-plugins/tree/spiffytitles-youtube-channel/SpiffyTitles

It still needs to add support for @-URLs, such as https://www.youtube.com/@GoogleDevelopers, but it appears that there is no API to get a channel ID by @ signifier. We would also need to decide if there should be a separate configurable template for channel info, like there is for video info - currently, there is a hardcoded format that is always used for channel information. For these reasons, I am not making a pull request quite yet, but you could still look into using this development version if you want channel information support right now, as it is basically functional.

fred0r commented 7 months ago

@matiasw using it for some days and its working fine - thank you. looking forward to your pull request with the final version :)

matiasw commented 7 months ago

@fred0r I added support for @username style channels - turns out you just need to strip the @ and the API works.

@oddluck If you could help me fix the yt_logo thing, I would make a pull request. Here's the error I'm getting:

ERROR 2024-01-21T04:51:37 Uncaught exception in SpiffyTitles.__call__:
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/supybot/log.py", line 371, in m
    return f(self, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/supybot/irclib.py", line 203, in __call__
    method(irc, msg)
  File "/mnt/c/work/code/limnoria-plugins/SpiffyTitles/plugin.py", line 220, in doPrivmsg
    title = self.get_title_by_url(url, channel, msg.nick)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/mnt/c/work/code/limnoria-plugins/SpiffyTitles/plugin.py", line 279, in get_title_by_url
    title = handler(url, info, channel)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/mnt/c/work/code/limnoria-plugins/SpiffyTitles/plugin.py", line 1026, in handler_youtube
    yt_logo = self.get_youtube_logo(channel) #FIXME: why doesn't work here?
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/mnt/c/work/code/limnoria-plugins/SpiffyTitles/plugin.py", line 1049, in get_youtube_logo
    use_bold = self.registryValue("useBold", channel)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/supybot/callbacks.py", line 1692, in registryValue
    group = group.getSpecific(network=network, channel=channel)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/supybot/registry.py", line 446, in getSpecific
    if channel and not ircutils.isChannel(channel):
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/supybot/ircutils.py", line 167, in isChannel
    s[0] in chantypes and \
    ~^^^
KeyError: 0
ERROR 2024-01-21T04:51:37 Exception id: 0xc0446
DEBUG 2024-01-21T04:51:37 Limnoria version: 2023.01.28

Locals by frame, innermost last:

Frame m in /usr/lib/python3/dist-packages/supybot/log.py at line 375
                        self = <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>
                        args = (<supybot.callbacks.ReplyIrcProxy object at 0x7f077e948610>, IrcMsg(server_tags={'time': '2024-01-21T02:51:36.706Z', 'account': 'appas'}, prefix="appas!~appas@178.62.234.243", command="PRIVMSG", args=('#limnoria-bots', 'http://youtube.com/user/vjdep')))
                      kwargs = {}
                errorHandler = None
                           f = <function IrcCallback.__call__ at 0x7f0783299a80>
                logException = <function firewall.<locals>.logException at 0x7f0783299620>
                  self.Proxy = <class 'supybot.callbacks.NestedCommandsIrcProxy'>
        self._MetaSynchronized_rlock = <unlocked _thread.RLock object owner=0 count=0 at 0x7f077fb43b80>
        self._PluginMixin__parent = <super: <class 'PluginMixin'>, <SpiffyTitles object>>
        self._SpiffyTitles__parent = <super: <class 'SpiffyTitles'>, <SpiffyTitles object>>
               self.__call__ = <bound method firewall.<locals>.m of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
              self.__class__ = <class 'SpiffyTitles.plugin.SpiffyTitles'>
            self.__delattr__ = <method-wrapper '__delattr__' of SpiffyTitles object at 0x7f0782b53390>
               self.__dict__ = {'_MetaSynchronized_rlock': <unlocked _thread.RLock object owner=0 count=0 at 0x7f077fb43b80>, '_SpiffyTitles__parent': <super: <class 'SpiffyTitles'>, <SpiffyTitles object>>, 'log': <Logger supybot (Level -1)>, '_PluginMixin__parent': <super: <class 'PluginMixin'>, <SpiffyTitles object>>, 'cbs': [], 'link_cache': {}, 'handlers': {'youtube.com': <bound method SpiffyTitles.handler_youtube of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'youtu.be': <bound method SpiffyTitles.handler_youtube of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'imdb.com': <bound method SpiffyTitles.handler_imdb of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'i.imgur.com': <bound method SpiffyTitles.handler_imgur_image of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'imgur.com': <bound method SpiffyTitles.handler_imgur of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'coub.com': <bound method SpiffyTitles.handler_coub of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'vimeo.com': <bound method SpiffyTitles.handler_vimeo of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'www.dailymotion.com': <bound method SpiffyTitles.handler_dailymotion of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'dailymotion.com': <bound method SpiffyTitles.handler_dailymotion of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'dai.ly': <bound method SpiffyTitles.handler_dailymotion of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'wikipedia.org': <bound method SpiffyTitles.handler_wikipedia of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'reddit.com': <bound method SpiffyTitles.handler_reddit of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'www.reddit.com': <bound method SpiffyTitles.handler_reddit of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'twitch.tv': <bound method SpiffyTitles.handler_twitch of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'www.twitch.tv': <bound method SpiffyTitles.handler_twitch of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'go.twitch.tv': <bound method SpiffyTitles.handler_twitch of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'clips.twitch.tv': <bound method SpiffyTitles.handler_twitch of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'twitter.com': <bound method SpiffyTitles.handler_twitter of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'www.twitter.com': <bound method SpiffyTitles.handler_twitter of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'x.com': <bound method SpiffyTitles.handler_twitter of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'www.x.com': <bound method SpiffyTitles.handler_twitter of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>}, 'timeout': 10, 'proxies': {'http': None, 'https': None}, 'classModule': <module 'SpiffyTitles' from '/mnt/c/work/code/limnoria-plugins/SpiffyTitles/__init__.py'>}
                self.__dir__ = <built-in method __dir__ of SpiffyTitles object at 0x7f0782b53390>
                self.__doc__ = 'Displays link titles when posted in a channel'
                 self.__eq__ = <method-wrapper '__eq__' of SpiffyTitles object at 0x7f0782b53390>
         self.__firewalled__ = {'isCommand': None, '_callCommand': None}
             self.__format__ = <built-in method __format__ of SpiffyTitles object at 0x7f0782b53390>
                 self.__ge__ = <method-wrapper '__ge__' of SpiffyTitles object at 0x7f0782b53390>
        self.__getattribute__ = <method-wrapper '__getattribute__' of SpiffyTitles object at 0x7f0782b53390>
           self.__getstate__ = <built-in method __getstate__ of SpiffyTitles object at 0x7f0782b53390>
                 self.__gt__ = <method-wrapper '__gt__' of SpiffyTitles object at 0x7f0782b53390>
               self.__hash__ = <method-wrapper '__hash__' of SpiffyTitles object at 0x7f0782b53390>
               self.__init__ = <bound method MetaSynchronized.__new__.<locals>.__init__ of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.__init_subclass__ = <built-in method __init_subclass__ of MetaSynchronizedAndFirewalled object at 0x216f880>
                 self.__le__ = <method-wrapper '__le__' of SpiffyTitles object at 0x7f0782b53390>
                 self.__lt__ = <method-wrapper '__lt__' of SpiffyTitles object at 0x7f0782b53390>
             self.__module__ = 'SpiffyTitles.plugin'
                 self.__ne__ = <method-wrapper '__ne__' of SpiffyTitles object at 0x7f0782b53390>
                self.__new__ = <built-in method __new__ of type object at 0x9563c0>
             self.__reduce__ = <built-in method __reduce__ of SpiffyTitles object at 0x7f0782b53390>
          self.__reduce_ex__ = <built-in method __reduce_ex__ of SpiffyTitles object at 0x7f0782b53390>
               self.__repr__ = <bound method IrcCallback.__repr__ of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
            self.__setattr__ = <method-wrapper '__setattr__' of SpiffyTitles object at 0x7f0782b53390>
             self.__sizeof__ = <built-in method __sizeof__ of SpiffyTitles object at 0x7f0782b53390>
                self.__str__ = <method-wrapper '__str__' of SpiffyTitles object at 0x7f0782b53390>
        self.__subclasshook__ = <built-in method __subclasshook__ of MetaSynchronizedAndFirewalled object at 0x216f880>
        self.__synchronized__ = ('__call__', 'callCommand', 'invalidCommand')
            self.__weakref__ = None
           self._callCommand = <bound method firewall.<locals>.m of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
              self._disabled = <supybot.callbacks.DisabledCommands object at 0x7f0782f28390>
        self._time_created_at = <bound method SpiffyTitles._time_created_at of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.add_coub_handlers = <bound method SpiffyTitles.add_coub_handlers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.add_dailymotion_handlers = <bound method SpiffyTitles.add_dailymotion_handlers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
           self.add_handlers = <bound method SpiffyTitles.add_handlers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.add_imdb_handlers = <bound method SpiffyTitles.add_imdb_handlers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.add_imgur_handlers = <bound method SpiffyTitles.add_imgur_handlers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.add_reddit_handlers = <bound method SpiffyTitles.add_reddit_handlers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.add_twitch_handlers = <bound method SpiffyTitles.add_twitch_handlers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.add_twitter_handlers = <bound method SpiffyTitles.add_twitter_handlers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.add_vimeo_handlers = <bound method SpiffyTitles.add_vimeo_handlers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.add_wikipedia_handlers = <bound method SpiffyTitles.add_wikipedia_handlers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.add_youtube_handlers = <bound method SpiffyTitles.add_youtube_handlers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
             self.alwaysCall = ()
              self.callAfter = ()
             self.callBefore = ['Web']
            self.callCommand = <bound method MetaSynchronized.__new__.<locals>.synchronized.<locals>.g of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
         self.callPrecedence = <bound method firewall.<locals>.m of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
          self.canonicalName = <bound method PluginMixin.canonicalName of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
                    self.cbs = []
            self.classModule = <module 'SpiffyTitles' from '/mnt/c/work/code/limnoria-plugins/SpiffyTitles/__init__.py'>
            self.commandArgs = ['self', 'irc', 'msg', 'args']
                    self.die = <bound method firewall.<locals>.m of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.dispatchCommand = <bound method IrcCommandDispatcher.dispatchCommand of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
              self.doPrivmsg = <bound method SpiffyTitles.doPrivmsg of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
            self.echoMessage = False
           self.echo_message = False
           self.filter_empty = <bound method SpiffyTitles.filter_empty of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
             self.getCommand = <bound method Commands.getCommand of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
         self.getCommandHelp = <bound method Commands.getCommandHelp of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.getCommandMethod = <bound method Commands.getCommandMethod of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
          self.getPluginHelp = <bound method PluginMixin.getPluginHelp of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_base_domain = <bound method SpiffyTitles.get_base_domain of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_channel_id_from_url = <bound method SpiffyTitles.get_channel_id_from_url of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_duration_from_seconds = <bound method SpiffyTitles.get_duration_from_seconds of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_formatted_title = <bound method SpiffyTitles.get_formatted_title of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
            self.get_headers = <bound method SpiffyTitles.get_headers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
          self.get_imdb_logo = <bound method SpiffyTitles.get_imdb_logo of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_link_from_cache = <bound method SpiffyTitles.get_link_from_cache of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_readable_file_size = <bound method SpiffyTitles.get_readable_file_size of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_source_by_url = <bound method SpiffyTitles.get_source_by_url of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
           self.get_template = <bound method SpiffyTitles.get_template of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_timestamp_from_youtube_url = <bound method SpiffyTitles.get_timestamp_from_youtube_url of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_title_by_url = <bound method SpiffyTitles.get_title_by_url of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_title_from_html = <bound method SpiffyTitles.get_title_from_html of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_total_seconds_from_duration = <bound method SpiffyTitles.get_total_seconds_from_duration of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_twitch_logo = <bound method SpiffyTitles.get_twitch_logo of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_urls_from_message = <bound method SpiffyTitles.get_urls_from_message of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
         self.get_user_agent = <bound method SpiffyTitles.get_user_agent of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_video_id_from_url = <bound method SpiffyTitles.get_video_id_from_url of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_youtube_logo = <bound method SpiffyTitles.get_youtube_logo of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
           self.handler_coub = <bound method SpiffyTitles.handler_coub of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.handler_dailymotion = <bound method SpiffyTitles.handler_dailymotion of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.handler_default = <bound method SpiffyTitles.handler_default of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
           self.handler_imdb = <bound method SpiffyTitles.handler_imdb of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
          self.handler_imgur = <bound method SpiffyTitles.handler_imgur of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.handler_imgur_album = <bound method SpiffyTitles.handler_imgur_album of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.handler_imgur_image = <bound method SpiffyTitles.handler_imgur_image of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
         self.handler_reddit = <bound method SpiffyTitles.handler_reddit of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
         self.handler_twitch = <bound method SpiffyTitles.handler_twitch of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.handler_twitter = <bound method SpiffyTitles.handler_twitter of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
          self.handler_vimeo = <bound method SpiffyTitles.handler_vimeo of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.handler_wikipedia = <bound method SpiffyTitles.handler_wikipedia of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.handler_youtube = <bound method SpiffyTitles.handler_youtube of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
               self.handlers = {'youtube.com': <bound method SpiffyTitles.handler_youtube of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'youtu.be': <bound method SpiffyTitles.handler_youtube of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'imdb.com': <bound method SpiffyTitles.handler_imdb of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'i.imgur.com': <bound method SpiffyTitles.handler_imgur_image of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'imgur.com': <bound method SpiffyTitles.handler_imgur of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'coub.com': <bound method SpiffyTitles.handler_coub of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'vimeo.com': <bound method SpiffyTitles.handler_vimeo of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'www.dailymotion.com': <bound method SpiffyTitles.handler_dailymotion of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'dailymotion.com': <bound method SpiffyTitles.handler_dailymotion of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'dai.ly': <bound method SpiffyTitles.handler_dailymotion of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'wikipedia.org': <bound method SpiffyTitles.handler_wikipedia of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'reddit.com': <bound method SpiffyTitles.handler_reddit of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'www.reddit.com': <bound method SpiffyTitles.handler_reddit of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'twitch.tv': <bound method SpiffyTitles.handler_twitch of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'www.twitch.tv': <bound method SpiffyTitles.handler_twitch of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'go.twitch.tv': <bound method SpiffyTitles.handler_twitch of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'clips.twitch.tv': <bound method SpiffyTitles.handler_twitch of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'twitter.com': <bound method SpiffyTitles.handler_twitter of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'www.twitter.com': <bound method SpiffyTitles.handler_twitter of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'x.com': <bound method SpiffyTitles.handler_twitter of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'www.x.com': <bound method SpiffyTitles.handler_twitter of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>}
               self.inFilter = <bound method firewall.<locals>.m of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
              self.isCommand = <bound method firewall.<locals>.m of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.isCommandMethod = <bound method Commands.isCommandMethod of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
             self.isDisabled = <bound method Commands.isDisabled of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.is_channel_allowed = <bound method SpiffyTitles.is_channel_allowed of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.is_ignored_domain = <bound method SpiffyTitles.is_ignored_domain of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.is_valid_imgur_id = <bound method SpiffyTitles.is_valid_imgur_id of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.is_whitelisted_domain = <bound method SpiffyTitles.is_whitelisted_domain of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
             self.link_cache = {}
           self.listCommands = <bound method Commands.listCommands of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
                    self.log = <Logger supybot (Level -1)>
        self.message_matches_ignore_pattern = <bound method SpiffyTitles.message_matches_ignore_pattern of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
                   self.name = <bound method Commands.name of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
               self.noIgnore = False
              self.outFilter = <bound method firewall.<locals>.m of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
         self.postTransition = <bound method firewall.<locals>.m of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.pre_command_callbacks = []
                self.proxies = {'http': None, 'https': None}
                 self.public = True
          self.registryValue = <bound method PluginMixin.registryValue of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.remove_control_characters = <bound method SpiffyTitles.remove_control_characters of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
                  self.reset = <bound method firewall.<locals>.m of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.setRegistryValue = <bound method PluginMixin.setRegistryValue of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
           self.setUserValue = <bound method PluginMixin.setUserValue of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
                      self.t = <bound method _wrap.<locals>.newf of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
               self.threaded = True
                self.timeout = 10
        self.title_matches_ignore_pattern = <bound method SpiffyTitles.title_matches_ignore_pattern of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
              self.userValue = <bound method PluginMixin.userValue of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.user_has_capability = <bound method SpiffyTitles.user_has_capability of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>

Frame __call__ in /usr/lib/python3/dist-packages/supybot/irclib.py at line 203
                        self = <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>
                         irc = <supybot.callbacks.ReplyIrcProxy object at 0x7f077e948610>
                         msg = IrcMsg(server_tags={'time': '2024-01-21T02:51:36.706Z', 'account': 'appas'}, prefix="appas!~appas@178.62.234.243", command="PRIVMSG", args=('#limnoria-bots', 'http://youtube.com/user/vjdep'))
                      method = <bound method SpiffyTitles.doPrivmsg of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
                  self.Proxy = <class 'supybot.callbacks.NestedCommandsIrcProxy'>
        self._MetaSynchronized_rlock = <unlocked _thread.RLock object owner=0 count=0 at 0x7f077fb43b80>
        self._PluginMixin__parent = <super: <class 'PluginMixin'>, <SpiffyTitles object>>
        self._SpiffyTitles__parent = <super: <class 'SpiffyTitles'>, <SpiffyTitles object>>
               self.__call__ = <bound method firewall.<locals>.m of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
              self.__class__ = <class 'SpiffyTitles.plugin.SpiffyTitles'>
            self.__delattr__ = <method-wrapper '__delattr__' of SpiffyTitles object at 0x7f0782b53390>
               self.__dict__ = {'_MetaSynchronized_rlock': <unlocked _thread.RLock object owner=0 count=0 at 0x7f077fb43b80>, '_SpiffyTitles__parent': <super: <class 'SpiffyTitles'>, <SpiffyTitles object>>, 'log': <Logger supybot (Level -1)>, '_PluginMixin__parent': <super: <class 'PluginMixin'>, <SpiffyTitles object>>, 'cbs': [], 'link_cache': {}, 'handlers': {'youtube.com': <bound method SpiffyTitles.handler_youtube of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'youtu.be': <bound method SpiffyTitles.handler_youtube of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'imdb.com': <bound method SpiffyTitles.handler_imdb of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'i.imgur.com': <bound method SpiffyTitles.handler_imgur_image of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'imgur.com': <bound method SpiffyTitles.handler_imgur of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'coub.com': <bound method SpiffyTitles.handler_coub of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'vimeo.com': <bound method SpiffyTitles.handler_vimeo of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'www.dailymotion.com': <bound method SpiffyTitles.handler_dailymotion of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'dailymotion.com': <bound method SpiffyTitles.handler_dailymotion of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'dai.ly': <bound method SpiffyTitles.handler_dailymotion of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'wikipedia.org': <bound method SpiffyTitles.handler_wikipedia of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'reddit.com': <bound method SpiffyTitles.handler_reddit of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'www.reddit.com': <bound method SpiffyTitles.handler_reddit of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'twitch.tv': <bound method SpiffyTitles.handler_twitch of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'www.twitch.tv': <bound method SpiffyTitles.handler_twitch of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'go.twitch.tv': <bound method SpiffyTitles.handler_twitch of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'clips.twitch.tv': <bound method SpiffyTitles.handler_twitch of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'twitter.com': <bound method SpiffyTitles.handler_twitter of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'www.twitter.com': <bound method SpiffyTitles.handler_twitter of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'x.com': <bound method SpiffyTitles.handler_twitter of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'www.x.com': <bound method SpiffyTitles.handler_twitter of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>}, 'timeout': 10, 'proxies': {'http': None, 'https': None}, 'classModule': <module 'SpiffyTitles' from '/mnt/c/work/code/limnoria-plugins/SpiffyTitles/__init__.py'>}
                self.__dir__ = <built-in method __dir__ of SpiffyTitles object at 0x7f0782b53390>
                self.__doc__ = 'Displays link titles when posted in a channel'
                 self.__eq__ = <method-wrapper '__eq__' of SpiffyTitles object at 0x7f0782b53390>
         self.__firewalled__ = {'isCommand': None, '_callCommand': None}
             self.__format__ = <built-in method __format__ of SpiffyTitles object at 0x7f0782b53390>
                 self.__ge__ = <method-wrapper '__ge__' of SpiffyTitles object at 0x7f0782b53390>
        self.__getattribute__ = <method-wrapper '__getattribute__' of SpiffyTitles object at 0x7f0782b53390>
           self.__getstate__ = <built-in method __getstate__ of SpiffyTitles object at 0x7f0782b53390>
                 self.__gt__ = <method-wrapper '__gt__' of SpiffyTitles object at 0x7f0782b53390>
               self.__hash__ = <method-wrapper '__hash__' of SpiffyTitles object at 0x7f0782b53390>
               self.__init__ = <bound method MetaSynchronized.__new__.<locals>.__init__ of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.__init_subclass__ = <built-in method __init_subclass__ of MetaSynchronizedAndFirewalled object at 0x216f880>
                 self.__le__ = <method-wrapper '__le__' of SpiffyTitles object at 0x7f0782b53390>
                 self.__lt__ = <method-wrapper '__lt__' of SpiffyTitles object at 0x7f0782b53390>
             self.__module__ = 'SpiffyTitles.plugin'
                 self.__ne__ = <method-wrapper '__ne__' of SpiffyTitles object at 0x7f0782b53390>
                self.__new__ = <built-in method __new__ of type object at 0x9563c0>
             self.__reduce__ = <built-in method __reduce__ of SpiffyTitles object at 0x7f0782b53390>
          self.__reduce_ex__ = <built-in method __reduce_ex__ of SpiffyTitles object at 0x7f0782b53390>
               self.__repr__ = <bound method IrcCallback.__repr__ of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
            self.__setattr__ = <method-wrapper '__setattr__' of SpiffyTitles object at 0x7f0782b53390>
             self.__sizeof__ = <built-in method __sizeof__ of SpiffyTitles object at 0x7f0782b53390>
                self.__str__ = <method-wrapper '__str__' of SpiffyTitles object at 0x7f0782b53390>
        self.__subclasshook__ = <built-in method __subclasshook__ of MetaSynchronizedAndFirewalled object at 0x216f880>
        self.__synchronized__ = ('__call__', 'callCommand', 'invalidCommand')
            self.__weakref__ = None
           self._callCommand = <bound method firewall.<locals>.m of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
              self._disabled = <supybot.callbacks.DisabledCommands object at 0x7f0782f28390>
        self._time_created_at = <bound method SpiffyTitles._time_created_at of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.add_coub_handlers = <bound method SpiffyTitles.add_coub_handlers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.add_dailymotion_handlers = <bound method SpiffyTitles.add_dailymotion_handlers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
           self.add_handlers = <bound method SpiffyTitles.add_handlers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.add_imdb_handlers = <bound method SpiffyTitles.add_imdb_handlers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.add_imgur_handlers = <bound method SpiffyTitles.add_imgur_handlers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.add_reddit_handlers = <bound method SpiffyTitles.add_reddit_handlers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.add_twitch_handlers = <bound method SpiffyTitles.add_twitch_handlers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.add_twitter_handlers = <bound method SpiffyTitles.add_twitter_handlers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.add_vimeo_handlers = <bound method SpiffyTitles.add_vimeo_handlers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.add_wikipedia_handlers = <bound method SpiffyTitles.add_wikipedia_handlers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.add_youtube_handlers = <bound method SpiffyTitles.add_youtube_handlers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
             self.alwaysCall = ()
              self.callAfter = ()
             self.callBefore = ['Web']
            self.callCommand = <bound method MetaSynchronized.__new__.<locals>.synchronized.<locals>.g of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
         self.callPrecedence = <bound method firewall.<locals>.m of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
          self.canonicalName = <bound method PluginMixin.canonicalName of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
                    self.cbs = []
            self.classModule = <module 'SpiffyTitles' from '/mnt/c/work/code/limnoria-plugins/SpiffyTitles/__init__.py'>
            self.commandArgs = ['self', 'irc', 'msg', 'args']
                    self.die = <bound method firewall.<locals>.m of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.dispatchCommand = <bound method IrcCommandDispatcher.dispatchCommand of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
              self.doPrivmsg = <bound method SpiffyTitles.doPrivmsg of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
            self.echoMessage = False
           self.echo_message = False
           self.filter_empty = <bound method SpiffyTitles.filter_empty of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
             self.getCommand = <bound method Commands.getCommand of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
         self.getCommandHelp = <bound method Commands.getCommandHelp of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.getCommandMethod = <bound method Commands.getCommandMethod of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
          self.getPluginHelp = <bound method PluginMixin.getPluginHelp of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_base_domain = <bound method SpiffyTitles.get_base_domain of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_channel_id_from_url = <bound method SpiffyTitles.get_channel_id_from_url of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_duration_from_seconds = <bound method SpiffyTitles.get_duration_from_seconds of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_formatted_title = <bound method SpiffyTitles.get_formatted_title of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
            self.get_headers = <bound method SpiffyTitles.get_headers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
          self.get_imdb_logo = <bound method SpiffyTitles.get_imdb_logo of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_link_from_cache = <bound method SpiffyTitles.get_link_from_cache of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_readable_file_size = <bound method SpiffyTitles.get_readable_file_size of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_source_by_url = <bound method SpiffyTitles.get_source_by_url of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
           self.get_template = <bound method SpiffyTitles.get_template of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_timestamp_from_youtube_url = <bound method SpiffyTitles.get_timestamp_from_youtube_url of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_title_by_url = <bound method SpiffyTitles.get_title_by_url of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_title_from_html = <bound method SpiffyTitles.get_title_from_html of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_total_seconds_from_duration = <bound method SpiffyTitles.get_total_seconds_from_duration of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_twitch_logo = <bound method SpiffyTitles.get_twitch_logo of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_urls_from_message = <bound method SpiffyTitles.get_urls_from_message of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
         self.get_user_agent = <bound method SpiffyTitles.get_user_agent of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_video_id_from_url = <bound method SpiffyTitles.get_video_id_from_url of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_youtube_logo = <bound method SpiffyTitles.get_youtube_logo of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
           self.handler_coub = <bound method SpiffyTitles.handler_coub of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.handler_dailymotion = <bound method SpiffyTitles.handler_dailymotion of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.handler_default = <bound method SpiffyTitles.handler_default of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
           self.handler_imdb = <bound method SpiffyTitles.handler_imdb of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
          self.handler_imgur = <bound method SpiffyTitles.handler_imgur of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.handler_imgur_album = <bound method SpiffyTitles.handler_imgur_album of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.handler_imgur_image = <bound method SpiffyTitles.handler_imgur_image of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
         self.handler_reddit = <bound method SpiffyTitles.handler_reddit of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
         self.handler_twitch = <bound method SpiffyTitles.handler_twitch of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.handler_twitter = <bound method SpiffyTitles.handler_twitter of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
          self.handler_vimeo = <bound method SpiffyTitles.handler_vimeo of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.handler_wikipedia = <bound method SpiffyTitles.handler_wikipedia of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.handler_youtube = <bound method SpiffyTitles.handler_youtube of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
               self.handlers = {'youtube.com': <bound method SpiffyTitles.handler_youtube of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'youtu.be': <bound method SpiffyTitles.handler_youtube of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'imdb.com': <bound method SpiffyTitles.handler_imdb of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'i.imgur.com': <bound method SpiffyTitles.handler_imgur_image of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'imgur.com': <bound method SpiffyTitles.handler_imgur of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'coub.com': <bound method SpiffyTitles.handler_coub of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'vimeo.com': <bound method SpiffyTitles.handler_vimeo of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'www.dailymotion.com': <bound method SpiffyTitles.handler_dailymotion of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'dailymotion.com': <bound method SpiffyTitles.handler_dailymotion of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'dai.ly': <bound method SpiffyTitles.handler_dailymotion of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'wikipedia.org': <bound method SpiffyTitles.handler_wikipedia of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'reddit.com': <bound method SpiffyTitles.handler_reddit of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'www.reddit.com': <bound method SpiffyTitles.handler_reddit of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'twitch.tv': <bound method SpiffyTitles.handler_twitch of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'www.twitch.tv': <bound method SpiffyTitles.handler_twitch of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'go.twitch.tv': <bound method SpiffyTitles.handler_twitch of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'clips.twitch.tv': <bound method SpiffyTitles.handler_twitch of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'twitter.com': <bound method SpiffyTitles.handler_twitter of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'www.twitter.com': <bound method SpiffyTitles.handler_twitter of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'x.com': <bound method SpiffyTitles.handler_twitter of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'www.x.com': <bound method SpiffyTitles.handler_twitter of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>}
               self.inFilter = <bound method firewall.<locals>.m of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
              self.isCommand = <bound method firewall.<locals>.m of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.isCommandMethod = <bound method Commands.isCommandMethod of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
             self.isDisabled = <bound method Commands.isDisabled of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.is_channel_allowed = <bound method SpiffyTitles.is_channel_allowed of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.is_ignored_domain = <bound method SpiffyTitles.is_ignored_domain of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.is_valid_imgur_id = <bound method SpiffyTitles.is_valid_imgur_id of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.is_whitelisted_domain = <bound method SpiffyTitles.is_whitelisted_domain of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
             self.link_cache = {}
           self.listCommands = <bound method Commands.listCommands of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
                    self.log = <Logger supybot (Level -1)>
        self.message_matches_ignore_pattern = <bound method SpiffyTitles.message_matches_ignore_pattern of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
                   self.name = <bound method Commands.name of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
               self.noIgnore = False
              self.outFilter = <bound method firewall.<locals>.m of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
         self.postTransition = <bound method firewall.<locals>.m of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.pre_command_callbacks = []
                self.proxies = {'http': None, 'https': None}
                 self.public = True
          self.registryValue = <bound method PluginMixin.registryValue of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.remove_control_characters = <bound method SpiffyTitles.remove_control_characters of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
                  self.reset = <bound method firewall.<locals>.m of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.setRegistryValue = <bound method PluginMixin.setRegistryValue of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
           self.setUserValue = <bound method PluginMixin.setUserValue of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
                      self.t = <bound method _wrap.<locals>.newf of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
               self.threaded = True
                self.timeout = 10
        self.title_matches_ignore_pattern = <bound method SpiffyTitles.title_matches_ignore_pattern of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
              self.userValue = <bound method PluginMixin.userValue of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.user_has_capability = <bound method SpiffyTitles.user_has_capability of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>

Frame doPrivmsg in /mnt/c/work/code/limnoria-plugins/SpiffyTitles/plugin.py at line 220
                        self = <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>
                         irc = <supybot.callbacks.ReplyIrcProxy object at 0x7f077e948610>
                         msg = IrcMsg(server_tags={'time': '2024-01-21T02:51:36.706Z', 'account': 'appas'}, prefix="appas!~appas@178.62.234.243", command="PRIVMSG", args=('#limnoria-bots', 'http://youtube.com/user/vjdep'))
                     channel = '#limnoria-bots'
                     message = 'http://youtube.com/user/vjdep'
                       title = None
                        urls = ['http://youtube.com/user/vjdep']
                         url = 'http://youtube.com/user/vjdep'
                        info = ParseResult(scheme='http', netloc='youtube.com', path='/user/vjdep', params='', query='', fragment='')
                      domain = 'youtube.com'
                  is_ignored = None
        is_whitelisted_domain = None
           whitelist_pattern = None
                  self.Proxy = <class 'supybot.callbacks.NestedCommandsIrcProxy'>
        self._MetaSynchronized_rlock = <unlocked _thread.RLock object owner=0 count=0 at 0x7f077fb43b80>
        self._PluginMixin__parent = <super: <class 'PluginMixin'>, <SpiffyTitles object>>
        self._SpiffyTitles__parent = <super: <class 'SpiffyTitles'>, <SpiffyTitles object>>
               self.__call__ = <bound method firewall.<locals>.m of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
              self.__class__ = <class 'SpiffyTitles.plugin.SpiffyTitles'>
            self.__delattr__ = <method-wrapper '__delattr__' of SpiffyTitles object at 0x7f0782b53390>
               self.__dict__ = {'_MetaSynchronized_rlock': <unlocked _thread.RLock object owner=0 count=0 at 0x7f077fb43b80>, '_SpiffyTitles__parent': <super: <class 'SpiffyTitles'>, <SpiffyTitles object>>, 'log': <Logger supybot (Level -1)>, '_PluginMixin__parent': <super: <class 'PluginMixin'>, <SpiffyTitles object>>, 'cbs': [], 'link_cache': {}, 'handlers': {'youtube.com': <bound method SpiffyTitles.handler_youtube of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'youtu.be': <bound method SpiffyTitles.handler_youtube of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'imdb.com': <bound method SpiffyTitles.handler_imdb of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'i.imgur.com': <bound method SpiffyTitles.handler_imgur_image of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'imgur.com': <bound method SpiffyTitles.handler_imgur of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'coub.com': <bound method SpiffyTitles.handler_coub of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'vimeo.com': <bound method SpiffyTitles.handler_vimeo of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'www.dailymotion.com': <bound method SpiffyTitles.handler_dailymotion of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'dailymotion.com': <bound method SpiffyTitles.handler_dailymotion of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'dai.ly': <bound method SpiffyTitles.handler_dailymotion of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'wikipedia.org': <bound method SpiffyTitles.handler_wikipedia of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'reddit.com': <bound method SpiffyTitles.handler_reddit of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'www.reddit.com': <bound method SpiffyTitles.handler_reddit of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'twitch.tv': <bound method SpiffyTitles.handler_twitch of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'www.twitch.tv': <bound method SpiffyTitles.handler_twitch of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'go.twitch.tv': <bound method SpiffyTitles.handler_twitch of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'clips.twitch.tv': <bound method SpiffyTitles.handler_twitch of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'twitter.com': <bound method SpiffyTitles.handler_twitter of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'www.twitter.com': <bound method SpiffyTitles.handler_twitter of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'x.com': <bound method SpiffyTitles.handler_twitter of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'www.x.com': <bound method SpiffyTitles.handler_twitter of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>}, 'timeout': 10, 'proxies': {'http': None, 'https': None}, 'classModule': <module 'SpiffyTitles' from '/mnt/c/work/code/limnoria-plugins/SpiffyTitles/__init__.py'>}
                self.__dir__ = <built-in method __dir__ of SpiffyTitles object at 0x7f0782b53390>
                self.__doc__ = 'Displays link titles when posted in a channel'
                 self.__eq__ = <method-wrapper '__eq__' of SpiffyTitles object at 0x7f0782b53390>
         self.__firewalled__ = {'isCommand': None, '_callCommand': None}
             self.__format__ = <built-in method __format__ of SpiffyTitles object at 0x7f0782b53390>
                 self.__ge__ = <method-wrapper '__ge__' of SpiffyTitles object at 0x7f0782b53390>
        self.__getattribute__ = <method-wrapper '__getattribute__' of SpiffyTitles object at 0x7f0782b53390>
           self.__getstate__ = <built-in method __getstate__ of SpiffyTitles object at 0x7f0782b53390>
                 self.__gt__ = <method-wrapper '__gt__' of SpiffyTitles object at 0x7f0782b53390>
               self.__hash__ = <method-wrapper '__hash__' of SpiffyTitles object at 0x7f0782b53390>
               self.__init__ = <bound method MetaSynchronized.__new__.<locals>.__init__ of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.__init_subclass__ = <built-in method __init_subclass__ of MetaSynchronizedAndFirewalled object at 0x216f880>
                 self.__le__ = <method-wrapper '__le__' of SpiffyTitles object at 0x7f0782b53390>
                 self.__lt__ = <method-wrapper '__lt__' of SpiffyTitles object at 0x7f0782b53390>
             self.__module__ = 'SpiffyTitles.plugin'
                 self.__ne__ = <method-wrapper '__ne__' of SpiffyTitles object at 0x7f0782b53390>
                self.__new__ = <built-in method __new__ of type object at 0x9563c0>
             self.__reduce__ = <built-in method __reduce__ of SpiffyTitles object at 0x7f0782b53390>
          self.__reduce_ex__ = <built-in method __reduce_ex__ of SpiffyTitles object at 0x7f0782b53390>
               self.__repr__ = <bound method IrcCallback.__repr__ of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
            self.__setattr__ = <method-wrapper '__setattr__' of SpiffyTitles object at 0x7f0782b53390>
             self.__sizeof__ = <built-in method __sizeof__ of SpiffyTitles object at 0x7f0782b53390>
                self.__str__ = <method-wrapper '__str__' of SpiffyTitles object at 0x7f0782b53390>
        self.__subclasshook__ = <built-in method __subclasshook__ of MetaSynchronizedAndFirewalled object at 0x216f880>
        self.__synchronized__ = ('__call__', 'callCommand', 'invalidCommand')
            self.__weakref__ = None
           self._callCommand = <bound method firewall.<locals>.m of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
              self._disabled = <supybot.callbacks.DisabledCommands object at 0x7f0782f28390>
        self._time_created_at = <bound method SpiffyTitles._time_created_at of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.add_coub_handlers = <bound method SpiffyTitles.add_coub_handlers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.add_dailymotion_handlers = <bound method SpiffyTitles.add_dailymotion_handlers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
           self.add_handlers = <bound method SpiffyTitles.add_handlers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.add_imdb_handlers = <bound method SpiffyTitles.add_imdb_handlers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.add_imgur_handlers = <bound method SpiffyTitles.add_imgur_handlers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.add_reddit_handlers = <bound method SpiffyTitles.add_reddit_handlers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.add_twitch_handlers = <bound method SpiffyTitles.add_twitch_handlers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.add_twitter_handlers = <bound method SpiffyTitles.add_twitter_handlers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.add_vimeo_handlers = <bound method SpiffyTitles.add_vimeo_handlers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.add_wikipedia_handlers = <bound method SpiffyTitles.add_wikipedia_handlers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.add_youtube_handlers = <bound method SpiffyTitles.add_youtube_handlers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
             self.alwaysCall = ()
              self.callAfter = ()
             self.callBefore = ['Web']
            self.callCommand = <bound method MetaSynchronized.__new__.<locals>.synchronized.<locals>.g of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
         self.callPrecedence = <bound method firewall.<locals>.m of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
          self.canonicalName = <bound method PluginMixin.canonicalName of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
                    self.cbs = []
            self.classModule = <module 'SpiffyTitles' from '/mnt/c/work/code/limnoria-plugins/SpiffyTitles/__init__.py'>
            self.commandArgs = ['self', 'irc', 'msg', 'args']
                    self.die = <bound method firewall.<locals>.m of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.dispatchCommand = <bound method IrcCommandDispatcher.dispatchCommand of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
              self.doPrivmsg = <bound method SpiffyTitles.doPrivmsg of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
            self.echoMessage = False
           self.echo_message = False
           self.filter_empty = <bound method SpiffyTitles.filter_empty of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
             self.getCommand = <bound method Commands.getCommand of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
         self.getCommandHelp = <bound method Commands.getCommandHelp of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.getCommandMethod = <bound method Commands.getCommandMethod of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
          self.getPluginHelp = <bound method PluginMixin.getPluginHelp of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_base_domain = <bound method SpiffyTitles.get_base_domain of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_channel_id_from_url = <bound method SpiffyTitles.get_channel_id_from_url of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_duration_from_seconds = <bound method SpiffyTitles.get_duration_from_seconds of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_formatted_title = <bound method SpiffyTitles.get_formatted_title of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
            self.get_headers = <bound method SpiffyTitles.get_headers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
          self.get_imdb_logo = <bound method SpiffyTitles.get_imdb_logo of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_link_from_cache = <bound method SpiffyTitles.get_link_from_cache of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_readable_file_size = <bound method SpiffyTitles.get_readable_file_size of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_source_by_url = <bound method SpiffyTitles.get_source_by_url of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
           self.get_template = <bound method SpiffyTitles.get_template of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_timestamp_from_youtube_url = <bound method SpiffyTitles.get_timestamp_from_youtube_url of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_title_by_url = <bound method SpiffyTitles.get_title_by_url of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_title_from_html = <bound method SpiffyTitles.get_title_from_html of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_total_seconds_from_duration = <bound method SpiffyTitles.get_total_seconds_from_duration of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_twitch_logo = <bound method SpiffyTitles.get_twitch_logo of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_urls_from_message = <bound method SpiffyTitles.get_urls_from_message of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
         self.get_user_agent = <bound method SpiffyTitles.get_user_agent of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_video_id_from_url = <bound method SpiffyTitles.get_video_id_from_url of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_youtube_logo = <bound method SpiffyTitles.get_youtube_logo of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
           self.handler_coub = <bound method SpiffyTitles.handler_coub of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.handler_dailymotion = <bound method SpiffyTitles.handler_dailymotion of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.handler_default = <bound method SpiffyTitles.handler_default of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
           self.handler_imdb = <bound method SpiffyTitles.handler_imdb of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
          self.handler_imgur = <bound method SpiffyTitles.handler_imgur of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.handler_imgur_album = <bound method SpiffyTitles.handler_imgur_album of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.handler_imgur_image = <bound method SpiffyTitles.handler_imgur_image of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
         self.handler_reddit = <bound method SpiffyTitles.handler_reddit of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
         self.handler_twitch = <bound method SpiffyTitles.handler_twitch of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.handler_twitter = <bound method SpiffyTitles.handler_twitter of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
          self.handler_vimeo = <bound method SpiffyTitles.handler_vimeo of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.handler_wikipedia = <bound method SpiffyTitles.handler_wikipedia of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.handler_youtube = <bound method SpiffyTitles.handler_youtube of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
               self.handlers = {'youtube.com': <bound method SpiffyTitles.handler_youtube of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'youtu.be': <bound method SpiffyTitles.handler_youtube of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'imdb.com': <bound method SpiffyTitles.handler_imdb of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'i.imgur.com': <bound method SpiffyTitles.handler_imgur_image of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'imgur.com': <bound method SpiffyTitles.handler_imgur of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'coub.com': <bound method SpiffyTitles.handler_coub of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'vimeo.com': <bound method SpiffyTitles.handler_vimeo of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'www.dailymotion.com': <bound method SpiffyTitles.handler_dailymotion of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'dailymotion.com': <bound method SpiffyTitles.handler_dailymotion of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'dai.ly': <bound method SpiffyTitles.handler_dailymotion of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'wikipedia.org': <bound method SpiffyTitles.handler_wikipedia of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'reddit.com': <bound method SpiffyTitles.handler_reddit of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'www.reddit.com': <bound method SpiffyTitles.handler_reddit of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'twitch.tv': <bound method SpiffyTitles.handler_twitch of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'www.twitch.tv': <bound method SpiffyTitles.handler_twitch of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'go.twitch.tv': <bound method SpiffyTitles.handler_twitch of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'clips.twitch.tv': <bound method SpiffyTitles.handler_twitch of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'twitter.com': <bound method SpiffyTitles.handler_twitter of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'www.twitter.com': <bound method SpiffyTitles.handler_twitter of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'x.com': <bound method SpiffyTitles.handler_twitter of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'www.x.com': <bound method SpiffyTitles.handler_twitter of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>}
               self.inFilter = <bound method firewall.<locals>.m of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
              self.isCommand = <bound method firewall.<locals>.m of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.isCommandMethod = <bound method Commands.isCommandMethod of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
             self.isDisabled = <bound method Commands.isDisabled of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.is_channel_allowed = <bound method SpiffyTitles.is_channel_allowed of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.is_ignored_domain = <bound method SpiffyTitles.is_ignored_domain of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.is_valid_imgur_id = <bound method SpiffyTitles.is_valid_imgur_id of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.is_whitelisted_domain = <bound method SpiffyTitles.is_whitelisted_domain of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
             self.link_cache = {}
           self.listCommands = <bound method Commands.listCommands of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
                    self.log = <Logger supybot (Level -1)>
        self.message_matches_ignore_pattern = <bound method SpiffyTitles.message_matches_ignore_pattern of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
                   self.name = <bound method Commands.name of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
               self.noIgnore = False
              self.outFilter = <bound method firewall.<locals>.m of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
         self.postTransition = <bound method firewall.<locals>.m of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.pre_command_callbacks = []
                self.proxies = {'http': None, 'https': None}
                 self.public = True
          self.registryValue = <bound method PluginMixin.registryValue of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.remove_control_characters = <bound method SpiffyTitles.remove_control_characters of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
                  self.reset = <bound method firewall.<locals>.m of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.setRegistryValue = <bound method PluginMixin.setRegistryValue of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
           self.setUserValue = <bound method PluginMixin.setUserValue of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
                      self.t = <bound method _wrap.<locals>.newf of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
               self.threaded = True
                self.timeout = 10
        self.title_matches_ignore_pattern = <bound method SpiffyTitles.title_matches_ignore_pattern of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
              self.userValue = <bound method PluginMixin.userValue of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.user_has_capability = <bound method SpiffyTitles.user_has_capability of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>

Frame get_title_by_url in /mnt/c/work/code/limnoria-plugins/SpiffyTitles/plugin.py at line 279
                        self = <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>
                         url = 'http://youtube.com/user/vjdep'
                     channel = '#limnoria-bots'
                 origin_nick = 'appas'
                        info = ParseResult(scheme='http', netloc='youtube.com', path='/user/vjdep', params='', query='', fragment='')
                      domain = 'youtube.com'
                       title = None
                 cached_link = None
                     handler = <bound method SpiffyTitles.handler_youtube of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
                  self.Proxy = <class 'supybot.callbacks.NestedCommandsIrcProxy'>
        self._MetaSynchronized_rlock = <unlocked _thread.RLock object owner=0 count=0 at 0x7f077fb43b80>
        self._PluginMixin__parent = <super: <class 'PluginMixin'>, <SpiffyTitles object>>
        self._SpiffyTitles__parent = <super: <class 'SpiffyTitles'>, <SpiffyTitles object>>
               self.__call__ = <bound method firewall.<locals>.m of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
              self.__class__ = <class 'SpiffyTitles.plugin.SpiffyTitles'>
            self.__delattr__ = <method-wrapper '__delattr__' of SpiffyTitles object at 0x7f0782b53390>
               self.__dict__ = {'_MetaSynchronized_rlock': <unlocked _thread.RLock object owner=0 count=0 at 0x7f077fb43b80>, '_SpiffyTitles__parent': <super: <class 'SpiffyTitles'>, <SpiffyTitles object>>, 'log': <Logger supybot (Level -1)>, '_PluginMixin__parent': <super: <class 'PluginMixin'>, <SpiffyTitles object>>, 'cbs': [], 'link_cache': {}, 'handlers': {'youtube.com': <bound method SpiffyTitles.handler_youtube of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'youtu.be': <bound method SpiffyTitles.handler_youtube of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'imdb.com': <bound method SpiffyTitles.handler_imdb of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'i.imgur.com': <bound method SpiffyTitles.handler_imgur_image of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'imgur.com': <bound method SpiffyTitles.handler_imgur of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'coub.com': <bound method SpiffyTitles.handler_coub of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'vimeo.com': <bound method SpiffyTitles.handler_vimeo of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'www.dailymotion.com': <bound method SpiffyTitles.handler_dailymotion of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'dailymotion.com': <bound method SpiffyTitles.handler_dailymotion of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'dai.ly': <bound method SpiffyTitles.handler_dailymotion of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'wikipedia.org': <bound method SpiffyTitles.handler_wikipedia of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'reddit.com': <bound method SpiffyTitles.handler_reddit of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'www.reddit.com': <bound method SpiffyTitles.handler_reddit of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'twitch.tv': <bound method SpiffyTitles.handler_twitch of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'www.twitch.tv': <bound method SpiffyTitles.handler_twitch of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'go.twitch.tv': <bound method SpiffyTitles.handler_twitch of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'clips.twitch.tv': <bound method SpiffyTitles.handler_twitch of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'twitter.com': <bound method SpiffyTitles.handler_twitter of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'www.twitter.com': <bound method SpiffyTitles.handler_twitter of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'x.com': <bound method SpiffyTitles.handler_twitter of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'www.x.com': <bound method SpiffyTitles.handler_twitter of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>}, 'timeout': 10, 'proxies': {'http': None, 'https': None}, 'classModule': <module 'SpiffyTitles' from '/mnt/c/work/code/limnoria-plugins/SpiffyTitles/__init__.py'>}
                self.__dir__ = <built-in method __dir__ of SpiffyTitles object at 0x7f0782b53390>
                self.__doc__ = 'Displays link titles when posted in a channel'
                 self.__eq__ = <method-wrapper '__eq__' of SpiffyTitles object at 0x7f0782b53390>
         self.__firewalled__ = {'isCommand': None, '_callCommand': None}
             self.__format__ = <built-in method __format__ of SpiffyTitles object at 0x7f0782b53390>
                 self.__ge__ = <method-wrapper '__ge__' of SpiffyTitles object at 0x7f0782b53390>
        self.__getattribute__ = <method-wrapper '__getattribute__' of SpiffyTitles object at 0x7f0782b53390>
           self.__getstate__ = <built-in method __getstate__ of SpiffyTitles object at 0x7f0782b53390>
                 self.__gt__ = <method-wrapper '__gt__' of SpiffyTitles object at 0x7f0782b53390>
               self.__hash__ = <method-wrapper '__hash__' of SpiffyTitles object at 0x7f0782b53390>
               self.__init__ = <bound method MetaSynchronized.__new__.<locals>.__init__ of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.__init_subclass__ = <built-in method __init_subclass__ of MetaSynchronizedAndFirewalled object at 0x216f880>
                 self.__le__ = <method-wrapper '__le__' of SpiffyTitles object at 0x7f0782b53390>
                 self.__lt__ = <method-wrapper '__lt__' of SpiffyTitles object at 0x7f0782b53390>
             self.__module__ = 'SpiffyTitles.plugin'
                 self.__ne__ = <method-wrapper '__ne__' of SpiffyTitles object at 0x7f0782b53390>
                self.__new__ = <built-in method __new__ of type object at 0x9563c0>
             self.__reduce__ = <built-in method __reduce__ of SpiffyTitles object at 0x7f0782b53390>
          self.__reduce_ex__ = <built-in method __reduce_ex__ of SpiffyTitles object at 0x7f0782b53390>
               self.__repr__ = <bound method IrcCallback.__repr__ of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
            self.__setattr__ = <method-wrapper '__setattr__' of SpiffyTitles object at 0x7f0782b53390>
             self.__sizeof__ = <built-in method __sizeof__ of SpiffyTitles object at 0x7f0782b53390>
                self.__str__ = <method-wrapper '__str__' of SpiffyTitles object at 0x7f0782b53390>
        self.__subclasshook__ = <built-in method __subclasshook__ of MetaSynchronizedAndFirewalled object at 0x216f880>
        self.__synchronized__ = ('__call__', 'callCommand', 'invalidCommand')
            self.__weakref__ = None
           self._callCommand = <bound method firewall.<locals>.m of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
              self._disabled = <supybot.callbacks.DisabledCommands object at 0x7f0782f28390>
        self._time_created_at = <bound method SpiffyTitles._time_created_at of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.add_coub_handlers = <bound method SpiffyTitles.add_coub_handlers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.add_dailymotion_handlers = <bound method SpiffyTitles.add_dailymotion_handlers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
           self.add_handlers = <bound method SpiffyTitles.add_handlers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.add_imdb_handlers = <bound method SpiffyTitles.add_imdb_handlers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.add_imgur_handlers = <bound method SpiffyTitles.add_imgur_handlers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.add_reddit_handlers = <bound method SpiffyTitles.add_reddit_handlers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.add_twitch_handlers = <bound method SpiffyTitles.add_twitch_handlers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.add_twitter_handlers = <bound method SpiffyTitles.add_twitter_handlers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.add_vimeo_handlers = <bound method SpiffyTitles.add_vimeo_handlers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.add_wikipedia_handlers = <bound method SpiffyTitles.add_wikipedia_handlers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.add_youtube_handlers = <bound method SpiffyTitles.add_youtube_handlers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
             self.alwaysCall = ()
              self.callAfter = ()
             self.callBefore = ['Web']
            self.callCommand = <bound method MetaSynchronized.__new__.<locals>.synchronized.<locals>.g of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
         self.callPrecedence = <bound method firewall.<locals>.m of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
          self.canonicalName = <bound method PluginMixin.canonicalName of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
                    self.cbs = []
            self.classModule = <module 'SpiffyTitles' from '/mnt/c/work/code/limnoria-plugins/SpiffyTitles/__init__.py'>
            self.commandArgs = ['self', 'irc', 'msg', 'args']
                    self.die = <bound method firewall.<locals>.m of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.dispatchCommand = <bound method IrcCommandDispatcher.dispatchCommand of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
              self.doPrivmsg = <bound method SpiffyTitles.doPrivmsg of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
            self.echoMessage = False
           self.echo_message = False
           self.filter_empty = <bound method SpiffyTitles.filter_empty of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
             self.getCommand = <bound method Commands.getCommand of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
         self.getCommandHelp = <bound method Commands.getCommandHelp of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.getCommandMethod = <bound method Commands.getCommandMethod of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
          self.getPluginHelp = <bound method PluginMixin.getPluginHelp of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_base_domain = <bound method SpiffyTitles.get_base_domain of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_channel_id_from_url = <bound method SpiffyTitles.get_channel_id_from_url of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_duration_from_seconds = <bound method SpiffyTitles.get_duration_from_seconds of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_formatted_title = <bound method SpiffyTitles.get_formatted_title of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
            self.get_headers = <bound method SpiffyTitles.get_headers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
          self.get_imdb_logo = <bound method SpiffyTitles.get_imdb_logo of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_link_from_cache = <bound method SpiffyTitles.get_link_from_cache of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_readable_file_size = <bound method SpiffyTitles.get_readable_file_size of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_source_by_url = <bound method SpiffyTitles.get_source_by_url of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
           self.get_template = <bound method SpiffyTitles.get_template of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_timestamp_from_youtube_url = <bound method SpiffyTitles.get_timestamp_from_youtube_url of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_title_by_url = <bound method SpiffyTitles.get_title_by_url of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_title_from_html = <bound method SpiffyTitles.get_title_from_html of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_total_seconds_from_duration = <bound method SpiffyTitles.get_total_seconds_from_duration of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_twitch_logo = <bound method SpiffyTitles.get_twitch_logo of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_urls_from_message = <bound method SpiffyTitles.get_urls_from_message of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
         self.get_user_agent = <bound method SpiffyTitles.get_user_agent of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_video_id_from_url = <bound method SpiffyTitles.get_video_id_from_url of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_youtube_logo = <bound method SpiffyTitles.get_youtube_logo of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
           self.handler_coub = <bound method SpiffyTitles.handler_coub of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.handler_dailymotion = <bound method SpiffyTitles.handler_dailymotion of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.handler_default = <bound method SpiffyTitles.handler_default of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
           self.handler_imdb = <bound method SpiffyTitles.handler_imdb of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
          self.handler_imgur = <bound method SpiffyTitles.handler_imgur of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.handler_imgur_album = <bound method SpiffyTitles.handler_imgur_album of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.handler_imgur_image = <bound method SpiffyTitles.handler_imgur_image of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
         self.handler_reddit = <bound method SpiffyTitles.handler_reddit of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
         self.handler_twitch = <bound method SpiffyTitles.handler_twitch of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.handler_twitter = <bound method SpiffyTitles.handler_twitter of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
          self.handler_vimeo = <bound method SpiffyTitles.handler_vimeo of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.handler_wikipedia = <bound method SpiffyTitles.handler_wikipedia of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.handler_youtube = <bound method SpiffyTitles.handler_youtube of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
               self.handlers = {'youtube.com': <bound method SpiffyTitles.handler_youtube of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'youtu.be': <bound method SpiffyTitles.handler_youtube of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'imdb.com': <bound method SpiffyTitles.handler_imdb of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'i.imgur.com': <bound method SpiffyTitles.handler_imgur_image of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'imgur.com': <bound method SpiffyTitles.handler_imgur of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'coub.com': <bound method SpiffyTitles.handler_coub of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'vimeo.com': <bound method SpiffyTitles.handler_vimeo of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'www.dailymotion.com': <bound method SpiffyTitles.handler_dailymotion of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'dailymotion.com': <bound method SpiffyTitles.handler_dailymotion of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'dai.ly': <bound method SpiffyTitles.handler_dailymotion of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'wikipedia.org': <bound method SpiffyTitles.handler_wikipedia of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'reddit.com': <bound method SpiffyTitles.handler_reddit of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'www.reddit.com': <bound method SpiffyTitles.handler_reddit of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'twitch.tv': <bound method SpiffyTitles.handler_twitch of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'www.twitch.tv': <bound method SpiffyTitles.handler_twitch of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'go.twitch.tv': <bound method SpiffyTitles.handler_twitch of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'clips.twitch.tv': <bound method SpiffyTitles.handler_twitch of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'twitter.com': <bound method SpiffyTitles.handler_twitter of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'www.twitter.com': <bound method SpiffyTitles.handler_twitter of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'x.com': <bound method SpiffyTitles.handler_twitter of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'www.x.com': <bound method SpiffyTitles.handler_twitter of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>}
               self.inFilter = <bound method firewall.<locals>.m of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
              self.isCommand = <bound method firewall.<locals>.m of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.isCommandMethod = <bound method Commands.isCommandMethod of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
             self.isDisabled = <bound method Commands.isDisabled of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.is_channel_allowed = <bound method SpiffyTitles.is_channel_allowed of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.is_ignored_domain = <bound method SpiffyTitles.is_ignored_domain of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.is_valid_imgur_id = <bound method SpiffyTitles.is_valid_imgur_id of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.is_whitelisted_domain = <bound method SpiffyTitles.is_whitelisted_domain of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
             self.link_cache = {}
           self.listCommands = <bound method Commands.listCommands of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
                    self.log = <Logger supybot (Level -1)>
        self.message_matches_ignore_pattern = <bound method SpiffyTitles.message_matches_ignore_pattern of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
                   self.name = <bound method Commands.name of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
               self.noIgnore = False
              self.outFilter = <bound method firewall.<locals>.m of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
         self.postTransition = <bound method firewall.<locals>.m of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.pre_command_callbacks = []
                self.proxies = {'http': None, 'https': None}
                 self.public = True
          self.registryValue = <bound method PluginMixin.registryValue of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.remove_control_characters = <bound method SpiffyTitles.remove_control_characters of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
                  self.reset = <bound method firewall.<locals>.m of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.setRegistryValue = <bound method PluginMixin.setRegistryValue of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
           self.setUserValue = <bound method PluginMixin.setUserValue of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
                      self.t = <bound method _wrap.<locals>.newf of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
               self.threaded = True
                self.timeout = 10
        self.title_matches_ignore_pattern = <bound method SpiffyTitles.title_matches_ignore_pattern of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
              self.userValue = <bound method PluginMixin.userValue of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.user_has_capability = <bound method SpiffyTitles.user_has_capability of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>

Frame handler_youtube in /mnt/c/work/code/limnoria-plugins/SpiffyTitles/plugin.py at line 1028
                        self = <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>
                         url = 'http://youtube.com/user/vjdep'
                      domain = ParseResult(scheme='http', netloc='youtube.com', path='/user/vjdep', params='', query='', fragment='')
                     channel = {'kind': 'youtube#channel', 'etag': 'V8vD-dQ4Sf7NpfWBTSbu3_jyo40', 'id': 'UC8q8-EiWZEYg9U0Qr_oy8Nw', 'snippet': {'title': 'appas', 'description': '', 'customUrl': '@vjdep', 'publishedAt': '2009-11-24T08:52:56Z', 'thumbnails': {'default': {'url': 'https://yt3.ggpht.com/ytc/AIf8zZRV55TqQTmK8nt2WJ3O47bBR3PRhnXoTv5KuQ=s88-c-k-c0x00ffffff-no-rj', 'width': 88, 'height': 88}, 'medium': {'url': 'https://yt3.ggpht.com/ytc/AIf8zZRV55TqQTmK8nt2WJ3O47bBR3PRhnXoTv5KuQ=s240-c-k-c0x00ffffff-no-rj', 'width': 240, 'height': 240}, 'high': {'url': 'https://yt3.ggpht.com/ytc/AIf8zZRV55TqQTmK8nt2WJ3O47bBR3PRhnXoTv5KuQ=s800-c-k-c0x00ffffff-no-rj', 'width': 800, 'height': 800}}, 'localized': {'title': 'appas', 'description': ''}}, 'contentDetails': {'relatedPlaylists': {'likes': '', 'uploads': 'UU8q8-EiWZEYg9U0Qr_oy8Nw'}}, 'statistics': {'viewCount': '8207', 'subscriberCount': '43', 'hiddenSubscriberCount': False, 'videoCount': '35'}}
                        type = 'channel'
        youtube_handler_enabled = True
               developer_key = 'AIzaSyDBgL8fm9bD8RLShATOLI1xKmFcZ4ieMkM'
                    video_id = None
                  channel_id = 'UC8q8-EiWZEYg9U0Qr_oy8Nw'
                 yt_template = <Template memory:7f077e78e3d0>
                       title = 'appas'
                     options = {'part': 'snippet,statistics,contentDetails', 'maxResults': 1, 'key': 'AIzaSyDBgL8fm9bD8RLShATOLI1xKmFcZ4ieMkM', 'id': 'UC8q8-EiWZEYg9U0Qr_oy8Nw'}
                     api_url = 'https://www.googleapis.com/youtube/v3/channels'
                     request = <Response [200]>
                    response = {'kind': 'youtube#channelListResponse', 'etag': 'J10AsqLwN01wBrC8PMqX05IqO6g', 'pageInfo': {'totalResults': 1, 'resultsPerPage': 1}, 'items': [{'kind': 'youtube#channel', 'etag': 'V8vD-dQ4Sf7NpfWBTSbu3_jyo40', 'id': 'UC8q8-EiWZEYg9U0Qr_oy8Nw', 'snippet': {'title': 'appas', 'description': '', 'customUrl': '@vjdep', 'publishedAt': '2009-11-24T08:52:56Z', 'thumbnails': {'default': {'url': 'https://yt3.ggpht.com/ytc/AIf8zZRV55TqQTmK8nt2WJ3O47bBR3PRhnXoTv5KuQ=s88-c-k-c0x00ffffff-no-rj', 'width': 88, 'height': 88}, 'medium': {'url': 'https://yt3.ggpht.com/ytc/AIf8zZRV55TqQTmK8nt2WJ3O47bBR3PRhnXoTv5KuQ=s240-c-k-c0x00ffffff-no-rj', 'width': 240, 'height': 240}, 'high': {'url': 'https://yt3.ggpht.com/ytc/AIf8zZRV55TqQTmK8nt2WJ3O47bBR3PRhnXoTv5KuQ=s800-c-k-c0x00ffffff-no-rj', 'width': 800, 'height': 800}}, 'localized': {'title': 'appas', 'description': ''}}, 'contentDetails': {'relatedPlaylists': {'likes': '', 'uploads': 'UU8q8-EiWZEYg9U0Qr_oy8Nw'}}, 'statistics': {'viewCount': '8207', 'subscriberCount': '43', 'hiddenSubscriberCount': False, 'videoCount': '35'}}]}
                       items = [{'kind': 'youtube#channel', 'etag': 'V8vD-dQ4Sf7NpfWBTSbu3_jyo40', 'id': 'UC8q8-EiWZEYg9U0Qr_oy8Nw', 'snippet': {'title': 'appas', 'description': '', 'customUrl': '@vjdep', 'publishedAt': '2009-11-24T08:52:56Z', 'thumbnails': {'default': {'url': 'https://yt3.ggpht.com/ytc/AIf8zZRV55TqQTmK8nt2WJ3O47bBR3PRhnXoTv5KuQ=s88-c-k-c0x00ffffff-no-rj', 'width': 88, 'height': 88}, 'medium': {'url': 'https://yt3.ggpht.com/ytc/AIf8zZRV55TqQTmK8nt2WJ3O47bBR3PRhnXoTv5KuQ=s240-c-k-c0x00ffffff-no-rj', 'width': 240, 'height': 240}, 'high': {'url': 'https://yt3.ggpht.com/ytc/AIf8zZRV55TqQTmK8nt2WJ3O47bBR3PRhnXoTv5KuQ=s800-c-k-c0x00ffffff-no-rj', 'width': 800, 'height': 800}}, 'localized': {'title': 'appas', 'description': ''}}, 'contentDetails': {'relatedPlaylists': {'likes': '', 'uploads': 'UU8q8-EiWZEYg9U0Qr_oy8Nw'}}, 'statistics': {'viewCount': '8207', 'subscriberCount': '43', 'hiddenSubscriberCount': False, 'videoCount': '35'}}]
                     snippet = {'title': 'appas', 'description': '', 'customUrl': '@vjdep', 'publishedAt': '2009-11-24T08:52:56Z', 'thumbnails': {'default': {'url': 'https://yt3.ggpht.com/ytc/AIf8zZRV55TqQTmK8nt2WJ3O47bBR3PRhnXoTv5KuQ=s88-c-k-c0x00ffffff-no-rj', 'width': 88, 'height': 88}, 'medium': {'url': 'https://yt3.ggpht.com/ytc/AIf8zZRV55TqQTmK8nt2WJ3O47bBR3PRhnXoTv5KuQ=s240-c-k-c0x00ffffff-no-rj', 'width': 240, 'height': 240}, 'high': {'url': 'https://yt3.ggpht.com/ytc/AIf8zZRV55TqQTmK8nt2WJ3O47bBR3PRhnXoTv5KuQ=s800-c-k-c0x00ffffff-no-rj', 'width': 800, 'height': 800}}, 'localized': {'title': 'appas', 'description': ''}}
                  statistics = {'viewCount': '8207', 'subscriberCount': '43', 'hiddenSubscriberCount': False, 'videoCount': '35'}
                  view_count = '8,207'
            subscriber_count = '43'
                 video_count = '35'
                  self.Proxy = <class 'supybot.callbacks.NestedCommandsIrcProxy'>
        self._MetaSynchronized_rlock = <unlocked _thread.RLock object owner=0 count=0 at 0x7f077fb43b80>
        self._PluginMixin__parent = <super: <class 'PluginMixin'>, <SpiffyTitles object>>
        self._SpiffyTitles__parent = <super: <class 'SpiffyTitles'>, <SpiffyTitles object>>
               self.__call__ = <bound method firewall.<locals>.m of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
              self.__class__ = <class 'SpiffyTitles.plugin.SpiffyTitles'>
            self.__delattr__ = <method-wrapper '__delattr__' of SpiffyTitles object at 0x7f0782b53390>
               self.__dict__ = {'_MetaSynchronized_rlock': <unlocked _thread.RLock object owner=0 count=0 at 0x7f077fb43b80>, '_SpiffyTitles__parent': <super: <class 'SpiffyTitles'>, <SpiffyTitles object>>, 'log': <Logger supybot (Level -1)>, '_PluginMixin__parent': <super: <class 'PluginMixin'>, <SpiffyTitles object>>, 'cbs': [], 'link_cache': {}, 'handlers': {'youtube.com': <bound method SpiffyTitles.handler_youtube of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'youtu.be': <bound method SpiffyTitles.handler_youtube of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'imdb.com': <bound method SpiffyTitles.handler_imdb of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'i.imgur.com': <bound method SpiffyTitles.handler_imgur_image of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'imgur.com': <bound method SpiffyTitles.handler_imgur of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'coub.com': <bound method SpiffyTitles.handler_coub of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'vimeo.com': <bound method SpiffyTitles.handler_vimeo of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'www.dailymotion.com': <bound method SpiffyTitles.handler_dailymotion of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'dailymotion.com': <bound method SpiffyTitles.handler_dailymotion of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'dai.ly': <bound method SpiffyTitles.handler_dailymotion of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'wikipedia.org': <bound method SpiffyTitles.handler_wikipedia of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'reddit.com': <bound method SpiffyTitles.handler_reddit of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'www.reddit.com': <bound method SpiffyTitles.handler_reddit of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'twitch.tv': <bound method SpiffyTitles.handler_twitch of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'www.twitch.tv': <bound method SpiffyTitles.handler_twitch of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'go.twitch.tv': <bound method SpiffyTitles.handler_twitch of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'clips.twitch.tv': <bound method SpiffyTitles.handler_twitch of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'twitter.com': <bound method SpiffyTitles.handler_twitter of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'www.twitter.com': <bound method SpiffyTitles.handler_twitter of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'x.com': <bound method SpiffyTitles.handler_twitter of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'www.x.com': <bound method SpiffyTitles.handler_twitter of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>}, 'timeout': 10, 'proxies': {'http': None, 'https': None}, 'classModule': <module 'SpiffyTitles' from '/mnt/c/work/code/limnoria-plugins/SpiffyTitles/__init__.py'>}
                self.__dir__ = <built-in method __dir__ of SpiffyTitles object at 0x7f0782b53390>
                self.__doc__ = 'Displays link titles when posted in a channel'
                 self.__eq__ = <method-wrapper '__eq__' of SpiffyTitles object at 0x7f0782b53390>
         self.__firewalled__ = {'isCommand': None, '_callCommand': None}
             self.__format__ = <built-in method __format__ of SpiffyTitles object at 0x7f0782b53390>
                 self.__ge__ = <method-wrapper '__ge__' of SpiffyTitles object at 0x7f0782b53390>
        self.__getattribute__ = <method-wrapper '__getattribute__' of SpiffyTitles object at 0x7f0782b53390>
           self.__getstate__ = <built-in method __getstate__ of SpiffyTitles object at 0x7f0782b53390>
                 self.__gt__ = <method-wrapper '__gt__' of SpiffyTitles object at 0x7f0782b53390>
               self.__hash__ = <method-wrapper '__hash__' of SpiffyTitles object at 0x7f0782b53390>
               self.__init__ = <bound method MetaSynchronized.__new__.<locals>.__init__ of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.__init_subclass__ = <built-in method __init_subclass__ of MetaSynchronizedAndFirewalled object at 0x216f880>
                 self.__le__ = <method-wrapper '__le__' of SpiffyTitles object at 0x7f0782b53390>
                 self.__lt__ = <method-wrapper '__lt__' of SpiffyTitles object at 0x7f0782b53390>
             self.__module__ = 'SpiffyTitles.plugin'
                 self.__ne__ = <method-wrapper '__ne__' of SpiffyTitles object at 0x7f0782b53390>
                self.__new__ = <built-in method __new__ of type object at 0x9563c0>
             self.__reduce__ = <built-in method __reduce__ of SpiffyTitles object at 0x7f0782b53390>
          self.__reduce_ex__ = <built-in method __reduce_ex__ of SpiffyTitles object at 0x7f0782b53390>
               self.__repr__ = <bound method IrcCallback.__repr__ of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
            self.__setattr__ = <method-wrapper '__setattr__' of SpiffyTitles object at 0x7f0782b53390>
             self.__sizeof__ = <built-in method __sizeof__ of SpiffyTitles object at 0x7f0782b53390>
                self.__str__ = <method-wrapper '__str__' of SpiffyTitles object at 0x7f0782b53390>
        self.__subclasshook__ = <built-in method __subclasshook__ of MetaSynchronizedAndFirewalled object at 0x216f880>
        self.__synchronized__ = ('__call__', 'callCommand', 'invalidCommand')
            self.__weakref__ = None
           self._callCommand = <bound method firewall.<locals>.m of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
              self._disabled = <supybot.callbacks.DisabledCommands object at 0x7f0782f28390>
        self._time_created_at = <bound method SpiffyTitles._time_created_at of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.add_coub_handlers = <bound method SpiffyTitles.add_coub_handlers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.add_dailymotion_handlers = <bound method SpiffyTitles.add_dailymotion_handlers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
           self.add_handlers = <bound method SpiffyTitles.add_handlers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.add_imdb_handlers = <bound method SpiffyTitles.add_imdb_handlers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.add_imgur_handlers = <bound method SpiffyTitles.add_imgur_handlers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.add_reddit_handlers = <bound method SpiffyTitles.add_reddit_handlers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.add_twitch_handlers = <bound method SpiffyTitles.add_twitch_handlers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.add_twitter_handlers = <bound method SpiffyTitles.add_twitter_handlers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.add_vimeo_handlers = <bound method SpiffyTitles.add_vimeo_handlers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.add_wikipedia_handlers = <bound method SpiffyTitles.add_wikipedia_handlers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.add_youtube_handlers = <bound method SpiffyTitles.add_youtube_handlers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
             self.alwaysCall = ()
              self.callAfter = ()
             self.callBefore = ['Web']
            self.callCommand = <bound method MetaSynchronized.__new__.<locals>.synchronized.<locals>.g of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
         self.callPrecedence = <bound method firewall.<locals>.m of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
          self.canonicalName = <bound method PluginMixin.canonicalName of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
                    self.cbs = []
            self.classModule = <module 'SpiffyTitles' from '/mnt/c/work/code/limnoria-plugins/SpiffyTitles/__init__.py'>
            self.commandArgs = ['self', 'irc', 'msg', 'args']
                    self.die = <bound method firewall.<locals>.m of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.dispatchCommand = <bound method IrcCommandDispatcher.dispatchCommand of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
              self.doPrivmsg = <bound method SpiffyTitles.doPrivmsg of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
            self.echoMessage = False
           self.echo_message = False
           self.filter_empty = <bound method SpiffyTitles.filter_empty of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
             self.getCommand = <bound method Commands.getCommand of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
         self.getCommandHelp = <bound method Commands.getCommandHelp of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.getCommandMethod = <bound method Commands.getCommandMethod of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
          self.getPluginHelp = <bound method PluginMixin.getPluginHelp of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_base_domain = <bound method SpiffyTitles.get_base_domain of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_channel_id_from_url = <bound method SpiffyTitles.get_channel_id_from_url of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_duration_from_seconds = <bound method SpiffyTitles.get_duration_from_seconds of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_formatted_title = <bound method SpiffyTitles.get_formatted_title of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
            self.get_headers = <bound method SpiffyTitles.get_headers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
          self.get_imdb_logo = <bound method SpiffyTitles.get_imdb_logo of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_link_from_cache = <bound method SpiffyTitles.get_link_from_cache of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_readable_file_size = <bound method SpiffyTitles.get_readable_file_size of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_source_by_url = <bound method SpiffyTitles.get_source_by_url of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
           self.get_template = <bound method SpiffyTitles.get_template of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_timestamp_from_youtube_url = <bound method SpiffyTitles.get_timestamp_from_youtube_url of <SpiffyTitles
 SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_title_by_url = <bound method SpiffyTitles.get_title_by_url of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_title_from_html = <bound method SpiffyTitles.get_title_from_html of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_total_seconds_from_duration = <bound method SpiffyTitles.get_total_seconds_from_duration of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_twitch_logo = <bound method SpiffyTitles.get_twitch_logo of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_urls_from_message = <bound method SpiffyTitles.get_urls_from_message of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
         self.get_user_agent = <bound method SpiffyTitles.get_user_agent of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_video_id_from_url = <bound method SpiffyTitles.get_video_id_from_url of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_youtube_logo = <bound method SpiffyTitles.get_youtube_logo of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
           self.handler_coub = <bound method SpiffyTitles.handler_coub of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.handler_dailymotion = <bound method SpiffyTitles.handler_dailymotion of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.handler_default = <bound method SpiffyTitles.handler_default of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
           self.handler_imdb = <bound method SpiffyTitles.handler_imdb of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
          self.handler_imgur = <bound method SpiffyTitles.handler_imgur of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.handler_imgur_album = <bound method SpiffyTitles.handler_imgur_album of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.handler_imgur_image = <bound method SpiffyTitles.handler_imgur_image of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
         self.handler_reddit = <bound method SpiffyTitles.handler_reddit of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
         self.handler_twitch = <bound method SpiffyTitles.handler_twitch of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.handler_twitter = <bound method SpiffyTitles.handler_twitter of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
          self.handler_vimeo = <bound method SpiffyTitles.handler_vimeo of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.handler_wikipedia = <bound method SpiffyTitles.handler_wikipedia of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.handler_youtube = <bound method SpiffyTitles.handler_youtube of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
               self.handlers = {'youtube.com': <bound method SpiffyTitles.handler_youtube of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'youtu.be': <bound method SpiffyTitles.handler_youtube of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'imdb.com': <bound method SpiffyTitles.handler_imdb of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'i.imgur.com': <bound method SpiffyTitles.handler_imgur_image of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'imgur.com': <bound method SpiffyTitles.handler_imgur of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'coub.com': <bound method SpiffyTitles.handler_coub of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'vimeo.com': <bound method SpiffyTitles.handler_vimeo of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'www.dailymotion.com': <bound method SpiffyTitles.handler_dailymotion of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'dailymotion.com': <bound method SpiffyTitles.handler_dailymotion of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'dai.ly': <bound method SpiffyTitles.handler_dailymotion of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'wikipedia.org': <bound method SpiffyTitles.handler_wikipedia of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'reddit.com': <bound method SpiffyTitles.handler_reddit of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'www.reddit.com': <bound method SpiffyTitles.handler_reddit of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'twitch.tv': <bound method SpiffyTitles.handler_twitch of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'www.twitch.tv': <bound method SpiffyTitles.handler_twitch of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'go.twitch.tv': <bound method SpiffyTitles.handler_twitch of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'clips.twitch.tv': <bound method SpiffyTitles.handler_twitch of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'twitter.com': <bound method SpiffyTitles.handler_twitter of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'www.twitter.com': <bound method SpiffyTitles.handler_twitter of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'x.com': <bound method SpiffyTitles.handler_twitter of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'www.x.com': <bound method SpiffyTitles.handler_twitter of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>}
               self.inFilter = <bound method firewall.<locals>.m of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
              self.isCommand = <bound method firewall.<locals>.m of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.isCommandMethod = <bound method Commands.isCommandMethod of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
             self.isDisabled = <bound method Commands.isDisabled of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.is_channel_allowed = <bound method SpiffyTitles.is_channel_allowed of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.is_ignored_domain = <bound method SpiffyTitles.is_ignored_domain of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.is_valid_imgur_id = <bound method SpiffyTitles.is_valid_imgur_id of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.is_whitelisted_domain = <bound method SpiffyTitles.is_whitelisted_domain of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
             self.link_cache = {}
           self.listCommands = <bound method Commands.listCommands of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
                    self.log = <Logger supybot (Level -1)>
        self.message_matches_ignore_pattern = <bound method SpiffyTitles.message_matches_ignore_pattern of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
                   self.name = <bound method Commands.name of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
               self.noIgnore = False
              self.outFilter = <bound method firewall.<locals>.m of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
         self.postTransition = <bound method firewall.<locals>.m of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.pre_command_callbacks = []
                self.proxies = {'http': None, 'https': None}
                 self.public = True
          self.registryValue = <bound method PluginMixin.registryValue of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.remove_control_characters = <bound method SpiffyTitles.remove_control_characters of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
                  self.reset = <bound method firewall.<locals>.m of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.setRegistryValue = <bound method PluginMixin.setRegistryValue of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
           self.setUserValue = <bound method PluginMixin.setUserValue of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
                      self.t = <bound method _wrap.<locals>.newf of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
               self.threaded = True
                self.timeout = 10
        self.title_matches_ignore_pattern = <bound method SpiffyTitles.title_matches_ignore_pattern of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
              self.userValue = <bound method PluginMixin.userValue of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.user_has_capability = <bound method SpiffyTitles.user_has_capability of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>

Frame get_youtube_logo in /mnt/c/work/code/limnoria-plugins/SpiffyTitles/plugin.py at line 1049
                        self = <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>
                     channel = {'kind': 'youtube#channel', 'etag': 'V8vD-dQ4Sf7NpfWBTSbu3_jyo40', 'id': 'UC8q8-EiWZEYg9U0Qr_oy8Nw', 'snippet': {'title': 'appas', 'description': '', 'customUrl': '@vjdep', 'publishedAt': '2009-11-24T08:52:56Z', 'thumbnails': {'default': {'url': 'https://yt3.ggpht.com/ytc/AIf8zZRV55TqQTmK8nt2WJ3O47bBR3PRhnXoTv5KuQ=s88-c-k-c0x00ffffff-no-rj', 'width': 88, 'height': 88}, 'medium': {'url': 'https://yt3.ggpht.com/ytc/AIf8zZRV55TqQTmK8nt2WJ3O47bBR3PRhnXoTv5KuQ=s240-c-k-c0x00ffffff-no-rj', 'width': 240, 'height': 240}, 'high': {'url': 'https://yt3.ggpht.com/ytc/AIf8zZRV55TqQTmK8nt2WJ3O47bBR3PRhnXoTv5KuQ=s800-c-k-c0x00ffffff-no-rj', 'width': 800, 'height': 800}}, 'localized': {'title': 'appas', 'description': ''}}, 'contentDetails': {'relatedPlaylists': {'likes': '', 'uploads': 'UU8q8-EiWZEYg9U0Qr_oy8Nw'}}, 'statistics': {'viewCount': '8207', 'subscriberCount': '43', 'hiddenSubscriberCount': False, 'videoCount': '35'}}
                  self.Proxy = <class 'supybot.callbacks.NestedCommandsIrcProxy'>
        self._MetaSynchronized_rlock = <unlocked _thread.RLock object owner=0 count=0 at 0x7f077fb43b80>
        self._PluginMixin__parent = <super: <class 'PluginMixin'>, <SpiffyTitles object>>
        self._SpiffyTitles__parent = <super: <class 'SpiffyTitles'>, <SpiffyTitles object>>
               self.__call__ = <bound method firewall.<locals>.m of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
              self.__class__ = <class 'SpiffyTitles.plugin.SpiffyTitles'>
            self.__delattr__ = <method-wrapper '__delattr__' of SpiffyTitles object at 0x7f0782b53390>
               self.__dict__ = {'_MetaSynchronized_rlock': <unlocked _thread.RLock object owner=0 count=0 at 0x7f077fb43b80>, '_SpiffyTitles__parent': <super: <class 'SpiffyTitles'>, <SpiffyTitles object>>, 'log': <Logger supybot (Level -1)>, '_PluginMixin__parent': <super: <class 'PluginMixin'>, <SpiffyTitles object>>, 'cbs': [], 'link_cache': {}, 'handlers': {'youtube.com': <bound method SpiffyTitles.handler_youtube of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'youtu.be': <bound method SpiffyTitles.handler_youtube of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'imdb.com': <bound method SpiffyTitles.handler_imdb of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'i.imgur.com': <bound method SpiffyTitles.handler_imgur_image of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'imgur.com': <bound method SpiffyTitles.handler_imgur of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'coub.com': <bound method SpiffyTitles.handler_coub of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'vimeo.com': <bound method SpiffyTitles.handler_vimeo of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'www.dailymotion.com': <bound method SpiffyTitles.handler_dailymotion of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'dailymotion.com': <bound method SpiffyTitles.handler_dailymotion of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'dai.ly': <bound method SpiffyTitles.handler_dailymotion of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'wikipedia.org': <bound method SpiffyTitles.handler_wikipedia of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'reddit.com': <bound method SpiffyTitles.handler_reddit of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'www.reddit.com': <bound method SpiffyTitles.handler_reddit of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'twitch.tv': <bound method SpiffyTitles.handler_twitch of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'www.twitch.tv': <bound method SpiffyTitles.handler_twitch of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'go.twitch.tv': <bound method SpiffyTitles.handler_twitch of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'clips.twitch.tv': <bound method SpiffyTitles.handler_twitch of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'twitter.com': <bound method SpiffyTitles.handler_twitter of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'www.twitter.com': <bound method SpiffyTitles.handler_twitter of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'x.com': <bound method SpiffyTitles.handler_twitter of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'www.x.com': <bound method SpiffyTitles.handler_twitter of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>}, 'timeout': 10, 'proxies': {'http': None, 'https': None}, 'classModule': <module 'SpiffyTitles' from '/mnt/c/work/code/limnoria-plugins/SpiffyTitles/__init__.py'>}
                self.__dir__ = <built-in method __dir__ of SpiffyTitles object at 0x7f0782b53390>
                self.__doc__ = 'Displays link titles when posted in a channel'
                 self.__eq__ = <method-wrapper '__eq__' of SpiffyTitles object at 0x7f0782b53390>
         self.__firewalled__ = {'isCommand': None, '_callCommand': None}
             self.__format__ = <built-in method __format__ of SpiffyTitles object at 0x7f0782b53390>
                 self.__ge__ = <method-wrapper '__ge__' of SpiffyTitles object at 0x7f0782b53390>
        self.__getattribute__ = <method-wrapper '__getattribute__' of SpiffyTitles object at 0x7f0782b53390>
           self.__getstate__ = <built-in method __getstate__ of SpiffyTitles object at 0x7f0782b53390>
                 self.__gt__ = <method-wrapper '__gt__' of SpiffyTitles object at 0x7f0782b53390>
               self.__hash__ = <method-wrapper '__hash__' of SpiffyTitles object at 0x7f0782b53390>
               self.__init__ = <bound method MetaSynchronized.__new__.<locals>.__init__ of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.__init_subclass__ = <built-in method __init_subclass__ of MetaSynchronizedAndFirewalled object at 0x216f880>
                 self.__le__ = <method-wrapper '__le__' of SpiffyTitles object at 0x7f0782b53390>
                 self.__lt__ = <method-wrapper '__lt__' of SpiffyTitles object at 0x7f0782b53390>
             self.__module__ = 'SpiffyTitles.plugin'
                 self.__ne__ = <method-wrapper '__ne__' of SpiffyTitles object at 0x7f0782b53390>
                self.__new__ = <built-in method __new__ of type object at 0x9563c0>
             self.__reduce__ = <built-in method __reduce__ of SpiffyTitles object at 0x7f0782b53390>
          self.__reduce_ex__ = <built-in method __reduce_ex__ of SpiffyTitles object at 0x7f0782b53390>
               self.__repr__ = <bound method IrcCallback.__repr__ of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
            self.__setattr__ = <method-wrapper '__setattr__' of SpiffyTitles object at 0x7f0782b53390>
             self.__sizeof__ = <built-in method __sizeof__ of SpiffyTitles object at 0x7f0782b53390>
                self.__str__ = <method-wrapper '__str__' of SpiffyTitles object at 0x7f0782b53390>
        self.__subclasshook__ = <built-in method __subclasshook__ of MetaSynchronizedAndFirewalled object at 0x216f880>
        self.__synchronized__ = ('__call__', 'callCommand', 'invalidCommand')
            self.__weakref__ = None
           self._callCommand = <bound method firewall.<locals>.m of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
              self._disabled = <supybot.callbacks.DisabledCommands object at 0x7f0782f28390>
        self._time_created_at = <bound method SpiffyTitles._time_created_at of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.add_coub_handlers = <bound method SpiffyTitles.add_coub_handlers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.add_dailymotion_handlers = <bound method SpiffyTitles.add_dailymotion_handlers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
           self.add_handlers = <bound method SpiffyTitles.add_handlers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.add_imdb_handlers = <bound method SpiffyTitles.add_imdb_handlers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.add_imgur_handlers = <bound method SpiffyTitles.add_imgur_handlers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.add_reddit_handlers = <bound method SpiffyTitles.add_reddit_handlers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.add_twitch_handlers = <bound method SpiffyTitles.add_twitch_handlers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.add_twitter_handlers = <bound method SpiffyTitles.add_twitter_handlers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.add_vimeo_handlers = <bound method SpiffyTitles.add_vimeo_handlers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.add_wikipedia_handlers = <bound method SpiffyTitles.add_wikipedia_handlers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.add_youtube_handlers = <bound method SpiffyTitles.add_youtube_handlers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
             self.alwaysCall = ()
              self.callAfter = ()
             self.callBefore = ['Web']
            self.callCommand = <bound method MetaSynchronized.__new__.<locals>.synchronized.<locals>.g of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
         self.callPrecedence = <bound method firewall.<locals>.m of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
          self.canonicalName = <bound method PluginMixin.canonicalName of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
                    self.cbs = []
            self.classModule = <module 'SpiffyTitles' from '/mnt/c/work/code/limnoria-plugins/SpiffyTitles/__init__.py'>
            self.commandArgs = ['self', 'irc', 'msg', 'args']
                    self.die = <bound method firewall.<locals>.m of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.dispatchCommand = <bound method IrcCommandDispatcher.dispatchCommand of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
              self.doPrivmsg = <bound method SpiffyTitles.doPrivmsg of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
            self.echoMessage = False
           self.echo_message = False
           self.filter_empty = <bound method SpiffyTitles.filter_empty of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
             self.getCommand = <bound method Commands.getCommand of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
         self.getCommandHelp = <bound method Commands.getCommandHelp of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.getCommandMethod = <bound method Commands.getCommandMethod of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
          self.getPluginHelp = <bound method PluginMixin.getPluginHelp of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_base_domain = <bound method SpiffyTitles.get_base_domain of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_channel_id_from_url = <bound method SpiffyTitles.get_channel_id_from_url of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_duration_from_seconds = <bound method SpiffyTitles.get_duration_from_seconds of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_formatted_title = <bound method SpiffyTitles.get_formatted_title of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
            self.get_headers = <bound method SpiffyTitles.get_headers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
          self.get_imdb_logo = <bound method SpiffyTitles.get_imdb_logo of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_link_from_cache = <bound method SpiffyTitles.get_link_from_cache of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_readable_file_size = <bound method SpiffyTitles.get_readable_file_size of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_source_by_url = <bound method SpiffyTitles.get_source_by_url of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
           self.get_template = <bound method SpiffyTitles.get_template of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_timestamp_from_youtube_url = <bound method SpiffyTitles.get_timestamp_from_youtube_url of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_title_by_url = <bound method SpiffyTitles.get_title_by_url of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_title_from_html = <bound method SpiffyTitles.get_title_from_html of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_total_seconds_from_duration = <bound method SpiffyTitles.get_total_seconds_from_duration of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_twitch_logo = <bound method SpiffyTitles.get_twitch_logo of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_urls_from_message = <bound method SpiffyTitles.get_urls_from_message of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
         self.get_user_agent = <bound method SpiffyTitles.get_user_agent of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_video_id_from_url = <bound method SpiffyTitles.get_video_id_from_url of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_youtube_logo = <bound method SpiffyTitles.get_youtube_logo of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
           self.handler_coub = <bound method SpiffyTitles.handler_coub of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.handler_dailymotion = <bound method SpiffyTitles.handler_dailymotion of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.handler_default = <bound method SpiffyTitles.handler_default of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
           self.handler_imdb = <bound method SpiffyTitles.handler_imdb of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
          self.handler_imgur = <bound method SpiffyTitles.handler_imgur of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.handler_imgur_album = <bound method SpiffyTitles.handler_imgur_album of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.handler_imgur_image = <bound method SpiffyTitles.handler_imgur_image of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
         self.handler_reddit = <bound method SpiffyTitles.handler_reddit of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
         self.handler_twitch = <bound method SpiffyTitles.handler_twitch of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.handler_twitter = <bound method SpiffyTitles.handler_twitter of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
          self.handler_vimeo = <bound method SpiffyTitles.handler_vimeo of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.handler_wikipedia = <bound method SpiffyTitles.handler_wikipedia of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.handler_youtube = <bound method SpiffyTitles.handler_youtube of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
               self.handlers = {'youtube.com': <bound method SpiffyTitles.handler_youtube of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'youtu.be': <bound method SpiffyTitles.handler_youtube of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'imdb.com': <bound method SpiffyTitles.handler_imdb of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'i.imgur.com': <bound method SpiffyTitles.handler_imgur_image of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'imgur.com': <bound method SpiffyTitles.handler_imgur of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'coub.com': <bound method SpiffyTitles.handler_coub of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'vimeo.com': <bound method SpiffyTitles.handler_vimeo of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'www.dailymotion.com': <bound method SpiffyTitles.handler_dailymotion of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'dailymotion.com': <bound method SpiffyTitles.handler_dailymotion of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'dai.ly': <bound method SpiffyTitles.handler_dailymotion of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'wikipedia.org': <bound method SpiffyTitles.handler_wikipedia of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'reddit.com': <bound method SpiffyTitles.handler_reddit of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'www.reddit.com': <bound method SpiffyTitles.handler_reddit of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'twitch.tv': <bound method SpiffyTitles.handler_twitch of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'www.twitch.tv': <bound method SpiffyTitles.handler_twitch of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'go.twitch.tv': <bound method SpiffyTitles.handler_twitch of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'clips.twitch.tv': <bound method SpiffyTitles.handler_twitch of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'twitter.com': <bound method SpiffyTitles.handler_twitter of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'www.twitter.com': <bound method SpiffyTitles.handler_twitter of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'x.com': <bound method SpiffyTitles.handler_twitter of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'www.x.com': <bound method SpiffyTitles.handler_twitter of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>}
               self.inFilter = <bound method firewall.<locals>.m of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
              self.isCommand = <bound method firewall.<locals>.m of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.isCommandMethod = <bound method Commands.isCommandMethod of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
             self.isDisabled = <bound method Commands.isDisabled of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.is_channel_allowed = <bound method SpiffyTitles.is_channel_allowed of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.is_ignored_domain = <bound method SpiffyTitles.is_ignored_domain of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.is_valid_imgur_id = <bound method SpiffyTitles.is_valid_imgur_id of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.is_whitelisted_domain = <bound method SpiffyTitles.is_whitelisted_domain of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
             self.link_cache = {}
           self.listCommands = <bound method Commands.listCommands of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
                    self.log = <Logger supybot (Level -1)>
        self.message_matches_ignore_pattern = <bound method SpiffyTitles.message_matches_ignore_pattern of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
                   self.name = <bound method Commands.name of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
               self.noIgnore = False
              self.outFilter = <bound method firewall.<locals>.m of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
         self.postTransition = <bound method firewall.<locals>.m of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.pre_command_callbacks = []
                self.proxies = {'http': None, 'https': None}
                 self.public = True
          self.registryValue = <bound method PluginMixin.registryValue of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.remove_control_characters = <bound method SpiffyTitles.remove_control_characters of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
                  self.reset = <bound method firewall.<locals>.m of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.setRegistryValue = <bound method PluginMixin.setRegistryValue of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
           self.setUserValue = <bound method PluginMixin.setUserValue of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
                      self.t = <bound method _wrap.<locals>.newf of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
               self.threaded = True
                self.timeout = 10
        self.title_matches_ignore_pattern = <bound method SpiffyTitles.title_matches_ignore_pattern of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
              self.userValue = <bound method PluginMixin.userValue of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.user_has_capability = <bound method SpiffyTitles.user_has_capability of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>

Frame registryValue in /usr/lib/python3/dist-packages/supybot/callbacks.py at line 1692
                        self = <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>
                        name = 'useBold'
                     channel = {'kind': 'youtube#channel', 'etag': 'V8vD-dQ4Sf7NpfWBTSbu3_jyo40', 'id': 'UC8q8-EiWZEYg9U0Qr_oy8Nw', 'snippet': {'title': 'appas', 'description': '', 'customUrl': '@vjdep', 'publishedAt': '2009-11-24T08:52:56Z', 'thumbnails': {'default': {'url': 'https://yt3.ggpht.com/ytc/AIf8zZRV55TqQTmK8nt2WJ3O47bBR3PRhnXoTv5KuQ=s88-c-k-c0x00ffffff-no-rj', 'width': 88, 'height': 88}, 'medium': {'url': 'https://yt3.ggpht.com/ytc/AIf8zZRV55TqQTmK8nt2WJ3O47bBR3PRhnXoTv5KuQ=s240-c-k-c0x00ffffff-no-rj', 'width': 240, 'height': 240}, 'high': {'url': 'https://yt3.ggpht.com/ytc/AIf8zZRV55TqQTmK8nt2WJ3O47bBR3PRhnXoTv5KuQ=s800-c-k-c0x00ffffff-no-rj', 'width': 800, 'height': 800}}, 'localized': {'title': 'appas', 'description': ''}}, 'contentDetails': {'relatedPlaylists': {'likes': '', 'uploads': 'UU8q8-EiWZEYg9U0Qr_oy8Nw'}}, 'statistics': {'viewCount': '8207', 'subscriberCount': '43', 'hiddenSubscriberCount': False, 'videoCount': '35'}}
                     network = None
                       value = True
                      plugin = 'SpiffyTitles'
                       group = <supybot.registry.Boolean object at 0x7f0782af16f0>
                       names = ['useBold']
                  self.Proxy = <class 'supybot.callbacks.NestedCommandsIrcProxy'>
        self._MetaSynchronized_rlock = <unlocked _thread.RLock object owner=0 count=0 at 0x7f077fb43b80>
        self._PluginMixin__parent = <super: <class 'PluginMixin'>, <SpiffyTitles object>>
        self._SpiffyTitles__parent = <super: <class 'SpiffyTitles'>, <SpiffyTitles object>>
               self.__call__ = <bound method firewall.<locals>.m of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
              self.__class__ = <class 'SpiffyTitles.plugin.SpiffyTitles'>
            self.__delattr__ = <method-wrapper '__delattr__' of SpiffyTitles object at 0x7f0782b53390>
               self.__dict__ = {'_MetaSynchronized_rlock': <unlocked _thread.RLock object owner=0 count=0 at 0x7f077fb43b80>, '_SpiffyTitles__parent': <super: <class 'SpiffyTitles'>, <SpiffyTitles object>>, 'log': <Logger supybot (Level -1)>, '_PluginMixin__parent': <super: <class 'PluginMixin'>, <SpiffyTitles object>>, 'cbs': [], 'link_cache': {}, 'handlers': {'youtube.com': <bound method SpiffyTitles.handler_youtube of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'youtu.be': <bound method SpiffyTitles.handler_youtube of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'imdb.com': <bound method SpiffyTitles.handler_imdb of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'i.imgur.com': <bound method SpiffyTitles.handler_imgur_image of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'imgur.com': <bound method SpiffyTitles.handler_imgur of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'coub.com': <bound method SpiffyTitles.handler_coub of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'vimeo.com': <bound method SpiffyTitles.handler_vimeo of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'www.dailymotion.com': <bound method SpiffyTitles.handler_dailymotion of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'dailymotion.com': <bound method SpiffyTitles.handler_dailymotion of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'dai.ly': <bound method SpiffyTitles.handler_dailymotion of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'wikipedia.org': <bound method SpiffyTitles.handler_wikipedia of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'reddit.com': <bound method SpiffyTitles.handler_reddit of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'www.reddit.com': <bound method SpiffyTitles.handler_reddit of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'twitch.tv': <bound method SpiffyTitles.handler_twitch of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'www.twitch.tv': <bound method SpiffyTitles.handler_twitch of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'go.twitch.tv': <bound method SpiffyTitles.handler_twitch of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'clips.twitch.tv': <bound method SpiffyTitles.handler_twitch of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'twitter.com': <bound method SpiffyTitles.handler_twitter of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'www.twitter.com': <bound method SpiffyTitles.handler_twitter of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'x.com': <bound method SpiffyTitles.handler_twitter of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'www.x.com': <bound method SpiffyTitles.handler_twitter of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>}, 'timeout': 10, 'proxies': {'http': None, 'https': None}, 'classModule': <module 'SpiffyTitles' from '/mnt/c/work/code/limnoria-plugins/SpiffyTitles/__init__.py'>}
                self.__dir__ = <built-in method __dir__ of SpiffyTitles object at 0x7f0782b53390>
                self.__doc__ = 'Displays link titles when posted in a channel'
                 self.__eq__ = <method-wrapper '__eq__' of SpiffyTitles object at 0x7f0782b53390>
         self.__firewalled__ = {'isCommand': None, '_callCommand': None}
             self.__format__ = <built-in method __format__ of SpiffyTitles object at 0x7f0782b53390>
                 self.__ge__ = <method-wrapper '__ge__' of SpiffyTitles object at 0x7f0782b53390>
        self.__getattribute__ = <method-wrapper '__getattribute__' of SpiffyTitles object at 0x7f0782b53390>
           self.__getstate__ = <built-in method __getstate__ of SpiffyTitles object at 0x7f0782b53390>
                 self.__gt__ = <method-wrapper '__gt__' of SpiffyTitles object at 0x7f0782b53390>
               self.__hash__ = <method-wrapper '__hash__' of SpiffyTitles object at 0x7f0782b53390>
               self.__init__ = <bound method MetaSynchronized.__new__.<locals>.__init__ of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.__init_subclass__ = <built-in method __init_subclass__ of MetaSynchronizedAndFirewalled object at 0x216f880>
                 self.__le__ = <method-wrapper '__le__' of SpiffyTitles object at 0x7f0782b53390>
                 self.__lt__ = <method-wrapper '__lt__' of SpiffyTitles object at 0x7f0782b53390>
             self.__module__ = 'SpiffyTitles.plugin'
                 self.__ne__ = <method-wrapper '__ne__' of SpiffyTitles object at 0x7f0782b53390>
                self.__new__ = <built-in method __new__ of type object at 0x9563c0>
             self.__reduce__ = <built-in method __reduce__ of SpiffyTitles object at 0x7f0782b53390>
          self.__reduce_ex__ = <built-in method __reduce_ex__ of SpiffyTitles object at 0x7f0782b53390>
               self.__repr__ = <bound method IrcCallback.__repr__ of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
            self.__setattr__ = <method-wrapper '__setattr__' of SpiffyTitles object at 0x7f0782b53390>
             self.__sizeof__ = <built-in method __sizeof__ of SpiffyTitles object at 0x7f0782b53390>
                self.__str__ = <method-wrapper '__str__' of SpiffyTitles object at 0x7f0782b53390>
        self.__subclasshook__ = <built-in method __subclasshook__ of MetaSynchronizedAndFirewalled object at 0x216f880>
        self.__synchronized__ = ('__call__', 'callCommand', 'invalidCommand')
            self.__weakref__ = None
           self._callCommand = <bound method firewall.<locals>.m of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
              self._disabled = <supybot.callbacks.DisabledCommands object at 0x7f0782f28390>
        self._time_created_at = <bound method SpiffyTitles._time_created_at of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.add_coub_handlers = <bound method SpiffyTitles.add_coub_handlers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.add_dailymotion_handlers = <bound method SpiffyTitles.add_dailymotion_handlers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
           self.add_handlers = <bound method SpiffyTitles.add_handlers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.add_imdb_handlers = <bound method SpiffyTitles.add_imdb_handlers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.add_imgur_handlers = <bound method SpiffyTitles.add_imgur_handlers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.add_reddit_handlers = <bound method SpiffyTitles.add_reddit_handlers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.add_twitch_handlers = <bound method SpiffyTitles.add_twitch_handlers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.add_twitter_handlers = <bound method SpiffyTitles.add_twitter_handlers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.add_vimeo_handlers = <bound method SpiffyTitles.add_vimeo_handlers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.add_wikipedia_handlers = <bound method SpiffyTitles.add_wikipedia_handlers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.add_youtube_handlers = <bound method SpiffyTitles.add_youtube_handlers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
             self.alwaysCall = ()
              self.callAfter = ()
             self.callBefore = ['Web']
            self.callCommand = <bound method MetaSynchronized.__new__.<locals>.synchronized.<locals>.g of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
         self.callPrecedence = <bound method firewall.<locals>.m of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
          self.canonicalName = <bound method PluginMixin.canonicalName of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
                    self.cbs = []
            self.classModule = <module 'SpiffyTitles' from '/mnt/c/work/code/limnoria-plugins/SpiffyTitles/__init__.py'>
            self.commandArgs = ['self', 'irc', 'msg', 'args']
                    self.die = <bound method firewall.<locals>.m of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.dispatchCommand = <bound method IrcCommandDispatcher.dispatchCommand of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
              self.doPrivmsg = <bound method SpiffyTitles.doPrivmsg of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
            self.echoMessage = False
           self.echo_message = False
           self.filter_empty = <bound method SpiffyTitles.filter_empty of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
             self.getCommand = <bound method Commands.getCommand of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
         self.getCommandHelp = <bound method Commands.getCommandHelp of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.getCommandMethod = <bound method Commands.getCommandMethod of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
          self.getPluginHelp = <bound method PluginMixin.getPluginHelp of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_base_domain = <bound method SpiffyTitles.get_base_domain of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_channel_id_from_url = <bound method SpiffyTitles.get_channel_id_from_url of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_duration_from_seconds = <bound method SpiffyTitles.get_duration_from_seconds of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_formatted_title = <bound method SpiffyTitles.get_formatted_title of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
            self.get_headers = <bound method SpiffyTitles.get_headers of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
          self.get_imdb_logo = <bound method SpiffyTitles.get_imdb_logo of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_link_from_cache = <bound method SpiffyTitles.get_link_from_cache of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_readable_file_size = <bound method SpiffyTitles.get_readable_file_size of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_source_by_url = <bound method SpiffyTitles.get_source_by_url of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
           self.get_template = <bound method SpiffyTitles.get_template of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_timestamp_from_youtube_url = <bound method SpiffyTitles.get_timestamp_from_youtube_url of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_title_by_url = <bound method SpiffyTitles.get_title_by_url of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_title_from_html = <bound method SpiffyTitles.get_title_from_html of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_total_seconds_from_duration = <bound method SpiffyTitles.get_total_seconds_from_duration of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_twitch_logo = <bound method SpiffyTitles.get_twitch_logo of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_urls_from_message = <bound method SpiffyTitles.get_urls_from_message of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
         self.get_user_agent = <bound method SpiffyTitles.get_user_agent of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_video_id_from_url = <bound method SpiffyTitles.get_video_id_from_url of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.get_youtube_logo = <bound method SpiffyTitles.get_youtube_logo of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
           self.handler_coub = <bound method SpiffyTitles.handler_coub of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.handler_dailymotion = <bound method SpiffyTitles.handler_dailymotion of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.handler_default = <bound method SpiffyTitles.handler_default of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
           self.handler_imdb = <bound method SpiffyTitles.handler_imdb of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
          self.handler_imgur = <bound method SpiffyTitles.handler_imgur of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.handler_imgur_album = <bound method SpiffyTitles.handler_imgur_album of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.handler_imgur_image = <bound method SpiffyTitles.handler_imgur_image of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
         self.handler_reddit = <bound method SpiffyTitles.handler_reddit of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
         self.handler_twitch = <bound method SpiffyTitles.handler_twitch of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.handler_twitter = <bound method SpiffyTitles.handler_twitter of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
          self.handler_vimeo = <bound method SpiffyTitles.handler_vimeo of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.handler_wikipedia = <bound method SpiffyTitles.handler_wikipedia of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.handler_youtube = <bound method SpiffyTitles.handler_youtube of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
               self.handlers = {'youtube.com': <bound method SpiffyTitles.handler_youtube of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'youtu.be': <bound method SpiffyTitles.handler_youtube of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'imdb.com': <bound method SpiffyTitles.handler_imdb of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'i.imgur.com': <bound method SpiffyTitles.handler_imgur_image of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'imgur.com': <bound method SpiffyTitles.handler_imgur of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'coub.com': <bound method SpiffyTitles.handler_coub of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'vimeo.com': <bound method SpiffyTitles.handler_vimeo of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'www.dailymotion.com': <bound method SpiffyTitles.handler_dailymotion of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'dailymotion.com': <bound method SpiffyTitles.handler_dailymotion of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'dai.ly': <bound method SpiffyTitles.handler_dailymotion of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'wikipedia.org': <bound method SpiffyTitles.handler_wikipedia of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'reddit.com': <bound method SpiffyTitles.handler_reddit of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'www.reddit.com': <bound method SpiffyTitles.handler_reddit of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'twitch.tv': <bound method SpiffyTitles.handler_twitch of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'www.twitch.tv': <bound method SpiffyTitles.handler_twitch of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'go.twitch.tv': <bound method SpiffyTitles.handler_twitch of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'clips.twitch.tv': <bound method SpiffyTitles.handler_twitch of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'twitter.com': <bound method SpiffyTitles.handler_twitter of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'www.twitter.com': <bound method SpiffyTitles.handler_twitter of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'x.com': <bound method SpiffyTitles.handler_twitter of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>, 'www.x.com': <bound method SpiffyTitles.handler_twitter of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>}
               self.inFilter = <bound method firewall.<locals>.m of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
              self.isCommand = <bound method firewall.<locals>.m of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.isCommandMethod = <bound method Commands.isCommandMethod of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
             self.isDisabled = <bound method Commands.isDisabled of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.is_channel_allowed = <bound method SpiffyTitles.is_channel_allowed of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.is_ignored_domain = <bound method SpiffyTitles.is_ignored_domain of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.is_valid_imgur_id = <bound method SpiffyTitles.is_valid_imgur_id of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.is_whitelisted_domain = <bound method SpiffyTitles.is_whitelisted_domain of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
             self.link_cache = {}
           self.listCommands = <bound method Commands.listCommands of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
                    self.log = <Logger supybot (Level -1)>
        self.message_matches_ignore_pattern = <bound method SpiffyTitles.message_matches_ignore_pattern of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
                   self.name = <bound method Commands.name of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
               self.noIgnore = False
              self.outFilter = <bound method firewall.<locals>.m of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
         self.postTransition = <bound method firewall.<locals>.m of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.pre_command_callbacks = []
                self.proxies = {'http': None, 'https': None}
                 self.public = True
          self.registryValue = <bound method PluginMixin.registryValue of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.remove_control_characters = <bound method SpiffyTitles.remove_control_characters of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
                  self.reset = <bound method firewall.<locals>.m of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.setRegistryValue = <bound method PluginMixin.setRegistryValue of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
           self.setUserValue = <bound method PluginMixin.setUserValue of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
                      self.t = <bound method _wrap.<locals>.newf of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
               self.threaded = True
                self.timeout = 10
        self.title_matches_ignore_pattern = <bound method SpiffyTitles.title_matches_ignore_pattern of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
              self.userValue = <bound method PluginMixin.userValue of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>
        self.user_has_capability = <bound method SpiffyTitles.user_has_capability of <SpiffyTitles SpiffyTitles <SpiffyTitles.plugin.SpiffyTitles object at 0x7f0782b53390>>>

Frame getSpecific in /usr/lib/python3/dist-packages/supybot/registry.py at line 446
                        self = <supybot.registry.Boolean object at 0x7f0782af16f0>
                     network = None
                     channel = {'kind': 'youtube#channel', 'etag': 'V8vD-dQ4Sf7NpfWBTSbu3_jyo40', 'id': 'UC8q8-EiWZEYg9U0Qr_oy8Nw', 'snippet': {'title': 'appas', 'description': '', 'customUrl': '@vjdep', 'publishedAt': '2009-11-24T08:52:56Z', 'thumbnails': {'default': {'url': 'https://yt3.ggpht.com/ytc/AIf8zZRV55TqQTmK8nt2WJ3O47bBR3PRhnXoTv5KuQ=s88-c-k-c0x00ffffff-no-rj', 'width': 88, 'height': 88}, 'medium': {'url': 'https://yt3.ggpht.com/ytc/AIf8zZRV55TqQTmK8nt2WJ3O47bBR3PRhnXoTv5KuQ=s240-c-k-c0x00ffffff-no-rj', 'width': 240, 'height': 240}, 'high': {'url': 'https://yt3.ggpht.com/ytc/AIf8zZRV55TqQTmK8nt2WJ3O47bBR3PRhnXoTv5KuQ=s800-c-k-c0x00ffffff-no-rj', 'width': 800, 'height': 800}}, 'localized': {'title': 'appas', 'description': ''}}, 'contentDetails': {'relatedPlaylists': {'likes': '', 'uploads': 'UU8q8-EiWZEYg9U0Qr_oy8Nw'}}, 'statistics': {'viewCount': '8207', 'subscriberCount': '43', 'hiddenSubscriberCount': False, 'videoCount': '35'}}
                       check = True
         fallback_to_channel = True
        self._Group__nonExistentEntry = <bound method Group.__nonExistentEntry of <supybot.registry.Boolean object at 0x7f0782af16f0>>
         self._Value__parent = <super: <class 'Value'>, <Boolean object>>
               self.__call__ = <bound method Value.__call__ of <supybot.registry.Boolean object at 0x7f0782af16f0>>
              self.__class__ = <class 'supybot.registry.Boolean'>
            self.__delattr__ = <method-wrapper '__delattr__' of Boolean object at 0x7f0782af16f0>
                self.__dir__ = <built-in method __dir__ of Boolean object at 0x7f0782af16f0>
                self.__doc__ = 'Value must be either True or False (or On or Off).'
                 self.__eq__ = <method-wrapper '__eq__' of Boolean object at 0x7f0782af16f0>
             self.__format__ = <built-in method __format__ of Boolean object at 0x7f0782af16f0>
                 self.__ge__ = <method-wrapper '__ge__' of Boolean object at 0x7f0782af16f0>
            self.__getattr__ = <bound method Group.__getattr__ of <supybot.registry.Boolean object at 0x7f0782af16f0>>
        self.__getattribute__ = <method-wrapper '__getattribute__' of Boolean object at 0x7f0782af16f0>
           self.__getstate__ = <built-in method __getstate__ of Boolean object at 0x7f0782af16f0>
                 self.__gt__ = <method-wrapper '__gt__' of Boolean object at 0x7f0782af16f0>
            self.__hasattr__ = <bound method Group.__hasattr__ of <supybot.registry.Boolean object at 0x7f0782af16f0>>
               self.__hash__ = <method-wrapper '__hash__' of Boolean object at 0x7f0782af16f0>
               self.__init__ = <bound method Value.__init__ of <supybot.registry.Boolean object at 0x7f0782af16f0>>
        self.__init_subclass__ = <built-in method __init_subclass__ of type object at 0x165ea60>
                 self.__le__ = <method-wrapper '__le__' of Boolean object at 0x7f0782af16f0>
                 self.__lt__ = <method-wrapper '__lt__' of Boolean object at 0x7f0782af16f0>
             self.__module__ = 'supybot.registry'
                 self.__ne__ = <method-wrapper '__ne__' of Boolean object at 0x7f0782af16f0>
                self.__new__ = <built-in method __new__ of type object at 0x9563c0>
             self.__reduce__ = <built-in method __reduce__ of Boolean object at 0x7f0782af16f0>
          self.__reduce_ex__ = <built-in method __reduce_ex__ of Boolean object at 0x7f0782af16f0>
               self.__repr__ = <method-wrapper '__repr__' of Boolean object at 0x7f0782af16f0>
            self.__setattr__ = <method-wrapper '__setattr__' of Boolean object at 0x7f0782af16f0>
             self.__sizeof__ = <built-in method __sizeof__ of Boolean object at 0x7f0782af16f0>
              self.__slots__ = ()
                self.__str__ = <bound method Value.__str__ of <supybot.registry.Boolean object at 0x7f0782af16f0>>
        self.__subclasshook__ = <built-in method __subclasshook__ of type object at 0x165ea60>
                 self._added = ['#limnoria-bots']
             self._callbacks = []
          self._channelValue = True
              self._children = InsensitivePreservingDict({'#limnoria-bots': ('#limnoria-bots', <supybot.registry.Boolean object at 0x7f077fb25850>)})
               self._default = False
                  self._help = 'Use bold in titles'
          self._lastModified = 704519.196308146
             self._makeChild = <bound method Value._makeChild of <supybot.registry.Boolean object at 0x7f0782af16f0>>
                  self._name = 'supybot.plugins.SpiffyTitles.useBold'
          self._networkValue = True
            self._opSettable = True
        self._orderAlphabetically = True
               self._private = False
              self._setValue = <bound method Value._setValue of <supybot.registry.Boolean object at 0x7f0782af16f0>>
           self._showDefault = True
         self._supplyDefault = True
                self._wasSet = True
            self.addCallback = <bound method Value.addCallback of <supybot.registry.Boolean object at 0x7f0782af16f0>>
                self.context = <bound method Value.context of <supybot.registry.Boolean object at 0x7f0782af16f0>>
                  self.error = <bound method Value.error of <supybot.registry.Boolean object at 0x7f0782af16f0>>
               self.errormsg = 'Value must be either True or False (or On or Off), not %r.'
                    self.get = <bound method Group.get of <supybot.registry.Boolean object at 0x7f0782af16f0>>
            self.getSpecific = <bound method Value.getSpecific of <supybot.registry.Boolean object at 0x7f0782af16f0>>
              self.getValues = <bound method Group.getValues of <supybot.registry.Boolean object at 0x7f0782af16f0>>
                   self.help = <bound method Group.help of <supybot.registry.Boolean object at 0x7f0782af16f0>>
               self.register = <bound method Group.register of <supybot.registry.Boolean object at 0x7f0782af16f0>>
         self.removeCallback = <bound method Value.removeCallback of <supybot.registry.Boolean object at 0x7f0782af16f0>>
                 self.rename = <bound method Group.rename of <supybot.registry.Boolean object at 0x7f0782af16f0>>
              self.serialize = <bound method Value.serialize of <supybot.registry.Boolean object at 0x7f0782af16f0>>
                    self.set = <bound method Boolean.set of <supybot.registry.Boolean object at 0x7f0782af16f0>>
                self.setName = <bound method Value.setName of <supybot.registry.Boolean object at 0x7f0782af16f0>>
               self.setValue = <bound method Boolean.setValue of <supybot.registry.Boolean object at 0x7f0782af16f0>>
             self.unregister = <bound method Group.unregister of <supybot.registry.Boolean object at 0x7f0782af16f0>>
                  self.value = False

Frame isChannel in /usr/lib/python3/dist-packages/supybot/ircutils.py at line 167
                           s = {'kind': 'youtube#channel', 'etag': 'V8vD-dQ4Sf7NpfWBTSbu3_jyo40', 'id': 'UC8q8-EiWZEYg9U0Qr_oy8Nw', 'snippet': {'title': 'appas', 'description': '', 'customUrl': '@vjdep', 'publishedAt': '2009-11-24T08:52:56Z', 'thumbnails': {'default': {'url': 'https://yt3.ggpht.com/ytc/AIf8zZRV55TqQTmK8nt2WJ3O47bBR3PRhnXoTv5KuQ=s88-c-k-c0x00ffffff-no-rj', 'width': 88, 'height': 88}, 'medium': {'url': 'https://yt3.ggpht.com/ytc/AIf8zZRV55TqQTmK8nt2WJ3O47bBR3PRhnXoTv5KuQ=s240-c-k-c0x00ffffff-no-rj', 'width': 240, 'height': 240}, 'high': {'url': 'https://yt3.ggpht.com/ytc/AIf8zZRV55TqQTmK8nt2WJ3O47bBR3PRhnXoTv5KuQ=s800-c-k-c0x00ffffff-no-rj', 'width': 800, 'height': 800}}, 'localized': {'title': 'appas', 'description': ''}}, 'contentDetails': {'relatedPlaylists': {'likes': '', 'uploads': 'UU8q8-EiWZEYg9U0Qr_oy8Nw'}}, 'statistics': {'viewCount': '8207', 'subscriberCount': '43', 'hiddenSubscriberCount': False, 'videoCount': '35'}}
                   chantypes = '#&!'
                  channellen = 50

+-----------------------+
| End of locals display |
+-----------------------+

I can not figure out why this piece of code does not work here, when it works in the video section.

oddluck commented 7 months ago

https://github.com/matiasw/limnoria-plugins/blob/spiffytitles-youtube-channel/SpiffyTitles%2Fplugin.py#L1013 You're overwriting the channel variable which is irc specific with the YouTube channel name... Call that variable something else like yt_channel or whatever

matiasw commented 7 months ago

@oddluck ah, that was dumb on my part. It's fixed in https://github.com/oddluck/limnoria-plugins/pull/61/commits/c7120bc7ba8356be9fc2fcdc7e282494c17ea790 and a pull request has been created: https://github.com/oddluck/limnoria-plugins/pull/61