Restructure docs for zh locale, update theme and logo

- Move all MDX content to zh/ directory for i18n
- Switch navigation from tabs to languages pattern with zh as default
- Change theme to mint with primary color #64ffda
- Update logo SVGs to include "AutoLibrary" text

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
KenanZhuandClaude Opus 4.7 committed 2026-05-22 12:45:07 +08:00
1 parent ac30997ffc
commit edfe249f8b
14 files changed
+60 -53

No files matched your search

+206
View File
@@ -0,0 +1,206 @@
---
title: "通过文件配置"
description: "AutoLibrary JSON 配置文件参考 - run.json 与 user.json"
---
软件启动时,将自动在用户主目录下创建运行配置文件 `run.json` 和用户配置文件 `user.json`。
配置文件统一存放于用户主目录下的 `AutoLibrary/config` 文件夹中。以 Windows 系统为例:
```path
C:\Users\<用户名>\AppData\Roaming\AutoLibrary\config
```
<Warning>
任何情况下都不建议在该目录下修改除运行配置文件和用户配置文件以外的任何文件。
即使是修改配置文件,也请务必保持 JSON 格式正确,否则可能导致软件无法正常启动或运行。
</Warning>
## 运行配置文件 (run.json)
```json
{
"library": {
"host_url": "http://10.1.20.7",
"login_url": "/login"
},
"mode": {
"run_mode": 1
},
"login": {
"auto_captcha": true,
"max_attempt": 3
},
"web_driver": {
"driver_type": "edge",
"driver_path": "",
"headless": false
}
}
```
### 字段 (library)
关于图书馆的相关配置,目前版本下无需更改
| 参数 | 类型 | 说明 |
| --- | --- | --- |
| `host_url` | String | 图书馆主机URL,无需更改 |
| `login_url` | String | 登录页面URL,无需更改 |
### 字段 (mode)
AutoLibrary 的运行模式
| 参数 | 类型 | 说明 |
| --- | --- | --- |
| `run_mode` | Number | 运行模式组合(+1 预约, +2 签到, +4 续约) |
### 字段 (login)
AutoLibrary 处理登录时的相关配置
| 参数 | 类型 | 说明 |
| --- | --- | --- |
| `auto_captcha` | Boolean | 自动验证码识别,建议保持 `true` |
| `max_attempt` | Number | 登录尝试次数,默认 3 次 |
### 字段 (web_driver)
AutoLibrary 使用的浏览器及其驱动的相关配置
| 参数 | 类型 | 说明 |
| --- | --- | --- |
| `driver_type` | String | 浏览器类型:`edge` / `chrome` / `firefox` |
| `driver_path` | String | 驱动文件路径,为空则运行失败 |
| `headless` | Boolean | 无头模式,默认 `false` |
## 用户配置文件 (user.json)
```json
{
"groups": [
{
"name": "分组名",
"enable": true,
"users": [
{
"username": "您的学号",
"password": "您的密码",
"enable": true,
"reserve_info": {
"date": "2025-10-30",
"place": "1",
"floor": "4",
"room": "5",
"begin_time": {
"time": "09:30",
"max_diff": 30,
"prefer_early": true
},
"end_time": {
"time": "21:23",
"max_diff": 30,
"prefer_early": false
},
"renew_time": {
"expect_duration": 1.0,
"max_diff": 30,
"prefer_early": false
},
"seat_id": "31A",
"expect_duration": 6,
"satisfy_duration": true
}
}
]
}
]
}
```
### 字段 (groups)
这是用户配置的最外层的用户分组,分组中会包含一个用户列表,
<Tip>
即使只添加用户列表而不使用分组包裹,AutoLibrary 也会默认为该用户列表创建兼容分组。
</Tip>
| 参数 | 类型 | 说明 |
| --- | --- | --- |
| `name` | String | 分组名称 |
| `enable` | Boolean | 是否启用该分组,`false` 时跳过 |
### 字段 (users)
用户分组中的用户列表
| 参数 | 类型 | 说明 |
| --- | --- | --- |
| `username` | String | 学号 |
| `password` | String | 密码 |
| `enable` | Boolean | 是否启用该用户,`false` 时跳过 |
### 字段 (reserve_info)
该字段包含了用户的座位预约信息
| 参数 | 类型 | 说明 |
| --- | --- | --- |
| `date` | String | 预约日期(格式 `yyyy-MM-dd`) |
| `place` | String | `"图书馆"` 或 `"1"` |
| `floor` | String | 楼层代码,详见下方楼层映射 |
| `room` | String | 区域代码,详见下方区域映射 |
| `seat_id` | String | 座位编号,如 `12A` `012a` |
| `expect_duration` | Number | 期望预约时长(分钟) |
| `satisfy_duration` | Boolean | 是否满足期望时长 |
<Accordion title="楼层映射">
| 代码 | 楼层 |
| --- | --- |
| `2` | 二层 |
| `3` | 三层 |
| `4` | 四层 |
| `5` | 五层 |
</Accordion>
<Accordion title="区域映射">
| 代码 | 区域 |
| --- | --- |
| `1` | 二层内环 |
| `2` | 二层西区 |
| `3` | 三层内环 |
| `4` | 三层外环 |
| `5` | 四层内环 |
| `6` | 四层外环 |
| `7` | 期刊区 |
| `8` | 五层考研 |
</Accordion>
#### 子字段 begin_time
| 参数 | 类型 | 说明 |
| --- | --- | --- |
| `time` | String | 开始时间(格式 `HH:mm`) |
| `max_diff` | Number | 最大时间差(分钟) |
| `prefer_early` | Boolean | 是否优先较早时间 |
#### 子字段 end_time
| 参数 | 类型 | 说明 |
| --- | --- | --- |
| `time` | String | 结束时间(格式 `HH:mm`) |
| `max_diff` | Number | 最大时间差(分钟) |
| `prefer_early` | Boolean | 结束时间优先较晚 |
#### 子字段 renew_time
<Tip>
该子字段只在用户的续约模式下才会被 AutoLibrary 读取
</Tip>
| 参数 | 类型 | 说明 |
| --- | --- | --- |
| `expect_duration` | Number | 期望续约时长(小时) |
| `max_diff` | Number | 最大时间差(分钟) |
| `prefer_early` | Boolean | 续约时间优先较晚 |
+12
View File
@@ -0,0 +1,12 @@
---
title: "启动工具"
description: "AutoLibrary 启动与运行说明"
---
运行 AutoLibrary 文件,工具将启动主界面。
![运行主界面](/images/v1.2.1/运行主界面.png)
软件首次启动时,未初始化配置文件,直接运行脚本会提示配置文件未找到。这属于预期行为,请先完成下方配置。
<Tip> 为适应不同的用户需求,这里分别提供了通过界面与直接修改配置文件两种方式,请按照需求参考选择 </Tip>
+97
View File
@@ -0,0 +1,97 @@
---
title: "通过界面配置"
description: "AutoLibrary 界面配置指南 - 用户、预约、系统设置与运行模式"
---
点击主界面窗口右上角的配置按钮,打开配置窗口。
<Tabs>
<Tab title="用户配置">
![配置窗口-用户配置](/images/v1.2.1/配置窗口-用户配置.png)
<Tip>初次运行软件时,用户配置默认为空,需要手动添加。</Tip>
### 用户列表
| 功能 | 说明 | 备注 |
| --- | --- | --- |
| 用户列表 | 显示当前配置文件中的所有用户 | 支持添加、删除用户操作,选中用户项进行详细配置 |
### 用户信息
| 参数 | 说明 | 默认值/可选值 |
| --- | --- | --- |
| 学号 | 用户的学号 | 必填项,用于登录图书馆系统 |
| 密码 | 用户的密码 | 默认值为 `000000`,请根据实际情况修改 |
### 预约信息
| 参数 | 说明 | 默认值/可选值 |
| --- | --- | --- |
| 日期 | 座位预约日期 | 格式 `yyyy-MM-dd`,18:00-23:00可预约次日 |
| 地点 | 预约座位的地点 | 默认值:`图书馆` |
| 楼层 | 预约座位的楼层 | `二层` `三层` `四层` `五层` |
| 区域 | 预约座位的区域 | 默认值:`二层内环`,可选随楼层变化 |
| 座位号 | 预约座位的座位号 | 例如:`12A` `012a` |
| 开始时间 | 预约开始时间 | 格式 `HH:mm`,可选范围 7:30-23:30 |
| 结束时间 | 预约结束时间 | 格式 `HH:mm`,默认当前时间+2小时 |
| 最大时间偏差 | 时间不可用时的偏差范围 | 0-120分钟,0 表示严格按选择时间 |
| 优先最早/晚 | 多可选时间时的优先选择 | 开始时间优先最早,结束/续约时间优先最晚 |
| 期望预约时长 | 预约期望时长 | 0-8 小时,默认 2 小时 |
| 期望续约时长 | 续约期望时长 | 0-4 小时,默认 1 小时 |
| 优先满足期望时长 | 是否优先满足时长限制 | 勾选后尽量满足,但可能因座位紧张导致预约失败 |
</Tab>
<Tab title="运行配置">
![配置窗口-运行配置](/images/v1.2.1/配置窗口-运行配置.png)
### 图书馆设置
| 参数 | 说明 | 默认值 |
| --- | --- | --- |
| 访问网址 | 图书馆系统的主机URL | `http://10.1.20.7`(无需更改) |
| 登录页面 | 登录页面的URL路径 | `/login`(无需更改) |
### 浏览器设置
| 参数 | 说明 | 默认值/可选值 |
| --- | --- | --- |
| 浏览器类别 | 使用的浏览器类型 | Microsoft Edge / Google Chrome / Mozilla Firefox |
| 浏览器驱动路径 | 驱动程序路径 | 通过浏览按钮选择 |
| 无头模式 | 是否隐藏浏览器窗口 | `false`(显示窗口),`true` 为隐藏运行 |
### 登录设置
| 参数 | 说明 | 默认值 |
| --- | --- | --- |
| 自动识别验证码 | 是否自动处理验证码 | 勾选(推荐) |
| 登录尝试次数 | 登录失败后最大重试次数 | 3 次 |
### 运行模式
| 功能 | 说明 | 触发条件 |
| --- | --- | --- |
| 自动预约 | 按配置进行座位预约 | 用户当天无有效预约时执行 |
| 自动签到 | 自动完成图书馆签到 | 满足条件时执行,否则跳过 |
| 自动续约 | 自动延长座位使用时间 | 满足条件时执行,否则跳过 |
</Tab>
<Tab title="其它">
![配置窗口-其它](/images/v1.2.1/配置窗口-其它.png)
### 配置文件的保存与读取
| 参数 | 说明 |
| --- | --- |
| 运行配置文件路径 | 可通过浏览按钮选择新的配置文件 |
| 用户配置文件路径 | 可通过浏览按钮选择新的配置文件 |
### 导出配置
支持将当前配置导出为文件,选择目标路径和文件名后点击导出按钮。
</Tab>
</Tabs>
## 运行工具
配置完成后,点击主界面窗口顶部右侧的绿色按钮 **"启动脚本"**,工具将按配置自动执行预约、签到、续约等操作。
<Tip>AutoLibrary 将按照配置文件处理所有启用的用户组中的可用用户。</Tip>
+15
View File
@@ -0,0 +1,15 @@
---
title: "常见问题"
description: "AutoLibrary 使用问答"
---
<Accordion title="使用 AutoLibrary 是否安全?">
AutoLibrary 完全模拟人工操作,不干扰图书馆系统正常运行。工具**不会收集或上传您的个人信息**,所有数据仅保存在本地配置文件中。
</Accordion>
<Accordion title="可以同时预约多个座位吗?">
根据图书馆规定,每个账号同一时间段只能预约一个座位。但您可以在配置中添加多个账号,工具会依次处理每个账号的预约请求。
<Warning>本工具旨在辅助用户正常使用图书馆服务,请勿滥用影响他人及图书馆正常运行。</Warning>
</Accordion>
<Accordion title="工具运行期间可以操作电脑吗?">
可以正常使用电脑,但请**勿操作工具自动打开的浏览器窗口**,否则可能会干扰工具正常运行。如需完全后台运行,可启用无头模式并最小化到托盘。
</Accordion>
+91
View File
@@ -0,0 +1,91 @@
---
title: "疑难解答"
description: "AutoLibrary 故障排除与常见问题解决方法"
---
## 工具启动时报错"无法找到驱动"
<Note>
这大概率是因为浏览器驱动未正确安装或版本不匹配。
因此我们强烈建议使用 AutoLibrary 的[浏览器驱动自动下载功能](/zh/installation/driver#%E6%96%B9%E5%BC%8F%E4%B8%80%EF%BC%9A%E4%BD%BF%E7%94%A8%E6%B5%8F%E8%A7%88%E5%99%A8%E9%A9%B1%E5%8A%A8%E8%87%AA%E5%8A%A8%E4%B8%8B%E8%BD%BD%E5%8A%9F%E8%83%BD%EF%BC%88%E6%8E%A8%E8%8D%90%EF%BC%89)。
这可以很大程度上减少此类问题的发生。
</Note>
<Steps>
<Step title="检查驱动位置">
确认驱动文件是否放置在正确位置。
</Step>
<Step title="确认版本匹配">
驱动版本必须与浏览器版本完全匹配(如 Chrome 需对应版本的 `chromedriver.exe`,切勿混用)。
</Step>
<Step title="重新安装驱动">
使用浏览器驱动自动下载窗口重新安装。
</Step>
</Steps>
## 登录失败,提示账号密码错误
请检查配置界面中的账号密码是否正确。
<Steps>
<Step title="确认账号密码">
确认学号和密码无误。
</Step>
<Step title="检查特殊字符">
检查是否有不支持的特殊字符需要转义。
</Step>
<Step title="手动验证">
尝试手动登录图书馆系统确认账号可用。
</Step>
</Steps>
## 预约失败,提示座位不可用
目标座位可能已被他人预约或不在可预约时间。
<Steps>
<Step title="确认座位信息">
确认座位编号、楼层、区域是否正确。
</Step>
<Step title="调整预约策略">
尝试预约其它座位或调整时间参数。增大 **最大时间偏差** 让工具在允许的时间范围内自动选择最佳起始时间。
</Step>
</Steps>
## 定时任务显示"已就绪"或"执行中"且无法删除
<Warning>
此解决方法需要直接操作 AutoLibrary 的核心配置文件,需要操作者对 JSON 文件格式有一定了解。**操作前请务必备份相关文件**,以免误操作导致配置丢失。
</Warning>
这一般是因为定时任务已进入预约队列,但软件上次异常关闭未能处理完毕。请按以下步骤手动删除:
<Steps>
<Step title="记录异常任务信息">
检查界面中正在运行的定时任务,记住任务名称或运行时间等可用于定位的信息。
</Step>
<Step title="找到配置文件目录">
在 AutoLibrary 配置界面的「其它」选项卡中,找到「当前运行配置文件的路径」显示的文件夹路径,使用文件管理器打开该目录。
</Step>
<Step title="打开定时任务配置文件">
在该目录中找到名为 `timer_task.json` 的文件,使用文本编辑器打开(推荐 VS Code、Notepad++,也可使用记事本)。
</Step>
<Step title="定位异常任务">
在 JSON 文件中查找包含以下信息的任务配置块:
- `name`(任务名称)
- `execute_time`(执行时间)
如果任务名包含中文,在 JSON 中会以 Unicode 编码显示,如 `"name": "预约任务"`。可使用在线工具搜索「Unicode 转中文」进行转换确认。
</Step>
<Step title="删除异常任务">
将找到的任务配置块从 JSON 文件中完全删除。
<Warning>删除时请保持 JSON 格式完整:确保花括号 `{}`、方括号 `[]`、逗号等符号正确。不要删除其它正常任务配置。</Warning>
</Step>
<Step title="重启软件">
完全关闭 AutoLibrary 后重新打开,异常定时任务应已成功删除,界面状态恢复正常。
</Step>
</Steps>
<Tip>如果操作后 JSON 格式出错,软件可能会覆写原有配置文件。请确保备份,并检查 JSON 语法是否正确(注意最后一个元素后不要有多余的逗号)。</Tip>
+36
View File
@@ -0,0 +1,36 @@
---
title: "核心功能"
description: "AutoLibrary 核心功能 - 自动预约、签到、续约与模式组合"
---
## 运行模式
<CardGroup cols={3}>
<Card
title="自动预约"
icon="calendar-check"
href="#"
>
如果用户当前没有有效预约,工具会自动为您预约指定座位。适用于提前预约第二天的座位。
</Card>
<Card
title="自动签到"
icon="clipboard-check"
href="#"
>
在可签到时间范围(开始时间的前后30分钟)内,自动完成签到,避免因忘记签到导致失约。
</Card>
<Card
title="自动续约"
icon="rotate-right"
href="#"
>
到达可续约时间(结束时间前的120分钟),自动延长座位使用时间。
</Card>
</CardGroup>
## 模式组合
运行模式可以组合使用,只需在配置窗口中勾选对应模式即可。同时启用三种模式后,工具会自动判断当前状态并执行相应操作。
<Tip>推荐同时启用三种模式,让工具自动处理预约、签到、续约的完整流程。</Tip>
+80
View File
@@ -0,0 +1,80 @@
---
title: "定时任务"
description: "AutoLibrary 定时任务管理 - 添加、编辑、删除定时任务"
---
使用内置定时任务管理,添加定时任务后在指定时间按当前预约信息自动运行。
支持设置重复周期,如每周一、周三、周五自动执行。
## 打开定时任务管理
点击主界面窗口底部左侧的 **"定时任务管理"** 按钮,打开定时任务管理窗口。
![定时任务管理窗口](/images/v1.3.0/定时任务管理窗口.png)
![功能介绍-定时任务](/images/v1.2.1/功能介绍-定时任务.png)
## 添加定时任务
点击 **"添加定时任务"** 按钮,在弹出的对话框中配置任务参数:
![添加定时任务对话框](/images/v1.3.0/添加定时任务对话框.png)
<Tip>添加后任务将显示在列表中,状态为"等待中"。到达指定时间后自动执行。</Tip>
### 定时类型
| 选项 | 说明 | 示例 |
| --- | --- | --- |
| 特定时间 | 指定任务开始的绝对时间 | `2025-10-30 08:00:00` |
| 相对时间 | 相对当前时间的偏移量 | 提前 1 天、提前 2 小时、提前 30 分钟 |
### 运行模式
| 选项 | 行为 | 适用场景 |
| --- | --- | --- |
| 静默运行 | 任务执行时不会弹出窗口,完成后右下角通知 | 完全自动化,无需人工干预 |
| 运行前提示 | 任务执行前显示提示信息 | 需要在运行前确认或查看进度 |
<Tip>
如需完全静默运行:在配置界面的系统设置中勾选 **"无头模式"**,并在程序托盘中右键选择 **"最小化到托盘"**。这样定时任务运行时不会显示主界面和浏览器窗口,仅在完成时弹出系统通知。
</Tip>
### 重复执行
勾选 **"启用重复执行"** 后,可以按周循环执行任务:
- 选择需要运行的天(如:每周一、周三、周五)
- 需要每天运行则勾选全部(周一至周日)
- 全选和全不选均视为每日执行
## 编辑定时任务
支持对已创建的定时任务进行编辑修改,无需删除重建。
<Steps>
<Step title="打开编辑菜单">
在定时任务管理窗口中,在任务列表中的任意任务项上单击**鼠标右键**,在弹出的菜单中选择**"编辑"**。
![定时任务右键编辑菜单](/images/v1.3.0/定时任务-右键编辑.png)
</Step>
<Step title="修改配置">
编辑对话框将显示任务的当前配置。您可以修改:
- 任务名称
- 定时时间
- 运行模式
- 将普通任务转换为可重复性任务(反之亦然)
</Step>
</Steps>
<Info>编辑任务时,任务的 UUID 和执行历史(可重复性任务)将被保留。修改执行时间后,状态将重置为"等待中"。</Info>
## 删除定时任务
可通过以下两种方式移除定时任务:
- 右键菜单选择 **"删除"**
- 点击任务项右侧的 **"删除"** 按钮
<Warning>删除可重复性任务将同时清除该任务的所有执行历史记录。</Warning>
+42
View File
@@ -0,0 +1,42 @@
---
title: "AutoLibrary"
description: "北京建筑大学图书馆座位自动化工具 - 简化预约、签到、续约流程"
icon: ""
---
## 简介
AutoLibrary 是一款专为北京建筑大学图书馆设计的自动化工具,旨在简化图书馆座位操作流程。
## 快速导航
<CardGroup cols={2}>
<Card
title="安装"
icon="download"
href="/zh/installation/install"
>
下载安装工具,配置浏览器驱动 —— 支持一键自动下载。
</Card>
<Card
title="配置"
icon="sliders"
href="/zh/configuration/start"
>
完整参数参考:用户信息、预约参数、系统设置与配置文件详解。
</Card>
<Card
title="功能"
icon="bolt"
href="/zh/features/core"
>
核心功能概览:自动预约、签到、续约,以及定时任务管理。
</Card>
<Card
title="FAQ"
icon="circle-question"
href="/zh/faq/troubleshooting"
>
常见问题解决方法与使用问答,快速排查使用问题。
</Card>
</CardGroup>
+41
View File
@@ -0,0 +1,41 @@
---
title: "安装浏览器驱动"
description: "AutoLibrary 浏览器驱动配置指南 - 自动下载与手动安装"
---
工具需要通过浏览器驱动来控制浏览器。以下两种方式可以帮助您快速配置驱动:
<Tip>AutoLibrary 支持自动检测本地安装的浏览器,并查找适配的驱动版本,大大简化了配置流程。</Tip>
## 方式一:使用浏览器驱动自动下载功能
<Steps>
<Step title="打开驱动下载窗口">
在 [AutoLibrary 配置界面](/zh/configuration/ui#%E8%BF%90%E8%A1%8C%E9%85%8D%E7%BD%AE)中,点击"浏览器驱动自动下载"按钮。
![浏览器驱动自动下载窗口](/images/v1.2.1/浏览器驱动自动下载窗口.png)
</Step>
<Step title="选择驱动版本">
工具会自动检测您电脑上已安装的浏览器,并列出可用的驱动版本。
</Step>
<Step title="开始下载">
从窗口中的下拉列表中选择需要的浏览器驱动版本,点击"开始下载"按钮。
![开始下载浏览器驱动](/images/v1.2.1/浏览器驱动自动下载窗口-开始下载.png)
</Step>
<Step title="完成配置">
下载完成后,点击"确定"将驱动类型与驱路径保存到配置窗口中并退出下载对话框。
![浏览器驱动下载完成](/images/v1.2.1/浏览器驱动自动下载窗口-下载完成.png)
</Step>
</Steps>
## 方式二:手动下载浏览器驱动
如果仍需手动下载驱动,请根据您使用的浏览器选择对应的驱动:
| 浏览器 | 适用系统 | 下载链接 |
| --- | --- | --- |
| Microsoft Edge | 跨平台 | [下载 Edge 驱动](https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/) |
| Google Chrome | 跨平台 | [下载 Chrome 驱动](https://developer.chrome.google.cn/docs/chromedriver/downloads) |
| Mozilla Firefox | 跨平台 | [下载 Firefox 驱动](https://github.com/mozilla/geckodriver/releases) |
+35
View File
@@ -0,0 +1,35 @@
---
title: "安装 AutoLibrary"
description: "AutoLibrary 下载与安装指南"
---
AutoLibrary 是一款专为北京建筑大学图书馆设计的自动化工具,帮助您简化图书馆座位操作流程,节省宝贵时间。工具完全模拟人工操作,通过简单的界面配置即可使用。
<Info>本文主要概述了在 Windows 11/10 环境下的 AutoLibrary 工具的安装、配置和使用方法。</Info>
## 下载软件
请从 [AutoLibrary 下载页面](https://autolibrary.kenanzhu.com/downloads)获取最新版本。
<Note>
[**Github Releases**](https://github.com/kenanZhu/AutoLibrary/releases):更新较为及时,但网络连接不稳定,速度较慢。
**云盘链接**:版本更新略有延迟,但下载速度更快。
</Note>
## 安装类型
从 v1.1.0 版本开始,提供两种版本可供选择:
<Tabs>
<Tab title="压缩包版本">
解压下载好的压缩包文件到任意位置,双击运行其中的 `AutoLibrary.exe` 即可启动工具。
<Warning>
压缩包内的 `_internal` 文件夹与 `AutoLibrary.exe` 可执行文件需要位于同一目录下,请勿修改或移动这两个文件,否则可能导致工具无法正常运行。
</Warning>
</Tab>
<Tab title="安装器版本">
双击运行安装程序,按照步骤提示进行安装。安装完成后即可在桌面快捷方式或开始菜单中找到 AutoLibrary。
</Tab>
</Tabs>