From 8112f9e9a76aeeda90f385458a83c3f5de820064 Mon Sep 17 00:00:00 2001 From: Michael Green <84688932+michael-j-green@users.noreply.github.com> Date: Sat, 24 Jun 2023 14:06:14 +1000 Subject: [PATCH] feat: first pass at filter and game screen + some bug fixes --- .DS_Store | Bin 0 -> 10244 bytes gaseous-server/.DS_Store | Bin 0 -> 6148 bytes gaseous-server/Classes/Metadata/Storage.cs | 11 +- gaseous-server/Classes/MetadataManagement.cs | 11 +- gaseous-server/Classes/Roms.cs | 4 +- gaseous-server/Controllers/GamesController.cs | 4 +- gaseous-server/gaseous-server.csproj | 10 ++ gaseous-server/wwwroot/.DS_Store | Bin 0 -> 6148 bytes gaseous-server/wwwroot/images/logo.png | Bin 0 -> 1260 bytes gaseous-server/wwwroot/images/unknowngame.png | Bin 0 -> 2319 bytes gaseous-server/wwwroot/index.html | 30 ++++- .../wwwroot/scripts/filterformating.js | 76 +++++++++++ .../wwwroot/scripts/gamesformating.js | 41 ++++++ gaseous-server/wwwroot/scripts/main.js | 24 ++++ gaseous-server/wwwroot/styles/style.css | 121 ++++++++++++++++++ .../gaseous-signature-ingestor.csproj.user | 8 ++ gaseous-tools/Database/MySQL/gaseous-1000.sql | 2 +- 17 files changed, 330 insertions(+), 12 deletions(-) create mode 100644 .DS_Store create mode 100644 gaseous-server/.DS_Store create mode 100644 gaseous-server/wwwroot/.DS_Store create mode 100644 gaseous-server/wwwroot/images/logo.png create mode 100644 gaseous-server/wwwroot/images/unknowngame.png create mode 100644 gaseous-server/wwwroot/scripts/filterformating.js create mode 100644 gaseous-server/wwwroot/scripts/gamesformating.js create mode 100644 gaseous-server/wwwroot/scripts/main.js create mode 100644 gaseous-server/wwwroot/styles/style.css create mode 100644 gaseous-signature-ingestor/gaseous-signature-ingestor.csproj.user diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..87c57ab261fc0ddee6e8378a8fa6d29360931046 GIT binary patch literal 10244 zcmeHM&ubGw6n>k;W@B54rG?^Y#fxC7X=_7^ml#tJ1wm8%fz>wK#5S7jhRvoCY9OGe zdhj0*@#evc9@HWpdQfkklwOJ#!9#Bf3W68k%xs$3-8QBhXiJ%a**BS)H}B0i-@e(I z0DzPzX9fWj0FW^g8ScWz28pzj>`FeXCW=x*eaO!are^d)(bZE_2m}NI0s(=5KtLd{ zTM)oKnj;qepkO94Zpj*xG<4vD9sy7Wu$m?;he-jYV#&BAYfNGb zCW)z{WU7*N#E_Ue)+<)OxFu^$GIfxw!-r&9maG$sM6Kia3hfS3oJsK%2nYn+2#~XT z0FJ{f9ybR$g)Q=f>gZzj-g4KP=exAPdsy zPZs?tqZ~j^pkJVYiKSbZvtX!|QqkhUl3L8?N@g^=BKiD*eI3DIDA*aik($#hDKl-B zONq2`o&1{6^}Jdyr`5~3Y-K9kdq&sHbWY0}R3VqiVwcG)IW41C5_(z7l&EfsHH1QP zXe!*lurM+fizu<^Xf>iNj15I2%E{qawHlK9j+{7kY3feCpy`VQT-*Yztpd8)@Acdh5jkwpkRvAY!=OA-;Wo+{F!u;AJk8z46JP3qR}6XHe3Wn2j zADzao)T$1@-tusbtanozj&*hO)g3v=-lF09XECan7+nk=3wYd5Vy&lfc#M9$c~p;26*X~$6rtldE2<*KbQ7`9nXvNKTGx4x@BMZ zxZ2J*Ha-NFJ@LWu-gUe9MBXeN^3HGC)lX=yNpBvj@e98e@3J`4RHN~xw5DO3e}{Ey zCn$&{5D*A#2LgU(L?PcDAGPYp9V1QH9w!BqH72oyX@~v{*yvu!eNJfM?!)$dD$f6# U-Vr&zSDT(GclthQub=<_0sXhAdH?_b literal 0 HcmV?d00001 diff --git a/gaseous-server/.DS_Store b/gaseous-server/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..f0d37de2d8be1531103bcdcde6a11a61f063f1dd GIT binary patch literal 6148 zcmeHK%}T>S5Z-O8Nhm@N3Oz1(Ef}j5#Y>3w1&ruHr6#0kFlI}W+CwSitS{t~_&m<+ zZop#BB6bFLzxmzGevtiPjPYQe95UuI#%ySa9F+z^cVnn!k`XzMQB31Z#$bKKQxp5^ zfZyI`F-utq^QjuJtIsPA7}8 zyL&G4GD`EwOckWb1XAv9(mauiK+f}|P_>~BIF9X%-QIFJJQ?)GVCb#-VtG37`r`O# zxLP^(-u}Va<@h;!$>p1-lLOmIb_~|=4vJaLYdFg@nLmQ3&aSfvi2-7O7$62Vn*nn! z*xk*hfmTlp5CaVi;Qk<>A^HX@jcV(F4zJG`?;xUpj&BJ>VbC{NX@m#}*QJ2El$$38 z*X7_BCeJrmY1HM6tC?XOGjsiT;c9m93zg2euaSCUfEZY3psh_8&;JYfWf~v(>m_6n z1H`~TV}N%?;V6JbnX~oB^6;z`&>o8YTO3)CUcH&|)JQP8i- Q0qG*32%(M`_yq>O0En7NX8-^I literal 0 HcmV?d00001 diff --git a/gaseous-server/Classes/Metadata/Storage.cs b/gaseous-server/Classes/Metadata/Storage.cs index bb26ccd..8d543cc 100644 --- a/gaseous-server/Classes/Metadata/Storage.cs +++ b/gaseous-server/Classes/Metadata/Storage.cs @@ -39,7 +39,7 @@ namespace gaseous_server.Classes.Metadata DataTable dt = db.ExecuteCMD(sql, dbDict); if (dt.Rows.Count == 0) { - // no data stored for this item, or lastUpdated + // no data stored for this item, or lastUpdated return CacheStatus.NotPresent; } else @@ -77,13 +77,16 @@ namespace gaseous_server.Classes.Metadata { fieldList = fieldList + ", "; valueList = valueList + ", "; - updateFieldValueList = updateFieldValueList + ", "; } fieldList = fieldList + key.Key; valueList = valueList + "@" + key.Key; if ((key.Key != "id") && (key.Key != "dateAdded")) - { - updateFieldValueList = key.Key + " = @" + key.Key; + { + if (updateFieldValueList.Length > 0) + { + updateFieldValueList = updateFieldValueList + ", "; + } + updateFieldValueList += key.Key + " = @" + key.Key; } // check property type diff --git a/gaseous-server/Classes/MetadataManagement.cs b/gaseous-server/Classes/MetadataManagement.cs index 4c51df2..8190f53 100644 --- a/gaseous-server/Classes/MetadataManagement.cs +++ b/gaseous-server/Classes/MetadataManagement.cs @@ -14,8 +14,15 @@ namespace gaseous_server.Classes foreach (DataRow dr in dt.Rows) { - Logging.Log(Logging.LogType.Information, "Metadata Refresh", "Refreshing metadata for game " + dr["name"] + " (" + dr["id"] + ")"); - Metadata.Games.GetGame((long)dr["id"], true, forceRefresh); + try + { + Logging.Log(Logging.LogType.Information, "Metadata Refresh", "Refreshing metadata for game " + dr["name"] + " (" + dr["id"] + ")"); + Metadata.Games.GetGame((long)dr["id"], true, forceRefresh); + } + catch (Exception ex) + { + Logging.Log(Logging.LogType.Critical, "Metadata Refresh", "An error occurred while refreshing metadata for " + dr["name"], ex); + } } } } diff --git a/gaseous-server/Classes/Roms.cs b/gaseous-server/Classes/Roms.cs index f85fe68..4195489 100644 --- a/gaseous-server/Classes/Roms.cs +++ b/gaseous-server/Classes/Roms.cs @@ -81,7 +81,9 @@ namespace gaseous_server.Classes Database db = new gaseous_tools.Database(Database.databaseType.MySql, Config.DatabaseConfiguration.ConnectionString); string sql = "DELETE FROM games_roms WHERE id = @id"; - db.ExecuteCMD(sql); + Dictionary dbDict = new Dictionary(); + dbDict.Add("id", RomId); + db.ExecuteCMD(sql, dbDict); } private static GameRomItem BuildRom(DataRow romDR) diff --git a/gaseous-server/Controllers/GamesController.cs b/gaseous-server/Controllers/GamesController.cs index ed99732..fa5a609 100644 --- a/gaseous-server/Controllers/GamesController.cs +++ b/gaseous-server/Controllers/GamesController.cs @@ -136,11 +136,11 @@ namespace gaseous_server.Controllers [Route("{GameId}")] [ProducesResponseType(typeof(Game), StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status404NotFound)] - public ActionResult Game(long GameId) + public ActionResult Game(long GameId, bool forceRefresh = false) { try { - IGDB.Models.Game gameObject = Classes.Metadata.Games.GetGame(GameId, false, false); + IGDB.Models.Game gameObject = Classes.Metadata.Games.GetGame(GameId, false, forceRefresh); if (gameObject != null) { diff --git a/gaseous-server/gaseous-server.csproj b/gaseous-server/gaseous-server.csproj index 74fb485..9614837 100644 --- a/gaseous-server/gaseous-server.csproj +++ b/gaseous-server/gaseous-server.csproj @@ -9,6 +9,10 @@ + + 4 + bin\Debug\net7.0\gaseous-server.xml + @@ -62,6 +66,9 @@ + + + @@ -78,6 +85,9 @@ + + + diff --git a/gaseous-server/wwwroot/.DS_Store b/gaseous-server/wwwroot/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..cd3a2cf86a516c8064df523e3cb54a7528c4c45a GIT binary patch literal 6148 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 lBXbwbf3_9;+pp8IBL*j-1WR9Aazz^rhl literal 0 HcmV?d00001 diff --git a/gaseous-server/wwwroot/index.html b/gaseous-server/wwwroot/index.html index e1e96d8..ccca86d 100644 --- a/gaseous-server/wwwroot/index.html +++ b/gaseous-server/wwwroot/index.html @@ -2,9 +2,35 @@ - + + + + + + Gaseous - Hello World! + + + +
+
+
+
+ diff --git a/gaseous-server/wwwroot/scripts/filterformating.js b/gaseous-server/wwwroot/scripts/filterformating.js new file mode 100644 index 0000000..85dd088 --- /dev/null +++ b/gaseous-server/wwwroot/scripts/filterformating.js @@ -0,0 +1,76 @@ +function formatFilterPanel(targetElement, result) { + var panel = document.createElement('div'); + panel.id = 'filter_panel_box'; + + panel.appendChild(buildFilterPanelHeader('filter', 'Filter')); + + var containerPanelSearch = document.createElement('div'); + containerPanelSearch.className = 'filter_panel_box'; + var containerPanelSearchField = document.createElement('input'); + containerPanelSearchField.type = 'text'; + containerPanelSearch.appendChild(containerPanelSearchField); + + panel.appendChild(containerPanelSearch); + + if (result.platforms) { + panel.appendChild(buildFilterPanelHeader('platforms', 'Platforms')); + + var containerPanelPlatform = document.createElement('div'); + containerPanelPlatform.className = 'filter_panel_box'; + for (var i = 0; i < result.platforms.length; i++) { + containerPanelPlatform.appendChild(buildFilterPanelItem(result.platforms[i].id, result.platforms[i].name)); + } + panel.appendChild(containerPanelPlatform); + + targetElement.appendChild(panel); + } + + if (result.genres) { + panel.appendChild(buildFilterPanelHeader('genres', 'Genres')); + + var containerPanelGenres = document.createElement('div'); + containerPanelGenres.className = 'filter_panel_box'; + for (var i = 0; i < result.genres.length; i++) { + containerPanelGenres.appendChild(buildFilterPanelItem(result.genres[i].id, result.genres[i].name)); + } + panel.appendChild(containerPanelGenres); + + targetElement.appendChild(panel); + } + + +} + +function buildFilterPanelHeader(headerString, friendlyHeaderString) { + var header = document.createElement('div'); + header.id = 'filter_panel_header_' + headerString; + header.className = 'filter_header'; + header.innerHTML = friendlyHeaderString; + + return header; +} + +function buildFilterPanelItem(itemString, friendlyItemString) { + var filterPanelItem = document.createElement('div'); + filterPanelItem.id = 'filter_panel_item_' + itemString; + filterPanelItem.className = 'filter_panel_item'; + + var filterPanelItemCheckBox = document.createElement('div'); + + var filterPanelItemCheckBoxItem = document.createElement('input'); + filterPanelItemCheckBoxItem.id = 'filter_panel_item_checkbox_' + itemString; + filterPanelItemCheckBoxItem.type = 'checkbox'; + filterPanelItemCheckBoxItem.className = 'filter_panel_item_checkbox'; + filterPanelItemCheckBox.appendChild(filterPanelItemCheckBoxItem); + + var filterPanelItemLabel = document.createElement('label'); + filterPanelItemLabel.id = 'filter_panel_item_label_' + itemString; + filterPanelItemLabel.className = 'filter_panel_item_label'; + filterPanelItemLabel.setAttribute('for', filterPanelItemCheckBoxItem.id); + filterPanelItemLabel.innerHTML = friendlyItemString; + + filterPanelItem.appendChild(filterPanelItemCheckBox); + filterPanelItem.appendChild(filterPanelItemLabel); + + return filterPanelItem; +} \ No newline at end of file diff --git a/gaseous-server/wwwroot/scripts/gamesformating.js b/gaseous-server/wwwroot/scripts/gamesformating.js new file mode 100644 index 0000000..0728726 --- /dev/null +++ b/gaseous-server/wwwroot/scripts/gamesformating.js @@ -0,0 +1,41 @@ +function formatGamesPanel(targetElement, result) { + for (var i = 0; i < result.length; i++) { + var game = renderGameIcon(result[i], true, false); + targetElement.appendChild(game); + } +} + +function renderGameIcon(gameObject, showTitle, showRatings) { + var gameBox = document.createElement('div'); + gameBox.className = 'game_tile'; + + var gameImage = document.createElement('img'); + gameImage.className = 'game_tile_image'; + if (gameObject.cover) { + gameImage.src = '/api/v1/Games/' + gameObject.id + '/cover/image'; + } else { + gameImage.src = '/images/unknowngame.png'; + gameImage.className = 'game_tile_image unknown'; + } + gameBox.appendChild(gameImage); + + if (showTitle == true) { + var gameBoxTitle = document.createElement('div'); + gameBoxTitle.class = 'game_tile_label'; + gameBoxTitle.innerHTML = gameObject.name; + gameBox.appendChild(gameBoxTitle); + } + + if (showRatings == true) { + if (gameObject.ageRatings) { + for (var i = 0; i < gameObject.ageRatings.ids.length; i++) { + var ratingImage = document.createElement('img'); + ratingImage.src = '/api/v1/Games/' + gameObject.id + '/agerating/' + gameObject.ageRatings.ids[i] + '/image'; + ratingImage.className = 'rating_image_mini'; + gameBox.appendChild(ratingImage); + } + } + } + + return gameBox; +} \ No newline at end of file diff --git a/gaseous-server/wwwroot/scripts/main.js b/gaseous-server/wwwroot/scripts/main.js new file mode 100644 index 0000000..9fc64e2 --- /dev/null +++ b/gaseous-server/wwwroot/scripts/main.js @@ -0,0 +1,24 @@ +function ajaxCall(endpoint, method, successFunction) { + $.ajax({ + + // Our sample url to make request + url: + endpoint, + + // Type of Request + type: method, + + // Function to call when to + // request is ok + success: function (data) { + var x = JSON.stringify(data); + console.log(x); + successFunction(data); + }, + + // Error handling + error: function (error) { + console.log(`Error ${error}`); + } + }); +} diff --git a/gaseous-server/wwwroot/styles/style.css b/gaseous-server/wwwroot/styles/style.css new file mode 100644 index 0000000..0c5fb57 --- /dev/null +++ b/gaseous-server/wwwroot/styles/style.css @@ -0,0 +1,121 @@ +body { + background-color: #383838; + color: white; + font-family: "PT Sans", Arial, Helvetica, sans-serif; + font-kerning: normal; + font-style: normal; + font-weight: 100; + font-size: 13px; +} + +#banner_icon { + background-color: white; + position: fixed; + top: 0px; + left: 0px; + width: 40px; + height: 40px; + align-items: center; + justify-content: center; + padding: 0px; + margin: 0px; + display: flex; +} + +#banner_icon_image { + width: 30px; + height: 30px; +} + +#banner_header { + background-color: #001638; + position: fixed; + top: 0px; + left: 40px; + height: 40px; + right: 0px; + align-items: center; + display: flex; +} + +#banner_header_label { + display: inline; + padding: 10px; + font-size: 18pt; + font-weight: 700; + color: #edeffa; +} + +#content { + display: flex; + padding-top: 45px; + padding-left: 5px; + padding-right: 5px; +} + +#games_filter { + width: 200px; + border-style: solid; + border-width: 1px; + border-color: #2b2b2b; + margin-right: 10px; +} + +.filter_header { + padding: 10px; + background-color: #2b2b2b; +} + +.filter_panel_box { + padding: 10px; +} + +.filter_panel_item { + display: flex; + padding: 3px; +} + +.filter_panel_item_checkbox { + margin-right: 10px; +} + +#games_library { + width: 90%; + border-style: solid; + border-width: 1px; + border-color: #2b2b2b; + padding: 10px; +} + +.game_tile { + padding: 5px; + display: inline-block; + width: 220px; + align-items: center; + justify-content: center; + text-align: center; + vertical-align: top; + margin-bottom: 10px; +} + +.game_tile:hover { + cursor: pointer; + text-decoration: underline; + background-color: #2b2b2b; +} + +.game_tile_image { + max-width: 200px; + max-height: 200px; +} + +.game_tile_image, .unknown { + background-color: white; +} + +.rating_image_mini { + display: inline-block; + max-width: 32px; + max-height: 32px; + margin-right: 2px; +} \ No newline at end of file diff --git a/gaseous-signature-ingestor/gaseous-signature-ingestor.csproj.user b/gaseous-signature-ingestor/gaseous-signature-ingestor.csproj.user new file mode 100644 index 0000000..46978fa --- /dev/null +++ b/gaseous-signature-ingestor/gaseous-signature-ingestor.csproj.user @@ -0,0 +1,8 @@ + + + + Project + -tosecpath ~/Downloads/TOSEC\ -\ DAT\ Pack\ -\ Complete\ \(3764\)\ \(TOSEC-v2023-01-23\)/TOSEC/ + true + + \ No newline at end of file diff --git a/gaseous-tools/Database/MySQL/gaseous-1000.sql b/gaseous-tools/Database/MySQL/gaseous-1000.sql index 75a7db3..3e0143a 100644 --- a/gaseous-tools/Database/MySQL/gaseous-1000.sql +++ b/gaseous-tools/Database/MySQL/gaseous-1000.sql @@ -65,7 +65,7 @@ CREATE TABLE `alternativename` ( `id` bigint NOT NULL, `checksum` varchar(45) DEFAULT NULL, `comment` longtext, - `game` int DEFAULT NULL, + `game` bigint DEFAULT NULL, `name` varchar(255) DEFAULT NULL, `dateAdded` datetime DEFAULT NULL, `lastUpdated` datetime DEFAULT NULL,