# sleepy
**Repository Path**: cuteaplane/sleepy
## Basic Information
- **Project Name**: sleepy
- **Description**: No description available
- **Primary Language**: Python
- **License**: Not specified
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-01-09
- **Last Updated**: 2025-01-09
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# sleepy
> What are you doing?
一个查看个人在线状态,以及视奸他在用什么软件的 Flask 网站,让他人能知道你不在而不是故意吊他/她
仅仅是在仓库中加入了App_name字段,手机客户端使用请搭配Macrodroid,来实现切换应用上报信息/同步睡眠信息
Macrodroid配置文件请下载仓库中的"前台应用状态.macro"
[**演示**](#preview) / [**部署**](#部署) / [**使用**](#使用)
## Preview
演示站: [Here](https://sleepy.1812z.top)
网页:


服务器:

## 部署
理论上全平台通用, 安装了 Python >= **3.6** 即可
1. Clone 本仓库 (建议先 Fork / Use this template)
```shell
git clone https://github.com/1812z/sleepy.git
# or ssh:
# git clone git@github.com:1812z/sleepy.git
```
2. 安装依赖
```shell
cd sleepy
./install_lib.sh
# or windows:
# .\install_lib.bat
# 也可自行安装: pip install -r requirements.txt
# 其实只有 Flask (目前)
```
3. 编辑配置文件
先启动一遍程序:
```shell
python3 server.py
```
如果不出意外,会提示: `data.json not exist, creating`,同时目录下出现 `data.json` 文件,编辑该文件中的配置并重新运行即可 (示例请 [查看 `example.jsonc`](./example.jsonc) )
## 使用
有两种启动方式:
- 直接启动
```shell
python3 server.py
```
- 简易启动器
```shell
python3 start.py
```
相比直接启动, 启动器可实现在服务器退出 *(如开启 debug 后更改时自动保存导致有语法错误)* 后自动重启
点击展开
```shell
Server path: /mnt/usb16/dev/wyf9/sleepy/server.py
Starting server #1
* Serving Flask app 'server'
* Debug mode: on
WARNING: This is a development server. Do not use it in a production deployment.rUse a production WSGI server instead.
* Running on all addresses (0.0.0.0)
* Running on http://127.0.0.1:9010
* Running on http://192.168.1.20:9010
Press CTRL+C to quit
* Restarting with stat
* Debugger is active!
* Debugger PIN: 114-514-191
^C#1 exited with code 2
waiting 5s
Starting server #2
* Serving Flask app 'server'
* Debug mode: on
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
* Running on all addresses (0.0.0.0)
* Running on http://127.0.0.1:9010
* Running on http://192.168.1.20:9010
Press CTRL+C to quit
* Restarting with stat
* Debugger is active!
* Debugger PIN: 114-514-191
```
默认服务 http 端口: `9010`
| 路径 | 作用 |
| -------------------------------------- | ------------------- |
| `/` | 显示主页 |
| `/query` | 获取状态 |
| `/get/status_list` | 获取可用状态列表 |
| `/set?secret=&status=` | 设置状态 (url 参数) |
1. `/query`:
获取当前的状态 (无需鉴权)
返回 json:
```jsonc
{
"success": true, // 请求是否成功
"status": 0, // 获取到的状态码
"info": { // 对应状态码的信息
"name": "活着", // 状态名称
"desc": "目前在线,可以通过任何可用的联系方式联系本人。", // 状态描述
"color": "awake"// 状态颜色, 对应 static/style.css 中的 .sleeping .awake 等类
}
}
```
2. `/get/status_list`
获取可用状态的列表 (无需鉴权)
返回 json:
```jsonc
[
{
"id": 0, // 索引,取决于配置文件中的有无
"name": "活着", // 状态名称
"desc": "目前在线,可以通过任何可用的联系方式联系本人。", // 状态描述
"color": "awake" // 状态颜色, 对应 static/style.css 中的 .sleeping .awake 等类
},
{
"id": 1,
"name": "似了",
"desc": "睡似了或其他原因不在线,紧急情况请使用电话联系。",
"color": "sleeping"
},
// 以此类推
]
```
> 就是返回 `data.json` 中的 `status_list` 列表
3. `/set?secret=&status=`
设置当前状态
- ``: 在 `data.json` 中配置的 `secret`
- ``: 状态码 *(`int`)*
返回 json:
```jsonc
// 1. 成功
{
"success": true, // 请求是否成功
"code": "OK", // 返回代码
"set_to": 0 // 设置到的状态码
}
// 2. 失败 - 密钥错误
{
"success": false, // 请求是否成功
"code": "not authorized", // 返回代码
"message": "invaild secret" // 详细信息
}
// 3. 失败 - 请求无效
{
"success": false, // 请求是否成功
"code": "bad request", // 返回代码
"message": "argument 'status' must be a number" // 详细信息
}
```
## 客户端示例
在 `_example/` 目录下, 可参考