annotate include/core/date.h @ 319:d928ec7b6a0d

services/kitsu: implement GetAnimeList() it finally works!
author Paper <paper@paper.us.eu.org>
date Wed, 12 Jun 2024 17:52:26 -0400
parents b1f4d1867ab1
children b5d6c27c308f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
261
3ec7804abf17 include: make header guards more sane
Paper <paper@paper.us.eu.org>
parents: 258
diff changeset
1 #ifndef MINORI_CORE_DATE_H_
3ec7804abf17 include: make header guards more sane
Paper <paper@paper.us.eu.org>
parents: 258
diff changeset
2 #define MINORI_CORE_DATE_H_
85
c69230dc2b5d *: cleanup includes
Paper <mrpapersonic@gmail.com>
parents: 51
diff changeset
3
187
9613d72b097e *: multiple performance improvements
Paper <mrpapersonic@gmail.com>
parents: 174
diff changeset
4 #include "json/json_fwd.hpp"
9613d72b097e *: multiple performance improvements
Paper <mrpapersonic@gmail.com>
parents: 174
diff changeset
5
319
d928ec7b6a0d services/kitsu: implement GetAnimeList()
Paper <paper@paper.us.eu.org>
parents: 317
diff changeset
6 #include "core/time.h"
d928ec7b6a0d services/kitsu: implement GetAnimeList()
Paper <paper@paper.us.eu.org>
parents: 317
diff changeset
7
196
f0ff06a45c42 date: use std::optional for values
Paper <mrpapersonic@gmail.com>
parents: 187
diff changeset
8 #include <optional>
317
b1f4d1867ab1 services: VERY initial Kitsu support
Paper <paper@paper.us.eu.org>
parents: 261
diff changeset
9 #include <string>
196
f0ff06a45c42 date: use std::optional for values
Paper <mrpapersonic@gmail.com>
parents: 187
diff changeset
10
187
9613d72b097e *: multiple performance improvements
Paper <mrpapersonic@gmail.com>
parents: 174
diff changeset
11 class QDate;
85
c69230dc2b5d *: cleanup includes
Paper <mrpapersonic@gmail.com>
parents: 51
diff changeset
12
317
b1f4d1867ab1 services: VERY initial Kitsu support
Paper <paper@paper.us.eu.org>
parents: 261
diff changeset
13 /* TODO: refactor constructors, as they aren't meant
b1f4d1867ab1 services: VERY initial Kitsu support
Paper <paper@paper.us.eu.org>
parents: 261
diff changeset
14 * to be used in this way and may cause problems down
b1f4d1867ab1 services: VERY initial Kitsu support
Paper <paper@paper.us.eu.org>
parents: 261
diff changeset
15 * the line */
b1f4d1867ab1 services: VERY initial Kitsu support
Paper <paper@paper.us.eu.org>
parents: 261
diff changeset
16
9
5c0397762b53 INCOMPLETE: megacommit :)
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
17 class Date {
258
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 197
diff changeset
18 public:
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 197
diff changeset
19 using Year = unsigned int;
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 197
diff changeset
20 using Day = unsigned char;
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 197
diff changeset
21 enum class Month {
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 197
diff changeset
22 Jan = 0,
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 197
diff changeset
23 Feb,
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 197
diff changeset
24 Mar,
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 197
diff changeset
25 Apr,
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 197
diff changeset
26 May,
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 197
diff changeset
27 Jun,
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 197
diff changeset
28 Jul,
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 197
diff changeset
29 Aug,
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 197
diff changeset
30 Sep,
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 197
diff changeset
31 Oct,
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 197
diff changeset
32 Nov,
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 197
diff changeset
33 Dec
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 197
diff changeset
34 };
9
5c0397762b53 INCOMPLETE: megacommit :)
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
35
258
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 197
diff changeset
36 Date();
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 197
diff changeset
37 Date(Year y);
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 197
diff changeset
38 Date(Year y, Month m, Day d);
317
b1f4d1867ab1 services: VERY initial Kitsu support
Paper <paper@paper.us.eu.org>
parents: 261
diff changeset
39 Date(const std::string& str);
258
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 197
diff changeset
40 Date(const QDate& date);
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 197
diff changeset
41 Date(const nlohmann::json& json);
319
d928ec7b6a0d services/kitsu: implement GetAnimeList()
Paper <paper@paper.us.eu.org>
parents: 317
diff changeset
42 Date(Time::Timestamp timestamp);
258
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 197
diff changeset
43 bool IsValid() const;
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 197
diff changeset
44 void SetYear(Year y);
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 197
diff changeset
45 void SetMonth(Month m);
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 197
diff changeset
46 void SetDay(Day d);
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 197
diff changeset
47 void VoidYear();
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 197
diff changeset
48 void VoidMonth();
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 197
diff changeset
49 void VoidDay();
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 197
diff changeset
50 std::optional<Year> GetYear() const;
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 197
diff changeset
51 std::optional<Month> GetMonth() const;
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 197
diff changeset
52 std::optional<Day> GetDay() const;
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 197
diff changeset
53 QDate GetAsQDate() const;
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 197
diff changeset
54 nlohmann::json GetAsAniListJson() const;
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 197
diff changeset
55
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 197
diff changeset
56 private:
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 197
diff changeset
57 std::optional<Year> year;
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 197
diff changeset
58 std::optional<Month> month;
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 197
diff changeset
59 std::optional<Day> day;
9
5c0397762b53 INCOMPLETE: megacommit :)
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
60 };
85
c69230dc2b5d *: cleanup includes
Paper <mrpapersonic@gmail.com>
parents: 51
diff changeset
61
261
3ec7804abf17 include: make header guards more sane
Paper <paper@paper.us.eu.org>
parents: 258
diff changeset
62 #endif // MINORI_CORE_DATE_H_