mirror of
https://github.com/Radiquum/AniX.git
synced 2025-06-05 11:39:36 +05:00
Merge branch 'V3-SelfHost' into V3
This commit is contained in:
commit
23eaa82993
9 changed files with 92 additions and 78 deletions
|
@ -7,16 +7,16 @@
|
|||
- аккаунт GitHub
|
||||
- аккаунт Vercel
|
||||
|
||||
1. сделайте форк репозитория
|
||||
1. Создайте форк репозитория
|
||||
|
||||

|
||||
|
||||
2. Войдите в аккаунт vercel
|
||||
2. Войдите в аккаунт Vercel
|
||||
|
||||
> [!IMPORTANT]
|
||||
>Аккаунт Vercel должен быть связан с аккаунтом Github.
|
||||
> Аккаунт Vercel должен быть связан с аккаунтом GitHub.
|
||||
>
|
||||
>Если у вас нет аккаунта vercel, то создайте его через вход с помощью Github.
|
||||
> Если у вас нет аккаунта Vercel, то создайте его через вход с помощью GitHub.
|
||||
|
||||
3. Нажмите кнопку создать новый проект
|
||||
|
||||
|
@ -26,7 +26,7 @@
|
|||
|
||||

|
||||
|
||||
5. (опционально) добавьте переменные для использования своего плеере:
|
||||
5. (опционально) добавьте переменные для использования своего плеера:
|
||||
|
||||
- NEXT_PUBLIC_KODIK_PARSER_URL
|
||||
- NEXT_PUBLIC_ANILIBRIA_PARSER_URL
|
||||
|
@ -36,9 +36,9 @@
|
|||
|
||||

|
||||
|
||||
6. нажмите кнопку "Deploy" и ожидайте пока не появиться подтверждение
|
||||
6. нажмите кнопку "Deploy" и ожидайте пока не появится подтверждение
|
||||
7. нажмите кнопку "Continue to Dashboard"
|
||||
8. клиент будет доступен по ссылке такого вида, нажмите на неё что-бы его открыть
|
||||
8. клиент будет доступен по ссылке такого вида, нажмите на неё чтобы его открыть
|
||||

|
||||
|
||||
## Netlify
|
||||
|
@ -48,16 +48,16 @@
|
|||
- аккаунт GitHub
|
||||
- аккаунт Netlify
|
||||
|
||||
1. сделайте форк репозитория
|
||||
1. Создайте форк репозитория
|
||||
|
||||

|
||||
|
||||
2. Войдите в аккаунт netlify
|
||||
2. Войдите в аккаунт Netlify
|
||||
|
||||
> [!IMPORTANT]
|
||||
>Аккаунт Netlify должен быть связан с аккаунтом Github.
|
||||
> Аккаунт Netlify должен быть связан с аккаунтом GitHub.
|
||||
>
|
||||
>Если у вас нет аккаунта Netlify, то создайте его через вход с помощью Github.
|
||||
> Если у вас нет аккаунта Netlify, то создайте его через вход с помощью GitHub.
|
||||
|
||||
3. Нажмите кнопку создать новый проект
|
||||
|
||||
|
@ -75,7 +75,7 @@
|
|||
|
||||

|
||||
|
||||
7. (опционально) добавьте переменные для использования своего плеере:
|
||||
7. (опционально) добавьте переменные для использования своего плеера:
|
||||
|
||||
- NEXT_PUBLIC_KODIK_PARSER_URL
|
||||
- NEXT_PUBLIC_ANILIBRIA_PARSER_URL
|
||||
|
@ -87,9 +87,9 @@
|
|||
|
||||
2. 
|
||||
|
||||
8. нажмите кнопку "Deploy" и ожидайте пока не появиться подтверждение
|
||||
8. нажмите кнопку "Deploy" и ожидайте пока не появится подтверждение
|
||||
|
||||
9. клиент будет доступен по ссылке такого вида, нажмите на неё что-бы его открыть
|
||||
9. клиент будет доступен по ссылке такого вида, нажмите на неё чтобы его открыть
|
||||
|
||||

|
||||
|
||||
|
@ -101,7 +101,7 @@
|
|||
|
||||
### Пре-билд
|
||||
|
||||
1. выполните комманду:
|
||||
1. выполните команду:
|
||||
|
||||
`docker run -d --name anix -p 3000:3000 radiquum/anix:latest`
|
||||
|
||||
|
@ -121,9 +121,9 @@
|
|||
- -d - запустить контейнер в фоне
|
||||
- --restart always - всегда запускать после перезагрузки сервера
|
||||
- --name - название контейнера
|
||||
- -p - порт контейнера который будет доступен из вне. ПОРТ:3000
|
||||
- -p - порт контейнера который будет доступен извне. ПОРТ:3000
|
||||
|
||||
>[!NOTE]
|
||||
> [!NOTE]
|
||||
> для переменных которые вы получили, если развёртывали [anix-player-parsers](./player-parsers/README.RU.md), необходимо использовать `-e ПЕРЕМЕННАЯ=ЗНАЧЕНИЕ` до слова anix
|
||||
|
||||
[команда docker run](https://docs.docker.com/reference/cli/docker/container/run/)
|
||||
|
@ -134,12 +134,12 @@
|
|||
|
||||
### docker/Примечание
|
||||
|
||||
Для использования своего домена и поддержки протокола https, вы можете использовать traefik или другой reverse-proxy, с сертификатом SSL.
|
||||
Для использования своего домена и поддержки протокола HTTPS, вы можете использовать Traefik или другой reverse-proxy, с сертификатом SSL.
|
||||
|
||||
Полезные ссылки:
|
||||
|
||||
- [Конвертер из команды docker run в синтакс для docker compose](https://it-tools.tech/docker-run-to-docker-compose-converter)
|
||||
- [Как настроить traefik + свой домен + SSL](https://letmegooglethat.com/?q=how+to+setup+traefik+with+custom+domain+and+ssl+certificate+from+lets+encrypt%3F)
|
||||
- [Как настроить Traefik + свой домен + SSL](https://letmegooglethat.com/?q=how+to+setup+traefik+with+custom+domain+and+ssl+certificate+from+lets+encrypt%3F)
|
||||
|
||||
## pm2
|
||||
|
||||
|
@ -156,11 +156,11 @@
|
|||
3. Выполните команду `npm install`
|
||||
4. (опционально) скопируйте .env.sample как .env и заполните его переменными которые вы получили, если развёртывали [anix-player-parsers](./player-parsers/README.RU.md)
|
||||
5. Выполните команду `npm run build`
|
||||
6. создайте новую директорию
|
||||
7. переместите в созданную директорию
|
||||
- директорию `public` в `./новая/public`
|
||||
- директорию `.next/static` в `./новая/.next/static`
|
||||
- файлы из `.next/standalone` в `./новая`
|
||||
6. создайте новую директорию (далее будем использовать `<имя_новой_директории>` как её имя)
|
||||
7. переместите в созданную директорию (`<имя_новой_директории>`)
|
||||
- директорию `public` в `<имя_новой_директории>/public`
|
||||
- директорию `.next/static` в `<имя_новой_директории>/.next/static`
|
||||
- файлы из `.next/standalone` в `<имя_новой_директории>`
|
||||
8. Переместитесь в созданную директорию и выполните команду `pm2 start server.js -n anix`
|
||||
|
||||
### pm2/Обозначения
|
||||
|
|
|
@ -14,9 +14,9 @@ Requirements:
|
|||
2. Log in to your Vercel account
|
||||
|
||||
> [!IMPORTANT]
|
||||
>Your Vercel account must be linked with your GitHub account.
|
||||
> Your Vercel account must be linked with your GitHub account.
|
||||
>
|
||||
>If you don't have a Vercel account, create one by signing in with GitHub.
|
||||
> If you don't have a Vercel account, create one by signing in with GitHub.
|
||||
|
||||
3. Click the button to create a new project
|
||||
|
||||
|
@ -36,9 +36,9 @@ Requirements:
|
|||
|
||||

|
||||
|
||||
6. Click the "Deploy" button and wait until you see a confirmation
|
||||
7. Click the "Continue to Dashboard" button
|
||||
8. The client will be available at a link of this form, click it to open
|
||||
6. Click the "Deploy" button and wait until you see a confirmation
|
||||
7. Click the "Continue to Dashboard" button
|
||||
8. The client will be available at a link of this form, click it to open
|
||||

|
||||
|
||||
## Netlify
|
||||
|
@ -55,9 +55,9 @@ Requirements:
|
|||
2. Log in to your Netlify account
|
||||
|
||||
> [!IMPORTANT]
|
||||
>Your Netlify account must be linked with your GitHub account.
|
||||
> Your Netlify account must be linked with your GitHub account.
|
||||
>
|
||||
>If you don't have a Netlify account, create one by signing in with GitHub.
|
||||
> If you don't have a Netlify account, create one by signing in with GitHub.
|
||||
|
||||
3. Click the button to create a new project
|
||||
|
||||
|
@ -118,12 +118,12 @@ Additional Requirements:
|
|||
|
||||
### docker/Flags
|
||||
|
||||
- -d - run container in background
|
||||
- -d - run container in the background
|
||||
- --restart always - always restart after server reboot
|
||||
- --name - container name
|
||||
- -p - container port to be exposed externally. PORT:3000
|
||||
|
||||
>[!NOTE]
|
||||
> [!NOTE]
|
||||
> For variables you received if you deployed [anix-player-parsers](./player-parsers/README.md), you need to use `-e VARIABLE=VALUE` before the word anix
|
||||
|
||||
[docker run command](https://docs.docker.com/reference/cli/docker/container/run/)
|
||||
|
@ -134,12 +134,12 @@ The service will be available at: `http://<YOUR IP><:YOUR PORT>/`
|
|||
|
||||
### docker/Note
|
||||
|
||||
To use your own domain and support HTTPS protocol, you can use traefik or another reverse proxy with SSL certificate.
|
||||
To use your own domain and support HTTPS protocol, you can use Traefik or another reverse proxy with SSL certificate.
|
||||
|
||||
Useful links:
|
||||
|
||||
- [Converter from docker run command to docker compose syntax](https://it-tools.tech/docker-run-to-docker-compose-converter)
|
||||
- [How to setup traefik + custom domain + SSL](https://letmegooglethat.com/?q=how+to+setup+traefik+with+custom+domain+and+ssl+certificate+from+lets+encrypt%3F)
|
||||
- [How to setup Traefik + custom domain + SSL](https://letmegooglethat.com/?q=how+to+setup+traefik+with+custom+domain+and+ssl+certificate+from+lets+encrypt%3F)
|
||||
|
||||
## pm2
|
||||
|
||||
|
@ -156,12 +156,12 @@ Instructions:
|
|||
3. Run the command `npm install`
|
||||
4. (optional) copy `.env.sample` as `.env` and fill it with variables you received if you deployed [anix-player-parsers](./player-parsers/README.md)
|
||||
5. Run the command `npm run build`
|
||||
6. Create a new directory
|
||||
7. Move into the new directory:
|
||||
- move `public` directory to `./new/public`
|
||||
- move `.next/static` directory to `./new/.next/static`
|
||||
- move files from `.next/standalone` to `./new`
|
||||
8. Move into the created directory and run the command `pm2 start server.js -n anix`
|
||||
6. Create a new directory (next we will be refer to its name as `<new_dir>`)
|
||||
7. Move the following files into the new directory (`<new_dir>`):
|
||||
- move `public` directory to `<new_dir>/public`
|
||||
- move `.next/static` directory to `<new_dir>/.next/static`
|
||||
- move files from `.next/standalone` to `<new_dir>`
|
||||
8. Move into the created directory (<new_dir>) and run the command `pm2 start server.js -n anix`
|
||||
|
||||
### pm2/Flags
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@ AniX - это неофициальный веб-клиент для Android-пр
|
|||
|
||||
---
|
||||
|
||||
[[RU] ПРОЧТИ МЕНЯ](./REAME.RU.md) | [[EN] README](./REAME.md)
|
||||
[[RU] ПРОЧТИ МЕНЯ](./README.RU.md) | [[EN] README](./README.md)
|
||||
|
||||
[[RU] РАЗВЁРТЫВАНИЕ](./DEPLOYMENT.RU.md) | [[EN] DEPLOY](./DEPLOYMENT.md)
|
||||
|
|
@ -8,7 +8,7 @@ Please note that AniX is an unofficial project and is not affiliated with the de
|
|||
|
||||
---
|
||||
|
||||
[[RU] ПРОЧТИ МЕНЯ](./REAME.RU.md) | [[EN] README](./REAME.md)
|
||||
[[RU] ПРОЧТИ МЕНЯ](./README.RU.md) | [[EN] README](./README.md)
|
||||
|
||||
[[RU] РАЗВЁРТЫВАНИЕ](./DEPLOYMENT.RU.md) | [[EN] DEPLOY](./DEPLOYMENT.md)
|
||||
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
# AniX - Player Parsers
|
||||
|
||||
Данный под-проект позволяет получить прямые ссылки на видеофайлы с источников Sibnet, Kodik, Libria
|
||||
Данный под-проект позволяет получить прямые ссылки на видеофайлы с источников Sibnet, Kodik, Anilibria (источник: libria)
|
||||
|
||||
Он может использоваться как для основного проекта AniX, так и как отдельный сервис.
|
||||
|
||||
В основном проекте, парсеры используются для работы своего плеере, если вам не важна данная функция, вы можете не развёртывать данный суб-сервис.
|
||||
В основном проекте, парсеры используются для работы своего плеера, если вам не важна данная функция, вы можете не развёртывать данный суб-сервис.
|
||||
|
||||
Лицензия: [MIT](../LICENSE)
|
||||
|
||||
|
@ -22,7 +22,7 @@
|
|||
- VIDEO_URL - ссылка на видео от источника
|
||||
- PLAYER_SOURCE - источник, один из: kodik, sibnet, libria
|
||||
|
||||
>[!NOTE]
|
||||
> [!NOTE]
|
||||
> Если используется источник libria, ссылка должна быть ссылкой на API anilibria, а не на плеер
|
||||
|
||||
Ответ:
|
||||
|
@ -32,9 +32,10 @@
|
|||
|
||||
## Развёртывание
|
||||
|
||||
> [!IMPORTANT]
|
||||
> В связи с спецификой источников, рекомендуется использовать виртуальный сервер в россии, т.к. они могут быть недоступны из других стран.
|
||||
>
|
||||
> Из-за данной специфики, парсеры невозможно развернуть на edge сервисах, таких как CloudFlare Workers или Deno, а только на отдельном сервере.
|
||||
> Из-за данной специфики, парсеры невозможно развернуть на edge сервисах, таких как Cloudflare Workers или Deno, а только на отдельном сервере.
|
||||
|
||||
### Docker
|
||||
|
||||
|
@ -44,7 +45,7 @@
|
|||
|
||||
### Пре-билд
|
||||
|
||||
1. выполните комманду:
|
||||
1. выполните команду:
|
||||
|
||||
`docker run -d --name anix-player -p 7000:7000 radiquum/anix-player-parser:latest`
|
||||
|
||||
|
@ -65,7 +66,7 @@
|
|||
- -d - запустить контейнер в фоне
|
||||
- --restart always - всегда запускать после перезагрузки сервера
|
||||
- --name - название контейнера
|
||||
- -p - порт контейнера который будет доступен из вне. ПОРТ:7000
|
||||
- -p - порт контейнера который будет доступен извне. ПОРТ:7000
|
||||
|
||||
### docker/После развёртывания
|
||||
|
||||
|
@ -73,14 +74,12 @@
|
|||
|
||||
### docker/Примечание
|
||||
|
||||
Для использования своего домена и поддержки протокола https, вы можете использовать traefik или другой reverse-proxy, с сертификатом SSL.
|
||||
Для использования своего домена и поддержки протокола HTTPS, вы можете использовать Traefik или другой reverse-proxy, с сертификатом SSL.
|
||||
|
||||
Полезные ссылки:
|
||||
|
||||
- [Конвертер из команды docker run в синтакс для docker compose](https://it-tools.tech/docker-run-to-docker-compose-converter)
|
||||
- [Как настроить traefik + свой домен + SSL](https://letmegooglethat.com/?q=how+to+setup+traefik+with+custom+domain+and+ssl+certificate+from+lets+encrypt%3F)
|
||||
|
||||
</details>
|
||||
- [Как настроить Traefik + свой домен + SSL](https://letmegooglethat.com/?q=how+to+setup+traefik+with+custom+domain+and+ssl+certificate+from+lets+encrypt%3F)
|
||||
|
||||
### pm2
|
||||
|
||||
|
@ -96,7 +95,7 @@
|
|||
2. Переместитесь в директорию репозитория `cd AniX`
|
||||
3. Переместитесь в директорию парсеров `cd player-parsers`
|
||||
4. Выполните команду `npm install`
|
||||
5. После окончания, Выполните команду `pm2 start index.ts -n anix-player-parser`
|
||||
5. После окончания и выполните команду `pm2 start index.ts -n anix-player-parser`
|
||||
|
||||
### pm2/Обозначения
|
||||
|
||||
|
|
|
@ -32,9 +32,10 @@ Response:
|
|||
|
||||
## Deployment
|
||||
|
||||
> [!IMPORTANT]
|
||||
> Due to the nature of the sources, it is recommended to use a virtual server in Russia, as they may be inaccessible from other countries.
|
||||
>
|
||||
> Because of this specificity, the parsers cannot be deployed on edge services like CloudFlare Workers or Deno, only on a dedicated server.
|
||||
> Because of this specificity, the parsers cannot be deployed on edge services like Cloudflare Workers or Deno, only on a dedicated server.
|
||||
|
||||
### Docker
|
||||
|
||||
|
@ -62,7 +63,7 @@ Additional Requirements:
|
|||
|
||||
### docker/Legend
|
||||
|
||||
- -d - run the container in background
|
||||
- -d - run container in the background
|
||||
- --restart always - always restart after server reboot
|
||||
- --name - container name
|
||||
- -p - container port accessible externally. PORT:7000
|
||||
|
@ -73,14 +74,12 @@ The service will be available at: `http://<YOUR IP><:YOUR PORT>/`
|
|||
|
||||
### docker/Note
|
||||
|
||||
To use your own domain and support the https protocol, you can use traefik or another reverse-proxy with an SSL certificate.
|
||||
To use your own domain and support the HTTPS protocol, you can use Traefik or another reverse-proxy with an SSL certificate.
|
||||
|
||||
Useful links:
|
||||
|
||||
- [Docker run to docker compose syntax converter](https://it-tools.tech/docker-run-to-docker-compose-converter)
|
||||
- [How to setup traefik + custom domain + SSL](https://letmegooglethat.com/?q=how+to+setup+traefik+with+custom+domain+and+ssl+certificate+from+lets+encrypt%3F)
|
||||
|
||||
</details>
|
||||
- [How to setup Traefik + custom domain + SSL](https://letmegooglethat.com/?q=how+to+setup+traefik+with+custom+domain+and+ssl+certificate+from+lets+encrypt%3F)
|
||||
|
||||
### pm2
|
||||
|
||||
|
@ -96,7 +95,7 @@ Instructions:
|
|||
2. Navigate to the repository directory `cd AniX`
|
||||
3. Navigate to the parsers directory `cd player-parsers`
|
||||
4. Run the command `npm install`
|
||||
5. Once finished, Run the command `pm2 start index.ts -n anix-player-parser`
|
||||
5. Once finished, run the command `pm2 start index.ts -n anix-player-parser`
|
||||
|
||||
### pm2/Legend
|
||||
|
||||
|
|
|
@ -11,8 +11,9 @@ const port = 7000;
|
|||
const allowedPlayers = ["kodik", "libria", "sibnet"];
|
||||
|
||||
app.get("/", (req, res) => {
|
||||
const url = req.query.url;
|
||||
const player = req.query.player;
|
||||
const urlParams = new URLSearchParams(req.query)
|
||||
const url = urlParams.get("url");
|
||||
const player = urlParams.get("player");
|
||||
|
||||
if (!url) {
|
||||
asJSON(res, { message: "no 'url' query provided" }, 400)
|
||||
|
|
|
@ -19,7 +19,7 @@ export async function getKodikURL(res, url: string) {
|
|||
});
|
||||
|
||||
if (!pageRes.ok) {
|
||||
for (let i = 0; i < altDomains.length - 1; i++) {
|
||||
for (let i = 0; i < altDomains.length; i++) {
|
||||
if (url.includes(altDomains[i])) {
|
||||
continue;
|
||||
}
|
||||
|
|
|
@ -10,24 +10,39 @@ export const resHeaders = {
|
|||
};
|
||||
|
||||
export const USERAGENTS = [
|
||||
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.5 Safari/605.1.15",
|
||||
"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.53 Safari/537.36",
|
||||
"Mozilla/5.0 (Windows NT 10.0; Windows; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.114 Safari/537.36",
|
||||
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/603.3.8 (KHTML, like Gecko) Version/10.1.2 Safari/603.3.8",
|
||||
"Mozilla/5.0 (Windows NT 10.0; Windows; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.114 Safari/537.36",
|
||||
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0 Safari/605.1.15",
|
||||
"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.53 Safari/537.36",
|
||||
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0 Safari/605.1.15",
|
||||
"Mozilla/5.0 (Windows NT 10.0; Windows; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.114 Safari/537.36",
|
||||
"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.53 Safari/537.36",
|
||||
"Mozilla/5.0 (Linux; Android 12.0; LG G8) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.2.7124.71 Mobile Safari/537.36",
|
||||
"Mozilla/5.0 (Windows NT 11.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.5.1269.13 Safari/537.36",
|
||||
"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:123.0) Gecko/123.0 Firefox/123.0",
|
||||
"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:94.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.8.4576.73 Safari/537.36",
|
||||
"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:121.0) Gecko/121.0 Firefox/121.0",
|
||||
"Mozilla/5.0 (Linux; Android 11.0; OnePlus 10T Pro) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.8.1484.76 Mobile Safari/537.36",
|
||||
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.9.9841.32 Safari/537.36",
|
||||
"Mozilla/5.0 (Windows NT 11.0; Win64; x64; rv:124.0) Gecko/124.0 Firefox/124.0",
|
||||
"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:94.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.3457.25 Safari/537.36",
|
||||
"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:124.0) Gecko/124.0 Firefox/124.0",
|
||||
"Mozilla/5.0 (Linux; Android 13.0; Pixel 3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.3.1166.27 Mobile Safari/537.36",
|
||||
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.6.4126.27 Safari/537.36",
|
||||
"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:130.0) Gecko/130.0 Firefox/130.0",
|
||||
"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:94.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.3.4677.74 Safari/537.36",
|
||||
"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:122.0) Gecko/122.0 Firefox/122.0",
|
||||
"Mozilla/5.0 (Linux; Android 12.0; Xiaomi Redmi Note 9) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.6.3806.92 Mobile Safari/537.36",
|
||||
"Mozilla/5.0 (Windows NT 11.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.3.9963.85 Safari/537.36",
|
||||
"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:122.0) Gecko/122.0 Firefox/122.0",
|
||||
"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:94.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.8.5618.48 Safari/537.36",
|
||||
"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:126.0) Gecko/126.0 Firefox/126.0",
|
||||
"Mozilla/5.0 (Linux; Android 12.0; Huawei Mate 40) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.6740.69 Mobile Safari/537.36",
|
||||
"Mozilla/5.0 (Windows NT 11.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.9.2666.21 Safari/537.36",
|
||||
"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/132.0 Firefox/132.0",
|
||||
"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:94.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.4804.4 Safari/537.36",
|
||||
"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:128.0) Gecko/128.0 Firefox/128.0",
|
||||
];
|
||||
|
||||
export function asJSON(res, object: any, status: number) {
|
||||
res.status(status).type('application/json');
|
||||
res.set(corsHeaders)
|
||||
res.status(status).type("application/json");
|
||||
res.set(corsHeaders);
|
||||
res.send(JSON.stringify(object));
|
||||
}
|
||||
|
||||
export function randomUA() {
|
||||
return USERAGENTS[Math.floor(Math.random() * USERAGENTS.length - 1)]
|
||||
}
|
||||
return USERAGENTS[Math.floor(Math.random() * USERAGENTS.length)];
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue