11 #include "XBDateTime.h" 12 #include "utils/ScraperUrl.h" 13 #include "utils/StringUtils.h" 29 std::string strReleaseGroupMBID;
35 std::string mbTrackID;
44 bool operator<(
const CArtist& a)
const 46 if (strMusicBrainzArtistID.empty() && a.strMusicBrainzArtistID.empty())
48 if (strArtist < a.strArtist)
return true;
49 if (strArtist > a.strArtist)
return false;
53 if (strMusicBrainzArtistID < a.strMusicBrainzArtistID)
return true;
54 if (strMusicBrainzArtistID > a.strMusicBrainzArtistID)
return false;
58 void MergeScrapedArtist(
const CArtist& source,
bool override =
true);
66 strDisambiguation.clear();
86 strLastScraped.clear();
97 bool Load(
const TiXmlElement *element,
bool append =
false,
bool prioritise =
false);
98 bool Save(TiXmlNode *node,
const std::string &tag,
const std::string& strPath);
100 void SetDateAdded(
const std::string& strDateAdded);
101 void SetDateUpdated(
const std::string& strDateUpdated);
102 void SetDateNew(
const std::string& strDateNew);
104 std::string strArtist;
105 std::string strSortName;
106 std::string strMusicBrainzArtistID;
108 std::string strGender;
109 std::string strDisambiguation;
110 std::vector<std::string> genre;
111 std::string strBiography;
112 std::vector<std::string> styles;
113 std::vector<std::string> moods;
114 std::vector<std::string> instruments;
116 std::string strFormed;
118 std::string strDisbanded;
119 std::vector<std::string> yearsActive;
122 std::map<std::string, std::string> art;
123 std::vector<CDiscoAlbum> discography;
127 bool bScrapedMBID =
false;
128 std::string strLastScraped;
129 std::vector<ArtistVideoLinks> videolinks;
139 explicit CArtistCredit(std::string strArtist) : m_strArtist(std::move(strArtist)) {}
140 CArtistCredit(std::string strArtist, std::string strMusicBrainzArtistID)
141 : m_strArtist(std::move(strArtist)), m_strMusicBrainzArtistID(std::move(strMusicBrainzArtistID))
144 CArtistCredit(std::string strArtist, std::string strSortName, std::string strMusicBrainzArtistID)
145 : m_strArtist(std::move(strArtist)),
146 m_strSortName(std::move(strSortName)),
147 m_strMusicBrainzArtistID(std::move(strMusicBrainzArtistID))
153 if (m_strMusicBrainzArtistID.empty() && a.m_strMusicBrainzArtistID.empty())
155 if (m_strArtist < a.m_strArtist)
return true;
156 if (m_strArtist > a.m_strArtist)
return false;
160 if (m_strMusicBrainzArtistID < a.m_strMusicBrainzArtistID)
return true;
161 if (m_strMusicBrainzArtistID > a.m_strMusicBrainzArtistID)
return false;
165 std::string GetArtist()
const {
return m_strArtist; }
166 std::string GetSortName()
const {
return m_strSortName; }
167 std::string GetMusicBrainzArtistID()
const {
return m_strMusicBrainzArtistID; }
168 int GetArtistId()
const {
return idArtist; }
169 bool HasScrapedMBID()
const {
return m_bScrapedMBID; }
170 void SetArtist(
const std::string &strArtist) { m_strArtist = strArtist; }
171 void SetSortName(
const std::string &strSortName) { m_strSortName = strSortName; }
172 void SetMusicBrainzArtistID(
const std::string &strMusicBrainzArtistID) { m_strMusicBrainzArtistID = strMusicBrainzArtistID; }
173 void SetArtistId(
int idArtist) { this->idArtist = idArtist; }
174 void SetScrapedMBID(
bool scrapedMBID) { this->m_bScrapedMBID = scrapedMBID; }
178 std::string m_strArtist;
179 std::string m_strSortName;
180 std::string m_strMusicBrainzArtistID;
181 bool m_bScrapedMBID =
false;
184 typedef std::vector<CArtist> VECARTISTS;
185 typedef std::vector<CArtistCredit> VECARTISTCREDITS;
187 const std::string BLANKARTIST_FAKEMUSICBRAINZID =
"Artist Tag Missing";
188 const std::string BLANKARTIST_NAME =
"[Missing Tag]";
189 const int BLANKARTIST_ID = 1;
190 const std::string VARIOUSARTISTS_MBID =
"89ad4ac3-39f7-470e-963a-56509c546377";
192 #define ROLE_ARTIST 1 //Default role 198 CMusicRole(std::string strRole, std::string strArtist)
199 : idRole(-1), m_strRole(std::move(strRole)), m_strArtist(std::move(strArtist)), idArtist(-1)
202 CMusicRole(
int role, std::string strRole, std::string strArtist,
int ArtistId)
204 m_strRole(std::move(strRole)),
205 m_strArtist(std::move(strArtist)),
209 std::string GetArtist()
const {
return m_strArtist; }
210 std::string GetRoleDesc()
const {
return m_strRole; }
211 int GetRoleId()
const {
return idRole; }
212 int GetArtistId()
const {
return idArtist; }
213 void SetArtistId(
int iArtistId) { idArtist = iArtistId; }
217 if (StringUtils::EqualsNoCase(m_strRole, a.m_strRole))
218 return StringUtils::EqualsNoCase(m_strArtist, a.m_strArtist);
224 std::string m_strRole;
225 std::string m_strArtist;
229 typedef std::vector<CMusicRole> VECMUSICROLES;
Class to store and read tag information.
Definition: MusicDatabase.h:98
DateTime class, which uses FileTime as it's base.
Definition: XBDateTime.h:63
Definition: ScraperUrl.h:21