Skip to content

Commit

Permalink
#155 十二月累积更新
Browse files Browse the repository at this point in the history
✨ Electron/Android/iOS:新增局域网服务扫描功能,仅支持支持的 bot 的默认端口扫描
✨ Android:安卓端支持完成
✨ Android/iOS:平板设备布局兼容优化
🐛 修正终端主题加载异常的问题 <- #151
🐛 修正窄布局标题边距异常的问题
🐛 Electron:修正窄布局侧边栏交互异常的问题 <- #152
🐛 iOS:修正移除消息的错误
🐛 修正 Bot 类型下拉列表在 Webkit 下显示错误的问题
💄 在最小宽度(500px)下隐藏了并不美观的好友列表,请展开使用
💄 iOS:优化设置面板样式
💄 iOS:修正图片查看器超出安全区的问题
♿️ 对自动焦点进行调整,只在 electron 下生效
♿️ iOS:隐藏键盘工具条
💚 调整 run scripts
  • Loading branch information
Stapxs authored Dec 19, 2024
2 parents b8515f3 + dd37e26 commit fc27138
Show file tree
Hide file tree
Showing 151 changed files with 6,794 additions and 5,657 deletions.
1 change: 1 addition & 0 deletions .envrc
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
export PYTHON_PATH=/Library/Frameworks/Python.framework/Versions/2.7/bin/python
export CAPACITOR_ANDROID_STUDIO_PATH='/Users/stapxs/Applications/Android Studio.app'
export ANDROID_HOME=~/Library/Android/sdk
73 changes: 46 additions & 27 deletions .eslintrc.cjs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
require('@rushstack/eslint-patch/modern-module-resolution')

module.exports = {
// 继承的规则配置
extends: [
'eslint:recommended',
'plugin:vue/vue3-recommended',
Expand All @@ -10,39 +11,57 @@ module.exports = {
'@vue/eslint-config-typescript/recommended',
],
rules: {
// 基础规则
'@typescript-eslint/no-explicit-any': 'off', // 忽略使用 any 类型的错误
'no-debugger': 'warn', // debugger
'no-console': 'warn', // console
'prefer-arrow-callback': 'warn', // 优先使用箭头函数
'quotes': ['warn', 'single'], // 引号
'max-len': ['warn', {
'code': 80,
'ignoreUrls': true,
'ignoreStrings': true,
'ignoreTemplateLiterals': true,
'ignoreRegExpLiterals': true,
}], // 单行长度
// Vue 相关规则
// === 基础规则 ===
// 忽略使用 any 类型的错误
'@typescript-eslint/no-explicit-any': 'off',
// debugger
'no-debugger': 'warn',
// console
'no-console': 'warn',
// 优先使用箭头函数
'prefer-arrow-callback': 'warn',
// 引号
'quotes': ['warn', 'single'],
// 三元表达式
'multiline-ternary': ['warn', 'never'],

// === Vue 相关规则 ===
// html 缩进
'vue/html-indent': ['warn', 4, {
'alignAttributesVertically': false
}],
// html 标签闭合
'vue/html-closing-bracket-spacing': ['warn', {
'startTag': 'never',
'endTag': 'never',
'selfClosingTag': 'always'
}], // html 标签闭合
}],
// 每行最大属性数
'vue/max-attributes-per-line': ['warn', {
'singleline': { 'max': 3 },
'multiline': { 'max': 3 }
}],
// 属性换行设置
'vue/first-attribute-linebreak': ['warn', {
'singleline': 'ignore',
'multiline': 'ignore'
}],
// html 标签换行
'vue/html-closing-bracket-newline': ['warn', {
'multiline': 'never'
}], // html 标签换行
'vue/max-attributes-per-line': ['warn', {
'singleline': 5
}], // html 属性换行
}],
// html 引号
'vue/html-quotes': [ 'warn',
'double',
{ 'avoidEscape': true }
], // html 引号
'vue/v-for-delimiter-style': ['error', 'in'], // v-for 分隔符
'vue/require-name-property': 'warn', // 组件 name 属性
'vue/prefer-true-attribute-shorthand': 'warn', // 属性简写
'vue/require-prop-types': 'off', // prop 类型
'vue/no-v-html': 'off', // v-html
],
// v-for 分隔符
'vue/v-for-delimiter-style': ['error', 'in'],
// 组件 name 属性
'vue/require-name-property': 'warn',
// 属性简写
'vue/prefer-true-attribute-shorthand': 'warn',
// prop 类型
'vue/require-prop-types': 'off',
// v-html
'vue/no-v-html': 'off',
},
}
9 changes: 2 additions & 7 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,6 @@
{
"[typescript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
"editor.defaultFormatter": "vscode.typescript-language-features"
},
"[javascript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[json]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
}
"java.configuration.updateBuildConfiguration": "automatic"
}
91 changes: 68 additions & 23 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,3 @@
简体中文
| [English](README_en-US.md)
<br><br><br>

<p align="center">
<a href="https://blog.stapxs.cn" target="blank">
<img src="src/renderer/public/img/icons/icon.svg" alt="Logo" width="156" height="156">
Expand All @@ -25,7 +21,13 @@

![view](README/view.png)

# 文档

- **简体中文(当前)**
- **[English](README_en-US.md)**

## ✨ 特性支持

- ✅ 使用 Vue.js 全家桶开发,快乐前后端分离
- 🎨 自适应布局,竖版也能使用
- 🖥️ 支持 PWA(都有 Electron 了(小声))
Expand All @@ -40,28 +42,35 @@
- 🛠 更多特性开发中

## ♿️ 快速使用

### > 运行服务

Stapxs QQ Lite 需要一个 QQ Bot 后端提供服务,你可以参考 [📖 这个文档](https://github.com/Stapxs/Stapxs-QQ-Lite-2.0/wiki/%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B) 布置它。

### > 访问网页

本仓库开启了 GitHub Pages, 所有向主分支提交的代码将会自动构建并发布。你可以直接访问 [🌎 这个页面](https://stapxs.github.io/Stapxs-QQ-Lite-2.0) 来使用已经构建并部署的页面。

### > 安装客户端

除了直接使用本仓库的构建页面,你也可以下载使用 electron 打包的功能**稍稍**更丰富的客户端版本,访问 [📦️ 这儿](https://github.com/Stapxs/Stapxs-QQ-Lite-2.0/releases) 查看版本发布列表。

当然你也可以使用包管理来安装它,使用包管理安装将会更便于更新 Stapxs QQ Lite 而不用每次都从 Github 上手动更新,访问 [💬 这儿](https://github.com/Stapxs/Stapxs-QQ-Lite-2.0/issues/99) 来查看目前支持的包管理。

### > 自行部署网页

Stapxs QQ Lite 在版本发布时构建了一份根目录下的 Web 文件,你可以在 [📦️ 这儿](https://github.com/Stapxs/Stapxs-QQ-Lite-2.0/releases) 找到它,它一般叫做```Stapxs.QQ.Lite-<版本>-web.zip```,将它解压放置到你的网页服务器中即可。

什么?不会部署网页服务器?Stapxs QQ Lite 网页版现在已经发布到了 [npm](https://www.npmjs.com/package/ssqq-web) 上!你可以使用 npx 工具快速启动它:
~~~bash

``` bash
npx ssqq-web hostname=127.0.0.1 port=8081
~~~
```

## 💬 提醒和问题

### > 关于不安全连接

- 当使用 https 页面连接 ws 服务(反之相同)的情况下,连接将会失败;这是由于其中某一者是不安全的。在这种情况下,你可以选择将 ws 提升为 wss 或者将 https 降级为 http(不安全)来解决问题,此处不提供解决方案。>> [Stapxs-QQ-Lite#32](https://github.com/Stapxs/Stapxs-QQ-Lite/issues/32)

### > 我能使用其他 QQ Http Bot 吗
Expand All @@ -78,54 +87,90 @@ npx ssqq-web hostname=127.0.0.1 port=8081
- 如果有什么奇奇怪怪的问题, 欢迎发起 [issue](<https://github.com/Stapxs/Stapxs-QQ-Lite/issues>) 询问! 如果有什么 BUG 和优化建议也可以哦!

## 📦️ 构建应用

为了规范对其他仓库的引用,Stapxs QQ Lite 2.0 仓库含有一些子模块,这意味着你需要在克隆仓库的时候包含子模块:
~~~bash

``` bash
git clone https://github.com/Stapxs/Stapxs-QQ-Lite-2.0 --recursive
~~~
```

如果你已经克隆了仓库,也可以使用这个来补全子模块:
~~~bash
git submodule update --init
~~~
### > 构建 Web 页面
Stapxs QQ Lite 2.0 是一个基于 Vue 的单页应用,这意味着如果你想自行部署到网页服务需要进行构建。当然你同样可以前往 [这儿](https://github.com/Stapxs/Stapxs-QQ-Lite-2.0/releases) 来下载预构建好的根目录文件包。

注意。在正式构建前,如果你的网站运作目录并不在根域名下,你需要修改(或增加)项目根目录下 `vue.config.js` 内导出的 `publicPath` 字段的值,它代表着最终你会运行在的目录,比如它在现在是 `/Stapxs-QQ-Lite-2.0/`;如果你本来就运行在根目录下,可以直接删去它。
``` bash
git submodule update --init
```

下面是构建 Vue 应用的命令,构建结果将最终输出在 `dist`
在开始构建之前请安装依赖,请确保安装了 `yarn`

``` bash
# 安装依赖
yarn

or

yarn install
```

### > 构建 Web 页面

Stapxs QQ Lite 2.0 是一个基于 Vue 的单页应用,这意味着如果你想自行部署到网页服务需要进行构建。当然你同样可以前往 [这儿](https://github.com/Stapxs/Stapxs-QQ-Lite-2.0/releases) 来下载预构建好的根目录文件包。

下面是构建该项目的命令,构建结果将最终输出在 `dist` 目录下:

``` bash
# 运行本地调试
yarn serve
yarn dev

# 代码检查和自动格式化
yarn lint

# 构建应用
yarn build
```

### > 构建 Electron 客户端

`2.3.0` 版本后,Stapxs QQ Lite 2.0 支持构建为 Electron 应用并补充部分平台特性的功能,你也可以自行构建。

下面是构建 Electron 应用的命令,构建结果将最终输出在 `dist_electron/out`
下面是构建 Electron 应用的命令,构建结果将最终输出在 `dist_electron/out` 目录下

``` bash
# electron 运行本地调试
yarn electron:serve
yarn dev:electron

# electron 构建应用
yarn electron:build
yarn build:win
```
你可以补充平台选项来指定构建某个平台:

```bash
yarn electron:build --linux
```
其他平台构建查看[命令列表](#-命令列表)

### > 命令列表

**命令格式为`yarn <命令>`,其中`<命令>`为列表中的一个:**

| 命令 | 描述 |
| ------------- | ------------------ |
| install | 安装依赖 |
| lint | 代码检查和自动格式化 |
| dev | 网页调试 |
| dev:electron | Electron 调试 |
| dev:ios | Ios 调试 |
| dev:android | 安卓调试 |
| build | 网页构建 |
| build:win | 构建 Windows 应用 |
| build:mac | 构建 Mac Os 应用 |
| build:linux | 构建 Liunx 应用 |
| build:ios | 构建 Ios 应用 |
| build:android | 构建 Andorid 应用 |

### > Github Actions

*为什么会有人对自动构建感兴趣,总之自动构建脚本我写了好久。感兴趣就自己去看好了(无端)。*

![auto-build](README/auto-build.png)

## 🎉 鸣谢

感谢这些小伙伴们在开发和文本中提供的支持 ——

<a href="https://github.com/Logic-Accepted"><img src="https://avatars.githubusercontent.com/u/36406453?s=48&v=4"></a>
Expand Down
Loading

0 comments on commit fc27138

Please sign in to comment.