Пример #1
0
    def updateSession(self, url, delay=10):
        scraper = CloudScraper.create_scraper(delay=delay)
        scraper.headers.update({'User-Agent': user_agent})
        self.cookies = scraper.get(url).cookies.get_dict()
        if not helper.has_file_path('phimbathu.bin'):
            helper.write_file('phimbathu.bin', '')

        with open(helper.get_file_path('phimbathu.bin'), 'wb+') as f:
            pickle.dump(self.cookies, f)
Пример #2
0
 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
Пример #3
0
    def parse_link(self, url):
        r = re.search('stream.phim14.net/public/dist/index.html\?id=(.*)', url)
        if r:
            id = r.group(1)
            url = "http://stream.phim14.net/hls/%s/%s.playlist.m3u8" % (id, id)
            # res = Request().get(url)
            # abs_url = 'http://stream.phim14.net/hls/%s/drive/' % id
            # res = res.replace('/drive/', abs_url)
            url = helper.write_file('stream.strm', url)

        return url
Пример #4
0
    def parse_link(self, url):
        r = re.search('stream.phim14.net/public/dist/index.html\?id=(.*)', url)
        if r:
            id = r.group(1)
            url = "http://stream.phim14.net/hls/%s/%s.playlist.m3u8" % (id, id)
            # res = Request().get(url)
            # abs_url = 'http://stream.phim14.net/hls/%s/drive/' % id
            # res = res.replace('/drive/', abs_url)
            url = helper.write_file('stream.strm', url)

        return url
Пример #5
0
def get_hydrax_phimmoi_stream(stream, n):
    global origin

    txt = "#EXTM3U\n#EXT-X-VERSION:4\n#EXT-X-PLAYLIST-TYPE:VOD\n#EXT-X-TARGETDURATION:" + stream[
        'duration'] + "\n#EXT-X-MEDIA-SEQUENCE:0\n"

    if 'hash' in stream:
        txt += "#EXT-X-HASH:%s\n" % stream['hash']
        txt += "#EXT-X-KEY:METHOD=AES-128,URI=\"%s\",IV=%s\n" % (
            stream['hash'], stream['iv'])

    links = []

    r = len(stream['range'])
    o = len(n)
    a = 'expired' in stream and stream['expired'] or None
    s = 0
    l = stream['multiRange']
    h = len(l)

    if stream['type'] == 2:
        r = 0
        for t in range(h):
            u = stream['multiData'][t]['file']
            f = 0
            p = 0

            for d in range(len(l[t])):
                if s < o:
                    c = n[s]
                    s += 1
                else:
                    s = 1
                    c = n[0]

                txt += "#EXTINF:%s,\n" % stream['extinf'][r]
                txt += "#EXT-X-BYTERANGE:%s\n" % l[t][d]

                y = l[t][d]

                c = "http://" + c
                # c += stream['id'] and "/" + stream['id'] + "/" + stream['range'][t] or ""
                if '@' in l[t][d]:
                    if l[t][d].find('@') == -1: continue
                    g, y = l[t][d].split('@')
                    g, y = int(g), int(y)
                    f = d and p + 1 or y
                    p = y and f + g - 1 or g - 1
                    y = '%s-%s' % (f, p)

                if a:
                    url = a and c + "/" + a + "/" + u
                else:
                    url = c + "/" + str(r) + "/" + str(u)
                # url += stream['id'] and "/" + y + ".js" or "/" + y + ".jpg"
                if url not in links:
                    links.append(url)

                txt += url + "\n"
                r += 1
            if h == t + 1:
                txt += "#EXT-X-ENDLIST"

    elif stream['type'] == 3:
        for t in range(h):
            u = stream['multiData'][t]['file']
            if s < o:
                c = n[s]
                s += 1
            else:
                s = 1
                c = n[0]

            txt += "#EXTINF:" + stream['extinf'][t] + ",\n"
            c = "http://" + c
            # e.id && (c = c + "/" + e.id)
            c += stream['id'] and "/" + stream['id'] or ""
            url = a and c + "/basic/" + a + "/" + u + "." + (
                stream['id'] and "js"
                or "jpg") or c + "/basic/" + r + "/" + u + "." + (
                    stream['id'] and "js" or "jpg")

            if url not in links:
                links.append(url)

            txt += url + "\n"
            r += 1
            if h == t + 1:
                txt += "#EXT-X-ENDLIST"

    arequest = AsyncRequest()

    results = arequest.get(links, headers={'origin': origin})

    media_urls = []
    for i in range(len(links)):
        try:
            media_url = json.loads(results[i])['url']
            txt = txt.replace(links[i], media_url)
            if media_url not in media_urls:
                media_urls.append(media_url)
        except:
            print(links[i])

    if stream['type'] == 2:
        max_targetduration = 12
        play_list = "#EXTM3U\n#EXT-X-VERSION:4\n#EXT-X-PLAYLIST-TYPE:VOD\n#EXT-X-TARGETDURATION:12\n#EXT-X-MEDIA-SEQUENCE:0\n"
        if 'hash' in stream:
            path = helper.write_file('hydrax.m3u8',
                                     stream['hash'].encode(),
                                     binary=True)
            path = path.replace('\\', '/')
            # url = PasteBin().dpaste(stream['hash'], name='hydrax.key', expire=60)
            play_list += "#EXT-X-KEY:METHOD=AES-128,URI=\"file://%s\",IV=%s\n" % (
                path, stream['iv'])

        for link in media_urls:
            slashlink = link.replace('-', '\\-')
            slashlink = slashlink.replace('*', '\\*')
            slashlink = slashlink.replace('?', '\\?')
            segments = re.findall(
                r"(#EXTINF:([0-9]*\.?[0-9]+),\n#EXT-X-BYTERANGE:([0-9]+)@([0-9]+)(?:(?!#EXTINF).)*"
                + slashlink + ")", txt, re.DOTALL)
            duration = 0
            lengthbyte = 0
            startbyte = 999999999
            for segment in segments:
                duration += float(segment[1])
                startbyte = int(segment[3]) < startbyte and int(
                    segment[3]) or startbyte
                lengthbyte += int(segment[2])

            play_list += "#EXTINF:%s,\n" % duration
            play_list += "#EXT-X-BYTERANGE:%s@%s\n" % (lengthbyte, startbyte)
            play_list += "%s\n" % link
            if duration > max_targetduration:
                max_targetduration = duration

        play_list = play_list.replace(
            "TARGETDURATION:12",
            "TARGETDURATION:" + str(int(math.ceil(max_targetduration))))
        play_list += "#EXT-X-ENDLIST"
    elif stream['type'] == 3:
        play_list = txt

    url = PasteBin().dpaste(play_list, name=stream['id'], expire=60)
    return url
Пример #6
0
    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)
Пример #7
0
 def updateSession(self):
     helper.write_file('fcine.bin',
                       pickle.dumps(self.request.get_request_session()),
                       True)