vkpd 1.0.1 → 1.1.0

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.
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