<commit_before># SyoboiRenamer

ファイル名をもとに[しょぼいカレンダー](http://cal.syoboi.jp/)から情報を取得し自動でリネームするプログラムです。[Chinachu](https://github.com/kanreisa/Chinachu)の録画後コマンドで使うことを前提に作りましたが、ファイル名を規則通りに付けることで、別ソフトウェアから使うこともできます。SCRenameにインスパイアされています。

このReadmeはChinachuと一緒に使うことを前提に書かれています。

## システム要件

* Ruby >= 2.2 (1.9, 2.0, 2.1でも動くかもしれませんが動作確認していません）
* しょぼいカレンダーのアカウント（チャンネル設定済み）

開発（動作確認）環境は

* Ubuntu Server 14.04 LTS
* OS X 10.9
* Ruby 2.2.1

## 設定

### config.rb

しょぼいカレンダーのユーザ名を設定してください。このユーザはしょぼいカレンダー上でチャンネル設定が済んでいる事が前提となります。

```ruby
USER = "henry"
```

リネーム後のファイル名テンプレートを設定してください。

```ruby
TEMPLATE = "$Title$/[$StTime$][$ChName$] $Title$ \#$Count$ $SubTitle$.m2ts"
```

使える書式は以下の通りです。

| 書式         | 説明                  | 
|--------------|-----------------------|
| `$Title$`    | タイトル              |
| `$SubTitle$` | サブタイトル          |
| `$Count$`    | 話数                  |
| `$ChName$`   | チャンネル名          |
| `$StTime$`   | 放送開始時間 (yymmdd) |

また、`/`が含まれる場合はディレクトリを作成します。

`config.rb`はRubyプログラムであることに注意してください。

### channel.json

チャンネルを定義します。

```json
{
    "<Chinachuのチャンネル>" : [ "<しょぼいカレンダーのチャンネル名>", "<変換後のチャンネル名>" ]
}
```

設定例は`channel.json`を参考にしてください。

### replace.json

リネーム前後の置換ルールを設定します。優先順位はそれぞれ定義した順番通りです。

```json
{
    "pre" : [
        ["<リネーム前の置換文字列>", "<置換文字列>"]
    ],
    "post" : {
        ["<リネーム後の置換文字列>", "<置換文字列>"]
    }
}
```

設定例は`replace.json`を参考にしてください。

### Chinachu

Chinachuの`recordedFormat`を以下のように変更してください。

```json
"recordedFormat": "<date:yymmddHHMM>_<title>_<type><channel>.m2ts"
```

もし、デフォルト（`[<date:yymmdd-HHMM>][<type><channel>][<tuner>]<title>.m2ts`）のまま使いたい場合は、`syobocal.rb`内の`time`, `title`, `channel`を取得する箇所を、例えば、
<commit_msg>READMEを更新<commit_after># SyoboiRenamer

ファイル名をもとに[しょぼいカレンダー](http://cal.syoboi.jp/)から情報を取得し自動でリネームするプログラムです。[Chinachu](https://github.com/kanreisa/Chinachu)の録画後コマンドで使うことを前提に作りましたが、ファイル名を規則通りに付けることで、別ソフトウェアから使うこともできます。SCRenameにインスパイアされています。

このReadmeはChinachuと一緒に使うことを前提に書かれています。

## システム要件

* Ruby >= 2.2 (1.9, 2.0, 2.1でも動くかもしれませんが動作確認していません）
* しょぼいカレンダーのアカウント（チャンネル設定済み）

開発（動作確認）環境は

* Ubuntu Server 14.04 LTS
* OS X 10.9
* Ruby 2.2.1

## 設定

### config.rb

しょぼいカレンダーのユーザ名を設定してください。このユーザはしょぼいカレンダー上でチャンネル設定が済んでいる事が前提となります。

```ruby
USER = "henry"
```

リネーム後のファイル名テンプレートを設定してください。

```ruby
TEMPLATE = "$Title$/[$StTime$][$ChName$] $Title$ \#$Count$ $SubTitle$"
```

使える書式は以下の通りです。

| 書式         | 説明                  | 
|--------------|-----------------------|
| `$Title$`    | タイトル              |
| `$SubTitle$` | サブタイトル          |
| `$Count$`    | 話数                  |
| `$ChName$`   | チャンネル名          |
| `$StTime$`   | 放送開始時間 (yymmdd) |

また、`/`が含まれる場合はディレクトリを作成します。

`config.rb`はRubyプログラムであることに注意してください。

### channel.json

チャンネルを定義します。

```json
{
    "<Chinachuのチャンネル>" : [ "<しょぼいカレンダーのチャンネル名>", "<変換後のチャンネル名>" ]
}
```

設定例は`channel.json`を参考にしてください。

### replace.json

リネーム前後の置換ルールを設定します。優先順位はそれぞれ定義した順番通りです。

```json
{
    "pre" : [
        ["<リネーム前の置換文字列>", "<置換文字列>"]
    ],
    "post" : {
        ["<リネーム後の置換文字列>", "<置換文字列>"]
    }
}
```

設定例は`replace.json`を参考にしてください。

### Chinachu

Chinachuの`recordedFormat`を以下のように変更してください（拡張子は自由）。

```json
"recordedFormat": "<date:yymmddHHMM>_<title>_<type><channel>.m2ts"
```

もし、デフォルト（`[<date:yymmdd-HHMM>][<type><channel>][<tuner>]<title>.m2ts`）のまま使いたい場合は、`syobocal.rb`内の`time`, `title`, `channel`を取得する箇所を、例えば、

{'fraction_non_alphanumeric': 0.2055371652121577, 'fraction_numerical': 0.012338248570568764, 'mean_word_length': 3.8454810495626823, 'pattern_counts': {'":': 2, '<': 35, '<?xml version=': 0, '>': 37, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3762523', 'n_tokens_mistral': 2256, 'n_tokens_neox': 2151, 'n_words': 150}