comparison src/library/library.cc @ 328:71396ecb6f7e

library: convert to class + database it also stores std::filesystem::paths now...
author Paper <paper@paper.us.eu.org>
date Fri, 14 Jun 2024 00:37:45 -0400
parents d928ec7b6a0d
children a0aa8c8c4307
comparison
equal deleted inserted replaced
327:b5d6c27c308f 328:71396ecb6f7e
11 11
12 #include <iostream> 12 #include <iostream>
13 13
14 namespace Library { 14 namespace Library {
15 15
16 // int = anime id, map = episode, paths 16 void Database::Refresh() {
17 std::unordered_map<int, std::unordered_map<int, std::string>> library; 17 items.clear();
18
19 void SearchLibraryFolders() {
20 library.clear();
21 18
22 for (const auto& folder : session.config.library.paths) { 19 for (const auto& folder : session.config.library.paths) {
23 for (const auto& entry : std::filesystem::recursive_directory_iterator(folder)) { 20 for (const auto& entry : std::filesystem::recursive_directory_iterator(folder)) {
24 const std::filesystem::path path = entry.path(); 21 const std::filesystem::path path = entry.path();
25 if (!std::filesystem::is_regular_file(path)) 22 if (!std::filesystem::is_regular_file(path))
36 33
37 const int id = Anime::db.LookupAnimeTitle(title); 34 const int id = Anime::db.LookupAnimeTitle(title);
38 if (id <= 0) 35 if (id <= 0)
39 continue; 36 continue;
40 37
41 const int episode = Strings::ToInt(Strings::ToUtf8String(elements.get(anitomy::kElementEpisodeNumber))); 38 const int episode = Strings::ToInt<int>(Strings::ToUtf8String(elements.get(anitomy::kElementEpisodeNumber)));
42 39
43 // we have an ID now! 40 // we have an ID now!
44 library[id][episode] = path.u8string(); 41 items[id][episode] = path;
45 } 42 }
46 } 43 }
47 } 44 }
48 45
46 Database db;
47
49 } // namespace Library 48 } // namespace Library