Compare commits

...

4 commits

Author SHA1 Message Date
be0731cfba
feat: all collections search
Some checks failed
Build and Publish 'anix-api-prox' to Docker Hub / publish (push) Has been cancelled
Build and Publish 'anix' to Docker Hub / publish (push) Has been cancelled
2025-08-23 00:09:56 +05:00
42d6874cb4
api-prox: fix discovery fr 2025-08-22 23:53:52 +05:00
fa720deb4a
api/prox: fix discovery 2025-08-22 23:42:57 +05:00
50b3ca79b5
send 200OK on index 2025-08-22 23:24:14 +05:00
5 changed files with 35 additions and 10 deletions

View file

@ -72,6 +72,14 @@ async function loadHooks() {
}
}
app.get("/", async (req, res) => {
res.status(200);
res.set({
"Content-Type": "text/html; charset=utf-8",
});
res.send("");
});
app.get("/player", async (req, res) => {
let url = req.query.url || null;
@ -269,6 +277,7 @@ app.post("/*path", async (req, res) => {
"application/json",
"application/x-www-form-urlencoded",
"multipart/form-data",
"x-unknown/unknown"
];
const isSupported = supportedContentTypes.includes(
@ -287,7 +296,7 @@ app.post("/*path", async (req, res) => {
let apiResponse: null | Response = null;
const apiHeaders: ANIXART_HEADERST = {
"User-Agent": ANIXART_HEADERS["User-Agent"],
"Content-Type": req.headers["content-type"] || "application/json"
"Content-Type": req.headers["content-type"] || "application/json",
};
if (
@ -314,7 +323,7 @@ app.post("/*path", async (req, res) => {
body: new URLSearchParams(req.body),
});
break;
case "application/json":
default:
apiResponse = await fetch(url.toString(), {
method: "POST",
headers: apiHeaders,

View file

@ -58,6 +58,7 @@ export const ENDPOINTS = {
profileFavorites: `${API_PREFIX}/search/favorites`,
profiles: `${API_PREFIX}/search/profiles`,
releases: `${API_PREFIX}/search/releases`,
collections: `${API_PREFIX}/search/collections`,
},
statistic: {
addHistory: `${API_PREFIX}/history/add`,

View file

@ -28,10 +28,12 @@ export const CollectionLink = (props: any) => {
icon_name="material-symbols--favorite"
name_2={props.favorites_count}
/>
<Chip
icon_name="material-symbols--comment"
name_2={props.comment_count}
/>
{props.comment_count && (
<Chip
icon_name="material-symbols--comment"
name_2={props.comment_count}
/>
)}
{props.is_private && (
<div className="flex items-center justify-center bg-yellow-400 rounded-sm">
<span className="w-3 px-4 py-2.5 text-white sm:px-4 sm:py-3 xl:px-6 xl:py-4 iconify mdi--lock"></span>

View file

@ -61,8 +61,13 @@ const whereMapping = [
auth: true,
},
{
id: "collections",
label: "Коллекциях",
id: "collections_all",
label: "Всех Коллекциях",
auth: false,
},
{
id: "collections_fav",
label: "Своих Коллекциях",
auth: true,
},
];
@ -179,6 +184,7 @@ export function SearchPage() {
url.searchParams.set("query", query);
url.searchParams.set("params", JSON.stringify(params));
router.replace(url.toString());
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [query]);
const getKey = (pageIndex: number, previousPageData: any) => {
@ -214,7 +220,10 @@ export function SearchPage() {
case "favorites":
url = `${ENDPOINTS.search.profileFavorites}/${pageIndex}`;
break;
case "collections":
case "collections_all":
url = `${ENDPOINTS.search.collections}/${pageIndex}`;
break;
case "collections_fav":
url = `${ENDPOINTS.search.profileFavoriteCollection}/${pageIndex}`;
break;
}
@ -385,7 +394,7 @@ export function SearchPage() {
content.length > 0 ?
params.where == "profiles" ?
<UserSection content={content} />
: params.where == "collections" ?
: ["collections_all", "collections_fav"].includes(params.where) ?
<CollectionsSection content={content} />
: <ReleaseSection content={content} />
: <div className="flex flex-col items-center justify-center min-w-full gap-4 mt-12 text-xl">

View file

@ -1,5 +1,9 @@
# 3.8.0
## Добавлено
- Поиск среди всех коллекций
## Изменено
- Фильтры на странице поиска были перемещены рядом с полем ввода