Nicorepo
Nicorepo is an (unofficial) API client for Nicorepo on nicovideo.jp
- Fetch nicorepo logs
 - Filter them by topics and a period
 - Provides a built-in CLI and commands
 
Requirements
- ruby 2.3.0
 
Installation
Add this line to your application's Gemfile:
gem 'nicorepo'
And then execute:
$ bundle
Or install it yourself as:
$ gem install nicorepo
Usage
client = Nicorepo::Client.new
client.all
# => Returns raw logs wrapped in Nicorepo::Report
client.lives(10)
# => Returns 10 live logs
client.videos(10, from: Time.now - (3600 * 24), to: Time.now - (3600 * 48))
# => Returns 10 uploaded video logs (at most) within yesterday
client.all.format
# => Returns an array of logs formatted by Nicorepo::Report::DefaultFormatterAuthentication for nicovideo.jp
Nicorepo requires your nicovideo account and reads them from the ~/.netrc file.
Add following lines to your ~/.netrc.
machine nicovideo.jp
  login your@email.account
  password your-password
And set the permission if not yet.
$ chmod 0600 ~/.netrcStart Nicorepo CLI
$ nicorepoYou can use following commands in interactive cli.
| command | alias | description | 
|---|---|---|
| all | a | fetch all logs | 
| videos | v | fetch only video logs | 
| lives | li | fetch only live logs | 
| show | s | show current logs | 
| open REPORT-NUMBER | o | open the report url specified by number in your browser | 
| help [COMMAND] | h | Describe available commands or one specific command | 
| login | lo | re-login if your session is expired | 
| exit | e | exit interactive prompt | 
If you want only video logs, type video command.
> video
Or you can also use aliases.
> v
Some commands have options of -n, --request-num=N and -p, --limit-page=N.
For example:
> lives -n20 -p5
It fetches 20 live logs at a most, with limitation of max 5 pages.
If you omit them the default values are used for that. (the defaults are configurable)
> v
# => `video -n10 -p10`
> v -n20
# => `video -n20 -p10`
> v -p5
# => `video -n20 -p10`
And also, you can use -l, --latest, -h, --hours and -d, --days options to fetch logs in the specific period.
> all -l
Collect all logs until reach the last fetched log.
> lives -h1
Collect live logs until 1 hour ago.
Configuration for CLI
You can configure default request_num and limit_page by adding ~/.nicorepo.yaml if you want.
Please refer the sample nicorepo/.nicorepo.yaml.sample or copy it to your home directory.
Sample
request_num:
  general: 20
  videos: 5
limit_page:
  general: 5
  videos: 10
- 
general: used in all commands - 
all,videos,lives: used in each command, has higher priority thangeneral 
Contributing
- Fork it ( https://github.com/upinetree/nicorepo/fork )
 - Create your feature branch (
git checkout -b my-new-feature) - Commit your changes (
git commit -am 'Add some feature') - Push to the branch (
git push origin my-new-feature) - Create a new Pull Request