#!/usr/bin/env python
# -*- coding: utf-8 -*-

import re

from module.plugins.Crypter import Crypter

class YoutubeBatch(Crypter):
    __name__ = "YoutubeBatch"
    __type__ = "container"
    __pattern__ = r"http://(?:[^/]*?)youtube\.com/((?:view_play_list|playlist|.*?feature=PlayList).*?[\?&](?:list|p)=|user/)(\w+)"
    __version__ = "0.92"
    __description__ = """Youtube.com Channel Download Plugin"""
    __author_name__ = ("RaNaN", "Spoob", "zoidberg")
    __author_mail__ = ("RaNaN@pyload.org", "spoob@pyload.org", "zoidberg@mujmail.cz")

    def decrypt(self, pyfile):
        match_id = re.match(self.__pattern__, self.pyfile.url)
        if match_id.group(1) == "user/":
            url = "http://gdata.youtube.com/feeds/api/users/%s/uploads?v=2" % match_id.group(2)
        else:
            url = "http://gdata.youtube.com/feeds/api/playlists/%s?v=2" % match_id.group(2)

        rep = self.load(url)
        new_links = []
        new_links.extend(re.findall(r"href\='(http:\/\/www.youtube.com\/watch\?v\=[^']+)&", rep))
        self.packages.append((self.pyfile.package().name, new_links, self.pyfile.package().name))