You've already forked AstralRinth
forked from didirus/AstralRinth
Move many things over from Knossos (and other rearrangements) (#102)
This commit is contained in:
@@ -1,3 +1,81 @@
|
||||
// noinspection JSUnusedGlobalSymbols
|
||||
|
||||
import dayjs from 'dayjs'
|
||||
|
||||
export const external = (cosmetics) => (cosmetics.externalLinksNewTab ? '_blank' : '')
|
||||
|
||||
// Only use on the complete list of versions for a project,
|
||||
// partial lists will generate the wrong version slugs
|
||||
export const computeVersions = (versions, members) => {
|
||||
const visitedVersions = []
|
||||
const returnVersions = []
|
||||
const authorMembers = {}
|
||||
|
||||
for (const version of versions.sort(
|
||||
(a, b) => dayjs(a.date_published) - dayjs(b.date_published)
|
||||
)) {
|
||||
if (visitedVersions.includes(version.version_number)) {
|
||||
visitedVersions.push(version.version_number)
|
||||
version.displayUrlEnding = version.id
|
||||
} else {
|
||||
visitedVersions.push(version.version_number)
|
||||
version.displayUrlEnding = version.version_number
|
||||
}
|
||||
version.primaryFile = version.files.find((file) => file.primary) ?? version.files[0]
|
||||
|
||||
if (!version.primaryFile) {
|
||||
version.primaryFile = {
|
||||
hashes: {
|
||||
sha1: '',
|
||||
sha512: '',
|
||||
},
|
||||
url: '#',
|
||||
filename: 'unknown',
|
||||
primary: false,
|
||||
size: 0,
|
||||
file_type: null,
|
||||
}
|
||||
}
|
||||
|
||||
version.author = authorMembers[version.author_id]
|
||||
if (!version.author) {
|
||||
version.author = members.find((x) => x.user.id === version.author_id)
|
||||
authorMembers[version.author_id] = version.author
|
||||
}
|
||||
|
||||
returnVersions.push(version)
|
||||
}
|
||||
|
||||
return returnVersions
|
||||
.reverse()
|
||||
.map((version, index) => {
|
||||
const nextVersion = returnVersions[index + 1]
|
||||
if (nextVersion && version.changelog && nextVersion.changelog === version.changelog) {
|
||||
return { duplicate: true, ...version }
|
||||
} else {
|
||||
return { duplicate: false, ...version }
|
||||
}
|
||||
})
|
||||
.sort((a, b) => dayjs(b.date_published) - dayjs(a.date_published))
|
||||
}
|
||||
|
||||
export const sortedCategories = (tags) => {
|
||||
return tags.categories.slice().sort((a, b) => {
|
||||
const headerCompare = a.header.localeCompare(b.header)
|
||||
if (headerCompare !== 0) {
|
||||
return headerCompare
|
||||
}
|
||||
if (a.header === 'resolutions' && b.header === 'resolutions') {
|
||||
return a.name.replace(/\D/g, '') - b.name.replace(/\D/g, '')
|
||||
} else if (a.header === 'performance impact' && b.header === 'performance impact') {
|
||||
const x = ['potato', 'low', 'medium', 'high', 'screenshot']
|
||||
|
||||
return x.indexOf(a.name) - x.indexOf(b.name)
|
||||
}
|
||||
return 0
|
||||
})
|
||||
}
|
||||
|
||||
export const formatNumber = (number, abbreviate = true) => {
|
||||
const x = +number
|
||||
if (x >= 1000000 && abbreviate) {
|
||||
@@ -66,6 +144,8 @@ export const formatCategory = (name) => {
|
||||
return 'BungeeCord'
|
||||
} else if (name === 'liteloader') {
|
||||
return 'LiteLoader'
|
||||
} else if (name === 'neoforge') {
|
||||
return 'NeoForge'
|
||||
} else if (name === 'game-mechanics') {
|
||||
return 'Game Mechanics'
|
||||
} else if (name === 'worldgen') {
|
||||
@@ -101,7 +181,7 @@ export const formatCategoryHeader = (name) => {
|
||||
|
||||
export const formatProjectStatus = (name) => {
|
||||
if (name === 'approved') {
|
||||
return 'Listed'
|
||||
return 'Public'
|
||||
} else if (name === 'processing') {
|
||||
return 'Under review'
|
||||
}
|
||||
@@ -109,8 +189,8 @@ export const formatProjectStatus = (name) => {
|
||||
return capitalizeString(name)
|
||||
}
|
||||
|
||||
export const formatVersions = (versionArray, store) => {
|
||||
const allVersions = store.state.tag.gameVersions.slice().reverse()
|
||||
export const formatVersions = (versionArray, gameVersions) => {
|
||||
const allVersions = gameVersions.slice().reverse()
|
||||
const allReleases = allVersions.filter((x) => x.version_type === 'release')
|
||||
|
||||
const intervals = []
|
||||
@@ -176,13 +256,13 @@ export const formatVersions = (versionArray, store) => {
|
||||
|
||||
for (const interval of newIntervals) {
|
||||
if (interval.length === 2) {
|
||||
output.push(`${interval[0][0]}—${interval[1][0]}`)
|
||||
output.push(`${interval[0][0]}–${interval[1][0]}`)
|
||||
} else {
|
||||
output.push(interval[0][0])
|
||||
}
|
||||
}
|
||||
|
||||
return output.join(', ')
|
||||
return (output.length === 0 ? versionArray : output).join(', ')
|
||||
}
|
||||
|
||||
export function cycleValue(value, values) {
|
||||
|
||||
Reference in New Issue
Block a user