const Router = require("koa-router")
const { getQqListData } = require("../util/getList/qq")
const KoaSSEStream = require('koa-sse-stream');
const { dowload } = require("../util/download");

const router = new Router()
const dowloadlist = []

router.get("/getQqList",async (ctx)=>{
    let url = ctx.query.url
    let list = await getQqListData(url)
    ctx.body = list
})

router.get("/startDown",async (ctx)=>{
    let title = ctx.query.title
    let url = ctx.query.url
    dowloadlist.push({
        title,url
    })
    // startDown()
    ctx.body={
        code:0,
        msg:"添加成功"
    }
})
// 连接池
const clientList = [];
// koa-sse-stream 配置
const SSE_CONF = {
    maxClients: 5, // 最大连接数
    pingInterval: 40000 // 重连时间
}
router.get('/msg', KoaSSEStream(SSE_CONF), ctx => {
    // 每次连接会进行一个 push
    clientList.push(ctx.sse);
})
let start = false
function startDown(){
    
    dowload(dowloadlist[0],(data,isok)=>{
        let name = dowloadlist[0].title
        clientList.forEach((i)=>{
            i.send(isok ? `${title}下载完成` : data )
            if(isok){
                dowloadlist.shift()
                start = false
            }
        })
    })
}
setInterval(()=>{
    if(dowloadlist.length != 0 && !start){
        start = true
        startDown()
    }else if(dowloadlist.length == 0){
        start = false
    }
},1000)
module.exports = router