steamutils 1.4.13 → 1.4.15

Sign up to get free protection for your applications and to get access to all the features.
Files changed (238) hide show
  1. package/.idea/codeStyles/Project.xml +0 -1
  2. package/.prettierrc.json +3 -3
  3. package/SteamClient.js +2630 -2630
  4. package/bufferHelpers.js +115 -115
  5. package/cheerio.js +103 -103
  6. package/const.js +336 -336
  7. package/create_remote_file.js +66 -66
  8. package/index.js +8 -8
  9. package/package.json +1 -1
  10. package/protos/csgo/base_gcmessages.proto +553 -553
  11. package/protos/csgo/base_gcmessages_csgo.proto +547 -547
  12. package/protos/csgo/c_peer2peer_netmessages.proto +55 -55
  13. package/protos/csgo/clientmessages.proto +48 -48
  14. package/protos/csgo/connectionless_netmessages.proto +17 -17
  15. package/protos/csgo/cs_gameevents.proto +35 -35
  16. package/protos/csgo/cs_usercmd.proto +34 -34
  17. package/protos/csgo/cstrike15_gcmessages.proto +1431 -1431
  18. package/protos/csgo/cstrike15_usermessages.proto +592 -592
  19. package/protos/csgo/demo.proto +165 -165
  20. package/protos/csgo/econ_gcmessages.proto +219 -219
  21. package/protos/csgo/engine_gcmessages.proto +14 -14
  22. package/protos/csgo/enums_clientserver.proto +1529 -1529
  23. package/protos/csgo/fatdemo.proto +125 -125
  24. package/protos/csgo/gameevents.proto +120 -120
  25. package/protos/csgo/gcsdk_gcmessages.proto +323 -323
  26. package/protos/csgo/gcsystemmsgs.proto +243 -243
  27. package/protos/csgo/netmessages.proto +618 -618
  28. package/protos/csgo/network_connection.proto +126 -126
  29. package/protos/csgo/networkbasetypes.proto +246 -246
  30. package/protos/csgo/networksystem_protomessages.proto +17 -17
  31. package/protos/csgo/steamdatagram_messages_auth.proto +65 -65
  32. package/protos/csgo/steamdatagram_messages_sdr.proto +534 -534
  33. package/protos/csgo/steammessages.proto +620 -620
  34. package/protos/csgo/steammessages_base.proto +301 -301
  35. package/protos/csgo/steammessages_cloud.steamworkssdk.proto +68 -68
  36. package/protos/csgo/steammessages_gamenetworkingui.proto +61 -61
  37. package/protos/csgo/steammessages_helprequest.steamworkssdk.proto +22 -22
  38. package/protos/csgo/steammessages_oauth.steamworkssdk.proto +18 -18
  39. package/protos/csgo/steammessages_player.steamworkssdk.proto +254 -254
  40. package/protos/csgo/steammessages_publishedfile.steamworkssdk.proto +233 -233
  41. package/protos/csgo/steammessages_unified_base.steamworkssdk.proto +30 -30
  42. package/protos/csgo/steamnetworkingsockets_messages.proto +205 -205
  43. package/protos/csgo/steamnetworkingsockets_messages_certs.proto +39 -39
  44. package/protos/csgo/steamnetworkingsockets_messages_udp.proto +75 -75
  45. package/protos/csgo/te.proto +259 -259
  46. package/protos/csgo/uifontfile_format.proto +13 -13
  47. package/protos/csgo/usercmd.proto +39 -39
  48. package/protos/csgo/usermessages.proto +752 -752
  49. package/protos/csgo/valveextensions.proto +17 -17
  50. package/protos/google/protobuf/descriptor.proto +281 -281
  51. package/protos/steam/clientmetrics.proto +45 -45
  52. package/protos/steam/content_manifest.proto +62 -62
  53. package/protos/steam/contenthubs.proto +41 -41
  54. package/protos/steam/encrypted_app_ticket.proto +10 -10
  55. package/protos/steam/enums.proto +501 -501
  56. package/protos/steam/enums_clientserver.proto +1508 -1508
  57. package/protos/steam/enums_productinfo.proto +14 -14
  58. package/protos/steam/htmlmessages.proto +1039 -1039
  59. package/protos/steam/offline_ticket.proto +8 -8
  60. package/protos/steam/steamdatagram_messages_auth.proto +65 -65
  61. package/protos/steam/steamdatagram_messages_sdr.proto +533 -533
  62. package/protos/steam/steammessages_accounthardware.steamclient.proto +167 -167
  63. package/protos/steam/steammessages_appoverview.proto +204 -204
  64. package/protos/steam/steammessages_auth.steamclient.proto +375 -375
  65. package/protos/steam/steammessages_base.proto +335 -335
  66. package/protos/steam/steammessages_broadcast.steamclient.proto +618 -618
  67. package/protos/steam/steammessages_chat.steamclient.proto +1070 -1070
  68. package/protos/steam/steammessages_client_objects.proto +649 -649
  69. package/protos/steam/steammessages_clientlanp2p.proto +43 -43
  70. package/protos/steam/steammessages_clientmetrics.steamclient.proto +192 -192
  71. package/protos/steam/steammessages_clientnotificationtypes.proto +250 -250
  72. package/protos/steam/steammessages_clientserver.proto +392 -392
  73. package/protos/steam/steammessages_clientserver_2.proto +771 -771
  74. package/protos/steam/steammessages_clientserver_appinfo.proto +131 -131
  75. package/protos/steam/steammessages_clientserver_friends.proto +260 -260
  76. package/protos/steam/steammessages_clientserver_gameservers.proto +159 -159
  77. package/protos/steam/steammessages_clientserver_lbs.proto +70 -70
  78. package/protos/steam/steammessages_clientserver_login.proto +167 -167
  79. package/protos/steam/steammessages_clientserver_mms.proto +233 -233
  80. package/protos/steam/steammessages_clientserver_ucm.proto +207 -207
  81. package/protos/steam/steammessages_clientserver_uds.proto +125 -125
  82. package/protos/steam/steammessages_clientserver_ufs.proto +45 -45
  83. package/protos/steam/steammessages_clientserver_userstats.proto +80 -80
  84. package/protos/steam/steammessages_clientsettings.proto +208 -208
  85. package/protos/steam/steammessages_cloud.steamclient.proto +422 -422
  86. package/protos/steam/steammessages_contentsystem.steamclient.proto +123 -123
  87. package/protos/steam/steammessages_credentials.steamclient.proto +96 -96
  88. package/protos/steam/steammessages_datapublisher.steamclient.proto +102 -102
  89. package/protos/steam/steammessages_depotbuilder.steamclient.proto +99 -99
  90. package/protos/steam/steammessages_deviceauth.steamclient.proto +169 -169
  91. package/protos/steam/steammessages_econ.steamclient.proto +137 -137
  92. package/protos/steam/steammessages_familygroups.steamclient.proto +441 -441
  93. package/protos/steam/steammessages_friendmessages.steamclient.proto +141 -141
  94. package/protos/steam/steammessages_gamenetworking.steamclient.proto +25 -25
  95. package/protos/steam/steammessages_gamenetworkingui.proto +61 -61
  96. package/protos/steam/steammessages_gamenotifications.steamclient.proto +131 -131
  97. package/protos/steam/steammessages_gameservers.steamclient.proto +136 -136
  98. package/protos/steam/steammessages_hiddevices.proto +157 -157
  99. package/protos/steam/steammessages_inventory.steamclient.proto +172 -172
  100. package/protos/steam/steammessages_linkfilter.steamclient.proto +39 -39
  101. package/protos/steam/steammessages_lobbymatchmaking.steamclient.proto +29 -29
  102. package/protos/steam/steammessages_market.steamclient.proto +22 -22
  103. package/protos/steam/steammessages_marketingmessages.steamclient.proto +273 -273
  104. package/protos/steam/steammessages_offline.steamclient.proto +33 -33
  105. package/protos/steam/steammessages_parental.steamclient.proto +262 -262
  106. package/protos/steam/steammessages_parties.steamclient.proto +75 -75
  107. package/protos/steam/steammessages_partnerapps.steamclient.proto +106 -106
  108. package/protos/steam/steammessages_player.steamclient.proto +915 -915
  109. package/protos/steam/steammessages_publishedfile.steamclient.proto +737 -737
  110. package/protos/steam/steammessages_qms.steamclient.proto +111 -111
  111. package/protos/steam/steammessages_remoteclient.proto +100 -100
  112. package/protos/steam/steammessages_remoteclient_discovery.proto +244 -244
  113. package/protos/steam/steammessages_remoteclient_service.steamclient.proto +31 -31
  114. package/protos/steam/steammessages_remoteclient_service_messages.proto +217 -217
  115. package/protos/steam/steammessages_remoteplay.proto +975 -975
  116. package/protos/steam/steammessages_secrets.steamclient.proto +35 -35
  117. package/protos/steam/steammessages_shader.steamclient.proto +89 -89
  118. package/protos/steam/steammessages_site_license.steamclient.proto +103 -103
  119. package/protos/steam/steammessages_sitelicenseclient.proto +38 -38
  120. package/protos/steam/steammessages_siteserverui.proto +130 -130
  121. package/protos/steam/steammessages_steamtv.steamclient.proto +533 -533
  122. package/protos/steam/steammessages_store.steamclient.proto +404 -404
  123. package/protos/steam/steammessages_storebrowse.steamclient.proto +457 -457
  124. package/protos/steam/steammessages_timedtrial.steamclient.proto +40 -40
  125. package/protos/steam/steammessages_twofactor.steamclient.proto +157 -157
  126. package/protos/steam/steammessages_unified_base.steamclient.proto +45 -45
  127. package/protos/steam/steammessages_unified_test.steamclient.proto +51 -51
  128. package/protos/steam/steammessages_useraccount.steamclient.proto +211 -211
  129. package/protos/steam/steammessages_vac.steamclient.proto +37 -37
  130. package/protos/steam/steammessages_video.steamclient.proto +68 -68
  131. package/protos/steam/steammessages_virtualcontroller.proto +138 -138
  132. package/protos/steam/steammessages_workshop.steamclient.proto +19 -19
  133. package/protos/steam/steamnetworkingsockets_messages.proto +205 -205
  134. package/protos/steam/steamnetworkingsockets_messages_certs.proto +39 -39
  135. package/protos/steam/steamnetworkingsockets_messages_udp.proto +75 -75
  136. package/protos/steam/webuimessages_achievements.proto +29 -29
  137. package/protos/steam/webuimessages_base.proto +24 -24
  138. package/protos/steam/webuimessages_gamenotes.proto +21 -21
  139. package/protos/steam/webuimessages_gamescope.proto +57 -57
  140. package/protos/steam/webuimessages_steamengine.proto +41 -41
  141. package/protos/steam/webuimessages_steamos.proto +114 -114
  142. package/protos/steam/webuimessages_storagedevicemanager.proto +110 -110
  143. package/protos/steam/webuimessages_systemmanager.proto +17 -17
  144. package/protos/steam/webuimessages_transport.proto +22 -22
  145. package/protos/steam/webuimessages_transportvalidation.proto +111 -111
  146. package/protos/webui/common.proto +4024 -4024
  147. package/protos/webui/common_base.proto +27 -27
  148. package/protos/webui/service_accountcart.proto +153 -153
  149. package/protos/webui/service_accountlinking.proto +27 -27
  150. package/protos/webui/service_accountprivacy.proto +42 -42
  151. package/protos/webui/service_accountprivateapps.proto +34 -34
  152. package/protos/webui/service_auction.proto +97 -97
  153. package/protos/webui/service_authentication.proto +222 -222
  154. package/protos/webui/service_authenticationsupport.proto +74 -74
  155. package/protos/webui/service_broadcast.proto +562 -562
  156. package/protos/webui/service_chat.proto +11 -11
  157. package/protos/webui/service_chatroom.proto +810 -810
  158. package/protos/webui/service_chatusability.proto +107 -107
  159. package/protos/webui/service_checkout.proto +84 -84
  160. package/protos/webui/service_clan.proto +41 -41
  161. package/protos/webui/service_clanchatrooms.proto +25 -25
  162. package/protos/webui/service_clanfaqs.proto +202 -202
  163. package/protos/webui/service_clientcomm.proto +151 -151
  164. package/protos/webui/service_clientmetrics.proto +22 -22
  165. package/protos/webui/service_cloud.proto +222 -222
  166. package/protos/webui/service_cloudconfigstore.proto +51 -51
  167. package/protos/webui/service_cloudgaming.proto +30 -30
  168. package/protos/webui/service_community.proto +365 -365
  169. package/protos/webui/service_dailydeal.proto +89 -89
  170. package/protos/webui/service_econ.proto +134 -134
  171. package/protos/webui/service_embedded.proto +24 -24
  172. package/protos/webui/service_experimentservice.proto +6 -6
  173. package/protos/webui/service_familygroups.proto +355 -355
  174. package/protos/webui/service_fovasvideo.proto +15 -15
  175. package/protos/webui/service_friendmessages.proto +133 -133
  176. package/protos/webui/service_friendslist.proto +70 -70
  177. package/protos/webui/service_gamenotes.proto +15 -15
  178. package/protos/webui/service_gamerecording.proto +265 -265
  179. package/protos/webui/service_gamerecordingclip.proto +85 -85
  180. package/protos/webui/service_gamerecordingdebug.proto +52 -52
  181. package/protos/webui/service_helprequestlogs.proto +16 -16
  182. package/protos/webui/service_loyaltyrewards.proto +252 -252
  183. package/protos/webui/service_marketingmessages.proto +215 -215
  184. package/protos/webui/service_mobileapp.proto +18 -18
  185. package/protos/webui/service_mobileauth.proto +24 -24
  186. package/protos/webui/service_mobiledevice.proto +26 -26
  187. package/protos/webui/service_mobileperaccount.proto +31 -31
  188. package/protos/webui/service_news.proto +110 -110
  189. package/protos/webui/service_parental.proto +258 -258
  190. package/protos/webui/service_partnermembershipinvite.proto +34 -34
  191. package/protos/webui/service_partnerstorebrowse.proto +28 -28
  192. package/protos/webui/service_phone.proto +51 -51
  193. package/protos/webui/service_physicalgoods.proto +15 -15
  194. package/protos/webui/service_player.proto +918 -918
  195. package/protos/webui/service_promotioneventinvites.proto +109 -109
  196. package/protos/webui/service_promotionplanning.proto +186 -186
  197. package/protos/webui/service_promotionstats.proto +23 -23
  198. package/protos/webui/service_publishedfile.proto +714 -714
  199. package/protos/webui/service_publishing.proto +200 -200
  200. package/protos/webui/service_quest.proto +127 -127
  201. package/protos/webui/service_salefeature.proto +373 -373
  202. package/protos/webui/service_saleitemrewards.proto +54 -54
  203. package/protos/webui/service_shoppingcart.proto +152 -152
  204. package/protos/webui/service_steamawards.proto +76 -76
  205. package/protos/webui/service_steamcharts.proto +75 -75
  206. package/protos/webui/service_steamengine.proto +36 -36
  207. package/protos/webui/service_steamlearn.proto +876 -876
  208. package/protos/webui/service_steamnotification.proto +73 -73
  209. package/protos/webui/service_steamtv.proto +495 -495
  210. package/protos/webui/service_steamvrvoicechat.proto +67 -67
  211. package/protos/webui/service_steamvrwebrtc.proto +48 -48
  212. package/protos/webui/service_storagedevicemanager.proto +104 -104
  213. package/protos/webui/service_store.proto +359 -359
  214. package/protos/webui/service_storeappsimilarity.proto +76 -76
  215. package/protos/webui/service_storebrowse.proto +103 -103
  216. package/protos/webui/service_storemarketing.proto +44 -44
  217. package/protos/webui/service_storequery.proto +103 -103
  218. package/protos/webui/service_storesales.proto +87 -87
  219. package/protos/webui/service_storetopsellers.proto +44 -44
  220. package/protos/webui/service_systemmanager.proto +11 -11
  221. package/protos/webui/service_test_transporterror.proto +6 -6
  222. package/protos/webui/service_transportauth.proto +17 -17
  223. package/protos/webui/service_transportvalidation.proto +69 -69
  224. package/protos/webui/service_twofactor.proto +170 -170
  225. package/protos/webui/service_useraccount.proto +142 -142
  226. package/protos/webui/service_usergameactivity.proto +34 -34
  227. package/protos/webui/service_usergamenotes.proto +70 -70
  228. package/protos/webui/service_usernews.proto +68 -68
  229. package/protos/webui/service_userreviews.proto +97 -97
  230. package/protos/webui/service_video.proto +50 -50
  231. package/protos/webui/service_videoclip.proto +62 -62
  232. package/protos/webui/service_voicechat.proto +139 -139
  233. package/protos/webui/service_webrtc.proto +52 -52
  234. package/remote.js +6259 -6259
  235. package/test_steamclient.js +38 -183
  236. package/utils.js +155 -155
  237. package/.idea/deployment.xml +0 -14
  238. package/.idea/jsLibraryMappings.xml +0 -6
@@ -1,194 +1,49 @@
1
+ import SteamUser from "./index.js";
2
+ import axios from "axios";
3
+ import * as cherrio from "cheerio";
1
4
  import SteamClient from "./SteamClient.js";
2
5
  import { sleep } from "./utils.js";
6
+ import SteamID from "steamid";
3
7
 
4
- async function fetchPlayerProfile() {}
8
+ (async function () {
9
+ // const loginResult = await SteamUser.communityLogin({
10
+ // username: "abc",
11
+ // password: "xyz",
12
+ // })
13
+ // console.log(loginResult.cookie);
14
+ // const user = new SteamUser(loginResult.cookie)
5
15
 
6
- async function main() {
16
+ const cookie = "steamLoginSecure=76561199027347696%7C%7CeyAidHlwIjogIkpXVCIsICJhbGciOiAiRWREU0EiIH0.eyAiaXNzIjogInI6MEVEQl8yNDdGRkVFOV9BREZDMSIsICJzdWIiOiAiNzY1NjExOTkwMjczNDc2OTYiLCAiYXVkIjogWyAid2ViIiwgIm1vYmlsZSIgXSwgImV4cCI6IDE3MTk0NjE2NzEsICJuYmYiOiAxNzEwNzMzNDgyLCAiaWF0IjogMTcxOTM3MzQ4MiwgImp0aSI6ICIwRjJBXzI0QTRFNzA0XzRFMUY5IiwgIm9hdCI6IDE3MTc0MDI5NzYsICJydF9leHAiOiAxNzM1NTcwOTk0LCAicGVyIjogMCwgImlwX3N1YmplY3QiOiAiMTQuMjMyLjIxNC4xODYiLCAiaXBfY29uZmlybWVyIjogIjE0LjIzMi4yMTQuMTg2IiB9.-91xjy2Z55LHw1i7OkzmAHf-KB-QeEfZqfznmDDgdSK_8ZUoesiiOs1DyFqCL7gM5hOsQGsMjYR3LgaCG0umDg;sessionid=b144c2eac0b3b2c577319ebd";
7
17
  const steamClient = new SteamClient({
8
- cookie: "",
18
+ cookie,
9
19
  isAutoPlay: true,
10
- isInvisible: true,
11
20
  isPartyRegister: false,
12
21
  });
22
+ let redeemFreeReward = false;
13
23
  steamClient.onEvent("csgoOnline", async function (data) {
14
- console.log(data);
15
- });
16
- steamClient.init();
17
- }
24
+ const personalStore = data.personalStore;
25
+ if (!personalStore) return;
26
+ const example = {
27
+ items: [38468732624, 38468732625, 38468732626, 38468732627],
28
+ generation_time: 1719374753000,
29
+ redeemable_balance: 2,
30
+ };
18
31
 
19
- const storeItems = [
20
- {
21
- attribute: [
22
- {
23
- def_index: 277,
24
- value: 0,
25
- value_bytes: {
26
- type: "Buffer",
27
- data: [1, 0, 0, 0],
28
- },
29
- },
30
- ],
31
- equipped_state: [],
32
- id: 37931041285,
33
- account_id: 1457628033,
34
- inventory: 1,
35
- def_index: 4880,
36
- quantity: 1,
37
- level: 1,
38
- quality: 4,
39
- flags: 0,
40
- origin: 24,
41
- custom_name: "",
42
- custom_desc: "",
43
- interior_item: null,
44
- in_use: false,
45
- style: 0,
46
- original_id: 0,
47
- rarity: 1,
48
- },
49
- {
50
- attribute: [
51
- {
52
- def_index: 6,
53
- value: 0,
54
- value_bytes: {
55
- type: "Buffer",
56
- data: [0, 0, 156, 66],
57
- },
58
- },
59
- {
60
- def_index: 7,
61
- value: 0,
62
- value_bytes: {
63
- type: "Buffer",
64
- data: [179, 193, 201, 65],
65
- },
66
- },
67
- {
68
- def_index: 8,
69
- value: 0,
70
- value_bytes: {
71
- type: "Buffer",
72
- data: [245, 246, 35, 62],
73
- },
74
- },
75
- {
76
- def_index: 277,
77
- value: 0,
78
- value_bytes: {
79
- type: "Buffer",
80
- data: [1, 0, 0, 0],
81
- },
82
- },
83
- ],
84
- equipped_state: [],
85
- id: 37931041286,
86
- account_id: 1457628033,
87
- inventory: 1,
88
- def_index: 3,
89
- quantity: 1,
90
- level: 1,
91
- quality: 4,
92
- flags: 0,
93
- origin: 24,
94
- custom_name: "",
95
- custom_desc: "",
96
- interior_item: null,
97
- in_use: false,
98
- style: 0,
99
- original_id: 0,
100
- rarity: 1,
101
- },
102
- {
103
- attribute: [
104
- {
105
- def_index: 113,
106
- value: 0,
107
- value_bytes: {
108
- type: "Buffer",
109
- data: [162, 6, 0, 0],
110
- },
111
- },
112
- {
113
- def_index: 233,
114
- value: 0,
115
- value_bytes: {
116
- type: "Buffer",
117
- data: [5, 0, 0, 0],
118
- },
119
- },
120
- {
121
- def_index: 277,
122
- value: 0,
123
- value_bytes: {
124
- type: "Buffer",
125
- data: [1, 0, 0, 0],
126
- },
127
- },
128
- ],
129
- equipped_state: [],
130
- id: 37931041287,
131
- account_id: 1457628033,
132
- inventory: 1,
133
- def_index: 1348,
134
- quantity: 1,
135
- level: 1,
136
- quality: 4,
137
- flags: 0,
138
- origin: 24,
139
- custom_name: "",
140
- custom_desc: "",
141
- interior_item: null,
142
- in_use: false,
143
- style: 0,
144
- original_id: 0,
145
- rarity: 1,
146
- },
147
- {
148
- attribute: [
149
- {
150
- def_index: 113,
151
- value: 0,
152
- value_bytes: {
153
- type: "Buffer",
154
- data: [179, 6, 0, 0],
155
- },
156
- },
157
- {
158
- def_index: 233,
159
- value: 0,
160
- value_bytes: {
161
- type: "Buffer",
162
- data: [18, 0, 0, 0],
163
- },
164
- },
165
- {
166
- def_index: 277,
167
- value: 0,
168
- value_bytes: {
169
- type: "Buffer",
170
- data: [1, 0, 0, 0],
171
- },
172
- },
173
- ],
174
- equipped_state: [],
175
- id: 37931041288,
176
- account_id: 1457628033,
177
- inventory: 1,
178
- def_index: 1348,
179
- quantity: 1,
180
- level: 1,
181
- quality: 4,
182
- flags: 0,
183
- origin: 24,
184
- custom_name: "",
185
- custom_desc: "",
186
- interior_item: null,
187
- in_use: false,
188
- style: 0,
189
- original_id: 0,
190
- rarity: 1,
191
- },
192
- ];
32
+ console.log(personalStore.items);
33
+ console.log(personalStore.redeemable_balance);
34
+ if (!redeemFreeReward) {
35
+ redeemFreeReward = true;
193
36
 
194
- main();
37
+ let itemid = 38468732624;
38
+ // itemid = SteamID.fromIndividualAccountID(itemid).getSteamID64();
39
+ await steamClient.redeemFreeReward([itemid]);
40
+ await sleep(5000);
41
+ steamClient.offAutoGamePlay();
42
+ await sleep(1000);
43
+ steamClient.autoGamePlay();
44
+ } else {
45
+ process.exit(1);
46
+ }
47
+ });
48
+ steamClient.init();
49
+ })();
package/utils.js CHANGED
@@ -1,155 +1,155 @@
1
- const isBrowser = typeof window !== "undefined";
2
-
3
- export const sleep = (ms) => {
4
- return new Promise((resolve) => {
5
- setTimeout(resolve, ms);
6
- });
7
- };
8
-
9
- export const sleepRandom = async (startMs, endMs) => {
10
- return await sleep(Math.random() * (endMs - startMs) + startMs);
11
- };
12
-
13
- /**
14
- * const audioTrack = stream.getAudioTracks()[0]
15
- * const videoStream = UserMedia.createBlankVideoTrack()
16
- * videoStream.addTrack(audioTrack)
17
- * stream = videoStream
18
- * **/
19
- export const createBlankVideoTrack = (opts = {}) => {
20
- const { width = 1920, height = 1080 } = opts;
21
-
22
- const canvas = Object.assign(document.createElement("canvas"), {
23
- width,
24
- height,
25
- });
26
-
27
- canvas.getContext("2d").fillRect(0, 0, width, height);
28
-
29
- return canvas.captureStream();
30
- };
31
-
32
- const minDate = new Date(0),
33
- maxDate = new Date(parseInt("ffffffff", 16) * 1000);
34
-
35
- export function objectIdFromDate(date) {
36
- if (date < minDate || date > maxDate) {
37
- return `Error: date must be between ${minDate.getFullYear()} and ${maxDate.getFullYear()}`;
38
- }
39
- var pad = "00000000";
40
- var hexSeconds = Math.floor(date.getTime() / 1000).toString(16);
41
- return `${pad.substring(0, pad.length - hexSeconds.length) + hexSeconds}0000000000000000`;
42
- }
43
-
44
- export function dateFromObjectId(objectId) {
45
- return new Date(parseInt(objectId.substring(0, 8), 16) * 1000);
46
- }
47
-
48
- export function console_log(...args) {
49
- const params = [];
50
- params.push(new Date().toUTCString());
51
- const errorStack = new Error().stack;
52
- const fnName = errorStack
53
- .split("\n")
54
- .map((e) => e?.trim())
55
- .filter((e) => e.startsWith("at") && !e.startsWith("at console_log") && !e.startsWith("at processTicksAndRejections"))[0]
56
- .substr(3);
57
- params.push(fnName);
58
- console.log(
59
- params
60
- .filter(Boolean)
61
- .map((p) => `[${p.trim()}]`)
62
- .join(" "),
63
- ...args,
64
- );
65
- }
66
-
67
- export function removeSpaceKeys(object) {
68
- //mutate object
69
- if (!object || Array.isArray(object)) {
70
- return object;
71
- }
72
-
73
- Object.entries(object).forEach(([key, value]) => {
74
- const newKey = key.replaceAll(/[^a-zA-Z0-9]/gi, "_");
75
- if (newKey !== key) {
76
- delete object[key];
77
- object[newKey] = value;
78
- }
79
- });
80
- return object;
81
- }
82
-
83
- export function getCleanObject(object) {
84
- //like removeSpaceKeys but not mutate object
85
- if (!object || Array.isArray(object)) {
86
- return object;
87
- }
88
-
89
- const newObject = {};
90
- Object.entries(object).forEach(([key, value]) => {
91
- const newKey = key.replaceAll(/[^a-zA-Z0-9]/gi, "_");
92
- newObject[newKey] = value;
93
- });
94
- return newObject;
95
- }
96
-
97
- export function JSON_parse(data) {
98
- try {
99
- return JSON.parse(data);
100
- } catch (e) {
101
- return null;
102
- }
103
- }
104
-
105
- export function JSON_stringify(data) {
106
- try {
107
- return JSON.stringify(data);
108
- } catch (e) {
109
- return null;
110
- }
111
- }
112
-
113
- export async function throttle(fn, delay) {
114
- let canFire = true;
115
- let queue = [];
116
-
117
- async function pop() {
118
- if (queue.length < 1) return;
119
-
120
- const [that, args] = queue.pop();
121
- await fn.apply(that, args);
122
- canFire = false;
123
- setTimeout(async () => {
124
- canFire = true;
125
- await pop();
126
- }, delay);
127
- }
128
-
129
- async function push() {
130
- queue.push([this, arguments]);
131
- if (canFire) {
132
- await pop();
133
- }
134
- }
135
-
136
- push.cancel = () => {
137
- queue = [];
138
- };
139
-
140
- return push;
141
- }
142
-
143
- export const secretAsBuffer = (sharedSecret) => {
144
- if (Buffer.isBuffer(sharedSecret)) {
145
- return sharedSecret;
146
- }
147
-
148
- if (sharedSecret.match(/^[0-9a-f]{40}$/i)) {
149
- // Looks like it's hex
150
- return Buffer.from(sharedSecret, "hex");
151
- }
152
-
153
- // It must be base64
154
- return Buffer.from(sharedSecret, "base64");
155
- };
1
+ const isBrowser = typeof window !== "undefined";
2
+
3
+ export const sleep = (ms) => {
4
+ return new Promise((resolve) => {
5
+ setTimeout(resolve, ms);
6
+ });
7
+ };
8
+
9
+ export const sleepRandom = async (startMs, endMs) => {
10
+ return await sleep(Math.random() * (endMs - startMs) + startMs);
11
+ };
12
+
13
+ /**
14
+ * const audioTrack = stream.getAudioTracks()[0]
15
+ * const videoStream = UserMedia.createBlankVideoTrack()
16
+ * videoStream.addTrack(audioTrack)
17
+ * stream = videoStream
18
+ * **/
19
+ export const createBlankVideoTrack = (opts = {}) => {
20
+ const { width = 1920, height = 1080 } = opts;
21
+
22
+ const canvas = Object.assign(document.createElement("canvas"), {
23
+ width,
24
+ height,
25
+ });
26
+
27
+ canvas.getContext("2d").fillRect(0, 0, width, height);
28
+
29
+ return canvas.captureStream();
30
+ };
31
+
32
+ const minDate = new Date(0),
33
+ maxDate = new Date(parseInt("ffffffff", 16) * 1000);
34
+
35
+ export function objectIdFromDate(date) {
36
+ if (date < minDate || date > maxDate) {
37
+ return `Error: date must be between ${minDate.getFullYear()} and ${maxDate.getFullYear()}`;
38
+ }
39
+ var pad = "00000000";
40
+ var hexSeconds = Math.floor(date.getTime() / 1000).toString(16);
41
+ return `${pad.substring(0, pad.length - hexSeconds.length) + hexSeconds}0000000000000000`;
42
+ }
43
+
44
+ export function dateFromObjectId(objectId) {
45
+ return new Date(parseInt(objectId.substring(0, 8), 16) * 1000);
46
+ }
47
+
48
+ export function console_log(...args) {
49
+ const params = [];
50
+ params.push(new Date().toUTCString());
51
+ const errorStack = new Error().stack;
52
+ const fnName = errorStack
53
+ .split("\n")
54
+ .map((e) => e?.trim())
55
+ .filter((e) => e.startsWith("at") && !e.startsWith("at console_log") && !e.startsWith("at processTicksAndRejections"))[0]
56
+ .substr(3);
57
+ params.push(fnName);
58
+ console.log(
59
+ params
60
+ .filter(Boolean)
61
+ .map((p) => `[${p.trim()}]`)
62
+ .join(" "),
63
+ ...args,
64
+ );
65
+ }
66
+
67
+ export function removeSpaceKeys(object) {
68
+ //mutate object
69
+ if (!object || Array.isArray(object)) {
70
+ return object;
71
+ }
72
+
73
+ Object.entries(object).forEach(([key, value]) => {
74
+ const newKey = key.replaceAll(/[^a-zA-Z0-9]/gi, "_");
75
+ if (newKey !== key) {
76
+ delete object[key];
77
+ object[newKey] = value;
78
+ }
79
+ });
80
+ return object;
81
+ }
82
+
83
+ export function getCleanObject(object) {
84
+ //like removeSpaceKeys but not mutate object
85
+ if (!object || Array.isArray(object)) {
86
+ return object;
87
+ }
88
+
89
+ const newObject = {};
90
+ Object.entries(object).forEach(([key, value]) => {
91
+ const newKey = key.replaceAll(/[^a-zA-Z0-9]/gi, "_");
92
+ newObject[newKey] = value;
93
+ });
94
+ return newObject;
95
+ }
96
+
97
+ export function JSON_parse(data) {
98
+ try {
99
+ return JSON.parse(data);
100
+ } catch (e) {
101
+ return null;
102
+ }
103
+ }
104
+
105
+ export function JSON_stringify(data) {
106
+ try {
107
+ return JSON.stringify(data);
108
+ } catch (e) {
109
+ return null;
110
+ }
111
+ }
112
+
113
+ export async function throttle(fn, delay) {
114
+ let canFire = true;
115
+ let queue = [];
116
+
117
+ async function pop() {
118
+ if (queue.length < 1) return;
119
+
120
+ const [that, args] = queue.pop();
121
+ await fn.apply(that, args);
122
+ canFire = false;
123
+ setTimeout(async () => {
124
+ canFire = true;
125
+ await pop();
126
+ }, delay);
127
+ }
128
+
129
+ async function push() {
130
+ queue.push([this, arguments]);
131
+ if (canFire) {
132
+ await pop();
133
+ }
134
+ }
135
+
136
+ push.cancel = () => {
137
+ queue = [];
138
+ };
139
+
140
+ return push;
141
+ }
142
+
143
+ export const secretAsBuffer = (sharedSecret) => {
144
+ if (Buffer.isBuffer(sharedSecret)) {
145
+ return sharedSecret;
146
+ }
147
+
148
+ if (sharedSecret.match(/^[0-9a-f]{40}$/i)) {
149
+ // Looks like it's hex
150
+ return Buffer.from(sharedSecret, "hex");
151
+ }
152
+
153
+ // It must be base64
154
+ return Buffer.from(sharedSecret, "base64");
155
+ };
@@ -1,14 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="PublishConfigData" remoteFilesAllowedToDisappearOnAutoupload="false">
4
- <serverData>
5
- <paths name="botnatridiscord">
6
- <serverdata>
7
- <mappings>
8
- <mapping local="$PROJECT_DIR$" web="/" />
9
- </mappings>
10
- </serverdata>
11
- </paths>
12
- </serverData>
13
- </component>
14
- </project>
@@ -1,6 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="JavaScriptLibraryMappings">
4
- <includedPredefinedLibrary name="Node.js Core" />
5
- </component>
6
- </project>