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