index.js 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import fs, { readFileSync } from "fs"
  2. const outbounds = fs
  3. .readFileSync("proxies.txt")
  4. .toString()
  5. .split("\n")
  6. .filter(line => !!line)
  7. .map((line, i) => {
  8. const [host, port, username, password] = line.split(":")
  9. return {
  10. tag: `us-${i + 1}`,
  11. protocol: "http",
  12. settings: {
  13. servers: [
  14. {
  15. address: host,
  16. port: parseInt(port),
  17. users: [
  18. {
  19. user: username,
  20. pass: password
  21. }
  22. ]
  23. }
  24. ]
  25. }
  26. }
  27. })
  28. fs.writeFileSync("outbounds.json", JSON.stringify(outbounds, null, 2))
  29. const routingRules = outbounds.map((p, i) => {
  30. return {
  31. type: "field",
  32. user: [`rcs_${i + 1}`],
  33. outboundTag: p.tag
  34. }
  35. })
  36. fs.writeFileSync("routingRules.json", JSON.stringify(routingRules, null, 2))
  37. const xray = JSON.parse(fs.readFileSync("xray.json").toString())
  38. xray.outbounds = xray.outbounds.concat(outbounds)
  39. xray.routing.rules = xray.routing.rules.concat(routingRules)
  40. fs.writeFileSync("xray_edited.json", JSON.stringify(xray, null, 2))