Camamba Chat Settings

creates a settings - object with getter and setter - property for every in-chat settings and with a save and restore method

此脚本不应直接安装,它是一个供其他脚本使用的外部库。如果您需要使用该库,请在脚本元属性加入:// @require https://update.cn-greasyfork.org/scripts/423662/935734/Camamba%20Chat%20Settings.js

  1. // ==UserScript==
  2. // @name Camamba Chat Settings Library
  3. // @namespace dannysaurus.camamba
  4. // @version 0.1
  5. // @description getter and setter for inChat settings
  6. // @license MIT License
  7. // @include https://www.camamba.com/chat/
  8. // @include https://www.de.camamba.com/chat/
  9. // ==/UserScript==
  10.  
  11. /* jslint esversion: 9 */
  12. /* global me, camData, rooms, blockList, friendList, friendRequests, adminMessages, jsLang, byId, myRooms, knownUsers, activeRoom, selectedUser */
  13.  
  14. const settings = (() => {
  15. const propertyNames = [
  16. "chatColor",
  17. "chatFont",
  18. "chatFontSize",
  19. "inputFontSize",
  20. "settingsCamAspect",
  21. "chatTimeStamps",
  22. "chatTurtle",
  23. "noAudioProcessing",
  24. "settingsUseMyFont",
  25. "settingsNoImages",
  26. "enableChatSounds",
  27. "camDenyNoReal",
  28. "camDenyNoFriend",
  29. "camDenyNoCam",
  30. "camAcceptAny",
  31. "camAcceptFriends",
  32. "camAcceptReal",
  33. "convoDenyAll",
  34. "convoDenyNoReal",
  35. "convoAcceptFriends",
  36. "convoAcceptReal"
  37. ];
  38. return {
  39. get chatColor() {
  40. return localStorage.chatColor;
  41. },
  42. set chatColor(value) {
  43. localStorage.chatColor = value;
  44. },
  45. get chatFont() {
  46. return localStorage.chatFont;
  47. },
  48. set chatFont(value) {
  49. localStorage.chatFont = value;
  50. },
  51. get chatFontSize() {
  52. return (1 + localStorage.chatFontSize / 10)+"em";
  53. },
  54. set chatFontSize(value) {
  55. localStorage.chatFontSize = (Number.parseFloat(value) - 1) * 10;
  56. },
  57. get inputFontSize() {
  58. return (1 + localStorage.inputFontSize / 20)+"em";
  59. },
  60. set inputFontSize(value) {
  61. localStorage.inputFontSize = (Number.parseFloat(value) - 1) * 20;
  62. },
  63. get settingsCamAspect() {
  64. return localStorage.settingsCamAspect;
  65. },
  66. set settingsCamAspect(value) {
  67. localStorage.settingsCamAspect = value;
  68. },
  69. get chatTimeStamps() {
  70. return !!parseInt(localStorage.chatTimeStamps);
  71. },
  72. set chatTimeStamps(value) {
  73. localStorage.chatTimeStamps = value ? 1 : 0;
  74. },
  75. get chatTurtle() {
  76. return !!parseInt(localStorage.chatTurtle);
  77. },
  78. set chatTurtle(value) {
  79. localStorage.chatTurtle = value ? 1 : 0;
  80. },
  81. get noAudioProcessing() {
  82. return !!parseInt(localStorage.noAudioProcessing);
  83. },
  84. set noAudioProcessing(value) {
  85. localStorage.noAudioProcessing = value ? 1 : 0;
  86. },
  87. get settingsUseMyFont() {
  88. return !!parseInt(localStorage.settingsUseMyFont);
  89. },
  90. set settingsUseMyFont(value) {
  91. localStorage.settingsUseMyFont = value ? 1 : 0;
  92. },
  93. get settingsNoImages() {
  94. return !!parseInt(localStorage.settingsNoImages);
  95. },
  96. set settingsNoImages(value) {
  97. localStorage.settingsNoImages = value ? 1 : 0;
  98. },
  99. get enableChatSounds() {
  100. return !!parseInt(localStorage.enableChatSounds);
  101. },
  102. set enableChatSounds(value) {
  103. localStorage.enableChatSounds = value ? 1 : 0;
  104. },
  105. get camDenyNoReal() {
  106. return !!parseInt(localStorage.camDenyNoReal);
  107. },
  108. set camDenyNoReal(value) {
  109. localStorage.camDenyNoReal = value ? 1 : 0;
  110. },
  111. get camDenyNoFriend() {
  112. return !!parseInt(localStorage.camDenyNoFriend);
  113. },
  114. set camDenyNoFriend(value) {
  115. localStorage.camDenyNoFriend = value ? 1 : 0;
  116. },
  117. get camDenyNoCam() {
  118. return !!parseInt(localStorage.camDenyNoCam);
  119. },
  120. set camDenyNoCam(value) {
  121. localStorage.camDenyNoCam = value ? 1 : 0;
  122. },
  123. get camAcceptAny() {
  124. return !!parseInt(localStorage.camAcceptAny);
  125. },
  126. set camAcceptAny(value) {
  127. localStorage.camAcceptAny = value ? 1 : 0;
  128. },
  129. get camAcceptFriends() {
  130. return !!parseInt(localStorage.camAcceptFriends);
  131. },
  132. set camAcceptFriends(value) {
  133. localStorage.camAcceptFriends = value ? 1 : 0;
  134. },
  135. get camAcceptReal() {
  136. return !!parseInt(localStorage.camAcceptReal);
  137. },
  138. set camAcceptReal(value) {
  139. localStorage.camAcceptReal = value ? 1 : 0;
  140. },
  141. get convoDenyAll() {
  142. return !!parseInt(localStorage.convoDenyAll);
  143. },
  144. set convoDenyAll(value) {
  145. localStorage.convoDenyAll = value ? 1 : 0;
  146. },
  147. get convoDenyNoReal() {
  148. return !!parseInt(localStorage.convoDenyNoReal);
  149. },
  150. set convoDenyNoReal(value) {
  151. localStorage.convoDenyNoReal = value ? 1 : 0;
  152. },
  153. get convoAcceptFriends() {
  154. return !!parseInt(localStorage.convoAcceptFriends);
  155. },
  156. set convoAcceptFriends(value) {
  157. localStorage.convoAcceptFriends = value ? 1 : 0;
  158. },
  159. get convoAcceptReal() {
  160. return !!parseInt(localStorage.convoAcceptReal);
  161. },
  162. set convoAcceptReal(value) {
  163. localStorage.convoAcceptReal = value ? 1 : 0;
  164. },
  165. save: () => {
  166. return Object.fromEntries(propertyNames.map(p => ({ [p]:localStorage[p] })));
  167. },
  168. restore: (saveObj) => {
  169. for (let p of propertyNames) {
  170. localStorage[p] = saveObj[p];
  171. }
  172. }
  173. };
  174. })();