index.go 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. package web
  2. import (
  3. "Gwen/global"
  4. "github.com/gin-gonic/gin"
  5. )
  6. type Index struct {
  7. }
  8. func (i *Index) ConfigJs(c *gin.Context) {
  9. apiServer := global.Config.Rustdesk.ApiServer
  10. tmp := `
  11. window._gwen = {}
  12. window._gwen.kv = {}
  13. function getQueryVariable() {
  14. const query = window.location.hash.substring(3);
  15. const vars = query.split("&");
  16. for (var i = 0; i < vars.length; i++) {
  17. var pair = vars[i].split("=");
  18. window._gwen.kv[pair[0]] = pair[1]
  19. }
  20. }
  21. getQueryVariable()
  22. const id = window._gwen.kv.id || ''
  23. if (id) {
  24. localStorage.setItem('remote-id', id)
  25. }
  26. window._gwen.hosts = [
  27. "rs-sg.rustdesk.com",
  28. "rs-cn.rustdesk.com",
  29. "rs-us.rustdesk.com",
  30. ]
  31. localStorage.setItem('api-server', "` + apiServer + `")
  32. const autoWriteServer = () => {
  33. return setTimeout(() => {
  34. const token = localStorage.getItem('access_token')
  35. const apiserver = localStorage.getItem('api-server')
  36. if (token && apiserver) {
  37. fetch(apiserver + "/api/server-config", {
  38. method: 'POST',
  39. headers: {
  40. 'Content-Type': 'application/json',
  41. 'Authorization': 'Bearer ' + token
  42. }
  43. }
  44. ).then(res => res.json()).then(res => {
  45. if (res.code === 0) {
  46. if(!localStorage.getItem('custom-rendezvous-server') || !localStorage.getItem('key') ) {
  47. localStorage.setItem('custom-rendezvous-server', res.data.id_server)
  48. localStorage.setItem('key', res.data.key)
  49. }
  50. if (res.data.peers) {
  51. localStorage.setItem('peers', JSON.stringify(res.data.peers))
  52. }
  53. }
  54. })
  55. } else {
  56. autoWriteServer()
  57. }
  58. }, 1000)
  59. }
  60. autoWriteServer()
  61. `
  62. c.String(200, tmp)
  63. }