mirror of
https://github.com/markqvist/Sideband.git
synced 2024-12-28 17:09:34 -05:00
73 lines
2.0 KiB
Python
Executable File
73 lines
2.0 KiB
Python
Executable File
'''
|
|
Linux Storage Path
|
|
--------------------
|
|
'''
|
|
|
|
from sbapp.plyer.facades import StoragePath
|
|
from os.path import expanduser, dirname, abspath, join, exists
|
|
|
|
# Default paths for each name
|
|
USER_DIRS = "/.config/user-dirs.dirs"
|
|
|
|
PATHS = {
|
|
"DESKTOP": "Desktop",
|
|
"DOCUMENTS": "Documents",
|
|
"DOWNLOAD": "Downloads",
|
|
"MUSIC": "Music",
|
|
"PICTURES": "Pictures",
|
|
"VIDEOS": "Videos"
|
|
}
|
|
|
|
|
|
class LinuxStoragePath(StoragePath):
|
|
|
|
def _get_from_user_dirs(self, name):
|
|
home_dir = self._get_home_dir()
|
|
default = join(home_dir, PATHS[name])
|
|
user_dirs = join(home_dir, USER_DIRS)
|
|
if not exists(user_dirs):
|
|
return default
|
|
|
|
with open(user_dirs, "r") as f:
|
|
for line in f.readlines():
|
|
if line.startswith("XDG_" + name):
|
|
return line.split('"')[1]
|
|
|
|
return default
|
|
|
|
def _get_home_dir(self):
|
|
return expanduser('~')
|
|
|
|
def _get_external_storage_dir(self):
|
|
return "/media/" + self._get_home_dir().split("/")[-1]
|
|
|
|
def _get_root_dir(self):
|
|
return "/"
|
|
|
|
def _get_documents_dir(self):
|
|
directory = self._get_from_user_dirs("DOCUMENTS")
|
|
return directory.replace("$HOME", self._get_home_dir())
|
|
|
|
def _get_downloads_dir(self):
|
|
directory = self._get_from_user_dirs("DOWNLOAD")
|
|
return directory.replace("$HOME", self._get_home_dir())
|
|
|
|
def _get_videos_dir(self):
|
|
directory = self._get_from_user_dirs("VIDEOS")
|
|
return directory.replace("$HOME", self._get_home_dir())
|
|
|
|
def _get_music_dir(self):
|
|
directory = self._get_from_user_dirs("MUSIC")
|
|
return directory.replace("$HOME", self._get_home_dir())
|
|
|
|
def _get_pictures_dir(self):
|
|
directory = self._get_from_user_dirs("PICTURES")
|
|
return directory.replace("$HOME", self._get_home_dir())
|
|
|
|
def _get_application_dir(self):
|
|
return dirname(abspath(__name__))
|
|
|
|
|
|
def instance():
|
|
return LinuxStoragePath()
|