Example #1
0
class Xomphimhay:
    domain = "https://xem-phim.tv"
    api = "https://xem-phim.tv/api/v1/episodes/%s/player"

    def __init__(self):
        self.request = Request(session=True)
        if helper.has_file_path(
                'xomphimhay.bin') and helper.get_last_modified_time_file(
                    'xomphimhay.bin') + 43200 < int(time.time()):
            helper.remove_file('xomphimhay.bin')

        if helper.has_file_path('xomphimhay.bin'):
            with open(helper.get_file_path('xomphimhay.bin')) as f:
                self.request.set_session(pickle.load(f))
            cookies_jar = self.request.get_request_session().cookies
            cookies_jar.set('vietnamese',
                            'true',
                            domain='xomphimhay.com',
                            path='/')

    def updateSession(self):
        if not helper.has_file_path('xomphimhay.bin'):
            helper.write_file('xomphimhay.bin', '')

        with open(helper.get_file_path('xomphimhay.bin'), 'wb+') as f:
            pickle.dump(self.request.get_request_session(), f)

    def getCategory(self):
        response = self.request.get(self.domain)
        return Category().get(response), Channel().get(response)

    def getChannel(self, channel, page=1):
        channel = channel.replace(self.domain, "")
        if page > 1:
            url = '%s%s/trang-%d/' % (self.domain, channel, page)
        else:
            url = '%s%s' % (self.domain, channel)

        response = self.request.get(url)
        return Channel().get(response)

    def getMovie(self, url):
        response = self.request.get(url)
        url = Movie().get_movie_link(response)
        response = self.request.get(url)
        self.updateSession()
        return Movie().get(response, url)

    def getLink(self, movie):
        # https://xomphimhay.com/api/v1/episodes/1155146/player
        url, mid = movie['link'].split('|')
        response = self.request.get(self.api % mid)
        return Movie().get_link(response, self.domain, self.request, url)

    def search(self, text, page=1):
        url = "%s/tim-kiem/%s/" % (self.domain, urllib.quote_plus(text))
        response = self.request.get(url)
        return Channel().get(response)
Example #2
0
class Fcine:
    domain = "https://fcine.net"
    token = None
    member_id = None

    def __init__(self):
        if not helper.getSetting('fcine.username'):
            # helper.message('Please login to fcine.net', 'Login Required')
            self.username = '******'
            self.password = '******'
        else:
            self.username = helper.getSetting('fcine.username'),
            self.password = helper.getSetting('fcine.password'),

        self.request = Request(header={
            'User-Agent': 'Mozilla/5.0',
            'origin': 'https://fcine.net',
            'referer': 'https://fcine.net/login/',
        },
                               session=True)

        if helper.has_file_path(
                'fcine.bin'
        ) and helper.get_last_modified_time_file('fcine.bin') + 43200 < int(
                time.time()):
            helper.remove_file('fcine.bin')

        if helper.has_file_path('fcine.bin'):
            self.request.set_session(
                pickle.loads(helper.read_file('fcine.bin', True)))
        else:
            self.login()

    def updateSession(self):
        helper.write_file('fcine.bin',
                          pickle.dumps(self.request.get_request_session()),
                          True)

    def get_token(self, response=None):
        if not response:
            response = self.request.get('%s/page/help/' % self.domain)

        self.token = re.search('csrfKey: "(.*)",', response).group(1)
        self.member_id = re.search('memberID: (\d+)', response).group(1)

        return self.token, self.member_id

    def login(self):
        self.get_token()

        params = {
            'login__standard_submitted': 1,
            'csrfKey': self.token,
            'auth': self.username,
            'password': self.password,
            'remember_me': 1,
            'remember_me_checkbox': 1
        }
        response = self.request.post('%s/login/' % self.domain, params)
        self.updateSession()
        return response

    def getCategory(self):
        response = self.request.get(self.domain)
        movies = Channel().get(response, 1)
        movies['page'] = 1
        return Category().get(response), movies

    def getChannel(self, channel, page=1):
        url = '%s?alphabet=all&page=%d' % (channel, page)
        response = self.request.get(url)
        return Channel().get(response, page)

    def getMovie(self, url):
        # self.get_token()
        # response = self.login(
        #     self.username,
        #     self.password,
        #     {'referer': id})
        return Movie().get(self.request.get(url))

    def getLink(self, url):
        response = self.request.get(url)
        return Movie().get_link(response)

    def search(self, text):
        url = "%s/findContent/" % self.domain
        params = {'term': text}
        response = self.request.post(url, params)
        return Channel().get(response, 1)
Example #3
0
class Hdvietnam:
    domain = "http://www.hdvietnam.com"

    def __init__(self):
        if not helper.getSetting('hdvietnam.username'):
            self.username = '******'
            self.password = '******'
        else:
            self.username = helper.getSetting('hdvietnam.username')
            self.password = helper.getSetting('hdvietnam.password')

        self.request = Request(header={
            'User-Agent': 'Mozilla/5.0',
            'Origin': self.domain,
            'Referer': self.domain
        },
                               session=True)

        if helper.has_file_path(
                'hdvietnam.bin'
        ) and helper.get_last_modified_time_file('hdvietnam.bin') + 3600 < int(
                time.time()):
            helper.remove_file('hdvietnam.bin')

        if helper.has_file_path('hdvietnam.bin'):
            self.request.set_session(
                pickle.loads(helper.read_file('hdvietnam.bin', True)))
        else:
            self.login()

    def login(self, redirect='/'):
        params = {
            'login': self.username,
            'register': 0,
            'password': self.password,
            'remember': 1,
            'cookie_check': 1,
            '_xfToken': '',
            'redirect': redirect
        }
        response = self.request.post('%s/login/login' % self.domain, params)
        helper.write_file('hdvietnam.bin',
                          pickle.dumps(self.request.get_request_session()),
                          True)
        return response

    def thank(self, mid, token, postLink):
        params = {
            '_xfRequestUri': '/%s' % mid,
            '_xfToken': token,
            '_xfNoRedirect': 1,
            '_xfResponseType': 'json'
        }

        for v in postLink:
            url = '{}/{}'.format(self.domain, v)
            url = url.replace('likes', 'like')
            self.request.post(url, params=params)

    def getCategory(self):
        return Category().get(), None

    def getChannel(self, channel, page=1):
        channel = channel.replace(self.domain, "")
        if page > 1:
            url = '%s%spage-%d' % (self.domain, channel, page)
        else:
            url = '%s%s' % (self.domain, channel)
        response = Request().get(url)
        return Channel().get(response, page=page, domain=self.domain)

    def getMovie(self, movie):
        url = '%s/%s' % (self.domain, movie)
        self.login(url)
        response = self.request.get(url)
        parser = Movie()
        result, postLinks = parser.is_block(response)
        if result is True:
            token = re.findall(r'name="_xfToken"\svalue="(.*?)"\s', response)
            self.thank(movie, token[0], postLinks)
            response = self.request.get(url)
            parser.is_block(response)

        result = parser.get(response, url)
        return result

    def search(self, text):
        text = quote_plus(text)
        params = {
            'keywords': text,
            'nodes[]': [337, 116, 150, 33, 57, 123],
            'type': 'post',
            'order': 'date',
            'child_nodes': 1
        }

        url = "%s/search/search" % self.domain
        response = Request().post(url, params=params)
        return Channel().get_search(response)