From 344edf369c205204bef54d9290e8601833afe68d Mon Sep 17 00:00:00 2001 From: "Jill \"oatmealine\" Monoids" Date: Fri, 26 May 2023 11:21:04 +0300 Subject: [PATCH] comments & level page polish --- public/assets/icons/gd/browncoin.png | Bin 0 -> 2086 bytes public/template/level.ecr | 66 +++++++++++++++++++++++++-- src/template_endpoints/levels.cr | 4 +- 3 files changed, 65 insertions(+), 5 deletions(-) create mode 100644 public/assets/icons/gd/browncoin.png diff --git a/public/assets/icons/gd/browncoin.png b/public/assets/icons/gd/browncoin.png new file mode 100644 index 0000000000000000000000000000000000000000..7cf03c106cf0cfde8fb7aec99881340f545f194f GIT binary patch literal 2086 zcmV+>2-)|EP)Px#32;bRa{vGf6951U69E94oEQKA09{Z_R7Ff_aR2}S z00000000000000000000000000000000000000000000000000007ykRJ@W%%AHQF zheMxxJ&|xYf@LyvS}bKwCs#uuIxQARI2;`o3l0kfDW=J;~8TCG-ndwXe|&R^Y*p6&Vc_MgUn+kGA`vvK(Bw)@|bPrJ?K;n?g>ztQ}D zc{1MrQUAU>TwWN5ZvP+9R~+~2Z}DH!klPf!!lBD|7p9vu=j$ia_$dTOYZA^V)$p}4 zL41VIm#21H9T^hYNODGNeg@Wm*uLiWv7!y4P3wwyL1g^#1?Tsh2Hnb5KqYh;tbX&9 z{y{T&w`QTcHHE+3XkI1lG^S^CVh=|ru*7KJO-_YZ^%&v8*PA0qOwUpL%x1g@eRTTpopRsQ?in(be}_8fz2?DCY-7Q)$-rEHrulXRvBno^_}6?5r3j6$4Cy>KKkW6WMSpGPt#zh`i43)@a>X*Uz@ zD4)z7$)to%CcFH=$S+aVmb#jCD}77L2eRM{?bp!G=Z8Wa=n$+uN~e{y!4O|bRmp5Z z=iw?pvBi8U@rgnD1~YASd~S+Kv~tJEepNPiQk&UMG~4r$N8$3-ZLV z5?1n+PL-UI!t;bGBPLX<8Z3ErH@@Uh|5N@%d$ELjpVMPiS4B#g^8WBUye` zOLm`y7c}vC#*7F>mM(l5$aKtyOSlO}xMGcNGD4zTEthCX$oOMdpl@$ys3x3Utj^#} zr7shXa!Sr8;OS=tdd6)c<~eFtr)J^#X?8mNlZ-^LrF^=)k6;FXB?Rl*s@Zf_TSUdx za{;F5AW-30Y1|=P5DpAz$j&9+(!4lvO8(sH39E68BPF{F!{VJuISyveONg zKP0YzX;s1B97COTTo5e6hebdO@$k3mG05 zcQKsDQ%c$qMjF3xhcDvzNRUQDNGX@%2?YtKjXrY55^PO9ttBjr4G&x%JW zT^T*6tMI_{loUw0YK7On2!#5@5na}98giJBo8fm6IV@n7q0vp*RR~hS<>@_ zl}=+mSc%4h!L-P~G0l(Xbj%&#@Gnk%*k38-C0B|~M`Tv2*_Dn(Cx$ z!+zIRYL|s@KIq6)p#%JSy2EuguhN4#SgBCru=#Wmm_r`OhY9ZPlTA#L|C7pWw?ID8M^P}VR zyn%kk3ya%Axo};y(|K`WbAI#j(sf9fku@F}^ja5|t`(kLi7^U~-O3O0Ms)YX%hqFiqk11plejc>r`dJu@#lBBr|$C7 z=>F}N`*b`!zk&Y61^V{*9s0O^`{g*VU;S^okN@ @@ -173,7 +207,7 @@ <%= name %>
- <%= downloads %> downloads <%= likes %> likes + <%= downloads %> <%= likes %>
@@ -231,7 +265,13 @@ #<%= rank %> <%= percent %>% - + +
+ <%- coins.times do |i| -%> + .png"> + <%- end -%> +
+ " class="player-icon"> @@ -252,7 +292,25 @@ <%- end -%> -

comments go here etc etc

+

Comments

+ + <%- comments.each do |comment, created_at, username, icon_type, color1, color2, cube, ship, ball, ufo, wave, robot, spider, special| + icon_value = [cube, ship, ball, ufo, wave, robot, spider][icon_type] + type_str = ["cube", "ship", "ball", "ufo", "wave", "robot", "spider"][icon_type] + + created_at_date = Time.parse(created_at, Format::TIME_FORMAT, Time::Location::UTC) + %> +
+
+ " class="player-icon"> + <%= username %> + +
+
+ <%= HTML.escape(comment) %> +
+
+ <%- end -%> diff --git a/src/template_endpoints/levels.cr b/src/template_endpoints/levels.cr index 52d7e62..c45d330 100644 --- a/src/template_endpoints/levels.cr +++ b/src/template_endpoints/levels.cr @@ -25,7 +25,7 @@ CrystalGauntlet.template_endpoints[{ id = params["id"].as(String).to_i begin - name, username, difficulty_community, difficulty_set, demon_difficulty_int, featured, epic, downloads, likes, stars, description, song_id, song_name, song_author, song_url, song_author_url = DATABASE.query_one("select levels.name, users.username, community_difficulty, difficulty, demon_difficulty, featured, epic, downloads, likes, levels.stars, description, song_id, song_data.name, song_authors.name, songs.url, song_authors.source from levels left join users on levels.user_id = users.id left join songs on songs.id = levels.song_id left join song_data on song_data.id = levels.song_id left join song_authors on song_data.author_id = song_authors.id where levels.id = ?", id, as: {String, String, Int32?, Int32?, Int32?, Bool, Bool, Int32, Int32, Int32?, String, Int32, String?, String?, String?, String?}) + name, username, difficulty_community, difficulty_set, demon_difficulty_int, featured, epic, rated_coins, downloads, likes, stars, description, song_id, song_name, song_author, song_url, song_author_url = DATABASE.query_one("select levels.name, users.username, community_difficulty, difficulty, demon_difficulty, featured, epic, rated_coins, downloads, likes, levels.stars, description, song_id, song_data.name, song_authors.name, songs.url, song_authors.source from levels left join users on levels.user_id = users.id left join songs on songs.id = levels.song_id left join song_data on song_data.id = levels.song_id left join song_authors on song_data.author_id = song_authors.id where levels.id = ?", id, as: {String, String, Int32?, Int32?, Int32?, Bool, Bool, Bool, Int32, Int32, Int32?, String, Int32, String?, String?, String?, String?}) rescue err LOG.error {"whar.... #{err}"} context.response.status = HTTP::Status::NOT_FOUND @@ -34,5 +34,7 @@ CrystalGauntlet.template_endpoints[{ scores = DATABASE.query_all("select distinct percent, level_scores.coins, users.username, users.icon_type, users.color1, users.color2, users.cube, users.ship, users.ball, users.ufo, users.wave, users.robot, users.spider, users.special, set_at from level_scores join users on level_scores.account_id = users.account_id where level_id = ? order by percent desc, level_scores.coins desc, set_at limit 25", id, as: {Int32, Int32, String, Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32, String}) + comments = DATABASE.query_all("select comment, comments.created_at, users.username, users.icon_type, users.color1, users.color2, users.cube, users.ship, users.ball, users.ufo, users.wave, users.robot, users.spider, users.special from comments left join users on comments.user_id = users.id where level_id = ? order by comments.created_at asc limit 20", id, as: {String, String, String, Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32}) + ECR.embed("./public/template/level.ecr", context.response) }