diff --git a/src/api/torrents.js b/src/api/torrents.js
index 8dd603d..1eb655c 100644
--- a/src/api/torrents.js
+++ b/src/api/torrents.js
@@ -1,9 +1,46 @@
 import request from "@/utils/request";
 
 export const uploadTorrent = (formData) => {
-  return request.post("/resource/publish", formData);
+  return request.post("/resource/publish", formData, {
+    headers: {
+      'Content-Type': 'multipart/form-data',
+    },
+  });
 };
 
 export const getTorrentList = (params) => {
-  return request.get("/list/all", { params });
+  return request.get("resource/list/all", { params });
+};
+
+export const getTorrentListByUser = (params) => {
+  return request.get("resource/list/user", { params });
+};
+
+export const getTorrentDetail = (id) => {
+  return request.get(`resource/get/${id}`);
+};
+
+export const downloadTorrent = (id, username) => {
+  return request.get(`/resource/download/${id}`, {
+    params: {
+      username: username,
+    },
+    responseType: 'blob', // 重要：指定响应类型为blob，用于文件下载
+  });
+};
+
+export const getTorrentInfo = ({id, username}) => {
+  return request.get(`/resource/get/${id}`, {
+    params: {
+      username: username,
+    },
+  });
+};
+
+export const deleteTorrent = (id) => {
+  return request.delete(`resource/delete/${id}`);
+};
+
+export const searchTorrent = (params) => {
+  return request.get("resource/search", { params });
 };
\ No newline at end of file
diff --git a/src/api/user.js b/src/api/user.js
index 7ac2d72..ee5d5bf 100644
--- a/src/api/user.js
+++ b/src/api/user.js
@@ -18,9 +18,9 @@
 };
 
 // PT站统计信息API
-export const getUserStats = (username) => {
-  return request.get(`/user/stats/${username}`);
-};
+// export const getUserStats = (username) => {
+//   // return request.get(`/user/stats/${username}`);
+// };
 
 export const getUserTorrents = (username, type = 'all') => {
   return request.get(`/user/torrents/${username}`, {
@@ -32,4 +32,12 @@
   return request.get(`/user/history/${username}`, {
     params: { page, limit }
   });
-}; 
\ No newline at end of file
+}; 
+
+export const getUserInfo = (username) => {
+  return request.get(`/user/get/info`, {
+    params: {
+      username: username,
+    },
+  });
+};
\ No newline at end of file
