From a609bfbb84257b2597ee40cacd4bc81c4ee2d9fa Mon Sep 17 00:00:00 2001 From: perennial Date: Wed, 16 Oct 2024 00:33:34 +1100 Subject: [PATCH] refactor API_GET_UnwrapJson --- assets/css/bootstrap/bootstrap.css | 272 ++++++++++++++--------------- core/requests.go | 15 +- i18n/locale/en/code.json | 3 + 3 files changed, 147 insertions(+), 143 deletions(-) diff --git a/assets/css/bootstrap/bootstrap.css b/assets/css/bootstrap/bootstrap.css index 3cea17b..80a44d3 100644 --- a/assets/css/bootstrap/bootstrap.css +++ b/assets/css/bootstrap/bootstrap.css @@ -45,28 +45,28 @@ --bs-danger-rgb: 220, 53, 69; --bs-light-rgb: 248, 249, 250; --bs-dark-rgb: 33, 37, 41; - --bs-primary-text-emphasis: rgb(5.2, 44, 101.2); - --bs-secondary-text-emphasis: rgb(43.2, 46.8, 50); - --bs-success-text-emphasis: rgb(10, 54, 33.6); - --bs-info-text-emphasis: rgb(5.2, 80.8, 96); - --bs-warning-text-emphasis: rgb(102, 77.2, 2.8); - --bs-danger-text-emphasis: rgb(88, 21.2, 27.6); + --bs-primary-text-emphasis: #052c65; + --bs-secondary-text-emphasis: #2b2f32; + --bs-success-text-emphasis: #0a3622; + --bs-info-text-emphasis: #055160; + --bs-warning-text-emphasis: #664d03; + --bs-danger-text-emphasis: #58151c; --bs-light-text-emphasis: #495057; --bs-dark-text-emphasis: #495057; - --bs-primary-bg-subtle: rgb(206.6, 226, 254.6); - --bs-secondary-bg-subtle: rgb(225.6, 227.4, 229); - --bs-success-bg-subtle: rgb(209, 231, 220.8); - --bs-info-bg-subtle: rgb(206.6, 244.4, 252); - --bs-warning-bg-subtle: rgb(255, 242.6, 205.4); - --bs-danger-bg-subtle: rgb(248, 214.6, 217.8); - --bs-light-bg-subtle: rgb(251.5, 252, 252.5); + --bs-primary-bg-subtle: #cfe2ff; + --bs-secondary-bg-subtle: #e2e3e5; + --bs-success-bg-subtle: #d1e7dd; + --bs-info-bg-subtle: #cff4fc; + --bs-warning-bg-subtle: #fff3cd; + --bs-danger-bg-subtle: #f8d7da; + --bs-light-bg-subtle: #fcfcfd; --bs-dark-bg-subtle: #ced4da; - --bs-primary-border-subtle: rgb(158.2, 197, 254.2); - --bs-secondary-border-subtle: rgb(196.2, 199.8, 203); - --bs-success-border-subtle: rgb(163, 207, 186.6); - --bs-info-border-subtle: rgb(158.2, 233.8, 249); - --bs-warning-border-subtle: rgb(255, 230.2, 155.8); - --bs-danger-border-subtle: rgb(241, 174.2, 180.6); + --bs-primary-border-subtle: #9ec5fe; + --bs-secondary-border-subtle: #c4c8cb; + --bs-success-border-subtle: #a3cfbb; + --bs-info-border-subtle: #9eeaf9; + --bs-warning-border-subtle: #ffe69c; + --bs-danger-border-subtle: #f1aeb5; --bs-light-border-subtle: #e9ecef; --bs-dark-border-subtle: #adb5bd; --bs-white-rgb: 255, 255, 255; @@ -96,11 +96,11 @@ --bs-link-color: #0d6efd; --bs-link-color-rgb: 13, 110, 253; --bs-link-decoration: underline; - --bs-link-hover-color: rgb(10.4, 88, 202.4); + --bs-link-hover-color: #0a58ca; --bs-link-hover-color-rgb: 10, 88, 202; --bs-code-color: #d63384; --bs-highlight-color: #212529; - --bs-highlight-bg: rgb(255, 242.6, 205.4); + --bs-highlight-bg: #fff3cd; --bs-border-width: 1px; --bs-border-style: solid; --bs-border-color: #dee2e6; @@ -139,46 +139,46 @@ --bs-secondary-bg-rgb: 52, 58, 64; --bs-tertiary-color: rgba(222, 226, 230, 0.5); --bs-tertiary-color-rgb: 222, 226, 230; - --bs-tertiary-bg: rgb(42.5, 47.5, 52.5); + --bs-tertiary-bg: #2b3035; --bs-tertiary-bg-rgb: 43, 48, 53; - --bs-primary-text-emphasis: rgb(109.8, 168, 253.8); - --bs-secondary-text-emphasis: rgb(166.8, 172.2, 177); - --bs-success-text-emphasis: rgb(117, 183, 152.4); - --bs-info-text-emphasis: rgb(109.8, 223.2, 246); - --bs-warning-text-emphasis: rgb(255, 217.8, 106.2); - --bs-danger-text-emphasis: rgb(234, 133.8, 143.4); + --bs-primary-text-emphasis: #6ea8fe; + --bs-secondary-text-emphasis: #a7acb1; + --bs-success-text-emphasis: #75b798; + --bs-info-text-emphasis: #6edff6; + --bs-warning-text-emphasis: #ffda6a; + --bs-danger-text-emphasis: #ea868f; --bs-light-text-emphasis: #f8f9fa; --bs-dark-text-emphasis: #dee2e6; - --bs-primary-bg-subtle: rgb(2.6, 22, 50.6); - --bs-secondary-bg-subtle: rgb(21.6, 23.4, 25); - --bs-success-bg-subtle: rgb(5, 27, 16.8); - --bs-info-bg-subtle: rgb(2.6, 40.4, 48); - --bs-warning-bg-subtle: rgb(51, 38.6, 1.4); - --bs-danger-bg-subtle: rgb(44, 10.6, 13.8); + --bs-primary-bg-subtle: #031633; + --bs-secondary-bg-subtle: #161719; + --bs-success-bg-subtle: #051b11; + --bs-info-bg-subtle: #032830; + --bs-warning-bg-subtle: #332701; + --bs-danger-bg-subtle: #2c0b0e; --bs-light-bg-subtle: #343a40; --bs-dark-bg-subtle: #1a1d20; - --bs-primary-border-subtle: rgb(7.8, 66, 151.8); - --bs-secondary-border-subtle: rgb(64.8, 70.2, 75); - --bs-success-border-subtle: rgb(15, 81, 50.4); - --bs-info-border-subtle: rgb(7.8, 121.2, 144); - --bs-warning-border-subtle: rgb(153, 115.8, 4.2); - --bs-danger-border-subtle: rgb(132, 31.8, 41.4); + --bs-primary-border-subtle: #084298; + --bs-secondary-border-subtle: #41464b; + --bs-success-border-subtle: #0f5132; + --bs-info-border-subtle: #087990; + --bs-warning-border-subtle: #997404; + --bs-danger-border-subtle: #842029; --bs-light-border-subtle: #495057; --bs-dark-border-subtle: #343a40; --bs-heading-color: inherit; - --bs-link-color: rgb(109.8, 168, 253.8); - --bs-link-hover-color: rgb(138.84, 185.4, 254.04); + --bs-link-color: #6ea8fe; + --bs-link-hover-color: #8bb9fe; --bs-link-color-rgb: 110, 168, 254; --bs-link-hover-color-rgb: 139, 185, 254; - --bs-code-color: rgb(230.4, 132.6, 181.2); + --bs-code-color: #e685b5; --bs-highlight-color: #dee2e6; - --bs-highlight-bg: rgb(102, 77.2, 2.8); + --bs-highlight-bg: #664d03; --bs-border-color: #495057; --bs-border-color-translucent: rgba(255, 255, 255, 0.15); - --bs-form-valid-color: rgb(117, 183, 152.4); - --bs-form-valid-border-color: rgb(117, 183, 152.4); - --bs-form-invalid-color: rgb(234, 133.8, 143.4); - --bs-form-invalid-border-color: rgb(234, 133.8, 143.4); + --bs-form-valid-color: #75b798; + --bs-form-valid-border-color: #75b798; + --bs-form-invalid-color: #ea868f; + --bs-form-invalid-border-color: #ea868f; } *, @@ -796,7 +796,7 @@ progress { } .col { - flex: 1 0 0; + flex: 1 0 0%; } .row-cols-auto > * { @@ -1005,7 +1005,7 @@ progress { @media (min-width: 576px) { .col-sm { - flex: 1 0 0; + flex: 1 0 0%; } .row-cols-sm-auto > * { flex: 0 0 auto; @@ -1174,7 +1174,7 @@ progress { } @media (min-width: 768px) { .col-md { - flex: 1 0 0; + flex: 1 0 0%; } .row-cols-md-auto > * { flex: 0 0 auto; @@ -1343,7 +1343,7 @@ progress { } @media (min-width: 992px) { .col-lg { - flex: 1 0 0; + flex: 1 0 0%; } .row-cols-lg-auto > * { flex: 0 0 auto; @@ -1512,7 +1512,7 @@ progress { } @media (min-width: 1200px) { .col-xl { - flex: 1 0 0; + flex: 1 0 0%; } .row-cols-xl-auto > * { flex: 0 0 auto; @@ -1681,7 +1681,7 @@ progress { } @media (min-width: 1400px) { .col-xxl { - flex: 1 0 0; + flex: 1 0 0%; } .row-cols-xxl-auto > * { flex: 0 0 auto; @@ -1930,13 +1930,13 @@ progress { .table-primary { --bs-table-color: #000; - --bs-table-bg: rgb(206.6, 226, 254.6); - --bs-table-border-color: rgb(165.28, 180.8, 203.68); - --bs-table-striped-bg: rgb(196.27, 214.7, 241.87); + --bs-table-bg: #cfe2ff; + --bs-table-border-color: #a6b5cc; + --bs-table-striped-bg: #c5d7f2; --bs-table-striped-color: #000; - --bs-table-active-bg: rgb(185.94, 203.4, 229.14); + --bs-table-active-bg: #bacbe6; --bs-table-active-color: #000; - --bs-table-hover-bg: rgb(191.105, 209.05, 235.505); + --bs-table-hover-bg: #bfd1ec; --bs-table-hover-color: #000; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -1944,13 +1944,13 @@ progress { .table-secondary { --bs-table-color: #000; - --bs-table-bg: rgb(225.6, 227.4, 229); - --bs-table-border-color: rgb(180.48, 181.92, 183.2); - --bs-table-striped-bg: rgb(214.32, 216.03, 217.55); + --bs-table-bg: #e2e3e5; + --bs-table-border-color: #b5b6b7; + --bs-table-striped-bg: #d7d8da; --bs-table-striped-color: #000; - --bs-table-active-bg: rgb(203.04, 204.66, 206.1); + --bs-table-active-bg: #cbccce; --bs-table-active-color: #000; - --bs-table-hover-bg: rgb(208.68, 210.345, 211.825); + --bs-table-hover-bg: #d1d2d4; --bs-table-hover-color: #000; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -1958,13 +1958,13 @@ progress { .table-success { --bs-table-color: #000; - --bs-table-bg: rgb(209, 231, 220.8); - --bs-table-border-color: rgb(167.2, 184.8, 176.64); - --bs-table-striped-bg: rgb(198.55, 219.45, 209.76); + --bs-table-bg: #d1e7dd; + --bs-table-border-color: #a7b9b1; + --bs-table-striped-bg: #c7dbd2; --bs-table-striped-color: #000; - --bs-table-active-bg: rgb(188.1, 207.9, 198.72); + --bs-table-active-bg: #bcd0c7; --bs-table-active-color: #000; - --bs-table-hover-bg: rgb(193.325, 213.675, 204.24); + --bs-table-hover-bg: #c1d6cc; --bs-table-hover-color: #000; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -1972,13 +1972,13 @@ progress { .table-info { --bs-table-color: #000; - --bs-table-bg: rgb(206.6, 244.4, 252); - --bs-table-border-color: rgb(165.28, 195.52, 201.6); - --bs-table-striped-bg: rgb(196.27, 232.18, 239.4); + --bs-table-bg: #cff4fc; + --bs-table-border-color: #a6c3ca; + --bs-table-striped-bg: #c5e8ef; --bs-table-striped-color: #000; - --bs-table-active-bg: rgb(185.94, 219.96, 226.8); + --bs-table-active-bg: #badce3; --bs-table-active-color: #000; - --bs-table-hover-bg: rgb(191.105, 226.07, 233.1); + --bs-table-hover-bg: #bfe2e9; --bs-table-hover-color: #000; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -1986,13 +1986,13 @@ progress { .table-warning { --bs-table-color: #000; - --bs-table-bg: rgb(255, 242.6, 205.4); - --bs-table-border-color: rgb(204, 194.08, 164.32); - --bs-table-striped-bg: rgb(242.25, 230.47, 195.13); + --bs-table-bg: #fff3cd; + --bs-table-border-color: #ccc2a4; + --bs-table-striped-bg: #f2e7c3; --bs-table-striped-color: #000; - --bs-table-active-bg: rgb(229.5, 218.34, 184.86); + --bs-table-active-bg: #e6dbb9; --bs-table-active-color: #000; - --bs-table-hover-bg: rgb(235.875, 224.405, 189.995); + --bs-table-hover-bg: #ece1be; --bs-table-hover-color: #000; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -2000,13 +2000,13 @@ progress { .table-danger { --bs-table-color: #000; - --bs-table-bg: rgb(248, 214.6, 217.8); - --bs-table-border-color: rgb(198.4, 171.68, 174.24); - --bs-table-striped-bg: rgb(235.6, 203.87, 206.91); + --bs-table-bg: #f8d7da; + --bs-table-border-color: #c6acae; + --bs-table-striped-bg: #eccccf; --bs-table-striped-color: #000; - --bs-table-active-bg: rgb(223.2, 193.14, 196.02); + --bs-table-active-bg: #dfc2c4; --bs-table-active-color: #000; - --bs-table-hover-bg: rgb(229.4, 198.505, 201.465); + --bs-table-hover-bg: #e5c7ca; --bs-table-hover-color: #000; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -2015,12 +2015,12 @@ progress { .table-light { --bs-table-color: #000; --bs-table-bg: #f8f9fa; - --bs-table-border-color: rgb(198.4, 199.2, 200); - --bs-table-striped-bg: rgb(235.6, 236.55, 237.5); + --bs-table-border-color: #c6c7c8; + --bs-table-striped-bg: #ecedee; --bs-table-striped-color: #000; - --bs-table-active-bg: rgb(223.2, 224.1, 225); + --bs-table-active-bg: #dfe0e1; --bs-table-active-color: #000; - --bs-table-hover-bg: rgb(229.4, 230.325, 231.25); + --bs-table-hover-bg: #e5e6e7; --bs-table-hover-color: #000; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -2029,12 +2029,12 @@ progress { .table-dark { --bs-table-color: #fff; --bs-table-bg: #212529; - --bs-table-border-color: rgb(77.4, 80.6, 83.8); - --bs-table-striped-bg: rgb(44.1, 47.9, 51.7); + --bs-table-border-color: #4d5154; + --bs-table-striped-bg: #2c3034; --bs-table-striped-color: #fff; - --bs-table-active-bg: rgb(55.2, 58.8, 62.4); + --bs-table-active-bg: #373b3e; --bs-table-active-color: #fff; - --bs-table-hover-bg: rgb(49.65, 53.35, 57.05); + --bs-table-hover-bg: #323539; --bs-table-hover-color: #fff; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -2134,7 +2134,7 @@ progress { .form-control:focus { color: var(--bs-body-color); background-color: var(--bs-body-bg); - border-color: rgb(134, 182.5, 254); + border-color: #86b7fe; outline: 0; box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); } @@ -2279,7 +2279,7 @@ textarea.form-control-lg { } } .form-select:focus { - border-color: rgb(134, 182.5, 254); + border-color: #86b7fe; outline: 0; box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); } @@ -2363,7 +2363,7 @@ textarea.form-control-lg { filter: brightness(90%); } .form-check-input:focus { - border-color: rgb(134, 182.5, 254); + border-color: #86b7fe; outline: 0; box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); } @@ -2410,7 +2410,7 @@ textarea.form-control-lg { } } .form-switch .form-check-input:focus { - --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgb%28134, 182.5, 254%29'/%3e%3c/svg%3e"); + --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2386b7fe'/%3e%3c/svg%3e"); } .form-switch .form-check-input:checked { background-position: right center; @@ -2480,7 +2480,7 @@ textarea.form-control-lg { } } .form-range::-webkit-slider-thumb:active { - background-color: rgb(182.4, 211.5, 254.4); + background-color: #b6d4fe; } .form-range::-webkit-slider-runnable-track { width: 100%; @@ -2506,7 +2506,7 @@ textarea.form-control-lg { } } .form-range::-moz-range-thumb:active { - background-color: rgb(182.4, 211.5, 254.4); + background-color: #b6d4fe; } .form-range::-moz-range-track { width: 100%; @@ -2968,12 +2968,12 @@ textarea.form-control-lg { --bs-btn-bg: #0d6efd; --bs-btn-border-color: #0d6efd; --bs-btn-hover-color: #fff; - --bs-btn-hover-bg: rgb(11.05, 93.5, 215.05); - --bs-btn-hover-border-color: rgb(10.4, 88, 202.4); + --bs-btn-hover-bg: #0b5ed7; + --bs-btn-hover-border-color: #0a58ca; --bs-btn-focus-shadow-rgb: 49, 132, 253; --bs-btn-active-color: #fff; - --bs-btn-active-bg: rgb(10.4, 88, 202.4); - --bs-btn-active-border-color: rgb(9.75, 82.5, 189.75); + --bs-btn-active-bg: #0a58ca; + --bs-btn-active-border-color: #0a53be; --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); --bs-btn-disabled-color: #fff; --bs-btn-disabled-bg: #0d6efd; @@ -2985,12 +2985,12 @@ textarea.form-control-lg { --bs-btn-bg: #6c757d; --bs-btn-border-color: #6c757d; --bs-btn-hover-color: #fff; - --bs-btn-hover-bg: rgb(91.8, 99.45, 106.25); - --bs-btn-hover-border-color: rgb(86.4, 93.6, 100); + --bs-btn-hover-bg: #5c636a; + --bs-btn-hover-border-color: #565e64; --bs-btn-focus-shadow-rgb: 130, 138, 145; --bs-btn-active-color: #fff; - --bs-btn-active-bg: rgb(86.4, 93.6, 100); - --bs-btn-active-border-color: rgb(81, 87.75, 93.75); + --bs-btn-active-bg: #565e64; + --bs-btn-active-border-color: #51585e; --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); --bs-btn-disabled-color: #fff; --bs-btn-disabled-bg: #6c757d; @@ -3002,12 +3002,12 @@ textarea.form-control-lg { --bs-btn-bg: #198754; --bs-btn-border-color: #198754; --bs-btn-hover-color: #fff; - --bs-btn-hover-bg: rgb(21.25, 114.75, 71.4); - --bs-btn-hover-border-color: rgb(20, 108, 67.2); + --bs-btn-hover-bg: #157347; + --bs-btn-hover-border-color: #146c43; --bs-btn-focus-shadow-rgb: 60, 153, 110; --bs-btn-active-color: #fff; - --bs-btn-active-bg: rgb(20, 108, 67.2); - --bs-btn-active-border-color: rgb(18.75, 101.25, 63); + --bs-btn-active-bg: #146c43; + --bs-btn-active-border-color: #13653f; --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); --bs-btn-disabled-color: #fff; --bs-btn-disabled-bg: #198754; @@ -3019,12 +3019,12 @@ textarea.form-control-lg { --bs-btn-bg: #0dcaf0; --bs-btn-border-color: #0dcaf0; --bs-btn-hover-color: #000; - --bs-btn-hover-bg: rgb(49.3, 209.95, 242.25); - --bs-btn-hover-border-color: rgb(37.2, 207.3, 241.5); + --bs-btn-hover-bg: #31d2f2; + --bs-btn-hover-border-color: #25cff2; --bs-btn-focus-shadow-rgb: 11, 172, 204; --bs-btn-active-color: #000; - --bs-btn-active-bg: rgb(61.4, 212.6, 243); - --bs-btn-active-border-color: rgb(37.2, 207.3, 241.5); + --bs-btn-active-bg: #3dd5f3; + --bs-btn-active-border-color: #25cff2; --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); --bs-btn-disabled-color: #000; --bs-btn-disabled-bg: #0dcaf0; @@ -3036,12 +3036,12 @@ textarea.form-control-lg { --bs-btn-bg: #ffc107; --bs-btn-border-color: #ffc107; --bs-btn-hover-color: #000; - --bs-btn-hover-bg: rgb(255, 202.3, 44.2); - --bs-btn-hover-border-color: rgb(255, 199.2, 31.8); + --bs-btn-hover-bg: #ffca2c; + --bs-btn-hover-border-color: #ffc720; --bs-btn-focus-shadow-rgb: 217, 164, 6; --bs-btn-active-color: #000; - --bs-btn-active-bg: rgb(255, 205.4, 56.6); - --bs-btn-active-border-color: rgb(255, 199.2, 31.8); + --bs-btn-active-bg: #ffcd39; + --bs-btn-active-border-color: #ffc720; --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); --bs-btn-disabled-color: #000; --bs-btn-disabled-bg: #ffc107; @@ -3053,12 +3053,12 @@ textarea.form-control-lg { --bs-btn-bg: #dc3545; --bs-btn-border-color: #dc3545; --bs-btn-hover-color: #fff; - --bs-btn-hover-bg: rgb(187, 45.05, 58.65); - --bs-btn-hover-border-color: rgb(176, 42.4, 55.2); + --bs-btn-hover-bg: #bb2d3b; + --bs-btn-hover-border-color: #b02a37; --bs-btn-focus-shadow-rgb: 225, 83, 97; --bs-btn-active-color: #fff; - --bs-btn-active-bg: rgb(176, 42.4, 55.2); - --bs-btn-active-border-color: rgb(165, 39.75, 51.75); + --bs-btn-active-bg: #b02a37; + --bs-btn-active-border-color: #a52834; --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); --bs-btn-disabled-color: #fff; --bs-btn-disabled-bg: #dc3545; @@ -3070,12 +3070,12 @@ textarea.form-control-lg { --bs-btn-bg: #f8f9fa; --bs-btn-border-color: #f8f9fa; --bs-btn-hover-color: #000; - --bs-btn-hover-bg: rgb(210.8, 211.65, 212.5); - --bs-btn-hover-border-color: rgb(198.4, 199.2, 200); + --bs-btn-hover-bg: #d3d4d5; + --bs-btn-hover-border-color: #c6c7c8; --bs-btn-focus-shadow-rgb: 211, 212, 213; --bs-btn-active-color: #000; - --bs-btn-active-bg: rgb(198.4, 199.2, 200); - --bs-btn-active-border-color: rgb(186, 186.75, 187.5); + --bs-btn-active-bg: #c6c7c8; + --bs-btn-active-border-color: #babbbc; --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); --bs-btn-disabled-color: #000; --bs-btn-disabled-bg: #f8f9fa; @@ -3087,12 +3087,12 @@ textarea.form-control-lg { --bs-btn-bg: #212529; --bs-btn-border-color: #212529; --bs-btn-hover-color: #fff; - --bs-btn-hover-bg: rgb(66.3, 69.7, 73.1); - --bs-btn-hover-border-color: rgb(55.2, 58.8, 62.4); + --bs-btn-hover-bg: #424649; + --bs-btn-hover-border-color: #373b3e; --bs-btn-focus-shadow-rgb: 66, 70, 73; --bs-btn-active-color: #fff; - --bs-btn-active-bg: rgb(77.4, 80.6, 83.8); - --bs-btn-active-border-color: rgb(55.2, 58.8, 62.4); + --bs-btn-active-bg: #4d5154; + --bs-btn-active-border-color: #373b3e; --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); --bs-btn-disabled-color: #fff; --bs-btn-disabled-bg: #212529; @@ -3844,8 +3844,8 @@ textarea.form-control-lg { .nav-justified > .nav-link, .nav-justified .nav-item { - flex-grow: 1; flex-basis: 0; + flex-grow: 1; text-align: center; } @@ -3946,8 +3946,8 @@ textarea.form-control-lg { } .navbar-collapse { - flex-grow: 1; flex-basis: 100%; + flex-grow: 1; align-items: center; } @@ -4442,7 +4442,7 @@ textarea.form-control-lg { flex-flow: row wrap; } .card-group > .card { - flex: 1 0 0; + flex: 1 0 0%; margin-bottom: 0; } .card-group > .card + .card { @@ -4491,7 +4491,7 @@ textarea.form-control-lg { --bs-accordion-btn-icon-width: 1.25rem; --bs-accordion-btn-icon-transform: rotate(-180deg); --bs-accordion-btn-icon-transition: transform 0.2s ease-in-out; - --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='rgb%285.2, 44, 101.2%29' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='m2 5 6 6 6-6'/%3e%3c/svg%3e"); + --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23052c65' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='m2 5 6 6 6-6'/%3e%3c/svg%3e"); --bs-accordion-btn-focus-box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); --bs-accordion-body-padding-x: 1.25rem; --bs-accordion-body-padding-y: 1rem; @@ -4608,8 +4608,8 @@ textarea.form-control-lg { } [data-bs-theme=dark] .accordion-button::after { - --bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='rgb%28109.8, 168, 253.8%29'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708'/%3e%3c/svg%3e"); - --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='rgb%28109.8, 168, 253.8%29'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708'/%3e%3c/svg%3e"); + --bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236ea8fe'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708'/%3e%3c/svg%3e"); + --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236ea8fe'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708'/%3e%3c/svg%3e"); } .breadcrumb { diff --git a/core/requests.go b/core/requests.go index 0899137..66e333b 100644 --- a/core/requests.go +++ b/core/requests.go @@ -158,7 +158,7 @@ func API_GET(ctx context.Context, url string, userToken string) (*SimpleHTTPResp } // API_GET_UnwrapJson performs a GET request and unwraps the JSON response -func API_GET_UnwrapJson(ctx context.Context, url string, userToken string) (string, error) { +func API_GET_UnwrapJson(ctx context.Context, url, userToken string) (string, error) { resp, err := API_GET(ctx, url, userToken) if err != nil { return "", err @@ -168,17 +168,18 @@ func API_GET_UnwrapJson(ctx context.Context, url string, userToken string) (stri return "", i18n.Errorf("Invalid JSON: %v", resp.Body) } - err2 := gjson.Get(resp.Body, "error") + result := gjson.Parse(resp.Body) - if !err2.Exists() { - return "", i18n.Error("Incompatible request body") + if result.Get("error").Bool() { + return "", errors.New(result.Get("message").String()) } - if err2.Bool() { - return "", errors.New(gjson.Get(resp.Body, "message").String()) + body := result.Get("body") + if !body.Exists() { + return "", i18n.Error("Incompatible response body") } - return gjson.Get(resp.Body, "body").String(), nil + return body.String(), nil } // createMultipartFormData is a helper function to create multipart form data diff --git a/i18n/locale/en/code.json b/i18n/locale/en/code.json index 1adab4b..f00a025 100644 --- a/i18n/locale/en/code.json +++ b/i18n/locale/en/code.json @@ -44,6 +44,9 @@ "server/routes/novel.go:X4U1Et_mKik": "Invalid ID: %s", "server/routes/novelseries.go:SDTsP5wtaxQ": "Invalid Page Number: %d", "server/routes/novelseries.go:X4U1Et_mKik": "Invalid ID: %s", + "server/routes/proxy.go:3h_x93rOmY8": "failed to create request for %s: %w", + "server/routes/proxy.go:gb2Ppv_Hskg": "failed to proxy request to %s: %w", + "server/routes/proxy.go:mZ5jIB14QAk": "%s/%s", "server/routes/settings.go:0RPgv-6IAxw": "Invalid Cookie Name: %s", "server/routes/settings.go:4F7Kj3e-yUw": "Thumbnails will now open in the same tab.", "server/routes/settings.go:AUa7dE9ubYk": "Unable to extract CSRF token from response.",