Remove unused user rule legacy fields
This commit is contained in:
@@ -198,7 +198,6 @@ public sealed class MultilangController : ControllerBase
|
|||||||
var allowed = (Plugin.Instance?.Configuration?.Languages ?? []).ToHashSet(StringComparer.OrdinalIgnoreCase);
|
var allowed = (Plugin.Instance?.Configuration?.Languages ?? []).ToHashSet(StringComparer.OrdinalIgnoreCase);
|
||||||
request.Categories = NormalizeCategories(request.Categories, allowed);
|
request.Categories = NormalizeCategories(request.Categories, allowed);
|
||||||
request.FallbackFieldActions = NormalizeActionLists(request.FallbackFieldActions, allowed);
|
request.FallbackFieldActions = NormalizeActionLists(request.FallbackFieldActions, allowed);
|
||||||
request.FallbackLanguages = GetNeededLanguages(request);
|
|
||||||
_store.SaveUserRules(userId, request);
|
_store.SaveUserRules(userId, request);
|
||||||
_itemsProxyCache.ClearAll();
|
_itemsProxyCache.ClearAll();
|
||||||
return Ok(request);
|
return Ok(request);
|
||||||
@@ -1512,10 +1511,8 @@ public sealed class MultilangController : ControllerBase
|
|||||||
if (existing is not null)
|
if (existing is not null)
|
||||||
{
|
{
|
||||||
existing.Categories ??= [];
|
existing.Categories ??= [];
|
||||||
existing.FallbackLanguages ??= [];
|
|
||||||
existing.FallbackFieldActions = NormalizeActionLists(existing.FallbackFieldActions, (Plugin.Instance?.Configuration?.Languages ?? []).ToHashSet(StringComparer.OrdinalIgnoreCase));
|
existing.FallbackFieldActions = NormalizeActionLists(existing.FallbackFieldActions, (Plugin.Instance?.Configuration?.Languages ?? []).ToHashSet(StringComparer.OrdinalIgnoreCase));
|
||||||
existing.Categories = NormalizeCategories(existing.Categories, (Plugin.Instance?.Configuration?.Languages ?? []).ToHashSet(StringComparer.OrdinalIgnoreCase));
|
existing.Categories = NormalizeCategories(existing.Categories, (Plugin.Instance?.Configuration?.Languages ?? []).ToHashSet(StringComparer.OrdinalIgnoreCase));
|
||||||
existing.FallbackLanguages = GetNeededLanguages(existing);
|
|
||||||
return existing;
|
return existing;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1524,10 +1521,8 @@ public sealed class MultilangController : ControllerBase
|
|||||||
Enabled = false,
|
Enabled = false,
|
||||||
SortLocale = "Auto",
|
SortLocale = "Auto",
|
||||||
TrustTmdbCollections = true,
|
TrustTmdbCollections = true,
|
||||||
FallbackLanguages = [],
|
|
||||||
FallbackFieldActions = DefaultActionLists(),
|
FallbackFieldActions = DefaultActionLists(),
|
||||||
Categories = [],
|
Categories = []
|
||||||
Rules = []
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -177,7 +177,7 @@
|
|||||||
return canonical ? "Language:" + canonical : "";
|
return canonical ? "Language:" + canonical : "";
|
||||||
}
|
}
|
||||||
|
|
||||||
function legacyActionToList(fieldId, legacy, fallbackLangs) {
|
function legacyActionToList(fieldId, legacy) {
|
||||||
if (!legacy || legacy.toLowerCase() === "fallback") {
|
if (!legacy || legacy.toLowerCase() === "fallback") {
|
||||||
return ["Jellyfin"];
|
return ["Jellyfin"];
|
||||||
}
|
}
|
||||||
@@ -206,7 +206,7 @@
|
|||||||
var result = {};
|
var result = {};
|
||||||
fields.forEach(function (field) {
|
fields.forEach(function (field) {
|
||||||
var values = source && (source[field.id] || source[field.label]);
|
var values = source && (source[field.id] || source[field.label]);
|
||||||
if (!values && legacy) values = legacyActionToList(field.id, legacy[field.id] || legacy[field.label], state.rules.FallbackLanguages || []);
|
if (!values && legacy) values = legacyActionToList(field.id, legacy[field.id] || legacy[field.label]);
|
||||||
result[field.id] = normalizeActionList(field.id, Array.isArray(values) ? values : values ? [values] : ["Jellyfin"]);
|
result[field.id] = normalizeActionList(field.id, Array.isArray(values) ? values : values ? [values] : ["Jellyfin"]);
|
||||||
});
|
});
|
||||||
return result;
|
return result;
|
||||||
@@ -1123,7 +1123,6 @@
|
|||||||
SortLocale: $("ml-sort-locale").value || "Auto",
|
SortLocale: $("ml-sort-locale").value || "Auto",
|
||||||
TrustTmdbCollections: $("ml-trust-collections").checked,
|
TrustTmdbCollections: $("ml-trust-collections").checked,
|
||||||
FallbackFieldActions: state.rules.FallbackFieldActions,
|
FallbackFieldActions: state.rules.FallbackFieldActions,
|
||||||
FallbackLanguages: [],
|
|
||||||
Categories: categories().map(function (category, index) {
|
Categories: categories().map(function (category, index) {
|
||||||
var complete = (category.Requirements || []).filter(completeRequirement);
|
var complete = (category.Requirements || []).filter(completeRequirement);
|
||||||
return {
|
return {
|
||||||
|
|||||||
@@ -810,10 +810,7 @@ WHERE item_id IN ({idParams}) AND lang IN ({langParams});";
|
|||||||
{
|
{
|
||||||
using var con = Open();
|
using var con = Open();
|
||||||
con.Open();
|
con.Open();
|
||||||
using var tx = con.BeginTransaction();
|
using var cmd = con.CreateCommand();
|
||||||
using (var cmd = con.CreateCommand())
|
|
||||||
{
|
|
||||||
cmd.Transaction = tx;
|
|
||||||
cmd.CommandText = @"
|
cmd.CommandText = @"
|
||||||
INSERT INTO user_rules(user_id, rules_json, updated_at)
|
INSERT INTO user_rules(user_id, rules_json, updated_at)
|
||||||
VALUES($user_id, $rules_json, $updated_at)
|
VALUES($user_id, $rules_json, $updated_at)
|
||||||
@@ -824,22 +821,6 @@ ON CONFLICT(user_id) DO UPDATE SET rules_json = excluded.rules_json, updated_at
|
|||||||
cmd.ExecuteNonQuery();
|
cmd.ExecuteNonQuery();
|
||||||
}
|
}
|
||||||
|
|
||||||
using (var cmd = con.CreateCommand())
|
|
||||||
{
|
|
||||||
cmd.Transaction = tx;
|
|
||||||
cmd.CommandText = @"
|
|
||||||
INSERT INTO user_display_langs(user_id, langs_json, updated_at)
|
|
||||||
VALUES($user_id, $langs_json, $updated_at)
|
|
||||||
ON CONFLICT(user_id) DO UPDATE SET langs_json = excluded.langs_json, updated_at = excluded.updated_at;";
|
|
||||||
cmd.Parameters.AddWithValue("$user_id", userId);
|
|
||||||
cmd.Parameters.AddWithValue("$langs_json", JsonSerializer.Serialize(rules.FallbackLanguages));
|
|
||||||
cmd.Parameters.AddWithValue("$updated_at", NowUnixUtc());
|
|
||||||
cmd.ExecuteNonQuery();
|
|
||||||
}
|
|
||||||
|
|
||||||
tx.Commit();
|
|
||||||
}
|
|
||||||
|
|
||||||
public UserRulesDocument? GetUserRules(string userId)
|
public UserRulesDocument? GetUserRules(string userId)
|
||||||
{
|
{
|
||||||
using var con = Open();
|
using var con = Open();
|
||||||
@@ -1133,24 +1114,12 @@ public sealed class UserRulesDocument
|
|||||||
|
|
||||||
public string SortLocale { get; set; } = "Auto";
|
public string SortLocale { get; set; } = "Auto";
|
||||||
|
|
||||||
public string[] FallbackLanguages { get; set; } = [];
|
|
||||||
|
|
||||||
public Dictionary<string, string[]> FallbackFieldActions { get; set; } = MultilangConstants.DefaultActionLists();
|
public Dictionary<string, string[]> FallbackFieldActions { get; set; } = MultilangConstants.DefaultActionLists();
|
||||||
|
|
||||||
public bool TrustTmdbCollections { get; set; } = true;
|
public bool TrustTmdbCollections { get; set; } = true;
|
||||||
|
|
||||||
public UserCategoryRule[] Categories { get; set; } = [];
|
public UserCategoryRule[] Categories { get; set; } = [];
|
||||||
|
|
||||||
public UserRuleEntry[] Rules { get; set; } = [];
|
|
||||||
}
|
|
||||||
|
|
||||||
public sealed class UserRuleEntry
|
|
||||||
{
|
|
||||||
public string Text { get; set; } = string.Empty;
|
|
||||||
|
|
||||||
public string[] Languages { get; set; } = [];
|
|
||||||
|
|
||||||
public string[] Scopes { get; set; } = [];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public sealed class UserCategoryRule
|
public sealed class UserCategoryRule
|
||||||
|
|||||||
Reference in New Issue
Block a user