@@ -9,6 +9,9 @@ const shell = require("electron").shell;
9
9
let win = remote . getCurrentWindow ( ) ;
10
10
11
11
addon_data = [ ] ;
12
+ api_data = {
13
+ "itemcount" : "0" ,
14
+ } ;
12
15
okToProcessAddonList = false ;
13
16
donePopulatingAddonList = false ;
14
17
currentNewAddon = "" ;
@@ -38,37 +41,45 @@ $(document).on("click", "a[href^='http']", function(event) {
38
41
39
42
$ ( document ) . ready ( ( ) => {
40
43
// Try and recieve data from gmpublish about user's addons
41
- ipcRenderer . on ( "message" , ( event , message ) => {
42
- var arrayOfAddonIds = message ;
43
- for ( let index = 0 ; index < arrayOfAddonIds . length ; index ++ ) {
44
- $ . ajax ( {
45
- type : 'POST' ,
46
- url : 'https://api.steampowered.com/ISteamRemoteStorage/GetPublishedFileDetails/v1/' ,
47
- data : {
48
- 'itemcount' : 1 ,
49
- 'publishedfileids[0]' : parseInt ( arrayOfAddonIds [ index ] )
50
- } ,
51
- success : function success ( data ) {
52
- var addon = data . response . publishedfiledetails [ "0" ] ;
53
- if ( addon . result == 1 ) {
54
- for ( let i = 0 ; i < Object . keys ( data ) . length ; i ++ ) {
55
- var addonObject = {
56
- "title" : addon . title ,
57
- "id" : addon . publishedfileid
58
- }
59
- addon_data . push ( addonObject ) ;
44
+ ipcRenderer . on ( "addonInfo" , ( event , message ) => {
45
+ getAddonInfoFromSteam ( message )
46
+ } ) ;
47
+
48
+ function getAddonInfoFromSteam ( message ) {
49
+ arrayOfAddonIds = message ;
50
+
51
+ api_data [ 'itemcount' ] = arrayOfAddonIds . length ;
52
+
53
+
54
+ for ( let i = 0 ; i < arrayOfAddonIds . length ; i ++ ) {
55
+ // const element = arrayOfAddonIds[i];
56
+ api_data [ "publishedfileids[" + i + "]" ] = parseInt ( arrayOfAddonIds [ i ] ) ;
57
+ }
58
+ $ . ajax ( {
59
+ type : 'POST' ,
60
+ url : 'https://api.steampowered.com/ISteamRemoteStorage/GetPublishedFileDetails/v1/' ,
61
+ data : api_data ,
62
+ dataType : 'json' ,
63
+ } ) . done ( ( data ) => {
64
+ var response = data . response ;
65
+ if ( response . result == 1 ) {
66
+ for ( let i = 0 ; i < response . resultcount ; i ++ ) {
67
+ if ( response . publishedfiledetails [ i ] . result == 1 ) {
68
+ var addon = response . publishedfiledetails [ i ] ;
69
+ var addonObject = {
70
+ "title" : addon . title ,
71
+ "id" : addon . publishedfileid
60
72
}
73
+ addon_data . push ( addonObject ) ;
61
74
}
62
- } ,
63
- error : function ( err ) {
64
- console . log ( err )
65
- } ,
66
- dataType : 'json' ,
67
- } ) ;
68
- }
69
- okToProcessAddonList = true ;
70
- $ ( '#update_existing_addon_button' ) . text ( 'Update existing addon' ) ;
71
- } ) ;
75
+ }
76
+ }
77
+ // console.log(data.response);
78
+ var addon = data . response . publishedfiledetails [ "0" ] ;
79
+ okToProcessAddonList = true ;
80
+ $ ( '#update_existing_addon_button' ) . text ( 'Update existing addon' ) ;
81
+ } ) ;
82
+ }
72
83
73
84
// If user has already defined their Garrysmod directory, just skip ahead to #addon_management
74
85
if ( settings . get ( 'gmodDirectory' ) != null ) {
@@ -214,33 +225,51 @@ $(document).ready(() => {
214
225
} )
215
226
}
216
227
228
+ // Check if user needs to refresh their addons
229
+ // TODO: Hopefully I can remove this later on as it really isn't needed (except in the case of Steam being down)
230
+ $ ( '#refresh_addons' ) . click ( ( ) => {
231
+ console . log ( "Attempting to refresh addons..." ) ;
232
+ $ ( '#yourAddons' ) . children ( ) . remove ( ) ;
233
+ getAddonInfoFromSteam ( ) ;
234
+ populateAddonList ( ) ;
235
+
236
+ } ) ;
237
+
217
238
// Get array of addon infomation and append their names to #yourAddons
218
239
function populateAddonList ( ) {
219
240
// This check is done to make sure this only gets executed once
220
241
if ( ! donePopulatingAddonList ) {
221
242
for ( let i = 0 ; i < addon_data . length ; i ++ ) {
222
- $ ( '#yourAddons' ) . append ( "<div class='addon_existing'><p>" + addon_data [ i ] . title + "</p><a href='steam://url/CommunityFilePage/" + addon_data [ i ] . id + "'>View on Steam </a></div>" ) ;
243
+ $ ( '#yourAddons' ) . append ( "<div class='addon_existing'><p>" + addon_data [ i ] . title + "</p><p class='addon_link'>< a href='steam://url/CommunityFilePage/" + addon_data [ i ] . id + "'>View</a> <a href='#'>Update </a></p ></div>" ) ;
223
244
donePopulatingAddonList = true ;
245
+
224
246
}
225
247
// Make sure if nothing is returned to let the user know
226
248
// TODO: Allow for multiple error codes such as 429 (too many requests)
227
249
// if (apiError == 400) {
228
250
// $('#yourAddons').append("<p style='background-color: #0f0f0f; padding: 15px 10px; margin: 10px 15px; border-radius: 5px;'><b>Steam Web API Error!</b><br/><br/>Error 400. Maybe</p>");
229
251
// donePopulatingAddonList = true;
230
252
// }
253
+
254
+ console . log ( addon_data , arrayOfAddonIds )
255
+
256
+ $ ( '.addon_existing' ) . hover ( ( event ) => {
257
+ var target = $ ( event . target ) ;
258
+ var targetLink = $ ( target ) . find ( '.addon_link' ) ;
259
+ $ ( targetLink ) . css ( 'opacity' , 0 ) . slideDown ( 'fast' ) . animate ( { opacity : 1 } , { queue : false , duration : 'slow' } ) ;
260
+ } , ( event ) => {
261
+ var target = $ ( event . target ) ;
262
+ var targetLink = $ ( target ) . find ( '.addon_link' ) ;
263
+ $ ( targetLink ) . slideUp ( 'fast' ) . animate ( { opacity : 0 } , { queue : false , duration : 'slow' } ) ;
264
+ } ) ;
265
+
231
266
if ( 0 == addon_data . length ) {
232
267
$ ( '#yourAddons' ) . append ( "<p style='background-color: #0f0f0f; padding: 15px 10px; margin: 10px 15px; border-radius: 5px;'><b>No addons found!</b><br/><br/>Either you don't have Steam open or haven't uploaded anything.</p>" ) ;
233
268
donePopulatingAddonList = true ;
234
269
}
235
270
}
236
271
}
237
272
238
- // $('.addon_existing').hover((event) => {
239
- // console.log('hello')
240
- // var target = $(event.target);
241
- // $(this).find('a:last').fadeIn();
242
- // })
243
-
244
273
$ ( '.typeCheckbox' ) . on ( 'click' , ( event ) => {
245
274
var target = $ ( event . target ) ;
246
275
if ( jsonCheckboxCount < 2 && target . is ( ":checked" ) ) {
@@ -314,7 +343,10 @@ $(document).ready(() => {
314
343
}
315
344
316
345
$ ( "#resetAddonCreation" ) . click ( ( ) => {
346
+ resetAddonCreation ( ) ;
347
+ } ) ;
317
348
349
+ function resetAddonCreation ( ) {
318
350
jsonCheckboxCount = 0 ;
319
351
320
352
// Clear the old data we used to make addon.json
@@ -347,7 +379,7 @@ $(document).ready(() => {
347
379
348
380
// Hide any div that may still be displayed
349
381
$ ( '#addonjsonPrompt, #jsonCreator, #gmaPrep, #createGMA' ) . css ( 'display' , 'none' ) ;
350
- } ) ;
382
+ }
351
383
352
384
$ ( "#createGMAFile" ) . click ( ( ) => {
353
385
$ ( '#gmaPrep' ) . fadeOut ( ( ) => {
@@ -370,15 +402,15 @@ $(document).ready(() => {
370
402
win . setBounds ( { height : 200 } )
371
403
$ ( '#new_addon_link' ) . attr ( 'href' , 'steam://url/CommunityFilePage/' + newAddonID )
372
404
$ ( '#new_addon' ) . fadeIn ( )
373
- } )
374
- } )
405
+ } ) ;
406
+ } ) ;
375
407
376
408
ipcRenderer . on ( 'addonGMALocation' , ( event , addonGMA ) => {
377
409
addonGMADir = addonGMA ;
378
410
$ ( '#createGMA' ) . fadeOut ( ( ) => {
379
411
win . setBounds ( { height : 200 } )
380
412
$ ( "#uploadToWorkshopPrompt" ) . fadeIn ( ) ;
381
- } )
382
- } )
413
+ } ) ;
414
+ } ) ;
383
415
384
416
} ) ;
0 commit comments