mirror of
				https://github.com/shufflewzc/faker3.git
				synced 2025-11-01 01:42:00 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			167 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			167 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| /*
 | |
|  * @Author: chenghao
 | |
|  * @Date: 2022-02-14 10:19:21
 | |
|  * @Last Modified by: chenghao
 | |
|  * @Last Modified time: 2022-03-20 13:57:10
 | |
|  * @Desc: 青龙依赖
 | |
|  * @From: https://github.com/whyour/qinglong/issues/1369
 | |
|  */
 | |
| const axios = require('axios')
 | |
| const QL_URL = 'http://127.0.0.1:5700'
 | |
| const CLIENT_ID = process.env.CLIENT_ID
 | |
| const CLIENT_SECRET = process.env.CLIENT_SECRET
 | |
| 
 | |
| /**
 | |
|  *获取青龙token
 | |
|  */
 | |
| function getQLToken() {
 | |
|   return new Promise((resolve, reject) => {
 | |
|     axios
 | |
|       .get(
 | |
|         QL_URL +
 | |
|           `/open/auth/token?client_id=${CLIENT_ID}&client_secret=${CLIENT_SECRET}`
 | |
|       )
 | |
|       .then(res => {
 | |
|         if (res.data.code === 200) {
 | |
|           resolve(res.data.data.token)
 | |
|         } else {
 | |
|           reject(res.data.message)
 | |
|         }
 | |
|       })
 | |
|   })
 | |
| }
 | |
| 
 | |
| /**
 | |
|  *构造请求头
 | |
|  * @returns headers
 | |
|  */
 | |
| async function generateRequestHeader() {
 | |
|   return new Promise(async resolve => {
 | |
|     const token = await getQLToken()
 | |
|     resolve({
 | |
|       Authorization: 'Bearer ' + token,
 | |
|       'User-Agent':
 | |
|         'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4577.63 Safari/537.36',
 | |
|       'Content-Type': 'application/json;charset=UTF-8',
 | |
|       'Accept-Encoding': 'gzip, deflate',
 | |
|       'Accept-Language': 'zh-CN,zh;q=0.9'
 | |
|     })
 | |
|   })
 | |
| }
 | |
| 
 | |
| /**
 | |
|  *初始化请求实例
 | |
|  * @returns axios instance
 | |
|  */
 | |
| async function init() {
 | |
|   if (!CLIENT_ID || !CLIENT_SECRET)
 | |
|     return Promise.reject('未获取到 CLIENT_ID 或 CLIENT_SECRET')
 | |
|   const headers = await generateRequestHeader()
 | |
|   return new Promise(resolve => {
 | |
|     resolve(
 | |
|       axios.create({
 | |
|         baseURL: QL_URL,
 | |
|         timeout: 10000,
 | |
|         headers
 | |
|       })
 | |
|     )
 | |
|   })
 | |
| }
 | |
| 
 | |
| /**
 | |
|  *
 | |
|  *获取青龙环境变量
 | |
|  * @param {*} instance
 | |
|  * @returns [] envlist
 | |
|  */
 | |
| function getQLEnvs(instance, searchValue = 'JD_COOKIE') {
 | |
|   return new Promise(resolve => {
 | |
|     instance
 | |
|       .get('/open/envs', {
 | |
|         params: {
 | |
|           searchValue,
 | |
|           t: +new Date()
 | |
|         }
 | |
|       })
 | |
|       .then(res => {
 | |
|         resolve(res.data.data.filter(v => v.status === 0))
 | |
|       })
 | |
|   })
 | |
| }
 | |
| 
 | |
| /**
 | |
|  *创建ck环境变量
 | |
|  * @param {*} instance
 | |
|  * @param {*} [ck=[]]
 | |
|  * @returns
 | |
|  */
 | |
| function createCkEnv(instance, ck = []) {
 | |
|   return new Promise(resolve => {
 | |
|     instance
 | |
|       .post(`/open/envs?t=${+new Date()}`, ck)
 | |
|       .then(res => {
 | |
|         resolve(res.data)
 | |
|       })
 | |
|       .catch(error => {
 | |
|         console.log(error.response.data)
 | |
|       })
 | |
|   })
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * 更新环境变量
 | |
|  * @param {*} instance
 | |
|  * @param {*} ck
 | |
|  * @returns
 | |
|  */
 | |
| function updateCkEnv(instance, ck = {}) {
 | |
|   return new Promise(resolve => {
 | |
|     instance
 | |
|       .put(`/open/envs?t=${+new Date()}`, ck)
 | |
|       .then(res => {
 | |
|         resolve(res.data)
 | |
|       })
 | |
|       .catch(error => {
 | |
|         console.log(error.response.data)
 | |
|       })
 | |
|   })
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * 删除环境变量
 | |
|  * @param {*} instance
 | |
|  * @param {*} ckIds
 | |
|  * @returns
 | |
|  */
 | |
| function deleteCkEnv(instance, ckIds = []) {
 | |
|   return new Promise(resolve => {
 | |
|     instance({
 | |
|       method: 'delete',
 | |
|       url: `/open/envs?t=${+new Date()}`,
 | |
|       data: ckIds
 | |
|     }).then(resolve)
 | |
|   })
 | |
| }
 | |
| 
 | |
| /**
 | |
|  *切换ck状态
 | |
|  * @param {*} instance
 | |
|  * @param {*} path
 | |
|  * @param {*} id
 | |
|  * @returns
 | |
|  */
 | |
| function toggleCKEnv(instance, id, path = 'enable') {
 | |
|   return new Promise(resolve => {
 | |
|     instance.put(`/open/envs/${path}?t=${+new Date()}`, [id]).then(res => {
 | |
|       resolve(res.data)
 | |
|     })
 | |
|   })
 | |
| }
 | |
| 
 | |
| exports.createEnv = createCkEnv
 | |
| exports.deleteEnv = deleteCkEnv
 | |
| exports.getEnv = getQLEnvs
 | |
| exports.initInstance = init
 | |
| exports.updateCkEnv = updateCkEnv
 | |
| exports.toggleCKEnv = toggleCKEnv
 |