-
Notifications
You must be signed in to change notification settings - Fork 0
/
song.js
45 lines (40 loc) · 1.33 KB
/
song.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
const { query } = require('./db')
const { get } = require('./util/http')
async function selectAllData() {
const sql = 'select * from singer'
const dataList = await query(sql)
return dataList
}
async function getHotSongs() {
let errorId = ''
const datas = await selectAllData()
for (let singer of datas) {
try {
const songs = await get('http://localhost:3000/artists', { id: singer.catId })
errorId = singer.catId
await getSong(songs.data.hotSongs, singer)
} catch (e) {
console.log('error singerId:' + errorId)
}
}
}
async function getSong(hotSongs, singer) {
let errorId = ''
for (let song of hotSongs) {
try {
errorId = song.id
const comments = await get('http://localhost:3000/comment/music', { id: song.id, limit: 1 })
const total = comments.data.total
if (total && total < 10000) return
await getComment(total, song, singer).catch(error => console.log(error))
} catch (e) {
console.log('error songId:' + errorId)
}
}
}
async function getComment(total, song, singer) {
const { id, name, style, category, catId } = singer
let sql = 'insert into song(singer, singerId, style, songId, name, comment) values(?,?,?,?,?,?)'
let result = await query(sql, [name, id, style, song.id, song.name, total])
}
getHotSongs().catch(error => console.log(error))