aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Ankarström <john@ankarstrom.se>2022-04-05 02:37:58 +0200
committerJohn Ankarström <john@ankarstrom.se>2022-04-05 02:37:58 +0200
commit9a48743eeba0f1bc4cf74f47fef96bdbcadfc98b (patch)
treef78c6062b2ec931f1c181d7726ee612c332b892b
parent96f4b3a127e027364c77416f1ee8e5a471c5d783 (diff)
downloadEpisodeBrowser-9a48743eeba0f1bc4cf74f47fef96bdbcadfc98b.tar.gz
Move settings to registry.
-rw-r--r--pl/cfg.pl33
-rw-r--r--pl/local_episodes.pl14
2 files changed, 39 insertions, 8 deletions
diff --git a/pl/cfg.pl b/pl/cfg.pl
new file mode 100644
index 0000000..f24e44e
--- /dev/null
+++ b/pl/cfg.pl
@@ -0,0 +1,33 @@
+:- 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('EpisodeRoot', V).
+get_glob(V) :-
+ ( get_key('EpisodeRoot', V)
+ ; V = '*/*.*'
+ ).
+
+set_url(V) :- set_key('UrlPrefix', V).
+get_url(V) :-
+ ( get_key('UrlPrefix', V)
+ ; V = 'https://gogoanime.fi/detective-conan-episode-'
+ ).
diff --git a/pl/local_episodes.pl b/pl/local_episodes.pl
index 5eaf6b7..49d930c 100644
--- a/pl/local_episodes.pl
+++ b/pl/local_episodes.pl
@@ -1,10 +1,10 @@
:- module(local_episodes, [local_episode//1,
episode_file/2,
- sort_episode_file/2,
open_episode/1]).
:- use_module(library(dcg/basics)).
:- use_module(atom_dcg).
+:- use_module(cfg).
local_episode_prefix --> string(_), "Detective_Conan_-_".
local_episode_prefix --> string(_), "Detective Conan - ".
@@ -22,7 +22,10 @@ local_episode(N) -->
% Find episode on disk.
episode_file(N, F) :-
- expand_file_name('C:/Users/John/Nedladdningar/Detective Conan season 1 to season 22 + season 23(incomplete)/*/*.*', F1),
+ get_root(R),
+ get_glob(G),
+ atomic_list_concat([R, '/', G], G1),
+ expand_file_name(G1, F1),
( nonvar(N)
-> include(atom_phrase(local_episode(N)), F1, [F|_])
; include(atom_phrase(local_episode), F1, F2),
@@ -30,13 +33,8 @@ episode_file(N, F) :-
atom_phrase(local_episode(N), F)
).
-sort_episode_file(N, F) :-
- setof(N_-F_, episode_file(N_, F_), S),
- member(N-F, S).
-
% Open episode.
-episode_url(N) --> "https://gogoanime.fi/detective-conan-episode-", integer(N).
-
+episode_url(N) --> { with_codes(get_url(U)) }, string(U), integer(N).
open_episode(N) :- episode_file(N, F), !, win_shell(open, F).
open_episode(N) :- atom_phrase(episode_url(N), U), win_shell(open, U).