Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

Settings.js 3.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. import { getLogger } from 'jitsi-meet-logger';
  2. const logger = getLogger(__filename);
  3. import UsernameGenerator from '../util/UsernameGenerator';
  4. let _callStatsUserName;
  5. let _machineId;
  6. /**
  7. *
  8. */
  9. export default {
  10. /**
  11. * Returns fake username for callstats
  12. * @returns {string} fake username for callstats
  13. */
  14. get callStatsUserName() {
  15. if (!_callStatsUserName) {
  16. const localStorage = getLocalStorage();
  17. if (localStorage) {
  18. _callStatsUserName = localStorage.getItem('callStatsUserName');
  19. }
  20. if (!_callStatsUserName) {
  21. _callStatsUserName = generateCallStatsUserName();
  22. if (localStorage) {
  23. localStorage.setItem(
  24. 'callStatsUserName',
  25. _callStatsUserName);
  26. }
  27. }
  28. }
  29. return _callStatsUserName;
  30. },
  31. /**
  32. * Returns current machine id.
  33. * @returns {string} machine id
  34. */
  35. get machineId() {
  36. if (!_machineId) {
  37. const localStorage = getLocalStorage();
  38. if (localStorage) {
  39. _machineId = localStorage.getItem('jitsiMeetId');
  40. }
  41. if (!_machineId) {
  42. _machineId = generateJitsiMeetId();
  43. if (localStorage) {
  44. localStorage.setItem('jitsiMeetId', _machineId);
  45. }
  46. }
  47. }
  48. return _machineId;
  49. },
  50. /**
  51. * Returns current session id.
  52. * @returns {string} current session id
  53. */
  54. get sessionId() {
  55. // We may update sessionId in localStorage from another JitsiConference
  56. // instance and that's why we should always re-read it.
  57. const localStorage = getLocalStorage();
  58. return localStorage ? localStorage.getItem('sessionId') : undefined;
  59. },
  60. /**
  61. * Save current session id.
  62. * @param {string} sessionId session id
  63. */
  64. set sessionId(sessionId) {
  65. const localStorage = getLocalStorage();
  66. if (localStorage) {
  67. if (sessionId) {
  68. localStorage.setItem('sessionId', sessionId);
  69. } else {
  70. localStorage.removeItem('sessionId');
  71. }
  72. }
  73. }
  74. };
  75. /**
  76. * Generate fake username for callstats.
  77. * @returns {string} fake random username
  78. */
  79. function generateCallStatsUserName() {
  80. const username = UsernameGenerator.generateUsername();
  81. logger.log('generated callstats uid', username);
  82. return username;
  83. }
  84. /**
  85. * Generate unique id.
  86. * @returns {string} random unique id
  87. */
  88. function generateJitsiMeetId() {
  89. const jitsiMeetId = generateUniqueId();
  90. logger.log('generated id', jitsiMeetId);
  91. return jitsiMeetId;
  92. }
  93. /**
  94. * Gets the localStorage of the browser. (Technically, gets the localStorage of
  95. * the global object because there may be no browser but React Native for
  96. * example).
  97. * @returns {Storage} the local Storage object (if any)
  98. */
  99. function getLocalStorage() {
  100. let storage;
  101. try {
  102. // eslint-disable-next-line no-invalid-this
  103. storage = (window || this).localStorage;
  104. } catch (error) {
  105. logger.error(error);
  106. }
  107. return storage;
  108. }
  109. /**
  110. *
  111. */
  112. function generateUniqueId() {
  113. return _p8() + _p8() + _p8() + _p8();
  114. }
  115. /**
  116. *
  117. */
  118. function _p8() {
  119. return `${Math.random().toString(16)}000000000`.substr(2, 8);
  120. }