Skip to content

Commit

Permalink
更新v1.8.1升级日志,新增用户界面、游戏同步功能及数据导入导出功能,优化游戏库界面及搜索功能,修复多个bug
Browse files Browse the repository at this point in the history
GoldenPotato137 committed Jan 2, 2025

Verified

This commit was signed with the committer’s verified signature.
bshephar Brendan Shephard
1 parent fb81b46 commit 3fe3201
Showing 6 changed files with 204 additions and 59 deletions.
97 changes: 41 additions & 56 deletions upgrade-log/v1.8.1.md
Original file line number Diff line number Diff line change
@@ -3,59 +3,44 @@ order: 996
---
# v1.8.1

## ✨新增功能
### 增加用户系统
* 增加用户系统,现在可以注册、登录、登出PotatoVN账号了!
* 允许使用bangumi账号登录与注册PotatoVN账号
* 现在可以上传头像了!
* 游戏游玩记录与PotatoVN账号关联并同步
* 显示云存储空间使用情况

### 增加信息系统与开发者模式
* 增加新信息通知界面
* 游戏搜刮进度实时显示
* 游戏搜刮结果显示
* 开发者Log信息显示

### 支持rar文件解压

### 混合数据源自定义混合方法
* 对于不同数据类型允许指定数据源的优先级

### 游戏启动参数支持
* 支持启动参数启动游戏
* 一键使用LocaleEmulator转区启动游戏

### 数据导入和导出

### 游戏位置转移功能

## 🛠️功能优化
### 优化游戏库界面显示

* To be done

### Tag功能优化
* 点击tag快速跳转
* 自定义tag

### 第三方账号登录逻辑优化
* 使用OAuth2登录Bangumi
* VNDB登录界面优化
* VNDB数据同步逻辑优化

### 搜索功能补全
* 新增游戏库搜索
* 新增游戏分类搜索
* 罗马化日语搜索

### 优化游戏游戏扫描与添加逻辑
* 重写游戏添加逻辑
* 优化游戏扫描逻辑

### 完善压缩文件解压功能

### 优化软件关闭时游戏数据保存逻辑

## 🛠️修复大量bug

## ✨用户界面 & 游戏同步
* 增加独立的用户界面,专门用来管理账号设置,目前有PotatoVN、Bangumi、VNDB账号可用
* 使用bangumi账号或账户密码登录与注册 PotatoVN账号
* 免费的游戏同步功能,或自建同步服务器,点击[这里](/usage/how-to-use/sync-games.md)查看具体内容,支持同步游戏列表与游玩状态。计划未来更新中添加备份与下载游戏本体与存档的功能

## ✨更好的游戏搜刮
* 新增信息源:[月幕Galgame](https://www.ymgal.games/)
* 新增混合搜刮器搜刮优先级自定义功能:可以自定义混合搜刮器在搜刮信息时不同条目从各个信息源获取内容的优先级(如默认设置中,游戏封面图的优先级为:VNDB->Bangumi->YmGal,默认游戏简介优先级为:Bangumi->VNDB->YmGal)。
* 混合搜刮器优先级自定义功能在设置->信息源里设置~

## ✨游戏启动参数支持 & 一键转区运行
* 支持设置游戏的启动参数
* 新增一键使用LocaleEmulator转区启动游戏的功能 ヾ(≧▽≦*)o
* 在使用一键转区前,需要在设置->游戏内设置LocalEmulator路径

## ✨数据导入和导出
* 新增PotatoVN数据导入与导出功能🎉
* 可以在设置->其他设置内导入与导出游戏,导出的数据为一个名为`PotatoVN_年-月-日.pvnExport.zip`的压缩包,放在任意地方储存即可~

## ✨便捷性更新
* 支持rar文件解压
* 新增游戏详情界面点击tag快速跳转显示所有具有该tag的游戏,并且现在支持自定义tag啦~
* 新增游戏库搜索、游戏分类搜索并支持罗马化日语搜索
* 重写游戏添加逻辑并优化游戏扫描逻辑
* 优化软件关闭时游戏数据保存逻辑

## 🌈增加状态通知界面
* 新增了PotatoVN状态界面,用来实时显示PotatoVN的后台任务(如搜刮游戏、记录游玩时间)等,以及显示PotatoVN的提示、报错等信息。
* 常见的后台任务实时显示有:游戏搜刮进度实时显示、PotatoVN同步状态显示、游玩时长记录任务提示等
* 常见的信息提示有:游戏搜刮结果显示、开发者Log信息显示、报错信息显示

## 🌈新增主页
* 新增了主页!里面可以混合显示你需要的信息,从最近游玩的游戏,某个游戏库内的游戏、某个分类内的游戏......
* 可以任意设置要显示的内容,排序等

## 🌈全新的游戏库界面
* 完全重构了游戏库界面,现在的游戏库是具有目录结构的!比如说添加了`E:\Galgame``E:\Galgame\纯爱\AsaProject`两个文件夹,其会自动组成`E:\Galgame`包含`E:\Galgame\纯爱\AsaProject`的目录关系,并且这个目录关系会随着游戏库的添加/删除自动更新~
* 现在可以很方便地在PotatoVN内一个一个文件夹步入并显示某个文件夹内地游戏啦
* 可以给每个文件夹设置封面,支持完全自定义🎉

## 🛠️修复大量bug
14 changes: 14 additions & 0 deletions usage/advance/data-exchange.md
Original file line number Diff line number Diff line change
@@ -25,6 +25,20 @@ PotatoVN 会在你的设备上存储一些数据,这些数据包括以下几
> 注:.PotatoVN备份文件是每个游戏单独记录的,位于游戏根目录下的 `.PotatoVN`
> 文件夹中(如果没有关闭设置中的游戏备份功能),并不包含完整的游戏列表。但游戏列表可以通过库的扫描功能重新生成。
## 导入&导出

设置界面->其他设置->导出数据 or 导入数据

导出的数据是一个zip压缩包,命名为:`PotatoVN_年-月-日.pvnExport.zip`,你可以随便重命名导出文件,但一定要确保文件符合以下格式:`xxxx.pvnExport.zip`,以确保PotatoVN在导入数据时能正确识别。

导入数据时,PotatoVN会备份导入前的配置,在导入数据失败时重新加载旧的配置。

:::tip

为了数据安全,推荐您在导入数据前手动导出一下现有数据(除非现有数据不重要,比如说在新电脑上导入旧数据),以防因各种原因导入失败且恢复失效时造成的数据丢失。

:::

## 手动复制粘贴数据文件夹

::: danger
114 changes: 114 additions & 0 deletions usage/advance/deploy-server.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
---
order: 3
---
# 部署自定义同步服务器

PotatoVN 同步服务器是一个用于帮助PotatoVN跨电脑同步/备份数据的服务器,它提供了一个RESTful API用于客户端与服务器之间的通信。

它能同步什么:[请参考potatovn wiki](/usage/advance/data-exchange)

:::tip

手动部署服务器需要具有一定的服务器使用经验。建议没有特殊需求的用户使用[官方服务器](/usage/how-to-use/sync-games)~

:::

## 前置要求

要部署自定义PoatoVN同步服务器,你需要有以下东西:

* **兼容AWS S3的内容分发服务**(用来存储同步的图片、未来可能添加的游戏存储功能等)(如[MinIO](https://min.io/)[Cloudflare R2](https://www.cloudflare.com/zh-cn/developer-platform/products/r2/)[腾讯云对象存储](https://cloud.tencent.com/product/cos)[七牛云](https://developer.qiniu.com/kodo/4086/aws-s3-compatible)等)(事实上基本上所有内容分发服务都兼容AWS S3 API)
* **一台7x24小时开机的电脑**(服务器)——先生,你也不希望忘记打开服务器而同步失败吧(bushi)
* **服务器要能够访问公网**(除非你在内网自建了内容分发服务器)

## 推荐部署方式:Docker (Compose)

1. 确保服务器上安装了docker
2. 在服务器任意位置创建一个文件夹,它将用来存放docker-compose.yml文件及数据库数据。**以下操作均在此文件夹内进行**
3. 下载docker-compose.yml文件:

```shell
curl -O https://raw.githubusercontent.com/GoldenPotato137/PotatoVN/refs/heads/dev/GalgameManager.Server/docker-compose.yml
```

> 国内服务器在访问github时可能会遇到网络问题,可以使用代理解决这个问题,或者直接下载docker-compose.yml文件到本地,然后上传到服务器。
3. 修改docker-compose.yml里必填内容,该文件内包含详细注释,按照注释填写即可。

```shell
nano docker-compose.yml
```

4. 新建一个 `data`文件夹,并修改其权限,其用于存放数据库数据。

```shell
mkdir data
sudo chown -R 1001:1001 ./data
```

5. 测试性启动服务

```shell
sudo docker-compose up
```

检查是否正常启动,尝试用potatovn客户端链接服务器。如果你没有修改docker-compose.yml文件中的端口,
那么potatovn中应该输入的服务器地址为 `http://你的服务器地址:8080` (如: http://192.168.114.114:8080)。

6. 如果一切正常,按 `Ctrl+C`停止服务,然后使用以下命令正式启动服务:

```shell
sudo docker-compose down
sudo docker-compose up -d
```

7. (可选)使用https保护你的服务器,自行使用任何你喜欢的反向代理工具代理服务即可,如Nginx、Caddy等。

以下为一个简单的使用Caddy的配置文件示例:

```plaintext
your.domain.name {
reverse_proxy localhost:8080
encode zstd gzip
}
```

## 二进制部署

> 请注意,二进制部署需要你自行安装并配置PostgreSQL数据库,以及设置环境变量。
该部分文档TODO

## 在测试环境中运行

初始化用户密钥:

```shell
dotnet user-secrets init
```

设置各类环境变量:

```shell
dotnet user-secrets set "Key" "Value"
```

应该设置的环境变量有(Key):

* `ConnectionStrings:DefaultConnection` 数据库连接字符串,**数据库必须是PostgreSQL**
* `AppSettings:JwtKey` JWT秘钥,**至少64位长**
* `AppSettings:Minio:EndPoint` 兼容AWS S3的OSS(对象存储)服务器地址与端口, 如: 114514.moe:1919
* `AppSettings:Minio:AccessKey` AWS S3 OSS用户识别码
* `AppSettings:Minio:SecretKey` AWS S3 OSS用户密钥

可以选填的环境变量有:

* `AppSettings:Minio:BucketName` AWS S3 OSS存储桶名称,默认为 `potatovn`,如果你创建的桶的名字不是 `potatovn`,你需要设置这个环境变量为你的桶的名字
* `AppSettings:Minio:UseSSL` 是否使用SSL,默认为 `false`,如果你的兼容AWS S3 OSS服务器配置了SSL,可以设置这个环境变量为 `true`
* `AppSettings:Bangumi:OAuth2Enable` 是否作为Bangumi OAuth2认证服务器,默认为 `false`
如果填写为 `true`则必须设置AppId和AppSecret
* `AppSettings:Bangumi:AppId` Bangumi第三方应用的AppId
* `AppSettings:Bangumi:AppSecret` Bangumi第三方应用的AppSecret
* `AppSettings:User:Default` 是否允许用户以用户名密码注册与登录,默认为 `true`
* `AppSettings:User:Bangumi` 是否允许用户使用Bangumi账号注册与登录,默认为 `false`
* `AppSettings:User:OssSize` OSS上每位用户的存储空间大小,单位为byte,默认为 `104857600`(100MB),此数值最大为2^63-1 (8388608TB)
Binary file added usage/how-to-use/images/sync-games/image.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
8 changes: 5 additions & 3 deletions usage/how-to-use/privacy-policy.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
---
order: 6
order: 7
---

# 隐私政策

我们十分尊重您的个人隐私,当您使用PotatoVN时,为了提高您的使用体验,应用会在您的设备上保存以下信息:

* bangumi 个人令牌
@@ -11,9 +11,11 @@ order: 6
这些信息仅存储于您的设备中,我们不会收集上述信息。

## 登录信息管理

当您使用PotatoVN并输入Bangumi个人令牌后,应用将在您使用Bangumi获取galgame信息时调用bangumi提供的开发者API并将个人令牌塞入HTTP请求头中。

个人令牌信息将存储于应用文件夹:`C:\Users\你的用户名\AppData\Local\Packages\某个随机字符串文件夹`中。

## 彻底清空个人信息
PotatoVN 管理的所有数据都存储于应用文件夹中,删除应用后系统将自动清除所有应用数据。

PotatoVN 管理的所有数据都存储于应用文件夹中,删除应用后系统将自动清除所有应用数据。
30 changes: 30 additions & 0 deletions usage/how-to-use/sync-games.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
---
order: 6
---
# 同步服务

PotatoVN 免费提供默认最大上传图片容量100MB(用来存储同步游戏封面,足够存储接近1000个游戏)的游戏同步功能。

希望能部署自己的同步服务器?[参考这里](/usage/advance/deploy-server.md)

:::tip
PotatoVN免费提供所有正常需求的容量,100MB的默认限制只是为了防止滥用。如果100MB容量对你来说不够用,欢迎邮件联系:[[email protected]](mailto:[email protected]),请在邮件中标注你的PotatoVN ID,goldenpotato137(开发者)会帮你扩到你需要的容量~
:::

:::info
虽然goldenpotato137非常希望能够确保服务器的正常运行,但由于各种各样可能的意外情况(~~没钱租服务器~~(短期内不太可能发生,已经续费到2027年了捏)、服务器被攻击、服务器被墙、人太多把服务器挤爆了等),服务有可能不可用。

强烈推荐[**定期手动导出数据**](/usage/advance/data-exchange.md#导入-导出),保护数据安全
:::

PotatoVN同步服务器可以同步包括游戏列表、游玩记录等内容,请移步[此页](/usage/advance/data-exchange.md)查看具体能同步的内容。

## 使用指北

要使用PotatoVN服务器,首先需要注册一个PotatoVN账号(如果你计划使用官方服务器,或[自行部署服务器](/usage/advance/deploy-server.md)

打开账户界面,点击登录按钮,**推荐使用bangumi账户来登录或注册**,或输入账户密码来登录或注册:

![](./images/sync-games/image.png)

完成登录后,打开游戏同步的开关即可同步游戏、游玩数据等信息。

0 comments on commit 3fe3201

Please sign in to comment.