forked from DebaucheryLibrarian/traxxx
Improved 'new' sorting.
This commit is contained in:
parent
e896d52968
commit
fd4477bc50
|
@ -228,6 +228,15 @@ export default {
|
|||
height: 1rem;
|
||||
}
|
||||
|
||||
.content-inner {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.releases {
|
||||
flex-grow: 1;
|
||||
}
|
||||
|
||||
.name {
|
||||
color: var(--text-light);
|
||||
display: flex;
|
||||
|
|
|
@ -2,23 +2,23 @@ import dayjs from 'dayjs';
|
|||
|
||||
const dateRanges = {
|
||||
latest: () => ({
|
||||
after: '1900-01-01',
|
||||
before: dayjs(new Date()).add(1, 'day').format('YYYY-MM-DD'),
|
||||
after: '1900-01-01 00:00:00',
|
||||
before: dayjs().format('YYYY-MM-DD HH:mm:ss'),
|
||||
orderBy: 'DATE_DESC',
|
||||
}),
|
||||
upcoming: () => ({
|
||||
after: dayjs(new Date()).format('YYYY-MM-DD'),
|
||||
before: '2100-01-01',
|
||||
after: dayjs().format('YYYY-MM-DD HH:mm:ss'),
|
||||
before: '2100-01-01 00:00:00',
|
||||
orderBy: 'DATE_ASC',
|
||||
}),
|
||||
new: () => ({
|
||||
after: '1900-01-01',
|
||||
before: '2100-01-01',
|
||||
orderBy: 'CREATED_AT_DESC',
|
||||
after: '1900-01-01 00:00:00',
|
||||
before: '2100-01-01 00:00:00',
|
||||
orderBy: ['CREATED_AT_DESC', 'DATE_ASC'],
|
||||
}),
|
||||
all: () => ({
|
||||
after: '1900-01-01',
|
||||
before: '2100-01-01',
|
||||
after: '1900-01-01 00:00:00',
|
||||
before: '2100-01-01 00:00:00',
|
||||
orderBy: 'DATE_DESC',
|
||||
}),
|
||||
};
|
||||
|
|
|
@ -7,12 +7,14 @@ function initReleasesActions(store, _router) {
|
|||
async function fetchReleases({ _commit }, { limit = 10, pageNumber = 1, range = 'latest' }) {
|
||||
const { before, after, orderBy } = getDateRange(range);
|
||||
|
||||
console.log(after, before, orderBy);
|
||||
|
||||
const { connection: { releases, totalCount } } = await graphql(`
|
||||
query Releases(
|
||||
$limit:Int = 1000,
|
||||
$offset:Int = 0,
|
||||
$after:Datetime = "1900-01-01",
|
||||
$before:Datetime = "2100-01-01",
|
||||
$after:Datetime = "1900-01-01 00:00:00",
|
||||
$before:Datetime = "2100-01-01 00:00:00",
|
||||
$orderBy: [ReleasesOrderBy!],
|
||||
$exclude: [String!]
|
||||
) {
|
||||
|
|
|
@ -37,7 +37,7 @@ async function filterUniqueReleases(latestReleases, accReleases) {
|
|||
return uniqueReleases;
|
||||
}
|
||||
|
||||
function needNextPage(uniqueReleases, pageAccReleases) {
|
||||
function needNextPage(uniqueReleases, pageAccReleases, hasDates) {
|
||||
if (uniqueReleases.length === 0) {
|
||||
return false;
|
||||
}
|
||||
|
@ -47,7 +47,7 @@ function needNextPage(uniqueReleases, pageAccReleases) {
|
|||
return true;
|
||||
}
|
||||
|
||||
if (uniqueReleases.every(release => !!release.date)) {
|
||||
if (hasDates) {
|
||||
const oldestReleaseOnPage = uniqueReleases
|
||||
.sort((releaseA, releaseB) => releaseB.date - releaseA.date)
|
||||
.slice(-1)[0];
|
||||
|
@ -79,6 +79,10 @@ async function scrapeReleases(scraper, entity, preData, upcoming = false) {
|
|||
entity: release.entity || entity, // allow override
|
||||
})); // attach entity the release is assigned to when stored
|
||||
|
||||
const hasDates = latestReleasesWithEntity.every(release => !!release.date);
|
||||
|
||||
console.log(hasDates);
|
||||
|
||||
const uniqueReleases = argv.redownload
|
||||
? latestReleasesWithEntity
|
||||
: await filterUniqueReleases(latestReleasesWithEntity, accReleases);
|
||||
|
@ -87,7 +91,7 @@ async function scrapeReleases(scraper, entity, preData, upcoming = false) {
|
|||
|
||||
logger.verbose(`Scraped '${entity.name}' (${entity.parent?.name}) ${upcoming ? 'upcoming' : 'latest'} page ${page}, found ${uniqueReleases.length} unique updates`);
|
||||
|
||||
if (needNextPage(uniqueReleases, pageAccReleases)) {
|
||||
if (needNextPage(uniqueReleases, pageAccReleases, hasDates)) {
|
||||
return scrapePage(page + 1, pageAccReleases);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue