better-staridc-MNBT
1<?php
2if(!defined('IN_CRONLITE'))exit();
3
4function database_backup_list_data($response) {
5 if (!is_array($response)) return [];
6 return isset($response['data']) && is_array($response['data']) ? $response['data'] : [];
7}
8
9function database_backup_find_item($backups, $filename) {
10 $filename = trim(str_replace('\\', '/', (string)$filename));
11 if ($filename === '') return null;
12 $basename = basename($filename);
13 foreach ($backups as $item) {
14 if (!is_array($item) || empty($item['filename'])) continue;
15 $itemFilename = trim(str_replace('\\', '/', (string)$item['filename']));
16 if ($itemFilename === $filename || basename($itemFilename) === $basename) {
17 return $item;
18 }
19 }
20 return null;
21}
22
23function database_backup_split_file($filename) {
24 $filename = trim(str_replace('\\', '/', (string)$filename));
25 $name = basename($filename);
26 $path = substr($filename, 0, max(0, strlen($filename) - strlen($name)));
27 return [$path, $name];
28}
29
30function database_backup_extract_download_token($response) {
31 if (!is_array($response)) return '';
32 if (isset($response['token']) && is_scalar($response['token'])) return trim((string)$response['token']);
33 foreach (['msg', 'data'] as $key) {
34 if (isset($response[$key]) && is_array($response[$key])) {
35 $token = database_backup_extract_download_token($response[$key]);
36 if ($token !== '') return $token;
37 }
38 }
39 return '';
40}
41
42function database_backup_build_download_url($panelUrl, $token) {
43 return rtrim((string)$panelUrl, '/') . '/down/' . ltrim((string)$token, '/');
44}