Skip to content

Commit

Permalink
1.0.1
Browse files Browse the repository at this point in the history
  • Loading branch information
VirtualHotBar committed May 15, 2024
1 parent 4d8d8c5 commit f97f45d
Show file tree
Hide file tree
Showing 13 changed files with 68 additions and 39 deletions.
6 changes: 5 additions & 1 deletion .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,12 @@ jobs:
node-version: lts/*

- name: get version
run: echo "PACKAGE_VERSION=$(node -p "require('./package.json').version")" >> $GITHUB_ENV
run: |
PACKAGE_VERSION=$(node -p "require('./package.json').version")
sed -i "s/^version = \".*\"/version = \"$PACKAGE_VERSION\"/" src-tauri/Cargo.toml
echo "PACKAGE_VERSION=$PACKAGE_VERSION" >> $GITHUB_ENV
- name: create release
id: create-release
uses: actions/github-script@v7
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "netmount-gui",
"private": true,
"version": "1.0.0beta",
"version": "1.0.1",
"type": "module",
"scripts": {
"dev": "vite",
Expand Down
2 changes: 1 addition & 1 deletion src/page/setting/setting.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ export default function Setting_page() {
{/* {t('technology_stack')}:Tauri,TypeScript,Vite,React,Arco Design,Rust
<br /> */}
Copyright © 2024-Present
<Link onClick={() => { openUrlInBrowser(roConfig.url.docs ) }}>VirtualHotBar </Link>
<Link onClick={() => { openUrlInBrowser(roConfig.url.vhbBlog ) }}>VirtualHotBar </Link>
</Col>
<Col flex={'10rem'} style={{ textAlign: 'right' }}>
<Link onClick={() => { openUrlInBrowser(roConfig.url.website) }}> NetMount </Link>
Expand Down
12 changes: 6 additions & 6 deletions src/page/transmit/transmit.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ function Transmit_page() {
}, [])

return (
<div style={{margin:'0'}}>
<div style={{ margin: '0' }}>
<Card style={{}}
title={t('overview')}
bordered={false}
Expand All @@ -37,7 +37,7 @@ function Transmit_page() {
{rcloneInfo.stats.bytes > 0 && <Progress percent={~~(rcloneInfo.stats.bytes / rcloneInfo.stats.totalBytes * 100)} />}
<Descriptions colon=' :' data={[
{
label:t('speed'),
label: t('speed'),
value: `${formatSize(rcloneInfo.stats.realSpeed!)}/s`
},

Expand All @@ -48,7 +48,7 @@ function Transmit_page() {

...(rcloneInfo.stats.transferTime > 0 ? [
{
label:t('used_time'),
label: t('used_time'),
value: formatETA(rcloneInfo.stats.transferTime)
}
] : []),
Expand Down Expand Up @@ -77,7 +77,7 @@ function Transmit_page() {
bordered={false}
>

<List noDataElement={ <NoData_module />}>
<List noDataElement={<NoData_module />}>
{
transmitList.map((item, index) => {
return <List.Item key={index}>
Expand All @@ -102,7 +102,7 @@ function Transmit_page() {
},
{
label: t('source'),
value: item.srcFs.replace(alistInfo.markInRclone+':','')
value: (item.srcFs || '').replace(alistInfo.markInRclone + ':', '')
},
{
label: t('speed_avg'),
Expand All @@ -117,7 +117,7 @@ function Transmit_page() {
...(item.dstFs ? [
{
label: t('target'),
value: item.dstFs.replace(alistInfo.markInRclone+':','')
value: (item.dstFs || '').replace(alistInfo.markInRclone + ':', '')
}
] : []),
]} />
Expand Down
4 changes: 2 additions & 2 deletions src/services/alist.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ let alistInfo: AlistInfo = {
url: '',
isLocal: true,
auth: {
user: 'admin',
password: randomString(16) ,//process.env.NODE_ENV === 'development' ? 'admin' : randomString(32),!!!!!密码长度为32时rclone会报错
//user: 'admin',
//password: randomString(16) ,//process.env.NODE_ENV === 'development' ? 'admin' : randomString(32),!!!!!密码长度为32时rclone会报错
token: ''
}
},
Expand Down
11 changes: 11 additions & 0 deletions src/services/config.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { invoke } from "@tauri-apps/api"
import { NMConfig, OSInfo } from "../type/config"
import { randomString } from "../utils/utils"

const roConfig = {
url: {
Expand Down Expand Up @@ -65,6 +66,16 @@ let nmConfig: NMConfig = {
themeMode: roConfig.options.setting.themeMode.select[roConfig.options.setting.themeMode.defIndex],
startHide: false,
},
framework:{
rclone:{
user: process.env.NODE_ENV != 'development'?randomString(32):'',
password: process.env.NODE_ENV != 'development'?randomString(128):'',
},
alist:{
user: 'admin',
password: randomString(16) ,//process.env.NODE_ENV === 'development' ? 'admin' : randomString(32),!!!!!密码长度为32时rclone会报错
}
}
}

const setNmConfig = (config: NMConfig) => {
Expand Down
4 changes: 2 additions & 2 deletions src/type/alist/alistInfo.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ interface AlistInfo {
url: string,
isLocal: true,
auth: {
user: string;
password: string;
//user: string;
//password: string;
token: string;
};
};
Expand Down
22 changes: 16 additions & 6 deletions src/type/config.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,20 @@ interface NMConfig {
},
settings: {
themeMode: 'dark' | 'light' | 'auto' | string,
startHide:boolean,
language?:string
startHide: boolean,
language?: string
},
notice?:Notice
notice?: Notice,
framework: {
rclone: {
user: string,
password: string,
},
alist: {
user: string,
password: string,
}
}
}


Expand All @@ -28,7 +38,7 @@ interface MountListItem {

interface TaskListItem {
name: string,
taskType: 'copy' | 'move' | 'delete' | 'sync' |'bisync'| string,
taskType: 'copy' | 'move' | 'delete' | 'sync' | 'bisync' | string,
source: {
storageName: string,
path: string,
Expand All @@ -41,7 +51,7 @@ interface TaskListItem {
enable: boolean
run: {
runId?: number,//任务id,setTimeout或setInterval的返回值
mode: 'time' | 'interval' | 'start' |'disposable'| string,//start:软件启动时执行,time:定时执行,interval:间隔执行 , disposable:一次性执行(执行后删除任务)
mode: 'time' | 'interval' | 'start' | 'disposable' | string,//start:软件启动时执行,time:定时执行,interval:间隔执行 , disposable:一次性执行(执行后删除任务)
time: {
intervalDays: number,//间隔天数
h: number,//小时
Expand All @@ -51,7 +61,7 @@ interface TaskListItem {
interval?: number,//周期执行,单位ms
},
runInfo: {
error?:boolean
error?: boolean
msg?: string,
}
}
Expand Down
4 changes: 2 additions & 2 deletions src/type/rclone/rcloneInfo.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ interface RcloneInfo {
url: string,
isLocal: boolean,// 是否为本地地址
auth: {
user: string,
pass: string,
//user: string,
//pass: string,
},
localhost: {
port: number,
Expand Down
5 changes: 3 additions & 2 deletions src/utils/alist/alist.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import { addParams, alistDataDir } from "./process"
import { alistInfo } from "../../services/alist"
import { createStorage } from "../../controller/storage/create"
import { delStorage } from "../../controller/storage/storage"
import { nmConfig } from "../../services/config"



Expand All @@ -30,8 +31,8 @@ async function addAlistInRclone(){
await createStorage(alistInfo.markInRclone,'webdav',{
'url':alistInfo.endpoint.url+'/dav',
'vendor':'other',
'user':alistInfo.endpoint.auth.user,
'pass':alistInfo.endpoint.auth.password,
'user':nmConfig.framework.alist.user,
'pass':nmConfig.framework.alist.password,
})
}

Expand Down
4 changes: 2 additions & 2 deletions src/utils/alist/process.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { rcloneInfo } from "../../services/rclone";
import { formatPath, randomString } from "../utils";
import { alistInfo } from "../../services/alist";
import { homeDir } from "@tauri-apps/api/path";
import { osInfo, roConfig } from "../../services/config";
import { nmConfig, osInfo, roConfig } from "../../services/config";
import { getAlistToken, modifyAlistConfig, setAlistPass } from "./alist";
import { alist_api_ping } from "./request";

Expand All @@ -22,7 +22,7 @@ const addParams = (): string[] => {

async function startAlist() {
alistInfo.endpoint.url='http://localhost:'+(alistInfo.alistConfig.scheme?.http_port||5573)
await setAlistPass(alistInfo.endpoint.auth.password)
await setAlistPass(nmConfig.framework.alist.password)

alistInfo.endpoint.auth.token = await getAlistToken()
await modifyAlistConfig()
Expand Down
26 changes: 14 additions & 12 deletions src/utils/rclone/process.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,34 +5,36 @@ import { rclone_api_noop, rclone_api_post } from "./request";
import { formatPath, randomString } from "../utils";
import { alistInfo } from "../../services/alist";
import { delStorage } from "../../controller/storage/storage";
import { osInfo, roConfig } from "../../services/config";
import { nmConfig, osInfo, roConfig } from "../../services/config";

const rcloneDataDir = () => {
return formatPath(roConfig.env.path.homeDir + '/.netmount/',osInfo.osType==='Windows_NT')
return formatPath(roConfig.env.path.homeDir + '/.netmount/', osInfo.osType === 'Windows_NT')
}

async function startRclone() {
if (rcloneInfo.process.child) {
await stopRclone()
}

if (process.env.NODE_ENV != 'development') {
rcloneInfo.endpoint.auth.user = randomString(32)
rcloneInfo.endpoint.auth.pass = randomString(128)
}
/* if (process.env.NODE_ENV != 'development') {
rcloneInfo.endpoint.auth.user = randomString(32)
rcloneInfo.endpoint.auth.pass = randomString(128)
} */

rcloneInfo.endpoint.url = 'http://localhost:' + rcloneInfo.endpoint.localhost.port.toString()

let args: string[] = [
'rcd',
`--rc-addr=:${rcloneInfo.endpoint.localhost.port.toString()}`,
`--rc-user=${rcloneInfo.endpoint.auth.user}`,
`--rc-pass=${rcloneInfo.endpoint.auth.pass}`,
'--rc-allow-origin='+window.location.origin||'*',
'--config='+rcloneDataDir()+'/rclone.conf',
/*`--rc-user=${rcloneInfo.endpoint.auth.user}`,
`--rc-pass=${rcloneInfo.endpoint.auth.pass}`, */
`--rc-user=${nmConfig.framework.rclone.user}`,
`--rc-pass=${nmConfig.framework.rclone.password}`,
'--rc-allow-origin=' + window.location.origin || '*',
'--config=' + rcloneDataDir() + '/rclone.conf',
];

if (rcloneInfo.endpoint.auth.user === '') {
if (nmConfig.framework.rclone.user === '') {
args.push('--rc-no-auth')
}

Expand Down Expand Up @@ -71,4 +73,4 @@ async function restartRclone() {
await startRclone();
}

export { startRclone, stopRclone,restartRclone }
export { startRclone, stopRclone, restartRclone }
5 changes: 3 additions & 2 deletions src/utils/rclone/request.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
import { Message } from "@arco-design/web-react";
import { rcloneInfo } from "../../services/rclone";
import { nmConfig } from "../../services/config";

let rcloneApiHeaders = {
Authorization: `Basic ${btoa(`${rcloneInfo.endpoint.auth.user}:${rcloneInfo.endpoint.auth.pass}`)}`,
Authorization: `Basic ${btoa(`${nmConfig.framework.rclone.user}:${nmConfig.framework.rclone.password}`)}`,
'Content-Type': 'application/json'
};

Expand All @@ -17,7 +18,7 @@ async function rclone_api_noop(): Promise<boolean> {

function rclone_api_post(path: string, bodyData: object = {}, ignoreError?: boolean) {
// 以 base64 编码的方式来设置账密字符串
const base64Credentials = btoa(`${rcloneInfo.endpoint.auth.user}:${rcloneInfo.endpoint.auth.pass}`);
const base64Credentials = btoa(`${nmConfig.framework.rclone.user}:${nmConfig.framework.rclone.password}`);

// 定义请求头部,包括授权头部
rcloneApiHeaders = {
Expand Down

0 comments on commit f97f45d

Please sign in to comment.