diff --git a/Controllers/SpjDriverUpstController/DetailController.cs b/Controllers/SpjDriverUpstController/DetailController.cs index d6176bb..240c31d 100644 --- a/Controllers/SpjDriverUpstController/DetailController.cs +++ b/Controllers/SpjDriverUpstController/DetailController.cs @@ -823,10 +823,10 @@ namespace eSPJ.Controllers.SpjDriverUpstController return BadRequest(new { success = false, message = "Ukuran foto terlalu besar. Maksimal 5MB." }); } - var apiKey = _configuration["OpenRouter:OCRkey"]; + var apiKey = _configuration["9Router:OCRkey"]; if (string.IsNullOrWhiteSpace(apiKey)) { - return StatusCode(500, new { success = false, message = "OpenRouter API key belum diset." }); + return StatusCode(500, new { success = false, message = "9Router API key belum diset." }); } byte[] fileBytes; @@ -843,7 +843,7 @@ namespace eSPJ.Controllers.SpjDriverUpstController var payload = new { - model = "openai/gpt-5-image-mini", + model = "image-combo", messages = new object[] { new @@ -854,14 +854,7 @@ namespace eSPJ.Controllers.SpjDriverUpstController new { type = "text", - text = @" - Baca angka pada display timbangan digital dari gambar ini. - Fokus hanya pada digit display, abaikan refleksi, cahaya merah, dan teks lain. - Keluarkan tepat satu baris angka saja. - Format output wajib NNN,NN (gunakan koma sebagai desimal dua digit). - Jika tidak yakin atau angka tidak terbaca, keluarkan 0,00. - Jangan tambahkan kata, kalimat, atau simbol lain. - " + text = @"Baca angka pada display timbangan digital dari gambar ini. Fokus hanya pada digit display, abaikan refleksi, cahaya merah, dan teks lain. Keluarkan tepat satu baris angka saja. Format output wajib NNN,NN (gunakan koma sebagai desimal dua digit). Jika tidak yakin atau angka tidak terbaca, keluarkan 0,00. Jangan tambahkan kata, kalimat, atau simbol lain." }, new { @@ -875,7 +868,7 @@ namespace eSPJ.Controllers.SpjDriverUpstController var json = JsonSerializer.Serialize(payload); - var request = new HttpRequestMessage(HttpMethod.Post, "https://openrouter.ai/api/v1/chat/completions"); + var request = new HttpRequestMessage(HttpMethod.Post, "http://10.50.50.61:20128/v1/chat/completions"); request.Headers.TryAddWithoutValidation("Authorization", $"Bearer {apiKey}"); request.Headers.TryAddWithoutValidation("Accept", "application/json"); request.Headers.TryAddWithoutValidation("HTTP-Referer", "https://pesapakawan.dinaslhdki.id"); diff --git a/Views/Admin/Transport/SpjDriverUpst/Shared/Components/_Navigation.cshtml b/Views/Admin/Transport/SpjDriverUpst/Shared/Components/_Navigation.cshtml index afcb720..07adaef 100644 --- a/Views/Admin/Transport/SpjDriverUpst/Shared/Components/_Navigation.cshtml +++ b/Views/Admin/Transport/SpjDriverUpst/Shared/Components/_Navigation.cshtml @@ -29,15 +29,25 @@ -
diff --git a/appsettings.json b/appsettings.json index c918331..e5a2fb2 100644 --- a/appsettings.json +++ b/appsettings.json @@ -11,6 +11,9 @@ "OpenRouter": { "OCRkey": "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" }, + "9Router": { + "OCRkey": "sk-50d5eecff8b7f7dc-6gwrum-312a1b07" + }, "Mapbox": { "Apikey": "pk.eyJ1IjoibWFyc3pheW4iLCJhIjoiY21sajUyMDd0MDllcjNncGdna3NzeTR4ZyJ9.Wvbh5J94j9sF_8KNPp9FYQ" }, diff --git a/wwwroot/driver/css/watch.css b/wwwroot/driver/css/watch.css index cf95114..732f350 100644 --- a/wwwroot/driver/css/watch.css +++ b/wwwroot/driver/css/watch.css @@ -1,4 +1,4 @@ -/*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */ +/*! tailwindcss v4.2.4 | MIT License | https://tailwindcss.com */ @layer properties; @layer theme, base, components, utilities; @layer theme { @@ -66,6 +66,7 @@ --color-blue-600: oklch(54.6% 0.245 262.881); --color-blue-700: oklch(48.8% 0.243 264.376); --color-blue-800: oklch(42.4% 0.199 265.638); + --color-blue-950: oklch(28.2% 0.091 267.935); --color-indigo-50: oklch(96.2% 0.018 272.314); --color-indigo-100: oklch(93% 0.034 272.788); --color-indigo-300: oklch(78.5% 0.115 274.713); @@ -335,6 +336,15 @@ .inset-x-4 { inset-inline: calc(var(--spacing) * 4); } + .\!start { + inset-inline-start: var(--spacing) !important; + } + .-start { + inset-inline-start: calc(var(--spacing) * -1); + } + .start { + inset-inline-start: var(--spacing); + } .start-0 { inset-inline-start: calc(var(--spacing) * 0); } @@ -344,6 +354,12 @@ .start-100 { inset-inline-start: calc(var(--spacing) * 100); } + .-end { + inset-inline-end: calc(var(--spacing) * -1); + } + .end { + inset-inline-end: var(--spacing); + } .end-0 { inset-inline-end: calc(var(--spacing) * 0); } @@ -366,7 +382,7 @@ top: calc(var(--spacing) * 1); } .top-1\/2 { - top: calc(1/2 * 100%); + top: calc(1 / 2 * 100%); } .top-2 { top: calc(var(--spacing) * 2); @@ -468,7 +484,7 @@ left: calc(var(--spacing) * 0); } .left-1\/2 { - left: calc(1/2 * 100%); + left: calc(1 / 2 * 100%); } .left-2 { left: calc(var(--spacing) * 2); @@ -993,13 +1009,13 @@ width: calc(var(--spacing) * 1); } .w-1\/3 { - width: calc(1/3 * 100%); + width: calc(1 / 3 * 100%); } .w-2 { width: calc(var(--spacing) * 2); } .w-2\/3 { - width: calc(2/3 * 100%); + width: calc(2 / 3 * 100%); } .w-3 { width: calc(var(--spacing) * 3); @@ -1146,7 +1162,7 @@ border-collapse: collapse; } .-translate-x-1\/2 { - --tw-translate-x: calc(calc(1/2 * 100%) * -1); + --tw-translate-x: calc(calc(1 / 2 * 100%) * -1); translate: var(--tw-translate-x) var(--tw-translate-y); } .-translate-x-12 { @@ -1158,7 +1174,7 @@ translate: var(--tw-translate-x) var(--tw-translate-y); } .-translate-y-1\/2 { - --tw-translate-y: calc(calc(1/2 * 100%) * -1); + --tw-translate-y: calc(calc(1 / 2 * 100%) * -1); translate: var(--tw-translate-x) var(--tw-translate-y); } .-translate-y-16 { @@ -1725,6 +1741,9 @@ .bg-blue-600 { background-color: var(--color-blue-600); } + .bg-blue-800 { + background-color: var(--color-blue-800); + } .bg-cyan-400\/10 { background-color: color-mix(in srgb, oklch(78.9% 0.154 211.53) 10%, transparent); @supports (color: color-mix(in lab, red, red)) { @@ -1785,6 +1804,9 @@ .bg-green-600 { background-color: var(--color-green-600); } + .bg-green-700 { + background-color: var(--color-green-700); + } .bg-indigo-300 { background-color: var(--color-indigo-300); } @@ -2828,6 +2850,9 @@ .ring-green-100 { --tw-ring-color: var(--color-green-100); } + .ring-green-200 { + --tw-ring-color: var(--color-green-200); + } .ring-orange-200 { --tw-ring-color: var(--color-orange-200); } @@ -2861,10 +2886,6 @@ --tw-drop-shadow: drop-shadow(var(--drop-shadow-lg)); filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,); } - .grayscale { - --tw-grayscale: grayscale(100%); - filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,); - } .invert { --tw-invert: invert(100%); filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);