FastMovieAI AI短剧创作平台 二开基线
- 源码: xhadmincn/FastMovieAI (Apache 2.0) - 二开: Docker部署, Swoole改Select, route.php修复, 补update/VERSION - vendor/示例资源已gitignore
@@ -0,0 +1,12 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>404 Not Found - webman</title>
|
||||
</head>
|
||||
<body>
|
||||
<center>
|
||||
<h1>404 Not Found</h1>
|
||||
</center>
|
||||
<hr>
|
||||
<center>webman</center>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,2 @@
|
||||
*
|
||||
!.gitignore
|
||||
|
After Width: | Height: | Size: 4.2 KiB |
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" version="1.1" width="256" height="256" viewBox="0 0 256 256"><defs><clipPath id="master_svg0_8_3947"><rect x="0" y="0" width="256" height="256" rx="50"/></clipPath></defs><g clip-path="url(#master_svg0_8_3947)"><rect x="0" y="0" width="256" height="256" rx="50" fill="#000000" fill-opacity="1"/><ellipse cx="75.03030395507812" cy="183.04131317138672" rx="23.030303955078125" ry="22.95867919921875" fill="#FE6056" fill-opacity="1" style="mix-blend-mode:passthrough"/><path d="M52,97.91735800000001L158.08264,97.91735800000001C183.44211,97.91735800000001,204,77.359459,204,52L77.584738,52C63.454677000000004,52,52,63.454675,52,77.58473599999999L52,97.91735800000001Z" fill="#0DF283" fill-opacity="1"/><g><path d="M72.266665,81.18941307067871L52,81.18941307067871L52,109.47000307067871Q52.37587196,108.81541207067872,52.79403096,108.18682507067871Q53.2121899,107.55823707067871,53.6708326,106.95836607067871Q54.1294756,106.35849607067871,54.6266241,105.78992607067872Q55.1237726,105.2213570706787,55.6572828,104.6865440706787Q56.1907935,104.15173107067871,56.7583656,103.65297907067871Q57.3259373,103.15422407067871,57.9251223,102.6936820706787Q58.5243077,102.23314107067871,59.152523,101.81279907067871Q59.7807374,101.39245407067871,60.4352722,101.01412007067871Q61.0898075,100.6357860706787,61.7678394,100.30109607067871Q62.445872,99.96640607067872,63.144478,99.67679807067871Q63.843084,99.3871940706787,64.559252,99.14392107067872Q65.275419,98.90064807067871,66.00606,98.7047600706787Q66.7367,98.50887107067871,67.478662,98.3612120706787Q68.220623,98.21355207067872,68.970707,98.11475607067871Q69.72079099999999,98.01596307067871,70.475761,97.96645707067871Q71.230732,97.91695207067872,71.987335,97.91695207067872Q72.127005,97.91695207067872,72.266665,97.91864007067872L72.266665,81.18941307067871Z" fill-rule="evenodd" fill="#0DF283" fill-opacity="1"/></g><path d="M52,152.5578494855957L158.08264,152.5578494855957C183.44211,152.5578494855957,204,131.99995048559572,204,106.6404914855957L77.584738,106.6404914855957C63.454677000000004,106.6404914855957,52,118.0951664855957,52,132.2252274855957L52,152.5578494855957Z" fill="#FEBC2F" fill-opacity="1" style="mix-blend-mode:passthrough"/><g><path d="M72.266665,134.53646850585938L52,134.53646850585938L52,164.11246850585937Q52.37587196,163.45787850585938,52.79403096,162.82929050585938Q53.2121899,162.20070450585936,53.6708326,161.6008315058594Q54.1294756,161.00096150585938,54.6266241,160.43239250585938Q55.1237726,159.8638225058594,55.6572828,159.32901050585937Q56.1907935,158.7941975058594,56.7583656,158.29544250585937Q57.3259373,157.79669150585937,57.9251223,157.33614950585937Q58.5243077,156.87560850585936,59.152523,156.4552655058594Q59.7807374,156.03491950585936,60.4352722,155.65658550585937Q61.0898075,155.27825150585937,61.7678394,154.94356150585938Q62.445872,154.60887150585938,63.144478,154.31926350585937Q63.843084,154.02965950585937,64.559252,153.78638650585938Q65.275419,153.54311350585937,66.00606,153.34722550585937Q66.7367,153.15133650585938,67.478662,153.00367750585937Q68.220623,152.85601850585937,68.970707,152.75722150585938Q69.72079099999999,152.65842850585938,70.475761,152.60892250585937Q71.230732,152.5594175058594,71.987335,152.5594175058594Q72.127005,152.5594175058594,72.266665,152.56110550585936L72.266665,134.53646850585938Z" fill-rule="evenodd" fill="#FEBC2F" fill-opacity="1" style="mix-blend-mode:passthrough"/></g></g></svg>
|
||||
|
After Width: | Height: | Size: 3.4 KiB |
@@ -0,0 +1,25 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=10,chrome=1">
|
||||
<meta name="renderer" content="webkit">
|
||||
<meta name="viewport" content="maximum-scale=1.0, user-scalable=0">
|
||||
<meta name="aplus-xplug" content="NONE">
|
||||
<link rel="icon" type="image/svg+xml" href="/icon.svg" />
|
||||
<meta name="theme-color" content="#317EFB"/>
|
||||
<meta name="version" content="0.1.3">
|
||||
<title>Loading...</title>
|
||||
<script src="/static/icode.js"></script>
|
||||
<script type="module" crossorigin src="/assets/index-IDh59bmd.js"></script>
|
||||
<link rel="modulepreload" crossorigin href="/assets/vendor-Bir9qRZM.js">
|
||||
<link rel="stylesheet" crossorigin href="/assets/vendor-DfLO3TL3.css">
|
||||
<link rel="stylesheet" crossorigin href="/assets/index-vODxA-Q3.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="app"></div>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,22 @@
|
||||
<?php
|
||||
/**
|
||||
* FastMovie Admin 入口文件
|
||||
* 检测系统是否已安装,未安装则跳转到安装页面
|
||||
*/
|
||||
|
||||
// 检查是否已安装
|
||||
$lockFile = dirname(__DIR__) . '/install.lock';
|
||||
|
||||
// 获取当前请求路径
|
||||
$requestUri = $_SERVER['REQUEST_URI'] ?? '/';
|
||||
$path = parse_url($requestUri, PHP_URL_PATH);
|
||||
|
||||
// 如果不在安装页面且未安装,则跳转到安装页面
|
||||
if (strpos($path, '/install') !== 0 && !file_exists($lockFile)) {
|
||||
// 重定向到安装页面
|
||||
header('Location: /install');
|
||||
exit;
|
||||
}
|
||||
|
||||
// 如果已安装或在安装页面,继续正常流程
|
||||
// 这里可以添加其他初始化逻辑
|
||||
|
After Width: | Height: | Size: 4.1 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 4.2 KiB |
|
After Width: | Height: | Size: 5.3 KiB |
|
After Width: | Height: | Size: 5.8 KiB |
|
After Width: | Height: | Size: 5.3 KiB |
|
After Width: | Height: | Size: 4.7 KiB |
|
After Width: | Height: | Size: 4.7 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 5.0 KiB |
|
After Width: | Height: | Size: 4.4 KiB |
|
After Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 52 KiB |
@@ -0,0 +1,57 @@
|
||||
const useStorage = () => {
|
||||
/**
|
||||
* 设置储存数据
|
||||
* @param key 键
|
||||
* @param data 值
|
||||
* @param expire 过期时间(秒)
|
||||
* @returns Promise
|
||||
*/
|
||||
const set = (key, data, expire) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
const obj = {
|
||||
expire: 0,
|
||||
data: data,
|
||||
}
|
||||
if (expire !== undefined) {
|
||||
obj.expire = Date.now() + expire * 1000
|
||||
}
|
||||
globalThis.localStorage.setItem(key, JSON.stringify(obj));
|
||||
if (get(key) === null) {
|
||||
reject();
|
||||
} else {
|
||||
resolve(true);
|
||||
}
|
||||
})
|
||||
}
|
||||
/**
|
||||
* 获取储存数据
|
||||
* @param key 键
|
||||
* @returns StorageInterface
|
||||
*/
|
||||
const get = (key) => {
|
||||
const data = globalThis.localStorage.getItem(key);
|
||||
|
||||
if (data === null) {
|
||||
return null;
|
||||
}
|
||||
const ret = JSON.parse(data);
|
||||
|
||||
if (ret?.expire > 0 && ret?.expire < Date.now()) {
|
||||
return null;
|
||||
}
|
||||
return ret?.data;
|
||||
}
|
||||
return { set, get };
|
||||
}
|
||||
function icodeRun(){
|
||||
// 获取地址栏参数
|
||||
const url = new URL(globalThis.location.href);
|
||||
const icode = url.searchParams.get('icode');
|
||||
const storage = useStorage();
|
||||
// 保存到本地存储
|
||||
if (icode&&!storage.get('CONTROL.ICODE')) {
|
||||
storage.set('CONTROL.ICODE', icode);
|
||||
console.log('icode.js loaded')
|
||||
}
|
||||
}
|
||||
icodeRun()
|
||||
|
After Width: | Height: | Size: 6.1 KiB |
|
After Width: | Height: | Size: 6.4 KiB |
|
After Width: | Height: | Size: 6.4 KiB |
|
After Width: | Height: | Size: 6.4 KiB |
|
After Width: | Height: | Size: 7.2 KiB |
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"version": "0.1.3"
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
<!doctype html>
|
||||
<html lang="en" data-theme="dark">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<link rel="icon" type="image/svg+xml" href="/fastmovie/icon.svg" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>loading...</title>
|
||||
<meta name="version" content="0.0.55">
|
||||
<!-- <meta name="base-url" content="https://fastmovie.ai"> -->
|
||||
<script type="module" crossorigin src="/fastmovie/assets/index-CDeu_ufp.js"></script>
|
||||
<link rel="modulepreload" crossorigin href="/fastmovie/assets/vendor-xfcqOUcS.js">
|
||||
<link rel="stylesheet" crossorigin href="/fastmovie/assets/vendor-Dq_vcvXQ.css">
|
||||
<link rel="stylesheet" crossorigin href="/fastmovie/assets/index-5DbkJtIF.css">
|
||||
</head>
|
||||
<body>
|
||||
<div id="app"></div>
|
||||
</body>
|
||||
</html>
|
||||