mirror of
https://codeberg.org/timelimit/timelimit-server.git
synced 2026-08-31 19:03:45 +02:00
44 lines
1.4 KiB
TypeScript
44 lines
1.4 KiB
TypeScript
/*
|
|
* server component for the TimeLimit App
|
|
* Copyright (C) 2019 - 2022 Jonas Lochmann
|
|
*
|
|
* This program is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU Affero General Public License as
|
|
* published by the Free Software Foundation, version 3 of the License.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU Affero General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Affero General Public License
|
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
import { readFileSync } from 'fs'
|
|
import { range } from 'lodash'
|
|
import { resolve } from 'path'
|
|
|
|
const wordlist = readFileSync(resolve(__dirname, '../../other/wordlist/de.txt'))
|
|
.toString()
|
|
.split('\n')
|
|
.filter((item) => item.trim().length > 0)
|
|
|
|
const randomWord = () => wordlist[Math.floor(Math.random() * (wordlist.length - 1))]
|
|
|
|
export const randomWords = (numberOfWords: number) => (
|
|
range(numberOfWords)
|
|
.map(() => randomWord())
|
|
.join(' ')
|
|
)
|
|
|
|
const preprocessStringForComparing = (input: string) => (
|
|
input
|
|
.replace(/ |\*/g, '')
|
|
.toLowerCase()
|
|
)
|
|
|
|
export const areWordSequencesEqual = (a: string, b: string) => (
|
|
preprocessStringForComparing(a) === preprocessStringForComparing(b)
|
|
)
|