aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/com/pinapelz
diff options
context:
space:
mode:
authorPinapelz <yukais@pinapelz.com>2025-12-29 12:53:36 -0800
committerPinapelz <yukais@pinapelz.com>2025-12-29 12:53:36 -0800
commita72585a78d216193948210e07cdba09d8034e003 (patch)
treed419fb13936e824d33442160f1dc617620eab42a /src/main/java/com/pinapelz
parente7ef35277dd0b4bba5b3fb675d5eed3cd0f0fcb8 (diff)
file splitter frontend
Diffstat (limited to 'src/main/java/com/pinapelz')
-rw-r--r--src/main/java/com/pinapelz/FileSystem.java4
-rw-r--r--src/main/java/com/pinapelz/frontend/App.kt20
-rw-r--r--src/main/java/com/pinapelz/frontend/HtmlTemplates.kt4
3 files changed, 17 insertions, 11 deletions
diff --git a/src/main/java/com/pinapelz/FileSystem.java b/src/main/java/com/pinapelz/FileSystem.java
index 297ca13..109b9ed 100644
--- a/src/main/java/com/pinapelz/FileSystem.java
+++ b/src/main/java/com/pinapelz/FileSystem.java
@@ -17,7 +17,7 @@ public class FileSystem {
DiscordFilePath discPath = new DiscordFilePath();
discPath.channelId = Long.parseLong(rawDiscordFilePath[0]);
discPath.messageId = Long.parseLong(rawDiscordFilePath[1]);
- discPath.fileName = rawDiscordFilePath[3];
+ discPath.fileName = rawDiscordFilePath[2];
return discPath;
}
@@ -32,7 +32,7 @@ public class FileSystem {
}
}
- public ResultSet getFilesByDirectoryIdFiltered(int directoryId, String search, String mimeTypeFilter, String sortBy) {
+ public ResultSet getFilesByDirectoryId(int directoryId, String search, String mimeTypeFilter, String sortBy) {
return database.getFilesByDirectoryId(directoryId, search, mimeTypeFilter, sortBy);
}
diff --git a/src/main/java/com/pinapelz/frontend/App.kt b/src/main/java/com/pinapelz/frontend/App.kt
index 02da8b7..22806bd 100644
--- a/src/main/java/com/pinapelz/frontend/App.kt
+++ b/src/main/java/com/pinapelz/frontend/App.kt
@@ -1,24 +1,23 @@
package com.pinapelz.frontend
-import com.pinapelz.frontend.HtmlTemplates
-
import io.javalin.Javalin
-import io.javalin.http.staticfiles.Location
import com.pinapelz.Retriever
import com.pinapelz.FileSystem
import java.sql.ResultSet
import java.text.SimpleDateFormat
fun startFrontend(retriever: Retriever, fileSystem: FileSystem) {
- val app = Javalin.create {
- it.staticFiles.add("/public", Location.CLASSPATH)
- }
+ val app = Javalin.create{};
app.get("/") { ctx ->
val directoryId = ctx.queryParam("dir")?.toIntOrNull() ?: 1
ctx.html(generateMainHtml(directoryId))
}
+ app.get("/splitter") { ctx ->
+ ctx.html(generateFileSplitterHtml())
+ }
+
app.get("/api/directories") { ctx ->
val directories = mutableListOf<Map<String, Any>>()
val rs = fileSystem.getAllDirectories()
@@ -62,7 +61,7 @@ fun startFrontend(retriever: Retriever, fileSystem: FileSystem) {
val sortBy = ctx.queryParam("sortBy") ?: "created_at"
val files = mutableListOf<Map<String, Any>>()
- val rs: ResultSet = fileSystem.getFilesByDirectoryIdFiltered(directoryId, search, mimeTypeFilter, sortBy)
+ val rs: ResultSet = fileSystem.getFilesByDirectoryId(directoryId, search, mimeTypeFilter, sortBy)
val dateFormat = SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
while (rs.next()) {
@@ -113,7 +112,6 @@ fun startFrontend(retriever: Retriever, fileSystem: FileSystem) {
val trimmedPath = path.trim()
- // Server-side validation
val validationError = validateDirectoryName(trimmedPath)
if (validationError != null) {
ctx.status(400).json(mapOf(
@@ -212,7 +210,7 @@ fun startFrontend(retriever: Retriever, fileSystem: FileSystem) {
}
fun validateDirectoryName(path: String): String? {
- if (path.length < 1 || path.length > 100) {
+ if (path.length !in 1..100) {
return "Directory name must be 1-100 characters long"
}
val invalidChars = Regex("[<>:\"/\\\\|?*\\x00-\\x1f]")
@@ -251,3 +249,7 @@ fun formatFileSize(bytes: Long): String {
fun generateFileTableHtml(files: List<Map<String, Any>>, search: String = "", mimeTypeFilter: String = ""): String {
return HtmlTemplates.generateFileTable(files, search, mimeTypeFilter)
}
+
+fun generateFileSplitterHtml(): String {
+ return HtmlTemplates.generateFileSplitterPage()
+}
diff --git a/src/main/java/com/pinapelz/frontend/HtmlTemplates.kt b/src/main/java/com/pinapelz/frontend/HtmlTemplates.kt
index 21c8033..eeef9f5 100644
--- a/src/main/java/com/pinapelz/frontend/HtmlTemplates.kt
+++ b/src/main/java/com/pinapelz/frontend/HtmlTemplates.kt
@@ -108,4 +108,8 @@ object HtmlTemplates {
else -> "fas fa-file"
}
}
+
+ fun generateFileSplitterPage(): String {
+ return loadTemplate("file-splitter.html")
+ }
} \ No newline at end of file
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage