Browse Source

1.1.1

pull/218/head
xiaoz 6 days ago
parent
commit
b12931af2b
  1. 76
      class/Api.php
  2. 16
      data/update.log
  3. 2
      functions/helper.php
  4. 11
      templates/admin/setting/api.php
  5. 1
      templates/admin/setting/subscribe.php
  6. 10
      templates/admin/static/embed.js
  7. 2
      templates/default2/assets/index.css
  8. 74
      templates/default2/assets/index.js
  9. 4
      templates/default2/info.json
  10. 1
      templates/index.html
  11. 2
      version.txt

76
class/Api.php

@ -1,16 +1,27 @@ @@ -1,16 +1,27 @@
<?php
/**
* name:API核心类
* update:2024/01
* update:2025/03
* author:xiaoz<xiaoz93@outlook.com>
* blog:xiaoz.me
*/
//载入通用函数
require("./functions/helper.php");
define("API_URL","https://onenav.xiaoz.top");
class Api {
protected $db;
public function __construct($db){
// 设置API地址(xiaoz)
$api_url = base64_decode("aHR0cHM6Ly9vbmVuYXYueGlhb3oudG9w");
// 获取API服务器状态码,超时时间为2s
$http_code = $this->GetHeadCode($api_url,2);
// 如果状态码为0、301、302均视为失败
if( $http_code === 0 || $http_code === 301 || $http_code === 302 ) {
// 失败了则设置备用API地址(rss)
$api_url = base64_decode("aHR0cHM6Ly9vbmVuYXYucnNzLmluaw==");
}
// $api_url = base64_decode("aHR0cHM6Ly9vbmVuYXYucnNzLmluaw==");
// 设置常量
define("API_URL",$api_url);
// 修改默认获取模式为关联数组
$db->pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
$this->db = $db;
@ -2850,6 +2861,11 @@ class Api { @@ -2850,6 +2861,11 @@ class Api {
$url = $api->url;
$key = $api->sk;
$model = $api->model;
// 如果model = custom,则使用自定义模型
if( $model === 'custom' ) {
$model = $api->custom_model;
}
while (ob_get_level()) {
ob_end_flush();
@ -3037,6 +3053,62 @@ class Api { @@ -3037,6 +3053,62 @@ class Api {
$this->return_json(200,$result,'success');
}
/**
* name:后端检查验证授权
*/
public function forward_order(){
//验证token是否合法
$this->auth($token);
// 声明一个空数组,作为请求体
$data = [];
if (!empty($_GET)) {
// 使用 http_build_query() 函数生成查询字符串
$query_string = http_build_query($_GET);
// 向https://onenav.xiaoz.top/v1/check_subscribe.php 发起GET请求,然后返回内容
// 拼接完整的 URL
$target_url = API_URL . '/v1/check_subscribe.php?' . $query_string;
echo curl_get($target_url);
} else {
// 返回错误
$this->return_json(-2000,'','参数不能为空!');
}
}
/**
* name:封装header方法
*/
private function GetHeadCode($url, $timeout = 5) {
$ch = curl_init($url);
// 设置请求方法为 HEAD
curl_setopt($ch, CURLOPT_NOBODY, true);
// 设置超时时间
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
// 设置连接超时时间
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
// 忽略 SSL 证书校验
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
// 执行请求
$result = curl_exec($ch);
// 获取 HTTP 状态码
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
// 获取错误信息
$error = curl_error($ch);
// 关闭 curl 资源
curl_close($ch);
return $httpCode;
}
}

16
data/update.log

@ -1,3 +1,19 @@ @@ -1,3 +1,19 @@
2025.03.06
1. 去除default2主题点击输入框自动清空关键词
2. 去除default2主题点击搜索按钮自动清空关键词
3. 修复default2主题,添加分类时权重验证错误问题
4. 新增forward_order函数,用于转发订单的API请求
5. 前端保存订单改用后端请求
6. 新增了备用云端服务器,避免某些用户请求失败
7. AI检索支持自定义模型
8. API域名改为前端获取,判断更准确
2024.12.25
1. 优化unSafe函数,以免PHP 8.x版本直接出现报错
2. 修复default2主题,自定义链接图标无法显示问题
3. 去掉default2主题搜索框回车键触发搜索,避免误触
4. 修复default2主题,因为备用链接引起无法编辑的问题
2024.12.23
1. 优化禁止二级目录安装检测

2
functions/helper.php

@ -231,7 +231,7 @@ function check_all_cat(){ @@ -231,7 +231,7 @@ function check_all_cat(){
* name:检查是否存在明文密码参数,如果存在,则提示重新初始化
*/
function unSafe() {
$password = PASSWORD;
$password = @PASSWORD;
if( isset($password) && $password !== 'PASSWORD' ) {
exit("由于安全升级,请删除站点目录下的 data/config.php 文件后,重新完成初始化,此操作不会影响数据!");

11
templates/admin/setting/api.php

@ -25,7 +25,7 @@ @@ -25,7 +25,7 @@
<div class="layui-form-item">
<label class="layui-form-label" style = "width:130px;">API域名</label>
<div class="layui-input-inline">
<input style = "width:400px;" type="text" readonly="readonly" id="api_domain" name="api_domain" value = "<?php echo getCurrentUrlDomain(); ?>" autocomplete="off" placeholder="OneNav API域名" class="layui-input">
<input style = "width:400px;" type="text" readonly="readonly" id="api_domain" name="api_domain" autocomplete="off" placeholder="OneNav API域名" class="layui-input">
</div>
</div>
@ -58,3 +58,12 @@ @@ -58,3 +58,12 @@
</div>
<?php include_once(dirname(__DIR__).'/footer.php'); ?>
<script>
function get_api_domain(){
var api_domain = window.location.origin;
$("#api_domain").val(api_domain);
}
get_api_domain();
</script>

1
templates/admin/setting/subscribe.php

@ -21,6 +21,7 @@ @@ -21,6 +21,7 @@
<div class="setting-msg">
<p>1. 系统检测到您的域名为<strong style="color:#31BDEC;"><code><?php echo get_host(); ?></code></strong>,购买订阅时请填写此域名!</p>
<p>2. 若域名填写错误或更换域名,请前往 <a title = "修改OneNav订阅域名" href="https://dwz.ovh/p6u2w" target="_blank">https://dwz.ovh/p6u2w</a> 修改订阅!</p>
<p>3. 如果遇到问题无法解决,可联系售后微信:<code>xiaozme</code>(仅限订阅用户)</p>
<!-- <p>3. Docker用户或IP访问的用户,请参考<a href="https://dwz.ovh/cve3d" target="_blank">没有域名购买订阅</a></p> -->
</div>
</div>

10
templates/admin/static/embed.js

@ -593,8 +593,7 @@ layui.use(['element','table','layer','form','upload','iconHhysFa'], function(){ @@ -593,8 +593,7 @@ layui.use(['element','table','layer','form','upload','iconHhysFa'], function(){
form.on('submit(set_subscribe)', function(data){
var order_id = data.field.order_id;
var index = layer.load(1);
$.get('https://onenav.xiaoz.top/v1/check_subscribe.php',data.field,function(data,status){
$.get('index.php?c=api&method=forward_order',data.field,function(data,status){
if(data.code == 200) {
//order_id = data.data.order_id;
email = data.data.email;
@ -619,8 +618,13 @@ layui.use(['element','table','layer','form','upload','iconHhysFa'], function(){ @@ -619,8 +618,13 @@ layui.use(['element','table','layer','form','upload','iconHhysFa'], function(){
layer.msg(data.msg, {icon: 5});
}
})
.error(function(xhr,status,error){
// 关闭加载
layer.closeAll('loading');
layer.msg("请求失败,请检查服务器网络或联系售后!",{icon:5});
});
console.log(data.field) //当前容器的全部表单字段,名值对形式:{name: value}
// console.log(data.field) //当前容器的全部表单字段,名值对形式:{name: value}
return false; //阻止表单跳转。如果需要表单跳转,去掉这段即可。
});
//清空订阅信息

2
templates/default2/assets/index.css

File diff suppressed because one or more lines are too long

74
templates/default2/assets/index.js

File diff suppressed because one or more lines are too long

4
templates/default2/info.json

@ -3,8 +3,8 @@ @@ -3,8 +3,8 @@
"description": "OneNav目前功能最强大的默认主题,推荐使用。",
"homepage": "https:\/\/blog.xiaoz.org",
"help_url":"https://dwz.ovh/gnae4",
"version": "1.2.4",
"update": "2024\/12\/23",
"version": "1.2.6",
"update": "2025\/03\/06",
"author": "xiaoz<xiaoz93@outlook.com>",
"screenshot": "https://v.png.pub/imgs/2024/11/27/c01894e5d9e0d850.png",
"demo":"https://nav.rss.ink",

1
templates/index.html

@ -1 +0,0 @@ @@ -1 +0,0 @@

2
version.txt

@ -1 +1 @@ @@ -1 +1 @@
v1.1.0-20241220
v1.1.1-20250306
Loading…
Cancel
Save