anitomy

Crates.ioanitomy
lib.rsanitomy
version0.2.0
sourcesrc
created_at2018-06-17 11:23:08.673625
updated_at2023-11-17 12:28:28.905445
descriptionWrapper for Anitomy, the library for parsing anime video filenames
homepagehttps://github.com/Xtansia/rust-anitomy
repositoryhttps://github.com/Xtansia/rust-anitomy
max_upload_size
id70461
size39,403
Thomas Farr (Xtansia)

documentation

README

rust-anitomy

crates.io docs.rs Linux & OSX Build Status License
rust-anitomy is a Rust binding for Anitomy a C++ library for parsing anime video filenames.

Installation

Add this to your Cargo.toml:

[dependencies]
anitomy = "0.2"

Requirements

As this crate depends on anitomy-sys it's requirements also apply, see Xtansia/rust-anitomy-sys for information about anitomy-sys.

Example

extern crate anitomy;

use anitomy::{Anitomy, ElementCategory};

fn main() {
    let mut anitomy = Anitomy::new();
    match anitomy.parse("[TaigaSubs]_Toradora!_(2008)_-_01v2_-_Tiger_and_Dragon_[1280x720_H.264_FLAC][1234ABCD].mkv") {
    Ok(ref elements) => {
        println!("SUCCESS: Parsed the filename successfully!");
        println!(
            "It is: {} #{} by {}", 
            elements.get(ElementCategory::AnimeTitle).expect("anime title"), 
            elements.get(ElementCategory::EpisodeNumber).expect("episode number"), 
            elements.get(ElementCategory::ReleaseGroup).expect("release group")
        );
        println!("And extracted the following elements: {:#?}", &**elements);
    },
    Err(ref elements) => {
        println!("ERROR: Couldn't parse the filename successfully!");
        println!("But we managed to extract these elements: {:#?}", &**elements);
    },
  }
}

Which outputs:

SUCCESS: Parsed the filename successfully!
It is: Toradora! #01 by TaigaSubs
And extracted the following elements: [
    Element {
        category: FileExtension,
        value: "mkv"
    },
    Element {
        category: FileName,
        value: "[TaigaSubs]_Toradora!_(2008)_-_01v2_-_Tiger_and_Dragon_[1280x720_H.264_FLAC][1234ABCD]"
    },
    Element {
        category: VideoTerm,
        value: "H.264"
    },
    Element {
        category: VideoResolution,
        value: "1280x720"
    },
    Element {
        category: AudioTerm,
        value: "FLAC"
    },
    Element {
        category: FileChecksum,
        value: "1234ABCD"
    },
    Element {
        category: AnimeYear,
        value: "2008"
    },
    Element {
        category: EpisodeNumber,
        value: "01"
    },
    Element {
        category: ReleaseVersion,
        value: "2"
    },
    Element {
        category: AnimeTitle,
        value: "Toradora!"
    },
    Element {
        category: ReleaseGroup,
        value: "TaigaSubs"
    },
    Element {
        category: EpisodeTitle,
        value: "Tiger and Dragon"
    }
]
Commit count: 60

cargo fmt