use registry.feed_handler instead of gPodderFetcher.custom_handlers
This commit is contained in:
parent
ba8ed45d11
commit
a7fbe0d531
4 changed files with 9 additions and 26 deletions
|
@ -322,10 +322,10 @@ class gPodderExtension:
|
|||
def on_load(self):
|
||||
self.ytdl = gPodderYoutubeDL(self.container.manager.core.config)
|
||||
logger.info('Registering youtube-dl.')
|
||||
model.register_custom_handler(self.ytdl)
|
||||
registry.feed_handler.register(self.ytdl.fetch_channel)
|
||||
registry.custom_downloader.register(self.ytdl.custom_downloader)
|
||||
|
||||
def on_unload(self):
|
||||
logger.info('Unregistering youtube-dl.')
|
||||
model.unregister_custom_handler(self.ytdl)
|
||||
registry.feed_handler.unregister(self.ytdl.fetch_channel)
|
||||
registry.custom_downloader.unregister(self.ytdl.custom_downloader)
|
||||
|
|
|
@ -177,13 +177,10 @@ class gPodderFetcher(feedcore.Fetcher):
|
|||
This class extends the feedcore Fetcher with the gPodder User-Agent and the
|
||||
Proxy handler based on the current settings in gPodder.
|
||||
"""
|
||||
custom_handlers = []
|
||||
|
||||
def fetch_channel(self, channel, max_episodes):
|
||||
for handler in self.custom_handlers:
|
||||
custom_feed = handler.fetch_channel(channel, max_episodes)
|
||||
if custom_feed is not None:
|
||||
return custom_feed
|
||||
custom_feed = registry.feed_handler.resolve(channel, None, max_episodes)
|
||||
if custom_feed is not None:
|
||||
return custom_feed
|
||||
# If we have a username or password, rebuild the url with them included
|
||||
# Note: using a HTTPBasicAuthHandler would be pain because we need to
|
||||
# know the realm. It can be done, but I think this method works, too
|
||||
|
@ -199,20 +196,6 @@ class gPodderFetcher(feedcore.Fetcher):
|
|||
url = escapist_videos.get_real_channel_url(url)
|
||||
return url
|
||||
|
||||
@classmethod
|
||||
def register(cls, handler):
|
||||
cls.custom_handlers.append(handler)
|
||||
|
||||
@classmethod
|
||||
def unregister(cls, handler):
|
||||
cls.custom_handlers.remove(handler)
|
||||
|
||||
|
||||
# The "register" method is exposed here for external usage
|
||||
register_custom_handler = gPodderFetcher.register
|
||||
|
||||
# The "unregister" method is exposed here for external usage
|
||||
unregister_custom_handler = gPodderFetcher.unregister
|
||||
|
||||
# Our podcast model:
|
||||
#
|
||||
|
|
|
@ -32,7 +32,7 @@ import urllib.parse
|
|||
import urllib.request
|
||||
|
||||
import gpodder
|
||||
from gpodder import feedcore, model, util
|
||||
from gpodder import feedcore, model, registry, util
|
||||
|
||||
_ = gpodder.gettext
|
||||
|
||||
|
@ -261,8 +261,8 @@ class SoundcloudFavFeed(SoundcloudFeed):
|
|||
|
||||
|
||||
# Register our URL handlers
|
||||
model.register_custom_handler(SoundcloudFeed)
|
||||
model.register_custom_handler(SoundcloudFavFeed)
|
||||
registry.feed_handler.register(SoundcloudFeed.fetch_channel)
|
||||
registry.feed_handler.register(SoundcloudFavFeed.fetch_channel)
|
||||
|
||||
|
||||
def search_for_user(query):
|
||||
|
|
|
@ -84,7 +84,7 @@ RESOLVER_NAMES = {
|
|||
# 'episode_basename': 'Resolve a good, unique download filename for an episode',
|
||||
# 'podcast_title': 'Resolve a good title for a podcast',
|
||||
# 'content_type': 'Resolve the content type (audio, video) of an episode',
|
||||
# 'feed_handler': 'Handle fetching of a feed',
|
||||
'feed_handler': 'Handle fetching of a feed',
|
||||
# 'fallback_feed_handler': 'Handle parsing of a feed (catch-all)',
|
||||
# 'url_shortcut': 'Expand shortcuts when adding a new URL',
|
||||
# 'after_download': 'Function to call with episodes after download finishes',
|
||||
|
|
Loading…
Reference in a new issue