示例#1
0
	def getText(self):
		service = self.source.service
		info = self.source.info
		if info and service:
			if self.type == self.MOVIE_SHORT_DESCRIPTION:
				if service.type == (eServiceReference.idUser | eServiceReference.idDVB):
					s = MovieList.getVirtDirStatistics(info.getName(service))
					if s:
						return s
				event = self.source.event
				if event:
					descr = info.getInfoString(service, iServiceInformation.sDescription)
					if descr == "":
						return event.getShortDescription()
					else:
						return descr
			elif self.type == self.MOVIE_META_DESCRIPTION:
				return info.getInfoString(service, iServiceInformation.sDescription)
			elif self.type == self.MOVIE_REC_SERVICE_NAME:
				rec_ref_str = info.getInfoString(service, iServiceInformation.sServiceref)
				return ServiceReference(rec_ref_str).getServiceName()
			elif self.type == self.MOVIE_REC_FILESIZE:
				filesize = info.getInfoObject(service, iServiceInformation.sFileSize)
				if filesize is not None:
					return "%d MB" % (filesize / (1024*1024))
		return ""
示例#2
0
 def getText(self):
     service = self.source.service
     info = self.source.info
     if info and service:
         if self.type == self.MOVIE_SHORT_DESCRIPTION:
             if service.type == (eServiceReference.idUser
                                 | eServiceReference.idDVB):
                 s = MovieList.getVirtDirStatistics(info.getName(service))
                 if s:
                     return s
             event = self.source.event
             if event:
                 descr = info.getInfoString(
                     service, iServiceInformation.sDescription)
                 if descr == "":
                     return event.getShortDescription()
                 else:
                     return descr
         elif self.type == self.MOVIE_META_DESCRIPTION:
             return info.getInfoString(service,
                                       iServiceInformation.sDescription)
         elif self.type == self.MOVIE_REC_SERVICE_NAME:
             rec_ref_str = info.getInfoString(
                 service, iServiceInformation.sServiceref)
             return ServiceReference(rec_ref_str).getServiceName()
         elif self.type == self.MOVIE_REC_FILESIZE:
             filesize = info.getFileSize(service)
             if filesize is not None:
                 return "%d MB" % (filesize / (1024 * 1024))
     return ""
示例#3
0
    def __init__(self, session):
        logger.info("self.return_dir: %s, self.return_path: %s",
                    self.return_dir, self.return_path)

        if self.current_sort_mode is None:
            self.current_sort_mode = config.plugins.moviecockpit.list_sort.value
        self["list"] = self.movie_list = MovieList(self.current_sort_mode)

        Screen.__init__(self, session)
        HelpableScreen.__init__(self)
        Actions.__init__(self, self)
        CutList.__init__(self)
        SelfTest.__init__(self)

        self.skinName = getSkinName("MovieCockpit")
        self["actions"] = self.initActions(
            self, self.skinName != getSkinName("NoSupport"))
        self["mini_tv"] = Pixmap()
        self["pic_loading"] = Pixmap()
        self["no_support"] = Label()
        self["sort_mode"] = Label()
        self.loading = Loading(self["pic_loading"], self.summaries)

        self["Service"] = COCServiceEvent(ServiceCenter.getInstance())
        self["DiskSpace"] = COCDiskSpace(self)
        self["Cover"] = COCCover(self)

        self.enable_minit_tv = False
        self.last_service = None
        self.short_key = True  # used for long / short key press detection
        self.delay_timer = eTimer()
        self.delay_timer_conn = self.delay_timer.timeout.connect(
            self.updateInfoDelayed)

        self.onShow.append(self.onDialogShow)
        self.onHide.append(self.onDialogHide)
        self.movie_list.onSelectionChanged.append(self.selectionChanged)
        self.updateTitle()
示例#4
0
	def __init__(self, session, selectedmovie=None):
#		print "[SF-Plugin] SF:MovieSelection.init, PWD=%s; selmv=%s" % (config.movielist.last_videodir.value, str(selectedmovie))
		Screen.__init__(self, session)
		HelpableScreen.__init__(self)

		self.tags = []
		if selectedmovie:
			self.selected_tags = config.movielist.last_selected_tags.value
		else:
			self.selected_tags = None
		self.selected_tags_ele = None
		self.toggletype = 0

		self.movemode = False
		self.bouquet_mark_edit = False

		self.delayTimer = eTimer()
		self.delayTimer.callback.append(self.updateHDDData)

		self["waitingtext"] = Label(_("Please wait... Loading list..."))

		# create optional description border and hide immediately
		self["DescriptionBorder"] = Pixmap()
		self["DescriptionBorder"].hide()

		if not fileExists(config.movielist.last_videodir.value):
			config.movielist.last_videodir.value = defaultMoviePath()
			config.movielist.last_videodir.save()
#			print "[SF-Plugin] MovieSelection.MovieSelection: save" + config.movielist.last_videodir.value
		self.current_ref = eServiceReference("2:0:1:0:0:0:0:0:0:0:" + config.movielist.last_videodir.value)

		self["list"] = MovieList(None,
			config.movielist.sflisttype.value,
			config.movielist.sfmoviesort.value,
			config.movielist.sftimes.value,
			config.movielist.sftitle_episode_separator.value,
			self)

		self.list = self["list"]
		self.selectedmovie = selectedmovie

		# Need list for init
		SelectionEventInfo.__init__(self)

		self["key_red"] = Button(_("All"))
		self["key_green"] = Button("")
		self["key_yellow"] = Button("")
		self["key_blue"] = Button("")

		self["freeDiskSpace"] = self.diskinfo = DiskInfo(config.movielist.last_videodir.value, DiskInfo.FREE, update=False)

		if config.usage.setup_level.index >= 2: # expert+
			self["InfobarActions"] = HelpableActionMap(self, "InfobarActions",
				{
					"showMovies": (self.doPathSelect, _("select the movie path")),
				})

		self["MovieSelectionActions"] = HelpableActionMap(self, "MovieSelectionActions",
			{
				"contextMenu": (self.doContext, _("menu")),
				"showEventInfo": (self.showEventInformation, _("show event details")),
			})

		self["ColorActions"] = HelpableActionMap(self, "ColorActions",
			{
				"red": (self.showAll, _("show all")),
				"green": (self.showTagsFirst, _("show first selected tag")),
				"yellow": (self.showTagsSecond, _("show second selected tag")),
				"blue": (self.showTagsSelect, _("show tag menu")),
			})

		self["OkCancelActions"] = HelpableActionMap(self, "OkCancelActions",
			{
				"cancel": (self.abort, _("exit movielist")),
				"ok": (self.movieSelected, _("select movie")),
			})

		self["NumberActions"] = HelpableActionMap(self, "SetupActions",
			{
				"0": (self.toggleSort, _x("Toggle date / alphabetic sort mode")),
				"deleteBackward": (self.moveToIndexStrt, _x("Jump to listbegin")),
				"deleteForward": (self.moveToIndexEnd, _x("Jump to listend")),
				"5": (self.toggleMinimal, _x("Toggle style minimal / compact")),
				"8": (self.toggleTags, _x("Toggle description / tags display")),
			})

		self.onShown.append(self.go)
		self.onLayoutFinish.append(self.saveListsize)
		self.inited = False
示例#5
0
文件: MovieWrite.py 项目: jcann/MPTD
            fd.write(query)

        fd.close()

    # Write delimited data to CSV file
    def writeCsv(self):
        file_name = self.file_name + EXT_CSV
        f_path = os.path.join(self.file_path, file_name)

        data = self.movieList.getString()
        fd = codecs.open(f_path, mode="w", encoding='utf-8')
        fd.write(data)
        fd.close()


if __name__ == '__main__':
    API_KEY = "447ecf40bf72a3fa6218f3024465a567"

    movieNew = Movie()
    movieList = MovieList()
    movieSearch = MovieSearch(API_KEY)
    movieId = movieSearch.getId("Pi")
    movieNew = movieSearch.getDetails(movieId, "credits")
    movieList.setMovie(movieNew)
    movieId = movieSearch.getId("1408")
    movieNew = movieSearch.getDetails(movieId, "credits")
    movieList.setMovie(movieNew)

    tempMovieWrite = MovieWrite("./", "temp", movieList)
    tempMovieWrite.writeCsv()
    tempMovieWrite.writeSql()
示例#6
0
文件: MovieDriver.py 项目: jcann/MPTD
 def __init__(self, api_key, mediaType = "movie"):
     self.movieList = MovieList()
     self.movieSearch = MovieSearch(api_key, mediaType)
     self.titles = []
     self.failed = []
示例#7
0
文件: MovieDriver.py 项目: jcann/MPTD
class MovieDriver:
    
    # Constructor
    def __init__(self, api_key, mediaType = "movie"):
        self.movieList = MovieList()
        self.movieSearch = MovieSearch(api_key, mediaType)
        self.titles = []
        self.failed = []
    
    # Read movie titles from file
    def readFile(self):
        f_path = ""
        while not os.path.isdir(f_path):
            f_path = raw_input("ENTER FILE PATH: ")
            
        print "FILES"
        print "---------------------------"
        
        f_list = os.listdir(f_path)
        for f_name in f_list:
            print f_name

        f_name = ""
        while f_name not in f_list:
            f_name = raw_input("ENTER FILE NAME: ")
        
        print "READING MOVIES TITLES FROM FILE..."
        
        file_path = os.path.join(f_path, f_name)
        fd = open(file_path, "r")
        
        for title in fd.readlines():
            self.titles.append(title.rstrip())
        
        fd.close()
            
    # Read keyboard input
    def readInput(self):
        titleInput = ""

        print "INPUT MOVIE TITLES"        
        while True:
            titleInput = raw_input("(end to exit): ")
            
            if titleInput == 'end':
                break
            
            self.titles.append(titleInput.rstrip())
        
    # Print movie titles        
    def printTitles(self):
        print "MOVIE TITLES:"
        print "---------------------------"
        for title in self.titles:
            print title
        
    # Write movie details to file
    def writeFile(self, toWrite = 'csv'):
        f_path = ""
        while not os.path.isdir(f_path):
            f_path = raw_input("ENTER FILE PATH: ")

        f_name = raw_input("ENTER FILE NAME: ")
        
        movieWrite = MovieWrite(f_path, f_name, self.movieList)
        
        if toWrite == 'csv':
            movieWrite.writeCsv()
        else: 
            movieWrite.writeSql()
            
        if self.failed:   
            fail_name = f_name + EXT_FAIL
            fail_path = os.path.join(f_path, fail_name)
            fd = open(fail_path, "w")
            
            for title in self.failed:
                fd.write(title + "\n")
            
            fd.close()

    # Write movie details to display
    def writeDisplay(self):
        print "ID       TITLE                                                       RELEASE"
        print "-------- ----------------------------------------------------------- ----------"

        tempList = self.movieList.getMovieList()
        for k in tempList:                        
            print "%s %s %s" % (k.getId().rjust(8), (k.getTitle()[0:59].encode('ascii', 'replace')).ljust(59), k.getReleaseDate())
        
    # Search movie details by ID
    def searchId(self, append = None):
        movieNew = Movie()
        
        for movieId in self.titles:
            print "Retrieving for %s..." % movieId
            movieNew = self.movieSearch.getDetails(movieId, append)
            self.movieList.setMovie(movieNew)
    
    # Search movie details by title
    def searchMovies(self, append = None):
        movieNew = Movie()
        
        for name in self.titles:
            prntTitle = (name.rstrip())[0:59]            
            print "Searching for %s..." % prntTitle
            movieId = self.movieSearch.getId(name)
            
            if movieId is not None:
                movieNew = self.movieSearch.getDetails(movieId, append)
                self.movieList.setMovie(movieNew)
            else:
                self.failed.append(name)
示例#8
0
 def __init__(self, api_key, mediaType="movie"):
     self.movieList = MovieList()
     self.movieSearch = MovieSearch(api_key, mediaType)
     self.titles = []
     self.failed = []
示例#9
0
class MovieDriver:

    # Constructor
    def __init__(self, api_key, mediaType="movie"):
        self.movieList = MovieList()
        self.movieSearch = MovieSearch(api_key, mediaType)
        self.titles = []
        self.failed = []

    # Read movie titles from file
    def readFile(self):
        f_path = ""
        while not os.path.isdir(f_path):
            f_path = raw_input("ENTER FILE PATH: ")

        print "FILES"
        print "---------------------------"

        f_list = os.listdir(f_path)
        for f_name in f_list:
            print f_name

        f_name = ""
        while f_name not in f_list:
            f_name = raw_input("ENTER FILE NAME: ")

        print "READING MOVIES TITLES FROM FILE..."

        file_path = os.path.join(f_path, f_name)
        fd = open(file_path, "r")

        for title in fd.readlines():
            self.titles.append(title.rstrip())

        fd.close()

    # Read keyboard input
    def readInput(self):
        titleInput = ""

        print "INPUT MOVIE TITLES"
        while True:
            titleInput = raw_input("(end to exit): ")

            if titleInput == 'end':
                break

            self.titles.append(titleInput.rstrip())

    # Print movie titles
    def printTitles(self):
        print "MOVIE TITLES:"
        print "---------------------------"
        for title in self.titles:
            print title

    # Write movie details to file
    def writeFile(self, toWrite='csv'):
        f_path = ""
        while not os.path.isdir(f_path):
            f_path = raw_input("ENTER FILE PATH: ")

        f_name = raw_input("ENTER FILE NAME: ")

        movieWrite = MovieWrite(f_path, f_name, self.movieList)

        if toWrite == 'csv':
            movieWrite.writeCsv()
        else:
            movieWrite.writeSql()

        if self.failed:
            fail_name = f_name + EXT_FAIL
            fail_path = os.path.join(f_path, fail_name)
            fd = open(fail_path, "w")

            for title in self.failed:
                fd.write(title + "\n")

            fd.close()

    # Write movie details to display
    def writeDisplay(self):
        print "ID       TITLE                                                       RELEASE"
        print "-------- ----------------------------------------------------------- ----------"

        tempList = self.movieList.getMovieList()
        for k in tempList:
            print "%s %s %s" % (k.getId().rjust(8), (k.getTitle()[0:59].encode(
                'ascii', 'replace')).ljust(59), k.getReleaseDate())

    # Search movie details by ID
    def searchId(self, append=None):
        movieNew = Movie()

        for movieId in self.titles:
            print "Retrieving for %s..." % movieId
            movieNew = self.movieSearch.getDetails(movieId, append)
            self.movieList.setMovie(movieNew)

    # Search movie details by title
    def searchMovies(self, append=None):
        movieNew = Movie()

        for name in self.titles:
            prntTitle = (name.rstrip())[0:59]
            print "Searching for %s..." % prntTitle
            movieId = self.movieSearch.getId(name)

            if movieId is not None:
                movieNew = self.movieSearch.getDetails(movieId, append)
                self.movieList.setMovie(movieNew)
            else:
                self.failed.append(name)
示例#10
0
文件: MovieWrite.py 项目: jcann/MPTD
            query = query.rstrip(", ") + ")\n"
            fd.write(query)
        
        fd.close()
       
    # Write delimited data to CSV file
    def writeCsv(self):
        file_name = self.file_name + EXT_CSV
        f_path = os.path.join(self.file_path, file_name)

        data = self.movieList.getString()
        fd = codecs.open(f_path, mode="w", encoding='utf-8')
        fd.write(data)
        fd.close()

if __name__=='__main__':
    API_KEY = "447ecf40bf72a3fa6218f3024465a567"
    
    movieNew = Movie()
    movieList = MovieList()
    movieSearch = MovieSearch(API_KEY)
    movieId = movieSearch.getId("Pi")
    movieNew = movieSearch.getDetails(movieId, "credits")
    movieList.setMovie(movieNew)    
    movieId = movieSearch.getId("1408")
    movieNew = movieSearch.getDetails(movieId, "credits")
    movieList.setMovie(movieNew)
    
    tempMovieWrite = MovieWrite("./", "temp", movieList)   
    tempMovieWrite.writeCsv()
    tempMovieWrite.writeSql()     
示例#11
0
    def __init__(self, session):
        Screen.__init__(self, session)
        SelectionEventInfo.__init__(self)
        CoolWide = getDesktop(0).size().width()
        skinpath = str(resolveFilename)
        self.skinName = "MovieSelectionSP"
        if CoolWide == 720:
            skin = "/usr/lib/enigma2/python/Plugins/Extensions/Suomipoeka/CoolSkin/MovieSelectionSP_720.xml"
        elif CoolWide == 1024:
            skin = "/usr/lib/enigma2/python/Plugins/Extensions/Suomipoeka/CoolSkin/MovieSelectionSP_1024.xml"
        else:
            skin = "/usr/lib/enigma2/python/Plugins/Extensions/Suomipoeka/CoolSkin/MovieSelectionSP_1280.xml"
        Cool = open(skin)
        self.skin = Cool.read()
        Cool.close()
        self.wasClosed = True
        self.playerInstance = None
        self.selectIdx = -1
        self.cursorDir = 0
        self.currentGrnText = _("Alpha sort")
        self["wait"] = Label(_("Reading directory..."))
        self["list"] = MovieList()
        self["key_red"] = Button()
        self["key_green"] = Button()
        self["key_yellow"] = Button()
        self["key_blue"] = Button()
        global gMS
        gMS = self
        self["actions"] = HelpableActionMap(
            self, "PluginMovieSelectionActions", {
                "bOK": (self.movieSelected, _("Play selected movie(s)")),
                "bOKL": (self.unUsed, "-"),
                "bEXIT": (self.abort, _("Close movie list")),
                "bMENU": (self.openMenu, _("Open menu")),
                "bINFO": (self.showEventInformation, _("Show event info")),
                "bINFOL": (self.unUsed, "-"),
                "bRed": (self.deleteFile, _("Delete file or empty dir")),
                "bGreen": (self.toggleSort, _("Toggle sort mode")),
                "bYellow": (self.moveMovie, _("Move selected movie(s)")),
                "bBlue":
                (self.blueFunc, _("Movie home / Play last (configurable)")),
                "bRedL": (self.unUsed, "-"),
                "bGreenL": (self.unUsed, "-"),
                "bYellowL": (self.openScriptMenu, _("Open shell script menu")),
                "bBlueL": (self.openBookmarks, _("Open bookmarks")),
                "bLeftUp": (self.keyPress, _("Move cursor page up")),
                "bRightUp": (self.keyPress, _("Move cursor page down")),
                "bUpUp": (self.keyPressU, _("Move cursor up")),
                "bDownUp": (self.keyPressD, _("Move cursor down")),
                "bBqtPlus": (self.bouquetPlus, _("Move cursor 1/2 page up")),
                "bBqtMnus":
                (self.bouquetMinus, _("Move cursor 1/2 page down")),
                "bArrowR": (self.unUsed, "-"),
                "bArrowRL": (self.unUsed, "-"),
                "bArrowL": (self.unUsed, "-"),
                "bArrowLL": (self.unUsed, "-"),
                "bVIDEO":
                (self.selectionToggle, _("Toggle service selection")),
                "bAUDIO": (self.openMenuPlugins, _("Available plugins menu")),
                "bAUDIOL": (self.unUsed, "-"),
                "bMENUL": (self.openMenuPlugins, _("Available plugins menu")),
                "bTV": (self.reloadList, _("Reload movie file list")),
                "bTVL": (self.unUsed, "-"),
                "bRADIO": (self.viewedToggle, _("Toggle viewed / not viewed")),
                "bRADIOL": (self.unUsed, "-"),
                "bTEXT": (self.multiSelect, _("Start / end multiselection")),
                "bTEXTL": (self.unUsed, "-")
            })
        self["actions"].csel = self
        HelpableScreen.__init__(self)

        self.currentPathSel = config.suomipoeka.movie_homepath.value
        self.parentStack = []
        self.onExecBegin.append(self.onDialogShow)