SYMBOL INDEX (346 symbols across 56 files) FILE: main.py class ScheduleFileHandler (line 35) | class ScheduleFileHandler(FileSystemEventHandler): method __init__ (line 36) | def __init__(self, callback, debounce_interval=1): method on_modified (line 42) | def on_modified(self, event): function start_schedule_watcher (line 51) | def start_schedule_watcher(callback): class ModuleManager (line 64) | class ModuleManager: method __init__ (line 65) | def __init__(self, logger): method run (line 71) | def run(self, module_name, run_module): method run_if_due (line 77) | def run_if_due(self, module_name, schedule_time, check_schedule_func, ... method is_already_running (line 91) | def is_already_running(self, module_name): method cleanup (line 94) | def cleanup(self): method has_running_modules (line 107) | def has_running_modules(self): function load_schedule (line 111) | def load_schedule(): function run_module (line 118) | def run_module(module_to_run, output=False, logger=None): function print_schedule (line 132) | def print_schedule(logger, modules_schedules): function main (line 143) | def main(): FILE: modules/border_replacerr.py function load_last_run (line 24) | def load_last_run(log_dir: str, logger: Logger = None) -> Optional[datet... function save_last_run (line 43) | def save_last_run(log_dir: str, dt: Optional[datetime] = None, logger: L... function check_holiday (line 56) | def check_holiday( function convert_to_rgb (line 120) | def convert_to_rgb(hex_color: str, logger: Logger) -> Tuple[int, int, int]: function fix_borders (line 144) | def fix_borders( function replace_borders (line 267) | def replace_borders( function remove_borders (line 338) | def remove_borders( function copy_files (line 414) | def copy_files( function process_files (line 508) | def process_files( function print_output (line 625) | def print_output( function main (line 657) | def main(config: SimpleNamespace) -> None: FILE: modules/health_checkarr.py function main (line 16) | def main(config: SimpleNamespace) -> None: FILE: modules/jduparr.py function print_output (line 11) | def print_output(output: list[dict], logger: Logger) -> None: function main (line 38) | def main(config: SimpleNamespace) -> None: FILE: modules/labelarr.py function sync_to_plex (line 21) | def sync_to_plex( function handle_messages (line 211) | def handle_messages(data_dict: List[Dict], logger: Logger) -> None: function main (line 239) | def main(config: SimpleNamespace) -> None: FILE: modules/nohl.py function find_nohl_files (line 29) | def find_nohl_files( function handle_searches (line 173) | def handle_searches( function filter_media (line 278) | def filter_media( function handle_messages (line 506) | def handle_messages(output: Dict[str, Any], logger: Logger) -> None: function main (line 609) | def main(config) -> None: FILE: modules/poster_cleanarr.py function remove_assets (line 27) | def remove_assets( function print_output (line 119) | def print_output( function main (line 151) | def main(config: SimpleNamespace) -> None: FILE: modules/poster_renamerr.py function process_file (line 35) | def process_file(file: str, new_file_path: str, action_type: str, logger... function rename_files (line 59) | def rename_files( function handle_output (line 216) | def handle_output( function main (line 260) | def main(config: SimpleNamespace) -> None: FILE: modules/renameinatorr.py function print_output (line 15) | def print_output(output: Dict[str, Dict[str, Any]], logger: Logger) -> N... function get_count_for_instance_type (line 62) | def get_count_for_instance_type( function process_instance (line 90) | def process_instance( function get_chunks_for_run (line 273) | def get_chunks_for_run( function get_untagged_chunks_for_run (line 292) | def get_untagged_chunks_for_run( function main (line 315) | def main(config: SimpleNamespace) -> None: FILE: modules/sync_gdrive.py function get_rclone_path (line 23) | def get_rclone_path() -> str: function run_rclone (line 43) | def run_rclone(config: SimpleNamespace, logger: Logger) -> None: function main (line 149) | def main(config: SimpleNamespace, logger: Optional[Logger] = None) -> None: FILE: modules/unmatched_assets.py function print_output (line 22) | def print_output( function main (line 189) | def main(config: SimpleNamespace) -> None: FILE: modules/upgradinatorr.py function filter_media (line 13) | def filter_media( function process_search_response (line 99) | def process_search_response( function process_queue (line 133) | def process_queue( function process_instance (line 169) | def process_instance( function print_output (line 380) | def print_output(output_dict: Dict[str, Any], logger: Logger) -> None: function main (line 411) | def main(config: SimpleNamespace) -> None: FILE: util/arrpy.py class BaseARRClient (line 17) | class BaseARRClient: method __init__ (line 20) | def __init__(self, url: str, api: str, logger: Any) -> None: method get_health (line 57) | def get_health(self) -> Optional[Dict[str, Any]]: method wait_for_command (line 67) | def wait_for_command(self, command_id: int) -> bool: method create_tag (line 95) | def create_tag(self, tag: str) -> int: method get_instance_name (line 110) | def get_instance_name(self) -> Optional[str]: method get_system_status (line 120) | def get_system_status(self) -> Optional[Dict[str, Any]]: method make_get_request (line 130) | def make_get_request( method make_post_request (line 144) | def make_post_request( method make_put_request (line 159) | def make_put_request( method make_delete_request (line 174) | def make_delete_request(self, endpoint: str, json: Any = None) -> Any: method _request_with_retries (line 186) | def _request_with_retries( method _handle_request_exception (line 226) | def _handle_request_exception( method _get_error_hint (line 265) | def _get_error_hint(self, status_code: int) -> str: method get_tag_id_from_name (line 285) | def get_tag_id_from_name(self, tag_name: str) -> int: method get_all_tags (line 303) | def get_all_tags(self) -> Optional[List[Dict[str, Any]]]: method get_quality_profile_names (line 313) | def get_quality_profile_names(self) -> Optional[Dict[str, int]]: class RadarrClient (line 329) | class RadarrClient(BaseARRClient): method __init__ (line 332) | def __init__(self, url: str, api: str, logger: Any) -> None: method get_media (line 344) | def get_media(self) -> Optional[List[Dict[str, Any]]]: method add_tags (line 354) | def add_tags(self, media_id: Union[int, List[int]], tag_id: int) -> Any: method remove_tags (line 370) | def remove_tags(self, media_ids: List[int], tag_id: int) -> Any: method get_rename_list (line 384) | def get_rename_list(self, media_id: int) -> Any: method rename_media (line 395) | def rename_media(self, media_ids: List[int]) -> Any: method rename_folders (line 411) | def rename_folders(self, media_ids: List[int], root_folder_path: str) ... method refresh_items (line 429) | def refresh_items(self, media_ids: Union[int, List[int]]) -> Any: method refresh_media (line 444) | def refresh_media(self) -> Any: method search_media (line 457) | def search_media(self, media_ids: Union[int, List[int]]) -> Optional[A... method get_movie_data (line 483) | def get_movie_data(self, media_id: int) -> Any: method get_grab_history (line 494) | def get_grab_history(self, media_id: int) -> Any: method get_import_history (line 506) | def get_import_history(self, media_id: int) -> Any: method get_queue (line 518) | def get_queue(self) -> Any: method delete_media (line 528) | def delete_media(self, media_id: int) -> Any: method delete_movie_file (line 539) | def delete_movie_file(self, media_id: int) -> Any: method get_parsed_media (line 550) | def get_parsed_media(self, include_episode: bool = False) -> List[Dict... class SonarrClient (line 609) | class SonarrClient(BaseARRClient): method __init__ (line 612) | def __init__(self, url: str, api: str, logger: Any) -> None: method get_media (line 624) | def get_media(self) -> Optional[List[Dict[str, Any]]]: method add_tags (line 634) | def add_tags(self, media_id: Union[int, List[int]], tag_id: int) -> Any: method remove_tags (line 650) | def remove_tags(self, media_ids: List[int], tag_id: int) -> Any: method get_rename_list (line 664) | def get_rename_list(self, media_id: int) -> Any: method rename_media (line 675) | def rename_media(self, media_ids: List[int]) -> Any: method rename_folders (line 691) | def rename_folders(self, media_ids: List[int], root_folder_path: str) ... method refresh_items (line 709) | def refresh_items(self, media_ids: Union[int, List[int]]) -> Any: method refresh_media (line 724) | def refresh_media(self) -> Any: method search_media (line 737) | def search_media(self, media_ids: Union[int, List[int]]) -> Optional[A... method search_season (line 764) | def search_season(self, media_id: int, season_number: int) -> Any: method get_episode_data (line 781) | def get_episode_data(self, media_id: int) -> Any: method get_episode_data_by_season (line 792) | def get_episode_data_by_season(self, media_id: int, season_number: int... method get_season_data (line 804) | def get_season_data(self, media_id: int) -> Any: method delete_episode_file (line 815) | def delete_episode_file(self, episode_file_id: int) -> Any: method delete_episode_files (line 826) | def delete_episode_files(self, episode_file_ids: Union[int, List[int]]... method search_episodes (line 841) | def search_episodes(self, episode_ids: List[int]) -> Any: method get_grab_history (line 854) | def get_grab_history(self, media_id: int) -> Any: method get_import_history (line 866) | def get_import_history(self, media_id: int) -> Any: method get_season_grab_history (line 878) | def get_season_grab_history(self, media_id: int, season: int) -> Any: method get_season_import_history (line 891) | def get_season_import_history(self, media_id: int, season: int) -> Any: method get_queue (line 904) | def get_queue(self) -> Any: method delete_media (line 914) | def delete_media(self, media_id: int) -> Any: method get_parsed_media (line 925) | def get_parsed_media(self, include_episode: bool = False) -> List[Dict... method refresh_queue (line 1021) | def refresh_queue(self) -> Any: method remove_item_from_queue (line 1032) | def remove_item_from_queue(self, queue_ids: Union[int, List[int]]) -> ... function create_arr_client (line 1047) | def create_arr_client( FILE: util/assets.py function get_assets_files (line 13) | def get_assets_files( function merge_assets (line 67) | def merge_assets( FILE: util/config.py class Config (line 14) | class Config: method __init__ (line 17) | def __init__(self, module_name: str) -> None: method load_config (line 28) | def load_config(self) -> None: function load_user_config (line 64) | def load_user_config(path: str) -> Dict[str, Any]: function _reconcile_config_data (line 106) | def _reconcile_config_data( function manage_config (line 151) | def manage_config(logger: Logger) -> None: FILE: util/construct.py function generate_title_variants (line 9) | def generate_title_variants(title: str) -> Dict[str, List[str]]: function create_collection (line 47) | def create_collection( function create_series (line 82) | def create_series( function create_movie (line 137) | def create_movie( FILE: util/extract.py function extract_year (line 6) | def extract_year(text: str) -> Optional[int]: function extract_ids (line 21) | def extract_ids(text: str) -> Tuple[Optional[int], Optional[int], Option... FILE: util/index.py function create_new_empty_index (line 12) | def create_new_empty_index() -> PrefixIndex: function remove_common_words (line 21) | def remove_common_words(text: str) -> str: function build_search_index (line 39) | def build_search_index( function search_matches (line 92) | def search_matches( FILE: util/logger.py class Logger (line 14) | class Logger: method __init__ (line 17) | def __init__(self, log_level: str, module_name: str, max_logs: int = 9): method log_outro (line 77) | def log_outro(self) -> None: method __getattr__ (line 89) | def __getattr__(self, name): function _print (line 96) | def _print(*args: object, file: Optional[object] = None, **kwargs: objec... FILE: util/match.py function compare_strings (line 13) | def compare_strings(string1: str, string2: str) -> bool: function is_match (line 20) | def is_match( function match_media_to_assets (line 179) | def match_media_to_assets( function match_assets_to_media (line 319) | def match_assets_to_media( function handle_series_match (line 583) | def handle_series_match( FILE: util/normalization.py function remove_common_words (line 17) | def remove_common_words(text: str) -> str: function remove_tokens (line 33) | def remove_tokens(text: str) -> str: function normalize_file_names (line 47) | def normalize_file_names(file_name: str) -> str: function normalize_titles (line 77) | def normalize_titles(title: str) -> str: FILE: util/notification.py class ErrorNotifyHandler (line 16) | class ErrorNotifyHandler(logging.Handler): method __init__ (line 19) | def __init__(self, config, module_name="main", logger=None): method emit (line 25) | def emit(self, record): class NotifiarrConfig (line 71) | class NotifiarrConfig: function extract_error (line 76) | def extract_error(resp: requests.Response) -> str: function build_notifiarr_payload (line 92) | def build_notifiarr_payload(module_title: str, cid: int) -> Dict[str, Any]: function build_discord_payload (line 121) | def build_discord_payload( function safe_post (line 179) | def safe_post(url: str, payload: Dict[str, Any]) -> requests.Response: function get_random_joke (line 192) | def get_random_joke() -> str: function send_and_log_response (line 208) | def send_and_log_response( function send_notifiarr_notification (line 233) | def send_notifiarr_notification( function send_discord_notification (line 321) | def send_discord_notification( function extract_apprise_errors (line 343) | def extract_apprise_errors(apprise: Apprise) -> str: function format_notification_error (line 369) | def format_notification_error(source: Any, label: str = "") -> str: function format_module_title (line 389) | def format_module_title(name: str) -> str: function send_apprise_notification (line 401) | def send_apprise_notification( function send_email_notification (line 437) | def send_email_notification( function collect_valid_targets (line 471) | def collect_valid_targets( function send_test_notification (line 566) | def send_test_notification( function send_notification (line 631) | def send_notification(logger: Any, module_name: str, config: Any, output... FILE: util/notification_formatting.py function format_for_discord (line 7) | def format_for_discord( function format_for_email (line 453) | def format_for_email(config: Any, output: Any) -> Tuple[str, bool]: FILE: util/scanner.py function scan_files_in_flat_folder (line 22) | def scan_files_in_flat_folder(folder_path: str, logger: Any) -> List[Dict]: function scan_files_in_nested_folders (line 87) | def scan_files_in_nested_folders(folder_path: str, logger: Any) -> Optio... function parse_folder_group (line 139) | def parse_folder_group(folder_path: str, base_name: str, files: List[str... function parse_file_group (line 196) | def parse_file_group(folder_path: str, base_name: str, files: List[str])... function process_files (line 267) | def process_files(folder_path: str, logger: Any) -> Optional[List[Dict]]: function _is_asset_folders (line 304) | def _is_asset_folders(folder_path: str, logger: Any) -> bool: function process_selected_files (line 333) | def process_selected_files( FILE: util/scheduler.py function check_schedule (line 13) | def check_schedule(script_name: str, schedule: str, logger: Logger) -> b... FILE: util/utility.py function print_json (line 22) | def print_json(data: Any, logger: Any, module_name: str, type_: str) -> ... function print_settings (line 45) | def print_settings(logger: Any, module_config: SimpleNamespace) -> None: function create_table (line 108) | def create_table(data: List[List[Any]]) -> str: function get_plex_data (line 166) | def get_plex_data( function create_bar (line 259) | def create_bar(middle_text: str) -> str: function redact_sensitive_info (line 280) | def redact_sensitive_info(text: str, password: bool = False) -> str: function progress (line 319) | def progress( function redact_apis (line 365) | def redact_apis(obj: Any) -> None: function get_log_dir (line 382) | def get_log_dir(module_name: str) -> str: FILE: util/version.py function get_version (line 15) | def get_version() -> str: function _check_remote_version (line 43) | def _check_remote_version(local_version, branch, logger): function start_version_check (line 100) | def start_version_check(config, logger, interval=3600): FILE: web/server.py function load_config_dict (line 43) | def load_config_dict() -> Dict[str, Any]: function save_config_dict (line 50) | def save_config_dict(cfg: Dict[str, Any]) -> None: class RunRequest (line 57) | class RunRequest(BaseModel): class CancelRequest (line 63) | class CancelRequest(BaseModel): class TestInstanceRequest (line 69) | class TestInstanceRequest(BaseModel): class NotificationPayload (line 78) | class NotificationPayload(BaseModel): function get_config (line 85) | def get_config() -> Dict[str, Any]: function get_logger (line 90) | def get_logger(request: Request) -> Any: function handle_exception (line 107) | async def handle_exception(request: FastAPIRequest, exc: Exception): function log_route (line 116) | def log_route(logger: Any, path: str, method: str = "GET") -> None: function get_version_route (line 123) | async def get_version_route( function test_notification (line 136) | async def test_notification( function root (line 162) | async def root() -> HTMLResponse: function get_config_route (line 172) | async def get_config_route( function update_config_route (line 181) | async def update_config_route( function list_dir (line 227) | async def list_dir(path: str = "/") -> Any: function get_plex_libraries (line 243) | async def get_plex_libraries( function run_module (line 294) | async def run_module( function module_status (line 328) | async def module_status(module: str, logger: Any = Depends(get_logger)) ... function cancel_module (line 360) | async def cancel_module(data: CancelRequest, logger: Any = Depends(get_l... function test_instance (line 385) | async def test_instance( function create_folder (line 424) | async def create_folder(path: str, logger: Any = Depends(get_logger)) ->... function serve_fragment (line 436) | async def serve_fragment(fragment_name: str, logger: Any = Depends(get_l... function list_logs (line 449) | async def list_logs(logger: Any = Depends(get_logger)) -> Dict[str, List... function read_log (line 473) | async def read_log( function poster_search_stats (line 492) | async def poster_search_stats(request: Request, logger: Any = Depends(ge... function preview_poster (line 530) | async def preview_poster(location: str, path: str, logger: Any = Depends... function start_web_server (line 555) | def start_web_server(logger: Any) -> None: FILE: web/static/js/common.js constant DAPS (line 1) | const DAPS = { function bindSaveButton (line 12) | function bindSaveButton(saveBtn, buildPayloadFn, key, postSave) { function setSaveButtonState (line 19) | function setSaveButtonState(saveBtn, state, label = 'Save') { function markDirty (line 40) | function markDirty() { function saveSection (line 44) | async function saveSection(buildPayload, key, postSave, saveBtn) { function showUnsavedModal (line 74) | function showUnsavedModal() { function humanize (line 129) | function humanize(key) { function showToast (line 133) | function showToast(message, type = 'info', timeout = 3000) { FILE: web/static/js/help_content.js constant HELP_CONTENT (line 1) | const HELP_CONTENT = { FILE: web/static/js/helper.js constant NOTIFICATION_LIST (line 19) | const NOTIFICATION_LIST = [ constant NOTIFICATION_DEFINITIONS (line 31) | const NOTIFICATION_DEFINITIONS = { constant NOTIFICATION_TYPES_PER_MODULE (line 128) | const NOTIFICATION_TYPES_PER_MODULE = { function renderHelp (line 133) | function renderHelp(sectionName) { function renderHelpLink (line 235) | function renderHelpLink(item) { function fetchConfig (line 244) | async function fetchConfig() { function fetchStats (line 254) | async function fetchStats(location) { FILE: web/static/js/index.js function parseVersionString (line 3) | function parseVersionString(ver) { function getRemoteBuildCount (line 28) | async function getRemoteBuildCount(owner, repo, branch) { function mainVersionCheck (line 43) | async function mainVersionCheck() { function setTheme (line 83) | function setTheme() { function showSplashScreen (line 131) | function showSplashScreen() { function animateSplashParticles (line 169) | function animateSplashParticles(canvas) { FILE: web/static/js/instances.js function loadInstances (line 7) | async function loadInstances() { function createEntry (line 63) | function createEntry(service, name, settings, isNew = false) { FILE: web/static/js/logs.js function buildLogControls (line 10) | function buildLogControls() { function ensureLogControls (line 45) | function ensureLogControls() { function escapeRegex (line 78) | function escapeRegex(text) { constant ANSI_COLORS (line 82) | const ANSI_COLORS = { function applyLogLevelAnsiColors (line 95) | function applyLogLevelAnsiColors(line) { function renderToXTerm (line 104) | function renderToXTerm(text, options = {}) { function handleXTermScroll (line 135) | function handleXTermScroll() { function loadLogs (line 146) | async function loadLogs() { FILE: web/static/js/navigation.js constant PAGE_LOADERS (line 10) | const PAGE_LOADERS = { constant EDITABLE_PAGES (line 19) | const EDITABLE_PAGES = [ function isEditablePage (line 26) | function isEditablePage(currentUrl) { function highlightNav (line 30) | function highlightNav(frag, url) { function navigateTo (line 69) | async function navigateTo(link) { function populateSettingsDropdown (line 124) | async function populateSettingsDropdown() { function setupDropdownMenus (line 226) | function setupDropdownMenus() { FILE: web/static/js/notifications.js function loadNotifications (line 11) | async function loadNotifications() { FILE: web/static/js/payload.js function buildNotificationPayload (line 8) | async function buildNotificationPayload() { function buildSchedulePayload (line 65) | async function buildSchedulePayload() { function buildInstancesPayload (line 78) | async function buildInstancesPayload() { function buildSettingsPayload (line 107) | async function buildSettingsPayload(moduleName) { FILE: web/static/js/poster_search.js constant IDS (line 4) | const IDS = { function showLoaderModal (line 27) | function showLoaderModal(show = true) { function formatBytes (line 60) | function formatBytes(bytes) { function renderStatsTable (line 69) | function renderStatsTable(statsArr, totals, title) { function sortGdriveStats (line 130) | function sortGdriveStats(statsArr, mode, priorityMap = {}) { function fetchAndRenderStats (line 173) | async function fetchAndRenderStats() { function renderStatsSection (line 304) | function renderStatsSection() { function setupStatsToggle (line 352) | function setupStatsToggle() { function getById (line 372) | function getById(id) { function highlight (line 375) | function highlight(str, term) { function showSpinner (line 380) | function showSpinner(show) { function materialIcon (line 384) | function materialIcon(name, style = '') { function showImageModal (line 388) | function showImageModal(imgSrc, caption) { function closeImageModal (line 405) | function closeImageModal() { function setupHoverPreview (line 411) | function setupHoverPreview() { function fetchAllFileLists (line 427) | async function fetchAllFileLists() { function renderResults (line 495) | function renderResults(term) { function copyToClipboard (line 583) | function copyToClipboard(btn, text) { function setupEventListeners (line 603) | function setupEventListeners() { function initPosterSearch (line 707) | async function initPosterSearch() { FILE: web/static/js/schedule.js function loadSchedule (line 7) | async function loadSchedule() { function isValidSchedule (line 207) | function isValidSchedule(val) { FILE: web/static/js/settings.js constant MODULE_RENDERERS (line 19) | const MODULE_RENDERERS = { function loadSettings (line 34) | async function loadSettings(moduleName) { FILE: web/static/js/settings/constants.js constant BOOL_FIELDS (line 1) | const BOOL_FIELDS = [ constant TEXT_FIELDS (line 19) | const TEXT_FIELDS = [ constant TEXTAREA_FIELDS (line 28) | const TEXTAREA_FIELDS = [ constant INT_FIELDS (line 40) | const INT_FIELDS = [ constant JSON_FIELDS (line 49) | const JSON_FIELDS = ['token']; constant DROP_DOWN_FIELDS (line 51) | const DROP_DOWN_FIELDS = ['log_level', 'action_type', 'app_type', 'app_i... constant DROP_DOWN_OPTIONS (line 55) | const DROP_DOWN_OPTIONS = { constant DIR_PICKER (line 76) | const DIR_PICKER = ['source_dirs', 'destination_dir', 'data_dir']; constant ARR_AND_PLEX_INSTANCES (line 78) | const ARR_AND_PLEX_INSTANCES = [ constant SHOW_PLEX_IN_INSTANCE_FIELD (line 89) | const SHOW_PLEX_IN_INSTANCE_FIELD = [ constant DRAG_AND_DROP (line 95) | const DRAG_AND_DROP = { constant LIST_FIELD (line 99) | const LIST_FIELD = { constant PLACEHOLDER_TEXT (line 105) | const PLACEHOLDER_TEXT = { FILE: web/static/js/settings/modal_helpers.js function populateScheduleDropdowns (line 4) | function populateScheduleDropdowns() { function loadHolidayPresets (line 30) | function loadHolidayPresets() { function populateGDrivePresetsDropdown (line 77) | async function populateGDrivePresetsDropdown(gdriveSyncData, editingIdx ... function gdrivePresets (line 190) | async function gdrivePresets() { FILE: web/static/js/settings/modals.js function modalFooterHtml (line 12) | function modalFooterHtml(saveId, cancelId, saveLabel = 'Save') { function attachModalSaveCancel (line 21) | function attachModalSaveCancel(modal, saveSelector, cancelSelector, onSa... function gdriveSyncModal (line 28) | function gdriveSyncModal(editIdx, gdriveSyncData, updateGdriveList) { function borderReplacerrModal (line 114) | function borderReplacerrModal(editIdx, borderReplacerrData, onUpdate) { function labelarrModal (line 255) | function labelarrModal(editIdx, labelarrData, rootConfig, updateLabelarr... function upgradinatorrModal (line 501) | function upgradinatorrModal(editIdx, upgradinatorrData, rootConfig, upda... function directoryPickerModal (line 642) | function directoryPickerModal(inputElement) { FILE: web/static/js/settings/modules/border_replacerr.js function renderReplacerrSettings (line 8) | function renderReplacerrSettings(formFields, config, rootConfig) { function getBorderReplacerrData (line 176) | function getBorderReplacerrData() { FILE: web/static/js/settings/modules/health_checkarr.js function renderHealthCheckarrSettings (line 4) | function renderHealthCheckarrSettings(formFields, config, rootConfig) { FILE: web/static/js/settings/modules/jduparr.js function renderJduparrSettings (line 4) | function renderJduparrSettings(formFields, config) { FILE: web/static/js/settings/modules/labelarr.js function renderLabelarrSettings (line 8) | function renderLabelarrSettings(formFields, config, rootConfig) { function getLabelarrData (line 152) | function getLabelarrData() { FILE: web/static/js/settings/modules/main.js function renderMain (line 4) | function renderMain(formFields, config) { FILE: web/static/js/settings/modules/nohl.js function renderNohlSettings (line 4) | function renderNohlSettings(formFields, config, rootConfig) { FILE: web/static/js/settings/modules/poster_cleanarr.js function renderPosterCleanarrSettings (line 4) | function renderPosterCleanarrSettings(formFields, config, rootConfig) { FILE: web/static/js/settings/modules/poster_renamerr.js function renderPosterRenamerrSettings (line 4) | function renderPosterRenamerrSettings(formFields, config, rootConfig) { FILE: web/static/js/settings/modules/renameinatorr.js function renderRenameinatorrSettings (line 4) | function renderRenameinatorrSettings(formFields, config, rootConfig) { FILE: web/static/js/settings/modules/sync_gdrive.js function renderGdriveSettings (line 7) | function renderGdriveSettings(formFields, config) { function getGdriveSyncData (line 90) | function getGdriveSyncData() { FILE: web/static/js/settings/modules/unmatched_assets.js function renderUnmatchedAssetsSettings (line 4) | function renderUnmatchedAssetsSettings(formFields, config, rootConfig) { FILE: web/static/js/settings/modules/upgradinatorr.js function renderUpgradinatorrSettings (line 8) | function renderUpgradinatorrSettings(formFields, config, rootConfig) { function getUpgradinatorrData (line 110) | function getUpgradinatorrData() { FILE: web/static/js/settings/settings_helpers.js function createListField (line 18) | function createListField(name, list) { function createField (line 119) | function createField(label, html) { function boolDropdown (line 129) | function boolDropdown(name, selected) { function renderTextField (line 136) | function renderTextField(name, value) { function renderBooleanField (line 163) | function renderBooleanField(name, value) { function renderDropdownField (line 168) | function renderDropdownField(name, value, options) { function renderTextareaArrayField (line 196) | function renderTextareaArrayField(name, values) { function renderNumberField (line 241) | function renderNumberField(name, value) { function renderRemoveBordersBooleanField (line 249) | function renderRemoveBordersBooleanField(config) { function renderPlexSonarrRadarrInstancesField (line 286) | function renderPlexSonarrRadarrInstancesField( function createDragDropField (line 499) | function createDragDropField(name, list) { function renderField (line 607) | function renderField(formFields, key, value) {