コード例 #1
0
ファイル: kartina_videos.py プロジェクト: Iohan36/iptvdream
	def getVideos(self, stype='last', page=1, genre=[],  nums_onpage=20, query=''):
		if not VIDEO_CACHING:
			self.videos = {}
						
		params = {"type" : stype,
				  "nums" : nums_onpage,
				  "page" : page,
				  "genre" : "|".join(genre) }
		if stype == 'text':
			params['query'] = query
		root = self.getData("/api/xml/vod_list?"+urllib.urlencode(params), "getting video list by type %s" % stype)
		videos_count = int(root.findtext('total'))
		
		self.currentPageIds = []
		for v in root.find('rows'):
			vid = int(v.findtext('id'))
			self.currentPageIds += [vid]
			name = v.findtext('name').encode('utf-8')
			video = Video(name)
			video.name_orig = v.findtext('name_orig').encode('utf-8')
			video.descr = unescapeEntities(v.findtext('description')).encode('utf-8')
			video.image = v.findtext('poster')
			video.year = v.findtext('year')
			video.rate_imdb = floatConvert(v.findtext('rate_imdb'))
			video.rate_kinopoisk = floatConvert(v.findtext('rate_kinopoisk'))
			video.rate_mpaa = v.findtext('rate_mpaa')
			video.country = v.findtext('country').encode('utf-8')
			video.genre = v.findtext('genre_str').encode('utf-8')
			self.videos[vid] = video				
		return videos_count 
コード例 #2
0
ファイル: kartina_api.py プロジェクト: Iohan36/iptvdream
	def getDayEpg(self, cid, date = None):
		if not date:
			date = syncTime()
		params = {"m" : "epg",
				  "act" : "show_day_xml",
				  "day" : date.strftime("%d%m%y"),
				  "cid" : cid}
		root = self.getData("/?"+urllib.urlencode(params), "EPG for channel %s" % cid)
		epglist = []
		archive = int(root.attrib.get("have_archive").encode("utf-8"))
		self.channels[cid].archive = archive
		for program in root:
			t = int(program.attrib.get("t_start").encode("utf-8"))
			time = datetime.datetime.fromtimestamp(t)
			progname = unescapeEntities(program.attrib.get("progname")).encode("utf-8")
			pdescr =  unescapeEntities(program.attrib.get("pdescr")).encode("utf-8")
			epglist += [(time, progname, pdescr)]
		return epglist
コード例 #3
0
ファイル: kartina_api.py プロジェクト: Iohan36/iptvdream
	def getGmtEpg(self, id):
		params = {"m" : "channels",
				  "act" : "get_stream_url",
				  "cid" : id,
				  "gmt": (syncTime() + secTd(self.aTime)).strftime("%s"),
				  "just_info" : 1 }
		root = self.getData("/?"+urllib.urlencode(params), "get GmtEpg of stream %s" % id)
		prog = unescapeEntities(root.attrib.get("programm")).encode("utf-8")
		tstart = datetime.datetime.fromtimestamp( int(root.attrib.get("start").encode("utf-8")) ) #unix
		tend = datetime.datetime.fromtimestamp( int(root.attrib.get("next").encode("utf-8")) )
		self.channels[id].aepg = EpgEntry(prog, tstart,  tend)
コード例 #4
0
    def getVideoInfo(self, vid):
        params = {"id": vid}
        root = self.getData("/api/xml/vod_info?" + urllib.urlencode(params),
                            "getting video info %s" % vid)
        v = root.find('film')
        name = v.findtext('name').encode('utf-8')
        video = Video(name)

        video.name_orig = v.findtext('name_orig').encode('utf-8')
        video.descr = unescapeEntities(
            v.findtext('description')).encode('utf-8')
        video.image = v.findtext('poster')
        video.year = v.findtext('year')
        video.rate_imdb = floatConvert(v.findtext('rate_imdb'))
        video.rate_kinopoisk = floatConvert(v.findtext('rate_kinopoisk'))
        video.rate_mpaa = v.findtext('rate_mpaa')
        video.country = v.findtext('country').encode('utf-8')
        video.genre = v.findtext('genre_str').encode('utf-8')
        video.length = v.findtext('length') and int(v.findtext('length'))
        video.director = v.findtext('director').encode('utf-8')
        video.scenario = v.findtext('scenario').encode('utf-8')
        video.actors = v.findtext('actors').encode('utf-8')
        video.studio = v.findtext('studio')
        video.awards = v.findtext('awards')
        video.budget = v.findtext('budget')
        video.files = []
        for f in v.find('videos'):
            episode = {}
            fid = int(f.findtext('id'))
            episode["format"] = f.findtext('format')
            episode["length"] = f.findtext('length')
            episode["title"] = f.findtext('title').encode(
                'utf-8') or video.name
            episode["tracks"] = []
            episode_name = ""
            if episode['title'] != video.name:
                episode_name = episode['title']
            episode["name"] = video.name + " " + episode_name
            i = 1
            while True:
                if f.find("track%d_codec" % i):
                    episode["tracks"] += [
                        "%s-%s" % (f.findtext(
                            "track%d_codec" % i), f.find("track%d_lang" % i))
                    ]
                    i += 1
                else:
                    break
            video.files += [fid]
            self.filmFiles[fid] = episode
        self.videos[vid] = video
コード例 #5
0
ファイル: kartina_api.py プロジェクト: sanetti/iptvdream
 def getDayEpg(self, cid, date=None):
     if not date:
         date = syncTime()
     params = {
         "m": "epg",
         "act": "show_day_xml",
         "day": date.strftime("%d%m%y"),
         "cid": cid
     }
     root = self.getData("/?" + urllib.urlencode(params),
                         "EPG for channel %s" % cid)
     epglist = []
     archive = int(root.attrib.get("have_archive").encode("utf-8"))
     self.channels[cid].archive = archive
     for program in root:
         t = int(program.attrib.get("t_start").encode("utf-8"))
         time = datetime.datetime.fromtimestamp(t)
         progname = unescapeEntities(
             program.attrib.get("progname")).encode("utf-8")
         pdescr = unescapeEntities(
             program.attrib.get("pdescr")).encode("utf-8")
         epglist += [(time, progname, pdescr)]
     return epglist
コード例 #6
0
ファイル: kartina_api.py プロジェクト: sanetti/iptvdream
 def getGmtEpg(self, id):
     params = {
         "m": "channels",
         "act": "get_stream_url",
         "cid": id,
         "gmt": (syncTime() + secTd(self.aTime)).strftime("%s"),
         "just_info": 1
     }
     root = self.getData("/?" + urllib.urlencode(params),
                         "get GmtEpg of stream %s" % id)
     prog = unescapeEntities(root.attrib.get("programm")).encode("utf-8")
     tstart = datetime.datetime.fromtimestamp(
         int(root.attrib.get("start").encode("utf-8")))  #unix
     tend = datetime.datetime.fromtimestamp(
         int(root.attrib.get("next").encode("utf-8")))
     self.channels[id].aepg = EpgEntry(prog, tstart, tend)
コード例 #7
0
ファイル: kartina_videos.py プロジェクト: Iohan36/iptvdream
	def getVideoInfo(self, vid):
		params = {"id": vid}
		root = self.getData("/api/xml/vod_info?"+urllib.urlencode(params), "getting video info %s" % vid)
		v = root.find('film')
		name = v.findtext('name').encode('utf-8')
		video = Video(name)
		
		video.name_orig = v.findtext('name_orig').encode('utf-8')
		video.descr = unescapeEntities(v.findtext('description')).encode('utf-8')
		video.image = v.findtext('poster')
		video.year = v.findtext('year')
		video.rate_imdb = floatConvert(v.findtext('rate_imdb'))
		video.rate_kinopoisk = floatConvert(v.findtext('rate_kinopoisk'))
		video.rate_mpaa = v.findtext('rate_mpaa')
		video.country = v.findtext('country').encode('utf-8')
		video.genre = v.findtext('genre_str').encode('utf-8')
		video.length = v.findtext('length') and int(v.findtext('length'))
		video.director = v.findtext('director').encode('utf-8')
		video.scenario = v.findtext('scenario').encode('utf-8')
		video.actors = v.findtext('actors').encode('utf-8')
		video.studio = v.findtext('studio')
		video.awards = v.findtext('awards')
		video.budget = v.findtext('budget')
		video.files = []
		for f in v.find('videos'):
			episode = {}
			fid = int(f.findtext('id'))
			episode["format"] = f.findtext('format')
			episode["length"] = f.findtext('length')
			episode["title"] = f.findtext('title').encode('utf-8') or video.name
			episode["tracks"] = []
			episode_name = ""
			if episode['title'] != video.name:
				episode_name = episode['title']
			episode["name"] = video.name + " " + episode_name 
			i = 1
			while True:
				if f.find("track%d_codec" % i):
					episode["tracks"] += ["%s-%s" % (f.findtext("track%d_codec" % i), f.find("track%d_lang" % i))]
					i +=1
				else:
					break
			video.files += [fid]
			self.filmFiles[fid] = episode 
		self.videos[vid]= video
コード例 #8
0
ファイル: kartina_api.py プロジェクト: Iohan36/iptvdream
	def getStreamUrl(self, cid, pin):
		params = {"m" : "channels",
				  "act" : "get_stream_url",
				  "cid" : cid}
		if self.aTime:
			params["gmt"] = (syncTime() + secTd(self.aTime)).strftime("%s")
		params["protect_code"] = pin
		root = self.getData("/?"+urllib.urlencode(params), "URL of stream %s" % cid)
		if self.aTime:
			prog = unescapeEntities(root.attrib.get("programm"))
			if prog:
				prog = prog.encode("utf-8")
				tstart = datetime.datetime.fromtimestamp( int(root.attrib.get("start").encode("utf-8")) ) #unix
				tend = datetime.datetime.fromtimestamp( int(root.attrib.get("next").encode("utf-8")) )
				self.channels[cid].aepg = EpgEntry(prog, tstart, tend)
		url = root.attrib.get("url").encode("utf-8").split(' ')[0].replace('http/ts://', 'http://')
		if url == "protected": return 0
		return url
コード例 #9
0
ファイル: kartina_api.py プロジェクト: sanetti/iptvdream
 def getStreamUrl(self, cid, pin):
     params = {"m": "channels", "act": "get_stream_url", "cid": cid}
     if self.aTime:
         params["gmt"] = (syncTime() + secTd(self.aTime)).strftime("%s")
     params["protect_code"] = pin
     root = self.getData("/?" + urllib.urlencode(params),
                         "URL of stream %s" % cid)
     if self.aTime:
         prog = unescapeEntities(root.attrib.get("programm"))
         if prog:
             prog = prog.encode("utf-8")
             tstart = datetime.datetime.fromtimestamp(
                 int(root.attrib.get("start").encode("utf-8")))  #unix
             tend = datetime.datetime.fromtimestamp(
                 int(root.attrib.get("next").encode("utf-8")))
             self.channels[cid].aepg = EpgEntry(prog, tstart, tend)
     url = root.attrib.get("url").encode("utf-8").split(' ')[0].replace(
         'http/ts://', 'http://')
     if url == "protected": return 0
     return url
コード例 #10
0
    def getVideos(self,
                  stype='last',
                  page=1,
                  genre=[],
                  nums_onpage=20,
                  query=''):
        if not VIDEO_CACHING:
            self.videos = {}

        params = {
            "type": stype,
            "nums": nums_onpage,
            "page": page,
            "genre": "|".join(genre)
        }
        if stype == 'text':
            params['query'] = query
        root = self.getData("/api/xml/vod_list?" + urllib.urlencode(params),
                            "getting video list by type %s" % stype)
        videos_count = int(root.findtext('total'))

        self.currentPageIds = []
        for v in root.find('rows'):
            vid = int(v.findtext('id'))
            self.currentPageIds += [vid]
            name = v.findtext('name').encode('utf-8')
            video = Video(name)
            video.name_orig = v.findtext('name_orig').encode('utf-8')
            video.descr = unescapeEntities(
                v.findtext('description')).encode('utf-8')
            video.image = v.findtext('poster')
            video.year = v.findtext('year')
            video.rate_imdb = floatConvert(v.findtext('rate_imdb'))
            video.rate_kinopoisk = floatConvert(v.findtext('rate_kinopoisk'))
            video.rate_mpaa = v.findtext('rate_mpaa')
            video.country = v.findtext('country').encode('utf-8')
            video.genre = v.findtext('genre_str').encode('utf-8')
            self.videos[vid] = video
        return videos_count