Added release country support
This commit is contained in:
@@ -141,6 +141,15 @@ namespace lms::scanner
|
||||
return releaseType;
|
||||
}
|
||||
|
||||
db::Country::pointer getOrCreateCountry(db::Session& session, std::string_view name)
|
||||
{
|
||||
db::Country::pointer country{ db::Country::find(session, name) };
|
||||
if (!country)
|
||||
country = session.create<db::Country>(name);
|
||||
|
||||
return country;
|
||||
}
|
||||
|
||||
db::Label::pointer getOrCreateLabel(db::Session& session, std::string_view name)
|
||||
{
|
||||
db::Label::pointer label{ db::Label::find(session, name) };
|
||||
@@ -174,7 +183,12 @@ namespace lms::scanner
|
||||
for (std::string_view releaseType : releaseInfo.releaseTypes)
|
||||
release.modify()->addReleaseType(getOrCreateReleaseType(session, releaseType));
|
||||
}
|
||||
|
||||
if (release->getCountryNames() != releaseInfo.countries)
|
||||
{
|
||||
release.modify()->clearCountries();
|
||||
for (std::string_view country : releaseInfo.countries)
|
||||
release.modify()->addCountry(getOrCreateCountry(session, country));
|
||||
}
|
||||
if (release->getLabelNames() != releaseInfo.labels)
|
||||
{
|
||||
release.modify()->clearLabels();
|
||||
|
||||
@@ -38,6 +38,7 @@ namespace lms::scanner
|
||||
removeOrphanedReleases(context);
|
||||
removeOrphanedReleaseTypes(context);
|
||||
removeOrphanedLabels(context);
|
||||
removeOrphanedCountries(context);
|
||||
removeOrphanedDirectories(context);
|
||||
}
|
||||
|
||||
@@ -77,6 +78,12 @@ namespace lms::scanner
|
||||
removeOrphanedEntries<db::Label>(context);
|
||||
}
|
||||
|
||||
void ScanStepRemoveOrphanedDbEntries::removeOrphanedCountries(ScanContext& context)
|
||||
{
|
||||
LMS_LOG(DBUPDATER, DEBUG, "Checking orphaned countries...");
|
||||
removeOrphanedEntries<db::Country>(context);
|
||||
}
|
||||
|
||||
void ScanStepRemoveOrphanedDbEntries::removeOrphanedDirectories(ScanContext& context)
|
||||
{
|
||||
LMS_LOG(DBUPDATER, DEBUG, "Checking orphaned directories...");
|
||||
|
||||
@@ -39,6 +39,7 @@ namespace lms::scanner
|
||||
void removeOrphanedReleases(ScanContext& context);
|
||||
void removeOrphanedReleaseTypes(ScanContext& context);
|
||||
void removeOrphanedLabels(ScanContext& context);
|
||||
void removeOrphanedCountries(ScanContext& context);
|
||||
void removeOrphanedDirectories(ScanContext& context);
|
||||
|
||||
template<typename T>
|
||||
|
||||
Reference in New Issue
Block a user