Mercurial > minori
comparison src/core/anime.cc @ 264:9a04802848c0
*: improve multiple things
e.g. making some strings.cc functions modify strings in-place,
     improving m4_ax_have_qt.m4 code, making anime_db.cc rely on
     std::optional rather than std::shared_ptr (which was stupid
     anyway)
| author | Paper <paper@paper.us.eu.org> | 
|---|---|
| date | Thu, 11 Apr 2024 10:15:57 -0400 | 
| parents | 862d0d8619f6 | 
| children | ff0b2052b234 | 
   comparison
  equal
  deleted
  inserted
  replaced
| 263:96416310ea14 | 264:9a04802848c0 | 
|---|---|
| 13 | 13 | 
| 14 namespace Anime { | 14 namespace Anime { | 
| 15 | 15 | 
| 16 /* User list data */ | 16 /* User list data */ | 
| 17 bool Anime::IsInUserList() const { | 17 bool Anime::IsInUserList() const { | 
| 18 if (list_info_.get()) | 18 if (list_info_.has_value()) | 
| 19 return true; | 19 return true; | 
| 20 return false; | 20 return false; | 
| 21 } | 21 } | 
| 22 | 22 | 
| 23 void Anime::AddToUserList() { | 23 void Anime::AddToUserList() { | 
| 24 list_info_.reset(new ListInformation); | 24 ListInformation list = {0}; | 
| 25 list_info_.emplace(list); | |
| 25 } | 26 } | 
| 26 | 27 | 
| 27 void Anime::RemoveFromUserList() { | 28 void Anime::RemoveFromUserList() { | 
| 28 list_info_.reset(); | 29 list_info_.reset(); | 
| 29 } | 30 } | 
| 30 | 31 | 
| 31 ListStatus Anime::GetUserStatus() const { | 32 ListStatus Anime::GetUserStatus() const { | 
| 32 assert(list_info_.get()); | 33 assert(list_info_.has_value()); | 
| 33 return list_info_->status; | 34 return list_info_->status; | 
| 34 } | 35 } | 
| 35 | 36 | 
| 36 int Anime::GetUserProgress() const { | 37 int Anime::GetUserProgress() const { | 
| 37 assert(list_info_.get()); | 38 assert(list_info_.has_value()); | 
| 38 return list_info_->progress; | 39 return list_info_->progress; | 
| 39 } | 40 } | 
| 40 | 41 | 
| 41 int Anime::GetUserScore() const { | 42 int Anime::GetUserScore() const { | 
| 42 assert(list_info_.get()); | 43 assert(list_info_.has_value()); | 
| 43 return list_info_->score; | 44 return list_info_->score; | 
| 44 } | 45 } | 
| 45 | 46 | 
| 46 std::string Anime::GetUserPresentableScore() const { | 47 std::string Anime::GetUserPresentableScore() const { | 
| 47 assert(list_info_.get()); | 48 assert(list_info_.has_value()); | 
| 48 const int score = list_info_->score; | 49 const int score = list_info_->score; | 
| 49 if (score == 0) | 50 if (score == 0) | 
| 50 return ""; | 51 return ""; | 
| 51 | 52 | 
| 52 switch (session.config.anime_list.score_format) { | 53 switch (session.config.anime_list.score_format) { | 
| 75 case ScoreFormat::POINT_100: return Strings::ToUtf8String(score); | 76 case ScoreFormat::POINT_100: return Strings::ToUtf8String(score); | 
| 76 } | 77 } | 
| 77 } | 78 } | 
| 78 | 79 | 
| 79 Date Anime::GetUserDateStarted() const { | 80 Date Anime::GetUserDateStarted() const { | 
| 80 assert(list_info_.get()); | 81 assert(list_info_.has_value()); | 
| 81 return list_info_->started; | 82 return list_info_->started; | 
| 82 } | 83 } | 
| 83 | 84 | 
| 84 Date Anime::GetUserDateCompleted() const { | 85 Date Anime::GetUserDateCompleted() const { | 
| 85 assert(list_info_.get()); | 86 assert(list_info_.has_value()); | 
| 86 return list_info_->completed; | 87 return list_info_->completed; | 
| 87 } | 88 } | 
| 88 | 89 | 
| 89 bool Anime::GetUserIsPrivate() const { | 90 bool Anime::GetUserIsPrivate() const { | 
| 90 assert(list_info_.get()); | 91 assert(list_info_.has_value()); | 
| 91 return list_info_->is_private; | 92 return list_info_->is_private; | 
| 92 } | 93 } | 
| 93 | 94 | 
| 94 unsigned int Anime::GetUserRewatchedTimes() const { | 95 unsigned int Anime::GetUserRewatchedTimes() const { | 
| 95 assert(list_info_.get()); | 96 assert(list_info_.has_value()); | 
| 96 return list_info_->rewatched_times; | 97 return list_info_->rewatched_times; | 
| 97 } | 98 } | 
| 98 | 99 | 
| 99 bool Anime::GetUserIsRewatching() const { | 100 bool Anime::GetUserIsRewatching() const { | 
| 100 assert(list_info_.get()); | 101 assert(list_info_.has_value()); | 
| 101 return list_info_->rewatching; | 102 return list_info_->rewatching; | 
| 102 } | 103 } | 
| 103 | 104 | 
| 104 uint64_t Anime::GetUserTimeUpdated() const { | 105 uint64_t Anime::GetUserTimeUpdated() const { | 
| 105 assert(list_info_.get()); | 106 assert(list_info_.has_value()); | 
| 106 return list_info_->updated; | 107 return list_info_->updated; | 
| 107 } | 108 } | 
| 108 | 109 | 
| 109 std::string Anime::GetUserNotes() const { | 110 std::string Anime::GetUserNotes() const { | 
| 110 assert(list_info_.get()); | 111 assert(list_info_.has_value()); | 
| 111 return list_info_->notes; | 112 return list_info_->notes; | 
| 112 } | 113 } | 
| 113 | 114 | 
| 114 void Anime::SetUserStatus(ListStatus status) { | 115 void Anime::SetUserStatus(ListStatus status) { | 
| 115 assert(list_info_.get()); | 116 assert(list_info_.has_value()); | 
| 116 list_info_->status = status; | 117 list_info_->status = status; | 
| 117 } | 118 } | 
| 118 | 119 | 
| 119 void Anime::SetUserScore(int score) { | 120 void Anime::SetUserScore(int score) { | 
| 120 assert(list_info_.get()); | 121 assert(list_info_.has_value()); | 
| 121 list_info_->score = score; | 122 list_info_->score = score; | 
| 122 } | 123 } | 
| 123 | 124 | 
| 124 void Anime::SetUserProgress(int progress) { | 125 void Anime::SetUserProgress(int progress) { | 
| 125 assert(list_info_.get()); | 126 assert(list_info_.has_value()); | 
| 126 list_info_->progress = progress; | 127 list_info_->progress = progress; | 
| 127 } | 128 } | 
| 128 | 129 | 
| 129 void Anime::SetUserDateStarted(Date const& started) { | 130 void Anime::SetUserDateStarted(Date const& started) { | 
| 130 assert(list_info_.get()); | 131 assert(list_info_.has_value()); | 
| 131 list_info_->started = started; | 132 list_info_->started = started; | 
| 132 } | 133 } | 
| 133 | 134 | 
| 134 void Anime::SetUserDateCompleted(Date const& completed) { | 135 void Anime::SetUserDateCompleted(Date const& completed) { | 
| 135 assert(list_info_.get()); | 136 assert(list_info_.has_value()); | 
| 136 list_info_->completed = completed; | 137 list_info_->completed = completed; | 
| 137 } | 138 } | 
| 138 | 139 | 
| 139 void Anime::SetUserIsPrivate(bool is_private) { | 140 void Anime::SetUserIsPrivate(bool is_private) { | 
| 140 assert(list_info_.get()); | 141 assert(list_info_.has_value()); | 
| 141 list_info_->is_private = is_private; | 142 list_info_->is_private = is_private; | 
| 142 } | 143 } | 
| 143 | 144 | 
| 144 void Anime::SetUserRewatchedTimes(int rewatched) { | 145 void Anime::SetUserRewatchedTimes(int rewatched) { | 
| 145 assert(list_info_.get()); | 146 assert(list_info_.has_value()); | 
| 146 list_info_->rewatched_times = rewatched; | 147 list_info_->rewatched_times = rewatched; | 
| 147 } | 148 } | 
| 148 | 149 | 
| 149 void Anime::SetUserIsRewatching(bool rewatching) { | 150 void Anime::SetUserIsRewatching(bool rewatching) { | 
| 150 assert(list_info_.get()); | 151 assert(list_info_.has_value()); | 
| 151 list_info_->rewatching = rewatching; | 152 list_info_->rewatching = rewatching; | 
| 152 } | 153 } | 
| 153 | 154 | 
| 154 void Anime::SetUserTimeUpdated(uint64_t updated) { | 155 void Anime::SetUserTimeUpdated(uint64_t updated) { | 
| 155 assert(list_info_.get()); | 156 assert(list_info_.has_value()); | 
| 156 list_info_->updated = updated; | 157 list_info_->updated = updated; | 
| 157 } | 158 } | 
| 158 | 159 | 
| 159 void Anime::SetUserNotes(std::string const& notes) { | 160 void Anime::SetUserNotes(std::string const& notes) { | 
| 160 assert(list_info_.get()); | 161 assert(list_info_.has_value()); | 
| 161 list_info_->notes = notes; | 162 list_info_->notes = notes; | 
| 162 } | 163 } | 
| 163 | 164 | 
| 164 /* Series data */ | 165 /* Series data */ | 
| 165 int Anime::GetId() const { | 166 int Anime::GetId() const { | 
