├── .gitignore
├── EXAMPLE_STI.krz
├── JetBrainsMono-Regular.ttf
├── LICENSE
├── README.md
├── SourceSansPro-Semibold.otf
├── background.png
├── data-latin.ttf
├── example.png
├── head.png
├── main.py
└── mask.png
/.gitignore:
--------------------------------------------------------------------------------
1 | # Byte-compiled / optimized / DLL files
2 | __pycache__/
3 | *.py[cod]
4 | *$py.class
5 |
6 | # C extensions
7 | *.so
8 |
9 | # Distribution / packaging
10 | .Python
11 | build/
12 | develop-eggs/
13 | dist/
14 | downloads/
15 | eggs/
16 | .eggs/
17 | lib/
18 | lib64/
19 | parts/
20 | sdist/
21 | var/
22 | wheels/
23 | share/python-wheels/
24 | *.egg-info/
25 | .installed.cfg
26 | *.egg
27 | MANIFEST
28 |
29 | # PyInstaller
30 | # Usually these files are written by a python script from a template
31 | # before PyInstaller builds the exe, so as to inject date/other infos into it.
32 | *.manifest
33 | *.spec
34 |
35 | # Installer logs
36 | pip-log.txt
37 | pip-delete-this-directory.txt
38 |
39 | # Unit test / coverage reports
40 | htmlcov/
41 | .tox/
42 | .nox/
43 | .coverage
44 | .coverage.*
45 | .cache
46 | nosetests.xml
47 | coverage.xml
48 | *.cover
49 | *.py,cover
50 | .hypothesis/
51 | .pytest_cache/
52 | cover/
53 |
54 | # Translations
55 | *.mo
56 | *.pot
57 |
58 | # Django stuff:
59 | *.log
60 | local_settings.py
61 | db.sqlite3
62 | db.sqlite3-journal
63 |
64 | # Flask stuff:
65 | instance/
66 | .webassets-cache
67 |
68 | # Scrapy stuff:
69 | .scrapy
70 |
71 | # Sphinx documentation
72 | docs/_build/
73 |
74 | # PyBuilder
75 | .pybuilder/
76 | target/
77 |
78 | # Jupyter Notebook
79 | .ipynb_checkpoints
80 |
81 | # IPython
82 | profile_default/
83 | ipython_config.py
84 |
85 | # pyenv
86 | # For a library or package, you might want to ignore these files since the code is
87 | # intended to run in multiple environments; otherwise, check them in:
88 | # .python-version
89 |
90 | # pipenv
91 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
92 | # However, in case of collaboration, if having platform-specific dependencies or dependencies
93 | # having no cross-platform support, pipenv may install dependencies that don't work, or not
94 | # install all needed dependencies.
95 | #Pipfile.lock
96 |
97 | # poetry
98 | # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
99 | # This is especially recommended for binary packages to ensure reproducibility, and is more
100 | # commonly ignored for libraries.
101 | # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
102 | #poetry.lock
103 |
104 | # pdm
105 | # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
106 | #pdm.lock
107 | # pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
108 | # in version control.
109 | # https://pdm.fming.dev/#use-with-ide
110 | .pdm.toml
111 |
112 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
113 | __pypackages__/
114 |
115 | # Celery stuff
116 | celerybeat-schedule
117 | celerybeat.pid
118 |
119 | # SageMath parsed files
120 | *.sage.py
121 |
122 | # Environments
123 | .env
124 | .venv
125 | env/
126 | venv/
127 | ENV/
128 | env.bak/
129 | venv.bak/
130 |
131 | # Spyder project settings
132 | .spyderproject
133 | .spyproject
134 |
135 | # Rope project settings
136 | .ropeproject
137 |
138 | # mkdocs documentation
139 | /site
140 |
141 | # mypy
142 | .mypy_cache/
143 | .dmypy.json
144 | dmypy.json
145 |
146 | # Pyre type checker
147 | .pyre/
148 |
149 | # pytype static type analyzer
150 | .pytype/
151 |
152 | # Cython debug symbols
153 | cython_debug/
154 |
155 | # PyCharm
156 | # JetBrains specific template is maintained in a separate JetBrains.gitignore that can
157 | # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
158 | # and can be added to the global gitignore or merged into this file. For a more nuclear
159 | # option (not recommended) you can uncomment the following to ignore the entire idea folder.
160 | #.idea/
161 |
162 | out.png
163 |
--------------------------------------------------------------------------------
/EXAMPLE_STI.krz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sb-child/transport/c0ee425c7078376db91d5acb9dd871bcef749963/EXAMPLE_STI.krz
--------------------------------------------------------------------------------
/JetBrainsMono-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sb-child/transport/c0ee425c7078376db91d5acb9dd871bcef749963/JetBrainsMono-Regular.ttf
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2022 sbchild (github.com/sb-child)
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in
13 | all copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21 | THE SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # 神圣跨性别帝国护照生成器
2 |
3 | 
4 |
5 | 对了,我们永远怀念逝去的 [starmoe](https://github.com/Bro-Xun) 姐姐...
6 |
7 | ## 准备您的头像
8 |
9 | 请提前将自己的头像剪切为`4:5`格式,如需上方留有空白请提前预留。
10 |
11 | 
12 |
13 | ## 安装依赖
14 |
15 | ```bash
16 | pip3 install pillow qrcode
17 | ```
18 |
19 | ## 生成属于您的护照
20 |
21 | ```bash
22 | python3 main.py
23 | ```
24 |
25 | 您的护照将会保存在`out.png`中
26 |
27 | ## todo
28 |
29 | + [x] 自定义头像(直接更改`head.png`) https://github.com/sb-child/transport/pull/1
30 |
31 | ## license
32 |
33 | `main.py` 使用 MIT 协议
34 |
35 | `*.ttf`, `*.otf` 归原作者管
36 |
37 | `background.png`, `head.png`, `mask.png`, `EXAMPLE_STI.krz` 归原作者管
38 |
--------------------------------------------------------------------------------
/SourceSansPro-Semibold.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sb-child/transport/c0ee425c7078376db91d5acb9dd871bcef749963/SourceSansPro-Semibold.otf
--------------------------------------------------------------------------------
/background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sb-child/transport/c0ee425c7078376db91d5acb9dd871bcef749963/background.png
--------------------------------------------------------------------------------
/data-latin.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sb-child/transport/c0ee425c7078376db91d5acb9dd871bcef749963/data-latin.ttf
--------------------------------------------------------------------------------
/example.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sb-child/transport/c0ee425c7078376db91d5acb9dd871bcef749963/example.png
--------------------------------------------------------------------------------
/head.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sb-child/transport/c0ee425c7078376db91d5acb9dd871bcef749963/head.png
--------------------------------------------------------------------------------
/main.py:
--------------------------------------------------------------------------------
1 | from PIL import Image, ImageDraw, ImageFont
2 | import random
3 | import qrcode
4 | import datetime
5 |
6 |
7 | def main():
8 | name = input("您的英文名是啥? ")
9 | eth_input = input("您的变态坊是? ")
10 | if (eth_input.startswith("0x") or eth_input.startswith("0X")) and len(eth_input) == 42:
11 | eth_addr = "0x" + eth_input[2:].upper()
12 | elif len(eth_input) == 40:
13 | eth_addr = "0x" + eth_input.upper()
14 | else:
15 | eth_addr = "0x" + \
16 | "".join(random.choices("ABCDEF" + "1234567890", k=40))
17 | print("计算机无法理解您的变态坊, 于是随机生成了:", eth_addr)
18 | pron = input("您的代词是? ")
19 | if pron.find("she") != -1:
20 | pron = "ILLA/she"
21 | elif pron.find("he") != -1:
22 | pron = "ILLE/He"
23 | else:
24 | pron = "ILLVD/They"
25 | try:
26 | date_born_input = input("您的出生日期是?(格式: 2022.1.1) ")
27 | date_born_parse = datetime.datetime.strptime(
28 | date_born_input, "%Y.%m.%d")
29 | date_born = date_born_parse.strftime("%Y / %m %b / %d").upper()
30 | except KeyboardInterrupt as e:
31 | raise e
32 | except Exception as e:
33 | print("您输入的日期格式不正确:", e)
34 | return
35 | place = input("您在何处出生? ")
36 |
37 | id_1 = "P