vkontakte_client 2.1.0 → 2.2.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.
- checksums.yaml +4 -4
- data/.rubocop.yml +1 -1
- data/Gemfile +4 -0
- data/LICENSE +1 -1
- data/README.md +1 -1
- data/examples/accept_all_requests.rb +2 -2
- data/examples/friends_of_friends.rb +0 -2
- data/examples/long_poll.rb +0 -1
- data/examples/remove_out_requests.rb +1 -1
- data/lib/vkontakte/api.rb +3 -3
- data/lib/vkontakte/client.rb +29 -21
- data/lib/vkontakte/version.rb +1 -1
- data/vkontakte_client.gemspec +1 -4
- metadata +4 -44
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 365e64b86f80c85db718b455f7c211cfe2638a13246a129053017eca0493602a
|
4
|
+
data.tar.gz: eba8db9f623c92d138f9c06fab19d80e3383900638853fda2f9062ca34fc52f5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2ede0fd21608c56d6cb994537274541138eb1e3006da0476baa7ed106b76fe3ea8195b1d5eb67fa6d63816aef92055e8ad51f8c74f5fefbfff44e0e8440f530a
|
7
|
+
data.tar.gz: bab79e14426ea0634ee6644533c239344dfd43b1eac3eb95b34ed7b6d633a9794a67354c77757d4b1f62cf8f3c1d37aa2d201c3c87def558e43522f441e98ae4
|
data/.rubocop.yml
CHANGED
data/Gemfile
CHANGED
data/LICENSE
CHANGED
data/README.md
CHANGED
@@ -97,6 +97,6 @@ api.friends_get(fields: 'online', order: 'name', name_case: 'dat')
|
|
97
97
|
|
98
98
|
## License
|
99
99
|
|
100
|
-
Copyright: 2010-
|
100
|
+
Copyright: 2010-2023 Anton Maminov (anton.maminov@gmail.com)
|
101
101
|
|
102
102
|
This library is distributed under the MIT license. Please see the LICENSE file.
|
@@ -26,10 +26,10 @@ if $PROGRAM_NAME == __FILE__
|
|
26
26
|
user_ids.each do |user_id|
|
27
27
|
print "Accept user with id `#{user_id}`"
|
28
28
|
begin
|
29
|
-
vk_api.friends_add(user_id:
|
29
|
+
vk_api.friends_add(user_id:)
|
30
30
|
puts ' - OK'
|
31
31
|
rescue Vkontakte::API::Error => e
|
32
|
-
vk_api.account_banUser(user_id:
|
32
|
+
vk_api.account_banUser(user_id:) if e.error_code == 177
|
33
33
|
puts ' - Skip'
|
34
34
|
end
|
35
35
|
end
|
data/examples/long_poll.rb
CHANGED
@@ -21,7 +21,7 @@ if $PROGRAM_NAME == __FILE__
|
|
21
21
|
offset = 0
|
22
22
|
|
23
23
|
loop do
|
24
|
-
fr = vk.api.friends_getRequests(count
|
24
|
+
fr = vk.api.friends_getRequests(count:, offset: offset * count, out: 1)['items']
|
25
25
|
break if fr.empty?
|
26
26
|
|
27
27
|
out_requests << fr
|
data/lib/vkontakte/api.rb
CHANGED
@@ -61,14 +61,14 @@ module Vkontakte
|
|
61
61
|
uri.port,
|
62
62
|
@proxy.addr,
|
63
63
|
@proxy.port,
|
64
|
-
use_ssl
|
64
|
+
use_ssl:,
|
65
65
|
read_timeout: timeout,
|
66
66
|
open_timeout: timeout
|
67
67
|
) do |http|
|
68
68
|
http.request(request)
|
69
69
|
end
|
70
70
|
elsif @proxy.socks?
|
71
|
-
Net::HTTP.SOCKSProxy(@proxy.addr, @proxy.port).start(uri.hostname, uri.port, use_ssl:
|
71
|
+
Net::HTTP.SOCKSProxy(@proxy.addr, @proxy.port).start(uri.hostname, uri.port, use_ssl:) do |http|
|
72
72
|
http.request(request)
|
73
73
|
end
|
74
74
|
end
|
@@ -76,7 +76,7 @@ module Vkontakte
|
|
76
76
|
Net::HTTP.start(
|
77
77
|
uri.hostname,
|
78
78
|
uri.port,
|
79
|
-
use_ssl
|
79
|
+
use_ssl:,
|
80
80
|
read_timeout: timeout,
|
81
81
|
open_timeout: timeout
|
82
82
|
) do |http|
|
data/lib/vkontakte/client.rb
CHANGED
@@ -35,22 +35,13 @@ module Vkontakte
|
|
35
35
|
|
36
36
|
query = {
|
37
37
|
client_id: @client_id,
|
38
|
-
redirect_uri
|
39
|
-
display
|
38
|
+
redirect_uri:,
|
39
|
+
display:,
|
40
40
|
scope: permissions,
|
41
|
-
response_type
|
41
|
+
response_type:,
|
42
42
|
v: api_version
|
43
43
|
}
|
44
44
|
|
45
|
-
agent = Mechanize.new do |a|
|
46
|
-
a.user_agent_alias = 'Linux Firefox'
|
47
|
-
a.follow_meta_refresh
|
48
|
-
a.log = Logger.new($stdout) if @log
|
49
|
-
|
50
|
-
a.agent.set_socks(@proxy.addr, @proxy.port) if @proxy&.socks?
|
51
|
-
a.agent.set_proxy(@proxy.addr, @proxy.port) if @proxy&.http?
|
52
|
-
end
|
53
|
-
|
54
45
|
# Opening Authorization Dialog
|
55
46
|
#
|
56
47
|
query_string = query.map { |k, v| "#{k}=#{v}" }.join('&')
|
@@ -76,17 +67,19 @@ module Vkontakte
|
|
76
67
|
|
77
68
|
private
|
78
69
|
|
79
|
-
def
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
query_params = URI.decode_www_form(page.uri.query).to_h
|
85
|
-
authorize_url = CGI.unescape(query_params['authorize_url'])
|
70
|
+
def agent
|
71
|
+
@agent ||= Mechanize.new do |a|
|
72
|
+
a.user_agent = 'Opera/9.80 (Android; Opera Mini/7.5.33942/191.308; U; en) Presto/2.12.423 Version/12.16'
|
73
|
+
a.follow_meta_refresh
|
74
|
+
a.log = Logger.new($stdout) if @log
|
86
75
|
|
87
|
-
|
76
|
+
a.agent.set_socks(@proxy.addr, @proxy.port) if @proxy&.socks?
|
77
|
+
a.agent.set_proxy(@proxy.addr, @proxy.port) if @proxy&.http?
|
78
|
+
end
|
79
|
+
end
|
88
80
|
|
89
|
-
|
81
|
+
def initialize_vkontakte_api(auth_params)
|
82
|
+
return @api if authorized?
|
90
83
|
|
91
84
|
@access_token = auth_params[:access_token]
|
92
85
|
@user_id = auth_params[:user_id]
|
@@ -98,6 +91,21 @@ module Vkontakte
|
|
98
91
|
api_version: @api_version,
|
99
92
|
timeout: @timeout
|
100
93
|
)
|
94
|
+
end
|
95
|
+
|
96
|
+
def get_token(page)
|
97
|
+
auth_regexp = /access_token=(?<access_token>.*)&expires_in=(?<expires_in>\d+)&user_id=(?<user_id>\d*)\z/
|
98
|
+
|
99
|
+
return false unless page.uri.path == '/auth_redirect'
|
100
|
+
|
101
|
+
query_params = URI.decode_www_form(page.uri.query).to_h
|
102
|
+
authorize_url = CGI.unescape(query_params['authorize_url'])
|
103
|
+
|
104
|
+
auth_params = authorize_url.match(auth_regexp)
|
105
|
+
|
106
|
+
return false unless auth_params
|
107
|
+
|
108
|
+
initialize_vkontakte_api(auth_params)
|
101
109
|
|
102
110
|
@authorize = true
|
103
111
|
|
data/lib/vkontakte/version.rb
CHANGED
data/vkontakte_client.gemspec
CHANGED
@@ -13,14 +13,11 @@ Gem::Specification.new do |gem|
|
|
13
13
|
|
14
14
|
gem.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
|
15
15
|
gem.files = `git ls-files`.split("\n")
|
16
|
-
gem.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
17
16
|
gem.name = 'vkontakte_client'
|
18
17
|
gem.require_paths = ['lib']
|
19
18
|
gem.version = Vkontakte::VERSION
|
20
|
-
gem.required_ruby_version = '>= 2.
|
19
|
+
gem.required_ruby_version = '>= 3.2.0'
|
21
20
|
gem.add_runtime_dependency 'mechanize', '~> 2.8', '>= 2.8.0'
|
22
21
|
gem.add_runtime_dependency 'socksify', '~> 1.7', '>= 1.7.0'
|
23
|
-
gem.add_development_dependency 'pry', '~> 0.14', '>= 0.14.0'
|
24
|
-
gem.add_development_dependency 'rubocop', '~> 1.18', '>= 1.18.0'
|
25
22
|
gem.metadata['rubygems_mfa_required'] = 'true'
|
26
23
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vkontakte_client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Anton Maminov
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-10-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: mechanize
|
@@ -50,46 +50,6 @@ dependencies:
|
|
50
50
|
- - ">="
|
51
51
|
- !ruby/object:Gem::Version
|
52
52
|
version: 1.7.0
|
53
|
-
- !ruby/object:Gem::Dependency
|
54
|
-
name: pry
|
55
|
-
requirement: !ruby/object:Gem::Requirement
|
56
|
-
requirements:
|
57
|
-
- - "~>"
|
58
|
-
- !ruby/object:Gem::Version
|
59
|
-
version: '0.14'
|
60
|
-
- - ">="
|
61
|
-
- !ruby/object:Gem::Version
|
62
|
-
version: 0.14.0
|
63
|
-
type: :development
|
64
|
-
prerelease: false
|
65
|
-
version_requirements: !ruby/object:Gem::Requirement
|
66
|
-
requirements:
|
67
|
-
- - "~>"
|
68
|
-
- !ruby/object:Gem::Version
|
69
|
-
version: '0.14'
|
70
|
-
- - ">="
|
71
|
-
- !ruby/object:Gem::Version
|
72
|
-
version: 0.14.0
|
73
|
-
- !ruby/object:Gem::Dependency
|
74
|
-
name: rubocop
|
75
|
-
requirement: !ruby/object:Gem::Requirement
|
76
|
-
requirements:
|
77
|
-
- - "~>"
|
78
|
-
- !ruby/object:Gem::Version
|
79
|
-
version: '1.18'
|
80
|
-
- - ">="
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
version: 1.18.0
|
83
|
-
type: :development
|
84
|
-
prerelease: false
|
85
|
-
version_requirements: !ruby/object:Gem::Requirement
|
86
|
-
requirements:
|
87
|
-
- - "~>"
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
version: '1.18'
|
90
|
-
- - ">="
|
91
|
-
- !ruby/object:Gem::Version
|
92
|
-
version: 1.18.0
|
93
53
|
description: VKontakte API Client for Ruby
|
94
54
|
email:
|
95
55
|
- anton.maminov@gmail.com
|
@@ -137,14 +97,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
137
97
|
requirements:
|
138
98
|
- - ">="
|
139
99
|
- !ruby/object:Gem::Version
|
140
|
-
version: 2.
|
100
|
+
version: 3.2.0
|
141
101
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
142
102
|
requirements:
|
143
103
|
- - ">="
|
144
104
|
- !ruby/object:Gem::Version
|
145
105
|
version: '0'
|
146
106
|
requirements: []
|
147
|
-
rubygems_version: 3.
|
107
|
+
rubygems_version: 3.4.14
|
148
108
|
signing_key:
|
149
109
|
specification_version: 4
|
150
110
|
summary: Unofficial VKontakte API Client for Ruby
|