annotate src/core/filesystem.cc @ 327:b5d6c27c308f

anime: refactor Anime::SeriesSeason to Season class ToLocalString has also been altered to take in both season and year because lots of locales actually treat formatting seasons differently! most notably is Russian which adds a suffix at the end to notate seasons(??)
author Paper <paper@paper.us.eu.org>
date Thu, 13 Jun 2024 01:49:18 -0400
parents 862d0d8619f6
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
36
2743011a6042 *: mass update
Paper <mrpapersonic@gmail.com>
parents: 18
diff changeset
1 #include "core/filesystem.h"
15
cde8f67a7c7d *: update, megacommit :)
Paper <mrpapersonic@gmail.com>
parents: 11
diff changeset
2 #include "core/config.h"
62
4c6dd5999b39 *: update
Paper <mrpapersonic@gmail.com>
parents: 61
diff changeset
3 #include "core/strings.h"
250
c130f47f6f48 *: many many changes
Paper <paper@paper.us.eu.org>
parents: 230
diff changeset
4
c130f47f6f48 *: many many changes
Paper <paper@paper.us.eu.org>
parents: 230
diff changeset
5 #include <QStandardPaths>
c130f47f6f48 *: many many changes
Paper <paper@paper.us.eu.org>
parents: 230
diff changeset
6
135
0a458cb26ff4 filesystem: move to using std::filesystem after C++17 switch
Paper <mrpapersonic@gmail.com>
parents: 134
diff changeset
7 #include <filesystem>
2
Paper <mrpapersonic@gmail.com>
parents: 1
diff changeset
8
11
fc1bf97c528b *: use C++11 standard
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
9 namespace Filesystem {
fc1bf97c528b *: use C++11 standard
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
10
135
0a458cb26ff4 filesystem: move to using std::filesystem after C++17 switch
Paper <mrpapersonic@gmail.com>
parents: 134
diff changeset
11 /* this runs fs::create_directories() on the
0a458cb26ff4 filesystem: move to using std::filesystem after C++17 switch
Paper <mrpapersonic@gmail.com>
parents: 134
diff changeset
12 PARENT directory. */
0a458cb26ff4 filesystem: move to using std::filesystem after C++17 switch
Paper <mrpapersonic@gmail.com>
parents: 134
diff changeset
13 void CreateDirectories(const std::filesystem::path& path) {
158
80d6b28eb29f dep/animia: fix most X11 stuff
Paper <mrpapersonic@gmail.com>
parents: 138
diff changeset
14 if (path.empty())
80d6b28eb29f dep/animia: fix most X11 stuff
Paper <mrpapersonic@gmail.com>
parents: 138
diff changeset
15 return;
80d6b28eb29f dep/animia: fix most X11 stuff
Paper <mrpapersonic@gmail.com>
parents: 138
diff changeset
16
80d6b28eb29f dep/animia: fix most X11 stuff
Paper <mrpapersonic@gmail.com>
parents: 138
diff changeset
17 const auto& parent = path.parent_path();
80d6b28eb29f dep/animia: fix most X11 stuff
Paper <mrpapersonic@gmail.com>
parents: 138
diff changeset
18 if (!std::filesystem::exists(parent))
80d6b28eb29f dep/animia: fix most X11 stuff
Paper <mrpapersonic@gmail.com>
parents: 138
diff changeset
19 std::filesystem::create_directories(parent);
11
fc1bf97c528b *: use C++11 standard
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
20 }
fc1bf97c528b *: use C++11 standard
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
21
135
0a458cb26ff4 filesystem: move to using std::filesystem after C++17 switch
Paper <mrpapersonic@gmail.com>
parents: 134
diff changeset
22 std::filesystem::path GetDotPath() {
250
c130f47f6f48 *: many many changes
Paper <paper@paper.us.eu.org>
parents: 230
diff changeset
23 /*
c130f47f6f48 *: many many changes
Paper <paper@paper.us.eu.org>
parents: 230
diff changeset
24 * Windows: ~/AppData/Roaming/Minori
c130f47f6f48 *: many many changes
Paper <paper@paper.us.eu.org>
parents: 230
diff changeset
25 * macOS: ~/Library/Application Support/Minori
c130f47f6f48 *: many many changes
Paper <paper@paper.us.eu.org>
parents: 230
diff changeset
26 * ...: ~/.config/minori
c130f47f6f48 *: many many changes
Paper <paper@paper.us.eu.org>
parents: 230
diff changeset
27 *
c130f47f6f48 *: many many changes
Paper <paper@paper.us.eu.org>
parents: 230
diff changeset
28 * FIXME: are windows and mac properly cased?
258
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 250
diff changeset
29 */
9
5c0397762b53 INCOMPLETE: megacommit :)
Paper <mrpapersonic@gmail.com>
parents: 7
diff changeset
30 #ifdef WIN32
250
c130f47f6f48 *: many many changes
Paper <paper@paper.us.eu.org>
parents: 230
diff changeset
31 return Strings::ToUtf8String(QStandardPaths::writableLocation(QStandardPaths::AppDataLocation));
c130f47f6f48 *: many many changes
Paper <paper@paper.us.eu.org>
parents: 230
diff changeset
32 #else
c130f47f6f48 *: many many changes
Paper <paper@paper.us.eu.org>
parents: 230
diff changeset
33 return Strings::ToUtf8String(QStandardPaths::writableLocation(QStandardPaths::AppConfigLocation));
c130f47f6f48 *: many many changes
Paper <paper@paper.us.eu.org>
parents: 230
diff changeset
34 #endif
45
4b05bc7668eb filesystem: split config path into dotpath and config, add anime db path
Paper <mrpapersonic@gmail.com>
parents: 44
diff changeset
35 }
4b05bc7668eb filesystem: split config path into dotpath and config, add anime db path
Paper <mrpapersonic@gmail.com>
parents: 44
diff changeset
36
135
0a458cb26ff4 filesystem: move to using std::filesystem after C++17 switch
Paper <mrpapersonic@gmail.com>
parents: 134
diff changeset
37 std::filesystem::path GetConfigPath() {
0a458cb26ff4 filesystem: move to using std::filesystem after C++17 switch
Paper <mrpapersonic@gmail.com>
parents: 134
diff changeset
38 return GetDotPath() / CONFIG_NAME;
118
39521c47c7a3 *: another huge megacommit, SORRY
Paper <mrpapersonic@gmail.com>
parents: 106
diff changeset
39 }
39521c47c7a3 *: another huge megacommit, SORRY
Paper <mrpapersonic@gmail.com>
parents: 106
diff changeset
40
135
0a458cb26ff4 filesystem: move to using std::filesystem after C++17 switch
Paper <mrpapersonic@gmail.com>
parents: 134
diff changeset
41 std::filesystem::path GetAnimeDBPath() {
0a458cb26ff4 filesystem: move to using std::filesystem after C++17 switch
Paper <mrpapersonic@gmail.com>
parents: 134
diff changeset
42 return GetDotPath() / "anime" / "db.json";
45
4b05bc7668eb filesystem: split config path into dotpath and config, add anime db path
Paper <mrpapersonic@gmail.com>
parents: 44
diff changeset
43 }
4b05bc7668eb filesystem: split config path into dotpath and config, add anime db path
Paper <mrpapersonic@gmail.com>
parents: 44
diff changeset
44
230
2f5a9247e501 torrents: implement download button
Paper <paper@paper.us.eu.org>
parents: 221
diff changeset
45 std::filesystem::path GetTorrentsPath() {
2f5a9247e501 torrents: implement download button
Paper <paper@paper.us.eu.org>
parents: 221
diff changeset
46 return GetDotPath() / "torrents";
2f5a9247e501 torrents: implement download button
Paper <paper@paper.us.eu.org>
parents: 221
diff changeset
47 }
2f5a9247e501 torrents: implement download button
Paper <paper@paper.us.eu.org>
parents: 221
diff changeset
48
15
cde8f67a7c7d *: update, megacommit :)
Paper <mrpapersonic@gmail.com>
parents: 11
diff changeset
49 } // namespace Filesystem