rmpv 0.0.5 → 0.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +18 -4
- data/bin/rmpv +86 -21
- data/lib/rmpv/build.rb +3 -0
- data/lib/rmpv/myanimelist.rb +52 -1
- data/lib/rmpv/option.rb +32 -29
- data/lib/rmpv/trakt.rb +49 -12
- data/lib/rmpv/version.rb +1 -1
- data/rmpv.gemspec +9 -2
- metadata +48 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 14cc0292b7e89738dd567e5f3d5ead179b58f41e
|
4
|
+
data.tar.gz: 87eee049d1d0b4e91e9d89ed55ff5e943dc45e77
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d46482ddee8fde0b9b1e956a39f1a35c849a95450526faaea843b25b2febca0bcb4b46a2dfee7d175229a1e6a1bd93fff039e5a0a8e2df480d42ec8ef7d45112
|
7
|
+
data.tar.gz: 864a9f3116a8643104aec6897496529c4fbc02baa1681e8c38440981119d557c5948fc02e18ac7199632fbbd5d2ebcd3587a1e9c6bfb60b639296dfdf42b2a23
|
data/README.md
CHANGED
@@ -21,6 +21,23 @@ Or install it yourself as:
|
|
21
21
|
|
22
22
|
## Usage
|
23
23
|
|
24
|
+
First create a `.rmpvrc` file (which BTW is just a yaml file) in your home directory and add the following content:
|
25
|
+
|
26
|
+
```yaml
|
27
|
+
trakt:
|
28
|
+
username: TRAKT_USERNAME
|
29
|
+
password: SHA1_HASH_OF_YOUR_PASSWORD
|
30
|
+
myanimelist:
|
31
|
+
username: MYANIMELIST_USERNAME
|
32
|
+
password: MYANIMELIST_PASSWORD
|
33
|
+
```
|
34
|
+
|
35
|
+
You can use the following command to generate the SHA1 hash of your password:
|
36
|
+
|
37
|
+
```sh
|
38
|
+
echo -n trakt_password | sha1sum | awk '{print toupper($1)}'
|
39
|
+
```
|
40
|
+
|
24
41
|
Usage: rmpv [options]
|
25
42
|
|
26
43
|
-+, --vol=VOL increase volume by VOL
|
@@ -30,15 +47,12 @@ Or install it yourself as:
|
|
30
47
|
-s, --size STR set size of the player
|
31
48
|
-y, --youtube youtube mode
|
32
49
|
-a, --audio audio mode
|
33
|
-
-
|
50
|
+
-c, --scrobble STR scrobble 'movie' or 'show' to trakt or 'anime' to myanimelist
|
34
51
|
|
35
52
|
|
36
|
-
TODO: Write usage instructions here
|
37
|
-
|
38
53
|
## Todo
|
39
54
|
|
40
55
|
- Add myanimelist scrobble support
|
41
|
-
- Use trakt scrobble rather than trakt seen for scrobbling. (This requires that we add scrobble support to [traktr](https://github.com/joelanford/traktr)).
|
42
56
|
|
43
57
|
## Contributing
|
44
58
|
|
data/bin/rmpv
CHANGED
@@ -5,43 +5,108 @@
|
|
5
5
|
require "shellwords"
|
6
6
|
require "to_name"
|
7
7
|
require "rmpv"
|
8
|
+
require 'highline/import'
|
8
9
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
pwd = Dir.pwd
|
10
|
+
def yesno(prompt = 'Continue?', default = true)
|
11
|
+
a = ''
|
12
|
+
s = default ? '[Y/n]' : '[y/N]'
|
13
|
+
d = default ? 'y' : 'n'
|
14
|
+
until %w[y n].include? a
|
15
|
+
a = ask("#{prompt} #{s} ") { |q| q.limit = 1; q.case = :downcase }
|
16
|
+
a = d if a.length == 0
|
17
|
+
end
|
18
|
+
a == 'y'
|
19
|
+
end
|
20
20
|
|
21
21
|
# check if there is a .mp file in the current directory and add it as options
|
22
|
-
|
23
22
|
if File.exists? ".mp"
|
24
23
|
File.open(".mp", "r").each do |line|
|
25
24
|
ARGV << line.chomp
|
26
25
|
end
|
27
|
-
end
|
26
|
+
end
|
28
27
|
|
29
28
|
# parse options
|
30
|
-
cmd, options = Rmpv::Option.parse(ARGV
|
31
|
-
|
29
|
+
cmd, options = Rmpv::Option.parse(ARGV)
|
32
30
|
cmd = Rmpv::Option.command(cmd, options)
|
33
31
|
|
34
32
|
# begin execution
|
35
33
|
file = Shellwords.shelljoin(ARGV)
|
36
|
-
|
37
34
|
mpv = cmd.join(" ") + " " + file
|
38
|
-
|
39
35
|
puts "running '#{mpv}'..."
|
40
|
-
|
36
|
+
|
37
|
+
progress = 0
|
38
|
+
time = 0
|
39
|
+
|
40
|
+
# set as watching
|
41
|
+
if options[:method] == 'show'
|
42
|
+
show = ToName.to_name(file)
|
43
|
+
@trak = Rmpv::Trakt.new
|
44
|
+
wat = Thread.new do
|
45
|
+
loop do
|
46
|
+
duration = @trak.watching(show, progress)
|
47
|
+
sleep(600) # wait for 10 minutes
|
48
|
+
time += 10
|
49
|
+
progress = time*100/duration
|
50
|
+
puts progress
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
if options[:method] == 'movie'
|
56
|
+
movie = ToName.to_name(file)
|
57
|
+
@trak = Rmpv::Trakt.new
|
58
|
+
wat = Thread.new do
|
59
|
+
loop do
|
60
|
+
duration = @trak.watching(movie, progress, 'movie')
|
61
|
+
sleep(900) # wait for 15 minutes
|
62
|
+
time += 10
|
63
|
+
progress = time*100/duration
|
64
|
+
puts progress
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
|
70
|
+
pid = spawn(mpv)
|
71
|
+
Process.wait(pid)
|
72
|
+
|
73
|
+
Thread.kill(wat)
|
41
74
|
|
42
75
|
# mark as seen on trakt
|
43
|
-
if options[:
|
76
|
+
if options[:method] == 'show'
|
44
77
|
show = ToName.to_name(file)
|
45
|
-
trak = Rmpv::Trakt.new
|
46
|
-
|
78
|
+
@trak = Rmpv::Trakt.new
|
79
|
+
puts progress
|
80
|
+
if progress>=50
|
81
|
+
@trak.scrobble(show, progress)
|
82
|
+
else
|
83
|
+
choice = yesno("Did not complete. Do you still want to scrobble?", false)
|
84
|
+
if choice == 'y'
|
85
|
+
@trak.scrobble(show, progress)
|
86
|
+
else
|
87
|
+
exit
|
88
|
+
end
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
if options[:method] == 'movie'
|
93
|
+
movie = ToName.to_name(file)
|
94
|
+
@trak = Rmpv::Trakt.new
|
95
|
+
puts progress
|
96
|
+
if progress>=50
|
97
|
+
@trak.scrobble(movie, progress, 'movie')
|
98
|
+
else
|
99
|
+
choice = yesno("Did not complete. Do you still want to scrobble?", false)
|
100
|
+
if choice == 'y'
|
101
|
+
@trak.scrobble(movie, progress, 'movie')
|
102
|
+
else
|
103
|
+
exit
|
104
|
+
end
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
108
|
+
if options[:method] == 'anime'
|
109
|
+
@anime = Rmpv::Myanimelist.new
|
110
|
+
ani, ep = Rmpv::Myanimelist.parse(file)
|
111
|
+
@anime.scrobble(ani, ep)
|
47
112
|
end
|
data/lib/rmpv/build.rb
ADDED
data/lib/rmpv/myanimelist.rb
CHANGED
@@ -5,6 +5,57 @@
|
|
5
5
|
#
|
6
6
|
# Copyright rejuvyesh <mail@rejuvyesh.com>, 2013
|
7
7
|
|
8
|
+
require 'yaml'
|
9
|
+
require 'myanimelist'
|
10
|
+
require 'httparty'
|
11
|
+
|
8
12
|
module Rmpv
|
9
|
-
|
13
|
+
class MALRequester
|
14
|
+
include HTTParty
|
15
|
+
base_uri 'myanimelist.net'
|
16
|
+
# headers 'User-Agent' => "api-team-f894427cc1c571f79da49605ef8b112f"
|
17
|
+
end
|
18
|
+
|
19
|
+
class Myanimelist
|
20
|
+
##
|
21
|
+
# Initialize the Myanimelist client
|
22
|
+
def initialize
|
23
|
+
myanimeconfig = YAML.load File.open("#{Dir.home}/.rmpvrc")
|
24
|
+
MyAnimeList.configure do |config|
|
25
|
+
config.username = myanimeconfig["myanimelist"]["username"]
|
26
|
+
config.password = myanimeconfig["myanimelist"]["password"]
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
##
|
31
|
+
# Parse the file names
|
32
|
+
#
|
33
|
+
# @param [String] file name
|
34
|
+
# @return [String, Fixnum] name of the show and episode number
|
35
|
+
def parse(file)
|
36
|
+
raw_name = file
|
37
|
+
raw_name = raw_name[0, raw_name.rindex(/\./)] # remove extension
|
38
|
+
raw_name = raw_name.gsub(/(\.|_|\-)/, '') # Chars used in filenames as a substitute for spaces
|
39
|
+
raw_name = raw_name.gsub(/\(.*?\)/, '') # Remove anything surrounded by paranthesis
|
40
|
+
raw_name = raw_name.gsub(/\[.*?\]/, '') # Remove anything surrounded by paranthesis
|
41
|
+
ep = /(\d+)/.match(raw_name)[1]
|
42
|
+
name = raw_name.gsub(/(\d+)/, '').strip!
|
43
|
+
episode = ep.nil? ? 1 : ep.to_i
|
44
|
+
return name, episode
|
45
|
+
end
|
46
|
+
|
47
|
+
def scrobble(anime, ep)
|
48
|
+
tries = 5
|
49
|
+
begin
|
50
|
+
info = MyAnimeList.search_anime(anime)
|
51
|
+
rescue Exception => e
|
52
|
+
tries -= 1
|
53
|
+
if tries > 0
|
54
|
+
retry
|
55
|
+
else
|
56
|
+
puts "Couldn't connect to Myanimelist servers: #{e}"
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
10
61
|
end
|
data/lib/rmpv/option.rb
CHANGED
@@ -15,20 +15,19 @@ module Rmpv
|
|
15
15
|
##
|
16
16
|
# Parses the commandline options
|
17
17
|
# args : the arguments to be passed
|
18
|
-
# cmd : variable to which options are being added
|
19
|
-
# options : value of the options
|
20
18
|
#
|
21
19
|
# returns the new cmd and options
|
22
|
-
|
23
|
-
def self.parse
|
20
|
+
|
21
|
+
def self.parse(args)
|
22
|
+
cmd = ['mpv']
|
23
|
+
options = { volume: 0, speed: 1.0, }
|
24
24
|
begin
|
25
25
|
OptionParser.new do |opts|
|
26
|
-
opts.banner =
|
26
|
+
opts.banner = 'Usage: rmpv [options]'
|
27
27
|
|
28
28
|
opts.on("-+", "--vol=VOL", Integer, "increase volume by VOL") do |v|
|
29
29
|
options[:volume] = v
|
30
30
|
end
|
31
|
-
|
32
31
|
opts.on("-l", "--top-left", "play in top-left corner of the screen") do |tl|
|
33
32
|
options[:position] = :top_left
|
34
33
|
end
|
@@ -38,56 +37,60 @@ module Rmpv
|
|
38
37
|
opts.on("-x", "--speed SPEED", Float, "increase speed by SPEED") do |x|
|
39
38
|
options[:speed] = x
|
40
39
|
end
|
41
|
-
opts.on("-s", "--size STR", "set size of the player") do |sa|
|
40
|
+
opts.on("-s", "--size STR", "set size of the player") do |sa|
|
42
41
|
options[:size] = sa
|
43
42
|
end
|
44
43
|
opts.on("-y", "--youtube", "youtube mode") do |y|
|
44
|
+
options[:mode] = 'youtube'
|
45
45
|
options[:speed] = 1.5
|
46
|
-
cmd << "--cache-default=2048"
|
47
46
|
end
|
48
47
|
opts.on("-a", "--audio", "audio mode") do |a|
|
49
|
-
|
48
|
+
options[:mode] = 'audio'
|
50
49
|
end
|
51
|
-
opts.on("-
|
52
|
-
options[:
|
50
|
+
opts.on("-c", "--scrobble STR", "scrobble 'movie' or 'show' to trakt or 'anime' to myanimelist") do |sa|
|
51
|
+
options[:method] = sa.downcase
|
53
52
|
end
|
54
53
|
end.parse!
|
55
|
-
|
56
54
|
rescue OptionParser::InvalidOption => e
|
57
|
-
cmd << e.to_s.sub(/^invalid option:\s+/,
|
55
|
+
cmd << e.to_s.sub(/^invalid option:\s+/, '')
|
58
56
|
end
|
59
|
-
|
60
57
|
return cmd, options
|
61
58
|
end
|
62
59
|
|
63
60
|
##
|
64
61
|
# Adds options to the command to be passed to mpv
|
65
|
-
|
66
|
-
def self.command
|
62
|
+
|
63
|
+
def self.command(cmd, options)
|
64
|
+
## Saner defaults
|
65
|
+
# save position on exit
|
66
|
+
cmd << '--save-position-on-quit'
|
67
|
+
# audio filter
|
68
|
+
# Remove chirping at higher speed
|
69
|
+
cmd << "--af=scaletempo"
|
70
|
+
|
67
71
|
# size
|
68
|
-
if options[:size]
|
69
|
-
cmd << "--autofit='#{options[:size]}'"
|
70
|
-
end
|
72
|
+
cmd << "--autofit='#{options[:size]}'" if options[:size]
|
71
73
|
|
74
|
+
# position
|
72
75
|
if options[:position] == :top_left
|
73
76
|
cmd << "--geometry='0:17'"
|
74
77
|
elsif options[:position] == :bottom_right
|
75
78
|
cmd << "--geometry='100%:97%'"
|
76
79
|
end
|
77
80
|
|
78
|
-
# audio
|
79
|
-
|
80
|
-
|
81
|
-
if options[:
|
82
|
-
cmd << "--af=volume=#{options[:volume]}"
|
83
|
-
end
|
81
|
+
# audio
|
82
|
+
cmd << "--af=volume=#{options[:volume]}" if options[:volume].nonzero?
|
83
|
+
|
84
|
+
cmd << "--audio-display=no --gapless-audio" if options[:mode] == 'audio'
|
84
85
|
|
85
86
|
# speed increase
|
86
|
-
if options[:speed] != 1.0
|
87
|
-
|
88
|
-
|
87
|
+
cmd << "--speed=#{options[:speed]}" if options[:speed] != 1.0
|
88
|
+
|
89
|
+
# youtube mode
|
90
|
+
|
91
|
+
cmd << "--cache-default=2048" if options[:mode] == 'youtube'
|
89
92
|
|
90
|
-
|
93
|
+
cmd
|
91
94
|
end
|
92
95
|
end
|
93
96
|
end
|
data/lib/rmpv/trakt.rb
CHANGED
@@ -5,36 +5,73 @@
|
|
5
5
|
#
|
6
6
|
# Copyright rejuvyesh <mail@rejuvyesh.com>, 2013
|
7
7
|
|
8
|
-
require
|
9
|
-
require
|
8
|
+
require 'traktr'
|
9
|
+
require 'yaml'
|
10
|
+
require 'rmpv/version'
|
10
11
|
|
11
12
|
module Rmpv
|
12
13
|
class Trakt
|
13
14
|
|
14
15
|
##
|
15
16
|
# Initialize the trakt client
|
16
|
-
|
17
|
+
TRAKTAPIKEY = '5d7b4164188a3974e0ff4f0c571058dcd3a06f47'
|
18
|
+
|
17
19
|
def initialize
|
18
|
-
traktconfig = YAML.load File.open("#{Dir.home}/.
|
19
|
-
@trakt = Traktr::Client.new(
|
20
|
+
traktconfig = YAML.load File.open("#{Dir.home}/.rmpvrc")
|
21
|
+
@trakt = Traktr::Client.new(TRAKTAPIKEY, \
|
22
|
+
traktconfig["trakt"]["username"], \
|
23
|
+
traktconfig["trakt"]["password"], true)
|
24
|
+
end
|
25
|
+
|
26
|
+
##
|
27
|
+
# Set as watching
|
28
|
+
|
29
|
+
def watching(show, progress, type='show')
|
30
|
+
tries = 5
|
31
|
+
begin
|
32
|
+
if type == 'show'
|
33
|
+
info = @trakt.search.shows(show.name)
|
34
|
+
res = @trakt.show.watching(info[0], show.series, show.episode, \
|
35
|
+
progress, Rmpv::VERSION, Rmpv::BUILD)
|
36
|
+
elsif type == 'movie'
|
37
|
+
info = @trakt.search.movies(show.name)
|
38
|
+
res = @trakt.movie.watching(info[0], progress, \
|
39
|
+
Rmpv::VERSION, Rmpv::BUILD)
|
40
|
+
end
|
41
|
+
puts "Watching to trakt (Y) - #{show.name}"
|
42
|
+
rescue Exception => e
|
43
|
+
tries -= 1
|
44
|
+
if tries > 0
|
45
|
+
retry
|
46
|
+
else
|
47
|
+
puts "Couldn't connect to trakt servers: #{e}, #{res}"
|
48
|
+
end
|
49
|
+
end
|
50
|
+
info[0].runtime # return duration
|
20
51
|
end
|
21
52
|
|
22
53
|
##
|
23
54
|
# Scrobble the show
|
24
|
-
|
25
|
-
def scrobble show
|
55
|
+
|
56
|
+
def scrobble(show, progress, type='show')
|
26
57
|
tries = 5
|
27
58
|
begin
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
59
|
+
if type == 'show'
|
60
|
+
info = @trakt.search.shows(show.name)
|
61
|
+
res = @trakt.show.scrobble(info[0], show.series, show.episode,\
|
62
|
+
progress, Rmpv::VERSION, Rmpv::BUILD)
|
63
|
+
elsif type == 'movie'
|
64
|
+
info = @trakt.search.movies(show.name)
|
65
|
+
res = @trakt.movie.scrobble(info[0], progress, \
|
66
|
+
Rmpv::VERSION, Rmpv::BUILD)
|
67
|
+
end
|
68
|
+
puts "Scrobbled to trakt (Y) - #{show.name}"
|
32
69
|
rescue Exception => e
|
33
70
|
tries -= 1
|
34
71
|
if tries > 0
|
35
72
|
retry
|
36
73
|
else
|
37
|
-
puts "Couldn't connect to trakt servers: #{res}"
|
74
|
+
puts "Couldn't connect to trakt servers: #{e}, #{res}"
|
38
75
|
end
|
39
76
|
end
|
40
77
|
end
|
data/lib/rmpv/version.rb
CHANGED
data/rmpv.gemspec
CHANGED
@@ -13,16 +13,23 @@ Gem::Specification.new do |spec|
|
|
13
13
|
spec.homepage = "http://github.com/rejuvyesh/rmpv"
|
14
14
|
spec.license = "MIT"
|
15
15
|
|
16
|
-
spec.
|
16
|
+
spec.has_rdoc = 'yard'
|
17
17
|
spec.extra_rdoc_files = %w[README.md]
|
18
|
+
|
18
19
|
spec.files = `git ls-files`.split($/)
|
19
20
|
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
20
21
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
21
22
|
spec.require_paths = ["lib"]
|
22
23
|
|
24
|
+
spec.post_install_message = 'Please report any issues at: ' \
|
25
|
+
'https://github.com/rejuvyesh/rmpv/issues/new'
|
26
|
+
|
23
27
|
spec.add_development_dependency "bundler", "~> 1.3"
|
24
28
|
spec.add_development_dependency "rake"
|
25
|
-
|
29
|
+
spec.add_development_dependency "yard"
|
30
|
+
|
26
31
|
spec.add_dependency "traktr"
|
32
|
+
spec.add_dependency "myanimelist"
|
27
33
|
spec.add_dependency "toname"
|
34
|
+
spec.add_dependency "highline"
|
28
35
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rmpv
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.1.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- rejuvyesh
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-12-
|
11
|
+
date: 2013-12-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -38,6 +38,20 @@ dependencies:
|
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: yard
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
41
55
|
- !ruby/object:Gem::Dependency
|
42
56
|
name: traktr
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -52,6 +66,20 @@ dependencies:
|
|
52
66
|
- - ">="
|
53
67
|
- !ruby/object:Gem::Version
|
54
68
|
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: myanimelist
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
55
83
|
- !ruby/object:Gem::Dependency
|
56
84
|
name: toname
|
57
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -66,6 +94,20 @@ dependencies:
|
|
66
94
|
- - ">="
|
67
95
|
- !ruby/object:Gem::Version
|
68
96
|
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: highline
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :runtime
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
69
111
|
description: Ruby wrapper for mpv
|
70
112
|
email:
|
71
113
|
- mail@rejuvyesh.com
|
@@ -82,6 +124,7 @@ files:
|
|
82
124
|
- Rakefile
|
83
125
|
- bin/rmpv
|
84
126
|
- lib/rmpv.rb
|
127
|
+
- lib/rmpv/build.rb
|
85
128
|
- lib/rmpv/myanimelist.rb
|
86
129
|
- lib/rmpv/option.rb
|
87
130
|
- lib/rmpv/trakt.rb
|
@@ -91,9 +134,8 @@ homepage: http://github.com/rejuvyesh/rmpv
|
|
91
134
|
licenses:
|
92
135
|
- MIT
|
93
136
|
metadata: {}
|
94
|
-
post_install_message:
|
95
|
-
rdoc_options:
|
96
|
-
- "--charset=UTF-8"
|
137
|
+
post_install_message: 'Please report any issues at: https://github.com/rejuvyesh/rmpv/issues/new'
|
138
|
+
rdoc_options: []
|
97
139
|
require_paths:
|
98
140
|
- lib
|
99
141
|
required_ruby_version: !ruby/object:Gem::Requirement
|
@@ -113,4 +155,4 @@ signing_key:
|
|
113
155
|
specification_version: 4
|
114
156
|
summary: A ruby wrapper around mpv with trakt and myanimelist scobble support
|
115
157
|
test_files: []
|
116
|
-
has_rdoc:
|
158
|
+
has_rdoc: yard
|