Fix URL encoding (#2899)

* Fix URL encoding
* Optimize nullable criterion encoding
This commit is contained in:
DingDongSoLong4
2022-09-16 03:17:19 +02:00
committed by GitHub
parent 593477cbe1
commit 7a75313a1c
8 changed files with 144 additions and 156 deletions

View File

@@ -6,15 +6,6 @@ import { SceneListFilterOptions } from "./list-filter/scenes";
export type QueuedScene = Pick<Scene, "id" | "title" | "paths">;
interface IQueryParameters {
qsort?: string;
qsortd?: string;
qfq?: string;
qfp?: string;
qfc?: string[];
qs?: string[];
}
export interface IPlaySceneOptions {
sceneIndex?: number;
newPage?: number;
@@ -88,7 +79,7 @@ export class SceneQueue {
public static fromQueryParameters(params: string) {
const ret = new SceneQueue();
const parsed = queryString.parse(params) as IQueryParameters;
const parsed = queryString.parse(params, { decode: false });
const translated = {
sortby: parsed.qsort,
sortdir: parsed.qsortd,
@@ -98,11 +89,12 @@ export class SceneQueue {
};
if (parsed.qfp) {
const decoded = ListFilterModel.decodeQueryParameters(translated);
const query = new ListFilterModel(
FilterMode.Scenes,
translated as queryString.ParsedQuery,
SceneListFilterOptions.defaultSortBy
);
query.configureFromQueryParameters(decoded);
ret.query = query;
} else if (parsed.qs) {
// must be scene list