https://github.com/Return-Log/Education-Clock
适合学校使用的桌面时钟,软件具有 -倒计时 -桌面时钟 -课程表 -天气预报 -自动新闻联播 -定时关机 -消息通知栏 -随机点名等功能
https://github.com/Return-Log/Education-Clock
Last synced: about 19 hours ago
JSON representation
适合学校使用的桌面时钟,软件具有 -倒计时 -桌面时钟 -课程表 -天气预报 -自动新闻联播 -定时关机 -消息通知栏 -随机点名等功能
- Host: GitHub
- URL: https://github.com/Return-Log/Education-Clock
- Owner: Return-Log
- License: gpl-3.0
- Created: 2024-03-30T17:35:55.000Z (about 2 years ago)
- Default Branch: master
- Last Pushed: 2026-01-10T16:39:00.000Z (6 months ago)
- Last Synced: 2026-01-11T05:06:11.222Z (6 months ago)
- Language: Python
- Homepage:
- Size: 8.86 MB
- Stars: 132
- Watchers: 1
- Forks: 10
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Education Clock
> [!NOTE]
>
> 软件具有-桌面时钟 -课程表 -天气预报 -自动新闻联播 -定时关机 -消息通知栏 -随机点名 -新闻看板 -定时消息- 每日一图等功能

# 信息
协议:GPLv3
GitHub仓库: https://github.com/Return-Log/Education-Clock
# 功能说明
> [!WARNING]
>
> 设置信息存储在./data下,修改设置会自动保存,操作不可逆,请注意进行数据备份
## 课程表
### 显示课程表
到达设定时间后对应课程加粗并使用高亮边框
主界面可以选择显示其它时间课程表以适应调休
### 更改课程表
> [!WARNING]
>
> 修改项后务必点击表格空白处以保存,直接关闭窗口可能会导致数据丢失
#### 插入课程表
对应日期为空时,点插入行按钮会自动添加一行
不为空时需选择一行,点击插入按钮会在选中行下方插入一行
#### 删除课程表
选中要删除的行点击删除按钮即可删除
#### 更改课程表
双击需更改的单元格即可进行更改
日期须符合HH:MM格式
## 倒计时
### 设置
事件最多4个字符,也不要设置过长的倒计时(大于9999天),否则会导致窗口显示超出范围
## 天气预报
使用和风天气的格点天气服务
API可在和风天气开发平台自行注册获得
> [!CAUTION]
>
> 注意经纬度不要填反
## 通知栏
### 信息显示规则
- 以时间倒序显示近7天数据
- 最新消息以弹幕形式在屏幕上滚动
- 支持markdown格式
- 当过滤群组名字包含“管理组”关键字时,对应群组信息头用黄色显示
> [!WARNING]
>
> 通知栏信息编码为base64加密存储,只能在设置界面更改
### 本地公告板设置
公告板现支持md格式解析,图片解析,视频、文档等文件保存与快速打开
#### 按设置界面提示填写API信息
#### 过滤设置
- 可选发件人昵称,群聊名字进行过滤
- 有多个过滤项时使用逗号分隔
- 过滤项间彼此互不干扰
### 服务端设置
#### 数据库设置
数据库中构建如下表
```sql
CREATE TABLE IF NOT EXISTS `messages` (
`id` INT AUTO_INCREMENT PRIMARY KEY, -- 自增主键
`robot_name` VARCHAR(255) NOT NULL, -- 机器人名称
`sender_name` VARCHAR(255) NOT NULL, -- 发送者名称
`message_content` TEXT NOT NULL, -- 消息内容
`timestamp` DATETIME NOT NULL, -- 时间戳
`conversationTitle` VARCHAR(255) NOT NULL -- 群聊标题
);
```
> [!IMPORTANT]
>
> 记得放行 3306 MySQL服务默认端口
#### 添加数据
##### 本质
可以使用你自己的程序执行如下语句进行插入
```sql
INSERT INTO `messages` (`robot_name`, `sender_name`, `message_content`, `timestamp`, `conversationTitle`) VALUES
('机器人名字', '发送者名称', '展示的消息内容', '时间戳(2024-11-04 15:00:04)', '群聊名称');
```
##### 使用钉钉机器人
###### 在钉钉中创建机器人
> 需自建一个组织,机器人每月有3000次调用限制
开放平台: https://open-dev.dingtalk.com/fe/app?hash=%23%2Fcorp%2Frobot#/corp/robot
在自建组织中创建一个机器人应用,将应用凭证中三个项记下来
对应机器人开发管理中添加服务器出口IP,和消息接收地址
###### 服务器配置
python版本: 3.10.14 使用flask框架
./dingtalk-service/app.py 为服务端需运行软件
将app.py中以下部分改为你自己的配置信息
```python
"""以省略上方代码"""
# 数据库配置
db_config = { # 数据库配置
"host": "localhost",
"user": "",
"password": "",
"database": ""
}
# 钉钉机器人配置(多个机器人)
robots = { # 机器人应用凭证
"": { # ""中填写AppKey
"agent_id": "", # AgentId
"app_secret": "" # AppSecret
}
# 可以继续增加更多的机器人配置
}
"""中间部分已省略"""
if __name__ == '__main__':
app.run(host='0.0.0.0', port=20000, debug=True) # 改为自己的端口
```
宝塔面板网站管理:
添加一个python项目




```
所需的库,装最新版即可
flask # 用于创建 Web 应用程序
pymysql # 用于连接和操作 MySQL 数据库
alibabacloud-dingtalk # 用于调用钉钉的 API
alibabacloud-tea-openapi # 钉钉 SDK 依赖的 Alibaba Cloud TEA OpenAPI 库
alibabacloud-tea-util # 钉钉 SDK 依赖的 TEA 工具库
```
最后重启项目
###### 使用机器人
在自建组织下添加一个内部群,添加上自定义机器人,@机器人 即可发送信息,一切顺利话此时数据库中已有这条信息
## 自动关机
一天中多个关机时间使用逗号分隔
到达时间会弹出确认倒计时窗口,点取消即可终止关机
## 新闻联播
到达7:30会自动使用默认浏览器访问央视网,根据是否有声音播放模拟鼠标双击进行全屏操作,到达7:30自动关闭浏览器窗口
模块默认为关闭状态
## 悬浮球
点击小猫悬浮球可打开工具栏,目前有随机点名、通知消息本地发送功能
## API调用(新闻看板)
显示效果

### 设置

目前只能解析新闻类API(需要显示的项都在"data"下)
使用md格式,API中的内容显示需加{},如上图所示
## 计时器
从悬浮窗启动
具有秒表和倒计时功能

## 计划消息
可设置定时消息和循环消息,定时消息中设置为Sunday等可实现每周显示
#### 支持多种日期格式:
- 英文星期格式(Monday, Tuesday等)
- 中文星期格式(星期一, 星期二等)
- 完整日期格式(YYYY-MM-DD)
- 月日格式(MM-DD)
#### 多个时间点:
- 支持逗号分隔的多个日期
- 同时支持中文逗号和英文逗号
## 每日一图
在设置中启动后会自动获取必应每日一图,和图片描述,并可同时设置其为壁纸
---

------
Copyright © 2024-2025 Log All rights reserved.