Exemple #1
0
 def recreate_db(self):
     self.recreate_media_table()
     self.totag = []
     self.sb.config.config["dbupdatetime"] = loggy.currenttime()
     if not self.tagger:
         self.tagger = tagger.tagger()
     for folder in self.sb.config.config["libraryfolders"]:
         loggy.log("ELE " + folder)
         for path, dirs, files in os.walk(folder):
             for filename in [os.path.abspath(os.path.join(path, filename)) for filename in files]:
                 mime = mimetypes.guess_type(filename)[0]  # TODO: get rid of mimetype
                 if not mime:
                     loggy.log("Update database - no mime type for " + filename)
                 elif mime.startswith("audio"):
                     loggy.log("Database recreate_db Adding Audio :" + filename)
                     self.totag.append(filename)
                 elif mime.startswith("video"):
                     loggy.log("Database recreate_db Adding Video :" + filename)
                     self.totag.append(filename)
                 else:
                     None
             #                    loggy.log("Database recreate_db Unknown mime type:" +mime+", ignoring:" +filename)
     self.totaltotag = len(self.totag)
     loggy.log("Database:" + str(self.totaltotag) + " files to scan")
     self.gettag()
Exemple #2
0
 def update_db(self):
     # self.recreate_media_table()
     self.sb.config.config["dbupdatetime"] = loggy.currenttime()
     self.totag = []
     if not self.tagger:
         self.tagger = tagger.tagger()
     for folder in self.sb.config.config["libraryfolders"]:
         loggy.log("ELE " + folder)
         for path, dirs, files in os.walk(folder):
             for filename in [os.path.abspath(os.path.join(path, filename)) for filename in files]:
                 row = self.get_uri_db_info("file://" + filename)
                 if row:
                     mtime = int(os.path.getmtime(filename))
                     # (mode, ino, dev, nlink, uid, gid, size, atime, mtime, ctime) = os.stat(filename)
                     # print ' old {0}, new {1} mtimes'.format(row['mtime'], mtime)
                     if mtime >= row["mtime"]:
                         continue
                 mime = mimetypes.guess_type(filename)[0]  # TODO: get rid of mimetype
                 if not mime:
                     loggy.log("Update database - no mime type for " + filename)
                 elif mime.startswith("audio"):
                     loggy.log("Database recreate_db Adding Audio :" + filename)
                     self.totag.append(filename)
                 elif mime.startswith("video"):
                     loggy.log("Database recreate_db Adding Video :" + filename)
                     self.totag.append(filename)
                 else:
                     None
             #                    loggy.log("Database recreate_db Unknown mime type:" +mime+", ignoring:" +filename)
     self.totaltotag = len(self.totag)
     loggy.log("Database:" + str(self.totaltotag) + " files to scan")
     self.gettag()
Exemple #3
0
	def __init__(self, soundblizzard):
		#load defaults first then config file then command line args
		self.config = { 'configfile' : os.path.expanduser('~/.config/soundblizzard/soundblizzard.conf'),
									'libraryfolders' : [os.path.expanduser('~/Music')], #TODO: support multiple folders
									'playlistfolder' : '~/.config/playlists',
									'databasefile' : os.path.expanduser('~/.config/soundblizzard/soundblizzard.db'),
									'mpdhost' : 'localhost',
									'mpdport' : 6600,
									'dbupdatetime' : loggy.currenttime()
								}
			
		if (not(os.path.isdir(os.path.dirname(self.config['configfile'])))):
			os.makedirs(os.path.dirname(self.config['configfile'])) or loggy.warn ('could not create config dir')
#		if (not (os.path.isfile('~/.config/soundblizzard/soundblizzard.conf')))
		fd = None
		try:
			fd = open(self.config['configfile'], 'r')#tries to open config file
		except:
			loggy.warn('Could not open config file '+ self.config['configfile'])
		try:
			self.config.update(json.load(fd)) #adds config file to dictionary and overrides with config file
		except:
			loggy.warn('Could not read config file '+ self.config['configfile'])
		
		#Handle command line arguments	
		#Splits command line args into dict, if key starts with -- then takes this as an argument and prints these
		# if key is help prints defaults
		#TODO: improve command line argument recognition
		a = sys.argv[1:]
		if len(a) % 2:
			a.append('')
		b = {a[i]: a[i+1] for i in range(0, len(a), 2)}
		c ={}
		for key in b:
			if key.startswith('--help'):
				loggy.warn ('Soundblizzard media player\nTo amend config settings please use --key \'value\' on the command line. \n Current values:')
				print json.dumps(self.config, sort_keys=True, indent=2)
				loggy.die('help delivered')
			elif key.startswith('--'):
				c[key[2:]] = b[key]

		self.config.update(c)
		loggy.log('Configuration:' +str(self.config))