# Tripcode
[![ビルド状況](https://travis-ci.org/Huton/tripcode-rs.svg?branch=master)](https://travis-ci.org/Huton/tripcode-rs)
[![最新バージョン](http://meritbadge.herokuapp.com/tripcode)](https://crates.io/crates/tripcode)
[ドキュメント(英語)](https://docs.rs/tripcode/)
[README in English](README.md)
電子掲示板で使われているトリップをRustで扱うためのライブラリです。
## 対応状況
このクレートは以下の形式のトリップに対応しています。
* 2ちゃんねる(.net)のトリップ
* 10桁トリップ
* 生キートリップ
* 12桁トリップ
* 2ちゃんねる(.sc)のトリップ
* 15桁トリップ
* カタカナトリップ
* 4chanの(secureでない)トリップコード
## 使い方
このクレートを使用するにはあなたのプロジェクトの`Cargo.toml`に以下を追加します。
```toml
[dependencies]
tripcode = "0.2"
```
そしてクレートのルートに以下の行を追加します。
```rust
extern crate tripcode;
```
## 例
```rust
let mut tripcode;
// 2ちゃんねる(Monazilla)のトリップ
tripcode = Mona::generate(&"7 bytes");
assert_eq!("W/RvZlE2K.", &tripcode);
tripcode = Mona::generate(&"twelve bytes");
assert_eq!("t+lnR7LBqNQY", &tripcode);
tripcode = Mona::generate(&"#1145145554560721..");
assert_eq!("14cvFmVHg2", &tripcode);
// 10桁トリップ
tripcode = Mona10::generate(&"password longer than 12 bytes");
assert_eq!("ozOtJW9BFA", &tripcode);
// 生キートリップ。`try_generate()`は失敗時に`None`を返す
tripcode = MonaRaw::try_generate(&"#0123456789ABCDEF./").unwrap();
assert_eq!(&"IP9Lda5FPc", &tripcode);
// 12桁トリップ
tripcode = Mona12::generate(&"<12 bytes");
assert_eq!("/9L00Vb1PBcb", &tripcode);
// 4chanのトリップ
tripcode = Fourchan::generate(&"password");
assert_eq!("ozOtJW9BFA", &tripcode);
```
## `tripcode`コマンド
このクレートは、トリップを生成するための簡単なコマンドを提供します。
コマンドをインストールするには、シェルで以下を実行します。
```bash
cargo install tripcode
```
`tripcode`コマンドはデフォルトで4chanのトリップを生成します。
2ちゃんねるのトリップを生成するには`--type=2ch`オプションを使用します。
`tripcode`コマンドはパスワードを引数に取ります。
```bash
$ tripcode --type=2ch a b c
ZnBI2EKkq.
taAZ7oPCCM
wG1CV58ydQ
```
また、パスワードは標準入力から改行区切りで与えることもできます。
```bash
$ echo -e 'd\ne\nf' | tripcode --type=2ch -f
taZqHR8ods
xKvzozvsSk
bb6OCCHf8E
```
このコマンドは非UTF-8のエンコーディングでも動作します。
```bash
```