def on_load(self):
        """ Load extension. """

        logger.debug('Loading Spotify extension.')

        spotify_cache.load()

        try:
            # gPodder 3.10.16
            registry = importlib.import_module('gpodder.registry')
            registry.feed_handler.register(SpotifyFeed.fetch_episodes)
        except ModuleNotFoundError:
            # gPodder 3.10.1
            logger.debug(
                'gpodder.registry module not found. Using fallback to "register_custom_handler".'
            )
            model.register_custom_handler(SpotifyFeed)
Esempio n. 2
0
class SoundcloudFavFeed(SoundcloudFeed):
    URL_REGEX = re.compile(
        'https?://([a-z]+\.)?soundcloud\.com/([^/]+)/favorites', re.I)

    def __init__(self, username):
        super(SoundcloudFavFeed, self).__init__(username)

    def get_title(self):
        return _('%s\'s favorites on Soundcloud') % self.username

    def get_link(self):
        return 'https://soundcloud.com/%s/favorites' % self.username

    def get_description(self):
        return _('Tracks favorited by %s on Soundcloud.') % self.username

    def get_new_episodes(self, channel, existing_guids):
        return self._get_new_episodes(channel, existing_guids, 'favorites')


# Register our URL handlers
model.register_custom_handler(SoundcloudFeed)
model.register_custom_handler(SoundcloudFavFeed)


def search_for_user(query):
    json_url = 'https://api.soundcloud.com/users.json?q=%s&consumer_key=%s' % (
        urllib.parse.quote(query), CONSUMER_KEY)
    return json.loads(util.urlopen(json_url).read().decode('utf-8'))
Esempio n. 3
0
    def get_new_episodes(self, channel, guids):
        tracks = []

        for track in self.playlist.getElementsByTagName('track'):
            title = self.get_text_contents(track.getElementsByTagName('title'))
            url = self.get_text_contents(track.getElementsByTagName('location'))
            if url in guids:
                continue

            filesize, filetype, filedate, filename = get_metadata(url)
            episode = channel.episode_factory({
                'title': title,
                'link': '',
                'description': '',
                'url': url,
                'file_size': int(filesize),
                'mime_type': filetype,
                'guid': url,
                'published': filedate,
            })
            episode.save()
            tracks.append(episode)

        return tracks


# Register our URL handlers
model.register_custom_handler(FM4OnDemandPlaylist)

Esempio n. 4
0
        for track in tracks:
            if track['guid'] not in existing_guids:
                episode = channel.episode_factory(track)
                episode.save()
                episodes.append(episode)

        return episodes, seen_guids

class SoundcloudFavFeed(SoundcloudFeed):
    URL_REGEX = re.compile('http://([a-z]+\.)?soundcloud\.com/([^/]+)/favorites', re.I)


    def __init__(self, username):
        super(SoundcloudFavFeed,self).__init__(username)

    def get_title(self):
        return _('%s\'s favorites on Soundcloud') % self.username

    def get_link(self):
        return 'http://soundcloud.com/%s/favorites' % self.username

    def get_description(self):
        return _('Tracks favorited by %s on Soundcloud.') % self.username

    def get_new_episodes(self, channel, existing_guids):
        return self._get_new_episodes(channel, existing_guids, 'favorites')

# Register our URL handlers
model.register_custom_handler(SoundcloudFeed)
model.register_custom_handler(SoundcloudFavFeed)
Esempio n. 5
0
        tracks = []
        seen_guids = []

        for track in self.playlist.getElementsByTagName('track'):
            title = self.get_text_contents(track.getElementsByTagName('title'))
            url = self.get_text_contents(
                track.getElementsByTagName('location'))
            seen_guids.append(url)
            if url in existing_guids:
                continue

            filesize, filetype, filedate, filename = get_metadata(url)
            episode = channel.episode_factory({
                'title': title,
                'link': '',
                'description': '',
                'url': url,
                'file_size': int(filesize),
                'mime_type': filetype,
                'guid': url,
                'published': filedate,
            })
            episode.save()
            tracks.append(episode)

        return tracks, seen_guids


# Register our URL handlers
model.register_custom_handler(FM4OnDemandPlaylist)