diff options
author | 2015-08-09 00:50:54 +0200 | |
---|---|---|
committer | 2015-08-09 00:50:54 +0200 | |
commit | b0ef3f1673e1930916604bb1264ca3a38414bc8d (patch) | |
tree | c97936e4d2a4cd6eb1072c65c8a08a7d18816b18 /module/plugins/crypter/DailymotionComFolder.py | |
parent | [XFileSharingPro][XFileSharingProFolder] Added default __pattern__ (diff) | |
parent | Fix https://github.com/pyload/pyload/issues/1707 (diff) | |
download | pyload-b0ef3f1673e1930916604bb1264ca3a38414bc8d.tar.xz |
Merge pull request #1 from pyload/stable
sync with stable
Diffstat (limited to 'module/plugins/crypter/DailymotionComFolder.py')
-rw-r--r-- | module/plugins/crypter/DailymotionComFolder.py | 65 |
1 files changed, 33 insertions, 32 deletions
diff --git a/module/plugins/crypter/DailymotionComFolder.py b/module/plugins/crypter/DailymotionComFolder.py index 01caa0bb8..8a4a0f258 100644 --- a/module/plugins/crypter/DailymotionComFolder.py +++ b/module/plugins/crypter/DailymotionComFolder.py @@ -4,14 +4,15 @@ import re import urlparse from module.common.json_layer import json_loads -from module.plugins.Crypter import Crypter -from module.utils import save_join +from module.plugins.internal.Crypter import Crypter +from module.utils import save_join as fs_join class DailymotionComFolder(Crypter): __name__ = "DailymotionComFolder" __type__ = "crypter" - __version__ = "0.01" + __version__ = "0.03" + __status__ = "testing" __pattern__ = r'https?://(?:www\.)?dailymotion\.com/((playlists/)?(?P<TYPE>playlist|user)/)?(?P<ID>[\w^_]+)(?(TYPE)|#)' __config__ = [("use_subfolder" , "bool", "Save package to subfolder" , True), @@ -22,16 +23,16 @@ class DailymotionComFolder(Crypter): __authors__ = [("Walter Purcaro", "vuolter@gmail.com")] - def api_response(self, ref, req=None): + def api_response(self, ref, data=None): url = urlparse.urljoin("https://api.dailymotion.com/", ref) - html = self.load(url, get=req) + html = self.load(url, get=data) return json_loads(html) - def getPlaylistInfo(self, id): - ref = "playlist/" + id - req = {"fields": "name,owner.screenname"} - playlist = self.api_response(ref, req) + def get_playlist_info(self, id): + ref = "playlist/" + id + data = {'fields': "name,owner.screenname"} + playlist = self.api_response(ref, data) if "error" in playlist: return @@ -41,10 +42,10 @@ class DailymotionComFolder(Crypter): return name, owner - def _getPlaylists(self, user_id, page=1): - ref = "user/%s/playlists" % user_id - req = {"fields": "id", "page": page, "limit": 100} - user = self.api_response(ref, req) + def _get_playlists(self, user_id, page=1): + ref = "user/%s/playlists" % user_id + data = {'fields': "id", 'page': page, 'limit': 100} + user = self.api_response(ref, data) if "error" in user: return @@ -53,18 +54,18 @@ class DailymotionComFolder(Crypter): yield playlist['id'] if user['has_more']: - for item in self._getPlaylists(user_id, page + 1): + for item in self._get_playlists(user_id, page + 1): yield item - def getPlaylists(self, user_id): - return [(id,) + self.getPlaylistInfo(id) for id in self._getPlaylists(user_id)] + def get_playlists(self, user_id): + return [(id,) + self.get_playlist_info(id) for id in self._get_playlists(user_id)] - def _getVideos(self, id, page=1): - ref = "playlist/%s/videos" % id - req = {"fields": "url", "page": page, "limit": 100} - playlist = self.api_response(ref, req) + def _get_videos(self, id, page=1): + ref = "playlist/%s/videos" % id + data = {'fields': "url", 'page': page, 'limit': 100} + playlist = self.api_response(ref, data) if "error" in playlist: return @@ -73,12 +74,12 @@ class DailymotionComFolder(Crypter): yield video['url'] if playlist['has_more']: - for item in self._getVideos(id, page + 1): + for item in self._get_videos(id, page + 1): yield item - def getVideos(self, playlist_id): - return list(self._getVideos(playlist_id))[::-1] + def get_videos(self, playlist_id): + return list(self._get_videos(playlist_id))[::-1] def decrypt(self, pyfile): @@ -87,19 +88,19 @@ class DailymotionComFolder(Crypter): m_type = m.group('TYPE') if m_type == "playlist": - self.logDebug("Url recognized as Playlist") - p_info = self.getPlaylistInfo(m_id) + self.log_debug("Url recognized as Playlist") + p_info = self.get_playlist_info(m_id) playlists = [(m_id,) + p_info] if p_info else None else: - self.logDebug("Url recognized as Channel") - playlists = self.getPlaylists(m_id) - self.logDebug("%s playlist\s found on channel \"%s\"" % (len(playlists), m_id)) + self.log_debug("Url recognized as Channel") + playlists = self.get_playlists(m_id) + self.log_debug("%s playlist\s found on channel \"%s\"" % (len(playlists), m_id)) if not playlists: self.fail(_("No playlist available")) for p_id, p_name, p_owner in playlists: - p_videos = self.getVideos(p_id) - p_folder = save_join(self.config['general']['download_folder'], p_owner, p_name) - self.logDebug("%s video\s found on playlist \"%s\"" % (len(p_videos), p_name)) - self.packages.append((p_name, p_videos, p_folder)) #: folder is NOT recognized by pyload 0.4.9! + p_videos = self.get_videos(p_id) + p_folder = fs_join(self.pyload.config.get("general", "download_folder"), p_owner, p_name) + self.log_debug("%s video\s found on playlist \"%s\"" % (len(p_videos), p_name)) + self.packages.append((p_name, p_videos, p_folder)) #: Folder is NOT recognized by pyload 0.4.9! |