vkpd 1.0.1 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
data/README CHANGED
@@ -1,8 +1,5 @@
1
1
  vkpd [options] [search request]
2
2
 
3
- Requirements:
4
- vkpd requires mpc to work and sinatra to authenticate
5
-
6
3
  Options:
7
4
 
8
5
  -c, --count=n
@@ -21,17 +18,17 @@ Options:
21
18
  Add songs to current playlist instead of replacing it
22
19
 
23
20
  Some examples:
24
- vkpd Beatles # replaces current mpd playlist with The Beatles' songs and starts playing
25
- vkpd play Beatles # the same
26
- vkpd add Beatles # adds found songs to playlist and starts playing
27
- vkpd -c 5 Beatles # get just first five search results
28
- vkpd -c 5 -o 5 beatles # get second five results
29
- vkpd --count 5 --offset=5 beatles # the same
30
- vkpd user 3885655 # plays user's songs
31
- vkpd user 3885655 -c 3 # plays last three songs added by user
32
- vkpd user # current user's songs
33
- vkpd user -c 1 # current user's last added song
34
- vkpd group 1 # plays songs from group with id = 1
35
- vkpd --no-fix Beetles # prevents from searching for Beatles
36
- vkpd -nf Beetles # same as above
37
- vkpd -s 1 Beatles # sorted by length. 0 to sort by popularity, 2 to sort by upload date
21
+ vkpd Beatles # replaces current mpd playlist with The Beatles' songs and starts playing
22
+ vkpd play Beatles # the same
23
+ vkpd add Beatles # adds found songs to playlist and starts playing
24
+ vkpd -c 5 Beatles # get just first five search results
25
+ vkpd -c 5 -o 5 beatles # get second five results
26
+ vkpd --count 5 --offset=5 beatles # the same
27
+ vkpd user 3885655 # plays user's songs
28
+ vkpd user 3885655 -c 3 # plays last three songs added by user
29
+ vkpd user # current user's songs
30
+ vkpd user -c 1 # current user's last added song
31
+ vkpd group 1 # plays songs from group with id = 1
32
+ vkpd --no-fix Beetles # prevents from searching for Beatles
33
+ vkpd -nf Beetles # same as above
34
+ vkpd -s 1 Beatles # sorted by length. 0 to sort by popularity, 2 to sort by upload date
@@ -0,0 +1,40 @@
1
+ #VKPD
2
+
3
+ VKPD searches for music on social network vk.com and adds/plays it with MPD.
4
+ [![Gem Version](https://badge.fury.io/rb/vkpd.png)](http://badge.fury.io/rb/vkpd)
5
+
6
+ ##Run
7
+ vkpd [options] [search request]
8
+
9
+ ##Options
10
+
11
+ -c, --count=n
12
+ Limit songs count
13
+ -o, --offset=n
14
+ Drop first n results
15
+ -s, --sort=n
16
+ Sort by: 0 - popularity, 1 - length, 2 - upload date
17
+ -nf, --no-fix, --exact
18
+ Do not try to fix typos
19
+ user [user_id]
20
+ Load user songs. If user_id not supplied use current user's id
21
+ group <group_id>
22
+ Load group songs
23
+ add
24
+ Add songs to current playlist instead of replacing it
25
+
26
+ ##Some examples
27
+ vkpd Beatles # replaces current mpd playlist with The Beatles' songs and starts playing
28
+ vkpd play Beatles # the same
29
+ vkpd add Beatles # adds found songs to playlist and starts playing
30
+ vkpd -c 5 Beatles # get just first five search results
31
+ vkpd -c 5 -o 5 beatles # get second five results
32
+ vkpd --count 5 --offset=5 beatles # the same
33
+ vkpd user 3885655 # plays user's songs
34
+ vkpd user 3885655 -c 3 # plays last three songs added by user
35
+ vkpd user # current user's songs
36
+ vkpd user -c 1 # current user's last added song
37
+ vkpd group 1 # plays songs from group with id = 1
38
+ vkpd --no-fix Beetles # prevents from searching for Beatles
39
+ vkpd -nf Beetles # same as above
40
+ vkpd -s 1 Beatles # sorted by length. 0 to sort by popularity, 2 to sort by upload date
@@ -1,11 +1,12 @@
1
1
  # -*- coding: utf-8; mode: ruby -*-
2
- require "net/http"
3
- require "net/https"
4
- require "cgi"
5
- require "yaml"
6
- require "json"
7
- require "pathname"
8
- require "sinatra/base"
2
+ require 'net/http'
3
+ require 'net/https'
4
+ require 'cgi'
5
+ require 'yaml'
6
+ require 'json'
7
+ require 'pathname'
8
+ require 'sinatra/base'
9
+ require 'ruby-mpd'
9
10
  require 'vkpd/version'
10
11
  require 'vkpd/cli'
11
12
  require 'vkpd/auth'
@@ -11,10 +11,12 @@ module Vkpd
11
11
 
12
12
  # main CLI method
13
13
  def main
14
+ mpd = MPD.new 'localhost'
15
+ mpd.connect
14
16
  method = "audio.search"
15
17
  params = {}
16
- action_before = 'mpc clear'
17
- action_after = 'mpc play'
18
+ do_clear = true
19
+ do_play = true
18
20
  params["auto_complete"] = '1'
19
21
 
20
22
  if ARGV.empty?
@@ -50,8 +52,8 @@ module Vkpd
50
52
  method = 'audio.get'
51
53
  params['gid'] = ARGV.shift
52
54
  when 'add'
53
- action_before = ''
54
- action_after = ''
55
+ do_clear = false
56
+ do_play = false
55
57
  when '-nf','--no-fix', '--exact'
56
58
  params["auto_complete"] = '0'
57
59
  when 'auth'
@@ -74,11 +76,11 @@ module Vkpd
74
76
  if method.match /search/
75
77
  response.shift
76
78
  end
77
- run action_before
79
+ mpd.clear if do_clear
78
80
  response.each do |song|
79
- run "mpc add #{song["url"]}"
81
+ mpd.add song["url"]
80
82
  end
81
- run action_after
83
+ mpd.play if do_play
82
84
  end
83
85
 
84
86
  private
@@ -1,3 +1,3 @@
1
1
  module Vkpd
2
- VERSION = "1.0.1"
2
+ VERSION = "1.1.0"
3
3
  end
@@ -19,6 +19,7 @@ Gem::Specification.new do |spec|
19
19
  spec.require_paths = ["lib"]
20
20
 
21
21
  spec.add_dependency "sinatra"
22
+ spec.add_dependency "ruby-mpd", ">= 0.2.4"
22
23
  spec.add_development_dependency "bundler", "~> 1.3"
23
24
  spec.add_development_dependency "rake"
24
25
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vkpd
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.1.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -27,6 +27,22 @@ dependencies:
27
27
  - - ! '>='
28
28
  - !ruby/object:Gem::Version
29
29
  version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: ruby-mpd
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: 0.2.4
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: 0.2.4
30
46
  - !ruby/object:Gem::Dependency
31
47
  name: bundler
32
48
  requirement: !ruby/object:Gem::Requirement
@@ -72,6 +88,7 @@ files:
72
88
  - Gemfile
73
89
  - LICENSE.txt
74
90
  - README
91
+ - README.md
75
92
  - Rakefile
76
93
  - bin/vkpd
77
94
  - lib/vkpd.rb