Skip to content

Commit

Permalink
update readme
Browse files Browse the repository at this point in the history
  • Loading branch information
tnextday committed Nov 6, 2019
1 parent 42b2a51 commit 60255aa
Show file tree
Hide file tree
Showing 3 changed files with 132 additions and 17 deletions.
51 changes: 35 additions & 16 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,24 +1,24 @@
NAME = animenamer
BINARY = animenamer

GO_VERSION = latest
GO_PROXY = https://goproxy.io
GIT_TAG = `git describe --tags`
GOOS = `go env GOHOSTOS`
GOARCH = `go env GOHOSTARCH`

GO_FLAGS = #-v -race
GO_LDFLAGS = -ldflags "\
-X github.com/tnextday/animenamer/cmd.AppVersion=`git describe --tags`\
-X github.com/tnextday/animenamer/cmd.AppVersion=$(GIT_TAG)\
-X github.com/tnextday/animenamer/cmd.BuildTime=`date '+%Y-%m-%d_%H:%M:%S'`\
-X github.com/tnextday/animenamer/cmd.DefaultTvDbApiKey=${TVDB_API_KEY}\
"
GO_VERSION = latest
GO_PROXY = https://goproxy.io


GOOS = `go env GOHOSTOS`
GOARCH = `go env GOHOSTARCH`

SOURCE_DIR = ./

all: local

.PHONY : local clean build linux-amd64 windows-amd64
.PHONY : local clean build release

clean:
go clean -i $(GO_FLAGS) $(SOURCE_DIR)
Expand All @@ -31,24 +31,43 @@ fmt:
proxy:
export GOPROXY=$(GO_PROXY)

mkdir:
build:
mkdir -p build/$(GOOS)-$(GOARCH)

build: mkdir
go build $(GO_LDFLAGS) $(GO_FLAGS) -o build/$(GOOS)-$(GOARCH)/$(BINARY) $(SOURCE_DIR)

local: proxy build

darwin-amd64:
mkdir -p build/$(GOOS)-$(GOARCH)
GOOS=darwin GOARCH=amd64 go build $(GO_LDFLAGS) $(GO_FLAGS) -o build/darwin-amd64/$(BINARY) $(SOURCE_DIR)
mkdir -p build/darwin-amd64
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build $(GO_LDFLAGS) $(GO_FLAGS) -o build/darwin-amd64/$(BINARY) $(SOURCE_DIR)
cd build/darwin-amd64 && zip ../releases/animenamer_$(GIT_TAG)_darwin_amd64.zip animenamer

linux-amd64:
mkdir -p build/linux-amd64
GOOS=linux GOARCH=amd64 go build $(GO_LDFLAGS) $(GO_FLAGS) -o build/linux-amd64/$(BINARY) $(SOURCE_DIR)
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build $(GO_LDFLAGS) $(GO_FLAGS) -o build/linux-amd64/$(BINARY) $(SOURCE_DIR)
cd build/linux-amd64 && zip ../releases/animenamer_$(GIT_TAG)_linux_amd64.zip animenamer

linux-386:
mkdir -p build/linux-386
CGO_ENABLED=0 GOOS=linux GOARCH=386 go build $(GO_LDFLAGS) $(GO_FLAGS) -o build/linux-386/$(BINARY) $(SOURCE_DIR)
cd build/linux-386 && zip ../releases/animenamer_$(GIT_TAG)_linux_386.zip animenamer

linux-arm:
mkdir -p build/linux-arm
CGO_ENABLED=0 GOOS=linux GOARCH=arm go build $(GO_LDFLAGS) $(GO_FLAGS) -o build/linux-arm/$(BINARY) $(SOURCE_DIR)
cd build/linux-arm && zip ../releases/animenamer_$(GIT_TAG)_linux_arm.zip animenamer

windows-amd64:
mkdir -p build/windows-amd64
GOOS=windows GOARCH=amd64 go build $(GO_LDFLAGS) $(GO_FLAGS) -o build/windows-amd64/$(BINARY).exe $(SOURCE_DIR)
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build $(GO_LDFLAGS) $(GO_FLAGS) -o build/windows-amd64/$(BINARY).exe $(SOURCE_DIR)
cd build/windows-amd64 && zip ../releases/animenamer_$(GIT_TAG)_windows_amd64.zip animenamer.exe

windows-386:
mkdir -p build/windows-386
CGO_ENABLED=0 GOOS=windows GOARCH=386 go build $(GO_LDFLAGS) $(GO_FLAGS) -o build/windows-386/$(BINARY).exe $(SOURCE_DIR)
cd build/windows-386 && zip ../releases/animenamer_$(GIT_TAG)_windows_386.zip animenamer.exe

release-dir:
mkdir -p build/releases

release: proxy linux-amd64 windows-amd64
release: proxy release-dir darwin-amd64 linux-amd64 linux-386 linux-arm windows-amd64 windows-386
96 changes: 96 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1 +1,97 @@
# animenamer

animenamer 是一个动画(anime)重命名工具,它可以使用`集数`(AbsoluteNumber)或者
`季集`(season&episode)来从 [thetvdb](thetvdb.com) 上获取信息。

## 主要特性

* 可以使用`集数``季集`来索引信息
* 使用正则表达式匹配文件
* 可定制文件名
* 重命名字幕文件
* 显示缺失的剧集
* 单文件无依赖,下载即可运行

## 使用方法

#### 基本使用

```
animenamer -n 海贼王 -p '.*第(?P<absolute>\d+)集\.mkv' -d ./
animenamer -n 海贼王 -p '.*第(?P<absolute>\d+)集\.mkv' ./
```
参数说明:

- `-n`: 指定剧集名称
- `-p`: 匹配文件名的正则表达式,同时指定 `absolute` (集数)在文件名中的位置
- `-d`: 只打印重命名文件,不真正执行
- `./`: 文件所在目录

#### 使用配置文件

animenamer 支持使用配置文件来设置相关参数。animenamer 默认会使用当前目录下
`animenamer.yaml`作为配置文件,也可以使用 `-c` 参数指定配置文件。

在当前目录写入默认配置文件

```
animenamer writeConfig
```

#### 详细帮助
```
animenamer -h
```

#### 代理

使用代理服务器
```
export HTTP_PROXY=<proxy-url>
export HTTPS_PROXY=<proxy-url>
animenamer [flags] <anime-files>
```

## 正则表达式匹配与新文件名格式

*正则表达式使用的是 re2 语法,详细语法请访问 [re2 Syntax](https://github.com/google/re2/wiki/Syntax)*

#### 正则表达式参数

animenamer 使用正则表达式中的`命名分组`来提取文件名中的剧集信息,命名分组的格式为`(?P<name>re)`

表达式中**必须包含 “`absolute`” 或者 “`season``episode`” 命名**
此外,如果命令行参数或者配置中没指定`series`或者`seriesId`参数,
那么也需要在正则表达式中指定。

例如:

```
正则:.*第(?P<absolute>\d+)集\.mkv
文件名:海贼王第10集.mkv
```

匹配到的集数为 **10**

#### 新文件名格式

新文件名使用 `{variable}` 格式来替换相关变量,另外支持 `{variable.n}` 这种格式对数字添 0 补位

除了使用系统保留变量 (`series`, `seriesId`, `season`, `episode`, `absolute`, `date`, `title`, `ext`),
也可以使用命名分组匹配到的变量

例如

```
正则: .*\.(?P<absolute>\d+)\.(?P<codec>.+)\.mp4
文件名: op.001.x264.mp4
新文件名格式:{series}.S{season.2}E{episode.2}.[{absolute.3}].{codec}.{ext}
```
那么新文件名为 `海贼王.S01E01.[001].x264.mp4`


## 编译

```
make
```
2 changes: 1 addition & 1 deletion cmd/missing.go
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ func init() {
`(?i).*(?P<season>\d+)x(?P<episode>\d+).*`,
},
"filename regex named pattern, \n"+
"'series', 'seriesId', 'absolute', 'season', 'episode', 'ext' is the reserved name, its may be override by tvdb info.\n")
"'absolute', 'season', 'episode' is the required name.\n")
viper.BindPFlags(missingCmd.Flags())
}

Expand Down

0 comments on commit 60255aa

Please sign in to comment.