Added histories import from old version
This commit is contained in:
parent
147812a3e2
commit
7015fc1671
5 changed files with 102 additions and 2 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -1,2 +1,4 @@
|
||||||
run.sh
|
run.sh
|
||||||
node_modules
|
node_modules
|
||||||
|
import
|
||||||
|
import.sh
|
||||||
|
|
92
import.js
Normal file
92
import.js
Normal file
|
@ -0,0 +1,92 @@
|
||||||
|
const path = require('path')
|
||||||
|
const moment = require('moment')
|
||||||
|
const models = require('./models').models
|
||||||
|
|
||||||
|
// Export data from base:
|
||||||
|
// docker exec mongo sh -c 'mongoexport --host localhost --db irc-bot-rx3 --collection histories --type=json --fields artist,songName,createdAt' > rx3.json
|
||||||
|
|
||||||
|
if (!process.argv[2]) {
|
||||||
|
console.error(new Error('Missing radio alias'))
|
||||||
|
process.exit(1)
|
||||||
|
}
|
||||||
|
|
||||||
|
const radio = process.argv[2]
|
||||||
|
const file = path.join('import', `${radio}.json`)
|
||||||
|
|
||||||
|
var lineReader = require('readline').createInterface({
|
||||||
|
input: require('fs').createReadStream(file)
|
||||||
|
})
|
||||||
|
|
||||||
|
let lines = 0
|
||||||
|
let checked = 0
|
||||||
|
let inserted = 0
|
||||||
|
let canDone = false
|
||||||
|
|
||||||
|
const done = () => {
|
||||||
|
if (canDone && lines === checked) {
|
||||||
|
console.log(`Inserted ${inserted} on ${lines} lines read`)
|
||||||
|
process.exit(0)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
lineReader.on('close', () => {
|
||||||
|
console.log('All lines read, waiting for insert')
|
||||||
|
canDone = true
|
||||||
|
done()
|
||||||
|
})
|
||||||
|
|
||||||
|
lineReader.on('line', function (line) {
|
||||||
|
lines += 1
|
||||||
|
const currentLine = JSON.parse(line)
|
||||||
|
|
||||||
|
const value = {
|
||||||
|
radio: radio,
|
||||||
|
artist: currentLine.artist,
|
||||||
|
title: currentLine.songName,
|
||||||
|
createdAt: currentLine.createdAt.$date
|
||||||
|
}
|
||||||
|
|
||||||
|
// console.log('WHERE:', value)
|
||||||
|
|
||||||
|
models.Histories
|
||||||
|
.find({
|
||||||
|
radio: radio,
|
||||||
|
artist: currentLine.artist,
|
||||||
|
title: currentLine.songName
|
||||||
|
})
|
||||||
|
.exec(function (err, saved) {
|
||||||
|
// console.log('SAVED:', saved)
|
||||||
|
if (err) {
|
||||||
|
checked += 1
|
||||||
|
console.error('ERR:', err)
|
||||||
|
done()
|
||||||
|
} else {
|
||||||
|
let found = false
|
||||||
|
// console.log('CHECK FOR:', value.title)
|
||||||
|
for (let i = 0; i < saved.length; i += 1) {
|
||||||
|
const currentDate = moment(saved[i].createdAt).millisecond(0)
|
||||||
|
|
||||||
|
// console.log(currentDate.toDate(), moment(value.createdAt).millisecond(0).toDate())
|
||||||
|
|
||||||
|
if (currentDate.diff(moment(value.createdAt).millisecond(0), 'seconds') === 0) {
|
||||||
|
// console.log('======= FOUND =========')
|
||||||
|
found = true
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!found) {
|
||||||
|
// Insert line
|
||||||
|
const history = new models.Histories(value)
|
||||||
|
history.save(() => {
|
||||||
|
checked += 1
|
||||||
|
inserted += 1
|
||||||
|
done()
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
checked += 1
|
||||||
|
done()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
|
@ -8,7 +8,7 @@ mongoose.set('useNewUrlParser', true)
|
||||||
mongoose.set('useUnifiedTopology', true)
|
mongoose.set('useUnifiedTopology', true)
|
||||||
mongoose.set('useFindAndModify', false)
|
mongoose.set('useFindAndModify', false)
|
||||||
mongoose.set('useCreateIndex', true)
|
mongoose.set('useCreateIndex', true)
|
||||||
mongoose.set('debug', true)
|
mongoose.set('debug', false)
|
||||||
|
|
||||||
mongoose.connect(process.env.MONGO_URL)
|
mongoose.connect(process.env.MONGO_URL)
|
||||||
|
|
||||||
|
|
|
@ -11,6 +11,7 @@
|
||||||
"license": "ISC",
|
"license": "ISC",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"irc-upd": "^0.10.0",
|
"irc-upd": "^0.10.0",
|
||||||
|
"moment": "^2.24.0",
|
||||||
"mongoose": "^5.8.3",
|
"mongoose": "^5.8.3",
|
||||||
"radio-stream": "^0.0.1"
|
"radio-stream": "^0.0.1"
|
||||||
},
|
},
|
||||||
|
|
|
@ -1114,6 +1114,11 @@ mkdirp@^0.5.1:
|
||||||
dependencies:
|
dependencies:
|
||||||
minimist "0.0.8"
|
minimist "0.0.8"
|
||||||
|
|
||||||
|
moment@^2.24.0:
|
||||||
|
version "2.24.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/moment/-/moment-2.24.0.tgz#0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b"
|
||||||
|
integrity sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==
|
||||||
|
|
||||||
mongodb@3.4.1:
|
mongodb@3.4.1:
|
||||||
version "3.4.1"
|
version "3.4.1"
|
||||||
resolved "https://registry.yarnpkg.com/mongodb/-/mongodb-3.4.1.tgz#0d15e57e0ea0fc85b7a4fb9291b374c2e71652dc"
|
resolved "https://registry.yarnpkg.com/mongodb/-/mongodb-3.4.1.tgz#0d15e57e0ea0fc85b7a4fb9291b374c2e71652dc"
|
||||||
|
|
Loading…
Reference in a new issue