index.go 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. package web
  2. import (
  3. "Gwen/global"
  4. "github.com/gin-gonic/gin"
  5. )
  6. type Index struct {
  7. }
  8. func (i *Index) Index(c *gin.Context) {
  9. c.Redirect(302, "/_admin/")
  10. }
  11. func (i *Index) ConfigJs(c *gin.Context) {
  12. apiServer := global.Config.Rustdesk.ApiServer
  13. tmp := `
  14. function stringToUint8Array(str){
  15. var arr = [];
  16. for (var i = 0, j = str.length; i < j; ++i) {
  17. arr.push(str.charCodeAt(i));
  18. }
  19. var tmpUint8Array = new Uint8Array(arr);
  20. return tmpUint8Array
  21. }
  22. window._gwen = {}
  23. window._gwen.kv = {}
  24. function getQueryVariable() {
  25. const query = window.location.hash.substring(3);
  26. const vars = query.split("&");
  27. for (var i = 0; i < vars.length; i++) {
  28. var pair = vars[i].split("=");
  29. window._gwen.kv[pair[0]] = pair[1]
  30. }
  31. }
  32. getQueryVariable()
  33. const id = window._gwen.kv.id || ''
  34. if (id) {
  35. localStorage.setItem('remote-id', id)
  36. }
  37. window._gwen.hosts = [
  38. "rs-sg.rustdesk.com",
  39. "rs-cn.rustdesk.com",
  40. "rs-us.rustdesk.com",
  41. ]
  42. localStorage.setItem('api-server', "` + apiServer + `")
  43. const autoWriteServer = () => {
  44. return setTimeout(() => {
  45. const token = localStorage.getItem('access_token')
  46. const apiserver = localStorage.getItem('api-server')
  47. if (token && apiserver) {
  48. fetch(apiserver + "/api/server-config", {
  49. method: 'POST',
  50. headers: {
  51. 'Content-Type': 'application/json',
  52. 'Authorization': 'Bearer ' + token
  53. }
  54. }
  55. ).then(res => res.json()).then(res => {
  56. if (res.code === 0) {
  57. if(!localStorage.getItem('custom-rendezvous-server') || !localStorage.getItem('key') ) {
  58. localStorage.setItem('custom-rendezvous-server', res.data.id_server)
  59. localStorage.setItem('key', res.data.key)
  60. }
  61. if (res.data.peers) {
  62. oldPeers = JSON.parse(localStorage.getItem('peers')) || {}
  63. let needUpdate = false
  64. Object.keys(res.data.peers).forEach(k => {
  65. if(!oldPeers[k]) {
  66. oldPeers[k] = res.data.peers[k]
  67. needUpdate = true
  68. }else{
  69. oldPeers[k].info = res.data.peers[k].info
  70. }
  71. if (oldPeers[k].info && oldPeers[k].info.hash&&!oldPeers[k].password ) {
  72. let p1 = window.atob(oldPeers[k].info.hash)
  73. const pwd = stringToUint8Array(p1)
  74. oldPeers[k].password = pwd.toString()
  75. oldPeers[k].remember = true
  76. }
  77. })
  78. localStorage.setItem('peers', JSON.stringify(oldPeers))
  79. if(needUpdate) {
  80. window.location.reload()
  81. }
  82. }
  83. }
  84. })
  85. } else {
  86. autoWriteServer()
  87. }
  88. }, 1000)
  89. }
  90. autoWriteServer()
  91. `
  92. c.String(200, tmp)
  93. }