limnoria-plugins icon indicating copy to clipboard operation
limnoria-plugins copied to clipboard

SpiffyTitles: YouTube - Get Channel Info

Open fred0r opened this issue 5 years ago • 5 comments

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/.........

fred0r avatar Jun 16 '20 20:06 fred0r

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.

matiasw avatar Jan 19 '24 04:01 matiasw

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

fred0r avatar Jan 20 '24 22:01 fred0r

@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="[email protected]", 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="[email protected]", 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="[email protected]", 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.

matiasw avatar Jan 21 '24 02:01 matiasw

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

oddluck avatar Jan 21 '24 03:01 oddluck

@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

matiasw avatar Feb 14 '24 01:02 matiasw