SYMBOL INDEX (330 symbols across 28 files) FILE: deemon/__main__.py function main (line 4) | def main(): FILE: deemon/cli.py function run (line 39) | def run(whats_new, init, arl, verbose, profile): function test (line 132) | def test(email, exclusions): function download_command (line 159) | def download_command(artist, artist_id, album_id, url, file, bitrate, function monitor_command (line 216) | def monitor_command(artist, im, playlist, include_artists, bitrate, reco... function refresh_command (line 285) | def refresh_command(name, playlist, skip_download, time_machine): function show_command (line 306) | def show_command(): function show_artists (line 319) | def show_artists(artist, csv, export, filter, hide_header, backup): function show_artists (line 335) | def show_artists(title, playlist_id, csv, filter, hide_header): function show_releases (line 347) | def show_releases(n, future): function backup_command (line 361) | def backup_command(restore, include_logs): function api_test (line 378) | def api_test(artist, artist_id, album_id, playlist_id, limit, raw): function reset_db (line 424) | def reset_db(): function profile_command (line 442) | def profile_command(profile, add, clear, delete, edit): function extra_command (line 462) | def extra_command(): function search (line 469) | def search(query): function config_command (line 480) | def config_command(artist): function rollback_command (line 489) | def rollback_command(num, view): function library_command (line 498) | def library_command(): function library_upgrade_command (line 509) | def library_upgrade_command(library, output, album_only, allow_exclusions): FILE: deemon/cmd/artistconfig.py function print_header (line 10) | def print_header(message: str = None): function get_artist (line 23) | def get_artist(query: str): function artist_lookup (line 63) | def artist_lookup(query): FILE: deemon/cmd/backup.py function run (line 16) | def run(include_logs: bool = False): function restore (line 33) | def restore(): FILE: deemon/cmd/download.py class QueueItem (line 24) | class QueueItem: method __init__ (line 26) | def __init__(self, artist=None, album=None, track=None, playlist=None, function get_deemix_bitrate (line 82) | def get_deemix_bitrate(bitrate: str): function get_plex_server (line 89) | def get_plex_server(): function refresh_plex (line 108) | def refresh_plex(plexobj): class Download (line 120) | class Download: method __init__ (line 122) | def __init__(self, active_api=None): method set_dates (line 135) | def set_dates(self, from_date: str = None, to_date: str = None) -> None: method download_queue (line 149) | def download_queue(self, queue_list: list = None): method download (line 250) | def download(self, artist, artist_id, album_id, url, FILE: deemon/cmd/extra.py function debugger (line 13) | def debugger(message: str, payload = None): function main (line 20) | def main(): FILE: deemon/cmd/generate.py function read_album_ids_from_file (line 7) | def read_album_ids_from_file(filename): function clean_absolute_paths (line 19) | def clean_absolute_paths(album_list): function clean_year_from_album (line 26) | def clean_year_from_album(album_list, level: int = 5): function clean_artist_album_text (line 40) | def clean_artist_album_text(album_list: list): function get_artist_album (line 55) | def get_artist_album(filename: str, absolute_path: bool = False): function get_api_results (line 66) | def get_api_results(album_list, artist_name: str = None): FILE: deemon/cmd/monitor.py class Monitor (line 17) | class Monitor: method __init__ (line 19) | def __init__(self, active_api=None): method set_config (line 33) | def set_config(self, bitrate: str, alerts: bool, record_type: str, dow... method set_options (line 40) | def set_options(self, remove, dl_all, search): method debugger (line 46) | def debugger(self, message: str, payload=None): method get_best_result (line 52) | def get_best_result(self, api_result) -> list: method prompt_search (line 96) | def prompt_search(self, value, api_result): method build_artist_query (line 104) | def build_artist_query(self, api_result: list): method build_playlist_query (line 126) | def build_playlist_query(self, api_result: list, include_artists: bool): method call_refresh (line 159) | def call_refresh(self): method artists (line 164) | def artists(self, names: list) -> None: method artist_ids (line 194) | def artist_ids(self, ids: list): method importer (line 212) | def importer(self, import_path: str): method playlists (line 229) | def playlists(self, playlists: list, include_artists: bool): method purge_artists (line 247) | def purge_artists(self, names: list = None, ids: list = None): method purge_playlists (line 265) | def purge_playlists(self, titles: list = None, ids: list = None): FILE: deemon/cmd/profile.py class ProfileConfig (line 9) | class ProfileConfig: method __init__ (line 10) | def __init__(self, profile_name): method print_header (line 17) | def print_header(message: str = None): method edit (line 24) | def edit(self): method add (line 70) | def add(self): method delete (line 121) | def delete(self): method show (line 136) | def show(self): method clear (line 156) | def clear(self): FILE: deemon/cmd/refresh.py class Refresh (line 17) | class Refresh: method __init__ (line 18) | def __init__(self, time_machine: datetime = None, skip_download: bool ... method debugger (line 41) | def debugger(message: str, payload = None): method remove_existing_releases (line 47) | def remove_existing_releases(self, payload: dict, seen: dict) -> list: method filter_artist_releases (line 75) | def filter_artist_releases(self, payload: dict): method append_database_release (line 124) | def append_database_release(self, new_release: dict): method explicit_id (line 128) | def explicit_id(release_title: str, payload: list): method release_too_old (line 134) | def release_too_old(self, release_date: str): method is_future_release (line 147) | def is_future_release(release_date: str): method allowed_record_type (line 156) | def allowed_record_type(artist_rec_type, release_rec_type: str): method queue_release (line 169) | def queue_release(self, release: dict): method filter_playlist_releases (line 177) | def filter_playlist_releases(self, payload: dict): method waiting_for_refresh (line 193) | def waiting_for_refresh(self): method prep_payload (line 199) | def prep_payload(self, p): method run (line 206) | def run(self, artists: list = None, playlists: list = None): method db_stats (line 302) | def db_stats(self): method get_release_data (line 315) | def get_release_data(self, to_refresh: dict) -> dict: method create_notification (line 351) | def create_notification(self, release: dict): FILE: deemon/cmd/rollback.py function view_transactions (line 10) | def view_transactions(): function rollback_last (line 84) | def rollback_last(i: int): FILE: deemon/cmd/search.py class Search (line 15) | class Search: method __init__ (line 16) | def __init__(self, active_api=None): method truncate_artist (line 39) | def truncate_artist(name: str): method get_latest_release (line 44) | def get_latest_release(self, artist_id: int): method display_monitored_status (line 53) | def display_monitored_status(self, artist_id: int): method has_duplicate_artists (line 59) | def has_duplicate_artists(name: str, artist_dicts: dict): method show_mini_queue (line 64) | def show_mini_queue(self): method search_menu (line 70) | def search_menu(self, query: str = None): method queue_menu_options (line 128) | def queue_menu_options(self): method artist_menu (line 132) | def artist_menu(self, query: str, results: dict, artist_only: bool = F... method get_filtered_year (line 188) | def get_filtered_year(self): method album_menu_header (line 200) | def album_menu_header(self, artist: str): method album_menu_options (line 210) | def album_menu_options(self, monitored): method explicit_lyrics (line 224) | def explicit_lyrics(is_explicit): method item_selected (line 230) | def item_selected(self, id): method show_mode (line 239) | def show_mode(self): method album_menu (line 244) | def album_menu(self, artist: dict): method track_menu_options (line 357) | def track_menu_options(self): method track_menu_header (line 361) | def track_menu_header(self, album): method track_menu (line 365) | def track_menu(self, album): method search_header (line 416) | def search_header(self): method queue_menu (line 419) | def queue_menu(self): method exit_search (line 453) | def exit_search(self): method display_options (line 460) | def display_options(self, filter=None, sort=None, mode=None, options=N... method clear (line 475) | def clear(): method filter_choices (line 482) | def filter_choices(self, choices): method start_queue (line 499) | def start_queue(self): method send_to_queue (line 510) | def send_to_queue(self, item): FILE: deemon/cmd/show.py class Show (line 14) | class Show: method __init__ (line 16) | def __init__(self): method monitoring (line 19) | def monitoring(self, artist: bool = True, query: str = None, export_cs... method playlists (line 191) | def playlists(self, csv=False): method truncate_long_artists (line 197) | def truncate_long_artists(all_artists): method releases (line 204) | def releases(self, days, future): FILE: deemon/cmd/upgradelib.py class Performance (line 38) | class Performance: method __init__ (line 39) | def __init__(self): method start (line 47) | def start(self, module: str): method end (line 53) | def end(self, module: str): function read_metadata (line 62) | def read_metadata(file): function get_time_from_secs (line 84) | def get_time_from_secs(secs): function invalid_metadata (line 101) | def invalid_metadata(track: dict) -> bool: function get_artist_api (line 108) | def get_artist_api(name: str) -> list: function get_artist_discography_api (line 120) | def get_artist_discography_api(artist_name, artist_id) -> list: function get_album_tracklist_api (line 166) | def get_album_tracklist_api(album_id: str) -> list: function retrieve_track_ids_per_artist (line 172) | def retrieve_track_ids_per_artist(discography: tuple): function get_preferred_album (line 275) | def get_preferred_album(api_albums: list, num_tracks: int): function get_preferred_track_id (line 293) | def get_preferred_track_id(title: str, tracklist: list): function upgrade (line 307) | def upgrade(library, output, albums=False, exclusions=False): FILE: deemon/core/api.py class PlatformAPI (line 13) | class PlatformAPI: method __init__ (line 15) | def __init__(self): method debugger (line 25) | def debugger(self, message: str, payload = None): method get_platform (line 31) | def get_platform(self): method set_platform (line 36) | def set_platform(self): method get_account_type (line 49) | def get_account_type(self): method search_artist (line 64) | def search_artist(self, query: str, limit: int = 5): method get_artist_by_id (line 87) | def get_artist_by_id(self, query: int, limit: int = 1): method get_album (line 113) | def get_album(self, query: int) -> dict: method get_track (line 138) | def get_track(self, query: int) -> dict: method get_extra_release_info (line 162) | def get_extra_release_info(self, query: dict): method get_artist_albums (line 175) | def get_artist_albums(self, query: dict, limit: int = -1): method get_playlist (line 265) | def get_playlist(query: int): method get_playlist_tracks (line 285) | def get_playlist_tracks(query: dict): FILE: deemon/core/common.py function exclude_filtered_versions (line 8) | def exclude_filtered_versions(albums: list) -> list: FILE: deemon/core/config.py class Config (line 71) | class Config(object): method __init__ (line 75) | def __init__(self): method __create_default_config (line 107) | def __create_default_config(): method __write_modified_config (line 112) | def __write_modified_config(): method validate (line 117) | def validate(): method get_config_file (line 305) | def get_config_file() -> Path: method get_config (line 309) | def get_config() -> dict: method plex_baseurl (line 313) | def plex_baseurl() -> str: method plex_token (line 317) | def plex_token() -> str: method plex_library (line 321) | def plex_library() -> str: method download_path (line 325) | def download_path() -> str: method deemix_path (line 329) | def deemix_path() -> str: method arl (line 333) | def arl() -> str: method release_max_age (line 337) | def release_max_age() -> int: method bitrate (line 341) | def bitrate() -> str: method alerts (line 345) | def alerts() -> bool: method record_type (line 349) | def record_type() -> str: method smtp_server (line 353) | def smtp_server() -> str: method smtp_port (line 357) | def smtp_port() -> int: method smtp_user (line 361) | def smtp_user() -> str: method smtp_pass (line 365) | def smtp_pass() -> str: method smtp_sender (line 369) | def smtp_sender() -> str: method smtp_recipient (line 373) | def smtp_recipient() -> list: method smtp_starttls (line 377) | def smtp_starttls() -> bool: method check_update (line 381) | def check_update() -> int: method debug_mode (line 385) | def debug_mode() -> bool: method profile_id (line 389) | def profile_id() -> int: method update_available (line 393) | def update_available() -> int: method query_limit (line 397) | def query_limit() -> int: method prompt_duplicates (line 401) | def prompt_duplicates() -> int: method prompt_no_matches (line 405) | def prompt_no_matches() -> bool: method allowed_values (line 409) | def allowed_values(prop): method release_channel (line 413) | def release_channel() -> str: method rollback_view_limit (line 417) | def rollback_view_limit() -> int: method transaction_id (line 421) | def transaction_id() -> int: method check_account_status (line 425) | def check_account_status() -> bool: method fast_api (line 429) | def fast_api() -> bool: method fast_api_threads (line 433) | def fast_api_threads() -> int: method allow_compilations (line 437) | def allow_compilations() -> bool: method allow_featured_in (line 441) | def allow_featured_in() -> bool: method allow_unofficial (line 445) | def allow_unofficial() -> bool: method enable_exclusions (line 449) | def enable_exclusions() -> bool: method exclusion_keywords (line 453) | def exclusion_keywords() -> list: method exclusion_patterns (line 460) | def exclusion_patterns() -> list: method plex_ssl_verify (line 467) | def plex_ssl_verify() -> bool: method halt_download_on_error (line 471) | def halt_download_on_error() -> bool: method smart_search (line 475) | def smart_search() -> bool: method find_position (line 480) | def find_position(d, property): method get (line 490) | def get(property): method set (line 494) | def set(property, value, validate=True): class LoadProfile (line 544) | class LoadProfile(object): method __init__ (line 545) | def __init__(self, profile: dict): FILE: deemon/core/db.py class Database (line 16) | class Database(object): method __init__ (line 18) | def __init__(self): method __enter__ (line 29) | def __enter__(self): method __exit__ (line 32) | def __exit__(self): method dict_factory (line 36) | def dict_factory(cursor, row): method connect (line 42) | def connect(self): method close (line 50) | def close(self): method commit (line 55) | def commit(self): method commit_and_close (line 58) | def commit_and_close(self): method create_new_database (line 62) | def create_new_database(self): method get_latest_ver (line 145) | def get_latest_ver(self): method get_db_version (line 148) | def get_db_version(self): method do_upgrade (line 157) | def do_upgrade(self): method query (line 224) | def query(self, query, values=None): method reset_future (line 229) | def reset_future(self, album_id): method get_all_monitored_artists (line 235) | def get_all_monitored_artists(self): method get_monitored_artist_by_id (line 240) | def get_monitored_artist_by_id(self, artist_id: int): method get_monitored_artist_by_name (line 245) | def get_monitored_artist_by_name(self, name: str): method get_all_monitored_playlist_ids (line 250) | def get_all_monitored_playlist_ids(self): method get_all_monitored_playlists (line 255) | def get_all_monitored_playlists(self): method get_monitored_playlist_by_id (line 260) | def get_monitored_playlist_by_id(self, playlist_id): method get_monitored_playlist_by_name (line 264) | def get_monitored_playlist_by_name(self, title): method monitor_artist (line 269) | def monitor_artist(self, artist: dict, artist_config: dict): method get_artist_releases (line 284) | def get_artist_releases(self, artist_id=None): method get_future_releases (line 292) | def get_future_releases(self): method get_playlist_tracks (line 297) | def get_playlist_tracks(self, playlist_id): method get_track_from_playlist (line 302) | def get_track_from_playlist(self, playlist_id, track_id): method monitor_playlist (line 309) | def monitor_playlist(self, api_result): method remove_monitored_artist (line 321) | def remove_monitored_artist(self, id: int = None): method remove_monitored_playlists (line 327) | def remove_monitored_playlists(self, id: int = None): method get_specified_artist (line 333) | def get_specified_artist(self, artist): method set_all_artists_refreshed (line 342) | def set_all_artists_refreshed(self): method set_all_playlists_refreshed (line 345) | def set_all_playlists_refreshed(self): method add_new_releases (line 348) | def add_new_releases(self, values): method add_new_playlist_releases (line 357) | def add_new_playlist_releases(self, values): method show_new_releases (line 365) | def show_new_releases(self, from_date_ts, now_ts): method get_album_by_id (line 372) | def get_album_by_id(self, album_id): method reset_database (line 377) | def reset_database(self): method update_artist (line 386) | def update_artist(self, settings: dict): method add_playlist_track (line 391) | def add_playlist_track(self, playlist, track): method create_profile (line 401) | def create_profile(self, settings: dict): method delete_profile (line 407) | def delete_profile(self, profile_name: str): method get_all_profiles (line 417) | def get_all_profiles(self): method get_profile (line 420) | def get_profile(self, profile_name: str): method get_profile_by_id (line 424) | def get_profile_by_id(self, profile_id: int): method update_profile (line 428) | def update_profile(self, settings: dict): method last_update_check (line 435) | def last_update_check(self): method set_last_update_check (line 438) | def set_last_update_check(self): method get_next_transaction_id (line 443) | def get_next_transaction_id(self): method new_transaction (line 449) | def new_transaction(self): method rollback_last_refresh (line 458) | def rollback_last_refresh(self, rollback: int): method rollback_refresh (line 470) | def rollback_refresh(self, rollback: int): method set_artist_refreshed (line 478) | def set_artist_refreshed(self, id): method set_playlist_refreshed (line 482) | def set_playlist_refreshed(self, id): method set_latest_version (line 486) | def set_latest_version(self, version): method get_release_channel (line 491) | def get_release_channel(self): method set_release_channel (line 494) | def set_release_channel(self): method get_transactions (line 499) | def get_transactions(self): method get_all_monitored_artist_ids (line 528) | def get_all_monitored_artist_ids(self): method get_monitored (line 534) | def get_monitored(self): method get_unrefreshed_artists (line 540) | def get_unrefreshed_artists(self): method get_unrefreshed_playlists (line 544) | def get_unrefreshed_playlists(self): method fast_monitor (line 548) | def fast_monitor(self, values): method fast_monitor_playlist (line 553) | def fast_monitor_playlist(self, values): method insert_multiple (line 558) | def insert_multiple(self, table, values): method remove_by_name (line 563) | def remove_by_name(self, values): method remove_by_id (line 570) | def remove_by_id(self, values): method remove_specific_releases (line 578) | def remove_specific_releases(self, values): method add_extra_release_info (line 581) | def add_extra_release_info(self, values): FILE: deemon/core/dmi.py class DeemixLogListener (line 24) | class DeemixLogListener: method send (line 26) | def send(cls, key, value=None): class DeemixInterface (line 43) | class DeemixInterface: method __init__ (line 44) | def __init__(self): method download_url (line 59) | def download_url(self, url, bitrate, download_path, override_deemix=Tr... method deezer_acct_type (line 85) | def deezer_acct_type(self): method verify_arl (line 98) | def verify_arl(self, arl): method login (line 109) | def login(self): method generatePlaylistItem (line 146) | def generatePlaylistItem(self, dz, link_id, bitrate, playlistAPI=None,... class GenerationError (line 211) | class GenerationError(Exception): method __init__ (line 212) | def __init__(self, link, message, errid=None): method toDict (line 218) | def toDict(self): class InvalidID (line 226) | class InvalidID(GenerationError): method __init__ (line 227) | def __init__(self, link): class NotYourPrivatePlaylist (line 231) | class NotYourPrivatePlaylist(GenerationError): method __init__ (line 232) | def __init__(self, link): FILE: deemon/core/exceptions.py class ValueNotAllowed (line 1) | class ValueNotAllowed(Exception): class PropertyTypeMismatch (line 5) | class PropertyTypeMismatch(Exception): class UnknownValue (line 9) | class UnknownValue(Exception): FILE: deemon/core/logger.py class tqdmStream (line 14) | class tqdmStream(object): method write (line 17) | def write(cls, msg): function setup_logger (line 21) | def setup_logger(log_level='DEBUG', log_file=None): FILE: deemon/core/notifier.py class Notify (line 19) | class Notify: method __init__ (line 21) | def __init__(self, new_releases: list = None): method send (line 26) | def send(self, body=None, test=False): method construct_header (line 58) | def construct_header(self, is_plain_text=True, subject=None): method html_message (line 73) | def html_message(self): method test (line 82) | def test(self): method expired_arl (line 90) | def expired_arl(self): method expired_sub (line 98) | def expired_sub(self): method plaintext_message (line 106) | def plaintext_message(self) -> str: method html_new_releases (line 119) | def html_new_releases(self): FILE: deemon/utils/dataprocessor.py function read_file_as_csv (line 7) | def read_file_as_csv(file, split_new_line=True): function process_input_file (line 25) | def process_input_file(artist_list): function csv_to_list (line 55) | def csv_to_list(all_artists) -> list: FILE: deemon/utils/dates.py function get_todays_date (line 8) | def get_todays_date(): function generate_date_filename (line 14) | def generate_date_filename(prefix: str): function get_max_release_date (line 18) | def get_max_release_date(days): function get_year (line 26) | def get_year(release_date: str): function format_date_string (line 30) | def format_date_string(d: str): function ui_date (line 34) | def ui_date(d: datetime): function str_to_datetime_obj (line 37) | def str_to_datetime_obj(d: str) -> datetime: function get_friendly_date (line 43) | def get_friendly_date(d: int): FILE: deemon/utils/performance.py function timeit (line 7) | def timeit(method): function operation_time (line 19) | def operation_time(start_time): FILE: deemon/utils/startup.py function get_appdata_root (line 12) | def get_appdata_root(): function get_appdata_dir (line 28) | def get_appdata_dir(): function get_backup_dir (line 35) | def get_backup_dir(): function init_appdata_dir (line 39) | def init_appdata_dir(appdata): function delete_appdata (line 44) | def delete_appdata(appdata): function reinit_appdata_dir (line 51) | def reinit_appdata_dir(appdata): function get_config (line 59) | def get_config(): function get_database (line 63) | def get_database(): function get_log_file (line 67) | def get_log_file(): function get_latest_version (line 74) | def get_latest_version(release_type): function get_changelog (line 96) | def get_changelog(ver: str): FILE: deemon/utils/ui.py function get_progress_bar_size (line 7) | def get_progress_bar_size() -> int: function set_progress_bar_text (line 22) | def set_progress_bar_text(msg: str, max_length: int) -> str: FILE: deemon/utils/validate.py function validate_date (line 7) | def validate_date(d):