| import { Elysia, Context, t } from "elysia"; |
| import { logger } from "@chneau/elysia-logger"; |
| import { cors } from "@elysiajs/cors"; |
| import { NS_Misc } from "../../../../packages/lib/helpers/client/misc"; |
| import { NS_error } from "../../../../packages/lib/helpers/client/error"; |
| import { NS_routes_elysia } from "../../../../packages/lib/helpers/server/routes-elysia"; |
| import { FfmpegV2Router } from "./sub-router/ffmpeg/v2"; |
| import { ShowtimeV2Router } from "./sub-router/showtime/v2"; |
| import { TestRouter } from "./sub-router/test"; |
| import { NS_runtime } from "../../../../packages/lib/env.runtime"; |
| import { NS_workers_proxy } from "../../../../packages/lib/proxy-server/workers-proxy"; |
| import { start_mongo_db } from "../../../../packages/db/mongo-db/init"; |
|
|
| await NS_runtime.set_env_var_db(); |
|
|
| await start_mongo_db(); |
|
|
| const { rewriteWorkersUrl, startWorkersProxy, rewriteWorkersUrl_t2, get_dns } = |
| NS_workers_proxy; |
|
|
| const APP_ENV = process.env.APP_ENV; |
| const APP_ORIGIN = process.env.APP_ORIGIN; |
| const PORT = process.env.PORT; |
|
|
| await startWorkersProxy(); |
|
|
| const app = new Elysia() |
|
|
| .use( |
| cors({ |
| origin: "*", |
| allowedHeaders: "*", |
| methods: ["GET", "POST", "PUT", "DELETE", "OPTIONS", "HEAD"], |
| exposeHeaders: "*" |
| }) as any |
| ) |
|
|
| .derive((ctx: any) => ({ |
| publicOrigin: NS_routes_elysia.F_public_origin(ctx) |
| })) |
|
|
| .use(logger()) |
|
|
| .onError(async ({ code, error }) => { |
| let e_message = ""; |
| if (code === "VALIDATION") { |
| e_message = error.message; |
| try { |
| e_message = JSON.parse(e_message).summary; |
| } catch (err) {} |
| } |
|
|
| const err_d = NS_error.F_collect_error_status_n_message({ |
| ERR: error |
| }); |
|
|
| NS_Misc.console.error({ ENV: "dev", _browser: false, _log: ["\n"] }); |
| NS_Misc.console.error({ |
| ENV: "dev", |
| _browser: false, |
| _log: [{ code, e_message, ...err_d }, "\n"] |
| }); |
|
|
| return new Response(err_d.message, { |
| status: err_d.status, |
| headers: { |
| "x-error-message": JSON.stringify(err_d.message), |
| "x-error-status": err_d.status |
| } |
| }); |
| }) |
|
|
| .use(ShowtimeV2Router) |
| .use(FfmpegV2Router) |
| .use(TestRouter) |
|
|
| .get("/", async ({ request }) => { |
| return "🦊 Hello Rafiki 🍿"; |
| }) |
|
|
| .get("/test/p", async ({ request }) => { |
| const originalUrl = |
| "https://cool.tylerfisher55.workers.dev/afc7d47f/uz5gyMPGU9TVujalv1-l0gCq1t5YoLPmJOs0BK8vPdXqyusELznNCnUjCjs93MmANIYp__VYV9NVMM33xaH8-hxFDOQjzy6xGM8xf6yfw1YOmJhdwv2R3fFOXPVk90JFUhfo-oz1cLaYBHPnU0wPrb84UsIVRnunq3UKDSpFMLVBnEy7VJtuHl7T90GpI0EcY_xtuRtQguJ7pQqdKgGVJRP7_urSkYuXf-zAySLgY6isRw-vKYh1EnOLybifGW5Q8AT-r-BlvwNe4vDMjJ3blHFeAsSS2Z3XMfOdM0dQbJwO7o4igwfpIVILbI2YkKuRzIbaWTMXAe7f9vKUJpS5cXEG5UB3EwOm_-yobxVKvrPZqcdrG-Qteh16fTl9Ll7PiYwlA-Ebc2S0QlEWRAXsB0IZd3ixrCxSqSfHZwF6p38FGC0EeNUqW_enbS8BA_kGQhiA9q9Z4P2yxF5CN5-WBTXw6O8UMygbUNhoi-BWnk02DRu0oeyEoE2OGVrN-zRP2KNGOejNL-BbmcLd9yB0qP1Z1RF8wszuFx8x6iQUuIXCXUSGzxZAQie3dELhVWFKSj__CqTSgk8adDCyd8mYLnHzh1jFpSlDDOwF65blF6rmWcYZmgfHcSIe9mIgpkRE0zPF5J_AcvKdYSoILfKj2kzpaF_yI8DceEqCWsDojyzMQi7YO02EMx8MdmtqG9BnHtto7tEiVWZnOQJyc6BinQ.m3u8"; |
|
|
| await get_dns({ |
| target: originalUrl, |
| method: "GET", |
| headers: { |
| Referer: "https://111movies.net/" |
| } |
| }); |
|
|
| const foo = rewriteWorkersUrl_t2(originalUrl); |
|
|
| const res = await fetch(foo, { |
| method: "GET" |
| }); |
|
|
| return res; |
| }) |
|
|
| .listen({ |
| port: PORT || 7860, |
| ...(NS_runtime.IS_PROD && { hostname: "0.0.0.0" }), |
| idleTimeout: 120 |
| }); |
|
|
| console.log( |
| `🦊 Elysia is running at ${app.server?.hostname}:${app.server?.port}` |
| ); |
|
|