Merged filters into new settings dialog, added experimental summary field.

This commit is contained in:
DebaucheryLibrarian
2022-11-28 03:33:46 +01:00
parent 637669e3d1
commit b5e308562e
15 changed files with 740 additions and 72 deletions

View File

@@ -10,6 +10,11 @@ function initUiActions(store, _router) {
localStorage.setItem('tagFilter', tagFilter);
}
function setSummaryFormat({ commit }, summaryFormat) {
commit('setSummaryFormat', summaryFormat);
localStorage.setItem('summaryFormat', JSON.stringify(summaryFormat));
}
function setRange({ commit }, range) {
commit('setRange', range);
}
@@ -309,6 +314,7 @@ function initUiActions(store, _router) {
checkNotifications,
search,
setTagFilter,
setSummaryFormat,
setRange,
setBatch,
setSfw,

View File

@@ -2,6 +2,10 @@ function setTagFilter(state, tagFilter) {
state.tagFilter = tagFilter;
}
function setSummaryFormat(state, summaryFormat) {
state.summaryFormat = summaryFormat;
}
function setRange(state, range) {
state.range = range;
}
@@ -20,6 +24,7 @@ function setTheme(state, theme) {
export default {
setTagFilter,
setSummaryFormat,
setRange,
setBatch,
setSfw,

View File

@@ -1,12 +1,43 @@
const storedTagFilter = localStorage.getItem('tagFilter');
const storedSummaryFormat = localStorage.getItem('summaryFormat');
const storedBatch = localStorage.getItem('batch');
const storedSfw = localStorage.getItem('sfw');
const storedTheme = localStorage.getItem('theme');
const deviceTheme = window.matchMedia?.('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
const defaultSummaryFormat = [
{
delimiter: ' - ',
segments: [
{
prop: 'channel',
},
{
prop: 'title',
},
],
},
{
delimiter: ', ',
bracket: '()',
segments: [
{
prop: 'actors',
delimiter: ', ',
},
{
prop: 'date',
format: 'DD-MM-YYYY',
},
],
},
];
export default {
tagFilter: storedTagFilter ? storedTagFilter.split(',') : [],
summaryFormat: storedSummaryFormat ? JSON.parse(storedSummaryFormat) : defaultSummaryFormat,
defaultSummaryFormat,
range: 'latest',
batch: storedBatch || 'all',
sfw: storedSfw === 'true' || false,

View File

@@ -0,0 +1,36 @@
import { formatDate } from '../format';
function formatSummary(release, summaryFormat) {
return summaryFormat
.map((group) => ({
...group,
segments: group.segments
.filter((segment) => {
if (!release[segment.prop]) {
return false;
}
if (Array.isArray(release[segment.prop]) && release[segment.prop].length === 0) {
return false;
}
return true;
})
.map((segment) => {
if (Array.isArray(release[segment.prop])) {
return release[segment.prop].join(segment.delimiter || ', ');
}
if (segment.prop === 'date') {
return formatDate(release[segment.prop], segment.format || 'YYYY-MM-DD');
}
return release[segment.prop];
}),
}))
.filter((group) => group.segments.length > 0)
.map((group) => `${group.bracket?.[0] || ''}${group.segments.join(group.delimiter || ' - ')}${group.bracket?.[1] || ''}`)
.join(' ');
}
export default formatSummary;