11 #include "XBDateTime.h" 12 #include "utils/ScraperUrl.h" 13 #include "utils/StringUtils.h" 30 std::string strReleaseGroupMBID;
36 std::string mbTrackID;
45 bool operator<(
const CArtist& a)
const 47 if (strMusicBrainzArtistID.empty() && a.strMusicBrainzArtistID.empty())
49 if (strArtist < a.strArtist)
return true;
50 if (strArtist > a.strArtist)
return false;
54 if (strMusicBrainzArtistID < a.strMusicBrainzArtistID)
return true;
55 if (strMusicBrainzArtistID > a.strMusicBrainzArtistID)
return false;
59 void MergeScrapedArtist(
const CArtist& source,
bool override =
true);
67 strDisambiguation.clear();
87 strLastScraped.clear();
98 bool Load(
const TiXmlElement *element,
bool append =
false,
bool prioritise =
false);
99 bool Save(TiXmlNode *node,
const std::string &tag,
const std::string& strPath);
101 void SetDateAdded(
const std::string& strDateAdded);
102 void SetDateUpdated(
const std::string& strDateUpdated);
103 void SetDateNew(
const std::string& strDateNew);
105 std::string strArtist;
106 std::string strSortName;
107 std::string strMusicBrainzArtistID;
109 std::string strGender;
110 std::string strDisambiguation;
111 std::vector<std::string> genre;
112 std::string strBiography;
113 std::vector<std::string> styles;
114 std::vector<std::string> moods;
115 std::vector<std::string> instruments;
117 std::string strFormed;
119 std::string strDisbanded;
120 std::vector<std::string> yearsActive;
123 std::map<std::string, std::string> art;
124 std::vector<CDiscoAlbum> discography;
128 bool bScrapedMBID =
false;
129 std::string strLastScraped;
130 std::vector<ArtistVideoLinks> videolinks;
140 explicit CArtistCredit(std::string strArtist) : m_strArtist(std::move(strArtist)) {}
141 CArtistCredit(std::string strArtist, std::string strMusicBrainzArtistID)
142 : m_strArtist(std::move(strArtist)), m_strMusicBrainzArtistID(std::move(strMusicBrainzArtistID))
145 CArtistCredit(std::string strArtist, std::string strSortName, std::string strMusicBrainzArtistID)
146 : m_strArtist(std::move(strArtist)),
147 m_strSortName(std::move(strSortName)),
148 m_strMusicBrainzArtistID(std::move(strMusicBrainzArtistID))
154 if (m_strMusicBrainzArtistID.empty() && a.m_strMusicBrainzArtistID.empty())
156 if (m_strArtist < a.m_strArtist)
return true;
157 if (m_strArtist > a.m_strArtist)
return false;
161 if (m_strMusicBrainzArtistID < a.m_strMusicBrainzArtistID)
return true;
162 if (m_strMusicBrainzArtistID > a.m_strMusicBrainzArtistID)
return false;
166 std::string GetArtist()
const {
return m_strArtist; }
167 std::string GetSortName()
const {
return m_strSortName; }
168 std::string GetMusicBrainzArtistID()
const {
return m_strMusicBrainzArtistID; }
169 int GetArtistId()
const {
return idArtist; }
170 bool HasScrapedMBID()
const {
return m_bScrapedMBID; }
171 void SetArtist(
const std::string &strArtist) { m_strArtist = strArtist; }
172 void SetSortName(
const std::string &strSortName) { m_strSortName = strSortName; }
173 void SetMusicBrainzArtistID(
const std::string &strMusicBrainzArtistID) { m_strMusicBrainzArtistID = strMusicBrainzArtistID; }
174 void SetArtistId(
int idArtist) { this->idArtist = idArtist; }
175 void SetScrapedMBID(
bool scrapedMBID) { this->m_bScrapedMBID = scrapedMBID; }
179 std::string m_strArtist;
180 std::string m_strSortName;
181 std::string m_strMusicBrainzArtistID;
182 bool m_bScrapedMBID =
false;
185 typedef std::vector<CArtist> VECARTISTS;
186 typedef std::vector<CArtistCredit> VECARTISTCREDITS;
188 const std::string BLANKARTIST_FAKEMUSICBRAINZID =
"Artist Tag Missing";
189 const std::string BLANKARTIST_NAME =
"[Missing Tag]";
190 const int BLANKARTIST_ID = 1;
191 const std::string VARIOUSARTISTS_MBID =
"89ad4ac3-39f7-470e-963a-56509c546377";
193 #define ROLE_ARTIST 1 //Default role 199 CMusicRole(std::string strRole, std::string strArtist)
200 : idRole(-1), m_strRole(std::move(strRole)), m_strArtist(std::move(strArtist)), idArtist(-1)
203 CMusicRole(
int role, std::string strRole, std::string strArtist,
int ArtistId)
205 m_strRole(std::move(strRole)),
206 m_strArtist(std::move(strArtist)),
210 std::string GetArtist()
const {
return m_strArtist; }
211 std::string GetRoleDesc()
const {
return m_strRole; }
212 int GetRoleId()
const {
return idRole; }
213 int GetArtistId()
const {
return idArtist; }
214 void SetArtistId(
int iArtistId) { idArtist = iArtistId; }
218 if (StringUtils::EqualsNoCase(m_strRole, a.m_strRole))
219 return StringUtils::EqualsNoCase(m_strArtist, a.m_strArtist);
225 std::string m_strRole;
226 std::string m_strArtist;
230 typedef std::vector<CMusicRole> VECMUSICROLES;
Class to store and read tag information.
Definition: MusicDatabase.h:99
DateTime class, which uses FileTime as it's base.
Definition: XBDateTime.h:63
Definition: ScraperUrl.h:21