Rename dozo to ordigi
This commit is contained in:
parent
4cec0b8d90
commit
817b84152f
|
@ -9,12 +9,12 @@ from datetime import datetime
|
||||||
import click
|
import click
|
||||||
from send2trash import send2trash
|
from send2trash import send2trash
|
||||||
|
|
||||||
from dozo import constants
|
from ordigi import constants
|
||||||
from dozo import config
|
from ordigi import config
|
||||||
from dozo.filesystem import FileSystem
|
from ordigi.filesystem import FileSystem
|
||||||
from dozo.database import Db
|
from ordigi.database import Db
|
||||||
from dozo.media.media import Media, get_all_subclasses
|
from ordigi.media.media import Media, get_all_subclasses
|
||||||
from dozo.summary import Summary
|
from ordigi.summary import Summary
|
||||||
|
|
||||||
FILESYSTEM = FileSystem()
|
FILESYSTEM = FileSystem()
|
||||||
|
|
||||||
|
@ -46,7 +46,7 @@ def get_logger(verbose, debug):
|
||||||
logging.debug('This message should appear on the console')
|
logging.debug('This message should appear on the console')
|
||||||
logging.info('So should this')
|
logging.info('So should this')
|
||||||
logging.getLogger('asyncio').setLevel(level)
|
logging.getLogger('asyncio').setLevel(level)
|
||||||
logger = logging.getLogger('dozo')
|
logger = logging.getLogger('ordigi')
|
||||||
logger.level = level
|
logger.level = level
|
||||||
return logger
|
return logger
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@ def get_logger(verbose, debug):
|
||||||
def _sort(debug, dry_run, destination, copy, exclude_regex, filter_by_ext, ignore_tags,
|
def _sort(debug, dry_run, destination, copy, exclude_regex, filter_by_ext, ignore_tags,
|
||||||
max_deep, remove_duplicates, reset_cache, verbose, paths):
|
max_deep, remove_duplicates, reset_cache, verbose, paths):
|
||||||
"""Sort files or directories by reading their EXIF and organizing them
|
"""Sort files or directories by reading their EXIF and organizing them
|
||||||
according to config.ini preferences.
|
according to ordigi.conf preferences.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
if copy:
|
if copy:
|
||||||
|
@ -148,7 +148,7 @@ def _sort(debug, dry_run, destination, copy, exclude_regex, filter_by_ext, ignor
|
||||||
@click.option('--debug', default=False, is_flag=True,
|
@click.option('--debug', default=False, is_flag=True,
|
||||||
help='Override the value in constants.py with True.')
|
help='Override the value in constants.py with True.')
|
||||||
def _generate_db(path, debug):
|
def _generate_db(path, debug):
|
||||||
"""Regenerate the hash.json database which contains all of the sha256 signatures of media files. The hash.json file is located at ~/.dozo/.
|
"""Regenerate the hash.json database which contains all of the sha256 signatures of media files.
|
||||||
"""
|
"""
|
||||||
constants.debug = debug
|
constants.debug = debug
|
||||||
result = Result()
|
result = Result()
|
|
@ -1,7 +1,7 @@
|
||||||
"""Load config file as a singleton."""
|
"""Load config file as a singleton."""
|
||||||
from configparser import RawConfigParser
|
from configparser import RawConfigParser
|
||||||
from os import path
|
from os import path
|
||||||
from dozo import constants
|
from ordigi import constants
|
||||||
|
|
||||||
|
|
||||||
def write(conf_file, config):
|
def write(conf_file, config):
|
|
@ -8,8 +8,15 @@ from sys import version_info
|
||||||
#: If True, debug messages will be printed.
|
#: If True, debug messages will be printed.
|
||||||
debug = False
|
debug = False
|
||||||
|
|
||||||
#: Directory in which to store Dozo settings.
|
#Ordigi settings directory.
|
||||||
application_directory = '{}/.dozo'.format(path.expanduser('~'))
|
if 'XDG_CONFIG_HOME' in environ:
|
||||||
|
confighome = environ['XDG_CONFIG_HOME']
|
||||||
|
elif 'APPDATA' in environ:
|
||||||
|
confighome = environ['APPDATA']
|
||||||
|
else:
|
||||||
|
confighome = path.join(environ['HOME'], '.config')
|
||||||
|
application_directory = path.join(confighome, 'ordigi')
|
||||||
|
|
||||||
default_path = '{%Y-%m-%b}/{album}|{city}|{"Unknown Location"}'
|
default_path = '{%Y-%m-%b}/{album}|{city}|{"Unknown Location"}'
|
||||||
default_name = '{%Y-%m-%d_%H-%M-%S}-{name}-{title}.%l{ext}'
|
default_name = '{%Y-%m-%d_%H-%M-%S}-{name}-{title}.%l{ext}'
|
||||||
default_geocoder = 'Nominatim'
|
default_geocoder = 'Nominatim'
|
||||||
|
@ -23,7 +30,7 @@ location_db = 'location.json'
|
||||||
# TODO will be removed eventualy later
|
# TODO will be removed eventualy later
|
||||||
# location_db = '{}/location.json'.format(application_directory)
|
# location_db = '{}/location.json'.format(application_directory)
|
||||||
|
|
||||||
# Dozo installation directory.
|
# Ordigi installation directory.
|
||||||
script_directory = path.dirname(path.dirname(path.abspath(__file__)))
|
script_directory = path.dirname(path.dirname(path.abspath(__file__)))
|
||||||
|
|
||||||
#: Accepted language in responses from MapQuest
|
#: Accepted language in responses from MapQuest
|
||||||
|
@ -32,4 +39,4 @@ accepted_language = 'en'
|
||||||
# check python version, required in filesystem.py to trigger appropriate method
|
# check python version, required in filesystem.py to trigger appropriate method
|
||||||
python_version = version_info.major
|
python_version = version_info.major
|
||||||
|
|
||||||
CONFIG_FILE = '%s/config.ini' % application_directory
|
CONFIG_FILE = f'{application_directory}/ordigi.conf'
|
|
@ -1,5 +1,5 @@
|
||||||
"""
|
"""
|
||||||
Methods for interacting with information Dozo caches about stored media.
|
Methods for interacting with database files
|
||||||
"""
|
"""
|
||||||
from builtins import map
|
from builtins import map
|
||||||
from builtins import object
|
from builtins import object
|
||||||
|
@ -12,23 +12,17 @@ from math import radians, cos, sqrt
|
||||||
from shutil import copyfile
|
from shutil import copyfile
|
||||||
from time import strftime
|
from time import strftime
|
||||||
|
|
||||||
from dozo import constants
|
from ordigi import constants
|
||||||
|
|
||||||
|
|
||||||
class Db(object):
|
class Db(object):
|
||||||
|
|
||||||
"""A class for interacting with the JSON files created by Dozo."""
|
"""A class for interacting with the JSON files database."""
|
||||||
|
|
||||||
def __init__(self, target_dir):
|
def __init__(self, target_dir):
|
||||||
# verify that the application directory (~/.dozo) exists,
|
|
||||||
# else create it
|
|
||||||
# if not os.path.exists(constants.application_directory):
|
|
||||||
# os.makedirs(constants.application_directory)
|
|
||||||
|
|
||||||
# Create dir for target database
|
# Create dir for target database
|
||||||
dirname = os.path.join(target_dir, '.dozo')
|
dirname = os.path.join(target_dir, '.ordigi')
|
||||||
# Legacy dir
|
|
||||||
# dirname = constants.application_directory
|
|
||||||
|
|
||||||
if not os.path.exists(dirname):
|
if not os.path.exists(dirname):
|
||||||
try:
|
try:
|
|
@ -14,12 +14,12 @@ import shutil
|
||||||
import time
|
import time
|
||||||
from datetime import datetime, timedelta
|
from datetime import datetime, timedelta
|
||||||
|
|
||||||
from dozo import constants
|
from ordigi import constants
|
||||||
from dozo import geolocation
|
from ordigi import geolocation
|
||||||
|
|
||||||
from dozo.media.media import get_media_class, get_all_subclasses
|
from ordigi.media.media import get_media_class, get_all_subclasses
|
||||||
from dozo.media.photo import Photo
|
from ordigi.media.photo import Photo
|
||||||
from dozo.summary import Summary
|
from ordigi.summary import Summary
|
||||||
|
|
||||||
|
|
||||||
class FileSystem(object):
|
class FileSystem(object):
|
||||||
|
@ -129,7 +129,7 @@ class FileSystem(object):
|
||||||
# Create a list of compiled regular expressions to match against the file path
|
# Create a list of compiled regular expressions to match against the file path
|
||||||
compiled_regex_list = [re.compile(regex) for regex in exclude_regex_list]
|
compiled_regex_list = [re.compile(regex) for regex in exclude_regex_list]
|
||||||
for dirname, dirnames, filenames in os.walk(path):
|
for dirname, dirnames, filenames in os.walk(path):
|
||||||
if dirname == os.path.join(path, '.dozo'):
|
if dirname == os.path.join(path, '.ordigi'):
|
||||||
continue
|
continue
|
||||||
for filename in filenames:
|
for filename in filenames:
|
||||||
# If file extension is in `extensions`
|
# If file extension is in `extensions`
|
||||||
|
@ -535,7 +535,7 @@ class FileSystem(object):
|
||||||
subdirs = ''
|
subdirs = ''
|
||||||
for dirname, dirnames, filenames, level in self.walklevel(path,
|
for dirname, dirnames, filenames, level in self.walklevel(path,
|
||||||
self.max_deep):
|
self.max_deep):
|
||||||
if dirname == os.path.join(path, '.dozo'):
|
if dirname == os.path.join(path, '.ordigi'):
|
||||||
continue
|
continue
|
||||||
|
|
||||||
subdirs = os.path.join(subdirs, os.path.basename(dirname))
|
subdirs = os.path.join(subdirs, os.path.basename(dirname))
|
||||||
|
@ -675,7 +675,7 @@ class FileSystem(object):
|
||||||
has_errors = False
|
has_errors = False
|
||||||
path = self.check_path(path)
|
path = self.check_path(path)
|
||||||
for dirname, dirnames, filenames, level in self.walklevel(path, None):
|
for dirname, dirnames, filenames, level in self.walklevel(path, None):
|
||||||
if dirname == os.path.join(path, '.dozo'):
|
if dirname == os.path.join(path, '.ordigi'):
|
||||||
continue
|
continue
|
||||||
if dirname.find('similar_to') == 0:
|
if dirname.find('similar_to') == 0:
|
||||||
continue
|
continue
|
||||||
|
@ -738,7 +738,7 @@ class FileSystem(object):
|
||||||
has_errors = False
|
has_errors = False
|
||||||
path = self.check_path(path)
|
path = self.check_path(path)
|
||||||
for dirname, dirnames, filenames, level in self.walklevel(path, None):
|
for dirname, dirnames, filenames, level in self.walklevel(path, None):
|
||||||
if dirname == os.path.join(path, '.dozo'):
|
if dirname == os.path.join(path, '.ordigi'):
|
||||||
continue
|
continue
|
||||||
if dirname.find('similar_to') == 0:
|
if dirname.find('similar_to') == 0:
|
||||||
continue
|
continue
|
|
@ -8,8 +8,8 @@ import geopy
|
||||||
from geopy.geocoders import Nominatim
|
from geopy.geocoders import Nominatim
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
from dozo import constants
|
from ordigi import constants
|
||||||
from dozo.config import load_config, get_geocoder
|
from ordigi.config import load_config, get_geocoder
|
||||||
|
|
||||||
__KEY__ = None
|
__KEY__ = None
|
||||||
__DEFAULT_LOCATION__ = 'Unknown Location'
|
__DEFAULT_LOCATION__ = 'Unknown Location'
|
|
@ -1,6 +1,6 @@
|
||||||
"""
|
"""
|
||||||
The audio module contains classes specifically for dealing with audio files.
|
The audio module contains classes specifically for dealing with audio files.
|
||||||
The :class:`Audio` class inherits from the :class:`~dozo.media.Media`
|
The :class:`Audio` class inherits from the :class:`~ordigi.media.Media`
|
||||||
class.
|
class.
|
||||||
|
|
||||||
.. moduleauthor:: Jaisen Mathai <jaisen@jmathai.com>
|
.. moduleauthor:: Jaisen Mathai <jaisen@jmathai.com>
|
|
@ -1,7 +1,7 @@
|
||||||
"""
|
"""
|
||||||
Base :class:`Media` class for media objects that are tracked by Dozo.
|
Base :class:`Media` class for media objects
|
||||||
The Media class provides some base functionality used by all the media types.
|
The Media class provides some base functionality used by all the media types.
|
||||||
Sub-classes (:class:`~dozo.media.Audio`, :class:`~dozo.media.Photo`, and :class:`~dozo.media.Video`).
|
Sub-classes (:class:`~ordigi.media.Audio`, :class:`~ordigi.media.Photo`, and :class:`~ordigi.media.Video`).
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import mimetypes
|
import mimetypes
|
||||||
|
@ -12,7 +12,7 @@ import logging
|
||||||
# load modules
|
# load modules
|
||||||
from dateutil.parser import parse
|
from dateutil.parser import parse
|
||||||
import re
|
import re
|
||||||
from dozo.exiftool import ExifTool, ExifToolCaching
|
from ordigi.exiftool import ExifTool, ExifToolCaching
|
||||||
|
|
||||||
class Media():
|
class Media():
|
||||||
|
|
Loading…
Reference in New Issue