mirror of
https://gitlab.com/MrFry/mrfrys-node-server
synced 2025-04-01 20:24:18 +02:00
Lotsa typescript bullshit
This commit is contained in:
parent
b7ac485689
commit
b927988017
65 changed files with 801 additions and 8447 deletions
|
@ -19,6 +19,11 @@ module.exports = {
|
|||
rules: {
|
||||
'no-undef': ['error'],
|
||||
eqeqeq: ['warn', 'smart'],
|
||||
'@typescript-eslint/no-explicit-any': 'off',
|
||||
'@typescript-eslint/explicit-module-boundary-types': [
|
||||
'error',
|
||||
{ allowArgumentsExplicitlyTypedAsAny: true },
|
||||
],
|
||||
'no-unused-vars': 'warn',
|
||||
'no-prototype-builtins': 'off',
|
||||
'@typescript-eslint/ban-types': 'off',
|
||||
|
|
115
package-lock.json
generated
115
package-lock.json
generated
|
@ -212,17 +212,79 @@
|
|||
"fastq": "^1.6.0"
|
||||
}
|
||||
},
|
||||
"@types/body-parser": {
|
||||
"version": "1.19.0",
|
||||
"resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.0.tgz",
|
||||
"integrity": "sha512-W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ==",
|
||||
"requires": {
|
||||
"@types/connect": "*",
|
||||
"@types/node": "*"
|
||||
}
|
||||
},
|
||||
"@types/connect": {
|
||||
"version": "3.4.33",
|
||||
"resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.33.tgz",
|
||||
"integrity": "sha512-2+FrkXY4zllzTNfJth7jOqEHC+enpLeGslEhpnTAkg21GkRrWV4SsAtqchtT4YS9/nODBU2/ZfsBY2X4J/dX7A==",
|
||||
"requires": {
|
||||
"@types/node": "*"
|
||||
}
|
||||
},
|
||||
"@types/express": {
|
||||
"version": "4.17.9",
|
||||
"resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.9.tgz",
|
||||
"integrity": "sha512-SDzEIZInC4sivGIFY4Sz1GG6J9UObPwCInYJjko2jzOf/Imx/dlpume6Xxwj1ORL82tBbmN4cPDIDkLbWHk9hw==",
|
||||
"requires": {
|
||||
"@types/body-parser": "*",
|
||||
"@types/express-serve-static-core": "*",
|
||||
"@types/qs": "*",
|
||||
"@types/serve-static": "*"
|
||||
}
|
||||
},
|
||||
"@types/express-serve-static-core": {
|
||||
"version": "4.17.13",
|
||||
"resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.13.tgz",
|
||||
"integrity": "sha512-RgDi5a4nuzam073lRGKTUIaL3eF2+H7LJvJ8eUnCI0wA6SNjXc44DCmWNiTLs/AZ7QlsFWZiw/gTG3nSQGL0fA==",
|
||||
"requires": {
|
||||
"@types/node": "*",
|
||||
"@types/qs": "*",
|
||||
"@types/range-parser": "*"
|
||||
}
|
||||
},
|
||||
"@types/json-schema": {
|
||||
"version": "7.0.6",
|
||||
"resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.6.tgz",
|
||||
"integrity": "sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw==",
|
||||
"dev": true
|
||||
},
|
||||
"@types/mime": {
|
||||
"version": "2.0.3",
|
||||
"resolved": "https://registry.npmjs.org/@types/mime/-/mime-2.0.3.tgz",
|
||||
"integrity": "sha512-Jus9s4CDbqwocc5pOAnh8ShfrnMcPHuJYzVcSUU7lrh8Ni5HuIqX3oilL86p3dlTrk0LzHRCgA/GQ7uNCw6l2Q=="
|
||||
},
|
||||
"@types/node": {
|
||||
"version": "14.14.9",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.9.tgz",
|
||||
"integrity": "sha512-JsoLXFppG62tWTklIoO4knA+oDTYsmqWxHRvd4lpmfQRNhX6osheUOWETP2jMoV/2bEHuMra8Pp3Dmo/stBFcw=="
|
||||
},
|
||||
"@types/qs": {
|
||||
"version": "6.9.5",
|
||||
"resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.5.tgz",
|
||||
"integrity": "sha512-/JHkVHtx/REVG0VVToGRGH2+23hsYLHdyG+GrvoUGlGAd0ErauXDyvHtRI/7H7mzLm+tBCKA7pfcpkQ1lf58iQ=="
|
||||
},
|
||||
"@types/range-parser": {
|
||||
"version": "1.2.3",
|
||||
"resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.3.tgz",
|
||||
"integrity": "sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA=="
|
||||
},
|
||||
"@types/serve-static": {
|
||||
"version": "1.13.8",
|
||||
"resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.8.tgz",
|
||||
"integrity": "sha512-MoJhSQreaVoL+/hurAZzIm8wafFR6ajiTM1m4A0kv6AGeVBl4r4pOV8bGFrjjq1sGxDTnCoF8i22o0/aE5XCyA==",
|
||||
"requires": {
|
||||
"@types/mime": "*",
|
||||
"@types/node": "*"
|
||||
}
|
||||
},
|
||||
"@typescript-eslint/eslint-plugin": {
|
||||
"version": "4.8.1",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.8.1.tgz",
|
||||
|
@ -447,6 +509,11 @@
|
|||
"readable-stream": "^2.0.6"
|
||||
}
|
||||
},
|
||||
"arg": {
|
||||
"version": "4.1.3",
|
||||
"resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
|
||||
"integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA=="
|
||||
},
|
||||
"argparse": {
|
||||
"version": "1.0.10",
|
||||
"resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
|
||||
|
@ -622,6 +689,11 @@
|
|||
"ieee754": "^1.1.4"
|
||||
}
|
||||
},
|
||||
"buffer-from": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
|
||||
"integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A=="
|
||||
},
|
||||
"busboy": {
|
||||
"version": "0.3.1",
|
||||
"resolved": "https://registry.npmjs.org/busboy/-/busboy-0.3.1.tgz",
|
||||
|
@ -830,6 +902,11 @@
|
|||
"streamsearch": "0.1.2"
|
||||
}
|
||||
},
|
||||
"diff": {
|
||||
"version": "4.0.2",
|
||||
"resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
|
||||
"integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A=="
|
||||
},
|
||||
"dir-glob": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
|
||||
|
@ -1687,6 +1764,11 @@
|
|||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz",
|
||||
"integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA=="
|
||||
},
|
||||
"make-error": {
|
||||
"version": "1.3.6",
|
||||
"resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
|
||||
"integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw=="
|
||||
},
|
||||
"media-typer": {
|
||||
"version": "0.3.0",
|
||||
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
|
||||
|
@ -2359,6 +2441,22 @@
|
|||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
|
||||
"integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
|
||||
},
|
||||
"source-map-support": {
|
||||
"version": "0.5.19",
|
||||
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz",
|
||||
"integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==",
|
||||
"requires": {
|
||||
"buffer-from": "^1.0.0",
|
||||
"source-map": "^0.6.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"source-map": {
|
||||
"version": "0.6.1",
|
||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
|
||||
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
|
||||
}
|
||||
}
|
||||
},
|
||||
"sprintf-js": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
|
||||
|
@ -2569,6 +2667,18 @@
|
|||
"punycode": "^2.1.1"
|
||||
}
|
||||
},
|
||||
"ts-node": {
|
||||
"version": "9.0.0",
|
||||
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.0.0.tgz",
|
||||
"integrity": "sha512-/TqB4SnererCDR/vb4S/QvSZvzQMJN8daAslg7MeaiHvD8rDZsSfXmNeNumyZZzMned72Xoq/isQljYSt8Ynfg==",
|
||||
"requires": {
|
||||
"arg": "^4.1.0",
|
||||
"diff": "^4.0.1",
|
||||
"make-error": "^1.1.1",
|
||||
"source-map-support": "^0.5.17",
|
||||
"yn": "3.1.1"
|
||||
}
|
||||
},
|
||||
"tslib": {
|
||||
"version": "1.14.1",
|
||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
|
||||
|
@ -2747,6 +2857,11 @@
|
|||
"version": "3.1.1",
|
||||
"resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
|
||||
"integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="
|
||||
},
|
||||
"yn": {
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
|
||||
"integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q=="
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
"name": "node-ejs",
|
||||
"main": "src/server.js",
|
||||
"dependencies": {
|
||||
"@types/express": "^4.17.9",
|
||||
"@types/node": "^14.14.9",
|
||||
"babel-eslint": "^10.1.0",
|
||||
"better-sqlite3": "^6.0.1",
|
||||
|
@ -13,6 +14,7 @@
|
|||
"express": "^4.6.1",
|
||||
"express-ejs-layouts": "^1.1.0",
|
||||
"sqlite3": "^4.1.1",
|
||||
"ts-node": "^9.0.0",
|
||||
"typescript": "^4.1.2",
|
||||
"typescript-eslint": "0.0.1-alpha.0",
|
||||
"url": "^0.11.0",
|
||||
|
|
209
scripts/serverStats.js
Normal file
209
scripts/serverStats.js
Normal file
|
@ -0,0 +1,209 @@
|
|||
// -----------------------------------------------------------------
|
||||
// CONFIG
|
||||
// -----------------------------------------------------------------
|
||||
|
||||
const maxStatLength = 15
|
||||
const statNameSpacing = 5
|
||||
const coloredWords = {
|
||||
red: ['lred'],
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------
|
||||
|
||||
const fs = require('fs')
|
||||
|
||||
const dir = process.argv[2]
|
||||
if (!dir) {
|
||||
console.log('No params')
|
||||
process.exit()
|
||||
}
|
||||
|
||||
function getDayIndex(offset) {
|
||||
if (!offset) {
|
||||
offset = 0
|
||||
}
|
||||
|
||||
let date = new Date()
|
||||
if (offset) {
|
||||
date.setDate(date.getDate() + offset)
|
||||
}
|
||||
return (
|
||||
date.getFullYear() +
|
||||
'/' +
|
||||
('0' + (date.getMonth() + 1)).slice(-2) +
|
||||
'/' +
|
||||
('0' + date.getDate()).slice(-2)
|
||||
)
|
||||
}
|
||||
|
||||
function C(color) {
|
||||
if (color !== undefined) {
|
||||
color = color.toLowerCase()
|
||||
}
|
||||
|
||||
if (color === 'redbg') {
|
||||
return '\x1b[41m'
|
||||
}
|
||||
if (color === 'bluebg') {
|
||||
return '\x1b[44m'
|
||||
}
|
||||
if (color === 'green') {
|
||||
return '\x1b[32m'
|
||||
}
|
||||
if (color === 'red') {
|
||||
return '\x1b[31m'
|
||||
}
|
||||
if (color === 'yellow') {
|
||||
return '\x1b[33m'
|
||||
}
|
||||
if (color === 'blue') {
|
||||
return '\x1b[34m'
|
||||
}
|
||||
if (color === 'magenta') {
|
||||
return '\x1b[35m'
|
||||
}
|
||||
if (color === 'cyan') {
|
||||
return '\x1b[36m'
|
||||
}
|
||||
return '\x1b[0m'
|
||||
}
|
||||
|
||||
function readJSON(name) {
|
||||
return JSON.parse(fs.readFileSync(name, 'utf8'))
|
||||
}
|
||||
|
||||
function tail(text, number) {
|
||||
let splitedText = text.split('\n')
|
||||
return splitedText.slice(Math.max(splitedText.length - number, 1)).join('\n')
|
||||
}
|
||||
|
||||
function head(text, number) {
|
||||
return text
|
||||
.split('\n')
|
||||
.slice(0, number)
|
||||
.join('\n')
|
||||
}
|
||||
|
||||
function readFile(name) {
|
||||
return fs.readFileSync(name, 'utf8')
|
||||
}
|
||||
|
||||
function getLetterNTimes(letter, number) {
|
||||
let res = ''
|
||||
while (res.length < number) {
|
||||
res += letter
|
||||
}
|
||||
return res
|
||||
}
|
||||
|
||||
function pCols() {
|
||||
// console.log(arguments)
|
||||
let maxLength = 0
|
||||
Object.keys(arguments).forEach((key) => {
|
||||
if (arguments[key].length > maxLength) {
|
||||
maxLength = arguments[key].length
|
||||
}
|
||||
})
|
||||
for (let i = 0; i < maxLength; i++) {
|
||||
let row = []
|
||||
Object.keys(arguments)
|
||||
.reverse()
|
||||
.forEach((key) => {
|
||||
const val = arguments[key]
|
||||
if (!val[i]) {
|
||||
return
|
||||
}
|
||||
|
||||
const keyName = val[i].name || ''
|
||||
|
||||
let slicedName = keyName.slice(0, maxStatLength)
|
||||
let toColor = Object.keys(coloredWords).reduce((acc, key) => {
|
||||
const colorArray = coloredWords[key]
|
||||
|
||||
const includes = colorArray.some((colorableIdName) => {
|
||||
return keyName.includes(colorableIdName)
|
||||
})
|
||||
|
||||
if (includes) {
|
||||
return key
|
||||
}
|
||||
|
||||
return acc
|
||||
}, '')
|
||||
|
||||
while (slicedName.length < maxStatLength) {
|
||||
slicedName = ' ' + slicedName
|
||||
}
|
||||
|
||||
let ammount = val[i].val ? val[i].val.toString() : 0
|
||||
while (ammount.length < 4) {
|
||||
ammount = ammount + ' '
|
||||
}
|
||||
|
||||
if (toColor) {
|
||||
row.push(C(toColor) + slicedName + ': ' + ammount + C())
|
||||
} else {
|
||||
row.push(slicedName + ' ' + ammount)
|
||||
}
|
||||
})
|
||||
console.log(row.join(getLetterNTimes(' ', statNameSpacing)))
|
||||
}
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------------
|
||||
const dailyStats = readJSON(`${dir}stats/vstats`)
|
||||
function preProcessDailyStats(obj) {
|
||||
return Object.keys(obj).map((key) => {
|
||||
return { name: key, val: obj[key] }
|
||||
})
|
||||
}
|
||||
|
||||
pCols(
|
||||
preProcessDailyStats(dailyStats[getDayIndex()]),
|
||||
preProcessDailyStats(dailyStats[getDayIndex(-1)]),
|
||||
preProcessDailyStats(dailyStats[getDayIndex(-2)])
|
||||
)
|
||||
|
||||
// ------------------------------------------------------------------------------
|
||||
const userIdTestSolving = readJSON(`${dir}stats/idvstats`)
|
||||
function preProcessUIdTestSolving(obj) {
|
||||
if (!obj) {
|
||||
return [{ val: 0 }]
|
||||
}
|
||||
return [{ val: Object.keys(obj).length }]
|
||||
}
|
||||
|
||||
pCols(
|
||||
preProcessUIdTestSolving(userIdTestSolving[getDayIndex()]),
|
||||
preProcessUIdTestSolving(userIdTestSolving[getDayIndex(-1)]),
|
||||
preProcessUIdTestSolving(userIdTestSolving[getDayIndex(-2)])
|
||||
)
|
||||
|
||||
// ------------------------------------------------------------------------------
|
||||
const clientIdTestSolving = readJSON(`${dir}stats/uvstats`)
|
||||
|
||||
pCols(
|
||||
preProcessUIdTestSolving(clientIdTestSolving[getDayIndex()]),
|
||||
preProcessUIdTestSolving(clientIdTestSolving[getDayIndex(-1)]),
|
||||
preProcessUIdTestSolving(clientIdTestSolving[getDayIndex(-2)])
|
||||
)
|
||||
|
||||
// ------------------------------------------------------------------------------
|
||||
const dailyDataCount = readFile(`${dir}stats/dailyDataCount`)
|
||||
|
||||
printLastDataCount([
|
||||
JSON.parse(head(tail(dailyDataCount, 1), 1)),
|
||||
JSON.parse(head(tail(dailyDataCount, 2), 1)),
|
||||
JSON.parse(head(tail(dailyDataCount, 3), 1)),
|
||||
])
|
||||
|
||||
function printLastDataCount(data) {
|
||||
const res = [[], [], []]
|
||||
data.forEach((dataCount, i) => {
|
||||
res[i].push({ val: dataCount.userCount })
|
||||
res[i].push({ val: dataCount.subjectCount })
|
||||
res[i].push({ val: dataCount.questionCount })
|
||||
})
|
||||
|
||||
pCols(...res)
|
||||
}
|
|
@ -1,8 +1,14 @@
|
|||
const logger = require('../utils/logger.js')
|
||||
const utils = require('../utils/utils.js')
|
||||
const dbtools = require('../utils/dbtools.js')
|
||||
import logger from '../utils/logger'
|
||||
import utils from '../utils/utils'
|
||||
import dbtools from '../utils/dbtools'
|
||||
|
||||
module.exports = function(options) {
|
||||
interface Options {
|
||||
userDB: any
|
||||
jsonResponse: boolean
|
||||
exceptions: Array<string>
|
||||
}
|
||||
|
||||
export default function(options: Options): any {
|
||||
const { userDB, jsonResponse, exceptions } = options
|
||||
|
||||
const renderLogin = (req, res) => {
|
||||
|
@ -60,7 +66,7 @@ module.exports = function(options) {
|
|||
return
|
||||
}
|
||||
|
||||
const user = GetUserBySessionID(userDB, sessionID, req)
|
||||
const user = GetUserBySessionID(userDB, sessionID)
|
||||
|
||||
if (!user) {
|
||||
if (isException) {
|
||||
|
@ -127,7 +133,7 @@ function UpdateAccess(db, user, ip, sessionID) {
|
|||
}
|
||||
}
|
||||
|
||||
function GetUserBySessionID(db, sessionID, req) {
|
||||
function GetUserBySessionID(db: any, sessionID: string) {
|
||||
logger.DebugLog(`Getting user from db`, 'auth', 2)
|
||||
|
||||
const session = dbtools.Select(db, 'sessions', {
|
||||
|
|
|
@ -1,6 +1,11 @@
|
|||
const logger = require('../utils/logger.js')
|
||||
import logger from '../utils/logger'
|
||||
|
||||
module.exports = function(options) {
|
||||
interface Options {
|
||||
loggableKeywords: Array<string>
|
||||
loggableModules: Array<string>
|
||||
}
|
||||
|
||||
export default function(options: Options): any {
|
||||
const loggableKeywords = options ? options.loggableKeywords : undefined
|
||||
const loggableModules = options ? options.loggableModules : undefined
|
||||
|
||||
|
@ -24,13 +29,13 @@ module.exports = function(options) {
|
|||
// fixme: regexp includes checking
|
||||
const hasLoggableKeyword =
|
||||
loggableKeywords &&
|
||||
loggableKeywords.some((x) => {
|
||||
return req.url.includes(x)
|
||||
loggableKeywords.some((keyword) => {
|
||||
return req.url.includes(keyword)
|
||||
})
|
||||
const hasLoggableModule =
|
||||
loggableModules &&
|
||||
loggableModules.some((x) => {
|
||||
return hostname.includes(x)
|
||||
loggableModules.some((keyword) => {
|
||||
return hostname.includes(keyword)
|
||||
})
|
||||
const toLog = hasLoggableModule || hasLoggableKeyword
|
||||
|
||||
|
|
|
@ -22,17 +22,20 @@
|
|||
import express from 'express'
|
||||
import bodyParser from 'body-parser'
|
||||
import busboy from 'connect-busboy'
|
||||
import { uuidv4 } from 'uuid'
|
||||
import { v4 as uuidv4 } from 'uuid'
|
||||
import fs from 'fs'
|
||||
|
||||
// other requires
|
||||
|
||||
import logger from '../../utils/logger.js'
|
||||
import utils from '../../utils/utils.js'
|
||||
import logger from '../../utils/logger'
|
||||
import utils from '../../utils/utils'
|
||||
import actions from '../../utils/actions'
|
||||
import dbtools from '../../utils/dbtools.js'
|
||||
import auth from '../../middlewares/auth.middleware.js'
|
||||
import { dataToString, searchData } from '../../utils/classes.js'
|
||||
import dbtools from '../../utils/dbtools'
|
||||
import auth from '../../middlewares/auth.middleware'
|
||||
import { dataToString, searchData } from '../../utils/classes'
|
||||
|
||||
import { SetupData } from '../../server'
|
||||
import { ModuleType, User } from '../../types/basicTypes'
|
||||
|
||||
// files
|
||||
const msgFile = 'stats/msgs'
|
||||
|
@ -64,7 +67,7 @@ export interface DataFile {
|
|||
name: string
|
||||
}
|
||||
|
||||
function GetApp() {
|
||||
function GetApp(): ModuleType {
|
||||
const app = express()
|
||||
|
||||
const publicDir = publicdirs[0]
|
||||
|
@ -79,6 +82,7 @@ function GetApp() {
|
|||
{ path: `${publicDir}oldData.json`, name: 'oldData' },
|
||||
{ path: `${publicDir}data.json`, name: 'newData' },
|
||||
]
|
||||
const data: any = {} // TODO: remove
|
||||
const motdFile = publicDir + 'motd'
|
||||
const userSpecificMotdFile = publicDir + 'userSpecificMotd.json'
|
||||
const versionFile = publicDir + 'version'
|
||||
|
@ -124,10 +128,11 @@ function GetApp() {
|
|||
)
|
||||
|
||||
const questionDbs = actions.LoadJSON(dataFiles)
|
||||
const version = ''
|
||||
const motd = ''
|
||||
const userSpecificMotd = {}
|
||||
const testUsers = []
|
||||
let version = ''
|
||||
let motd = ''
|
||||
let userSpecificMotd = {}
|
||||
// FIXME: check type from file
|
||||
let testUsers: any = []
|
||||
|
||||
function mergeObjSum(a, b) {
|
||||
const res = { ...b }
|
||||
|
@ -226,7 +231,7 @@ function GetApp() {
|
|||
|
||||
// -------------------------------------------------------------
|
||||
|
||||
app.get('/updateTodo', (req, res) => {
|
||||
app.get('/updateTodo', (req: any, res: any) => {
|
||||
const userId = req.session.user.id
|
||||
const id = req.query.id
|
||||
const todos = utils.ReadJSON(todosFile)
|
||||
|
@ -265,7 +270,7 @@ function GetApp() {
|
|||
})
|
||||
})
|
||||
|
||||
app.get('/todos', (req, res) => {
|
||||
app.get('/todos', (req: any, res: any) => {
|
||||
logger.LogReq(req)
|
||||
const userId = req.session.user.id
|
||||
const todos = utils.ReadJSON(todosFile)
|
||||
|
@ -277,18 +282,18 @@ function GetApp() {
|
|||
})
|
||||
})
|
||||
|
||||
app.get('/ranklist', (req, res) => {
|
||||
app.get('/ranklist', (req: any, res: any) => {
|
||||
logger.LogReq(req)
|
||||
let result
|
||||
let since = req.query.since
|
||||
const user = req.session.user
|
||||
const user: User = req.session.user
|
||||
|
||||
if (!since) {
|
||||
result = utils.ReadJSON(idStatFile)
|
||||
} else {
|
||||
try {
|
||||
since = new Date(since)
|
||||
if (!(since instanceof Date) || isNaN(since)) {
|
||||
if (!(since instanceof Date) || isNaN(since.getTime())) {
|
||||
throw new Error('Not a date')
|
||||
}
|
||||
const data = utils.ReadJSON(idvStatFile)
|
||||
|
@ -354,10 +359,10 @@ function GetApp() {
|
|||
})
|
||||
})
|
||||
|
||||
app.get('/quickvote', (req, res) => {
|
||||
app.get('/quickvote', (req: any, res: any) => {
|
||||
const key = req.query.key
|
||||
const val = req.query.val
|
||||
const user = req.session.user
|
||||
const user: User = req.session.user
|
||||
|
||||
if (!key || !val) {
|
||||
res.render('votethank', {
|
||||
|
@ -367,7 +372,8 @@ function GetApp() {
|
|||
return
|
||||
}
|
||||
|
||||
let votes = {}
|
||||
// FIXME: check vote type in file
|
||||
let votes: any = {}
|
||||
if (utils.FileExists(quickVotes)) {
|
||||
votes = utils.ReadJSON(quickVotes)
|
||||
} else {
|
||||
|
@ -429,10 +435,10 @@ function GetApp() {
|
|||
utils.WriteFile(JSON.stringify(voteData), voteFile)
|
||||
})
|
||||
|
||||
app.get('/avaiblePWS', (req, res) => {
|
||||
app.get('/avaiblePWS', (req: any, res: any) => {
|
||||
logger.LogReq(req)
|
||||
|
||||
const user = req.session.user
|
||||
const user: User = req.session.user
|
||||
|
||||
res.json({
|
||||
result: 'success',
|
||||
|
@ -447,7 +453,7 @@ function GetApp() {
|
|||
})
|
||||
})
|
||||
|
||||
app.post('/getpw', function(req, res) {
|
||||
app.post('/getpw', function(req: any, res: any) {
|
||||
logger.LogReq(req)
|
||||
|
||||
const requestingUser = req.session.user
|
||||
|
@ -497,7 +503,7 @@ function GetApp() {
|
|||
})
|
||||
})
|
||||
|
||||
app.post('/getveteranpw', function(req, res) {
|
||||
app.post('/getveteranpw', function(req: any, res: any) {
|
||||
logger.LogReq(req)
|
||||
const ip = req.headers['cf-connecting-ip'] || req.connection.remoteAddress
|
||||
const tries = dbtools.Select(userDB, 'veteranPWRequests', {
|
||||
|
@ -546,7 +552,7 @@ function GetApp() {
|
|||
return
|
||||
}
|
||||
|
||||
const user = dbtools.Select(userDB, 'users', {
|
||||
const user: User = dbtools.Select(userDB, 'users', {
|
||||
oldCID: oldUserID,
|
||||
})[0]
|
||||
|
||||
|
@ -593,7 +599,7 @@ function GetApp() {
|
|||
}
|
||||
})
|
||||
|
||||
app.post('/login', (req, res) => {
|
||||
app.post('/login', (req: any, res: any) => {
|
||||
logger.LogReq(req)
|
||||
const pw = req.body.pw
|
||||
? req.body.pw
|
||||
|
@ -604,7 +610,7 @@ function GetApp() {
|
|||
const cid = req.body.cid
|
||||
const isScript = req.body.script
|
||||
const ip = req.headers['cf-connecting-ip'] || req.connection.remoteAddress
|
||||
const user = dbtools.Select(userDB, 'users', {
|
||||
const user: User = dbtools.Select(userDB, 'users', {
|
||||
pw: pw,
|
||||
})[0]
|
||||
|
||||
|
@ -695,7 +701,7 @@ function GetApp() {
|
|||
}
|
||||
})
|
||||
|
||||
app.post('/logout', (req, res) => {
|
||||
app.post('/logout', (req: any, res: any) => {
|
||||
logger.LogReq(req)
|
||||
const sessionID = req.cookies.sessionID
|
||||
|
||||
|
@ -711,38 +717,36 @@ function GetApp() {
|
|||
|
||||
// --------------------------------------------------------------
|
||||
|
||||
app.get('/', function(req, res) {
|
||||
app.get('/', function(req: any, res: any) {
|
||||
logger.LogReq(req)
|
||||
res.redirect('https://www.youtube.com/watch?v=ieqGJgqiXFk')
|
||||
})
|
||||
|
||||
app.post('/postfeedbackfile', function(req, res) {
|
||||
app.post('/postfeedbackfile', function(req: any, res: any) {
|
||||
UploadFile(req, res, uloadFiles, () => {
|
||||
res.json({ success: true })
|
||||
})
|
||||
|
||||
logger.LogReq(req)
|
||||
logger.Log('New feedback file', logger.GetColor('bluebg'), true)
|
||||
logger.Log('New feedback file', logger.GetColor('bluebg'))
|
||||
})
|
||||
|
||||
app.post('/postfeedback', function(req, res) {
|
||||
app.post('/postfeedback', function(req: any, res: any) {
|
||||
logger.LogReq(req)
|
||||
if (req.body.fromLogin) {
|
||||
logger.Log(
|
||||
'New feedback message from Login page',
|
||||
logger.GetColor('bluebg'),
|
||||
true
|
||||
logger.GetColor('bluebg')
|
||||
)
|
||||
} else {
|
||||
logger.Log(
|
||||
'New feedback message from feedback page',
|
||||
logger.GetColor('bluebg'),
|
||||
true
|
||||
logger.GetColor('bluebg')
|
||||
)
|
||||
}
|
||||
|
||||
const ip = req.headers['cf-connecting-ip'] || req.connection.remoteAddress
|
||||
const user = req.session.user
|
||||
const user: User = req.session.user
|
||||
|
||||
utils.AppendToFile(
|
||||
utils.GetDateString() +
|
||||
|
@ -757,9 +761,8 @@ function GetApp() {
|
|||
res.json({ success: true })
|
||||
})
|
||||
|
||||
function UploadFile(req, res, path, next) {
|
||||
function UploadFile(req: any, res: any, path, next) {
|
||||
try {
|
||||
const fstream
|
||||
req.pipe(req.busboy)
|
||||
req.busboy.on('file', function(fieldname, file, filename) {
|
||||
logger.Log('Uploading: ' + filename, logger.GetColor('blue'))
|
||||
|
@ -775,7 +778,7 @@ function GetApp() {
|
|||
'_' +
|
||||
filename
|
||||
|
||||
fstream = fs.createWriteStream(path + '/' + fn)
|
||||
const fstream = fs.createWriteStream(path + '/' + fn)
|
||||
file.pipe(fstream)
|
||||
fstream.on('close', function() {
|
||||
logger.Log(
|
||||
|
@ -795,20 +798,20 @@ function GetApp() {
|
|||
}
|
||||
}
|
||||
|
||||
app.route('/fosuploader').post(function(req, res) {
|
||||
app.route('/fosuploader').post(function(req: any, res: any) {
|
||||
UploadFile(req, res, uloadFiles, (fn) => {
|
||||
res.redirect('/f/' + fn)
|
||||
})
|
||||
})
|
||||
|
||||
app.route('/badtestsender').post(function(req, res) {
|
||||
app.route('/badtestsender').post(function(req: any, res: any) {
|
||||
UploadFile(req, res, recivedFiles, () => {
|
||||
res.redirect('back')
|
||||
})
|
||||
logger.LogReq(req)
|
||||
})
|
||||
|
||||
app.get('/allqr.txt', function(req, res) {
|
||||
app.get('/allqr.txt', function(req: any, res: any) {
|
||||
res.set('Content-Type', 'text/plain')
|
||||
const stringifiedData = questionDbs.map((qdb) => {
|
||||
return dataToString(qdb.data)
|
||||
|
@ -822,7 +825,7 @@ function GetApp() {
|
|||
// -------------------------------------------------------------------------------------------
|
||||
// API
|
||||
|
||||
app.post('/uploaddata', (req, res) => {
|
||||
app.post('/uploaddata', (req: any, res: any) => {
|
||||
// body: JSON.stringify({
|
||||
// newData: data,
|
||||
// count: getCount(data),
|
||||
|
@ -848,11 +851,12 @@ function GetApp() {
|
|||
try {
|
||||
// finding user
|
||||
const pwds = JSON.parse(utils.ReadFile(passwordFile))
|
||||
let user = Object.keys(pwds).find((key) => {
|
||||
const user = pwds[key]
|
||||
return user.password === password
|
||||
const userKey = Object.keys(pwds).find((key) => {
|
||||
const userKey = pwds[key]
|
||||
return userKey.password === password
|
||||
})
|
||||
user = pwds[user]
|
||||
// FIXME: check user type in dataeditorPW-s json
|
||||
const user: any = pwds[userKey]
|
||||
|
||||
// logging and stuff
|
||||
logger.Log(`Data upload`, logger.GetColor('bluebg'))
|
||||
|
@ -928,10 +932,10 @@ function GetApp() {
|
|||
}
|
||||
})
|
||||
|
||||
app.post('/isAdding', function(req, res) {
|
||||
app.post('/isAdding', function(req: any, res: any) {
|
||||
logger.LogReq(req)
|
||||
|
||||
const user = req.session.user
|
||||
const user: User = req.session.user
|
||||
|
||||
const dryRun = testUsers.includes(user.id)
|
||||
|
||||
|
@ -944,10 +948,10 @@ function GetApp() {
|
|||
dryRun,
|
||||
user
|
||||
)
|
||||
.then((result) => {
|
||||
.then((resultArray) => {
|
||||
res.json({
|
||||
success: result !== -1,
|
||||
newQuestions: result,
|
||||
success: resultArray.length > 0, // TODO check for -1s
|
||||
newQuestions: resultArray,
|
||||
})
|
||||
})
|
||||
.catch((err) => {
|
||||
|
@ -959,7 +963,7 @@ function GetApp() {
|
|||
})
|
||||
})
|
||||
|
||||
app.get('/ask', function(req, res) {
|
||||
app.get('/ask', function(req: any, res) {
|
||||
if (Object.keys(req.query).length === 0) {
|
||||
logger.DebugLog(`No query params`, 'ask', 1)
|
||||
res.json({
|
||||
|
@ -972,7 +976,7 @@ function GetApp() {
|
|||
if (req.query.q && req.query.data) {
|
||||
const subj = req.query.subj || ''
|
||||
const question = req.query.q
|
||||
let recData = {}
|
||||
let recData: any = {}
|
||||
try {
|
||||
recData = JSON.parse(req.query.data)
|
||||
} catch (error) {
|
||||
|
@ -1035,7 +1039,7 @@ function GetApp() {
|
|||
})
|
||||
}
|
||||
|
||||
app.get('/datacount', function(req, res) {
|
||||
app.get('/datacount', function(req: any, res: any) {
|
||||
logger.LogReq(req)
|
||||
if (req.query.detailed === 'all') {
|
||||
res.json({
|
||||
|
@ -1049,10 +1053,10 @@ function GetApp() {
|
|||
}
|
||||
})
|
||||
|
||||
app.get('/infos', function(req, res) {
|
||||
const user = req.session.user
|
||||
app.get('/infos', function(req: any, res) {
|
||||
const user: User = req.session.user
|
||||
|
||||
const result = {
|
||||
const result: any = {
|
||||
result: 'success',
|
||||
uid: user.id,
|
||||
}
|
||||
|
@ -1074,11 +1078,11 @@ function GetApp() {
|
|||
|
||||
// -------------------------------------------------------------------------------------------
|
||||
|
||||
app.get('*', function(req, res) {
|
||||
app.get('*', function(req: any, res: any) {
|
||||
res.status(404).render('404')
|
||||
})
|
||||
|
||||
app.post('*', function(req, res) {
|
||||
app.post('*', function(req: any, res: any) {
|
||||
res.status(404).render('404')
|
||||
})
|
||||
|
||||
|
@ -1116,14 +1120,14 @@ function GetApp() {
|
|||
}
|
||||
|
||||
function getDayDiff(dateString) {
|
||||
const msdiff = new Date() - new Date(dateString)
|
||||
const msdiff = new Date().getTime() - new Date(dateString).getTime()
|
||||
return Math.floor(msdiff / (1000 * 3600 * 24))
|
||||
}
|
||||
|
||||
function IncrementAvaiblePWs() {
|
||||
// FIXME: check this if this is legit and works
|
||||
logger.Log('Incrementing avaible PW-s ...')
|
||||
const users = dbtools.SelectAll(userDB, 'users')
|
||||
const users: Array<User> = dbtools.SelectAll(userDB, 'users')
|
||||
|
||||
users.forEach((user) => {
|
||||
if (user.avaiblePWRequests >= maxPWCount) {
|
||||
|
@ -1173,10 +1177,12 @@ function GetApp() {
|
|||
}
|
||||
}
|
||||
|
||||
exports.name = 'API'
|
||||
exports.getApp = GetApp
|
||||
exports.setup = (data) => {
|
||||
userDB = data.userDB
|
||||
url = data.url // eslint-disable-line
|
||||
publicdirs = data.publicdirs
|
||||
export default {
|
||||
name: 'API',
|
||||
getApp: GetApp,
|
||||
setup: (data: SetupData): void => {
|
||||
userDB = data.userDB
|
||||
url = data.url // eslint-disable-line
|
||||
publicdirs = data.publicdirs
|
||||
},
|
||||
}
|
||||
|
|
|
@ -19,22 +19,24 @@
|
|||
------------------------------------------------------------------------- */
|
||||
|
||||
// package requires
|
||||
const express = require('express')
|
||||
const bodyParser = require('body-parser')
|
||||
const busboy = require('connect-busboy')
|
||||
import express from 'express'
|
||||
import bodyParser from 'body-parser'
|
||||
import busboy from 'connect-busboy'
|
||||
const app = express()
|
||||
|
||||
// other requires
|
||||
const utils = require('../../utils/utils.js')
|
||||
const logger = require('../../utils/logger.js')
|
||||
const auth = require('../../middlewares/auth.middleware.js')
|
||||
import utils from '../../utils/utils'
|
||||
import logger from '../../utils/logger'
|
||||
import auth from '../../middlewares/auth.middleware'
|
||||
import { SetupData } from '../../server'
|
||||
import { ModuleType } from '../../types/basicTypes'
|
||||
|
||||
// stuff gotten from server.js
|
||||
let userDB
|
||||
let publicdirs = []
|
||||
let nextdir = ''
|
||||
|
||||
function GetApp() {
|
||||
function GetApp(): ModuleType {
|
||||
app.use(
|
||||
bodyParser.urlencoded({
|
||||
limit: '5mb',
|
||||
|
@ -71,9 +73,9 @@ function GetApp() {
|
|||
// --------------------------------------------------------------
|
||||
|
||||
function AddHtmlRoutes(files) {
|
||||
const routes = files.reduce((acc, f) => {
|
||||
if (f.includes('html')) {
|
||||
acc.push(f.split('.')[0])
|
||||
const routes = files.reduce((acc, file) => {
|
||||
if (file.includes('html')) {
|
||||
acc.push(file.split('.')[0])
|
||||
return acc
|
||||
}
|
||||
return acc
|
||||
|
@ -109,10 +111,12 @@ function GetApp() {
|
|||
}
|
||||
}
|
||||
|
||||
exports.name = 'Data editor'
|
||||
exports.getApp = GetApp
|
||||
exports.setup = (data) => {
|
||||
userDB = data.userDB
|
||||
publicdirs = data.publicdirs
|
||||
nextdir = data.nextdir
|
||||
export default {
|
||||
name: 'Data editor',
|
||||
getApp: GetApp,
|
||||
setup: (data: SetupData): void => {
|
||||
userDB = data.userDB
|
||||
publicdirs = data.publicdirs
|
||||
nextdir = data.nextdir
|
||||
},
|
||||
}
|
||||
|
|
|
@ -19,19 +19,21 @@
|
|||
------------------------------------------------------------------------- */
|
||||
|
||||
// package requires
|
||||
const express = require('express')
|
||||
const bodyParser = require('body-parser')
|
||||
const busboy = require('connect-busboy')
|
||||
import express from 'express'
|
||||
import bodyParser from 'body-parser'
|
||||
import busboy from 'connect-busboy'
|
||||
const app = express()
|
||||
|
||||
// other requires
|
||||
const logger = require('../../utils/logger.js')
|
||||
import logger from '../../utils/logger'
|
||||
import { SetupData } from '../../server'
|
||||
import { ModuleType } from '../../types/basicTypes'
|
||||
|
||||
// stuff gotten from server.js
|
||||
let publicdirs = []
|
||||
let url = '' // http(s)//asd.basd
|
||||
|
||||
function GetApp() {
|
||||
function GetApp(): ModuleType {
|
||||
app.set('view engine', 'ejs')
|
||||
app.set('views', ['./src/modules/main/views', './src/sharedViews'])
|
||||
publicdirs.forEach((pdir) => {
|
||||
|
@ -79,9 +81,11 @@ function GetApp() {
|
|||
}
|
||||
}
|
||||
|
||||
exports.name = 'Main'
|
||||
exports.getApp = GetApp
|
||||
exports.setup = (data) => {
|
||||
url = data.url
|
||||
publicdirs = data.publicdirs
|
||||
export default {
|
||||
name: 'Main',
|
||||
getApp: GetApp,
|
||||
setup: (data: SetupData): void => {
|
||||
url = data.url
|
||||
publicdirs = data.publicdirs
|
||||
},
|
||||
}
|
||||
|
|
|
@ -1,338 +0,0 @@
|
|||
/* ----------------------------------------------------------------------------
|
||||
|
||||
Question Server
|
||||
GitLab: <https://gitlab.com/MrFry/mrfrys-node-server>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
const express = require('express')
|
||||
const bodyParser = require('body-parser')
|
||||
const busboy = require('connect-busboy')
|
||||
const cookieParser = require('cookie-parser')
|
||||
const fs = require('fs')
|
||||
const app = express()
|
||||
let url = ''
|
||||
|
||||
const logger = require('../../utils/logger.js')
|
||||
const utils = require('../../utils/utils.js')
|
||||
// const actions = require('../utils/actions.js')
|
||||
|
||||
const listedFiles = './vids/p'
|
||||
const userDataDirectory = './data/vidsData'
|
||||
const passwordFile = 'data/vidsPasswords.json'
|
||||
|
||||
if (!utils.FileExists(userDataDirectory)) {
|
||||
utils.CreatePath(userDataDirectory, true)
|
||||
}
|
||||
|
||||
function GetApp() {
|
||||
app.set('view engine', 'ejs')
|
||||
app.set('views', ['./src/modules/pornvids/views', './sharedViews'])
|
||||
app.use(express.static('p'))
|
||||
app.use(
|
||||
busboy({
|
||||
limits: {
|
||||
fileSize: 10000 * 1024 * 1024,
|
||||
},
|
||||
})
|
||||
)
|
||||
app.use(bodyParser.json())
|
||||
app.use(
|
||||
bodyParser.urlencoded({
|
||||
limit: '5mb',
|
||||
extended: true,
|
||||
})
|
||||
)
|
||||
app.use(
|
||||
bodyParser.json({
|
||||
limit: '5mb',
|
||||
})
|
||||
)
|
||||
app.use(cookieParser())
|
||||
|
||||
// --------------------------------------------------------------
|
||||
|
||||
app.get('/login', (req, res) => {
|
||||
logger.LogReq(req)
|
||||
// FIXME: redirect to original url
|
||||
res.cookie('pw', req.query.pw).redirect('/')
|
||||
})
|
||||
|
||||
app.get('/logout', (req, res) => {
|
||||
logger.LogReq(req)
|
||||
// FIXME: redirect to original url
|
||||
res.clearCookie('pw').redirect('/')
|
||||
})
|
||||
|
||||
// app, '/*.mp4', 'video/mp4', 'stuff/video'
|
||||
function appGetFileType(app, wildcard, contentType, pageToRender) {
|
||||
app.get(wildcard, function(req, res) {
|
||||
const user = GetUserByPW(GetPw(req))
|
||||
if (!user) {
|
||||
logger.Log('Vids user: No user', logger.GetColor('blue'))
|
||||
res.render('login')
|
||||
return
|
||||
}
|
||||
|
||||
let p = decodeURI(req.url)
|
||||
let fp = p
|
||||
if (p.includes('?')) {
|
||||
fp = p.split('?')
|
||||
fp.pop()
|
||||
fp = fp.join('/')
|
||||
}
|
||||
const fpath = listedFiles + fp
|
||||
if (!fs.existsSync(fpath)) {
|
||||
res.render('nofile', {
|
||||
missingFile: fpath,
|
||||
url,
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
if (req.query.stream || !pageToRender) {
|
||||
const stat = fs.statSync(fpath)
|
||||
const fileSize = stat.size
|
||||
const range = req.headers.range
|
||||
if (range) {
|
||||
const parts = range.replace(/bytes=/, '').split('-')
|
||||
const start = parseInt(parts[0], 10)
|
||||
const end = parts[1] ? parseInt(parts[1], 10) : fileSize - 1
|
||||
const chunksize = end - start + 1
|
||||
const file = fs.createReadStream(fpath, { start, end })
|
||||
const head = {
|
||||
'Content-Range': `bytes ${start}-${end}/${fileSize}`,
|
||||
'Accept-Ranges': 'bytes',
|
||||
'Content-Length': chunksize,
|
||||
'Content-Type': contentType,
|
||||
}
|
||||
res.writeHead(206, head)
|
||||
file.pipe(res)
|
||||
} else {
|
||||
const head = {
|
||||
'Content-Length': fileSize,
|
||||
'Content-Type': contentType,
|
||||
}
|
||||
res.writeHead(200, head)
|
||||
fs.createReadStream(fpath).pipe(res)
|
||||
}
|
||||
} else {
|
||||
logger.LogReq(req)
|
||||
logger.Log(`Vids user: ${user.name}`, logger.GetColor('blue'))
|
||||
AppendWatchedFileToUser(user, fp)
|
||||
|
||||
let fname = fpath.split('/')
|
||||
fname = fname.pop()
|
||||
res.render(pageToRender, {
|
||||
path: fp,
|
||||
fname,
|
||||
url,
|
||||
contentType,
|
||||
albumArt: GetAlbumArt(p),
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
function WriteUserData(user, uData) {
|
||||
const dataLoc = userDataDirectory + '/' + user.name + '.json'
|
||||
utils.WriteFile(JSON.stringify(uData), dataLoc)
|
||||
}
|
||||
|
||||
function GetUserData(user) {
|
||||
try {
|
||||
const dataLoc = userDataDirectory + '/' + user.name + '.json'
|
||||
let uData = utils.ReadFile(dataLoc)
|
||||
uData = JSON.parse(uData)
|
||||
|
||||
return uData
|
||||
} catch (e) {
|
||||
return {}
|
||||
}
|
||||
}
|
||||
|
||||
function AppendWatchedFileToUser(user, file) {
|
||||
const uData = GetUserData(user)
|
||||
|
||||
if (uData) {
|
||||
if (Array.isArray(uData.watched)) {
|
||||
if (!uData.watched.includes(file)) {
|
||||
uData.watched.push(file)
|
||||
}
|
||||
} else {
|
||||
uData.watched = [file]
|
||||
}
|
||||
|
||||
WriteUserData(user, uData)
|
||||
} else {
|
||||
logger.Log(
|
||||
'Error appending to user data, no user data found',
|
||||
logger.GetColor('redbg')
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
const fileTypes = [
|
||||
['/*.mp4', 'video/mp4', 'video'],
|
||||
['/*.mkv', 'audio/x-matroska', 'video'],
|
||||
['/*.mp3', 'audio/mpeg', 'audio'],
|
||||
['/*.pdf', 'application/pdf'],
|
||||
['/*.zip', 'application/zip'],
|
||||
]
|
||||
|
||||
function GetAlbumArt(path) {
|
||||
let tmp = path.split('.')
|
||||
tmp.pop()
|
||||
tmp = tmp.join('.').split('/')
|
||||
let last = tmp.pop()
|
||||
|
||||
return tmp.join('/') + '/.' + last + '.png'
|
||||
}
|
||||
|
||||
fileTypes.forEach((t) => {
|
||||
appGetFileType(app, t[0], t[1], t[2])
|
||||
})
|
||||
|
||||
app.get('/*', function(req, res) {
|
||||
logger.LogReq(req)
|
||||
|
||||
const user = GetUserByPW(GetPw(req))
|
||||
let uData = {}
|
||||
if (!user) {
|
||||
logger.Log('Vids user: No user', logger.GetColor('blue'))
|
||||
res.render('login')
|
||||
return
|
||||
} else {
|
||||
logger.Log(`Vids user: ${user.name}`, logger.GetColor('blue'))
|
||||
uData = GetUserData(user)
|
||||
}
|
||||
|
||||
let parsedUrl = decodeURI(req.url)
|
||||
let curr =
|
||||
listedFiles +
|
||||
'/' +
|
||||
parsedUrl.substring('/'.length, parsedUrl.length).split('?')[0]
|
||||
let relPath = curr.substring(listedFiles.length, curr.length)
|
||||
|
||||
if (relPath[relPath.length - 1] !== '/') {
|
||||
relPath += '/'
|
||||
}
|
||||
|
||||
let t = relPath.split('/')
|
||||
let prevDir = ''
|
||||
for (let i = 0; i < t.length - 2; i++) {
|
||||
prevDir += t[i] + '/'
|
||||
}
|
||||
|
||||
// curr = curr.replace(/\//g, "/");
|
||||
// relPath = relPath.replace(/\//g, "/");
|
||||
|
||||
try {
|
||||
const stat = fs.lstatSync(curr)
|
||||
if (stat.isDirectory() || stat.isSymbolicLink()) {
|
||||
if (curr[curr.length - 1] !== '/') {
|
||||
curr += '/'
|
||||
}
|
||||
|
||||
let f = []
|
||||
|
||||
fs.readdirSync(curr).forEach((item) => {
|
||||
if (item[0] !== '.') {
|
||||
let res = { name: item }
|
||||
let stat = fs.statSync(curr + '/' + item)
|
||||
|
||||
let fileSizeInBytes = stat['size']
|
||||
res.size = Math.round(fileSizeInBytes / 1000000)
|
||||
|
||||
res.path = relPath
|
||||
if (res.path[res.path.length - 1] !== '/') {
|
||||
res.path += '/'
|
||||
}
|
||||
res.path += item
|
||||
|
||||
res.mtime = stat['mtime'].toLocaleString()
|
||||
res.isDir = stat.isDirectory()
|
||||
|
||||
if (uData && Array.isArray(uData.watched)) {
|
||||
res.watched = uData.watched.includes(res.path)
|
||||
} else {
|
||||
res.watched = false
|
||||
}
|
||||
|
||||
f.push(res)
|
||||
}
|
||||
})
|
||||
|
||||
res.render('folders', {
|
||||
folders: f,
|
||||
user: user,
|
||||
dirname: relPath,
|
||||
prevDir,
|
||||
url,
|
||||
})
|
||||
} else {
|
||||
let watchedFile = relPath
|
||||
if (watchedFile.charAt(watchedFile.length - 1) === '/') {
|
||||
watchedFile = watchedFile.substr(0, watchedFile.length - 1)
|
||||
}
|
||||
AppendWatchedFileToUser(user, watchedFile)
|
||||
|
||||
let fileStream = fs.createReadStream(curr)
|
||||
fileStream.pipe(res)
|
||||
}
|
||||
} catch (e) {
|
||||
res.render('nofile', {
|
||||
missingFile: curr,
|
||||
url,
|
||||
})
|
||||
}
|
||||
})
|
||||
|
||||
function GetPw(req) {
|
||||
return req.cookies.pw
|
||||
}
|
||||
|
||||
function GetUserByPW(password) {
|
||||
const pwds = JSON.parse(utils.ReadFile(passwordFile))
|
||||
let user = Object.keys(pwds).find((key) => {
|
||||
const u = pwds[key]
|
||||
return u.password === password
|
||||
})
|
||||
user = pwds[user]
|
||||
|
||||
return user
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------------------
|
||||
|
||||
app.get('*', function(req, res) {
|
||||
res.status(404).render('404')
|
||||
})
|
||||
|
||||
app.post('*', function(req, res) {
|
||||
res.status(404).render('404')
|
||||
})
|
||||
|
||||
return {
|
||||
app: app,
|
||||
}
|
||||
}
|
||||
|
||||
exports.name = 'Porn vids'
|
||||
exports.getApp = GetApp
|
||||
exports.setup = (data) => {
|
||||
url = data.url
|
||||
}
|
|
@ -1,39 +0,0 @@
|
|||
|
||||
<html>
|
||||
|
||||
<body bgcolor="#212127">
|
||||
|
||||
<head>
|
||||
<title><%= fname %></title>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=0.6" />
|
||||
<style>
|
||||
body {
|
||||
font: normal 14px Verdana;
|
||||
color: #999999;
|
||||
}
|
||||
video {
|
||||
width: 100%
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<center>
|
||||
<h2>
|
||||
<%= fname %>
|
||||
</h2>
|
||||
<img
|
||||
id="coverArt"
|
||||
style="width:auto; max-height: 100%;"
|
||||
src="<%= url + albumArt %>"
|
||||
alt=' '
|
||||
/>
|
||||
<audio id="audioPlayer" controls style="width:100%">
|
||||
<source src="<%= url %><%= path %>?stream=true" type=<%= contentType %>>
|
||||
</audio>
|
||||
</center>
|
||||
</body>
|
||||
<script>
|
||||
console.log('a')
|
||||
document.getElementById('coverArt').style.height = window.innerHeight - 140
|
||||
</script>
|
||||
</html>
|
|
@ -1,144 +0,0 @@
|
|||
<html>
|
||||
|
||||
<body bgcolor="#ffeeee">
|
||||
|
||||
<head>
|
||||
<title><%=dirname%></title>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=0.6" />
|
||||
<style>
|
||||
body {
|
||||
font: normal 14px Verdana;
|
||||
}
|
||||
|
||||
td {
|
||||
vertical-align: top;
|
||||
word-wrap: break-word;
|
||||
word-break: break-all;
|
||||
table-layout: fixed;
|
||||
padding: 0;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #0000ff;
|
||||
}
|
||||
.subtable {
|
||||
border-collapse: collapse;
|
||||
table-layout:fixed;
|
||||
width:100%
|
||||
}
|
||||
.maintable {
|
||||
border-collapse: collapse;
|
||||
table-layout:fixed;
|
||||
width:100%;
|
||||
padding:0; margin:0;
|
||||
border: none !important;
|
||||
}
|
||||
tr {
|
||||
width:32%;
|
||||
}
|
||||
.butt td {
|
||||
font: normal 24px Verdana;
|
||||
font-weight: bold;
|
||||
}
|
||||
.watched {
|
||||
color: #999999;
|
||||
}
|
||||
.butt {
|
||||
cursor: pointer;
|
||||
width: 100%;
|
||||
border: none;
|
||||
text-align: left;
|
||||
}
|
||||
.rainbow {
|
||||
background: linear-gradient( 92deg, #ff0000, #00ffff);
|
||||
background: -webkit-linear-gradient( 92deg, #ff0000, #00ffff);
|
||||
background-size:600vw 600vw;
|
||||
|
||||
-webkit-background-clip: text;
|
||||
-webkit-text-fill-color: transparent;
|
||||
animation: textAnimate 4s linear infinite alternate;
|
||||
}
|
||||
|
||||
@keyframes textAnimate {
|
||||
from {
|
||||
filter: hue-rotate(0deg);
|
||||
background-position-x: 0%;
|
||||
|
||||
}
|
||||
to {
|
||||
filter: hue-rotate(360deg);
|
||||
background-position-x: 600vw;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
</style>
|
||||
</head>
|
||||
<center>
|
||||
<h1 class="rainbow">
|
||||
<div>
|
||||
Hi <%= user.name %> c:
|
||||
</div>
|
||||
<div>
|
||||
gyerekkori videók <%=dirname%>
|
||||
</div>
|
||||
</h1>
|
||||
</center>
|
||||
<h2>
|
||||
<a href="<%= url + prevDir%>" >Back</a>
|
||||
</h2>
|
||||
</p>
|
||||
|
||||
<table class="maintable">
|
||||
<% for (var i = 0; i < folders.length; i++) { %>
|
||||
<tr>
|
||||
<td>
|
||||
<a
|
||||
href="<%= url + folders[i].path %>"
|
||||
style="font-size: 0px"
|
||||
>
|
||||
<button
|
||||
class="butt"
|
||||
onmouseenter='mouseEnter(this, <%= i %>)'
|
||||
onmouseleave='mouseLeave(this, <%= i %>)'
|
||||
>
|
||||
<table class="subtable <%= folders[i].watched ? 'watched' : '' %>">
|
||||
<tr height="62">
|
||||
<td style='width:85%;'>
|
||||
<%=folders[i].name %>
|
||||
</td>
|
||||
<td style='width:15%;'>
|
||||
<%
|
||||
if (folders[i].isDir) {
|
||||
%> <%= "Mappa" %> <%
|
||||
} else {
|
||||
if (folders[i].size === 0) {
|
||||
%> <%= "~0 MB" %> <%
|
||||
} else {
|
||||
%> <%= folders[i].size + ' MB' %> <%
|
||||
}
|
||||
}
|
||||
%>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</button>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
<% } %>
|
||||
</table>
|
||||
<a href='/logout'>logout</a>
|
||||
</body>
|
||||
<script>
|
||||
console.log('hi')
|
||||
function mouseEnter (e, i) {
|
||||
e.className += ' rainbow'
|
||||
}
|
||||
function mouseLeave (e, i) {
|
||||
e.className = e.className.replace(/ rainbow/g, '')
|
||||
}
|
||||
</script>
|
||||
</html>
|
|
@ -1,63 +0,0 @@
|
|||
<html>
|
||||
<body bgcolor="#212127">
|
||||
<head>
|
||||
<title>login</title>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=0.6" />
|
||||
<style>
|
||||
video {
|
||||
width: 100%
|
||||
}
|
||||
.rainbow {
|
||||
background: linear-gradient( 92deg, #ff0000, #00ffff);
|
||||
background: -webkit-linear-gradient( 92deg, #ff0000, #00ffff);
|
||||
background-size:600vw 600vw;
|
||||
|
||||
-webkit-background-clip: text;
|
||||
-webkit-text-fill-color: transparent;
|
||||
animation: textAnimate 4s linear infinite alternate;
|
||||
}
|
||||
|
||||
@keyframes textAnimate {
|
||||
from {
|
||||
filter: hue-rotate(0deg);
|
||||
background-position-x: 0%;
|
||||
|
||||
}
|
||||
to {
|
||||
filter: hue-rotate(360deg);
|
||||
background-position-x: 600vw;
|
||||
|
||||
}
|
||||
}
|
||||
.text {
|
||||
color: white;
|
||||
}
|
||||
.title {
|
||||
font: normal 28px Verdana;
|
||||
font-weight: bold;
|
||||
color: white;
|
||||
}
|
||||
|
||||
</style>
|
||||
</head>
|
||||
<center>
|
||||
<h2 class='title'>
|
||||
Login to Porn Vids
|
||||
</h2>
|
||||
<div class='text'>
|
||||
Jelszó:
|
||||
</div>
|
||||
<input type='text' id='pw' />
|
||||
<button onclick='login()'>
|
||||
Login
|
||||
</button>
|
||||
</center>
|
||||
</body>
|
||||
<script>
|
||||
function login () {
|
||||
const pw = document.getElementById('pw').value
|
||||
location.href = '/login/?pw=' + pw
|
||||
}
|
||||
</script>
|
||||
</html>
|
|
@ -1,94 +0,0 @@
|
|||
<html>
|
||||
|
||||
<body bgcolor="#212127">
|
||||
|
||||
<head>
|
||||
<title>No such file/folder</title>
|
||||
<meta charset="UTF-8">
|
||||
<style>
|
||||
body {
|
||||
font: normal 14px Verdana;
|
||||
color: #999999;
|
||||
}
|
||||
|
||||
td {
|
||||
vertical-align: top
|
||||
}
|
||||
|
||||
textarea {
|
||||
font: normal 14px Verdana;
|
||||
color: #999999;
|
||||
background-color: #212127;
|
||||
width: 100%;
|
||||
height: 700;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #9999ff;
|
||||
}
|
||||
.subtable {
|
||||
border-collapse: collapse;
|
||||
table-layout:fixed;
|
||||
width:100%
|
||||
}
|
||||
.maintable {
|
||||
border-collapse: collapse;
|
||||
table-layout:fixed;
|
||||
width:100%
|
||||
padding:0; margin:0;
|
||||
border: none !important;
|
||||
}
|
||||
tr {
|
||||
line-height: 29px;
|
||||
width:32%;
|
||||
}
|
||||
.butt {
|
||||
background-color: #212127;
|
||||
color: #999999;
|
||||
cursor: pointer;
|
||||
width: 100%;
|
||||
border: none;
|
||||
text-align: left;
|
||||
outline: none;
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
.active,
|
||||
.butt:hover {
|
||||
background-color: #555;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<center>
|
||||
<h1>
|
||||
No such file / folder:
|
||||
</br>
|
||||
<%= missingFile %>
|
||||
</br>
|
||||
<a href="<%= url %>" > Back to root </a>
|
||||
</br>
|
||||
<a
|
||||
onclick='goBack("<%=missingFile%>")'
|
||||
href="#"
|
||||
>
|
||||
Go back
|
||||
</a>
|
||||
</h1>
|
||||
</center>
|
||||
</body>
|
||||
<script>
|
||||
function goBack(path) {
|
||||
path = path.replace('./public/files', '')
|
||||
if (path[path.length - 1] == '/') {
|
||||
path = path.substring(0, path.length -2)
|
||||
}
|
||||
let p = path.split('/')
|
||||
p.pop()
|
||||
if (p.length > 1) {
|
||||
location.href = p.join('/')
|
||||
} else {
|
||||
location.href = '/'
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</html>
|
|
@ -1,57 +0,0 @@
|
|||
<html>
|
||||
|
||||
<body bgcolor="#ffeeee">
|
||||
|
||||
<head>
|
||||
<title><%= fname %></title>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=0.6" />
|
||||
<style>
|
||||
video {
|
||||
width: 100%
|
||||
}
|
||||
.rainbow {
|
||||
background: linear-gradient( 92deg, #ff0000, #00ffff);
|
||||
background: -webkit-linear-gradient( 92deg, #ff0000, #00ffff);
|
||||
background-size:600vw 600vw;
|
||||
|
||||
-webkit-background-clip: text;
|
||||
-webkit-text-fill-color: transparent;
|
||||
animation: textAnimate 4s linear infinite alternate;
|
||||
}
|
||||
|
||||
@keyframes textAnimate {
|
||||
from {
|
||||
filter: hue-rotate(0deg);
|
||||
background-position-x: 0%;
|
||||
|
||||
}
|
||||
to {
|
||||
filter: hue-rotate(360deg);
|
||||
background-position-x: 600vw;
|
||||
|
||||
}
|
||||
}
|
||||
.title {
|
||||
font: normal 28px Verdana;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
</style>
|
||||
</head>
|
||||
<center>
|
||||
<h2 class='rainbow title'>
|
||||
<%= fname %>
|
||||
</h2>
|
||||
</center>
|
||||
<video id="videoPlayer" controls>
|
||||
<source src="<%= url %><%= path %>?stream=true" type="video/mp4">
|
||||
</video>
|
||||
</body>
|
||||
<script>
|
||||
var v = document.getElementsByTagName('video')[0]
|
||||
v.style.maxHeight = window.innerHeight - 100
|
||||
v.maxWidth = window.innerWidth
|
||||
console.log('a')
|
||||
</script>
|
||||
</html>
|
|
@ -19,23 +19,24 @@
|
|||
------------------------------------------------------------------------- */
|
||||
|
||||
// package requires
|
||||
const express = require('express')
|
||||
const bodyParser = require('body-parser')
|
||||
const busboy = require('connect-busboy')
|
||||
const url = require('url')
|
||||
import express from 'express'
|
||||
import bodyParser from 'body-parser'
|
||||
import busboy from 'connect-busboy'
|
||||
const app = express()
|
||||
|
||||
// other requires
|
||||
const utils = require('../../utils/utils.js')
|
||||
const logger = require('../../utils/logger.js')
|
||||
const auth = require('../../middlewares/auth.middleware.js')
|
||||
import utils from '../../utils/utils'
|
||||
import logger from '../../utils/logger'
|
||||
import auth from '../../middlewares/auth.middleware'
|
||||
import { SetupData } from '../../server'
|
||||
import { ModuleType } from '../../types/basicTypes'
|
||||
|
||||
// stuff gotten from server.js
|
||||
let publicdirs = []
|
||||
let userDB
|
||||
let nextdir = ''
|
||||
|
||||
function GetApp() {
|
||||
function GetApp(): ModuleType {
|
||||
app.use(
|
||||
bodyParser.urlencoded({
|
||||
limit: '5mb',
|
||||
|
@ -180,7 +181,7 @@ function GetApp() {
|
|||
|
||||
let target = redirect.to
|
||||
if (!redirect.to.includes('?')) {
|
||||
target += url.format({ query: req.query })
|
||||
target += utils.formatUrl({ query: req.query })
|
||||
}
|
||||
|
||||
res.redirect(target)
|
||||
|
@ -200,10 +201,10 @@ function GetApp() {
|
|||
|
||||
routes.forEach((route) => {
|
||||
logger.DebugLog(`Added route /${route}`, 'Qmining routes', 1)
|
||||
app.get(`/${route}`, function(req, res) {
|
||||
app.get(`/${route}`, function(req: express.Request, res) {
|
||||
logger.LogReq(req)
|
||||
res.redirect(
|
||||
url.format({
|
||||
utils.formatUrl({
|
||||
pathname: `${route}.html`,
|
||||
query: req.query,
|
||||
})
|
||||
|
@ -241,10 +242,12 @@ function GetApp() {
|
|||
}
|
||||
}
|
||||
|
||||
exports.name = 'Qmining'
|
||||
exports.getApp = GetApp
|
||||
exports.setup = (data) => {
|
||||
userDB = data.userDB
|
||||
publicdirs = data.publicdirs
|
||||
nextdir = data.nextdir
|
||||
export default {
|
||||
name: 'Qmining',
|
||||
getApp: GetApp,
|
||||
setup: (data: SetupData): void => {
|
||||
userDB = data.userDB
|
||||
publicdirs = data.publicdirs
|
||||
nextdir = data.nextdir
|
||||
},
|
||||
}
|
||||
|
|
|
@ -19,27 +19,29 @@
|
|||
------------------------------------------------------------------------- */
|
||||
|
||||
// package requires
|
||||
const express = require('express')
|
||||
const bodyParser = require('body-parser')
|
||||
const busboy = require('connect-busboy')
|
||||
const fs = require('fs')
|
||||
import express from 'express'
|
||||
import bodyParser from 'body-parser'
|
||||
import busboy from 'connect-busboy'
|
||||
import fs from 'fs'
|
||||
const app = express()
|
||||
|
||||
// other requires
|
||||
const logger = require('../../utils/logger.js')
|
||||
const utils = require('../../utils/utils.js')
|
||||
import logger from '../../utils/logger'
|
||||
import utils from '../../utils/utils'
|
||||
import { SetupData } from '../../server'
|
||||
import { ModuleType } from '../../types/basicTypes'
|
||||
|
||||
// stuff gotten from server.js
|
||||
let publicdirs = []
|
||||
|
||||
function GetApp() {
|
||||
const p = publicdirs[0]
|
||||
if (!p) {
|
||||
function GetApp(): ModuleType {
|
||||
const publicdir = publicdirs[0]
|
||||
if (!publicdir) {
|
||||
throw new Error(`No public dir! ( SIO )`)
|
||||
}
|
||||
|
||||
// files in public dirs
|
||||
const uloadFiles = p + 'f'
|
||||
const uloadFiles = publicdir + 'f'
|
||||
|
||||
app.set('view engine', 'ejs')
|
||||
app.set('views', ['./src/modules/sio/views', './src/sharedViews'])
|
||||
|
@ -75,23 +77,22 @@ function GetApp() {
|
|||
})
|
||||
|
||||
function UploadFile(req, res, path, next) {
|
||||
var fstream
|
||||
req.pipe(req.busboy)
|
||||
req.busboy.on('file', function(fieldname, file, filename) {
|
||||
logger.Log('Uploading: ' + filename, logger.GetColor('blue'))
|
||||
|
||||
utils.CreatePath(path, true)
|
||||
let d = new Date()
|
||||
let fn =
|
||||
d.getHours() +
|
||||
const date = new Date()
|
||||
const fn =
|
||||
date.getHours() +
|
||||
'' +
|
||||
d.getMinutes() +
|
||||
date.getMinutes() +
|
||||
'' +
|
||||
d.getSeconds() +
|
||||
date.getSeconds() +
|
||||
'_' +
|
||||
filename
|
||||
|
||||
fstream = fs.createWriteStream(path + '/' + fn)
|
||||
const fstream = fs.createWriteStream(path + '/' + fn)
|
||||
file.pipe(fstream)
|
||||
fstream.on('close', function() {
|
||||
logger.Log(
|
||||
|
@ -107,7 +108,7 @@ function GetApp() {
|
|||
})
|
||||
}
|
||||
|
||||
app.route('/fosuploader').post(function(req, res, next) {
|
||||
app.route('/fosuploader').post(function(req, res) {
|
||||
UploadFile(req, res, uloadFiles, (fn) => {
|
||||
res.redirect('/f/' + fn)
|
||||
})
|
||||
|
@ -125,8 +126,10 @@ function GetApp() {
|
|||
}
|
||||
}
|
||||
|
||||
exports.name = 'Sio'
|
||||
exports.getApp = GetApp
|
||||
exports.setup = (data) => {
|
||||
publicdirs = data.publicdirs
|
||||
export default {
|
||||
name: 'Sio',
|
||||
getApp: GetApp,
|
||||
setup: (data: SetupData): void => {
|
||||
publicdirs = data.publicdirs
|
||||
},
|
||||
}
|
||||
|
|
|
@ -19,27 +19,29 @@
|
|||
------------------------------------------------------------------------- */
|
||||
|
||||
// package requires
|
||||
const express = require('express')
|
||||
const bodyParser = require('body-parser')
|
||||
const busboy = require('connect-busboy')
|
||||
const fs = require('fs')
|
||||
import express from 'express'
|
||||
import bodyParser from 'body-parser'
|
||||
import busboy from 'connect-busboy'
|
||||
import fs from 'fs'
|
||||
const app = express()
|
||||
|
||||
// other requires
|
||||
const logger = require('../../utils/logger.js')
|
||||
import logger from '../../utils/logger'
|
||||
import { SetupData } from '../../server'
|
||||
import { ModuleType } from '../../types/basicTypes'
|
||||
|
||||
// stuff gotten from server.js
|
||||
let publicdirs = []
|
||||
let url = ''
|
||||
|
||||
function GetApp() {
|
||||
const p = publicdirs[0]
|
||||
if (!p) {
|
||||
function GetApp(): ModuleType {
|
||||
const publicDir = publicdirs[0]
|
||||
if (!publicDir) {
|
||||
throw new Error(`No public dir! ( Stuff )`)
|
||||
}
|
||||
|
||||
// files in public dirs
|
||||
const listedFiles = './' + p + 'files'
|
||||
const listedFiles = './' + publicDir + 'files'
|
||||
|
||||
app.set('view engine', 'ejs')
|
||||
app.set('views', ['./src/modules/stuff/views', './src/sharedViews'])
|
||||
|
@ -72,10 +74,10 @@ function GetApp() {
|
|||
// app, '/*.mp4', 'video/mp4', 'stuff/video'
|
||||
function appGetFileType(app, wildcard, contentType, pageToRender) {
|
||||
app.get(wildcard, function(req, res) {
|
||||
let p = decodeURI(req.url)
|
||||
let fp = p
|
||||
if (p.includes('?')) {
|
||||
fp = p.split('?')
|
||||
const path = decodeURI(req.url)
|
||||
let fp: any = path
|
||||
if (path.includes('?')) {
|
||||
fp = path.split('?')
|
||||
fp.pop()
|
||||
fp = fp.join('/')
|
||||
}
|
||||
|
@ -115,14 +117,13 @@ function GetApp() {
|
|||
}
|
||||
} else {
|
||||
logger.LogReq(req)
|
||||
let fname = fpath.split('/')
|
||||
fname = fname.pop()
|
||||
const fname = fpath.split('/').pop()
|
||||
res.render(pageToRender, {
|
||||
path: fp,
|
||||
fname,
|
||||
url,
|
||||
contentType,
|
||||
albumArt: GetAlbumArt(p),
|
||||
albumArt: GetAlbumArt(path),
|
||||
})
|
||||
}
|
||||
})
|
||||
|
@ -140,7 +141,7 @@ function GetApp() {
|
|||
let tmp = path.split('.')
|
||||
tmp.pop()
|
||||
tmp = tmp.join('.').split('/')
|
||||
let last = tmp.pop()
|
||||
const last = tmp.pop()
|
||||
|
||||
return tmp.join('/') + '/.' + last + '.png'
|
||||
}
|
||||
|
@ -150,7 +151,7 @@ function GetApp() {
|
|||
})
|
||||
|
||||
app.get('/*', function(req, res) {
|
||||
let parsedUrl = decodeURI(req.url)
|
||||
const parsedUrl = decodeURI(req.url)
|
||||
let curr =
|
||||
listedFiles +
|
||||
'/' +
|
||||
|
@ -161,10 +162,10 @@ function GetApp() {
|
|||
relPath += '/'
|
||||
}
|
||||
|
||||
let t = relPath.split('/')
|
||||
const temp = relPath.split('/')
|
||||
let prevDir = ''
|
||||
for (let i = 0; i < t.length - 2; i++) {
|
||||
prevDir += t[i] + '/'
|
||||
for (let i = 0; i < temp.length - 2; i++) {
|
||||
prevDir += temp[i] + '/'
|
||||
}
|
||||
|
||||
// curr = curr.replace(/\//g, "/");
|
||||
|
@ -179,9 +180,9 @@ function GetApp() {
|
|||
curr += '/'
|
||||
}
|
||||
|
||||
let f = []
|
||||
const folders = []
|
||||
|
||||
let files = fs.readdirSync(curr)
|
||||
const files = fs.readdirSync(curr)
|
||||
files.sort(function(a, b) {
|
||||
return (
|
||||
fs.statSync(curr + b).mtime.getTime() -
|
||||
|
@ -191,10 +192,9 @@ function GetApp() {
|
|||
|
||||
files.forEach((item) => {
|
||||
if (item[0] !== '.') {
|
||||
let res = { name: item }
|
||||
let stat = fs.statSync(curr + '/' + item)
|
||||
|
||||
let fileSizeInBytes = stat['size']
|
||||
const res: any = { name: item }
|
||||
const stat = fs.statSync(curr + '/' + item)
|
||||
const fileSizeInBytes = stat['size']
|
||||
res.size = Math.round(fileSizeInBytes / 1000000)
|
||||
|
||||
res.path = relPath
|
||||
|
@ -206,21 +206,21 @@ function GetApp() {
|
|||
res.mtime = stat['mtime'].toLocaleString()
|
||||
res.isDir = stat.isDirectory()
|
||||
|
||||
f.push(res)
|
||||
folders.push(res)
|
||||
}
|
||||
})
|
||||
|
||||
res.render('folders', {
|
||||
folders: f,
|
||||
folders: folders,
|
||||
dirname: relPath,
|
||||
prevDir,
|
||||
url,
|
||||
})
|
||||
} else {
|
||||
let fileStream = fs.createReadStream(curr)
|
||||
const fileStream = fs.createReadStream(curr)
|
||||
fileStream.pipe(res)
|
||||
}
|
||||
} catch (e) {
|
||||
} catch (err) {
|
||||
res.render('nofile', {
|
||||
missingFile: curr,
|
||||
url,
|
||||
|
@ -243,9 +243,11 @@ function GetApp() {
|
|||
}
|
||||
}
|
||||
|
||||
exports.name = 'Stuff'
|
||||
exports.getApp = GetApp
|
||||
exports.setup = (data) => {
|
||||
url = data.url
|
||||
publicdirs = data.publicdirs
|
||||
export default {
|
||||
name: 'Stuff',
|
||||
getApp: GetApp,
|
||||
setup: (data: SetupData): void => {
|
||||
url = data.url
|
||||
publicdirs = data.publicdirs
|
||||
},
|
||||
}
|
||||
|
|
|
@ -28,21 +28,21 @@ const port = isRoot ? 80 : 8080
|
|||
const httpsport = isRoot ? 443 : 5001
|
||||
|
||||
import express from 'express'
|
||||
import logger from './utils/logger.js'
|
||||
import vhost from 'vhost'
|
||||
import utils from './utils/utils.js'
|
||||
import http from 'http'
|
||||
import https from 'https'
|
||||
import cors from 'cors'
|
||||
import cookieParser from 'cookie-parser'
|
||||
import { uuidv4 } from 'uuid'
|
||||
import { v4 as uuidv4 } from 'uuid'
|
||||
|
||||
import dbtools from './utils/dbtools.js'
|
||||
import reqlogger from './middlewares/reqlogger.middleware.js'
|
||||
import extraModulesFile from rc / extraModules.json
|
||||
import modulesFile from rc / modules.json
|
||||
import usersDBPath from ata / dbs / users.db
|
||||
import idStats from './utils/ids.js'
|
||||
import logger from './utils/logger'
|
||||
import utils from './utils/utils'
|
||||
import dbtools from './utils/dbtools'
|
||||
import reqlogger from './middlewares/reqlogger.middleware'
|
||||
import idStats from './utils/ids'
|
||||
const extraModulesFile = './src/extraModules.json'
|
||||
const modulesFile = './src/modules.json'
|
||||
const usersDBPath = './data/dbs/users.db'
|
||||
idStats.Load()
|
||||
logger.Load()
|
||||
|
||||
|
@ -57,6 +57,16 @@ interface Module {
|
|||
urls: Array<string>
|
||||
nextdir?: string
|
||||
isNextJs?: boolean
|
||||
app: express.Application
|
||||
dailyAction: Function
|
||||
cleanup: Function
|
||||
}
|
||||
|
||||
export interface SetupData {
|
||||
url: string
|
||||
publicdirs: Array<string>
|
||||
userDB?: any
|
||||
nextdir?: string
|
||||
}
|
||||
|
||||
if (!utils.FileExists(usersDBPath)) {
|
||||
|
@ -150,7 +160,7 @@ app.use(
|
|||
Object.keys(modules).forEach(function(key) {
|
||||
const module = modules[key]
|
||||
try {
|
||||
import mod from module.path
|
||||
const mod = require(module.path).default // eslint-disable-line
|
||||
// const mod = require(module.path)
|
||||
logger.Log(`Loading ${mod.name} module`, logger.GetColor('yellow'))
|
||||
|
||||
|
@ -171,7 +181,6 @@ Object.keys(modules).forEach(function(key) {
|
|||
module.app = modApp.app
|
||||
module.dailyAction = modApp.dailyAction
|
||||
module.cleanup = modApp.cleanup
|
||||
|
||||
module.urls.forEach((url) => {
|
||||
app.use(vhost(url, module.app))
|
||||
})
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
import express from 'express'
|
||||
|
||||
export interface QuestionData {
|
||||
type: string
|
||||
images?: Array<string>
|
||||
|
@ -26,3 +28,18 @@ export interface User {
|
|||
pw: string
|
||||
created: Date
|
||||
}
|
||||
|
||||
export interface ModuleType {
|
||||
app: express.Application
|
||||
dailyAction?: Function
|
||||
}
|
||||
|
||||
// TODO: add more props based on db
|
||||
export interface User {
|
||||
id: number
|
||||
pw: string
|
||||
pwRequestCount: number
|
||||
pwGotFromCID: number
|
||||
avaiblePWRequests: number
|
||||
loginCount: number
|
||||
}
|
||||
|
|
|
@ -17,7 +17,7 @@ Question Server
|
|||
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
module.exports = {
|
||||
export default {
|
||||
ProcessIncomingRequest: ProcessIncomingRequest,
|
||||
LoadJSON: LoadJSON,
|
||||
backupData: backupData,
|
||||
|
@ -26,11 +26,11 @@ module.exports = {
|
|||
const recDataFile = './stats/recdata'
|
||||
const dataLockFile = './data/lockData'
|
||||
|
||||
import logger from '../utils/logger.js'
|
||||
import { searchData, createQuestion } from '../utils/classes.js'
|
||||
import idStats from '../utils/ids.js'
|
||||
import utils from '../utils/utils.js'
|
||||
import { addQuestion, getSubjNameWithoutYear } from './classes.js'
|
||||
import logger from '../utils/logger'
|
||||
import { searchData, createQuestion } from '../utils/classes'
|
||||
import idStats from '../utils/ids'
|
||||
import utils from '../utils/utils'
|
||||
import { addQuestion, getSubjNameWithoutYear } from './classes'
|
||||
|
||||
// types
|
||||
import { QuestionDb, Question, User } from '../types/basicTypes'
|
||||
|
@ -56,7 +56,7 @@ function ProcessIncomingRequest(
|
|||
questionDbs: Array<QuestionDb>,
|
||||
dryRun: boolean,
|
||||
user: User
|
||||
) {
|
||||
): Promise<Array<number>> {
|
||||
return Promise.all(
|
||||
questionDbs.map((qdb) => {
|
||||
return ProcessIncomingRequestUsingDb(recievedData, qdb, dryRun, user)
|
||||
|
@ -69,7 +69,7 @@ function ProcessIncomingRequestUsingDb(
|
|||
qdb: QuestionDb,
|
||||
dryRun: boolean,
|
||||
user: User
|
||||
) {
|
||||
): Promise<number> {
|
||||
return new Promise((resolve, reject) => {
|
||||
logger.DebugLog('Processing incoming request', 'actions', 1)
|
||||
|
||||
|
@ -92,7 +92,7 @@ function ProcessIncomingRequestUsingDb(
|
|||
utils.AppendToFile(towrite, recDataFile)
|
||||
logger.DebugLog('recDataFile written', 'actions', 1)
|
||||
} catch (err) {
|
||||
logger.log('Error writing recieved data.')
|
||||
logger.Log('Error writing recieved data.')
|
||||
}
|
||||
|
||||
if (utils.FileExists(dataLockFile)) {
|
||||
|
@ -251,7 +251,7 @@ function LoadJSON(dataFiles: Array<DataFile>) {
|
|||
}, [])
|
||||
}
|
||||
|
||||
function backupData(questionDbs: Array<DataFile>) {
|
||||
function backupData(questionDbs: Array<QuestionDb>) {
|
||||
questionDbs.forEach((data) => {
|
||||
const path = './publicDirs/qminingPublic/backs/'
|
||||
utils.CreatePath(path)
|
||||
|
|
|
@ -1,31 +0,0 @@
|
|||
const utils = require('../utils/utils.js')
|
||||
const dataFile = '../public/data.json'
|
||||
const versionFile = '../public/version'
|
||||
|
||||
var p = GetParams()
|
||||
if (p.length <= 0) {
|
||||
console.log('no params!')
|
||||
process.exit(0)
|
||||
}
|
||||
|
||||
var param = p.join(' ')
|
||||
|
||||
console.log('param: ' + param)
|
||||
|
||||
var d = utils.ReadFile(dataFile)
|
||||
var parsed = JSON.parse(d)
|
||||
|
||||
console.log('Old version:')
|
||||
console.log(parsed.version)
|
||||
|
||||
parsed.version = param
|
||||
|
||||
console.log('New version:')
|
||||
console.log(parsed.version)
|
||||
|
||||
utils.WriteFile(JSON.stringify(parsed), dataFile)
|
||||
utils.WriteFile(parsed.version, versionFile)
|
||||
|
||||
function GetParams() {
|
||||
return process.argv.splice(2)
|
||||
}
|
|
@ -1,8 +1,13 @@
|
|||
import { Worker, isMainThread, parentPort, workerData } from 'worker_threads'
|
||||
import logger from './logger.js'
|
||||
import logger from './logger'
|
||||
import { Question, QuestionData, Subject } from '../types/basicTypes'
|
||||
|
||||
const searchDataWorkerFile = './src/utils/classes.js'
|
||||
// TODO
|
||||
interface SearchResultQuestion extends Question {
|
||||
match: number
|
||||
}
|
||||
|
||||
const searchDataWorkerFile = './src/utils/classes.ts'
|
||||
|
||||
const assert = (val) => {
|
||||
if (!val) {
|
||||
|
@ -37,7 +42,7 @@ const minMatchToNotSearchOtherSubjects = 90
|
|||
|
||||
// Exported
|
||||
// ---------------------------------------------------------------------------------------------------------
|
||||
function getSubjNameWithoutYear(subjName: string) {
|
||||
function getSubjNameWithoutYear(subjName: string): string {
|
||||
const t = subjName.split(' - ')
|
||||
if (t[0].match(/^[0-9]{4}\/[0-9]{2}\/[0-9]{1}$/i)) {
|
||||
return t[1] || subjName
|
||||
|
@ -51,7 +56,7 @@ function getSubjNameWithoutYear(subjName: string) {
|
|||
function removeStuff(
|
||||
value: string,
|
||||
removableStrings: Array<string>,
|
||||
toReplace: string
|
||||
toReplace?: string
|
||||
) {
|
||||
removableStrings.forEach((removableString) => {
|
||||
const regex = new RegExp(removableString, 'g')
|
||||
|
@ -92,24 +97,24 @@ function normalizeSpaces(input: string) {
|
|||
return input.replace(/\s/g, ' ')
|
||||
}
|
||||
|
||||
function compareString(s1: string, s2: string) {
|
||||
if (!s1 || !s2) {
|
||||
if (!s1 && !s2) {
|
||||
function compareString(string1: string, string2: string) {
|
||||
if (!string1 || !string2) {
|
||||
if (!string1 && !string2) {
|
||||
return 100
|
||||
} else {
|
||||
return 0
|
||||
}
|
||||
}
|
||||
|
||||
s1 = simplifyStringForComparison(s1).split(' ')
|
||||
s2 = simplifyStringForComparison(s2).split(' ')
|
||||
const s1 = simplifyStringForComparison(string1).split(' ')
|
||||
const s2 = simplifyStringForComparison(string2).split(' ')
|
||||
let match = 0
|
||||
for (let i = 0; i < s1.length; i++) {
|
||||
if (s2.includes(s1[i])) {
|
||||
match++
|
||||
}
|
||||
}
|
||||
let percent = Math.round(((match / s1.length) * 100).toFixed(2)) // matched words percent
|
||||
let percent = Math.round(parseFloat(((match / s1.length) * 100).toFixed(2)))
|
||||
const lengthDifference = Math.abs(s2.length - s1.length)
|
||||
percent -= lengthDifference * lengthDiffMultiplier
|
||||
if (percent < 0) {
|
||||
|
@ -161,7 +166,7 @@ function simplifyAnswer(value: string) {
|
|||
])
|
||||
}
|
||||
|
||||
function simplifyQuestion(question: Question) {
|
||||
function simplifyQuestion(question: Question | string) {
|
||||
if (!question) {
|
||||
return
|
||||
}
|
||||
|
@ -194,7 +199,11 @@ function simplifyQuestion(question: Question) {
|
|||
// Question
|
||||
// ---------------------------------------------------------------------------------------------------------
|
||||
|
||||
function createQuestion(question: string, answer: string, data: QuestionData) {
|
||||
function createQuestion(
|
||||
question: Question | string,
|
||||
answer: string,
|
||||
data: QuestionData
|
||||
): Question {
|
||||
return {
|
||||
Q: simplifyQuestion(question),
|
||||
A: simplifyAnswer(answer),
|
||||
|
@ -313,7 +322,7 @@ function searchQuestion(
|
|||
) {
|
||||
assert(question)
|
||||
|
||||
const result = []
|
||||
let result = []
|
||||
subj.Questions.forEach((currentQuestion) => {
|
||||
const percent = compareQuestionObj(
|
||||
currentQuestion,
|
||||
|
@ -359,7 +368,11 @@ function subjectToString(subj: Subject) {
|
|||
// ---------------------------------------------------------------------------------------------------------
|
||||
// QuestionDB
|
||||
// ---------------------------------------------------------------------------------------------------------
|
||||
function addQuestion(data: Array<Subject>, subj: string, question: Question) {
|
||||
function addQuestion(
|
||||
data: Array<Subject>,
|
||||
subj: string,
|
||||
question: Question
|
||||
): void {
|
||||
logger.DebugLog('Adding new question with subjName: ' + subj, 'qdb add', 1)
|
||||
logger.DebugLog(question, 'qdb add', 3)
|
||||
assert(data)
|
||||
|
@ -389,12 +402,13 @@ function addQuestion(data: Array<Subject>, subj: string, question: Question) {
|
|||
}
|
||||
}
|
||||
|
||||
// TODO: remove questionData, make question only Question type
|
||||
function searchData(
|
||||
data: Array<Subject>,
|
||||
question: Question,
|
||||
question: any,
|
||||
subjName: string,
|
||||
questionData: QuestionData
|
||||
) {
|
||||
questionData?: QuestionData
|
||||
): Promise<Array<SearchResultQuestion>> {
|
||||
return new Promise((resolve, reject) => {
|
||||
assert(data)
|
||||
assert(question)
|
||||
|
@ -414,7 +428,7 @@ function searchData(
|
|||
}
|
||||
question = simplifyQuestion(question)
|
||||
|
||||
const worker = new Worker(searchDataWorkerFile, {
|
||||
const worker = workerTs(searchDataWorkerFile, {
|
||||
workerData: { data, subjName, question, questionData },
|
||||
})
|
||||
|
||||
|
@ -451,32 +465,7 @@ function searchData(
|
|||
})
|
||||
}
|
||||
|
||||
function addSubject(data: Array<Subject>, subj) {
|
||||
assert(data)
|
||||
assert(subj)
|
||||
|
||||
let i = 0
|
||||
while (i < length && subj.Name !== data[i].Name) {
|
||||
i++
|
||||
}
|
||||
|
||||
if (i < length) {
|
||||
return data.map((currSubj, j) => {
|
||||
if (j === i) {
|
||||
return {
|
||||
...currSubj,
|
||||
Questions: [...currSubj.Questions, ...subj.Questions],
|
||||
}
|
||||
} else {
|
||||
return currSubj
|
||||
}
|
||||
})
|
||||
} else {
|
||||
return [...data, subj]
|
||||
}
|
||||
}
|
||||
|
||||
function dataToString(data: Array<Subject>) {
|
||||
function dataToString(data: Array<Subject>): string {
|
||||
const result = []
|
||||
data.forEach((subj) => {
|
||||
result.push(subjectToString(subj))
|
||||
|
@ -485,9 +474,13 @@ function dataToString(data: Array<Subject>) {
|
|||
}
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
if (!isMainThread) {
|
||||
logger.DebugLog(`Starting search worker ...`, 'worker', 1)
|
||||
const { data, subjName, question, questionData } = workerData
|
||||
|
||||
function searchWorker(
|
||||
data: any,
|
||||
subjName: any,
|
||||
question: any,
|
||||
questionData: any
|
||||
): any {
|
||||
let result = []
|
||||
|
||||
data.forEach((subj) => {
|
||||
|
@ -496,7 +489,7 @@ if (!isMainThread) {
|
|||
.toLowerCase()
|
||||
.includes(getSubjNameWithoutYear(subj.Name).toLowerCase())
|
||||
) {
|
||||
logger.DebugLog(`Searching in ${subj.Name} `, 2)
|
||||
logger.DebugLog(`Searching in ${subj.Name} `, 'searchworker', 2)
|
||||
result = result.concat(
|
||||
searchQuestion(subj, question, questionData, subjName)
|
||||
)
|
||||
|
@ -512,7 +505,7 @@ if (!isMainThread) {
|
|||
) {
|
||||
logger.DebugLog(
|
||||
'Reqults length is zero when comparing names, trying all subjects',
|
||||
'qdb search',
|
||||
'searchworker',
|
||||
1
|
||||
)
|
||||
data.forEach((subj) => {
|
||||
|
@ -523,7 +516,7 @@ if (!isMainThread) {
|
|||
if (result.length > 0) {
|
||||
logger.DebugLog(
|
||||
`FIXME: '${subjName}' gave no result but '' did!`,
|
||||
'qdb search',
|
||||
'searchworker',
|
||||
1
|
||||
)
|
||||
console.error(`FIXME: '${subjName}' gave no result but '' did!`)
|
||||
|
@ -543,14 +536,37 @@ if (!isMainThread) {
|
|||
parentPort.postMessage(result)
|
||||
process.exit(0)
|
||||
}
|
||||
|
||||
const workerTs = (file: string, wkOpts: any) => {
|
||||
wkOpts.eval = true
|
||||
if (!wkOpts.workerData) {
|
||||
wkOpts.workerData = {}
|
||||
}
|
||||
wkOpts.workerData.__filename = file
|
||||
return new Worker(
|
||||
`
|
||||
const wk = require('worker_threads');
|
||||
require('ts-node').register();
|
||||
let file = wk.workerData.__filename;
|
||||
delete wk.workerData.__filename;
|
||||
require(file);
|
||||
`,
|
||||
wkOpts
|
||||
)
|
||||
}
|
||||
|
||||
if (!isMainThread) {
|
||||
logger.DebugLog(`Starting search worker ...`, 'searchworker', 1)
|
||||
const { data, subjName, question, questionData } = workerData
|
||||
searchWorker(data, subjName, question, questionData)
|
||||
}
|
||||
// ------------------------------------------------------------------------
|
||||
|
||||
module.exports = {
|
||||
export {
|
||||
minMatchAmmount,
|
||||
getSubjNameWithoutYear,
|
||||
createQuestion,
|
||||
addQuestion,
|
||||
addSubject,
|
||||
searchData,
|
||||
dataToString,
|
||||
}
|
||||
|
|
533
src/utils/cmdRes
533
src/utils/cmdRes
|
@ -1,533 +0,0 @@
|
|||
|
||||
|
||||
id pw oldCID lastIP notes loginCount created lastLogin lastAccess avaiblePWRequests pwRequestCount pwGotFromCID
|
||||
---------- ------------------------------------ ------------- ---------------- ---------- ---------- ------------------- ------------------- ------------------- ----------------- -------------- ------------
|
||||
1 6db3b190-68eb-4a03-bb57-a7f2daba0a28 1572270779259 ::ffff:127.0.0.1 1 2020-04-09 17:27:37 2020-04-13 14:45:04 2020-04-13 19:29:19 5 0 0
|
||||
2 35ec8413-cfd4-4991-b921-a64257cc789a 1572281342041 ::ffff:127.0.0.1 1 2020-04-09 17:27:37 2020-04-14 10:13:53 2020-04-14 11:21:06 0 5 0
|
||||
3 f05308dc-e44b-4e1c-b4ef-f450a6d71633 1572394794266 ::ffff:127.0.0.1 1 2020-04-09 17:27:37 2020-04-09 17:28:47 2020-04-09 17:30:28 5 0 1
|
||||
4 3323377a-2c9a-4ef2-8b3f-b76a7203e293 1572603975179 0 2020-04-09 17:27:37 5 0 0
|
||||
5 521906f9-cf0a-4e4d-a4fc-244a805cda33 1572612915747 0 2020-04-09 17:27:37 5 0 0
|
||||
6 0dbf30ed-9956-4998-9062-e8a78ff35e77 1572621200346 ::ffff:127.0.0.1 1 2020-04-09 17:27:37 2020-04-15 15:33:00 2020-04-15 16:00:47 5 0 0
|
||||
7 6b71d7d3-6c4a-4aa4-b3bc-0e22e3470990 1572703783416 ::ffff:127.0.0.1 1 2020-04-09 17:27:37 2020-04-13 09:32:53 2020-04-13 10:21:28 3 2 0
|
||||
8 b4250eef-d4ce-47cb-ab51-fe14a17becc3 1572805169940 ::ffff:127.0.0.1 1 2020-04-09 17:27:37 2020-04-13 11:30:17 2020-04-13 11:37:41 5 0 1
|
||||
9 9b7ef61b-9634-4e4a-b505-bc13e0013848 1572896358505 ::ffff:127.0.0.1 1 2020-04-09 17:27:37 2020-04-09 17:32:12 2020-04-09 17:32:15 5 0 1
|
||||
10 be1004c2-5dd6-4f86-ac1a-6720aad7d04e 1572905784217 0 2020-04-09 17:27:37 5 0 0
|
||||
11 01cb5b62-65e6-4f4d-9c99-c10fbc9557e0 1572909056982 0 2020-04-09 17:27:37 5 0 0
|
||||
12 eac1260f-35a3-4c52-8471-1e581312244e 1572962332049 0 2020-04-09 17:27:37 5 0 0
|
||||
13 7ab25783-4d05-41ed-968c-d6ceecbc9b29 1572985162947 0 2020-04-09 17:27:37 5 0 0
|
||||
14 b4bbc80e-5f62-4436-b72d-22cc913062ac 1572996033475 0 2020-04-09 17:27:37 5 0 0
|
||||
15 3e0c52d0-87dc-475d-a092-f8e712974e12 1573133044933 0 2020-04-09 17:27:37 5 0 0
|
||||
16 7bec5c4a-a8f3-4360-8ee0-8c6458ba90c5 1573136314984 0 2020-04-09 17:27:37 5 0 0
|
||||
17 efc53893-69fb-4d76-b8d6-0a32ee45e1e4 1573140815020 0 2020-04-09 17:27:37 5 0 0
|
||||
18 35ae6766-966b-4007-aab9-e6fd18b2cf7b 1573228693011 0 2020-04-09 17:27:37 5 0 0
|
||||
19 4b1423a8-a0b7-4d58-b106-ab05436e5b64 1573329941290 0 2020-04-09 17:27:37 5 0 0
|
||||
20 64f8c3e2-cb9f-4f46-be3a-de2bc38cfa2b 1573396722168 0 2020-04-09 17:27:37 5 0 0
|
||||
21 d04c48fe-6aaf-44ab-a2df-2dfe43e86534 1573396895820 0 2020-04-09 17:27:37 5 0 0
|
||||
22 1c8c756e-38a8-4eff-8a7d-04b706f7d693 1573402341355 0 2020-04-09 17:27:37 5 0 0
|
||||
23 66968293-200c-4903-8261-99a777a58b99 1573410711027 0 2020-04-09 17:27:37 5 0 0
|
||||
24 94d4eeeb-c664-4cfa-847f-21199521ed16 1573424473939 0 2020-04-09 17:27:37 5 0 0
|
||||
25 20947db8-2545-45c8-9470-193807faca6b 1573479972820 0 2020-04-09 17:27:37 5 0 0
|
||||
26 f9900780-e240-46e2-94f9-7d1917a0a741 1573514811120 0 2020-04-09 17:27:37 5 0 0
|
||||
27 305aff0b-fbb6-4fae-a983-a5b55a75c545 1573660950867 0 2020-04-09 17:27:37 5 0 0
|
||||
28 321f99c7-4bff-4323-9462-da971e19a2f6 1573748376830 0 2020-04-09 17:27:37 5 0 0
|
||||
29 ec977ab6-d0d6-408d-99db-99cf1add9b39 1573855439026 0 2020-04-09 17:27:37 5 0 0
|
||||
30 da123e75-2b11-4291-ba25-5ef4b1b145b1 1574007410951 0 2020-04-09 17:27:37 5 0 0
|
||||
31 aec07a74-94ea-4ed9-bc36-ef9615968a0f 1574033340418 0 2020-04-09 17:27:37 5 0 0
|
||||
32 57413601-6c64-42e2-9865-b0431afc9b66 1574074087046 0 2020-04-09 17:27:37 5 0 0
|
||||
33 3af73c35-9f87-424b-86b1-646ecf42ffa6 1574076814225 0 2020-04-09 17:27:37 5 0 0
|
||||
34 da825f57-f318-4490-9bda-099cb1fb860e 1574076864353 0 2020-04-09 17:27:37 5 0 0
|
||||
35 9d8c3d5b-da8d-48df-abdc-8523262fcf19 1574077272636 0 2020-04-09 17:27:37 5 0 0
|
||||
36 19c09511-45bf-4206-9fb7-ca9e7518589c 1574078697615 0 2020-04-09 17:27:37 5 0 0
|
||||
37 59011cc5-b63b-482e-854b-e7be30f8bdfc 1574078970482 0 2020-04-09 17:27:37 5 0 0
|
||||
38 f153b5ee-494c-4398-a878-2af10ba7dcbc 1574082123907 0 2020-04-09 17:27:37 5 0 0
|
||||
39 5de7ae2f-d842-4d3e-927f-7eb320a455c5 1574085823334 0 2020-04-09 17:27:37 5 0 0
|
||||
40 c84cc259-480b-4763-a856-124b56dd3c08 1574089044482 0 2020-04-09 17:27:37 5 0 0
|
||||
41 ec053668-f77a-4951-8737-dca81fc859cf 1574089379003 0 2020-04-09 17:27:37 5 0 0
|
||||
42 4dea472e-9a3c-47c2-840d-79ce8fce4be3 1574090624141 0 2020-04-09 17:27:37 5 0 0
|
||||
43 77b66f7e-cd83-4a36-a4ba-e881df3ca392 1574092371238 0 2020-04-09 17:27:37 5 0 0
|
||||
44 44f12c37-fedb-413e-a973-a43b0ba049fe 1574101279997 0 2020-04-09 17:27:37 5 0 0
|
||||
45 e5a8a983-a324-44cf-80e7-553023914433 1574124634646 0 2020-04-09 17:27:37 5 0 0
|
||||
46 cf05c3d1-e8ab-40e0-9d2d-7c1f16cadeac 1574162935938 0 2020-04-09 17:27:37 5 0 0
|
||||
47 9bfa9b39-038d-4e9a-b062-0841fdc67325 1574164858945 0 2020-04-09 17:27:37 5 0 0
|
||||
48 70222414-f987-4978-816a-84f75d8a43df 1574166782425 0 2020-04-09 17:27:37 5 0 0
|
||||
49 0fa43877-0445-442d-8eca-f84cc7998edb 1574182981119 0 2020-04-09 17:27:37 5 0 0
|
||||
50 775263ef-59be-42f4-94dd-f9964171498d 1574186786069 0 2020-04-09 17:27:37 5 0 0
|
||||
51 02fdec15-eac5-4dce-84f4-8725383d7474 1574197592300 0 2020-04-09 17:27:37 5 0 0
|
||||
52 c8697337-c62b-4ce2-aec3-d131f0c79e94 1574253542100 0 2020-04-09 17:27:37 5 0 0
|
||||
53 ecd975c8-b6cc-4eda-b3dd-94c363d5d4ad 1574261650379 0 2020-04-09 17:27:37 5 0 0
|
||||
54 db2c18d6-0508-4d9c-9b80-5f7c5c03ae46 1574271939999 0 2020-04-09 17:27:37 5 0 0
|
||||
55 d5447e49-68ad-4d3f-af67-15b6f27fdfdc 1574296313340 0 2020-04-09 17:27:37 5 0 0
|
||||
56 b8534a39-c195-4877-bb8c-5d1437a353fa 1574332666655 0 2020-04-09 17:27:37 5 0 0
|
||||
57 e7125dc9-4e15-4b12-a3a9-e5eb8cab879f 1574516495733 0 2020-04-09 17:27:37 5 0 0
|
||||
58 05e95166-0385-4ffd-a5c5-4f27fb05026c 1574536274693 0 2020-04-09 17:27:37 5 0 0
|
||||
59 c6ab601e-891b-4906-95ee-4a0950fbfdfd 1574546047670 0 2020-04-09 17:27:37 5 0 0
|
||||
60 c5d9601c-a7aa-4106-b20a-e9a670c45cc0 1574549559072 0 2020-04-09 17:27:37 5 0 0
|
||||
61 e0751ab5-040c-4aaa-bd8b-3640799b8555 1574619311351 0 2020-04-09 17:27:37 5 0 0
|
||||
62 ae2d9979-dadb-44ec-8b09-542b4cdc0fa4 1574693821228 0 2020-04-09 17:27:37 5 0 0
|
||||
63 9daa7734-1c1f-403b-8202-c34ce66c2713 1574701041941 0 2020-04-09 17:27:37 5 0 0
|
||||
64 f8894edd-2325-4f6b-bfe0-93fb28bf36ca 1575043480252 0 2020-04-09 17:27:37 5 0 0
|
||||
65 2ca39cf1-ebef-4a7c-82a5-c221d6ace949 1575043824428 0 2020-04-09 17:27:37 5 0 0
|
||||
66 b7350d3a-0187-45a3-9c47-d555e4f5b1ef 1575059557969 0 2020-04-09 17:27:37 5 0 0
|
||||
67 edc8ba18-3071-42d2-b172-7a222758fddf 1575237166613 0 2020-04-09 17:27:37 5 0 0
|
||||
68 b85a064c-3d16-4d2d-ba05-129b236eaa54 1575309241351 0 2020-04-09 17:27:37 5 0 0
|
||||
69 86efceb7-265e-4939-b02e-12aac69723f4 1575502840565 0 2020-04-09 17:27:37 5 0 0
|
||||
70 5ed4edc5-688b-425e-a8c8-ff03095cea98 1575566700218 0 2020-04-09 17:27:37 5 0 0
|
||||
71 636ef0f3-b138-4c00-91e5-9b9ae4beeaf2 1575645175090 0 2020-04-09 17:27:37 5 0 0
|
||||
72 dbf8b312-3078-4d19-bf0c-278ea06251f7 1575727001238 0 2020-04-09 17:27:37 5 0 0
|
||||
73 90daea95-b785-4000-9301-cdafaf3e6a79 1575731897377 0 2020-04-09 17:27:37 5 0 0
|
||||
74 69ac176c-020d-486c-890d-102745d16474 1575811342547 0 2020-04-09 17:27:37 5 0 0
|
||||
75 4ec71dff-3872-4610-b6b6-5103b79fe947 1575825001678 0 2020-04-09 17:27:37 5 0 0
|
||||
76 35208d78-caea-43c1-b723-0a755443ad6f 1575851111714 0 2020-04-09 17:27:37 5 0 0
|
||||
77 5df90f58-5781-4745-a271-4567dc617dff 1575988580003 0 2020-04-09 17:27:37 5 0 0
|
||||
78 6419e18d-4bf3-4caf-bd83-243e9a6f39ed 1576008784558 0 2020-04-09 17:27:37 5 0 0
|
||||
79 36086934-8b44-4d17-a4ff-8f8c5befb144 1576095955140 0 2020-04-09 17:27:37 5 0 0
|
||||
80 4a86c716-ce67-4834-9916-974f96e8d5f9 1576110824780 0 2020-04-09 17:27:37 5 0 0
|
||||
81 4309598f-b1d4-405d-8d3e-8857cd8b87e7 1576155714954 0 2020-04-09 17:27:37 5 0 0
|
||||
82 1f4847e0-626f-45c4-9607-2b88028057bb 1576170697100 0 2020-04-09 17:27:37 5 0 0
|
||||
83 86801984-2eeb-40fd-b5c0-cb2313fd7906 1576178942217 0 2020-04-09 17:27:37 5 0 0
|
||||
84 ed6bbf57-7ee9-4296-a2e2-1fd63357b140 1576199121100 0 2020-04-09 17:27:37 5 0 0
|
||||
85 881b8b8d-ced2-4d93-acf5-293af4e7d20f 1576285383104 0 2020-04-09 17:27:37 5 0 0
|
||||
86 cdfc2f1a-637e-46e4-85d2-9d05870fdca9 1576433101578 0 2020-04-09 17:27:37 5 0 0
|
||||
87 8ad5eec0-b167-4c75-8a15-e706c733a43a 1576594564269 0 2020-04-09 17:27:37 5 0 0
|
||||
88 9eeac265-1d11-4c54-abcf-cff8587b2438 1576604050195 0 2020-04-09 17:27:37 5 0 0
|
||||
89 2f0533a6-979f-408e-bc7f-1e68e7fe491d 1576663970202 0 2020-04-09 17:27:37 5 0 0
|
||||
90 a4af4451-645e-48f4-9eb0-fea523b73bc6 1576745689670 0 2020-04-09 17:27:37 5 0 0
|
||||
91 40fcc728-5384-499d-a0ad-9059de48db5d 1576883560968 0 2020-04-09 17:27:37 5 0 0
|
||||
92 560ed2c5-cd66-4498-a054-c3e8a206151b 1577004560619 0 2020-04-09 17:27:37 5 0 0
|
||||
93 55b46166-4abc-4973-ab78-fae999071e31 1577297334851 0 2020-04-09 17:27:37 5 0 0
|
||||
94 72f6d758-ee3f-4110-a325-620ddd329573 1577299054872 0 2020-04-09 17:27:37 5 0 0
|
||||
95 9627b910-8c41-44ab-b9ff-f358ae970a68 1577550024424 0 2020-04-09 17:27:37 5 0 0
|
||||
96 7acaedbf-19f0-4f54-b686-28a05634ebf7 1577908652191 0 2020-04-09 17:27:37 5 0 0
|
||||
97 6cd50d7d-dcdb-471e-b396-619a73e2e5ac 1577911620176 0 2020-04-09 17:27:37 5 0 0
|
||||
98 ef6477e6-96ca-4b06-b32b-9dfb8363d07d 1577967339210 0 2020-04-09 17:27:37 5 0 0
|
||||
99 662e56b1-54b6-4d01-b086-9445dcd707c4 1577974646965 0 2020-04-09 17:27:37 5 0 0
|
||||
100 c605a0b3-ab09-4f0b-a875-96cb12068b03 1577991656395 0 2020-04-09 17:27:37 5 0 0
|
||||
101 5671257e-3559-41a5-bd19-1342da75f373 1578001446771 0 2020-04-09 17:27:37 5 0 0
|
||||
102 a38d5a25-3c0d-4635-a5a2-ffb1f73070e1 1578029505468 0 2020-04-09 17:27:37 5 0 0
|
||||
103 f9efc196-9eec-4b21-b443-ab1f74659796 1578067960632 0 2020-04-09 17:27:37 5 0 0
|
||||
104 5cfb3a91-a7a4-4b24-b0e8-3a52f5584bc5 1578075721685 0 2020-04-09 17:27:37 5 0 0
|
||||
105 b5b7cffa-e60e-4ed0-b3a2-469a4423060b 1578082384610 0 2020-04-09 17:27:37 5 0 0
|
||||
106 fdbe0bac-6a63-4c33-bd80-f3b1d40164f4 1578092298983 0 2020-04-09 17:27:37 5 0 0
|
||||
107 0cbd06cf-0330-4679-bbb8-c91d0089f5af 1578154868110 0 2020-04-09 17:27:37 5 0 0
|
||||
108 9881a9ef-6237-4745-aa83-f8dc9b607b5c 1578163736711 0 2020-04-09 17:27:37 5 0 0
|
||||
109 5c12098d-d5b4-4d72-aef7-8b881e56df43 1578168007689 0 2020-04-09 17:27:37 5 0 0
|
||||
110 e53d7f10-cc3f-4c59-8f99-2d4b4e0855f9 1578227715218 0 2020-04-09 17:27:37 5 0 0
|
||||
111 4a29853e-cfb9-418b-9cf3-65e5d9302cc9 1578246872381 0 2020-04-09 17:27:37 5 0 0
|
||||
112 1b3ae40d-8112-4e5e-9a05-b58b19d242ea 1578248410194 0 2020-04-09 17:27:37 5 0 0
|
||||
113 d14e791d-d96d-46ed-a261-0c93189019fe 1578253148563 0 2020-04-09 17:27:37 5 0 0
|
||||
114 4343efa3-30f8-4e3d-8eee-b5f8e516c662 1578254461549 0 2020-04-09 17:27:37 5 0 0
|
||||
115 41668c6c-cc09-4b21-b7c2-00cd6bc06abc 1578395717132 0 2020-04-09 17:27:37 5 0 0
|
||||
116 cc2d21a4-6256-4e98-b7de-94d479a0ad67 1579770952398 0 2020-04-09 17:27:37 5 0 0
|
||||
117 01e79b50-3f62-46a0-8b8c-32862dc78ba9 1581390532439 0 2020-04-09 17:27:37 5 0 0
|
||||
118 4be46a91-10ff-4c7d-af62-a40ede2c6e20 1581519515820 0 2020-04-09 17:27:37 5 0 0
|
||||
119 cbdf34f1-8ab5-4135-ba0b-907c4be85964 1581549978663 0 2020-04-09 17:27:37 5 0 0
|
||||
120 57d9d04f-191e-4b1a-89a8-3333c277f93e 1581596348450 0 2020-04-09 17:27:37 5 0 0
|
||||
121 89b5f25a-7811-4fff-abd4-3f587bcd10ba 1581597551276 0 2020-04-09 17:27:37 5 0 0
|
||||
122 7f75a1a9-3260-41cb-a519-1a12bb09f7fa 1581601838401 0 2020-04-09 17:27:37 5 0 0
|
||||
123 a22dc84b-81d2-405d-8960-506da63aa4f8 1581603791197 0 2020-04-09 17:27:37 5 0 0
|
||||
124 59b8b4c4-27b3-46f6-9a50-386adcb15bc9 1581781021841 0 2020-04-09 17:27:37 5 0 0
|
||||
125 cd464f8c-d2a0-40db-9314-b594650d7b75 1581861008465 0 2020-04-09 17:27:37 5 0 0
|
||||
126 0e4e335c-dcdf-4652-80fd-ce8b6c6d88bf 1581878147376 0 2020-04-09 17:27:37 5 0 0
|
||||
127 a86bd4b6-deb5-4938-8e58-dcb5f77a1a2f 1581896184052 0 2020-04-09 17:27:37 5 0 0
|
||||
128 230cc2df-fc92-47a7-a2bb-f257aa33a3c0 1581942075702 0 2020-04-09 17:27:37 5 0 0
|
||||
129 10c8d683-932a-49c9-bff8-57cbfbd83b4c 1581957666672 0 2020-04-09 17:27:37 5 0 0
|
||||
130 2d7101d7-ae07-4d4d-b29e-83647addd391 1581958676459 0 2020-04-09 17:27:37 5 0 0
|
||||
131 8cb105df-ffb6-4dae-a02f-90178b5d9e4b 1581984049531 0 2020-04-09 17:27:37 5 0 0
|
||||
132 468380ca-5c3d-418a-83af-e0ac82ce8853 1582023234165 0 2020-04-09 17:27:37 5 0 0
|
||||
133 38a3251b-c803-45cb-81ac-37283cac9a32 1582027710125 0 2020-04-09 17:27:37 5 0 0
|
||||
134 6fd0ceb9-3df2-400b-91e4-16c01642b54d 1582051392823 0 2020-04-09 17:27:37 5 0 0
|
||||
135 1a398e9e-c513-4988-bc98-49a1a59edb75 1582062113009 0 2020-04-09 17:27:37 5 0 0
|
||||
136 83dfdff6-435b-4443-8839-25df177ad534 1582063394328 0 2020-04-09 17:27:37 5 0 0
|
||||
137 6549b6b2-2ccc-4272-b294-5bbd63491631 1582107947828 0 2020-04-09 17:27:37 5 0 0
|
||||
138 2b34c283-3017-48af-bda8-bdf1588e5145 1582130108663 0 2020-04-09 17:27:37 5 0 0
|
||||
139 fcec1b3e-4d72-4dc0-ac12-6f4e782b25f9 1582138883656 0 2020-04-09 17:27:37 5 0 0
|
||||
140 831ad972-bd08-4b6d-abf8-4c4b8c835b64 1582153316114 0 2020-04-09 17:27:37 5 0 0
|
||||
141 c4fdb68d-5b1f-484a-8221-0991f52c9a86 1582194817794 0 2020-04-09 17:27:37 5 0 0
|
||||
142 beb4b009-d6a1-4188-93f6-6edf83f0b862 1582195200135 0 2020-04-09 17:27:37 5 0 0
|
||||
143 d2fc88ae-f906-4b1d-95c8-fd0cce7224c7 1582196062056 0 2020-04-09 17:27:37 5 0 0
|
||||
144 009f295f-7bf8-48d9-b607-374f057f951a 1582226390041 0 2020-04-09 17:27:37 5 0 0
|
||||
145 2b07413c-e449-423b-9973-e030d8bc1103 1582226900127 0 2020-04-09 17:27:37 5 0 0
|
||||
146 823cf61a-cffc-4efd-a27d-abf53e819b0c 1582233806767 0 2020-04-09 17:27:37 5 0 0
|
||||
147 2c05ee23-255f-4352-959c-247ad0f868d8 1582291441711 0 2020-04-09 17:27:37 5 0 0
|
||||
148 bece8c8d-65f4-4f15-ac71-f3f1aa95b571 1582296563420 0 2020-04-09 17:27:37 5 0 0
|
||||
149 c211d68e-a48e-4dfb-924a-a326631c3931 1582311026147 0 2020-04-09 17:27:37 5 0 0
|
||||
150 ec3343a6-e5a5-40e8-9fd6-d1d67059f028 1582330762497 0 2020-04-09 17:27:37 5 0 0
|
||||
151 84a4d467-82f2-4a0e-9756-9f286e7db233 1582375033444 0 2020-04-09 17:27:37 5 0 0
|
||||
152 8726d8bf-388e-4d4f-8195-fb3d56092e43 1582387766854 0 2020-04-09 17:27:37 5 0 0
|
||||
153 58a39f11-3e82-4e6f-8064-09ed4997c658 1582390473317 0 2020-04-09 17:27:37 5 0 0
|
||||
154 1f10ea56-8c0a-4f11-8979-60f76659bfe3 1582392619586 0 2020-04-09 17:27:37 5 0 0
|
||||
155 0ba968ed-c0c5-47c0-ae7b-6526cc6de4a3 1582393433046 0 2020-04-09 17:27:37 5 0 0
|
||||
156 3dda305c-2fba-4a60-9c8e-a998eb368355 1582399198100 0 2020-04-09 17:27:37 5 0 0
|
||||
157 7eb58f1f-825e-4ca5-9f98-365ee1c36050 1582464931527 0 2020-04-09 17:27:37 5 0 0
|
||||
158 3f249e81-f774-476a-9747-c6135064c27c 1582491086196 0 2020-04-09 17:27:37 5 0 0
|
||||
159 f1dbbfaa-720c-4e6c-9773-23a580293b4a 1582547912034 0 2020-04-09 17:27:37 5 0 0
|
||||
160 71f8579a-20cd-43ab-8c7f-a72e42b867c5 1582568768503 0 2020-04-09 17:27:37 5 0 0
|
||||
161 cc540d4e-c8b8-4977-aa2c-7e799ccef0db 1582587514909 0 2020-04-09 17:27:37 5 0 0
|
||||
162 5b58be2c-911c-4fac-9552-f385bd1db294 1582648026004 0 2020-04-09 17:27:37 5 0 0
|
||||
163 e1400442-f434-4f0e-8dd3-24c677f6fb41 1582650387161 0 2020-04-09 17:27:37 5 0 0
|
||||
164 0282e88e-5127-43cd-8ad3-b69c190153b6 1582652449982 0 2020-04-09 17:27:37 5 0 0
|
||||
165 a6175b4e-cb72-445c-9b92-198c38cdb365 1582664369720 0 2020-04-09 17:27:37 5 0 0
|
||||
166 83c58373-279d-42f2-840e-7b8164d06aee 1582670675636 0 2020-04-09 17:27:37 5 0 0
|
||||
167 d5341867-7656-49d1-a34d-8df69aa950fe 1582815356529 0 2020-04-09 17:27:37 5 0 0
|
||||
168 1dbdc840-f5e5-4bee-843e-da509c285aa1 1582841402446 0 2020-04-09 17:27:37 5 0 0
|
||||
169 c01c84f5-0516-432a-a269-13220139d686 1582990834844 0 2020-04-09 17:27:37 5 0 0
|
||||
170 d464ec55-8ffb-4ffd-87e9-c48ca469c44d 1583001904301 0 2020-04-09 17:27:37 5 0 0
|
||||
171 e901bb01-37ca-4b16-ad85-ac8a9f7674ca 1583080582911 0 2020-04-09 17:27:37 5 0 0
|
||||
172 ac661c3b-1d77-4e30-bd88-5f79dec2b8bd 1583142880954 0 2020-04-09 17:27:37 5 0 0
|
||||
173 99f3a6cf-b582-47bf-94ec-6ea5ee0359ec 1583143200732 0 2020-04-09 17:27:37 5 0 0
|
||||
174 94d129c1-7068-40a7-b7ae-57f4b7b6c69f 1583159163213 0 2020-04-09 17:27:37 5 0 0
|
||||
175 5e3a37ab-9887-4aa6-8c43-fc6d910b2aca 1583160228550 0 2020-04-09 17:27:37 5 0 0
|
||||
176 4df36648-2a8d-47b4-be45-4b2c7e332fa3 1583160306958 0 2020-04-09 17:27:37 5 0 0
|
||||
177 180622ec-d440-434c-ba5d-554a076593a2 1583160695265 0 2020-04-09 17:27:37 5 0 0
|
||||
178 718b1a83-1846-4132-aa75-efdf94e89c72 1583161372006 0 2020-04-09 17:27:37 5 0 0
|
||||
179 8fd644fe-0dd9-4ede-8548-e68634e32383 1583172765342 0 2020-04-09 17:27:37 5 0 0
|
||||
180 b8d18848-62b3-4018-b376-0097e1e3b624 1583183356082 0 2020-04-09 17:27:37 5 0 0
|
||||
181 b1e9c38d-504e-48ec-bc6e-06effbeba310 1583186419728 0 2020-04-09 17:27:37 5 0 0
|
||||
182 dc26769b-4764-4d94-b9c0-c164610ef373 1583226286797 0 2020-04-09 17:27:37 5 0 0
|
||||
183 7b0a63d9-2571-4d0d-b334-c80d293caefb 1583247895934 0 2020-04-09 17:27:37 5 0 0
|
||||
184 0d9d4803-a4fb-4ad5-96e4-96f3419c6cfc 1583251259038 0 2020-04-09 17:27:37 5 0 0
|
||||
185 98da9332-13ff-49f2-9054-af1c359a0f38 1583251638590 0 2020-04-09 17:27:37 5 0 0
|
||||
186 9be351b3-9212-4466-9212-84d889e9d19a 1583263737418 0 2020-04-09 17:27:37 5 0 0
|
||||
187 65b34f25-52f2-4c5b-822d-29655b1427f6 1583268285208 0 2020-04-09 17:27:37 5 0 0
|
||||
188 45109ed0-473d-4dec-9f26-c1a29fbe6161 1583270831300 0 2020-04-09 17:27:37 5 0 0
|
||||
189 6fb8e4bb-4a48-4c1d-bca1-6871c15ae829 1583311961019 0 2020-04-09 17:27:37 5 0 0
|
||||
190 1fc44bca-db11-4d00-a595-d8cf5f0a11dc 1583332004090 0 2020-04-09 17:27:37 5 0 0
|
||||
191 87fc4782-6bb5-426d-852a-265d13be1025 1583349490158 0 2020-04-09 17:27:37 5 0 0
|
||||
192 36384a34-6f24-45f0-bb9e-40bf3732f451 1583587913765 0 2020-04-09 17:27:37 5 0 0
|
||||
193 a584e3df-81b4-4d22-8b44-3fe68730fe8f 1583590529228 0 2020-04-09 17:27:37 5 0 0
|
||||
194 6d35c44b-3281-4dac-926e-3bbc88a54320 1583591489687 0 2020-04-09 17:27:37 5 0 0
|
||||
195 699cf937-7f66-4a79-9002-54b355fd5b7e 1583595744779 0 2020-04-09 17:27:37 5 0 0
|
||||
196 ae0585c5-f191-425a-9231-32de43f15e0e 1583595850732 0 2020-04-09 17:27:37 5 0 0
|
||||
197 535aded5-8136-40ee-9309-a8bb63db20b0 1583614332843 0 2020-04-09 17:27:37 5 0 0
|
||||
198 caba66a3-8400-41db-803f-b29df6b56c38 1583667551584 0 2020-04-09 17:27:37 5 0 0
|
||||
199 bbcb1b2d-d15c-4bba-bc3c-4f59580e572a 1583674836966 0 2020-04-09 17:27:37 5 0 0
|
||||
200 1aa723ec-ad43-4329-8ffd-0b975c24f1be 1583679823286 0 2020-04-09 17:27:37 5 0 0
|
||||
201 99eb6d22-4447-4428-bd86-69df5015533d 1583680240161 0 2020-04-09 17:27:37 5 0 0
|
||||
202 c8fceaa0-f1a4-4808-b921-7b6620cec939 1583685754617 0 2020-04-09 17:27:37 5 0 0
|
||||
203 d2fffd85-a006-4e65-bbbb-cf0bf72d09f0 1583693216866 0 2020-04-09 17:27:37 5 0 0
|
||||
204 43f1ec1a-077c-4a29-a921-78d4ae134e9b 1583700140002 0 2020-04-09 17:27:37 5 0 0
|
||||
205 f17cbc91-df8f-4160-83f5-fea851f8464b 1583755699256 0 2020-04-09 17:27:37 5 0 0
|
||||
206 676bfa45-1157-48fa-ae06-db6ea55850cd 1583758800572 0 2020-04-09 17:27:37 5 0 0
|
||||
207 6f896d6b-e60b-42f6-971d-c5f904d782fa 1583762870257 0 2020-04-09 17:27:37 5 0 0
|
||||
208 4b62235e-0c43-403a-acfa-284bb0730d92 1583775336546 0 2020-04-09 17:27:37 5 0 0
|
||||
209 5ae815c7-fd8a-46a5-ae10-1a9edf5cd6cb 1583788723637 0 2020-04-09 17:27:37 5 0 0
|
||||
210 175df197-c222-4075-b5b1-f1ffa10a4683 1583792065582 0 2020-04-09 17:27:37 5 0 0
|
||||
211 73aaef6e-9e28-4041-90e7-b32f82adf64e 1583802516411 0 2020-04-09 17:27:37 5 0 0
|
||||
212 fb99f476-b6fe-48a8-b161-2538158ab01a 1583837948384 0 2020-04-09 17:27:37 5 0 0
|
||||
213 3f89d5fb-9d96-4ee0-a9cb-06ac14c09509 1583838417493 0 2020-04-09 17:27:37 5 0 0
|
||||
214 e09bc3ae-8f25-4d0b-82ff-0f8b76580916 1583852501375 0 2020-04-09 17:27:37 5 0 0
|
||||
215 b6d1b398-a3a8-4896-9e52-cdcf0823b037 1583858232460 0 2020-04-09 17:27:37 5 0 0
|
||||
216 58b5141e-c97f-4aee-85a3-bd54f5b7288e 1583863517432 0 2020-04-09 17:27:37 5 0 0
|
||||
217 550387b5-507e-4818-a962-c38b5413e8c0 1583868577224 0 2020-04-09 17:27:37 5 0 0
|
||||
218 58dc22bd-574d-470b-a75c-88b15a57cdd5 1583876790752 0 2020-04-09 17:27:37 5 0 0
|
||||
219 b8d9af0a-d0e6-440a-b09a-4f7083b57c70 1583921143466 0 2020-04-09 17:27:37 5 0 0
|
||||
220 35c10a41-4e1f-4b6a-a5ec-b1945bfce262 1583924243856 0 2020-04-09 17:27:37 5 0 0
|
||||
221 2a0f2429-b0a1-4be8-b66a-869923ab35ed 1583930295622 0 2020-04-09 17:27:37 5 0 0
|
||||
222 83f7d7f3-93a3-4d75-bf0d-fb5215164d94 1583942274269 0 2020-04-09 17:27:37 5 0 0
|
||||
223 9bd8afe0-a399-4e51-b3c0-f3df07234a14 1583956760515 0 2020-04-09 17:27:37 5 0 0
|
||||
224 2207f30d-fdac-4c3b-8164-abc2a3dd8508 1584013349557 0 2020-04-09 17:27:37 5 0 0
|
||||
225 1f1eaf09-98e0-4c3e-ba91-1f3c0881ede2 1584062028841 0 2020-04-09 17:27:37 5 0 0
|
||||
226 44266797-585e-455e-bfe0-b58f5d6f4b1b 1584106231314 0 2020-04-09 17:27:37 5 0 0
|
||||
227 f34db24f-ed55-4cc4-b22a-02352ca8c004 1584110068199 0 2020-04-09 17:27:37 5 0 0
|
||||
228 ae100d72-85a0-4438-b407-7d47ab055134 1584126993751 0 2020-04-09 17:27:37 5 0 0
|
||||
229 90fdfdf7-32b6-4b68-86c6-aab6b57f366f 1584136283851 0 2020-04-09 17:27:37 5 0 0
|
||||
230 92f768d7-afd6-4132-b82f-1a70cba952f5 1584152746993 0 2020-04-09 17:27:37 5 0 0
|
||||
231 56a4f728-0b08-4f77-b62c-ce44c0f5fc53 1584171033582 0 2020-04-09 17:27:37 5 0 0
|
||||
232 2d157b2a-c983-4d10-b5d4-d67c52a19b69 1584179808101 0 2020-04-09 17:27:37 5 0 0
|
||||
233 2890aa46-28f3-4b55-85d1-2ede281413a1 1584206136834 0 2020-04-09 17:27:37 5 0 0
|
||||
234 f3167f5b-0fd8-4593-a798-36742f75f6b5 1584225446271 0 2020-04-09 17:27:37 5 0 0
|
||||
235 3444f6b0-2479-470c-9f4e-ddd628b63db4 1584233410734 0 2020-04-09 17:27:37 5 0 0
|
||||
236 6cc14569-a13d-4f72-ab5e-f4552a7ff6ef 1584233555804 0 2020-04-09 17:27:37 5 0 0
|
||||
237 51762c3b-ff25-4d86-8f00-64cbf06ea942 1584263816308 0 2020-04-09 17:27:37 5 0 0
|
||||
238 f576d15b-38a1-4b84-91b8-4357d918caed 1584299288304 0 2020-04-09 17:27:37 5 0 0
|
||||
239 9d4641e8-1609-4e82-8ea0-e3646161aa4e 1584310411671 0 2020-04-09 17:27:37 5 0 0
|
||||
240 2832c035-461b-46c6-8e31-64e1233bf68b 1584318028312 0 2020-04-09 17:27:37 5 0 0
|
||||
241 4da13526-556d-48a9-90ce-c2dff0ec9c99 1584328010598 0 2020-04-09 17:27:37 5 0 0
|
||||
242 41ee1144-a1fa-4168-aaae-97198cadbb64 1584492643275 0 2020-04-09 17:27:37 5 0 0
|
||||
243 a74231f2-e334-4077-80a3-8788f6469121 1584501460982 0 2020-04-09 17:27:37 5 0 0
|
||||
244 9733704a-8145-4d3a-b63b-826f29848e13 1584521753537 0 2020-04-09 17:27:37 5 0 0
|
||||
245 003230f6-d83e-4c98-b2bf-b17535be38e3 1584524244329 0 2020-04-09 17:27:37 5 0 0
|
||||
246 42f8f68b-5d58-484a-a57c-3c9b922442b4 1584528900083 0 2020-04-09 17:27:37 5 0 0
|
||||
247 3b2e13fa-f20a-494f-841d-4654ddb6e821 1584532738475 0 2020-04-09 17:27:37 5 0 0
|
||||
248 e6f0538d-502b-414b-a385-2bd713e1e62d 1584536840452 0 2020-04-09 17:27:37 5 0 0
|
||||
249 7e55ca75-6671-4311-9be1-5c18928f175a 1584537023268 0 2020-04-09 17:27:37 5 0 0
|
||||
250 5d21d8b3-0a56-464b-9e90-69933f739a02 1584556276285 0 2020-04-09 17:27:37 5 0 0
|
||||
251 ca61eafa-cd2f-4437-8680-bd60f3515bb3 1584558443780 0 2020-04-09 17:27:37 5 0 0
|
||||
252 3b562ebd-c718-4abe-a509-08198cb3f2a8 1584563231194 0 2020-04-09 17:27:37 5 0 0
|
||||
253 ba38aed1-e8a6-486b-a29b-653431eb7459 1584608453274 0 2020-04-09 17:27:37 5 0 0
|
||||
254 ce794912-760e-47d3-bd83-8bfb06932c2d 1584612759150 0 2020-04-09 17:27:37 5 0 0
|
||||
255 b27aa0fe-4399-4f24-ae56-03e7672bbd96 1584624097128 0 2020-04-09 17:27:37 5 0 0
|
||||
256 7384dac7-61bc-41d2-a458-30a4770adc69 1584635316060 0 2020-04-09 17:27:37 5 0 0
|
||||
257 91d4cd74-b52d-45f8-b911-cfdce14e1e7f 1584639897191 0 2020-04-09 17:27:37 5 0 0
|
||||
258 a8220e6c-b908-4234-a66f-2e750143e8b6 1584640843070 0 2020-04-09 17:27:37 5 0 0
|
||||
259 5b01b426-a6df-4f56-82b8-4be5af5856fc 1584645879448 0 2020-04-09 17:27:37 5 0 0
|
||||
260 4e8aa8d2-d40a-4a46-8ce6-83d15d63d526 1584702612348 0 2020-04-09 17:27:37 5 0 0
|
||||
261 7301efb9-09d8-4a7a-b007-9fcfc1ca2080 1584740084804 0 2020-04-09 17:27:37 5 0 0
|
||||
262 be5365c3-f113-4069-b141-17612c58e538 1584795181001 0 2020-04-09 17:27:37 5 0 0
|
||||
263 b654bdb5-9259-4005-99af-ebf9cb4de9d6 1584795467261 0 2020-04-09 17:27:37 5 0 0
|
||||
264 8ac11fee-937d-4a41-a1a6-39a77ef5e8d7 1584808124327 0 2020-04-09 17:27:37 5 0 0
|
||||
265 8408ad59-23d1-458a-858f-c0a4121b15ed 1584816212127 0 2020-04-09 17:27:37 5 0 0
|
||||
266 d8e35c97-d4f7-4ec0-94fb-d912c2085ed0 1584822316309 0 2020-04-09 17:27:37 5 0 0
|
||||
267 0b87ec30-4cc9-469c-ad52-00c30c8e1a3a 1584872148042 0 2020-04-09 17:27:37 5 0 0
|
||||
268 bb056969-e66d-43bc-8cfe-0ca7cf73e424 1584884660250 0 2020-04-09 17:27:37 5 0 0
|
||||
269 82ad5dd8-0e3d-42ae-8b09-06f48c2f5f7b 1584886531320 0 2020-04-09 17:27:37 5 0 0
|
||||
270 0dd9a13d-d8e9-49b1-9dc9-76ac6da14870 1584896547056 0 2020-04-09 17:27:37 5 0 0
|
||||
271 76892328-0f0c-4b51-879f-4ae3b42994af 1584898876764 0 2020-04-09 17:27:37 5 0 0
|
||||
272 3c61f01a-0f08-4d83-af18-1444c28bed3a 1584909497670 0 2020-04-09 17:27:37 5 0 0
|
||||
273 e8dbd49d-0756-41aa-ac15-816711d11527 1584918347573 0 2020-04-09 17:27:37 5 0 0
|
||||
274 3e495660-e179-4f91-9400-69ef57cbe5c0 1584951294406 0 2020-04-09 17:27:37 5 0 0
|
||||
275 ce2156c2-9936-4fc2-90d0-7f11453ee0f9 1584964512645 0 2020-04-09 17:27:37 5 0 0
|
||||
276 30936326-64fe-4ff3-a660-5993b64549d7 1584967858937 0 2020-04-09 17:27:37 5 0 0
|
||||
277 a3a2d78e-6889-4492-9a58-c006c3f2c1e6 1584970556126 0 2020-04-09 17:27:37 5 0 0
|
||||
278 71149af2-3e62-49d3-8709-17aa0bad61cc 1584970897771 0 2020-04-09 17:27:37 5 0 0
|
||||
279 a1df967c-f707-4360-a754-592c8fa52b15 1584971888059 0 2020-04-09 17:27:37 5 0 0
|
||||
280 05bea4e7-4536-44bd-ac9e-bf65b18b4696 1584972919248 0 2020-04-09 17:27:37 5 0 0
|
||||
281 7c6374d8-f547-4e6e-9991-9f646d6c368d 1584974208228 0 2020-04-09 17:27:37 5 0 0
|
||||
282 a04fc901-a0cb-4f9e-a7fc-8b2686402b1a 1584974347976 0 2020-04-09 17:27:37 5 0 0
|
||||
283 49bef579-f2fa-4dc8-8604-034fda13d30c 1584977367480 0 2020-04-09 17:27:37 5 0 0
|
||||
284 2514ce99-c9db-4679-a3ca-23876e6a5fc3 1584980780571 0 2020-04-09 17:27:37 5 0 0
|
||||
285 7b7aaccb-b560-4775-a4f9-9accbce2ecd3 1584987497504 0 2020-04-09 17:27:37 5 0 0
|
||||
286 b1614200-4d86-438e-93dc-4214f3344e85 1584988073137 0 2020-04-09 17:27:37 5 0 0
|
||||
287 ff7a34e1-c312-4f9f-b03f-2261fc747e8d 1584990182513 0 2020-04-09 17:27:37 5 0 0
|
||||
288 12877ddd-3479-4368-87c2-7e385678ef0c 1584991806849 0 2020-04-09 17:27:37 5 0 0
|
||||
289 025ee7f7-a191-46c2-89b7-ebba77d94b29 1584995012552 0 2020-04-09 17:27:37 5 0 0
|
||||
290 9484619d-d442-4598-a928-5df086344404 1584999685062 0 2020-04-09 17:27:37 5 0 0
|
||||
291 bb3a50c4-4bde-48b9-a0aa-5e61e69f2b39 1585000590422 0 2020-04-09 17:27:37 5 0 0
|
||||
292 e826df1e-db02-4e62-a885-a2b8c06f3741 1585048696136 0 2020-04-09 17:27:37 5 0 0
|
||||
293 633156f2-240e-49ea-84a4-27ee2f903927 1585051967470 0 2020-04-09 17:27:37 5 0 0
|
||||
294 adfdfa06-d3d0-4bb3-bb4a-c9af47a40e34 1585057266828 0 2020-04-09 17:27:37 5 0 0
|
||||
295 62f632fa-fac6-4a51-a0a1-3089a98d3a1e 1585057823026 0 2020-04-09 17:27:37 5 0 0
|
||||
296 5587d633-b9bf-4843-8740-20b912c9e9f7 1585072254158 0 2020-04-09 17:27:37 5 0 0
|
||||
297 bb73efb6-e6c8-46ac-aa9f-f4b42c71eae5 1585129488741 0 2020-04-09 17:27:37 5 0 0
|
||||
298 d8104dac-f357-4874-b0fc-b2d560ec93fd 1585136127734 0 2020-04-09 17:27:37 5 0 0
|
||||
299 f443fd02-57d0-4fee-b2c1-2b97e2a70392 1585136727600 0 2020-04-09 17:27:37 5 0 0
|
||||
300 853a2f10-c421-4918-928f-3fc2179f42c0 1585143211102 0 2020-04-09 17:27:37 5 0 0
|
||||
301 582c1971-d6af-4545-88ca-019a927016c8 1585149117463 0 2020-04-09 17:27:37 5 0 0
|
||||
302 ed51ee0a-0034-460e-8fed-a6eb7677c279 1585150875300 0 2020-04-09 17:27:37 5 0 0
|
||||
303 90d46a01-dab8-4ff9-8bab-3c8fef9cc2f8 1585153667693 0 2020-04-09 17:27:37 5 0 0
|
||||
304 db3a634d-c821-4bd3-bf94-7c1885070c1a 1585155635457 0 2020-04-09 17:27:37 5 0 0
|
||||
305 62c90fb6-60f7-4f27-a698-1ae77b983294 1585155641104 0 2020-04-09 17:27:37 5 0 0
|
||||
306 99a7620c-c64c-496f-bd21-08f79d881d7c 1585158017175 0 2020-04-09 17:27:37 5 0 0
|
||||
307 4b5b52a6-b4e9-4858-a7af-8da4e75fd380 1585169475036 0 2020-04-09 17:27:37 5 0 0
|
||||
308 5d29b1f6-8455-4335-8638-9054a5919ca2 1585177116158 0 2020-04-09 17:27:37 5 0 0
|
||||
309 ab3a1eff-5f35-4bc3-bd54-0907073f2598 1585213755386 0 2020-04-09 17:27:37 5 0 0
|
||||
310 b910bdf7-9f58-444d-aa82-337dc4d1a606 1585215049331 0 2020-04-09 17:27:37 5 0 0
|
||||
311 5d5bb9bd-265a-45f4-a99b-d8e9c3787bb3 1585219084293 0 2020-04-09 17:27:37 5 0 0
|
||||
312 0161c886-fc1b-4081-8935-9668d824c622 1585219576010 0 2020-04-09 17:27:37 5 0 0
|
||||
313 41c79796-d555-4b66-a583-a153d2305b39 1585223896460 0 2020-04-09 17:27:37 5 0 0
|
||||
314 52e8da41-84ac-4109-872b-9bd8a831c6b4 1585227683685 0 2020-04-09 17:27:37 5 0 0
|
||||
315 16fc3e4c-61d9-4979-be8b-aa79287bcc96 1585227777536 0 2020-04-09 17:27:37 5 0 0
|
||||
316 0e5480f3-e2cd-4eea-bf82-951bcfdae196 1585231464979 0 2020-04-09 17:27:37 5 0 0
|
||||
317 73811062-1cc9-4fbb-8944-3303309c8c37 1585231653190 0 2020-04-09 17:27:37 5 0 0
|
||||
318 8256d4c0-4af1-421c-8dda-367549d5c242 1585234641716 0 2020-04-09 17:27:37 5 0 0
|
||||
319 343eac76-964e-4d9e-921c-81224f1d447b 1585237227144 0 2020-04-09 17:27:37 5 0 0
|
||||
320 86982460-f59d-4fbd-af94-f1fbbc215d5a 1585250402823 0 2020-04-09 17:27:37 5 0 0
|
||||
321 9811597f-03e3-4c00-96b7-183929f7e660 1585256176534 0 2020-04-09 17:27:37 5 0 0
|
||||
322 d56a57b8-b26e-4816-8238-f8dadd6f2117 1585307276235 0 2020-04-09 17:27:37 5 0 0
|
||||
323 5028cf70-0b1e-41a8-aa99-2935f4d3b2f6 1585307657547 0 2020-04-09 17:27:37 5 0 0
|
||||
324 40ae2dec-4481-46af-9d7c-75744d1a4136 1585310657648 0 2020-04-09 17:27:37 5 0 0
|
||||
325 cd035caa-69db-436c-9aeb-22cf32c9bd5c 1585311633320 0 2020-04-09 17:27:37 5 0 0
|
||||
326 f21a3d73-f0a2-42b5-b954-f1faa1d7c691 1585321281164 0 2020-04-09 17:27:37 5 0 0
|
||||
327 2afee096-9ee6-4dd9-8ca9-abccfc37bb71 1585388975837 0 2020-04-09 17:27:37 5 0 0
|
||||
328 576c02f6-6df4-4d5d-a74f-6c2787cb49ac 1585401709382 0 2020-04-09 17:27:37 5 0 0
|
||||
329 af29f242-88d4-404f-937a-ac21167b21a6 1585418050715 0 2020-04-09 17:27:37 5 0 0
|
||||
330 12cf0614-b606-4a4f-9cc9-fa0a1e85aa0c 1585422857540 0 2020-04-09 17:27:37 5 0 0
|
||||
331 cd0a9219-5cfc-427b-b13d-3f285e37dc6f 1585424670902 0 2020-04-09 17:27:37 5 0 0
|
||||
332 0b7d1a12-0efb-4cc1-a0e0-48de0e9a3b25 1585436920327 0 2020-04-09 17:27:37 5 0 0
|
||||
333 e1ab89d4-f98b-4b1b-b302-698d923c32af 1585438327028 0 2020-04-09 17:27:37 5 0 0
|
||||
334 b3735a53-e8cd-4b56-8465-f78df03287d0 1585445773796 0 2020-04-09 17:27:37 5 0 0
|
||||
335 a301f309-9ac6-4926-93ac-9f197440ea17 1585482778210 0 2020-04-09 17:27:37 5 0 0
|
||||
336 94e99d2d-b42b-41ff-aacc-e798c64887f1 1585489642569 0 2020-04-09 17:27:37 5 0 0
|
||||
337 afcb2294-75fa-408d-b962-d234245406c9 1585491887693 0 2020-04-09 17:27:37 5 0 0
|
||||
338 63e2545b-7887-4487-a415-ef74a4bfd625 1585496721341 0 2020-04-09 17:27:37 5 0 0
|
||||
339 4aec6c6f-6f47-4290-8d11-2ed85883e41d 1585500059799 0 2020-04-09 17:27:37 5 0 0
|
||||
340 dd465c7d-51e5-4196-aba6-017cdfd2e5b2 1585500061855 0 2020-04-09 17:27:37 5 0 0
|
||||
341 3ed5e9ab-af08-4b60-9560-15926785b4e7 1585501980548 0 2020-04-09 17:27:37 5 0 0
|
||||
342 2012646d-e52d-4af2-94ad-973d0d50bd25 1585503827982 0 2020-04-09 17:27:37 5 0 0
|
||||
343 9ae0ca1a-b6fa-4c18-bf07-c5afcb7097f8 1585506396741 0 2020-04-09 17:27:37 5 0 0
|
||||
344 a3f70496-15a6-437b-b4fa-58c32be5abc3 1585507376889 0 2020-04-09 17:27:37 5 0 0
|
||||
345 29d59762-cfb5-438c-97f4-b7526082b9f6 1585517188028 0 2020-04-09 17:27:37 5 0 0
|
||||
346 4225639c-9bc5-477e-9c4f-6925ba588c81 1585518462567 0 2020-04-09 17:27:37 5 0 0
|
||||
347 8a894ebc-1c4b-4144-8b82-d0b531911ccb 1585519589761 0 2020-04-09 17:27:37 5 0 0
|
||||
348 3dbf7b98-17a0-4fb5-9701-74e739ff92d9 1585523305166 0 2020-04-09 17:27:37 5 0 0
|
||||
349 367e75db-541b-48ab-b0fd-6903bba6dd47 1585531272187 0 2020-04-09 17:27:37 5 0 0
|
||||
350 a0de6f57-767c-429c-ab52-99c215e62fd5 1585554409104 0 2020-04-09 17:27:37 5 0 0
|
||||
351 fc953e10-7fa6-4d1d-8032-b5eb282dec14 1585555718412 0 2020-04-09 17:27:37 5 0 0
|
||||
352 c5233f4c-a5b8-44c4-9c03-e702bc9b0508 1585556545929 0 2020-04-09 17:27:37 5 0 0
|
||||
353 c2cf32f5-6a7b-43b0-85f2-3d924a341a62 1585557389780 0 2020-04-09 17:27:37 5 0 0
|
||||
354 d004db4b-5ed6-4d00-b938-987412b9c619 1585559252518 0 2020-04-09 17:27:37 5 0 0
|
||||
355 d7ce3860-3766-4309-86f6-5ccab20fafb9 1585559805077 0 2020-04-09 17:27:37 5 0 0
|
||||
356 08cb2036-8f0d-40c1-a922-bb9f892106f8 1585562006110 0 2020-04-09 17:27:37 5 0 0
|
||||
357 db47b586-c5ca-4842-a04f-3cf62c51de5c 1585566176504 0 2020-04-09 17:27:37 5 0 0
|
||||
358 d0c65fd2-f9c0-4773-998a-0e40e14d3823 1585566995599 0 2020-04-09 17:27:37 5 0 0
|
||||
359 d3347775-b176-4ef8-9396-a9f84287d3e6 1585571720030 0 2020-04-09 17:27:37 5 0 0
|
||||
360 50825a1a-b77f-4463-9e05-7252ab728962 1585573841968 0 2020-04-09 17:27:37 5 0 0
|
||||
361 e8067d2a-896c-4f7f-836e-c69bbc16283b 1585578710500 0 2020-04-09 17:27:37 5 0 0
|
||||
362 b7e1a835-e681-4fe0-a74a-bddbb24887c0 1585584802502 0 2020-04-09 17:27:37 5 0 0
|
||||
363 72700a52-f94b-42a8-b29a-f014752f69cc 1585585998646 0 2020-04-09 17:27:37 5 0 0
|
||||
364 aaabc40b-f334-4c9c-8fff-ccc93e2c1559 1585589408386 0 2020-04-09 17:27:37 5 0 0
|
||||
365 7757854d-0bfc-430c-af4c-fead0695a9af 1585591395074 0 2020-04-09 17:27:37 5 0 0
|
||||
366 17d36cac-6fa4-4cbe-adbb-79d09a6e8205 1585591401052 0 2020-04-09 17:27:37 5 0 0
|
||||
367 b93e6639-bfe6-4c34-a74d-875f167b1d77 1585595412917 0 2020-04-09 17:27:37 5 0 0
|
||||
368 530b6455-cbc3-40e6-a4e0-33c1019d0f02 1585598610827 0 2020-04-09 17:27:37 5 0 0
|
||||
369 6bee265c-1472-426a-a747-96d79772c6c0 1585666806593 0 2020-04-09 17:27:37 5 0 0
|
||||
370 46baad89-f684-45ce-8a6a-f8a14105df0d 1585668264250 0 2020-04-09 17:27:37 5 0 0
|
||||
371 67ac1ec6-ce6b-4da6-aed5-7d43719293ac 1585670351545 0 2020-04-09 17:27:37 5 0 0
|
||||
372 eca2dd6b-ed4a-48d5-9b42-38a368b34ee4 1585688996412 0 2020-04-09 17:27:37 5 0 0
|
||||
373 b809b3fc-8582-4fef-b750-a90a91573b0a 1585701259430 0 2020-04-09 17:27:37 5 0 0
|
||||
374 8133c076-340c-4269-a7af-f809e7718517 1585728869632 0 2020-04-09 17:27:37 5 0 0
|
||||
375 a94ed0d9-42a4-4b8e-b898-5a1f8493d8d3 1585730980019 0 2020-04-09 17:27:37 5 0 0
|
||||
376 377ffe43-f9d0-48a9-9488-b9a11b627afb 1585735533377 0 2020-04-09 17:27:37 5 0 0
|
||||
377 ac2b86e9-c21f-475d-b4ce-9c024ebc85eb 1585736476320 0 2020-04-09 17:27:37 5 0 0
|
||||
378 ed6050ce-620b-408d-8da2-7e96be617313 1585736904119 0 2020-04-09 17:27:37 5 0 0
|
||||
379 13c2543e-ef5e-4a63-a803-e79405d92f17 1585737647436 0 2020-04-09 17:27:37 5 0 0
|
||||
380 21e02127-6603-42fb-b43a-77cda5098eed 1585740296499 0 2020-04-09 17:27:37 5 0 0
|
||||
381 18d66cc4-d1db-47d4-8f13-d48c006722e9 1585740541583 0 2020-04-09 17:27:37 5 0 0
|
||||
382 58fb41be-4c7b-45e6-94e1-2539789323c0 1585741850375 0 2020-04-09 17:27:37 5 0 0
|
||||
383 9db89253-c76a-4335-81b7-16a7c05c3e20 1585742413020 0 2020-04-09 17:27:37 5 0 0
|
||||
384 f4cd90f0-472b-4b99-8966-8b12eafa495c 1585744182991 0 2020-04-09 17:27:37 5 0 0
|
||||
385 f7d33dd3-1e78-44e6-9b4a-0e53a867b310 1585745021146 0 2020-04-09 17:27:37 5 0 0
|
||||
386 42d02bb6-5e96-45c7-8036-886c39a8ac1c 1585745201057 0 2020-04-09 17:27:37 5 0 0
|
||||
387 abdf3363-09f7-4b92-9fb5-ab946ff43839 1585748050386 0 2020-04-09 17:27:37 5 0 0
|
||||
388 d9f02aea-bc03-4f96-b289-5d38be9fad42 1585749101602 0 2020-04-09 17:27:37 5 0 0
|
||||
389 cdf80ac8-c85b-43be-8c0a-01b3558426ba 1585755422160 0 2020-04-09 17:27:37 5 0 0
|
||||
390 9e4f61a2-98cb-4a42-9a02-47c8c2139db9 1585759101563 0 2020-04-09 17:27:37 5 0 0
|
||||
391 704ada4b-6e46-4c4a-9bc7-a0cb8f13c18b 1585760066353 0 2020-04-09 17:27:37 5 0 0
|
||||
392 3d8aa5a1-2aae-45e0-8181-b672004e2ebe 1585767948385 0 2020-04-09 17:27:37 5 0 0
|
||||
393 40e73947-b624-443a-8ac0-c205ab7a92d6 1585769837970 0 2020-04-09 17:27:37 5 0 0
|
||||
394 988bc803-fc7e-464b-a1a9-c5d72b4bc82b 1585778716215 0 2020-04-09 17:27:37 5 0 0
|
||||
395 78f7c7ab-5787-4df0-827b-30154a25713e 1585823123245 0 2020-04-09 17:27:37 5 0 0
|
||||
396 5c3adacc-6e2d-4270-8e76-f7ae9cc39a1e 1585824106911 0 2020-04-09 17:27:37 5 0 0
|
||||
397 cb29cf39-0b2d-40db-aa68-75065085f717 1585826299686 0 2020-04-09 17:27:37 5 0 0
|
||||
398 8e0da5dd-da86-4a7c-a77f-c095535b11a7 1585828123510 0 2020-04-09 17:27:37 5 0 0
|
||||
399 a32185c4-6136-4bd1-baf3-7d53ad7b69fe 1585829811184 0 2020-04-09 17:27:37 5 0 0
|
||||
400 41c82b27-e8e1-4792-849a-a9a39e4b85c7 1585830652968 0 2020-04-09 17:27:37 5 0 0
|
||||
401 0e0050d5-216b-4f03-bfdd-c23eb1c0c3dd 1585833443154 0 2020-04-09 17:27:37 5 0 0
|
||||
402 d55b99ef-56dc-4282-9570-2ab12dd038ca 1585834176116 0 2020-04-09 17:27:37 5 0 0
|
||||
403 7ca4528f-160f-4824-af30-0cd3475e0075 1585840388140 0 2020-04-09 17:27:37 5 0 0
|
||||
404 9bbc9458-c03b-4bf0-a54c-6210cb01e0b7 1585841351257 0 2020-04-09 17:27:37 5 0 0
|
||||
405 76bb77c9-41e4-4cf6-97d4-467d226896b8 1585856239202 0 2020-04-09 17:27:37 5 0 0
|
||||
406 06965ace-d8ed-4ca8-bd13-78f8616b3b71 1585862988493 0 2020-04-09 17:27:37 5 0 0
|
||||
407 220e8a4d-f266-4cb0-8742-6c225e4871cb 1585871928037 0 2020-04-09 17:27:37 5 0 0
|
||||
408 994a4f31-465b-483a-b4b1-ccf6c153bb21 1585905206088 0 2020-04-09 17:27:37 5 0 0
|
||||
409 9da88b33-3209-4272-945a-960c90f34ff9 1585912371965 0 2020-04-09 17:27:37 5 0 0
|
||||
410 4dd8a4be-921d-486a-82b8-ecc05dcceb76 1585912460337 0 2020-04-09 17:27:37 5 0 0
|
||||
411 3e0446f1-d30e-4633-bf98-3c687cc26438 1585913135436 0 2020-04-09 17:27:37 5 0 0
|
||||
412 774efa3a-2f1b-430a-863a-4380d1610e93 1585913444621 0 2020-04-09 17:27:37 5 0 0
|
||||
413 9960abc1-b91f-4bad-88e1-d6708294aa68 1585914143202 0 2020-04-09 17:27:37 5 0 0
|
||||
414 4d5caf50-31e2-4361-b9fc-ae588c569ed1 1585914752752 0 2020-04-09 17:27:37 5 0 0
|
||||
415 886ac239-e528-4532-ba45-8ca4d8232d42 1585915196335 0 2020-04-09 17:27:37 5 0 0
|
||||
416 774bd158-ced3-40e7-ade6-2452857a7ff2 1585916033191 0 2020-04-09 17:27:37 5 0 0
|
||||
417 c276334a-ccc0-479d-8bda-fdde9d098c2f 1585916508756 0 2020-04-09 17:27:37 5 0 0
|
||||
418 72e29b1b-ef83-4b9c-bdb1-6617abd5a9f7 1585917397147 0 2020-04-09 17:27:37 5 0 0
|
||||
419 5f5a3f20-d506-44d3-95a0-7eb533fc84b4 1585917624356 0 2020-04-09 17:27:37 5 0 0
|
||||
420 410118ab-07ce-464f-baf8-f0c6c8bb7311 1585919794898 0 2020-04-09 17:27:37 5 0 0
|
||||
421 b61abbfd-6985-4654-b5b1-08bbbeac2a98 1585920724262 0 2020-04-09 17:27:37 5 0 0
|
||||
422 c87ec377-5829-48c2-9f65-fa56d07add8e 1585923154928 0 2020-04-09 17:27:37 5 0 0
|
||||
423 964a30a0-abd4-472e-9991-15f59e7cb123 1585927022895 0 2020-04-09 17:27:37 5 0 0
|
||||
424 ce20f1cd-ab59-4364-9dee-c883ade21bf4 1585948263565 0 2020-04-09 17:27:37 5 0 0
|
||||
425 9dfebe2a-44ec-407a-af85-5074ced3cd5b 1585948778800 0 2020-04-09 17:27:37 5 0 0
|
||||
426 aa0c2af3-e7a3-4dda-9902-84ee60cb264c 1585986348126 0 2020-04-09 17:27:37 5 0 0
|
||||
427 fd2934f1-411e-4149-aaca-9803408a7eb2 1585994315563 0 2020-04-09 17:27:37 5 0 0
|
||||
428 5915c323-66df-4622-ba59-51bc51307b75 1585997804444 0 2020-04-09 17:27:37 5 0 0
|
||||
429 7cc697c0-93a4-4bc8-8c20-ced0d56f7b3b 1586000700613 0 2020-04-09 17:27:37 5 0 0
|
||||
430 96cc3001-e31a-4879-8645-dd312112d468 1586010600961 0 2020-04-09 17:27:37 5 0 0
|
||||
431 ba3de216-bcc1-424d-9c6b-cf2fd8f90415 1586013473984 0 2020-04-09 17:27:37 5 0 0
|
||||
432 df47f836-d9ce-4aeb-8bd9-e2335cb99580 1586016882017 0 2020-04-09 17:27:37 5 0 0
|
||||
433 dee002bd-97d9-4ef4-9b22-71c7c33793a9 1586017104899 0 2020-04-09 17:27:37 5 0 0
|
||||
434 bf565a83-3b52-4042-aec9-5b47e1ce0f41 1586017584568 0 2020-04-09 17:27:37 5 0 0
|
||||
435 e11ca99d-a443-49de-87b6-08cc625c52eb 1586018930461 0 2020-04-09 17:27:37 5 0 0
|
||||
436 18b38ebe-f23c-436b-8379-88f4c994afee 1586020080690 0 2020-04-09 17:27:37 5 0 0
|
||||
437 e163cfeb-ad7c-485d-aeb3-c4e81e1f376e 1586040441726 0 2020-04-09 17:27:37 5 0 0
|
||||
438 1d0c5b48-733e-4dce-b68b-92cd6abaf566 1586081990928 0 2020-04-09 17:27:37 5 0 0
|
||||
439 f6f0df01-b1fd-4f5e-a953-aed3749b8127 1586097122374 0 2020-04-09 17:27:37 5 0 0
|
||||
440 e1b503b8-c88a-43a4-ac64-2bc3e427b793 1586103127003 0 2020-04-09 17:27:37 5 0 0
|
||||
441 155e6050-0e5d-46ab-a414-e1d7dcb1b44b 1586105166170 0 2020-04-09 17:27:37 5 0 0
|
||||
442 8b990462-88db-4ac1-9457-9124583840bd 1586109823256 0 2020-04-09 17:27:37 5 0 0
|
||||
443 cc3ee244-2fa7-42f2-88b5-d9b3bdcc0af0 1586113332662 0 2020-04-09 17:27:37 5 0 0
|
||||
444 0cecf027-50a5-413a-afe7-95a8222ab7b0 1586119029414 0 2020-04-09 17:27:37 5 0 0
|
||||
445 e8208c60-0629-4ff4-9caf-69a303114b35 1586119648767 0 2020-04-09 17:27:37 5 0 0
|
||||
446 7ea3c319-427e-44a0-90b1-51fcbcdbb5ed 1586123653971 0 2020-04-09 17:27:37 5 0 0
|
||||
447 80833a8f-283c-4f12-a095-9a6671a8f5d9 1586164913411 0 2020-04-09 17:27:37 5 0 0
|
||||
448 5592645e-4188-498c-990c-83f64e8adc53 1586169082603 0 2020-04-09 17:27:37 5 0 0
|
||||
449 c9f95ad8-daa1-40a0-8741-c423771c6126 1586172250252 0 2020-04-09 17:27:37 5 0 0
|
||||
450 ef7bfb28-f2ad-4a7a-868a-8492cc523e58 1586172793081 0 2020-04-09 17:27:37 5 0 0
|
||||
451 38a94cd7-fe95-437c-be1f-48953e7d6d75 1586174925437 0 2020-04-09 17:27:37 5 0 0
|
||||
452 8409ee4c-755d-4416-926c-b4b5038660ad 1586176307990 0 2020-04-09 17:27:37 5 0 0
|
||||
453 0a24916c-4a3a-41be-ae3b-1a7f0feb99e2 1586178600601 0 2020-04-09 17:27:37 5 0 0
|
||||
454 898a070f-39dc-4e2b-9827-4e800491e7fc 1586188353993 0 2020-04-09 17:27:37 5 0 0
|
||||
455 81b6240d-4dd9-4819-9deb-677d94f7b5c2 1586202966729 0 2020-04-09 17:27:37 5 0 0
|
||||
456 aeacf6c8-dc9b-402f-951c-27918931b218 1586206160610 0 2020-04-09 17:27:37 5 0 0
|
||||
457 41e58cec-0286-4e50-a2a2-e800630021fe 1586211444938 0 2020-04-09 17:27:37 5 0 0
|
||||
458 0b700663-88db-4095-86df-d8bd70b84d1a 1586212473060 0 2020-04-09 17:27:37 5 0 0
|
||||
459 8d811586-0b01-4960-abc9-ace24c214c7c 1586250716464 0 2020-04-09 17:27:37 5 0 0
|
||||
460 85576357-d736-4317-86f3-4ad5d8a346c6 1586258423684 0 2020-04-09 17:27:37 5 0 0
|
||||
461 4dfc1db9-c52f-4935-a1e6-b644d77c0f26 1586259214124 0 2020-04-09 17:27:37 5 0 0
|
||||
462 05ae01a4-109d-4be4-908c-18c1c29fcb7b 1586260095934 0 2020-04-09 17:27:37 5 0 0
|
||||
463 8fcb35ab-1f17-499c-8070-211d83f07d2a 1586260602412 0 2020-04-09 17:27:37 5 0 0
|
||||
464 d865e495-3d48-4fe6-b3ae-56c1e08978dd 1586271055617 0 2020-04-09 17:27:37 5 0 0
|
||||
465 e0f76582-c4cd-4b9a-ad2c-2f752a5e445a 1586278951426 0 2020-04-09 17:27:37 5 0 0
|
||||
466 2f224680-fde7-4b8e-939c-207fe2942b57 1586280264442 0 2020-04-09 17:27:37 5 0 0
|
||||
467 c46cf6b6-4e5c-4604-84f7-a60f4c031c76 1586281268199 0 2020-04-09 17:27:37 5 0 0
|
||||
468 67068925-9586-4cad-aa74-cf1d30236527 1586281712612 0 2020-04-09 17:27:37 5 0 0
|
||||
469 23c81b21-f724-4452-84da-e8325c4a54a2 1586282330634 0 2020-04-09 17:27:37 5 0 0
|
||||
470 5392567a-c1ee-48f7-892e-3a8dc83b96e2 1586284501030 0 2020-04-09 17:27:37 5 0 0
|
||||
471 18a3c9c8-5d81-48c9-a305-d47c6a633b6e 1586284817429 0 2020-04-09 17:27:37 5 0 0
|
||||
472 75658dd2-d4fd-44ed-83a2-08c02c29be78 1586285785447 0 2020-04-09 17:27:37 5 0 0
|
||||
473 0f9dd80e-8d94-410a-a913-1a92542c3522 1586289130058 0 2020-04-09 17:27:37 5 0 0
|
||||
474 b5ce8ccc-2cb8-41c9-903e-a800a430e25f 1586294493249 0 2020-04-09 17:27:37 5 0 0
|
||||
475 85dfa8b7-017d-4ce7-afc5-64de56f7ed06 1586295858814 0 2020-04-09 17:27:37 5 0 0
|
||||
476 2ac75025-fcb9-44bb-8ced-00e90efd2c80 1586300163456 0 2020-04-09 17:27:37 5 0 0
|
||||
477 0dae4606-f1f4-4bff-acfc-c247dd782a2c 1586335033362 0 2020-04-09 17:27:37 5 0 0
|
||||
478 874eeb4f-b0a5-4949-b0e4-418961cf9e8c 1586337718368 0 2020-04-09 17:27:37 5 0 0
|
||||
479 1218e12f-fbfa-43f8-9e8e-d4ae61783cbe 1586342849742 0 2020-04-09 17:27:37 5 0 0
|
||||
480 bb3b9bc2-6d68-466c-9db0-4692d07bd61c 1586345840498 0 2020-04-09 17:27:37 5 0 0
|
||||
481 3996872b-3ea9-4d6e-9f82-751478b2082c 1586346906209 0 2020-04-09 17:27:37 5 0 0
|
||||
482 de5c9362-096d-4eb0-9dc8-fc01b9e7a8ac 1586347791766 0 2020-04-09 17:27:37 5 0 0
|
||||
483 794d0762-faca-4825-b9bb-f7b20844ea6b 1586350295953 0 2020-04-09 17:27:37 5 0 0
|
||||
484 9851d252-01c4-49e8-90a9-c810d77d3a31 1586351409125 0 2020-04-09 17:27:37 5 0 0
|
||||
485 ce374cb8-9aca-4ad0-9373-31c3922bf6f6 1586351747318 0 2020-04-09 17:27:37 5 0 0
|
||||
486 57672c73-aff2-4db7-a227-6cca0e31dc82 1586353523457 0 2020-04-09 17:27:37 5 0 0
|
||||
487 088ab91d-a9c5-4eaf-96ba-dba53a21aada 1586354612521 0 2020-
|
||||
04-09 17:27:37 5 0 0
|
||||
488 9401b88c-5f88-403a-b7de-d6d05299b699 1586357515388 0 2020-04-09 17:27:37 5 0 0
|
||||
489 f20bd1e0-aef5-4479-aa75-a8f5d4b540ab 1586358260587 0 2020-04-09 17:27:37 5 0 0
|
||||
490 af3f7b70-6c1a-4800-b6a7-6adf6e371520 1586358923465 0 2020-04-09 17:27:37 5 0 0
|
||||
491 aa7a2278-ea93-4dec-a705-3c97f614b89b 1586359608551 0 2020-04-09 17:27:37 5 0 0
|
||||
492 eec2d3dd-a1d9-4b7c-9c1e-ad08f8a2cf3d 1586364579361 0 2020-04-09 17:27:37 5 0 0
|
||||
493 958c8711-cd5d-404d-aa52-f86f2761153d 1586364708939 0 2020-04-09 17:27:37 5 0 0
|
||||
494 3b25878e-2ecd-43f9-a4b3-3a5b70c24065 1586365564943 0 2020-04-09 17:27:37 5 0 0
|
||||
495 55bfa25d-e21d-40b1-9245-6057d1963577 1586416768134 0 2020-04-09 17:27:37 5 0 0
|
||||
496 2cfd6522-990e-4fac-9957-6a2181e75feb 0 2020-04-13 09:53:17 2 0 0
|
||||
497 393fab79-072d-4065-b2f5-63e1433fe487 0 2020-04-13 09:53:18 2 0 0
|
||||
498 8fa74e63-29c3-43c9-9ba9-d1caa12eac1c 0 2020-04-14 10:49:56 0 0 0
|
||||
499 a12bd6b4-0af9-4b0f-b5eb-e23dec552225 0 2020-04-14 10:50:24 0 0 0
|
||||
500 3f28dffd-eb87-43c4-8a48-e2b0fe92d3f2 0 2020-04-14 10:50:26 0 0 0
|
||||
501 baec10b1-a758-4bf1-ba90-fca66fe8dedf 0 2020-04-14 10:50:27 0 0 0
|
||||
502 6598fdee-2505-41fd-b611-ccc9615506b8 0 2020-04-14 10:50:28 0 0 0
|
||||
id ip userID createDate lastAccess isScript
|
||||
------------------------------------ ---------------- ---------- ------------------- ------------------- ----------
|
||||
de88a6c9-10b1-415d-99a8-0a35af22ab3a ::ffff:127.0.0.1 3 2020-04-09 17:28:47 2020-04-09 17:30:28 1
|
||||
0b65d71e-c494-4995-a94b-95dc040c4e44 ::ffff:127.0.0.1 9 2020-04-09 17:32:12 2020-04-09 17:32:15 1
|
||||
e52883e1-d2ca-4e75-8917-521a1f873d47 ::ffff:127.0.0.1 7 2020-04-13 09:32:53 2020-04-13 10:21:28 0
|
||||
1d73e2ef-1669-4de5-877b-6d3382706342 ::ffff:127.0.0.1 8 2020-04-13 11:30:17 2020-04-13 11:37:41 0
|
||||
|
||||
|
||||
|
||||
|
||||
5de14b32-8fe0-4a05-8f1e-b113d10f4ae7 ::ffff:127.0.0.1 1 2020-04-13 14:45:04 2020-04-13 19:29:19 0
|
||||
dcc18733-7cf9-4078-acbe-cdc8b8a1e01c ::ffff:127.0.0.1 2 2020-04-14 10:13:53 2020-04-14 11:21:06 0
|
||||
5d8a00b5-9949-4003-b10a-f84b930602ba ::ffff:127.0.0.1 6 2020-04-15 15:33:00 2020-04-15 16:00:47 0
|
||||
id ip count lastDate
|
||||
---------- ---------------- ---------- -------------------
|
||||
1 ::ffff:127.0.0.1 2 2020-04-09 17:32:09
|
||||
accessID userID ip date sessionID
|
||||
---------- ---------- ---------------- ------------------- ------------------------------------
|
||||
1 3 ::ffff:127.0.0.1 2020-04-09 17:28:47 de88a6c9-10b1-415d-99a8-0a35af22ab3a
|
||||
2 9 ::ffff:127.0.0.1 2020-04-09 17:32:12 0b65d71e-c494-4995-a94b-95dc040c4e44
|
||||
3 7 ::ffff:127.0.0.1 2020-04-13 09:32:54 e52883e1-d2ca-4e75-8917-521a1f873d47
|
||||
4 8 ::ffff:127.0.0.1 2020-04-13 11:30:17 1d73e2ef-1669-4de5-877b-6d3382706342
|
||||
5 1 ::ffff:127.0.0.1 2020-04-13 14:45:04 5de14b32-8fe0-4a05-8f1e-b113d10f4ae7
|
||||
6 2 ::ffff:127.0.0.1 2020-04-14 10:13:53 dcc18733-7cf9-4078-acbe-cdc8b8a1e01c
|
||||
7 6 ::ffff:127.0.0.1 2020-04-15 15:33:00 5d8a00b5-9949-4003-b10a-f84b930602ba
|
||||
accesses sessions users veteranPWRequests
|
File diff suppressed because one or more lines are too long
|
@ -1,7 +1,7 @@
|
|||
// https://www.sqlitetutorial.net/sqlite-nodejs/
|
||||
// https://github.com/JoshuaWise/better-sqlite3/blob/HEAD/docs/api.md
|
||||
|
||||
module.exports = {
|
||||
export default {
|
||||
GetDB,
|
||||
AddColumn,
|
||||
TableInfo,
|
||||
|
@ -14,9 +14,9 @@ module.exports = {
|
|||
CloseDB,
|
||||
}
|
||||
|
||||
const Sqlite = require('better-sqlite3')
|
||||
const logger = require('../utils/logger.js')
|
||||
const utils = require('../utils/utils.js')
|
||||
import Sqlite from 'better-sqlite3'
|
||||
import logger from '../utils/logger'
|
||||
import utils from '../utils/utils'
|
||||
|
||||
const debugLog = process.env.NS_SQL_DEBUG_LOG
|
||||
|
||||
|
@ -40,7 +40,7 @@ function GetSqlQuerry(conditions, type) {
|
|||
|
||||
// -------------------------------------------------------------------------
|
||||
|
||||
function GetDB(path) {
|
||||
function GetDB(path: string): any {
|
||||
utils.CreatePath(path)
|
||||
const res = new Sqlite(path)
|
||||
res.pragma('synchronous = OFF')
|
||||
|
@ -53,67 +53,70 @@ function DebugLog(msg) {
|
|||
}
|
||||
}
|
||||
|
||||
function AddColumn(db, table, col) {
|
||||
function AddColumn(db: any, table: any, col: any): any {
|
||||
try {
|
||||
const colName = Object.keys(col)[0]
|
||||
const colType = col.type
|
||||
|
||||
const s = `ALTER TABLE ${table} ADD COLUMN ${colName} ${colType}`
|
||||
const stmt = PrepareStatement(db, s)
|
||||
const command = `ALTER TABLE ${table} ADD COLUMN ${colName} ${colType}`
|
||||
const stmt = PrepareStatement(db, command)
|
||||
|
||||
return stmt.run()
|
||||
} catch (e) {
|
||||
console.error(e)
|
||||
} catch (err) {
|
||||
console.error(err)
|
||||
}
|
||||
}
|
||||
|
||||
function TableInfo(db, table) {
|
||||
function TableInfo(db: any, table: any): any {
|
||||
try {
|
||||
} catch (e) {
|
||||
console.error(e)
|
||||
}
|
||||
const s = `PRAGMA table_info(${table})`
|
||||
const stmt = PrepareStatement(db, s)
|
||||
const command = `PRAGMA table_info(${table})`
|
||||
const stmt = PrepareStatement(db, command)
|
||||
|
||||
const infoRes = stmt.all()
|
||||
const infoRes = stmt.all()
|
||||
|
||||
const s2 = `SELECT COUNT(*) FROM ${table}`
|
||||
const stmt2 = PrepareStatement(db, s2)
|
||||
const s2 = `SELECT COUNT(*) FROM ${table}`
|
||||
const stmt2 = PrepareStatement(db, s2)
|
||||
|
||||
const countRes = stmt2.get()
|
||||
const countRes = stmt2.get()
|
||||
|
||||
return {
|
||||
columns: infoRes,
|
||||
dataCount: countRes[Object.keys(countRes)[0]],
|
||||
return {
|
||||
columns: infoRes,
|
||||
dataCount: countRes[Object.keys(countRes)[0]],
|
||||
}
|
||||
} catch (err) {
|
||||
console.error(err)
|
||||
}
|
||||
}
|
||||
|
||||
function Update(db, table, newData, conditions) {
|
||||
function Update(db: any, table: any, newData: any, conditions: any): any {
|
||||
try {
|
||||
const s = `UPDATE ${table} SET ${GetSqlQuerry(
|
||||
const command = `UPDATE ${table} SET ${GetSqlQuerry(
|
||||
newData,
|
||||
'set'
|
||||
)} WHERE ${GetSqlQuerry(conditions, 'where')}`
|
||||
const stmt = PrepareStatement(db, s)
|
||||
const stmt = PrepareStatement(db, command)
|
||||
|
||||
return stmt.run()
|
||||
} catch (e) {
|
||||
console.error(e)
|
||||
} catch (err) {
|
||||
console.error(err)
|
||||
}
|
||||
}
|
||||
|
||||
function Delete(db, table, conditions) {
|
||||
function Delete(db: any, table: any, conditions: any): any {
|
||||
try {
|
||||
const s = `DELETE FROM ${table} WHERE ${GetSqlQuerry(conditions, 'where')}`
|
||||
const stmt = PrepareStatement(db, s)
|
||||
const command = `DELETE FROM ${table} WHERE ${GetSqlQuerry(
|
||||
conditions,
|
||||
'where'
|
||||
)}`
|
||||
const stmt = PrepareStatement(db, command)
|
||||
|
||||
return stmt.run()
|
||||
} catch (e) {
|
||||
console.error(e)
|
||||
} catch (err) {
|
||||
console.error(err)
|
||||
}
|
||||
}
|
||||
|
||||
function CreateTable(db, name, columns, foreignKeys) {
|
||||
function CreateTable(db: any, name: any, columns: any, foreignKeys: any): any {
|
||||
// CREATE TABLE users(pw text PRIMARY KEY NOT NULL, id number, lastIP text, notes text, loginCount
|
||||
// number, lastLogin text, lastAccess text
|
||||
//
|
||||
|
@ -143,10 +146,10 @@ function CreateTable(db, name, columns, foreignKeys) {
|
|||
}, [])
|
||||
.join(', ')
|
||||
|
||||
let fKeys = []
|
||||
const fKeys = []
|
||||
if (foreignKeys) {
|
||||
foreignKeys.forEach((f) => {
|
||||
const { keysFrom, table, keysTo } = f
|
||||
foreignKeys.forEach((foreignKey) => {
|
||||
const { keysFrom, table, keysTo } = foreignKey
|
||||
fKeys.push(
|
||||
`, FOREIGN KEY(${keysFrom.join(
|
||||
', '
|
||||
|
@ -156,37 +159,40 @@ function CreateTable(db, name, columns, foreignKeys) {
|
|||
}
|
||||
|
||||
// IF NOT EXISTS
|
||||
const s = `CREATE TABLE ${name}(${cols}${fKeys.join(', ')})`
|
||||
const stmt = PrepareStatement(db, s)
|
||||
const command = `CREATE TABLE ${name}(${cols}${fKeys.join(', ')})`
|
||||
const stmt = PrepareStatement(db, command)
|
||||
return stmt.run()
|
||||
} catch (e) {
|
||||
console.error(e)
|
||||
} catch (err) {
|
||||
console.error(err)
|
||||
}
|
||||
}
|
||||
|
||||
function SelectAll(db, from) {
|
||||
function SelectAll(db: any, from: any): any {
|
||||
try {
|
||||
const s = `SELECT * from ${from}`
|
||||
const command = `SELECT * from ${from}`
|
||||
|
||||
const stmt = PrepareStatement(db, s)
|
||||
const stmt = PrepareStatement(db, command)
|
||||
return stmt.all()
|
||||
} catch (e) {
|
||||
console.error(e)
|
||||
} catch (err) {
|
||||
console.error(err)
|
||||
}
|
||||
}
|
||||
|
||||
function Select(db, from, conditions) {
|
||||
function Select(db: any, from: any, conditions: any): any {
|
||||
try {
|
||||
const s = `SELECT * from ${from} WHERE ${GetSqlQuerry(conditions, 'where')}`
|
||||
const command = `SELECT * from ${from} WHERE ${GetSqlQuerry(
|
||||
conditions,
|
||||
'where'
|
||||
)}`
|
||||
|
||||
const stmt = PrepareStatement(db, s)
|
||||
const stmt = PrepareStatement(db, command)
|
||||
return stmt.all()
|
||||
} catch (e) {
|
||||
console.error(e)
|
||||
} catch (err) {
|
||||
console.error(err)
|
||||
}
|
||||
}
|
||||
|
||||
function Insert(db, table, data) {
|
||||
function Insert(db: any, table: any, data: any): any {
|
||||
try {
|
||||
const cols = Object.keys(data)
|
||||
.reduce((acc, key) => {
|
||||
|
@ -207,16 +213,16 @@ function Insert(db, table, data) {
|
|||
}, [])
|
||||
.join(', ')
|
||||
|
||||
const s = `INSERT INTO ${table} (${cols}) VALUES (${values})`
|
||||
const stmt = PrepareStatement(db, s)
|
||||
const command = `INSERT INTO ${table} (${cols}) VALUES (${values})`
|
||||
const stmt = PrepareStatement(db, command)
|
||||
|
||||
return stmt.run()
|
||||
} catch (e) {
|
||||
console.error(e)
|
||||
} catch (err) {
|
||||
console.error(err)
|
||||
}
|
||||
}
|
||||
|
||||
function CloseDB(db) {
|
||||
function CloseDB(db: any): void {
|
||||
db.close((err) => {
|
||||
if (err) {
|
||||
return console.error(err.message)
|
||||
|
@ -227,12 +233,12 @@ function CloseDB(db) {
|
|||
|
||||
// -------------------------------------------------------------------------
|
||||
|
||||
function PrepareStatement(db, s) {
|
||||
function PrepareStatement(db, command) {
|
||||
if (!db) {
|
||||
throw new Error(
|
||||
'DB is undefined in prepare statement! DB action called with undefined db'
|
||||
)
|
||||
}
|
||||
DebugLog(s)
|
||||
return db.prepare(s)
|
||||
DebugLog(command)
|
||||
return db.prepare(command)
|
||||
}
|
496
src/utils/ids
496
src/utils/ids
|
@ -1,496 +0,0 @@
|
|||
1572270779259
|
||||
1572281342041
|
||||
1572394794266
|
||||
1572603975179
|
||||
1572612915747
|
||||
1572621200346
|
||||
1572703783416
|
||||
1572805169940
|
||||
1572896358505
|
||||
1572905784217
|
||||
1572909056982
|
||||
1572962332049
|
||||
1572985162947
|
||||
1572996033475
|
||||
1573133044933
|
||||
1573136314984
|
||||
1573140815020
|
||||
1573228693011
|
||||
1573329941290
|
||||
1573396722168
|
||||
1573396895820
|
||||
1573402341355
|
||||
1573410711027
|
||||
1573424473939
|
||||
1573479972820
|
||||
1573514811120
|
||||
1573660950867
|
||||
1573748376830
|
||||
1573855439026
|
||||
1574007410951
|
||||
1574033340418
|
||||
1574074087046
|
||||
1574076814225
|
||||
1574076864353
|
||||
1574077272636
|
||||
1574078697615
|
||||
1574078970482
|
||||
1574082123907
|
||||
1574085823334
|
||||
1574089044482
|
||||
1574089379003
|
||||
1574090624141
|
||||
1574092371238
|
||||
1574101279997
|
||||
1574124634646
|
||||
1574162935938
|
||||
1574164858945
|
||||
1574166782425
|
||||
1574182981119
|
||||
1574186786069
|
||||
1574197592300
|
||||
1574253542100
|
||||
1574261650379
|
||||
1574271939999
|
||||
1574296313340
|
||||
1574332666655
|
||||
1574516495733
|
||||
1574536274693
|
||||
1574546047670
|
||||
1574549559072
|
||||
1574619311351
|
||||
1574693821228
|
||||
1574701041941
|
||||
1575043480252
|
||||
1575043824428
|
||||
1575059557969
|
||||
1575237166613
|
||||
1575309241351
|
||||
1575502840565
|
||||
1575566700218
|
||||
1575645175090
|
||||
1575727001238
|
||||
1575731897377
|
||||
1575811342547
|
||||
1575825001678
|
||||
1575851111714
|
||||
1575988580003
|
||||
1576008784558
|
||||
1576095955140
|
||||
1576110824780
|
||||
1576155714954
|
||||
1576170697100
|
||||
1576178942217
|
||||
1576199121100
|
||||
1576285383104
|
||||
1576433101578
|
||||
1576594564269
|
||||
1576604050195
|
||||
1576663970202
|
||||
1576745689670
|
||||
1576883560968
|
||||
1577004560619
|
||||
1577297334851
|
||||
1577299054872
|
||||
1577550024424
|
||||
1577908652191
|
||||
1577911620176
|
||||
1577967339210
|
||||
1577974646965
|
||||
1577991656395
|
||||
1578001446771
|
||||
1578029505468
|
||||
1578067960632
|
||||
1578075721685
|
||||
1578082384610
|
||||
1578092298983
|
||||
1578154868110
|
||||
1578163736711
|
||||
1578168007689
|
||||
1578227715218
|
||||
1578246872381
|
||||
1578248410194
|
||||
1578253148563
|
||||
1578254461549
|
||||
1578395717132
|
||||
1579770952398
|
||||
1581390532439
|
||||
1581519515820
|
||||
1581549978663
|
||||
1581596348450
|
||||
1581597551276
|
||||
1581601838401
|
||||
1581603791197
|
||||
1581781021841
|
||||
1581861008465
|
||||
1581878147376
|
||||
1581896184052
|
||||
1581942075702
|
||||
1581957666672
|
||||
1581958676459
|
||||
1581984049531
|
||||
1582023234165
|
||||
1582027710125
|
||||
1582051392823
|
||||
1582062113009
|
||||
1582063394328
|
||||
1582107947828
|
||||
1582130108663
|
||||
1582138883656
|
||||
1582153316114
|
||||
1582194817794
|
||||
1582195200135
|
||||
1582196062056
|
||||
1582226390041
|
||||
1582226900127
|
||||
1582233806767
|
||||
1582291441711
|
||||
1582296563420
|
||||
1582311026147
|
||||
1582330762497
|
||||
1582375033444
|
||||
1582387766854
|
||||
1582390473317
|
||||
1582392619586
|
||||
1582393433046
|
||||
1582399198100
|
||||
1582464931527
|
||||
1582491086196
|
||||
1582547912034
|
||||
1582568768503
|
||||
1582587514909
|
||||
1582648026004
|
||||
1582650387161
|
||||
1582652449982
|
||||
1582664369720
|
||||
1582670675636
|
||||
1582815356529
|
||||
1582841402446
|
||||
1582990834844
|
||||
1583001904301
|
||||
1583080582911
|
||||
1583142880954
|
||||
1583143200732
|
||||
1583159163213
|
||||
1583160228550
|
||||
1583160306958
|
||||
1583160695265
|
||||
1583161372006
|
||||
1583172765342
|
||||
1583183356082
|
||||
1583186419728
|
||||
1583226286797
|
||||
1583247895934
|
||||
1583251259038
|
||||
1583251638590
|
||||
1583263737418
|
||||
1583268285208
|
||||
1583270831300
|
||||
1583311961019
|
||||
1583332004090
|
||||
1583349490158
|
||||
1583587913765
|
||||
1583590529228
|
||||
1583591489687
|
||||
1583595744779
|
||||
1583595850732
|
||||
1583614332843
|
||||
1583667551584
|
||||
1583674836966
|
||||
1583679823286
|
||||
1583680240161
|
||||
1583685754617
|
||||
1583693216866
|
||||
1583700140002
|
||||
1583755699256
|
||||
1583758800572
|
||||
1583762870257
|
||||
1583775336546
|
||||
1583788723637
|
||||
1583792065582
|
||||
1583802516411
|
||||
1583837948384
|
||||
1583838417493
|
||||
1583852501375
|
||||
1583858232460
|
||||
1583863517432
|
||||
1583868577224
|
||||
1583876790752
|
||||
1583921143466
|
||||
1583924243856
|
||||
1583930295622
|
||||
1583942274269
|
||||
1583956760515
|
||||
1584013349557
|
||||
1584062028841
|
||||
1584106231314
|
||||
1584110068199
|
||||
1584126993751
|
||||
1584136283851
|
||||
1584152746993
|
||||
1584171033582
|
||||
1584179808101
|
||||
1584206136834
|
||||
1584225446271
|
||||
1584233410734
|
||||
1584233555804
|
||||
1584263816308
|
||||
1584299288304
|
||||
1584310411671
|
||||
1584318028312
|
||||
1584328010598
|
||||
1584492643275
|
||||
1584501460982
|
||||
1584521753537
|
||||
1584524244329
|
||||
1584528900083
|
||||
1584532738475
|
||||
1584536840452
|
||||
1584537023268
|
||||
1584556276285
|
||||
1584558443780
|
||||
1584563231194
|
||||
1584608453274
|
||||
1584612759150
|
||||
1584624097128
|
||||
1584635316060
|
||||
1584639897191
|
||||
1584640843070
|
||||
1584645879448
|
||||
1584702612348
|
||||
1584740084804
|
||||
1584795181001
|
||||
1584795467261
|
||||
1584808124327
|
||||
1584816212127
|
||||
1584822316309
|
||||
1584872148042
|
||||
1584884660250
|
||||
1584886531320
|
||||
1584896547056
|
||||
1584898876764
|
||||
1584909497670
|
||||
1584918347573
|
||||
1584951294406
|
||||
1584964512645
|
||||
1584967858937
|
||||
1584970556126
|
||||
1584970897771
|
||||
1584971888059
|
||||
1584972919248
|
||||
1584974208228
|
||||
1584974347976
|
||||
1584977367480
|
||||
1584980780571
|
||||
1584987497504
|
||||
1584988073137
|
||||
1584990182513
|
||||
1584991806849
|
||||
1584995012552
|
||||
1584999685062
|
||||
1585000590422
|
||||
1585048696136
|
||||
1585051967470
|
||||
1585057266828
|
||||
1585057823026
|
||||
1585072254158
|
||||
1585129488741
|
||||
1585136127734
|
||||
1585136727600
|
||||
1585143211102
|
||||
1585149117463
|
||||
1585150875300
|
||||
1585153667693
|
||||
1585155635457
|
||||
1585155641104
|
||||
1585158017175
|
||||
1585169475036
|
||||
1585177116158
|
||||
1585213755386
|
||||
1585215049331
|
||||
1585219084293
|
||||
1585219576010
|
||||
1585223896460
|
||||
1585227683685
|
||||
1585227777536
|
||||
1585231464979
|
||||
1585231653190
|
||||
1585234641716
|
||||
1585237227144
|
||||
1585237227144
|
||||
1585250402823
|
||||
1585256176534
|
||||
1585307276235
|
||||
1585307657547
|
||||
1585310657648
|
||||
1585311633320
|
||||
1585321281164
|
||||
1585388975837
|
||||
1585401709382
|
||||
1585418050715
|
||||
1585422857540
|
||||
1585424670902
|
||||
1585436920327
|
||||
1585438327028
|
||||
1585445773796
|
||||
1585482778210
|
||||
1585489642569
|
||||
1585491887693
|
||||
1585496721341
|
||||
1585500059799
|
||||
1585500061855
|
||||
1585501980548
|
||||
1585503827982
|
||||
1585506396741
|
||||
1585507376889
|
||||
1585517188028
|
||||
1585518462567
|
||||
1585519589761
|
||||
1585523305166
|
||||
1585531272187
|
||||
1585554409104
|
||||
1585555718412
|
||||
1585556545929
|
||||
1585557389780
|
||||
1585559252518
|
||||
1585559805077
|
||||
1585562006110
|
||||
1585566176504
|
||||
1585566995599
|
||||
1585571720030
|
||||
1585573841968
|
||||
1585578710500
|
||||
1585584802502
|
||||
1585585998646
|
||||
1585589408386
|
||||
1585591395074
|
||||
1585591401052
|
||||
1585595412917
|
||||
1585598610827
|
||||
1585666806593
|
||||
1585668264250
|
||||
1585670351545
|
||||
1585688996412
|
||||
1585701259430
|
||||
1585728869632
|
||||
1585730980019
|
||||
1585735533377
|
||||
1585736476320
|
||||
1585736904119
|
||||
1585737647436
|
||||
1585740296499
|
||||
1585740541583
|
||||
1585741850375
|
||||
1585742413020
|
||||
1585744182991
|
||||
1585745021146
|
||||
1585745201057
|
||||
1585748050386
|
||||
1585749101602
|
||||
1585755422160
|
||||
1585759101563
|
||||
1585760066353
|
||||
1585767948385
|
||||
1585769837970
|
||||
1585778716215
|
||||
1585823123245
|
||||
1585824106911
|
||||
1585826299686
|
||||
1585828123510
|
||||
1585829811184
|
||||
1585830652968
|
||||
1585833443154
|
||||
1585834176116
|
||||
1585840388140
|
||||
1585841351257
|
||||
1585856239202
|
||||
1585862988493
|
||||
1585871928037
|
||||
1585905206088
|
||||
1585912371965
|
||||
1585912460337
|
||||
1585913135436
|
||||
1585913444621
|
||||
1585914143202
|
||||
1585914752752
|
||||
1585915196335
|
||||
1585916033191
|
||||
1585916508756
|
||||
1585917397147
|
||||
1585917624356
|
||||
1585919794898
|
||||
1585920724262
|
||||
1585923154928
|
||||
1585927022895
|
||||
1585948263565
|
||||
1585948778800
|
||||
1585986348126
|
||||
1585994315563
|
||||
1585997804444
|
||||
1586000700613
|
||||
1586010600961
|
||||
1586013473984
|
||||
1586016882017
|
||||
1586017104899
|
||||
1586017584568
|
||||
1586018930461
|
||||
1586020080690
|
||||
1586040441726
|
||||
1586081990928
|
||||
1586097122374
|
||||
1586103127003
|
||||
1586105166170
|
||||
1586109823256
|
||||
1586113332662
|
||||
1586119029414
|
||||
1586119648767
|
||||
1586123653971
|
||||
1586164913411
|
||||
1586169082603
|
||||
1586172250252
|
||||
1586172793081
|
||||
1586174925437
|
||||
1586176307990
|
||||
1586178600601
|
||||
1586188353993
|
||||
1586202966729
|
||||
1586206160610
|
||||
1586211444938
|
||||
1586212473060
|
||||
1586250716464
|
||||
1586258423684
|
||||
1586259214124
|
||||
1586260095934
|
||||
1586260602412
|
||||
1586271055617
|
||||
1586278951426
|
||||
1586280264442
|
||||
1586281268199
|
||||
1586281712612
|
||||
1586282330634
|
||||
1586284501030
|
||||
1586284817429
|
||||
1586285785447
|
||||
1586289130058
|
||||
1586294493249
|
||||
1586295858814
|
||||
1586300163456
|
||||
1586335033362
|
||||
1586337718368
|
||||
1586342849742
|
||||
1586345840498
|
||||
1586346906209
|
||||
1586347791766
|
||||
1586350295953
|
||||
1586351409125
|
||||
1586351747318
|
||||
1586353523457
|
||||
1586354612521
|
||||
1586357515388
|
||||
1586358260587
|
||||
1586358923465
|
||||
1586359608551
|
||||
1586364579361
|
||||
1586364708939
|
||||
1586365564943
|
||||
1586416768134
|
|
@ -18,13 +18,13 @@
|
|||
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
module.exports = {
|
||||
export default {
|
||||
LogId: LogId,
|
||||
Load: Load,
|
||||
}
|
||||
|
||||
import utils from '../utils/utils.js'
|
||||
import logger from '../utils/logger.js'
|
||||
import utils from '../utils/utils'
|
||||
import logger from '../utils/logger'
|
||||
const idStatFile = 'stats/idstats'
|
||||
const idVStatFile = 'stats/idvstats'
|
||||
|
||||
|
@ -34,7 +34,7 @@ let idStatsData = {}
|
|||
let idvStatsData = {}
|
||||
let writes = 0
|
||||
|
||||
function Load() {
|
||||
function Load(): void {
|
||||
try {
|
||||
idStatsData = utils.ReadJSON(idStatFile)
|
||||
} catch (err) {
|
||||
|
@ -62,7 +62,7 @@ function LogId(
|
|||
subj: string,
|
||||
newQuestions: number,
|
||||
allQuestions: number
|
||||
) {
|
||||
): void {
|
||||
Inc(id, subj, newQuestions, allQuestions)
|
||||
AddVisitStat(id, subj, newQuestions, allQuestions)
|
||||
Save()
|
||||
|
@ -76,7 +76,7 @@ function AddSubjToList(list: Array<string>, subj: string) {
|
|||
}
|
||||
|
||||
function Inc(
|
||||
value: string,
|
||||
value: number,
|
||||
subj: string,
|
||||
newQuestions: number,
|
||||
allQuestions: number
|
||||
|
@ -96,7 +96,7 @@ function Inc(
|
|||
}
|
||||
|
||||
function AddVisitStat(
|
||||
name: string,
|
||||
name: number,
|
||||
subj: string,
|
||||
newQuestions: number,
|
||||
allQuestions: number
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
const hr =
|
||||
'---------------------------------------------------------------------------------'
|
||||
|
||||
module.exports = {
|
||||
export default {
|
||||
GetDateString: GetDateString,
|
||||
Log: Log,
|
||||
DebugLog: DebugLog,
|
||||
|
@ -37,6 +37,7 @@ module.exports = {
|
|||
|
||||
const DELIM = C('green') + '|' + C()
|
||||
|
||||
// import express from 'express'
|
||||
import utils from '../utils/utils'
|
||||
const vlogDir = './stats/vlogs/'
|
||||
const logDir = './stats/logs/'
|
||||
|
@ -65,17 +66,17 @@ let writes = 0
|
|||
|
||||
let noLogips = []
|
||||
|
||||
function setNewLogfileName() {
|
||||
function setNewLogfileName(): void {
|
||||
logFileName = utils.GetDateString(true)
|
||||
}
|
||||
|
||||
function GetDateString() {
|
||||
function GetDateString(): string {
|
||||
const date = new Date()
|
||||
const dateString = utils.GetDateString()
|
||||
return GetRandomColor(date.getHours().toString()) + dateString + C()
|
||||
}
|
||||
|
||||
function DebugLog(msg, name, lvl) {
|
||||
function DebugLog(msg: string | object, name: string, lvl: number): void {
|
||||
if (lvl <= debugLevel) {
|
||||
if (msg === 'hr') {
|
||||
msg = hr
|
||||
|
@ -94,18 +95,26 @@ function DebugLog(msg, name, lvl) {
|
|||
}
|
||||
}
|
||||
|
||||
function Log(msg, color) {
|
||||
function Log(msg: string | object, color?: string): void {
|
||||
let log = msg
|
||||
if (typeof s !== 'object') {
|
||||
if (typeof msg !== 'object') {
|
||||
const delimiter = DELIM + C(color)
|
||||
log = C(color) + GetDateString() + delimiter + msg + C()
|
||||
}
|
||||
|
||||
console.log(log)
|
||||
utils.AppendToFile(log, logDir + logFileName)
|
||||
utils.AppendToFile(
|
||||
typeof log === 'string' ? log : JSON.stringify(log),
|
||||
logDir + logFileName
|
||||
)
|
||||
}
|
||||
|
||||
function LogReq(req, toFile, sc) {
|
||||
// FIXME: express.Request type, but with .cookies and .session
|
||||
function LogReq(
|
||||
req: any /*express.Request*/,
|
||||
toFile?: boolean,
|
||||
sc?: string
|
||||
): void {
|
||||
try {
|
||||
const ip = req.headers['cf-connecting-ip'] || req.connection.remoteAddress
|
||||
|
||||
|
@ -159,7 +168,7 @@ function LogReq(req, toFile, sc) {
|
|||
}
|
||||
} catch (err) {
|
||||
console.log(err)
|
||||
Log('Error at logging lol', GetColor('redbg'), true)
|
||||
Log('Error at logging lol', GetColor('redbg'))
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -182,7 +191,7 @@ function setNoLogReadInterval() {
|
|||
parseNoLogFile(utils.ReadFile(nologFile))
|
||||
}
|
||||
|
||||
function Load() {
|
||||
function Load(): void {
|
||||
Log('Loading logger...')
|
||||
try {
|
||||
uvData = JSON.parse(utils.ReadFile(uStatsFile))
|
||||
|
@ -217,7 +226,12 @@ function Load() {
|
|||
setNoLogReadInterval()
|
||||
}
|
||||
|
||||
function LogStat(url, ip, hostname, userId) {
|
||||
function LogStat(
|
||||
url: string,
|
||||
ip: string,
|
||||
hostname: string,
|
||||
userId: number
|
||||
): void {
|
||||
const nolog = noLogips.some((noLogips) => {
|
||||
return ip.includes(noLogips)
|
||||
})
|
||||
|
@ -327,11 +341,11 @@ function Save() {
|
|||
}
|
||||
}
|
||||
|
||||
function logHashed(msg) {
|
||||
function logHashed(msg: string): string {
|
||||
return GetRandomColor(msg.toString()) + msg + C()
|
||||
}
|
||||
|
||||
function GetRandomColor(msg) {
|
||||
function GetRandomColor(msg): string {
|
||||
if (!msg) {
|
||||
return 'red'
|
||||
}
|
||||
|
@ -342,11 +356,11 @@ function GetRandomColor(msg) {
|
|||
return C(colors[res % colors.length])
|
||||
}
|
||||
|
||||
function GetColor(color) {
|
||||
function GetColor(color: string): string {
|
||||
return color
|
||||
}
|
||||
|
||||
function C(color?: string) {
|
||||
function C(color?: string): string {
|
||||
if (color !== undefined) {
|
||||
color = color.toLowerCase()
|
||||
}
|
||||
|
|
|
@ -1,39 +0,0 @@
|
|||
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "Az alábbi karakterisztikák",
|
||||
"A": "→ p-csatornás növekményes MOSFET transzfer karakterisztikája, → p-csatornás növekményes MOSFET kimenő karakterisztikája.",
|
||||
"data": {
|
||||
"type": "image",
|
||||
"images": [
|
||||
"Screen Shot 2020-03-21 a",
|
||||
"Screen Shot 2020-03-21 a"
|
||||
]
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "Az alábbi karakterisztikák",
|
||||
"A": "→ p-csatornás növekményes MOSFET kimenő karakterisztikája, → p-csatornás növekményes MOSFET transzfer karakterisztikája.",
|
||||
"data": {
|
||||
"type": "image",
|
||||
"images": [
|
||||
"Screen Shot 2020-03-21 a",
|
||||
"Screen Shot 2020-03-21 a"
|
||||
]
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": 100,
|
||||
"matchedSubjName": "Digitális technika II.",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
|
@ -1,31 +0,0 @@
|
|||
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "A technika és az orvostudomány fejlődése nem az ember teljesebb megismerését, hanem az orvos-beteg kapcsolat elszemélytelenedését szolgálta.",
|
||||
"A": "Igaz",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "A technika és az orvostudomány fejlődése nem az ember teljesebb megismerését, hanem az orvos-beteg kapcsolat elszemélytelenedését szolgálta.",
|
||||
"A": "Igaz",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Digitális rendszerek",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
|
@ -1,31 +0,0 @@
|
|||
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "Zsugorfóliás gyűjtőcsomagolásokból képzett egységrakományok rögzítésére LDPE-PP társított fóliát alkalmaznak, hogy megakadályozzák a két fóliaréteg hő hatására bekövetkező összetapadását.",
|
||||
"A": "Igaz",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "Zsugorfóliás gyűjtőcsomagolásokból képzett egységrakományok rögzítésére LDPE-PP társított fóliát alkalmaznak, hogy megakadályozzák a két fóliaréteg hő hatására bekövetkező összetapadását.",
|
||||
"A": "Igaz",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Csomagolásgépesítés (online6)",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
|
@ -1,31 +0,0 @@
|
|||
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "R S Qn 1 0 0 Qn 0 1 1 1 0 1 1 1 X",
|
||||
"A": "Hamis",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "R S Qn 1 0 0 Qn 0 1 1 1 0 0 1 1 1",
|
||||
"A": "Hamis",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Elektronika",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
File diff suppressed because it is too large
Load diff
|
@ -1,841 +0,0 @@
|
|||
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "Adott az alábbi állapottábla. Mit tudunk a hálózatról? Egészítse ki az alábbi mondatokat! A hálózat üres specifikált hálózat. A hálózat üres modell szerint van megadva.",
|
||||
"A": "Adott az alábbi állapottábla. Mit tudunk a hálózatról? Egészítse ki az alábbi mondatokat! A hálózat [nem teljesen] specifikált hálózat. A hálózat [Mealy] modell szerint van megadva.",
|
||||
"data": {
|
||||
"type": "image",
|
||||
"images": [
|
||||
"8Pk07dc4o6s0gAAAAASUVORK5CYII="
|
||||
]
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "Adott az alábbi állapottábla. Mit tudunk a hálózatról? Egészítse ki az alábbi mondatokat! A hálózat üres specifikált hálózat. A hálózat üres modell szerint van megadva.",
|
||||
"A": "Adott az alábbi állapottábla. Mit tudunk a hálózatról? Egészítse ki az alábbi mondatokat! A hálózat [nem teljesen] specifikált hálózat. A hálózat [Mealy] modell szerint van megadva.",
|
||||
"data": {
|
||||
"type": "image",
|
||||
"images": [
|
||||
"8Pk07dc4o6s0gAAAAASUVORK5CYII="
|
||||
]
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": 100,
|
||||
"matchedSubjName": "Digitális rendszerek",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "Adott az alábbi állapottábla. Mit tudunk a hálózatról? Egészítse ki az alábbi mondatokat! A hálózat üres specifikált hálózat. A hálózat üres modell szerint van megadva.",
|
||||
"A": "Adott az alábbi állapottábla. Mit tudunk a hálózatról? Egészítse ki az alábbi mondatokat! A hálózat [nem teljesen] specifikált hálózat. A hálózat [Mealy] modell szerint van megadva.",
|
||||
"data": {
|
||||
"type": "image",
|
||||
"images": [
|
||||
"wAAAABJRU5ErkJggg=="
|
||||
]
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "Adott az alábbi állapottábla. Mit tudunk a hálózatról? Egészítse ki az alábbi mondatokat! A hálózat üres specifikált hálózat. A hálózat üres modell szerint van megadva.",
|
||||
"A": "Adott az alábbi állapottábla. Mit tudunk a hálózatról? Egészítse ki az alábbi mondatokat! A hálózat [nem teljesen] specifikált hálózat. A hálózat [Mealy] modell szerint van megadva.",
|
||||
"data": {
|
||||
"type": "image",
|
||||
"images": [
|
||||
"wAAAABJRU5ErkJggg=="
|
||||
]
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": 100,
|
||||
"matchedSubjName": "Digitális rendszerek",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "Adott az alábbi állapotgráf. Mit tudunk a hálózatról? Egészítse ki az alábbi mondatokat! A hálózat üres specifikált hálózat. A hálózat üres modell szerint van megadva.",
|
||||
"A": "Adott az alábbi állapotgráf. Mit tudunk a hálózatról? Egészítse ki az alábbi mondatokat! A hálózat [nem teljesen] specifikált hálózat. A hálózat [Mealy] modell szerint van megadva.",
|
||||
"data": {
|
||||
"type": "image",
|
||||
"images": [
|
||||
"wdddZO0ue28OQAAAABJRU5ErkJggg="
|
||||
]
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "Adott az alábbi állapotgráf. Mit tudunk a hálózatról? Egészítse ki az alábbi mondatokat! A hálózat üres specifikált hálózat. A hálózat üres modell szerint van megadva.",
|
||||
"A": "Adott az alábbi állapotgráf. Mit tudunk a hálózatról? Egészítse ki az alábbi mondatokat! A hálózat [nem teljesen] specifikált hálózat. A hálózat [Mealy] modell szerint van megadva.",
|
||||
"data": {
|
||||
"type": "image",
|
||||
"images": [
|
||||
"wdddZO0ue28OQAAAABJRU5ErkJggg="
|
||||
]
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": 100,
|
||||
"matchedSubjName": "Digitális rendszerek",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "Adott az alábbi állapotgráf. Mit tudunk a hálózatról? Egészítse ki az alábbi mondatokat! A hálózat üres specifikált hálózat. A hálózat üres modell szerint van megadva.",
|
||||
"A": "Adott az alábbi állapotgráf. Mit tudunk a hálózatról? Egészítse ki az alábbi mondatokat! A hálózat [nem teljesen] specifikált hálózat. A hálózat [Mealy] modell szerint van megadva.",
|
||||
"data": {
|
||||
"type": "image",
|
||||
"images": [
|
||||
"4fRJy0Gzh9rbQAAAAASUVORK5CYII="
|
||||
]
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "Adott az alábbi állapotgráf. Mit tudunk a hálózatról? Egészítse ki az alábbi mondatokat! A hálózat üres specifikált hálózat. A hálózat üres modell szerint van megadva.",
|
||||
"A": "Adott az alábbi állapotgráf. Mit tudunk a hálózatról? Egészítse ki az alábbi mondatokat! A hálózat [nem teljesen] specifikált hálózat. A hálózat [Mealy] modell szerint van megadva.",
|
||||
"data": {
|
||||
"type": "image",
|
||||
"images": [
|
||||
"4fRJy0Gzh9rbQAAAAASUVORK5CYII="
|
||||
]
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": 100,
|
||||
"matchedSubjName": "Digitális rendszerek",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "Adott az alábbi állapotgráf. Mit tudunk a hálózatról? Egészítse ki az alábbi mondatokat! A hálózat üres specifikált hálózat. A hálózat üres modell szerint van megadva.",
|
||||
"A": "Adott az alábbi állapotgráf. Mit tudunk a hálózatról? Egészítse ki az alábbi mondatokat! A hálózat [teljesen] specifikált hálózat. A hálózat [Moore] modell szerint van megadva.",
|
||||
"data": {
|
||||
"type": "image",
|
||||
"images": [
|
||||
"OBNAAAAAElFTkSuQmCC"
|
||||
]
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "Adott az alábbi állapotgráf. Mit tudunk a hálózatról? Egészítse ki az alábbi mondatokat! A hálózat üres specifikált hálózat. A hálózat üres modell szerint van megadva.",
|
||||
"A": "Adott az alábbi állapotgráf. Mit tudunk a hálózatról? Egészítse ki az alábbi mondatokat! A hálózat [teljesen] specifikált hálózat. A hálózat [Moore] modell szerint van megadva.",
|
||||
"data": {
|
||||
"type": "image",
|
||||
"images": [
|
||||
"OBNAAAAAElFTkSuQmCC"
|
||||
]
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": 100,
|
||||
"matchedSubjName": "Digitális rendszerek",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "Adott az alábbi állapotgráf. Mit tudunk a hálózatról? Egészítse ki az alábbi mondatokat! A hálózat üres specifikált hálózat. A hálózat üres modell szerint van megadva.",
|
||||
"A": "Adott az alábbi állapotgráf. Mit tudunk a hálózatról? Egészítse ki az alábbi mondatokat! A hálózat [nem teljesen] specifikált hálózat. A hálózat [Mealy] modell szerint van megadva.",
|
||||
"data": {
|
||||
"type": "image",
|
||||
"images": [
|
||||
"RhROWBwgAAAABJRU5ErkJggg=="
|
||||
]
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "Adott az alábbi állapotgráf. Mit tudunk a hálózatról? Egészítse ki az alábbi mondatokat! A hálózat üres specifikált hálózat. A hálózat üres modell szerint van megadva.",
|
||||
"A": "Adott az alábbi állapotgráf. Mit tudunk a hálózatról? Egészítse ki az alábbi mondatokat! A hálózat [nem teljesen] specifikált hálózat. A hálózat [Mealy] modell szerint van megadva.",
|
||||
"data": {
|
||||
"type": "image",
|
||||
"images": [
|
||||
"RhROWBwgAAAABJRU5ErkJggg=="
|
||||
]
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": 100,
|
||||
"matchedSubjName": "Digitális rendszerek",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "Adott az alábbi állapottábla. Mit tudunk a hálózatról? Egészítse ki az alábbi mondatokat! A hálózat üres specifikált hálózat. A hálózat üres modell szerint van megadva.",
|
||||
"A": "Adott az alábbi állapottábla. Mit tudunk a hálózatról? Egészítse ki az alábbi mondatokat! A hálózat [teljesen] specifikált hálózat. A hálózat [Moore] modell szerint van megadva.",
|
||||
"data": {
|
||||
"type": "image",
|
||||
"images": [
|
||||
"XRgToK5AAAAABJRU5ErkJggg=="
|
||||
]
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "Adott az alábbi állapottábla. Mit tudunk a hálózatról? Egészítse ki az alábbi mondatokat! A hálózat üres specifikált hálózat. A hálózat üres modell szerint van megadva.",
|
||||
"A": "Adott az alábbi állapottábla. Mit tudunk a hálózatról? Egészítse ki az alábbi mondatokat! A hálózat [teljesen] specifikált hálózat. A hálózat [Moore] modell szerint van megadva.",
|
||||
"data": {
|
||||
"type": "image",
|
||||
"images": [
|
||||
"XRgToK5AAAAABJRU5ErkJggg=="
|
||||
]
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": 100,
|
||||
"matchedSubjName": "Digitális rendszerek",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "Adott az alábbi állapotgráf. Mit tudunk a hálózatról? Egészítse ki az alábbi mondatokat! A hálózat üres specifikált hálózat. A hálózat üres modell szerint van megadva.",
|
||||
"A": "Adott az alábbi állapotgráf. Mit tudunk a hálózatról? Egészítse ki az alábbi mondatokat! A hálózat [teljesen] specifikált hálózat. A hálózat [Moore] modell szerint van megadva.",
|
||||
"data": {
|
||||
"type": "image",
|
||||
"images": [
|
||||
"kuejL9jFGGEAAAAASUVORK5CYII="
|
||||
]
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "Adott az alábbi állapotgráf. Mit tudunk a hálózatról? Egészítse ki az alábbi mondatokat! A hálózat üres specifikált hálózat. A hálózat üres modell szerint van megadva.",
|
||||
"A": "Adott az alábbi állapotgráf. Mit tudunk a hálózatról? Egészítse ki az alábbi mondatokat! A hálózat [teljesen] specifikált hálózat. A hálózat [Moore] modell szerint van megadva.",
|
||||
"data": {
|
||||
"type": "image",
|
||||
"images": [
|
||||
"kuejL9jFGGEAAAAASUVORK5CYII="
|
||||
]
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": 100,
|
||||
"matchedSubjName": "Digitális rendszerek",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "Adott az alábbi állapotgráf. Mit tudunk a hálózatról? Egészítse ki az alábbi mondatokat! A hálózat üres specifikált hálózat. A hálózat üres modell szerint van megadva.",
|
||||
"A": "Adott az alábbi állapotgráf. Mit tudunk a hálózatról? Egészítse ki az alábbi mondatokat! A hálózat [nem teljesen] specifikált hálózat. A hálózat [Mealy] modell szerint van megadva.",
|
||||
"data": {
|
||||
"type": "image",
|
||||
"images": [
|
||||
"Fes5JSlCKvYPokA5I9VD5CS0XB9KCL"
|
||||
]
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "Adott az alábbi állapotgráf. Mit tudunk a hálózatról? Egészítse ki az alábbi mondatokat! A hálózat üres specifikált hálózat. A hálózat üres modell szerint van megadva.",
|
||||
"A": "Adott az alábbi állapotgráf. Mit tudunk a hálózatról? Egészítse ki az alábbi mondatokat! A hálózat [nem teljesen] specifikált hálózat. A hálózat [Mealy] modell szerint van megadva.",
|
||||
"data": {
|
||||
"type": "image",
|
||||
"images": [
|
||||
"Fes5JSlCKvYPokA5I9VD5CS0XB9KCL"
|
||||
]
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": 100,
|
||||
"matchedSubjName": "Digitális rendszerek",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "Adott az alábbi állapotgráf. Mit tudunk a hálózatról? Egészítse ki az alábbi mondatokat! A hálózat üres specifikált hálózat. A hálózat üres modell szerint van megadva.",
|
||||
"A": "Adott az alábbi állapotgráf. Mit tudunk a hálózatról? Egészítse ki az alábbi mondatokat! A hálózat [teljesen] specifikált hálózat. A hálózat [Moore] modell szerint van megadva.",
|
||||
"data": {
|
||||
"type": "image",
|
||||
"images": [
|
||||
"3Yh0VGDDjrooAE6atBBBx00QEcNOui"
|
||||
]
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "Adott az alábbi állapotgráf. Mit tudunk a hálózatról? Egészítse ki az alábbi mondatokat! A hálózat üres specifikált hálózat. A hálózat üres modell szerint van megadva.",
|
||||
"A": "Adott az alábbi állapotgráf. Mit tudunk a hálózatról? Egészítse ki az alábbi mondatokat! A hálózat [teljesen] specifikált hálózat. A hálózat [Moore] modell szerint van megadva.",
|
||||
"data": {
|
||||
"type": "image",
|
||||
"images": [
|
||||
"3Yh0VGDDjrooAE6atBBBx00QEcNOui"
|
||||
]
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": 100,
|
||||
"matchedSubjName": "Digitális rendszerek",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "Adott az alábbi állapotgráf. Mit tudunk a hálózatról? Egészítse ki az alábbi mondatokat! A hálózat üres specifikált hálózat. A hálózat üres modell szerint van megadva.",
|
||||
"A": "Adott az alábbi állapotgráf. Mit tudunk a hálózatról? Egészítse ki az alábbi mondatokat! A hálózat [teljesen] specifikált hálózat. A hálózat [Moore] modell szerint van megadva.",
|
||||
"data": {
|
||||
"type": "image",
|
||||
"images": [
|
||||
"w9brcUztv2TFAAAAABJRU5ErkJggg="
|
||||
]
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "Adott az alábbi állapotgráf. Mit tudunk a hálózatról? Egészítse ki az alábbi mondatokat! A hálózat üres specifikált hálózat. A hálózat üres modell szerint van megadva.",
|
||||
"A": "Adott az alábbi állapotgráf. Mit tudunk a hálózatról? Egészítse ki az alábbi mondatokat! A hálózat [teljesen] specifikált hálózat. A hálózat [Moore] modell szerint van megadva.",
|
||||
"data": {
|
||||
"type": "image",
|
||||
"images": [
|
||||
"w9brcUztv2TFAAAAABJRU5ErkJggg="
|
||||
]
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": 100,
|
||||
"matchedSubjName": "Digitális rendszerek",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "Adott az alábbi állapottábla. Mit tudunk a hálózatról? Egészítse ki az alábbi mondatokat! A hálózat üres specifikált hálózat. A hálózat üres modell szerint van megadva.",
|
||||
"A": "Adott az alábbi állapottábla. Mit tudunk a hálózatról? Egészítse ki az alábbi mondatokat! A hálózat [nem teljesen] specifikált hálózat. A hálózat [Mealy] modell szerint van megadva.",
|
||||
"data": {
|
||||
"type": "image",
|
||||
"images": [
|
||||
"wPU5mq9ONxwQMAAAAASUVORK5CYII="
|
||||
]
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "Adott az alábbi állapottábla. Mit tudunk a hálózatról? Egészítse ki az alábbi mondatokat! A hálózat üres specifikált hálózat. A hálózat üres modell szerint van megadva.",
|
||||
"A": "Adott az alábbi állapottábla. Mit tudunk a hálózatról? Egészítse ki az alábbi mondatokat! A hálózat [nem teljesen] specifikált hálózat. A hálózat [Mealy] modell szerint van megadva.",
|
||||
"data": {
|
||||
"type": "image",
|
||||
"images": [
|
||||
"wPU5mq9ONxwQMAAAAASUVORK5CYII="
|
||||
]
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": 100,
|
||||
"matchedSubjName": "Digitális rendszerek",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "A memóriában tárolt adatok kiválasztását végző vezetékek a címek.",
|
||||
"A": "Igaz",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "A memóriában tárolt adatok kiválasztását végző vezetékek a címek.",
|
||||
"A": "Igaz",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Digitális rendszerek",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "Adott az alábbi kapcsolás. Határozza meg, hogy milyen állapotokat jár be a hálózat! A bejárt állapotok sorozata: RES/NRES → üres , üres , üres , üres , üres , üres , üres , üres , üres , üres , üres és újra üres",
|
||||
"A": "Adott az alábbi kapcsolás. Határozza meg, hogy milyen állapotokat jár be a hálózat! A bejárt állapotok sorozata: RES/NRES → [Eh], [Ch], [9h], [2h], [5h], [Ah], [4h], [8h], [Bh], [6h], [7h] és újra [Eh]",
|
||||
"data": {
|
||||
"type": "image",
|
||||
"images": [
|
||||
"A++xsaOCma24AAAAAElFTkSuQmCC"
|
||||
]
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "Adott az alábbi kapcsolás. Határozza meg, hogy milyen állapotokat jár be a hálózat! A bejárt állapotok sorozata: RES/NRES → üres , üres , üres , üres , üres , üres , üres , üres , üres , üres , üres és újra üres",
|
||||
"A": "Adott az alábbi kapcsolás. Határozza meg, hogy milyen állapotokat jár be a hálózat! A bejárt állapotok sorozata: RES/NRES → [Eh], [Ch], [9h], [2h], [5h], [Ah], [4h], [8h], [Bh], [6h], [7h] és újra [Eh]",
|
||||
"data": {
|
||||
"type": "image",
|
||||
"images": [
|
||||
"A++xsaOCma24AAAAAElFTkSuQmCC"
|
||||
]
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": 100,
|
||||
"matchedSubjName": "Digitális rendszerek",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "Adott az alábbi kapcsolás. Határozza meg, hogy milyen állapotokat jár be a hálózat! üres , üres törlésű számlálóval felépített hálózat. A bejárt állapotok sorozata: RES/NRES → üres , üres , üres , üres , üres , üres , üres , üres és újra üres",
|
||||
"A": "Adott az alábbi kapcsolás. Határozza meg, hogy milyen állapotokat jár be a hálózat! [Decimális], [szinkron] törlésű számlálóval felépített hálózat. A bejárt állapotok sorozata: RES/NRES → [2h], [3h], [4h], [6h], [7h], [8h], [0h], [1h] és újra [3h]",
|
||||
"data": {
|
||||
"type": "image",
|
||||
"images": [
|
||||
"wBHsxffDSYvEQAAAABJRU5ErkJggg="
|
||||
]
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "Adott az alábbi kapcsolás. Határozza meg, hogy milyen állapotokat jár be a hálózat! üres , üres törlésű számlálóval felépített hálózat. A bejárt állapotok sorozata: RES/NRES → üres , üres , üres , üres , üres , üres , üres , üres és újra üres",
|
||||
"A": "Adott az alábbi kapcsolás. Határozza meg, hogy milyen állapotokat jár be a hálózat! [Decimális], [szinkron] törlésű számlálóval felépített hálózat. A bejárt állapotok sorozata: RES/NRES → [2h], [3h], [4h], [6h], [7h], [8h], [0h], [1h] és újra [3h]",
|
||||
"data": {
|
||||
"type": "image",
|
||||
"images": [
|
||||
"wBHsxffDSYvEQAAAABJRU5ErkJggg="
|
||||
]
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": 100,
|
||||
"matchedSubjName": "Digitális rendszerek",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "Adott az alábbi kapcsolás. Határozza meg, hogy milyen állapotokat jár be a hálózat! üres , üres törlésű számlálóval felépített hálózat. A bejárt állapotok sorozata: RES/NRES → üres , üres , üres , üres , üres , üres , üres , üres és újra üres",
|
||||
"A": "Adott az alábbi kapcsolás. Határozza meg, hogy milyen állapotokat jár be a hálózat! [Decimális], [aszinkron] törlésű számlálóval felépített hálózat. A bejárt állapotok sorozata: RES/NRES → [0h], [1h], [2h], [3h], [5h], [7h], [8h], [9h] és újra [3h]",
|
||||
"data": {
|
||||
"type": "image",
|
||||
"images": [
|
||||
"T4fYb28dxaIAAAAASUVORK5CYII="
|
||||
]
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "Adott az alábbi kapcsolás. Határozza meg, hogy milyen állapotokat jár be a hálózat! üres , üres törlésű számlálóval felépített hálózat. A bejárt állapotok sorozata: RES/NRES → üres , üres , üres , üres , üres , üres , üres , üres és újra üres",
|
||||
"A": "Adott az alábbi kapcsolás. Határozza meg, hogy milyen állapotokat jár be a hálózat! [Decimális], [aszinkron] törlésű számlálóval felépített hálózat. A bejárt állapotok sorozata: RES/NRES → [0h], [1h], [2h], [3h], [5h], [7h], [8h], [9h] és újra [3h]",
|
||||
"data": {
|
||||
"type": "image",
|
||||
"images": [
|
||||
"T4fYb28dxaIAAAAASUVORK5CYII="
|
||||
]
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": 100,
|
||||
"matchedSubjName": "Digitális rendszerek",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "A memóriában tárolt adatok kiválasztását végző vezetékek a címek.",
|
||||
"A": "Hamis",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "A memóriában tárolt adatok kiválasztását végző vezetékek a címek.",
|
||||
"A": "Hamis",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Digitális rendszerek",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "Adott az alábbi kapcsolás. Határozza meg, hogy milyen állapotokat jár be a hálózat! A bejárt állapotok sorozata: RES/NRES → üres , üres , üres , üres , üres , üres , üres , üres , üres , üres , üres , üres , üres , üres , üres és újra üres",
|
||||
"A": "Adott az alábbi kapcsolás. Határozza meg, hogy milyen állapotokat jár be a hálózat! A bejárt állapotok sorozata: RES/NRES → [0h], [1h], [2h], [4h], [8h], [9h], [3h], [7h], [Eh], [Dh], [Ah], [Bh], [5h], [6h], [Ch] és újra [8h]",
|
||||
"data": {
|
||||
"type": "image",
|
||||
"images": [
|
||||
"GEogvyoJwnMAAAAASUVORK5CYII="
|
||||
]
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "Adott az alábbi kapcsolás. Határozza meg, hogy milyen állapotokat jár be a hálózat! A bejárt állapotok sorozata: RES/NRES → üres , üres , üres , üres , üres , üres , üres , üres , üres , üres , üres , üres , üres , üres , üres és újra üres",
|
||||
"A": "Adott az alábbi kapcsolás. Határozza meg, hogy milyen állapotokat jár be a hálózat! A bejárt állapotok sorozata: RES/NRES → [0h], [1h], [2h], [4h], [8h], [9h], [3h], [7h], [Eh], [Dh], [Ah], [Bh], [5h], [6h], [Ch] és újra [8h]",
|
||||
"data": {
|
||||
"type": "image",
|
||||
"images": [
|
||||
"GEogvyoJwnMAAAAASUVORK5CYII="
|
||||
]
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": 100,
|
||||
"matchedSubjName": "Digitális rendszerek",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "Adott az alábbi kapcsolás. Határozza meg, hogy milyen állapotokat jár be a hálózat! üres , üres törlésű számlálóval felépített hálózat. A bejárt állapotok sorozata: RES/NRES → üres , üres , üres , üres , üres , üres , üres és újra üres",
|
||||
"A": "Adott az alábbi kapcsolás. Határozza meg, hogy milyen állapotokat jár be a hálózat! [Decimális], [szinkron] törlésű számlálóval felépített hálózat. A bejárt állapotok sorozata: RES/NRES → [0h], [1h], [2h], [3h], [5h], [6h], [8h] és újra [0h]",
|
||||
"data": {
|
||||
"type": "image",
|
||||
"images": [
|
||||
"Omes8AAAAAElFTkSuQmCC"
|
||||
]
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "Adott az alábbi kapcsolás. Határozza meg, hogy milyen állapotokat jár be a hálózat! üres , üres törlésű számlálóval felépített hálózat. A bejárt állapotok sorozata: RES/NRES → üres , üres , üres , üres , üres , üres , üres és újra üres",
|
||||
"A": "Adott az alábbi kapcsolás. Határozza meg, hogy milyen állapotokat jár be a hálózat! [Decimális], [szinkron] törlésű számlálóval felépített hálózat. A bejárt állapotok sorozata: RES/NRES → [0h], [1h], [2h], [3h], [5h], [6h], [8h] és újra [0h]",
|
||||
"data": {
|
||||
"type": "image",
|
||||
"images": [
|
||||
"Omes8AAAAAElFTkSuQmCC"
|
||||
]
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": 100,
|
||||
"matchedSubjName": "Digitális rendszerek",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "Adott az alábbi kapcsolás. Határozza meg, hogy milyen állapotokat jár be a hálózat! A bejárt állapotok sorozata: RES/NRES → üres , üres , üres , üres , üres , üres , üres , üres , üres , üres , üres , üres , üres , üres , üres és újra üres",
|
||||
"A": "Adott az alábbi kapcsolás. Határozza meg, hogy milyen állapotokat jár be a hálózat! A bejárt állapotok sorozata: RES/NRES → [0h], [1h], [2h], [4h], [8h], [9h], [3h], [7h], [Eh], [Dh], [Ah], [Bh], [5h], [6h], [Ch] és újra [8h]",
|
||||
"data": {
|
||||
"type": "image",
|
||||
"images": [
|
||||
"2WGWf6YcjNEAAAAASUVORK5CYII="
|
||||
]
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "Adott az alábbi kapcsolás. Határozza meg, hogy milyen állapotokat jár be a hálózat! A bejárt állapotok sorozata: RES/NRES → üres , üres , üres , üres , üres , üres , üres , üres , üres , üres , üres , üres , üres , üres , üres és újra üres",
|
||||
"A": "Adott az alábbi kapcsolás. Határozza meg, hogy milyen állapotokat jár be a hálózat! A bejárt állapotok sorozata: RES/NRES → [0h], [1h], [2h], [4h], [8h], [9h], [3h], [7h], [Eh], [Dh], [Ah], [Bh], [5h], [6h], [Ch] és újra [8h]",
|
||||
"data": {
|
||||
"type": "image",
|
||||
"images": [
|
||||
"2WGWf6YcjNEAAAAASUVORK5CYII="
|
||||
]
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": 100,
|
||||
"matchedSubjName": "Digitális rendszerek",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "Adott az alábbi kapcsolás. Határozza meg, hogy milyen állapotokat jár be a hálózat! üres , üres törlésű számlálóval felépített hálózat. A bejárt állapotok sorozata: RES/NRES → üres , üres , üres , üres , üres , üres , üres és újra üres",
|
||||
"A": "Adott az alábbi kapcsolás. Határozza meg, hogy milyen állapotokat jár be a hálózat! [Decimális], [aszinkron] törlésű számlálóval felépített hálózat. A bejárt állapotok sorozata: RES/NRES → [0h], [1h], [2h], [3h], [5h], [6h], [8h] és újra [0h]",
|
||||
"data": {
|
||||
"type": "image",
|
||||
"images": [
|
||||
"A+wU9Tp8XAvKwAAAABJRU5ErkJggg="
|
||||
]
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "Adott az alábbi kapcsolás. Határozza meg, hogy milyen állapotokat jár be a hálózat! üres , üres törlésű számlálóval felépített hálózat. A bejárt állapotok sorozata: RES/NRES → üres , üres , üres , üres , üres , üres , üres és újra üres",
|
||||
"A": "Adott az alábbi kapcsolás. Határozza meg, hogy milyen állapotokat jár be a hálózat! [Decimális], [aszinkron] törlésű számlálóval felépített hálózat. A bejárt állapotok sorozata: RES/NRES → [0h], [1h], [2h], [3h], [5h], [6h], [8h] és újra [0h]",
|
||||
"data": {
|
||||
"type": "image",
|
||||
"images": [
|
||||
"A+wU9Tp8XAvKwAAAABJRU5ErkJggg="
|
||||
]
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": 100,
|
||||
"matchedSubjName": "Digitális rendszerek",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "A több bemenetről 1 kimenetre választó adatirányítókat multiplexereknek nevezzük.",
|
||||
"A": "Igaz",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "A több bemenetről 1 kimenetre választó adatirányítókat multiplexereknek nevezzük.",
|
||||
"A": "Igaz",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Digitális rendszerek",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "Az egy bemenetről több kimenetre választó adatirányítókat demultiplexereknek nevezzük.",
|
||||
"A": "Igaz",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "Az egy bemenetről több kimenetre választó adatirányítókat demultiplexereknek nevezzük.",
|
||||
"A": "Igaz",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Digitális rendszerek",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "Melyik áramkör kapcsolási rajzát látja az alábbi ábrán?",
|
||||
"A": "Kódoló, dekódoló",
|
||||
"data": {
|
||||
"type": "image",
|
||||
"images": [
|
||||
"gAAAABJRU5ErkJggg=="
|
||||
]
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "Melyik áramkör kapcsolási rajzát látja az alábbi ábrán?",
|
||||
"A": "Kódoló, dekódoló",
|
||||
"data": {
|
||||
"type": "image",
|
||||
"images": [
|
||||
"gAAAABJRU5ErkJggg=="
|
||||
]
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": 100,
|
||||
"matchedSubjName": "Digitális technika I.",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
|
@ -1,31 +0,0 @@
|
|||
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "Az EU egyebek mellett ezt a felvételi kritériumokat határozta meg a közép- és kelet-európai országok csatlakozására vonatkozóan",
|
||||
"A": "Az EK is legyen alkalmas új tagok befogadására",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "Az EU egyebek mellett ezt a felvételi kritériumokat határozta meg a közép- és kelet-európai országok csatlakozására vonatkozóan",
|
||||
"A": "Az EK is legyen alkalmas új tagok befogadására",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "EU Ismeretek",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
|
@ -1,31 +0,0 @@
|
|||
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "A vízszintes eltérítő rendszer a megjelenítő eszköz (katódsugárcső) elektron nyalábjának függőleges irányú eltérítését valósítja meg.",
|
||||
"A": "Hamis",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "A függőleges eltérítő rendszer a megjelenítő eszköz (katódsugárcső) elektron nyalábjának vízszintes irányú eltérítését valósítja meg.",
|
||||
"A": "Hamis",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Elektronika",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
|
@ -1,181 +0,0 @@
|
|||
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "A Lorentz-transzformációk v << c esetén is működnek. Ez estben a Galilei-féle relativitási elvet és a Galilei-transzformációkat adják vissza.",
|
||||
"A": "Igaz",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "A Lorentz-transzformációk v << c esetén is működnek. Ez estben a Galilei-féle relativitási elvet és a Galilei-transzformációkat adják vissza.",
|
||||
"A": "Igaz",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Fizika II.",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "Az egymáshoz képest nyugalomban lévő és egyenesvonalú egyenletesen változó mozgást végző vonatkoztatási rendszerek a mechanikai jelenségek szempontjából egyenértékűek vagy ekvivalensek.",
|
||||
"A": "Hamis",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "Az egymáshoz képest nyugalomban lévő és egyenesvonalú egyenletesen változó mozgást végző vonatkoztatási rendszerek a mechanikai jelenségek szempontjából egyenértékűek vagy ekvivalensek.",
|
||||
"A": "Hamis",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Fizika II.",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "Az egymáshoz képest nyugalomban lévő és egyenesvonalú egyenletes mozgást végző vonatkoztatási rendszerek a mechanikai jelenségek szempontjából egyenértékűek vagy ekvivalensek.",
|
||||
"A": "Igaz",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "Az egymáshoz képest nyugalomban lévő és egyenesvonalú egyenletes mozgást végző vonatkoztatási rendszerek a mechanikai jelenségek szempontjából egyenértékűek vagy ekvivalensek.",
|
||||
"A": "Igaz",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Fizika II.",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "A fényév időtartam jellegű mennyiség.",
|
||||
"A": "Hamis",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "A fényév időtartam jellegű mennyiség.",
|
||||
"A": "Hamis",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Fizika II.",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "A Michelson-Morley interferencia kísérlettel a fénynek és a forgó Földnek az egymáshoz viszonyított sebességét próbálták megmérni.",
|
||||
"A": "Hamis",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "A Michelson-Morley interferencia kísérlettel a fénynek és a forgó Földnek az egymáshoz viszonyított sebességét próbálták megmérni.",
|
||||
"A": "Hamis",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Fizika II.",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "Amennyiben egy kört fénysebesség-közeli sebességgel mozgatunk, úgy nyugvó megfigyelő számára a kör ellipszissé torzul.",
|
||||
"A": "Igaz",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "Amennyiben egy kört fénysebesség-közeli sebességgel mozgatunk, úgy nyugvó megfigyelő számára a kör ellipszissé torzul.",
|
||||
"A": "Igaz",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Fizika II.",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
|
@ -1,781 +0,0 @@
|
|||
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "9. Párosítsa a funkciókat!A.) BÍRÓSÁGOK",
|
||||
"A": "8 HA TÖRVÉNY MÁSKÉPPEN NEM RENDELKEZIK - TANÁCSBAN ÍTÉLKEZIK",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "9. Párosítsa a funkciókat!A.) BÍRÓSÁGOK",
|
||||
"A": "8 HA TÖRVÉNY MÁSKÉPPEN NEM RENDELKEZIK - TANÁCSBAN ÍTÉLKEZIK",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Jogi ismeretek",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "Hány főből áll az Alkotmánybíróság testülete?",
|
||||
"A": "15",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "Hány főből áll az Alkotmánybíróság testülete?",
|
||||
"A": "15",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Jogi ismeretek",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "Hány főből áll az Alkotmánybíróság testülete?",
|
||||
"A": "15",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "Hány főből áll az Alkotmánybíróság testülete?",
|
||||
"A": "15",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Jogi ismeretek",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "Hány főből áll az Alkotmánybíróság testülete?",
|
||||
"A": "15",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "Hány főből áll az Alkotmánybíróság testülete?",
|
||||
"A": "15",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Jogi ismeretek",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "Hány éves életkortól lehet valaki köztársasági elnök?",
|
||||
"A": "35",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "Hány éves életkortól lehet valaki köztársasági elnök?",
|
||||
"A": "35",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Jogi ismeretek",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "Hány éves életkortól lehet valaki köztársasági elnök?",
|
||||
"A": "35",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "Hány éves életkortól lehet valaki köztársasági elnök?",
|
||||
"A": "35",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Jogi ismeretek",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "Hány évre nevezik ki az MNB elnökét?",
|
||||
"A": "6",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "Hány évre nevezik ki az MNB elnökét?",
|
||||
"A": "6",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Jogi ismeretek",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "Hány évre nevezik ki az MNB elnökét?",
|
||||
"A": "6",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "Hány évre nevezik ki az MNB elnökét?",
|
||||
"A": "6",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Jogi ismeretek",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "Hány évre választja az Országgyűlés a köztársasági elnököt?",
|
||||
"A": "5",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "Hány évre választja az Országgyűlés a köztársasági elnököt?",
|
||||
"A": "5",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Jogi ismeretek",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "Hány évre választja az Országgyűlés a köztársasági elnököt?",
|
||||
"A": "5",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "Hány évre választja az Országgyűlés a köztársasági elnököt?",
|
||||
"A": "5",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Jogi ismeretek",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "Hány évre választja az Országgyűlés az ÁSZ elnökét?",
|
||||
"A": "12",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "Hány évre választja az Országgyűlés az ÁSZ elnökét?",
|
||||
"A": "12",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Jogi ismeretek",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "Hány évre választják a Kúria elnökét?",
|
||||
"A": "9",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "Hány évre választják a Kúria elnökét?",
|
||||
"A": "9",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Jogi ismeretek",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "Hány évre választják a helyi önkormányzati képviselőket és polgármestereket?",
|
||||
"A": "5",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "Hány évre választják a helyi önkormányzati képviselőket és polgármestereket?",
|
||||
"A": "5",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Jogi ismeretek",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "Hány évre választják a helyi önkormányzati képviselőket és polgármestereket?",
|
||||
"A": "5",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "Hány évre választják a helyi önkormányzati képviselőket és polgármestereket?",
|
||||
"A": "5",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Jogi ismeretek",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "Hány évre választják az alapvető jogi biztost?",
|
||||
"A": "6",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "Hány évre választják az alapvető jogi biztost?",
|
||||
"A": "6",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Jogi ismeretek",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "Hány évre választják meg a legfőbb ügyészt?",
|
||||
"A": "9",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "Hány évre választják meg a legfőbb ügyészt?",
|
||||
"A": "9",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Jogi ismeretek",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "Hány évre választják meg a legfőbb ügyészt?",
|
||||
"A": "9",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "Hány évre választják meg a legfőbb ügyészt?",
|
||||
"A": "9",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Jogi ismeretek",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "Ki nem a Költségvetési Tanács tagja?",
|
||||
"A": "Pénzügyminiszter",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "Ki nem a Költségvetési Tanács tagja?",
|
||||
"A": "Pénzügyminiszter",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Jogi ismeretek",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "Ki nem a Költségvetési Tanács tagja?",
|
||||
"A": "Pénzügyminiszter",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "Ki nem a Költségvetési Tanács tagja?",
|
||||
"A": "Pénzügyminiszter",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Jogi ismeretek",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "Melyik nem önkormányzati feladatkör?",
|
||||
"A": "alapfokú iskolai oktatás megszervezése",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "Melyik nem önkormányzati feladatkör?",
|
||||
"A": "alapfokú iskolai oktatás megszervezése",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Jogi ismeretek",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "Melyik város nem ítélőtáblai székhely?",
|
||||
"A": "Veszprém",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "Melyik város nem ítélőtáblai székhely?",
|
||||
"A": "Veszprém",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Jogi ismeretek",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "Melyik város nem ítélőtáblai székhely?",
|
||||
"A": "Miskolc",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "Melyik város nem ítélőtáblai székhely?",
|
||||
"A": "Miskolc",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Jogi ismeretek",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "Hány éves koráig cselekvőképtelen a kiskorú személy?",
|
||||
"A": "14",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "Hány éves koráig cselekvőképtelen a kiskorú személy?",
|
||||
"A": "14",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Jogi ismeretek",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "A személy eltűnésétől fogva hány évnek kell eltelnie ahhoz, hogy holttá lehessen nyilvánítani?",
|
||||
"A": "5",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "A személy eltűnésétől fogva hány évnek kell eltelnie ahhoz, hogy holttá lehessen nyilvánítani?",
|
||||
"A": "5",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Jogi ismeretek",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "Hány éves korától tekinthető az emberi személy cselekvőképesnek?",
|
||||
"A": "18",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "Hány éves korától tekinthető az emberi személy cselekvőképesnek?",
|
||||
"A": "18",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Jogi ismeretek",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "Hány év alatt évülnek el a kötelmi követelések?",
|
||||
"A": "5",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "Hány év alatt évülnek el a kötelmi követelések?",
|
||||
"A": "5",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Jogi ismeretek",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
|
@ -1,61 +0,0 @@
|
|||
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "Expanzív költségvetési politika esetén a kamatláb emelkedik, mivel",
|
||||
"A": "a megnövekvő jövedelem miatt növekszik a pénzkereslet s a változatlan pénzkínálat mellett nő a kamatláb",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "Expanzív költségvetési politika esetén a kamatláb emelkedik, mivel",
|
||||
"A": "a megnövekvő jövedelem miatt növekszik a pénzkereslet s a változatlan pénzkínálat mellett nő a kamatláb",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Makroökonómia",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "A nyitott gazdaság IS görbéje balra tolódik, ha ceteris paribus",
|
||||
"A": "az ország fő külkereskedelmi partnereinél recesszió következik be és így visszaesik az export.",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "A nyitott gazdaság IS görbéje balra tolódik, ha ceteris paribus",
|
||||
"A": "az ország fő külkereskedelmi partnereinél recesszió következik be és így visszaesik az export",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Makroökonómia",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
|
@ -1,61 +0,0 @@
|
|||
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "Ha egy fogyasztó reáljövedelme megnövekszik, akkor különböző mértékben, de minden jószágból növeli a fogyasztását",
|
||||
"A": "Hamis",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "Ha egy fogyasztó reáljövedelme megnövekszik, akkor különböző mértékben, de minden jószágból növeli a fogyasztását",
|
||||
"A": "Hamis",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Mikroökonómia",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "Az alternatív költségek olyan költségek, amelyek a múltban merültek fel, ezért már nem változtathatók meg",
|
||||
"A": "Hamis",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "Az alternatív költségek olyan költségek, amelyek a múltban merültek fel, ezért már nem változtathatók meg.",
|
||||
"A": "Hamis",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Mikroökonómia",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
|
@ -1,31 +0,0 @@
|
|||
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "A 2006/42/EK rendelet írja elő a gépek CE jelölését.",
|
||||
"A": "Hamis",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "A 2006/42/EK rendelet írja elő a gépek CE jelölését.",
|
||||
"A": "Hamis",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Gépek CE jelölése, műszaki-jogi megfelelősége",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
|
@ -1,61 +0,0 @@
|
|||
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "A villamos feszültség az SI alapegységének tekinthető?",
|
||||
"A": "nem",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "A villamos feszültség az SI alapegységének tekinthető?",
|
||||
"A": "nem",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Méréstechnika I.",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "Pneumatikus finomtapintókat csekély számú mérések esetén alkalmazunk laboratóriumban.",
|
||||
"A": "Hamis",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "Pneumatikus finomtapintókat csekély számú mérések esetén alkalmazunk laboratóriumban.",
|
||||
"A": "Hamis",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Méréstechnika I.",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
|
@ -1,69 +0,0 @@
|
|||
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"A": "Igaz",
|
||||
"data": {
|
||||
"type": "image",
|
||||
"images": [
|
||||
"image1.png"
|
||||
]
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"A": "Igaz",
|
||||
"data": {
|
||||
"type": "image",
|
||||
"images": [
|
||||
"image1.png"
|
||||
]
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": 100,
|
||||
"matchedSubjName": "Műszaki mechanika",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"A": "Igaz",
|
||||
"data": {
|
||||
"type": "image",
|
||||
"images": [
|
||||
"image1.png"
|
||||
]
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"A": "Igaz",
|
||||
"data": {
|
||||
"type": "image",
|
||||
"images": [
|
||||
"image1.png"
|
||||
]
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": 100,
|
||||
"matchedSubjName": "Műszaki mechanika",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
|
@ -1,391 +0,0 @@
|
|||
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "„Egy kereskedő 3 Škoda autót vett egy nap.” Mi ebben az autókra vonatkozó ismérv?",
|
||||
"A": "az eladott mennyiség (gyártmány)",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "„Egy kereskedő 3 Škoda autót vett egy nap.” Mi ebben az autókra vonatkozó ismérv?",
|
||||
"A": "az eladott mennyiség (gyártmány)",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Statisztika I.",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "„Egy kereskedő 8 kék autót adott el 1 nap alatt.” Mi ebben az autókra vonatkozó ismérv?",
|
||||
"A": "a szín",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "„Egy kereskedő 8 kék autót adott el 1 nap alatt.” Mi ebben az autókra vonatkozó ismérv?",
|
||||
"A": "a szín",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Statisztika I.",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "A szórás értéke soha nem lehet kisebb az átlagos eltérés mutatónál.",
|
||||
"A": "Igaz",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "A szórás értéke soha nem lehet kisebb az átlagos eltérés mutatónál.",
|
||||
"A": "Igaz",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Statisztika I.",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "A dinamikus viszonyszám az összehasonlító viszonyszámok közé tartozik.",
|
||||
"A": "Igaz",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "A dinamikus viszonyszám az összehasonlító viszonyszámok közé tartozik.",
|
||||
"A": "Igaz",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Statisztika I.",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "A gyakorisági poligon tulajdonképpen azonos az (empirikus) eloszlásfüggvénnyel.",
|
||||
"A": "Hamis",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "A gyakorisági poligon tulajdonképpen azonos az (empirikus) eloszlásfüggvénnyel.",
|
||||
"A": "Hamis",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Statisztika I.",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "Három vállalat esetében a munkavállalók életkorára vonatkozó adatok: Vállalat Átlagos életkor (év) Módusz (év) Medián (év) Az eloszlás típusa A 35 Amo Ame szimmetrikus B 35 Bmo 30 bal oldali aszimmetria C 40 45 Cme jobb oldali aszimmetria Adjon meg olyan értéket, ami megfelelnek a feltételnek, és a következő jel helyébe írható: Amo",
|
||||
"A": "35.",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "Három vállalat esetében a munkavállalók életkorára vonatkozó adatok: Vállalat Átlagos életkor (év) Módusz (év) Medián (év) Az eloszlás típusa A 35 Amo Ame szimmetrikus B 35 Bmo 30 bal oldali aszimmetria C 40 45 Cme jobb oldali aszimmetria Adjon meg olyan értéket, ami megfelelnek a feltételnek, és a következő jel helyébe írható: Ame",
|
||||
"A": "35.",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Statisztika",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "Az adatgyűjtés egyik célja a politikai tervezések, döntések megalapozottságának biztosítása.",
|
||||
"A": "Igaz",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "Az adatgyűjtés egyik célja a politikai tervezések, döntések megalapozottságának biztosítása.",
|
||||
"A": "Igaz",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Statisztika I.",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "A szórás értéke soha nem lehet nagyobb az átlagos eltérés mutatónál.",
|
||||
"A": "Hamis",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "A szórás értéke soha nem lehet nagyobb az átlagos eltérés mutatónál.",
|
||||
"A": "Hamis",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Statisztika I.",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "A gyakorisági poligon negatív értékek felett nem \"rajzolható\".",
|
||||
"A": "Hamis",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "A gyakorisági poligon negatív értékek felett nem \"rajzolható\".",
|
||||
"A": "Hamis",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Statisztika I.",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "Az intervallumskála nulla értéke a tulajdonság hiányát jelenti.",
|
||||
"A": "Hamis",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "Az intervallumskála nulla értéke a tulajdonság hiányát jelenti.",
|
||||
"A": "Hamis",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Statisztika I.",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "A tartamidősor adatai összegezhetőek, az így kapott adat értelmezhető.",
|
||||
"A": "Igaz",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "A tartamidősor adatai összegezhetőek, az így kapott adat értelmezhető.",
|
||||
"A": "Igaz",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Statisztika I.",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "A kombinációs és a kontingencia tábla jelentése azonos.",
|
||||
"A": "Igaz",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "A kombinációs és a kontingencia tábla jelentése azonos.",
|
||||
"A": "Igaz",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Statisztika I.",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "A gyűjtött statisztikai adatok döntő többsége ingyenesen hozzáférhető.",
|
||||
"A": "Igaz",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "A gyűjtött statisztikai adatok döntő többsége ingyenesen hozzáférhető.",
|
||||
"A": "Igaz",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Statisztika I.",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
|
@ -1,61 +0,0 @@
|
|||
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "Egyaránt független azonos eloszlású mintát eredményez, ha homogén, végtelen elemszámú sokaságból akár visszatevéses, akár visszatevés nélküli véletlen mintát veszünk",
|
||||
"A": "igaz",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "Egyaránt független azonos eloszlású mintát eredményez, ha homogén, végtelen elemszámú sokaságból akár visszatevéses, akár visszatevés nélküli véletlen mintát veszünk",
|
||||
"A": "igaz",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Statisztika II.",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "A rétegzett minta arányos elosztású, ha NjN≠njnNjN≠njn",
|
||||
"A": "hamis",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "A rétegzett minta arányos elosztású, ha NjN≠njnNjN≠njn",
|
||||
"A": "hamis",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Statisztika II.",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
|
@ -1,31 +0,0 @@
|
|||
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "Az analitikus tevékenységeken belül mit takar a dimenzionálás?",
|
||||
"A": "Tulajdonságok meghatározását",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "Az analitikus tevékenységeken belül mit takar a dimenzionálás?",
|
||||
"A": "Tulajdonságok meghatározását",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Statisztikai elemzések informatikai támogatása",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
|
@ -1,151 +0,0 @@
|
|||
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "Igaz vagy hamis az alábbi állítás? A fast fashion cégek pl.: H M, Zara... azért nem preferálja a környezettudatos gyártást, mert a vásárlói kereslet megköveteli az évszakonkénti új kollekciót.",
|
||||
"A": "Hamis",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "Igaz vagy hamis az alábbi állítás? A fast fashion cégek pl.: H M, Zara... azért nem preferálja a környezettudatos gyártást, mert a vásárlói kereslet megköveteli az évszakonkénti új kollekciót.",
|
||||
"A": "Hamis",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Szakmai környezetvédelem (online 6)",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "Igaz, vagy hamis az alábbi állítás? A nagy méretű elektromos munkaeszközök munka és tűzvédelmi szempontból veszélyesek.",
|
||||
"A": "Igaz",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "Igaz, vagy hamis az alábbi állítás? A nagy méretű elektromos munkaeszközök munka és tűzvédelmi szempontból veszélyesek.",
|
||||
"A": "Igaz",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Szakmai környezetvédelem (online 6)",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "Igaz, vagy hamis az alábbi állítás? A gyalogos és gépjármű forgalmat csak külső területeken kell elkülöníteni, fizikailag fagy felfestéssel jelezni kell a kettő határát!",
|
||||
"A": "Igaz",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "Igaz, vagy hamis az alábbi állítás? A gyalogos és gépjármű forgalmat csak külső területeken kell elkülöníteni, fizikailag fagy felfestéssel jelezni kell a kettő határát!",
|
||||
"A": "Igaz",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Szakmai környezetvédelem (online 6)",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "A fonalak egyszeresen sodrott elemiszálakból álló képződmények.",
|
||||
"A": "Igaz",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "A fonalak egyszeresen sodrott elemiszálakból álló képződmények.",
|
||||
"A": "Igaz",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Szakmai környezetvédelem (online 6)",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "A '*', amelyek könnyen komposztálhatók és viszonylag gyorsan lebomlanak.",
|
||||
"A": "Természetes szálas anyagok.",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "A '*', amelyek könnyen komposztálhatók és viszonylag gyorsan lebomlanak.",
|
||||
"A": "Természetes szálas anyagok.",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Szakmai környezetvédelem (online 6)",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
|
@ -1,361 +0,0 @@
|
|||
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "A 256-QAM egyetlen jelváltozással 16 bitet kódol.",
|
||||
"A": "Hamis",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "A 256-QAM egyetlen jelváltozással 16 bitet kódol.",
|
||||
"A": "Hamis",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Statisztika",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "A p-perzisztens CSMA szabad csatorna esetén azonnal adni kezd.",
|
||||
"A": "Hamis",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "A p-perzisztens CSMA szabad csatorna esetén azonnal adni kezd",
|
||||
"A": "Hamis",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Statisztika",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "ALOHA rendszerek esetén a nyugtázó csatornákban is lehet ütközés.",
|
||||
"A": "Hamis",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "ALOHA rendszerek esetén a nyugtázó csatornákban is lehet ütközés.",
|
||||
"A": "Hamis",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Statisztika",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "Az 1-perzisztens CSMA nem vizsgálja a csatorna foglaltságát.",
|
||||
"A": "Hamis",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "Az 1-perzisztens CSMA nem vizsgálja a csatorna foglaltságát.",
|
||||
"A": "Hamis",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Statisztika",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "A WEP titkosítás b/g/n szabványoknak egyaránt része.",
|
||||
"A": "Hamis",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "A WEP titkosítás b/g/n szabványoknak egyaránt része.",
|
||||
"A": "Hamis",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Statisztika",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "A nem perzisztens CSMA szabad csatorna esetén azonnal adni kezd.",
|
||||
"A": "Hamis",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "A nem perzisztens CSMA szabad csatorna esetén azonnal adni kezd.",
|
||||
"A": "Hamis",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Statisztika",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "A Shannon tétel az ideális átviteli csatornával kapcsolatos",
|
||||
"A": "Hamis",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "A Shannon tétel az ideális átviteli csatornával kapcsolatos.",
|
||||
"A": "Hamis",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Statisztika",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "A „T-568A” és „T-568B” bekötése 50%-ba megegyezik",
|
||||
"A": "Igaz",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "A „T-568A” és „T-568B” bekötése 50%-ba megegyezik",
|
||||
"A": "Igaz",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Statisztika",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "A Nyquist tétel az ideális átviteli csatornával kapcsolatos.",
|
||||
"A": "Igaz",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "A Nyquist tétel az ideális átviteli csatornával kapcsolatos.",
|
||||
"A": "Igaz",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Statisztika",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "RNC jelentése „Radio Network Controller”.",
|
||||
"A": "Igaz",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "RNC jelentése „Radio Network Controller”.",
|
||||
"A": "Igaz",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Statisztika",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "A WEP az ”n”szabványnak már nem része.",
|
||||
"A": "Igaz",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "A WEP az ”n”szabványnak már nem része.",
|
||||
"A": "Igaz",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Statisztika",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "Az IEEE 802.11 három féle keretosztállyaldolgozik.",
|
||||
"A": "Igaz",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "Az IEEE 802.11 három féle keretosztállyaldolgozik.",
|
||||
"A": "Igaz",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Statisztika",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
|
@ -1,181 +0,0 @@
|
|||
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "A szimmetrikus kriptográfia titkos matematikai algoritmusokat használ.",
|
||||
"A": "Hamis",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "A szimmetrikus kriptográfia titkos matematikai algoritmusokat használ.",
|
||||
"A": "Hamis",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Távközlési informatika II.",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "Előfordulhat, hogy a hálózati jellemzők romlása miatt az RTP csökkenti az adatsebességet.",
|
||||
"A": "Igaz",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "Előfordulhat, hogy a hálózati jellemzők romlása miatt az RTP csökkenti az adatsebességet.",
|
||||
"A": "Igaz",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Távközlési informatika II.",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "A szimmetrikus kriptográfia titkos matematikai algoritmusokat használ.",
|
||||
"A": "Hamis",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "A szimmetrikus kriptográfia titkos matematikai algoritmusokat használ.",
|
||||
"A": "Hamis",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Távközlési informatika II.",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "Digitális aláírás esetén minden résztvevő saját titkos hash függvénnyel rendelkezik.",
|
||||
"A": "Hamis",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "Digitális aláírás esetén minden résztvevő saját titkos hash függvénnyel rendelkezik.",
|
||||
"A": "Hamis",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Távközlési informatika II.",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "A dns szerverek cache-elik (egy ideig tárolják) a rajtuk áthaladó dns adatokat.",
|
||||
"A": "Igaz",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "A dns szerverek cache-elik (egy ideig tárolják) a rajtuk áthaladó dns adatokat.",
|
||||
"A": "Igaz",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Távközlési informatika II.",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "A dns-ben az MX rekord tipikusan naponta változik.",
|
||||
"A": "Hamis",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "A dns-ben az MX rekord tipikusan naponta változik.",
|
||||
"A": "Hamis",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Távközlési informatika II.",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
|
@ -1,181 +0,0 @@
|
|||
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "Hány gramm réz nyerhető ki 25,5 gramm CuO redukciója során? MCu= 63,54g/mol MO= 16 g/mol",
|
||||
"A": "20,37.",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "Hány gramm réz nyerhető ki 25,5 gramm CuO redukciója során? MCu= 63,54g/mol MO= 16 g/mol",
|
||||
"A": "20,37.",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Villamosipari anyagismeret",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "Hány gramm réz nyerhető ki 94,1 gramm CuO redukciója során? MCu= 63,54g/mol MO= 16 g/mol",
|
||||
"A": "75,17.",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "Hány gramm réz nyerhető ki 94,1 gramm CuO redukciója során? MCu= 63,54g/mol MO= 16 g/mol",
|
||||
"A": "75,17.",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Villamosipari anyagismeret",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "Hány gramm réz nyerhető ki 94,8 gramm CuO redukciója során? MCu= 63,54g/mol MO= 16 g/mol",
|
||||
"A": "75,73.",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "Hány gramm réz nyerhető ki 94,8 gramm CuO redukciója során? MCu= 63,54g/mol MO= 16 g/mol",
|
||||
"A": "75,73.",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Villamosipari anyagismeret",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "Hány gramm réz nyerhető ki 77,2 gramm CuO redukciója során? MCu= 63,54g/mol MO= 16 g/mol",
|
||||
"A": "61,67.",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "Hány gramm réz nyerhető ki 77,2 gramm CuO redukciója során? MCu= 63,54g/mol MO= 16 g/mol",
|
||||
"A": "61,67.",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Villamosipari anyagismeret",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "Hány gramm réz nyerhető ki 35,1 gramm CuO redukciója során? MCu= 63,54g/mol MO= 16 g/mol",
|
||||
"A": "28,04.",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "Hány gramm réz nyerhető ki 35,1 gramm CuO redukciója során? MCu= 63,54g/mol MO= 16 g/mol",
|
||||
"A": "28,04.",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Villamosipari anyagismeret",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "Hány gramm oxigén fejlődik 94,1 gramm víz bontása során?",
|
||||
"A": "83,64.",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "Hány gramm oxigén fejlődik 94,1 gramm víz bontása során?",
|
||||
"A": "83,64.",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Villamosipari anyagismeret",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
|
@ -1,127 +0,0 @@
|
|||
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "Jelölje ki azon címkéket, amely a HTML5 szabványban jelentek meg először!",
|
||||
"A": "video, audio, nav, article, aside",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "Jelölje ki azon címkéket, amely a HTML5 szabványban jelentek meg először!",
|
||||
"A": "video, audio, nav, article, aside",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Webprogramozás",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "Igaz-e a következő állítás? A rendezett listában a lista elem értékét a \"value\" attribútummal állíthatjuk.",
|
||||
"A": "Igaz",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "Igaz-e a következő állítás? A rendezett listában a lista elem értékét a \"value\" attribútummal állíthatjuk.",
|
||||
"A": "Igaz",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Webprogramozás (PHP)",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "Igaz-e a következő állítás? A táblázatban nincs kötött sorrendje a <thead>, a <tbody> és a <tfoot> címkéknek.",
|
||||
"A": "Igaz",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "Igaz-e a következő állítás? A táblázatban nincs kötött sorrendje a <thead>, a <tbody> és a <tfoot> címkéknek.",
|
||||
"A": "Igaz",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Webprogramozás (PHP)",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "Mi a kódja a következő listának?",
|
||||
"A": "<dl> <dt>Coffee</dt> <dd>Black hot drink</dd> <dt>Milk</dt> <dd>White cold drink</dd> </dl>",
|
||||
"data": {
|
||||
"type": "image",
|
||||
"images": [
|
||||
"definition_list.png"
|
||||
]
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "Mi a kódja a következő listának?",
|
||||
"A": "<dl> <dt>Coffee</dt> <dd>Black hot drink</dd> <dt>Milk</dt> <dd>White cold drink</dd> </dl>",
|
||||
"data": {
|
||||
"type": "image",
|
||||
"images": [
|
||||
"definition_list.png"
|
||||
]
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": 100,
|
||||
"matchedSubjName": "Webprogramozás (PHP)",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
|
@ -1,65 +0,0 @@
|
|||
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"A": "3.",
|
||||
"data": {
|
||||
"type": "image",
|
||||
"images": [
|
||||
"capture-20150905-110748.jpg"
|
||||
]
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"A": "3.",
|
||||
"data": {
|
||||
"type": "image",
|
||||
"images": [
|
||||
"capture-20150905-110748.jpg"
|
||||
]
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": 100,
|
||||
"matchedSubjName": "Általános géptan",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
||||
###################################################################################################################################################################################
|
||||
QUESTION
|
||||
{
|
||||
"Q": "A törtrészt jelölő prefixumok:",
|
||||
"A": "nano, femto, atto.",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
}
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
SAMES
|
||||
[
|
||||
{
|
||||
"q": {
|
||||
"Q": "A törtrészt jelölő prefixumok:",
|
||||
"A": "nano, femto, atto.",
|
||||
"data": {
|
||||
"type": "simple"
|
||||
}
|
||||
},
|
||||
"match": 100,
|
||||
"detailedMatch": {
|
||||
"qMatch": 100,
|
||||
"aMatch": 100,
|
||||
"dMatch": -1,
|
||||
"matchedSubjName": "Általános géptan",
|
||||
"avg": 100
|
||||
}
|
||||
}
|
||||
]
|
|
@ -1,22 +0,0 @@
|
|||
const utils = require('../utils/utils.js')
|
||||
const dataFile = '../public/data.json'
|
||||
const motdFile = '../public/motd'
|
||||
|
||||
var p = GetParams()
|
||||
if (p.length <= 0) {
|
||||
console.log('no params!')
|
||||
process.exit(0)
|
||||
}
|
||||
|
||||
var param = p.join(' ')
|
||||
console.log('param: ' + param)
|
||||
var d = utils.ReadFile(dataFile)
|
||||
var parsed = JSON.parse(d)
|
||||
parsed.motd = param
|
||||
utils.WriteFile(JSON.stringify(parsed), dataFile)
|
||||
|
||||
utils.WriteFile(parsed.motd, motdFile)
|
||||
|
||||
function GetParams() {
|
||||
return process.argv.splice(2)
|
||||
}
|
File diff suppressed because one or more lines are too long
|
@ -1,3 +0,0 @@
|
|||
|
||||
[41m[34m2020-10-15 12:18:46[0m[32m|[0m[41mSearch Data Worker error![0m
|
||||
[41m[34m2020-10-15 12:18:46[0m[32m|[0m[41mSearch Data Worker error! Exit code is not 0[0m
|
|
@ -1,21 +1,33 @@
|
|||
module.exports = {
|
||||
ReadFile: ReadFile,
|
||||
ReadJSON: ReadJSON,
|
||||
WriteFile: WriteFile,
|
||||
writeFileAsync: WriteFileAsync,
|
||||
AppendToFile: AppendToFile,
|
||||
FileExists: FileExists,
|
||||
CreatePath: CreatePath,
|
||||
WatchFile: WatchFile,
|
||||
ReadDir: ReadDir,
|
||||
CopyFile: CopyFile,
|
||||
GetDateString: GetDateString,
|
||||
export default {
|
||||
ReadFile,
|
||||
ReadJSON,
|
||||
WriteFile,
|
||||
writeFileAsync,
|
||||
AppendToFile,
|
||||
FileExists,
|
||||
CreatePath,
|
||||
WatchFile,
|
||||
ReadDir,
|
||||
CopyFile,
|
||||
GetDateString,
|
||||
formatUrl,
|
||||
}
|
||||
|
||||
import fs from 'fs'
|
||||
import logger from '../utils/logger.js'
|
||||
import logger from '../utils/logger'
|
||||
|
||||
function GetDateString(noTime) {
|
||||
interface URLFormatOptions {
|
||||
query: any
|
||||
pathname?: string
|
||||
}
|
||||
|
||||
// TODO
|
||||
function formatUrl(options: URLFormatOptions): string {
|
||||
console.log(options.pathname, options.query)
|
||||
return options.pathname + JSON.stringify(options.query)
|
||||
}
|
||||
|
||||
function GetDateString(noTime?: boolean): string {
|
||||
const date = new Date()
|
||||
|
||||
if (noTime) {
|
||||
|
@ -43,16 +55,16 @@ function GetDateString(noTime) {
|
|||
}
|
||||
}
|
||||
|
||||
function CopyFile(from, to) {
|
||||
function CopyFile(from: string, to: string): void {
|
||||
CreatePath(to)
|
||||
fs.copyFileSync(from, to)
|
||||
}
|
||||
|
||||
function ReadDir(path) {
|
||||
function ReadDir(path: string): Array<string> {
|
||||
return fs.readdirSync(path)
|
||||
}
|
||||
|
||||
function ReadJSON(name) {
|
||||
function ReadJSON(name: string): any {
|
||||
try {
|
||||
return JSON.parse(ReadFile(name))
|
||||
} catch (err) {
|
||||
|
@ -61,18 +73,18 @@ function ReadJSON(name) {
|
|||
}
|
||||
}
|
||||
|
||||
function ReadFile(name) {
|
||||
function ReadFile(name: string): string {
|
||||
if (!FileExists(name)) {
|
||||
throw new Error('No such file: ' + name)
|
||||
}
|
||||
return fs.readFileSync(name, 'utf8')
|
||||
}
|
||||
|
||||
function FileExists(path) {
|
||||
function FileExists(path: string): boolean {
|
||||
return fs.existsSync(path)
|
||||
}
|
||||
|
||||
function WatchFile(file, callback) {
|
||||
function WatchFile(file: string, callback: Function): void {
|
||||
if (FileExists(file)) {
|
||||
fs.watchFile(file, () => {
|
||||
fs.readFile(file, 'utf8', (err, data) => {
|
||||
|
@ -84,14 +96,11 @@ function WatchFile(file, callback) {
|
|||
})
|
||||
})
|
||||
} else {
|
||||
console.log(file + ' does not eadjsalék')
|
||||
setTimeout(() => {
|
||||
WatchFile(file)
|
||||
}, 1000)
|
||||
throw new Error(`${file} does not exits to watch`)
|
||||
}
|
||||
}
|
||||
|
||||
function CreatePath(path, onlyPath) {
|
||||
function CreatePath(path: string, onlyPath?: boolean): void {
|
||||
if (FileExists(path)) {
|
||||
return
|
||||
}
|
||||
|
@ -114,12 +123,12 @@ function CreatePath(path, onlyPath) {
|
|||
}
|
||||
}
|
||||
|
||||
function WriteFile(content, path) {
|
||||
function WriteFile(content: string, path: string): void {
|
||||
CreatePath(path)
|
||||
fs.writeFileSync(path, content)
|
||||
}
|
||||
|
||||
function WriteFileAsync(content, path) {
|
||||
function writeFileAsync(content: string, path: string): void {
|
||||
CreatePath(path)
|
||||
fs.writeFile(path, content, function(err) {
|
||||
if (err) {
|
||||
|
@ -131,7 +140,7 @@ function WriteFileAsync(content, path) {
|
|||
})
|
||||
}
|
||||
|
||||
function AppendToFile(data, file) {
|
||||
function AppendToFile(data: string, file: string): void {
|
||||
CreatePath(file)
|
||||
try {
|
||||
fs.appendFileSync(file, '\n' + data)
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
"exclude": [
|
||||
"node_modules",
|
||||
"submodules",
|
||||
"devel"
|
||||
"devel",
|
||||
"src/standaloneUtils"
|
||||
]
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue