:- module(cfg, [set_glob/1,
		get_glob/1,
		set_root/1,
		get_root/1,
		set_url/1,
		get_url/1]).

:- use_module(library(registry)).

set_key(Key, Value) :-
	registry_set_key(current_user/software/'JohnAJ'/'EpisodeBrowser'/'Settings', Key, Value).
get_key(Key, Value) :-
	catch(registry_get_key(current_user/software/'JohnAJ'/'EpisodeBrowser'/'Settings', Key, Value),
	      _,
	      fail).

set_root(V) :- set_key('EpisodeRoot', V).
get_root(V) :-
	get_key('EpisodeRoot', V0),
	re_replace('\\\\', '/', V0, V1),
	atom_string(V, V1).

set_glob(V) :- set_key('EpisodeGlob', V).
get_glob(V) :-
	(   get_key('EpisodeGlob', V), !
	;   V = '*/*.*'
	).

set_url(V) :- set_key('UrlPrefix', V).
get_url(V) :-
	(   get_key('UrlPrefix', V), !
	;   V = 'https://animixplay.to/v1/detective-conan/ep'
	).

set_view_watched(V) :- set_key('ViewWatched', V).
get_view_watched(V) :-
	(   get_key('ViewWatched', V),
	    integer(V), !
	;   V = 1
	).

set_view_tv_original(V) :- set_key('ViewTVOriginal', V).
get_view_tv_original(V) :-
	(   get_key('ViewTVOriginal', V),
	    integer(V), !
	;   V = 1
	).

set_limit_screenwriter(V) :- set_key('LimitScreenwriter', V).
get_limit_screenwriter(V) :-
	(   get_key('LimitScreenwriter', V),
	    atom(V), !
	;   V = ""
	).

set_sort(V) :- W is V + 2147483647, set_key('Sort', W).
get_sort(V) :-
	(   get_key('Sort', W),
	    integer(W), !,
	    V is W - 2147483647
	;   V = 1
	).

set_focus(V) :- set_key('Focus', V).
get_focus(V) :-
	(   get_key('Focus', V),
	    integer(V), !
	;   V = 1
	).

set_dlv_height(V) :- set_key('DlvHeight', V).
get_dlv_height(V) :-
	(   get_key('DlvHeight', V),
	    integer(V), !
	;   V = 0
	).