# zzxia-lucky-star
**Repository Path**: zhf_sy/zzxia-lucky-star
## Basic Information
- **Project Name**: zzxia-lucky-star
- **Description**: 运行在Shell下的抽奖及问答程序,可以显示中奖人员照片。
- **Primary Language**: Shell
- **License**: GPL-3.0
- **Default Branch**: develop
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2021-06-12
- **Last Updated**: 2026-03-09
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# zzxia-lucky-star
中文名:猪猪侠之幸运之星抽奖系统
**如果有使用上的问题或其他,可以加wx:`zzxia_ggbond` 解决。加好友时请注明你来自哪个平台!**
## 1 介绍
抽奖及问答程序。可以显示中奖人员照片。
### 1.1 背景
网上的抽奖程序都是windows的,且很多要收点费用,不如自己做一个。
由于近期培训考核,须随机提问,所以做它了。
### 1.2 功能
1. 随机抽奖
1. 选择开启问答模式
1. 可选文本方式或照片方式
1. 可选抽取人数、转盘次数、旋转速度
1. 生成姓名图片
### 1.3 喜欢她,就满足她:
1. 【Star】她,让她看到你是爱她的;
1. 【Issue】她,告诉她有哪些小脾气,她会改的,手动小绵羊;
1. 【Fork】她,为她增加新功能,修Bug,让她更加卡哇伊;
1. 【打赏】她,为她买jk;
## 2 软件架构
Linux Shell
Python3 (需要依赖 `Pillow` 库:`pip3 install Pillow`)
### 2.1 设计理念
1. 随机数取余数
1. 照片转ascii
### 2.2 目录结构
```bash
$ tree
.
├── clean.sh
├── dingding_send_markdown.sh
├── docs
│ └── SCRIPT_HELP_SPEC.md
├── generate_text_photo.py
├── LICENSE
├── lucky_star.sh
├── my_photo
│ ├── bak
│ ├── zzxia-2.png
│ ├── zzxia.png
│ ├── 张三丰-2.png
│ ├── 张三丰.png
│ ├── 李四强-2.png
│ ├── 李四强.png
│ ├── 王老五-2.png
│ ├── 王老五.png
│ ├── 陆六六-2.png
│ └── 陆六六.png
├── people.list.sample
├── README.en.md
├── README.md
├── SimHei.ttf
└── sys_photo
├── 0.png
├── 1.png
├── 2.png
├── 3.png
├── 404.png
├── 4.png
├── 5.png
├── 6.png
├── start.png
└── zzxia.png
4 directories, 27 files
```
## 3 安装教程
克隆到Linux系统上即可。
在ubuntu上测试通过,理论上只要是基于Linux内核都行
## 4 使用说明
1. 将抽奖人员名单写入文件【./people.list】(参考./people.list.sample)
2. 如果需要更好体验,将人员照片保存到【./my_photo/姓名.png】。如果没有也可以运行【./generate_text_photo.py】产生基于姓名的图片(自动跳过已存在的图片)。当然也可以什么都不做,运行在纯文本方式
3. 运行抽奖程序【./lucky_star.sh】,请看帮助:
```bash
$ ./lucky_star.sh -h
用途:抽奖、问答程序
特征码:
未命名
权限要求:
未指定
依赖:
export DINGDING_WEBHOOK_API="https://oapi.dingtalk.com/robot/send?access_token=你的token" 注入
photo方式需要:image2ascii - 图片转文本(https://github.com/qeesung/image2ascii)
convert - 计算图片长宽(https://github.com/ImageMagick/ImageMagick)
注意:
1、text方式
不需要安装其他软件包,可以直接使用
2、photo方式
- image2ascii可以支持显示人员的相片(体验更好),需要在【./my_photo/】下放以人员【姓名.png】或【姓名.jpg】的照片
- 如果没装image2ascii,将会以纯字符的形式显示
- convert可以计算图片的长宽,用以动态适配屏幕,非常棒
用法:
./lucky_star.sh -h|--help
./lucky_star.sh [-s|--send-message] [-q|--question] [-p|--photo|-t|--text] [<抽几次> <旋转几次> <旋转速度>]
参数规范:
无包围符号 :-a : 必选【选项】
:val : 必选【参数值】
:val1 val2 -a -b : 必选【选项或参数值】,且不分先后顺序
[] :[-a] : 可选【选项】
:[val] : 可选【参数值】
<> : : 需替换的具体值(用户必须提供)
%% :%val% : 通配符(包含匹配,如%error%匹配error_code)
| :val1|val2| : 多选一
{} :{-a } : 必须成组出现【选项+参数值】,且保持顺序
:{val1 val2} : 必须成组的【参数值组合】,且必须按顺序提供
参数说明:
-h|--help 此帮助
-q|--question 开启问答环节,默认只抽奖
-p|--photo 显示人员照片,请确保在【./my_photo/】下放了以人员【姓名.png】或【姓名.jpg】的照片
-t|--text 显示文本,即不显示人员照片
-s|--send-message 发送dingding消息(需要设置``中的token)
<抽几次> <旋转几次> <旋转速度> 默认:抽6次,旋转6次,旋转速度1秒/次
示例:
./lucky_star.sh -h
./lucky_star.sh #--- 默认(不显示照片,抽6人,旋转6次,旋转速度1秒/次)
./lucky_star.sh 3 #--- 抽3人,其他默认
./lucky_star.sh 3 4 5 #--- 抽3人,旋转4次,旋转速度5秒/次
./lucky_star.sh -q #--- 开启问答,其他默认
./lucky_star.sh -q 3 #--- 开启问答,抽三人,其他默认
./lucky_star.sh -q 3 4 5 #--- 开启问答,抽3人,旋转4次,旋转速度5秒/次
./lucky_star.sh -q -p #--- 开启问答,显示照片,其他默认
./lucky_star.sh -q -t #--- 开启问答,不显示照片,其他默认
./lucky_star.sh -q -p 3 4 5 #--- 开启问答,显示照片,抽3人,旋转4次,旋转速度5秒/次
./lucky_star.sh -s -q -p 3 4 5 #--- 开启问答,显示照片,抽3人,旋转4次,旋转速度5秒/次
Good Luck!
```
#### 5 参与贡献
1. Fork 本仓库
2. 新建 Feat_xxx 分支
3. 提交代码
4. 新建 Pull Request
#### 6 特技
1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md
2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com)
3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目
4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目
5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help)
6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)