修改种子列表
Change-Id: Iced8f5f605aa90c98caf051ad98acd46c974ff20
diff --git a/src/pages/SeedList/SeedList.jsx b/src/pages/SeedList/SeedList.jsx
index ce5908b..39a7615 100644
--- a/src/pages/SeedList/SeedList.jsx
+++ b/src/pages/SeedList/SeedList.jsx
@@ -1,246 +1,4 @@
-// import React, { useState, useEffect } from 'react';
-// import { Link } from 'wouter';
-// import axios from 'axios';
-// import logo from '../../assets/logo.png';
-// import Recommend from './Recommend/Recommend';
-// import './SeedList.css';
-// const API_BASE = process.env.REACT_APP_API_BASE;
-
-// const SeedList = () => {
-// const [seeds, setSeeds] = useState([]);
-// const [filteredSeeds, setFilteredSeeds] = useState([]);
-// const [loading, setLoading] = useState(true);
-// const [searchTerm, setSearchTerm] = useState('');
-// const [sortOption, setSortOption] = useState('最新');
-// const [activeTab, setActiveTab] = useState('种子列表');
-
-// const [filters, setFilters] = useState({});
-// const [selectedFilters, setSelectedFilters] = useState({});
-
-// const TAGS = ['猜你喜欢', '电影', '电视剧', '动漫', '音乐', '游戏', '综艺', '软件', '体育', '学习', '纪录片', '其他'];
-
-// const CATEGORY_MAP = {
-// '电影': 'movie',
-// '电视剧': 'tv',
-// '动漫': 'anime',
-// '音乐': 'music',
-// '游戏': 'game',
-// '综艺': 'variety',
-// '软件': 'software',
-// '体育': 'sports',
-// '学习': 'study',
-// '纪录片': 'documentary',
-// '其他': 'other'
-// };
-
-// const buildQueryParams = () => {
-// const category = CATEGORY_MAP[activeTab];
-
-// const params = {
-// category,
-// sort_by: sortOption === '最新' ? 'newest'
-// : sortOption === '最热' ? 'downloads'
-// : undefined,
-// page: 1,
-// limit: 20,
-// };
-
-// const tags = Object.entries(selectedFilters)
-// .filter(([_, value]) => value !== '不限')
-// .map(([_, value]) => value);
-
-// if (tags.length > 0) params.tags = tags.join(',');
-
-// return params;
-// };
-
-// const fetchSeeds = async () => {
-// setLoading(true);
-// try {
-// const params = buildQueryParams();
-// const queryString = new URLSearchParams(params).toString();
-// const response = await fetch(`${API_BASE}/echo/seeds?${queryString}`);
-// const data = await response.json();
-// const seeds = data?.seeds || [];
-// setSeeds(seeds);
-// setFilteredSeeds(seeds);
-// } catch (error) {
-// console.error('获取种子列表失败:', error);
-// } finally {
-// setLoading(false);
-// }
-// };
-
-// const fetchFilterOptions = async () => {
-// if (activeTab === '猜你喜欢') return;
-// const category = CATEGORY_MAP[activeTab];
-// try {
-// const res = await axios.get(`${API_BASE}/echo/seed-filters?category=${category}`);
-// setFilters(res.data || {});
-// const defaultSelections = {};
-// for (const key in res.data) {
-// defaultSelections[key] = '不限';
-// }
-// setSelectedFilters(defaultSelections);
-// } catch (err) {
-// console.error('获取筛选项失败:', err);
-// setFilters({});
-// setSelectedFilters({});
-// }
-// };
-
-// useEffect(() => {
-// if (activeTab !== '猜你喜欢') {
-// fetchFilterOptions();
-// }
-// }, [activeTab]);
-
-// useEffect(() => {
-// if (activeTab !== '猜你喜欢') {
-// fetchSeeds();
-// }
-// }, [activeTab, sortOption, selectedFilters]);
-
-// const handleDownload = async (seedId) => {
-// const peer_id = 'echo-' + Math.random().toString(36).substring(2, 10);
-// const ip = '127.0.0.1';
-// const port = 6881;
-// const uploaded = 0;
-// const downloaded = 0;
-// const left = 0;
-
-// try {
-// const response = await axios.get(`${API_BASE}/echo/seeds/${seedId}/download`, {
-// params: {
-// peer_id,
-// ip,
-// port,
-// uploaded,
-// downloaded,
-// left,
-// },
-// responseType: 'blob'
-// });
-
-// const blob = new Blob([response.data], { type: 'application/x-bittorrent' });
-// const downloadUrl = URL.createObjectURL(blob);
-// const a = document.createElement('a');
-// a.href = downloadUrl;
-// a.download = `${seedId}.torrent`;
-// a.click();
-// URL.revokeObjectURL(downloadUrl);
-// } catch (error) {
-// console.error('下载失败:', error);
-// alert('下载失败,请稍后再试。');
-// }
-// };
-
-// return (
-// <div className="friend-moments">
-// <header className="header">
-// <div className="logo-and-name">
-// <img src={logo} alt="网站logo" className="logo" />
-// <span className="site-name">Echo</span>
-// </div>
-// <div className="user-and-message">
-// <img src="user-avatar.png" alt="用户头像" className="user-avatar" />
-// <span className="message-center">消息</span>
-// </div>
-// </header>
-
-// <nav className="nav">
-// <Link to="/friend-moments" className="nav-item">好友动态</Link>
-// <Link to="/forum" className="nav-item">论坛</Link>
-// <Link to="/interest-groups" className="nav-item">兴趣小组</Link>
-// <Link to="/seed-list" className="nav-item active">种子列表</Link>
-// <Link to="/publish-seed" className="nav-item">发布种子</Link>
-// </nav>
-
-// <div className="controls">
-// <input
-// type="text"
-// placeholder="搜索种子..."
-// value={searchTerm}
-// onChange={(e) => setSearchTerm(e.target.value)}
-// className="search-input"
-// />
-// <select value={sortOption} onChange={(e) => setSortOption(e.target.value)} className="sort-select">
-// <option value="最新">最新</option>
-// <option value="最热">最热</option>
-// </select>
-// </div>
-
-// <div className="tag-filters">
-// {TAGS.map((tag) => (
-// <button
-// key={tag}
-// className={`tag-button ${activeTab === tag ? 'active-tag' : ''}`}
-// onClick={() => {
-// setActiveTab(tag);
-// setFilters({});
-// setSelectedFilters({});
-// }}
-// >
-// {tag}
-// </button>
-// ))}
-// </div>
-
-// {activeTab !== '猜你喜欢' && Object.keys(filters).length > 0 && (
-// <div className="filter-bar">
-// {Object.entries(filters).map(([key, options]) => (
-// <div className="filter-group" key={key}>
-// <label>{key}:</label>
-// <select
-// value={selectedFilters[key]}
-// onChange={(e) =>
-// setSelectedFilters({ ...selectedFilters, [key]: e.target.value })
-// }
-// >
-// {options.map((opt) => (
-// <option key={opt} value={opt}>{opt}</option>
-// ))}
-// </select>
-// </div>
-// ))}
-// </div>
-// )}
-
-// <div className="seed-list-content">
-// {activeTab === '猜你喜欢' ? (
-// <Recommend />
-// ) : loading ? (
-// <p>加载中...</p>
-// ) : filteredSeeds.length === 0 ? (
-// <p>未找到符合条件的种子。</p>
-// ) : (
-// <div className="seed-cards">
-// {filteredSeeds.map((seed, index) => (
-// <div key={index} className="seed-card">
-// <div className="seed-card-header">
-// <h3>{seed.title}</h3>
-// </div>
-// <div className="seed-card-body">
-// <p><strong>大小:</strong> {seed.size || '未知'} GB</p>
-// <p><strong>时间:</strong> {seed.upload_time?.split('T')[0] || '未知'}</p>
-// <p><strong>下载数:</strong> {seed.downloads ?? 0}</p>
-// </div>
-// <div className="seed-card-actions">
-// <button className="btn-primary" onClick={() => handleDownload(seed.seed_id)}>下载</button>
-// <Link href={`/seed/${seed.seed_id}`} className="btn-secondary">详情</Link>
-// <button className="btn-outline">收藏</button>
-// </div>
-// </div>
-// ))}
-// </div>
-// )}
-// </div>
-// </div>
-// );
-// };
-
-// export default SeedList;
import React, { useState, useEffect } from 'react';
import { Link } from 'wouter';
import axios from 'axios';