Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 13 additions & 15 deletions .github/workflows/build_linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,21 +2,20 @@ name: Build Linux

on:
push:
branches: [ master ]
branches: [main]
pull_request:
branches: [ master ]
branches: [main]
env:
UPLOAD_BIN_FILE: true

jobs:

build:
name: Build
strategy:
matrix:
go-version: [ 1.19.x ]
platform: [ ubuntu-latest ]
arch: [ 386, amd64 ]
go-version: [1.19.x]
platform: [ubuntu-latest]
arch: [386, amd64]
runs-on: ${{ matrix.platform }}
steps:
- name: Check out code into the Go module directory
Expand All @@ -31,25 +30,25 @@ jobs:
if: (matrix.platform == 'ubuntu-latest' || matrix.platform == 'macos-latest') && matrix.arch == 'amd64' && env.UPLOAD_BIN_FILE
id: build_linux_amd64
env:
ACTIONS_ALLOW_UNSECURE_COMMANDS: 'true'
ACTIONS_ALLOW_UNSECURE_COMMANDS: "true"
run: |
go mod tidy
export GOARCH=${{ matrix.arch }}
export CGO_ENABLED=1
echo "FATENAME=fate_$(go env GOOS)_$(go env GOARCH)" >> $GITHUB_ENV
echo "$(go env GOOS) $(go env GOARCH)"

echo "building"
go build -o fate_$(go env GOOS)_$(go env GOARCH) -v ./cmd/console

echo "compress"
tar -zcvf fate_$(go env GOOS)_$(go env GOARCH).tar.gz ./fate_$(go env GOOS)_$(go env GOARCH)

- name: Build ${{ matrix.platform }} ${{ matrix.arch }} with Go
if: matrix.platform == 'ubuntu-latest' && matrix.arch == '386' && env.UPLOAD_BIN_FILE
id: build_linux_386
env:
ACTIONS_ALLOW_UNSECURE_COMMANDS: 'true'
ACTIONS_ALLOW_UNSECURE_COMMANDS: "true"
run: |
go mod tidy
export GOARCH=${{ matrix.arch }}
Expand All @@ -60,18 +59,18 @@ jobs:
export CC="/usr/bin/i686-linux-gnu-gcc -m32"
echo "FATENAME=fate_$(go env GOOS)_$(go env GOARCH)" >> $GITHUB_ENV
echo "$(go env GOOS) $(go env GOARCH)"

echo "building"
go build -o fate_$(go env GOOS)_$(go env GOARCH) -v ./cmd/console

echo "compress"
tar -zcvf fate_$(go env GOOS)_$(go env GOARCH).tar.gz ./fate_$(go env GOOS)_$(go env GOARCH)

- name: Upload Linux
uses: actions/upload-artifact@master
if: (matrix.platform == 'ubuntu-latest' || matrix.platform == 'macos-latest') && env.UPLOAD_BIN_FILE
env:
ACTIONS_ALLOW_UNSECURE_COMMANDS: 'true'
ACTIONS_ALLOW_UNSECURE_COMMANDS: "true"
with:
name: ${{ env.FATENAME }}.tar.gz
path: ${{ env.FATENAME }}.tar.gz
Expand All @@ -82,7 +81,7 @@ jobs:
uses: ncipollo/release-action@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token
ACTIONS_ALLOW_UNSECURE_COMMANDS: 'true'
ACTIONS_ALLOW_UNSECURE_COMMANDS: "true"
with:
artifacts: "${{ env.FATENAME }}.tar.gz"
allowUpdates: true
Expand All @@ -94,4 +93,3 @@ jobs:
token: ${{ secrets.GITHUB_TOKEN }}
draft: false
prerelease: false

4 changes: 2 additions & 2 deletions .github/workflows/build_macos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ name: Build Macos

on:
push:
branches: [ master ]
branches: [ main ]
pull_request:
branches: [ master ]
branches: [ main ]
env:
UPLOAD_BIN_FILE: true

Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/build_windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ name: Build Windows

on:
push:
branches: [ master ]
branches: [ main ]
pull_request:
branches: [ master ]
branches: [ main ]
env:
UPLOAD_BIN_FILE: true

Expand Down
81 changes: 41 additions & 40 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,21 +36,22 @@ Github上第一个开源的中文取名项目(The first chinese name create tool
1. 编写运行go代码,接口调用生成姓名

```go
//使用前请导入database的数据(测试字库已基本完善, 保险起见生成姓名后可以去一些测名网站验证下)
//加载配置(具体参数参考example/create_a_name)
// 使用前请导入database的数据(测试字库已基本完善, 保险起见生成姓名后可以去一些测名网站验证下)
// 加载配置(具体参数参考example/create_a_name)
cfg := config.Default()
//生日:
// 生日:
born := chronos.New("2020/01/23 11:31")
//姓氏:
// 姓氏:
lastName := "张"
//第一参数:姓氏
//第二参数:生日
// 第一参数:姓氏
// 第二参数:生日
f := fate.NewFate(lastName, born.Solar().Time(), fate.ConfigOption(cfg))

e := f.MakeName(context.Background())
if e != nil {
t.Fatal(e)
}

```

2. 使用预编译二进制文件生成姓名
Expand All @@ -64,8 +65,8 @@ Github上第一个开源的中文取名项目(The first chinese name create tool
```

3. ~~针对没有安装Go环境的用户,使用二进制文件在运行前务必把zoneinfo.zip下载并和二进制文件放在一起(不要解压),不然会报错.~~
~~[zoneinfo文件](https://github.com/babyname/fate/blob/master/zoneinfo.zip)~~
最新编译的版本使用了Go新版编译, 已经不再需要手动下载`zoneinfo.zip`文件了.
~~[zoneinfo文件](https://github.com/babyname/fate/blob/master/zoneinfo.zip)~~
最新编译的版本使用了Go新版编译, 已经不再需要手动下载`zoneinfo.zip`文件了.

### 常见问题

Expand Down Expand Up @@ -93,11 +94,11 @@ Github上第一个开源的中文取名项目(The first chinese name create tool
```

3. 数据库配置, 替换config.json中相关部分
- MYSQL配置:
- host填写mysql数据库的地址
- user填写mysql数据库的用户名
- pwd填写mysql数据库的密码
- name填写mysql数据库的库名
- MYSQL配置:
- host填写mysql数据库的地址
- user填写mysql数据库的用户名
- pwd填写mysql数据库的密码
- name填写mysql数据库的库名

```json
"database": {
Expand All @@ -116,8 +117,8 @@ Github上第一个开源的中文取名项目(The first chinese name create tool
},
```

- SQLITE3配置:
- name填写本地sqlite的数据库名字, 放在fate同一目录下
- SQLITE3配置:
- name填写本地sqlite的数据库名字, 放在fate同一目录下

```json
"database": {
Expand Down Expand Up @@ -152,12 +153,12 @@ FATE使用了以下算法,查询字典库自动生成匹配规则的名字.
按照每种算法的准确度,使用程度也有高有低,不会一概而否,也不会偏向单独某种算法.
不会按照个人喜好做出选择.

- 周易卦象
- 大衍之数
- 三才五格
- 喜用神(平衡用神)
- 生肖用字
- 八字吉凶
- 周易卦象
- 大衍之数
- 三才五格
- 喜用神(平衡用神)
- 生肖用字
- 八字吉凶

目前Fate以六大派为基准综合计算生成名字:

Expand All @@ -170,31 +171,31 @@ FATE使用了以下算法,查询字典库自动生成匹配规则的名字.

目前使用到的一些库:

- 八字计算(用于计算生辰): <https://github.com/godcong/chronos>
- 八字计算(用于计算生辰): <https://github.com/godcong/chronos>
- 字典数据(一个爬虫工具填充字典数据库): <https://github.com/godcong/excavator>
如果谁有更好用的可以告诉我.
如果谁有更好用的可以告诉我.

### 资料查询

1. 全国及各省重名查询网址汇总

网友提供:`https://zhuanlan.zhihu.com/p/89654568`(**请谨慎访问非本站点地址**)
[本仓库地址](./docs/chinese_name_query.md)
网友提供:`https://zhuanlan.zhihu.com/p/89654568`(**请谨慎访问非本站点地址**)
[本仓库地址](./docs/chinese_name_query.md)

## 一些废话

在过去的几年中虽然Fate经过了好几个版本的改进, 但是仍然有许多不足之处.
包括生成的名字太多不容易筛选,
有些用户遇到了一些和Go相关的问题,
一些用户不知道如何导入数据库等.
这些问题都只能慢慢想办法去解决.

还有些用户因为字典库生成的名字中有些字的寓意不好, 你可以手动删掉你不喜欢字, 却来恶意中伤作者.
我想说的是这个字也不是我造的, 你如果有问题可以去找造那个字的人.
如果觉得这个工具不好你可以不用.

最近一年中因为作者个人原因导致Fate更新缓慢, 在这里向大家道个歉.
大家也知道现在国内的IT环境, 毕竟我也要生活, 生活所迫没有太多时间放在业余的项目上.
我只能尽量抽出时间来完善Fate的规则和代码.
在这里同样要感谢支持我的朋友们, 大家的出发点我相信是一样的.
用这个工具目的都是为了给孩子取一个好名字.
在过去的几年中虽然Fate经过了好几个版本的改进, 但是仍然有许多不足之处.
包括生成的名字太多不容易筛选,
有些用户遇到了一些和Go相关的问题,
一些用户不知道如何导入数据库等.
这些问题都只能慢慢想办法去解决.

还有些用户因为字典库生成的名字中有些字的寓意不好, 你可以手动删掉你不喜欢字, 却来恶意中伤作者.
我想说的是这个字也不是我造的, 你如果有问题可以去找造那个字的人.
如果觉得这个工具不好你可以不用.

最近一年中因为作者个人原因导致Fate更新缓慢, 在这里向大家道个歉.
大家也知道现在国内的IT环境, 毕竟我也要生活, 生活所迫没有太多时间放在业余的项目上.
我只能尽量抽出时间来完善Fate的规则和代码.
在这里同样要感谢支持我的朋友们, 大家的出发点我相信是一样的.
用这个工具目的都是为了给孩子取一个好名字.
1 change: 1 addition & 0 deletions README_EN.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
[![Go Report Card](https://goreportcard.com/badge/github.com/babyname/fate)](https://goreportcard.com/report/github.com/babyname/fate)

## Introduce

A modern science chinese name create tool.
The first chinese name create tool in github
It uses some traditional Chinese algorithms. It is used to get a good name for a newborn baby.
27 changes: 14 additions & 13 deletions bazi.go
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
package fate

import (
"github.com/godcong/chronos"
"strings"

"github.com/godcong/chronos"
)

var diIndex = map[string]int{
Expand All @@ -13,7 +14,7 @@ var tianIndex = map[string]int{
"甲": 0, "乙": 1, "丙": 2, "丁": 3, "戊": 4, "己": 5, "庚": 6, "辛": 7, "壬": 8, "癸": 9,
}

//天干强度表
// 天干强度表
var tiangan = [][]int{
{1200, 1200, 1000, 1000, 1000, 1000, 1000, 1000, 1200, 1200},
{1060, 1060, 1000, 1000, 1100, 1100, 1140, 1140, 1100, 1100},
Expand All @@ -29,7 +30,7 @@ var tiangan = [][]int{
{1200, 1200, 1000, 1000, 1000, 1000, 1000, 1000, 1140, 1140},
}

//地支强度表
// 地支强度表
var dizhi = []map[string][]int{
{
"癸": {1200, 1100, 1000, 1000, 1040, 1060, 1000, 1000, 1200, 1200, 1060, 1140},
Expand Down Expand Up @@ -98,12 +99,12 @@ var wuXingDiZhi = map[string]string{
"亥": "水",
}

//WuXingTianGan 五行天干
// WuXingTianGan 五行天干
func WuXingTianGan(s string) string {
return wuXingTianGan[s]
}

//WuXingDiZhi 五行地支
// WuXingDiZhi 五行地支
func WuXingDiZhi(s string) string {
return wuXingDiZhi[s]
}
Expand All @@ -115,7 +116,7 @@ type BaZi struct {
xiyong *XiYong
}

//NewBazi 创建八字
// NewBazi 创建八字
func NewBazi(calendar chronos.Calendar) *BaZi {
ec := calendar.Lunar().EightCharacter()
return &BaZi{
Expand All @@ -129,26 +130,26 @@ func (z *BaZi) String() string {
return strings.Join(z.baZi, "")
}

//RiZhu 日主
// RiZhu 日主
func (z *BaZi) RiZhu() string {
return z.baZi[4]
}

func (z *BaZi) calcXiYong() {
z.xiyong = &XiYong{}
//TODO:need fix
z.point().calcSimilar().calcHeterogeneous() //.yongShen().xiShen()
// TODO:need fix
z.point().calcSimilar().calcHeterogeneous() // .yongShen().xiShen()
}

//XiYong 喜用神
// XiYong 喜用神
func (z *BaZi) XiYong() *XiYong {
if z.xiyong == nil {
z.calcXiYong()
}
return z.xiyong
}

//XiYongShen 平衡用神
// XiYongShen 平衡用神
func (z *BaZi) XiYongShen() string {
return z.XiYong().Shen()
}
Expand Down Expand Up @@ -180,7 +181,7 @@ func baziToWuXing(bazi []string) []string {
return wx
}

//计算同类
// 计算同类
func (z *BaZi) calcSimilar() *BaZi {
for i := range sheng {
if wuXingTianGan[z.RiZhu()] == sheng[i] {
Expand All @@ -200,7 +201,7 @@ func (z *BaZi) calcSimilar() *BaZi {
return z
}

//计算异类
// 计算异类
func (z *BaZi) calcHeterogeneous() *BaZi {
for i := range sheng {
for ti := range z.xiyong.Similar {
Expand Down
6 changes: 4 additions & 2 deletions bazi_test.go
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
package fate_test

import (
"github.com/godcong/chronos"
"github.com/babyname/fate"
"log"
"testing"

"github.com/godcong/chronos"

"github.com/babyname/fate"
)

func TestPoint(t *testing.T) {
Expand Down
Loading
Loading