main.js 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. const fs = require('fs')
  2. const path = require('path')
  3. const tmpPath = require('os').tmpdir()
  4. const { cookieToJson } = require('./util')
  5. if (!fs.existsSync(path.resolve(tmpPath, 'anonymous_token'))) {
  6. fs.writeFileSync(path.resolve(tmpPath, 'anonymous_token'), '', 'utf-8')
  7. }
  8. let firstRun = true
  9. /** @type {Record<string, any>} */
  10. let obj = {}
  11. fs.readdirSync(path.join(__dirname, 'module'))
  12. .reverse()
  13. .forEach((file) => {
  14. if (!file.endsWith('.js')) return
  15. let fileModule = require(path.join(__dirname, 'module', file))
  16. let fn = file.split('.').shift() || ''
  17. obj[fn] = function (data = {}) {
  18. if (typeof data.cookie === 'string') {
  19. data.cookie = cookieToJson(data.cookie)
  20. }
  21. return fileModule(
  22. {
  23. ...data,
  24. cookie: data.cookie ? data.cookie : {},
  25. },
  26. async (...args) => {
  27. if (firstRun) {
  28. firstRun = false
  29. const generateConfig = require('./generateConfig')
  30. await generateConfig()
  31. }
  32. // 待优化
  33. const request = require('./util/request')
  34. return request(...args)
  35. },
  36. )
  37. }
  38. })
  39. /**
  40. * @type {Record<string, any> & import("./server")}
  41. */
  42. module.exports = {
  43. ...require('./server'),
  44. ...obj,
  45. }