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 2.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. import { jitsiLocalStorage } from '@jitsi/js-utils';
  2. import { getLogger } from '@jitsi/logger';
  3. import { v4 as uuidv4 } from 'uuid';
  4. import UsernameGenerator from '../util/UsernameGenerator';
  5. const logger = getLogger(__filename);
  6. let _callStatsUserName;
  7. let _machineId;
  8. /**
  9. *
  10. */
  11. export default {
  12. /**
  13. * The storage used to store the settings.
  14. */
  15. _storage: jitsiLocalStorage,
  16. /**
  17. * Initializes the Settings class.
  18. *
  19. * @param {Storage|undefined} externalStorage - Object that implements the Storage interface. This object will be
  20. * used for storing data instead of jitsiLocalStorage if specified.
  21. */
  22. init(externalStorage) {
  23. this._storage = externalStorage || jitsiLocalStorage;
  24. },
  25. /**
  26. * Returns the ID to use for the purposes of stats, saved in localstorage as "callStatsUserName".
  27. * @returns {string} fake username for callstats
  28. */
  29. get callStatsUserName() {
  30. if (!_callStatsUserName) {
  31. _callStatsUserName = this._storage.getItem('callStatsUserName');
  32. if (!_callStatsUserName) {
  33. _callStatsUserName = _generateStatsId();
  34. this._storage.setItem('callStatsUserName', _callStatsUserName);
  35. }
  36. }
  37. return _callStatsUserName;
  38. },
  39. /**
  40. * Returns current machine id.
  41. * @returns {string} machine id
  42. */
  43. get machineId() {
  44. if (!_machineId) {
  45. const amDid = this._storage.getItem('billingId');
  46. _machineId = amDid || this._storage.getItem('jitsiMeetId');
  47. if (amDid) {
  48. this._storage.setItem('jitsiMeetId', amDid);
  49. } else if (!_machineId) {
  50. _machineId = generateJitsiMeetId();
  51. this._storage.setItem('jitsiMeetId', _machineId);
  52. }
  53. }
  54. return _machineId;
  55. },
  56. /**
  57. * Returns current session id.
  58. * @returns {string} current session id
  59. */
  60. get sessionId() {
  61. // We may update sessionId in localStorage from another JitsiConference
  62. // instance and that's why we should always re-read it.
  63. return this._storage.getItem('sessionId');
  64. },
  65. /**
  66. * Save current session id.
  67. * @param {string} sessionId session id
  68. */
  69. set sessionId(sessionId) {
  70. if (sessionId) {
  71. this._storage.setItem('sessionId', sessionId);
  72. } else {
  73. this._storage.removeItem('sessionId');
  74. }
  75. }
  76. };
  77. /**
  78. * Generate a random ID to be used for statistics.
  79. * @returns {string} the random ID
  80. */
  81. function _generateStatsId() {
  82. const username = UsernameGenerator.generateUsername();
  83. logger.log('generated stats id', username);
  84. return username;
  85. }
  86. /**
  87. * Generate unique id.
  88. * @returns {string} random unique id
  89. */
  90. function generateJitsiMeetId() {
  91. const jitsiMeetId = uuidv4().replaceAll('-', '');
  92. logger.log('generated id', jitsiMeetId);
  93. return jitsiMeetId;
  94. }