Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SpiffyTitles: YouTube - Get Channel Info #26

Open
fred0r opened this issue Jun 16, 2020 · 5 comments
Open

SpiffyTitles: YouTube - Get Channel Info #26

fred0r opened this issue Jun 16, 2020 · 5 comments
Labels
enhancement New feature or request good first issue Good for newcomers help wanted Extra attention is needed

Comments

@fred0r
Copy link
Contributor

fred0r commented Jun 16, 2020

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

@oddluck oddluck added bug Something isn't working good first issue Good for newcomers help wanted Extra attention is needed labels Jun 17, 2020
@oddluck oddluck changed the title SpiffyTitles: YouTube - Announce YT-Channelname SpiffyTitles: YouTube - Get Channel Info Jun 17, 2020
@oddluck oddluck removed the bug Something isn't working label Jul 22, 2020
@oddluck oddluck added the enhancement New feature or request label Aug 21, 2021
@matiasw
Copy link

matiasw commented Jan 19, 2024

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

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

@fred0r
Copy link
Contributor Author

fred0r commented Jan 20, 2024

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

@matiasw
Copy link

matiasw commented Jan 21, 2024

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

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

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

Locals by frame, innermost last:


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


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


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


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


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


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


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


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


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

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

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

@oddluck
Copy link
Owner

oddluck commented Jan 21, 2024

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

@matiasw
Copy link

matiasw commented Feb 14, 2024

@oddluck ah, that was dumb on my part. It's fixed in c7120bc and a pull request has been created: #61

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request good first issue Good for newcomers help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

3 participants