ljw.js 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. window._gwen = {}
  2. window._gwen.kv = {}
  3. const storage_prefix = 'wc-'
  4. const apiserver = localStorage.getItem('wc-api-server')
  5. function stringToUint8Array(str) {
  6. var arr = [];
  7. for (var i = 0, j = str.length; i < j; ++i) {
  8. arr.push(str.charCodeAt(i));
  9. }
  10. var tmpUint8Array = new Uint8Array(arr);
  11. return tmpUint8Array
  12. }
  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(storage_prefix+'option:local:last_remote_id', id)
  25. }*/
  26. const share_token = window._gwen.kv.share_token || ''
  27. if (share_token) {
  28. fetch(apiserver + "/api/shared-peer", {
  29. method: 'POST',
  30. headers: {
  31. 'Content-Type': 'application/json',
  32. },
  33. body: JSON.stringify({share_token})
  34. }).then(res => res.json()).then(res => {
  35. if (res.code === 0) {
  36. localStorage.setItem(storage_prefix + 'custom-rendezvous-server', res.data.id_server)
  37. localStorage.setItem(storage_prefix + 'key', res.data.key)
  38. const peer = res.data.peer || {}
  39. /*const s = {
  40. id: peer.info.id,
  41. password: peer.tmppwd,
  42. }*/
  43. //修改location
  44. window.location.href = `/webclient2/#/${peer.info.id}?password=${encodeURIComponent(peer.tmppwd)}`
  45. }
  46. })
  47. }
  48. let fetching = false
  49. export function getServerConf(token) {
  50. if (!token) {
  51. return
  52. }
  53. // console.log('getServerConf', token)
  54. if (fetching) {
  55. return
  56. }
  57. fetching = true
  58. fetch(apiserver + "/api/server-config-v2", {
  59. method: 'POST',
  60. headers: {
  61. 'Content-Type': 'application/json',
  62. 'Authorization': 'Bearer ' + token
  63. }
  64. }
  65. ).then(res => res.json()).then(res => {
  66. fetching = false
  67. if (res.code === 0) {
  68. if (!localStorage.getItem(storage_prefix + 'custom-rendezvous-server') || !localStorage.getItem('key')) {
  69. localStorage.setItem(storage_prefix + 'custom-rendezvous-server', res.data.id_server)
  70. localStorage.setItem(storage_prefix + 'key', res.data.key)
  71. }
  72. }
  73. }).catch(_ => {
  74. fetching = false
  75. })
  76. }