浏览代码

redid ffmpeg

C4illin 1 年之前
父节点
当前提交
ac8f44b4c1
共有 3 个文件被更改,包括 736 次插入607 次删除
  1. 678 564
      src/converters/ffmpeg.ts
  2. 13 0
      src/helpers/normalizeFiletype.ts
  3. 45 43
      src/index.tsx

文件差异内容过多而无法显示
+ 678 - 564
src/converters/ffmpeg.ts


+ 13 - 0
src/helpers/normalizeFiletype.ts

@@ -9,4 +9,17 @@ export const normalizeFiletype = (filetype: string): string => {
     default:
       return lowercaseFiletype;
   }
+}
+
+export const normalizeOutputFiletype = (filetype: string): string => {
+  const lowercaseFiletype = filetype.toLowerCase();
+  
+  switch (lowercaseFiletype) {
+    case "jpeg":
+      return "jpg";
+    case "mpeg4":
+      return "mp4";
+    default:
+      return lowercaseFiletype;
+  }
 }

+ 45 - 43
src/index.tsx

@@ -615,6 +615,7 @@ const app = new Elysia()
           const filePath = `${userUploadsDir}${fileName}`;
           const fileTypeOrig = fileName.split(".").pop() as string;
           const fileType = normalizeFiletype(fileTypeOrig);
+          const newFileExt = normalizeOutputFiletype(convertTo);
           const newFileName = fileName.replace(fileTypeOrig, convertTo);
           const targetPath = `${userOutputDir}${newFileName}`;
 
@@ -838,50 +839,51 @@ const app = new Elysia()
     }
 
     return (
-  <BaseHtml title="ConvertX | Converters">
-    <Header loggedIn />
-    <main class="container">
-      <article>
-        <h1>Converters</h1>
-        <table>
-          <thead>
-            <tr>
-              <th>Converter</th>
-              <th>From (Count)</th>
-              <th>To (Count)</th>
-            </tr>
-          </thead>
-          <tbody>
-            {Object.entries(getAllTargets()).map(([converter, targets]) => {
-              const inputs = getAllInputs(converter);
-              return (
-                <tr key={converter}>
-                  <td>{converter}</td>
-                  <td>
-                    Count: {inputs.length}
-                    <ul>
-                      {inputs.map((input, index) => (
-                        <li key={index}>{input}</li>
-                      ))}
-                    </ul>
-                  </td>
-                  <td>
-                    Count: {targets.length}
-                    <ul>
-                      {targets.map((target, index) => (
-                        <li key={index}>{target}</li>
-                      ))}
-                    </ul>
-                  </td>
+      <BaseHtml title="ConvertX | Converters">
+        <Header loggedIn />
+        <main class="container">
+          <article>
+            <h1>Converters</h1>
+            <table>
+              <thead>
+                <tr>
+                  <th>Converter</th>
+                  <th>From (Count)</th>
+                  <th>To (Count)</th>
                 </tr>
-              );
-            })}
-          </tbody>
-        </table>
-      </article>
-    </main>
-  </BaseHtml>
-);
+              </thead>
+              <tbody>
+                {Object.entries(getAllTargets()).map(([converter, targets]) => {
+                  const inputs = getAllInputs(converter);
+                  return (
+                    // biome-ignore lint/correctness/useJsxKeyInIterable: <explanation>
+                    <tr>
+                      <td>{converter}</td>
+                      <td>
+                        Count: {inputs.length}
+                        <ul>
+                          {inputs.map((input) => (
+                            <li>{input}</li>
+                          ))}
+                        </ul>
+                      </td>
+                      <td>
+                        Count: {targets.length}
+                        <ul>
+                          {targets.map((target) => (
+                            <li>{target}</li>
+                          ))}
+                        </ul>
+                      </td>
+                    </tr>
+                  );
+                })}
+              </tbody>
+            </table>
+          </article>
+        </main>
+      </BaseHtml>
+    );
   })
   .get(
     "/zip/:userId/:jobId",

部分文件因为文件数量过多而无法显示