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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4b2ce4c1ffcbc6e0b93a3db237a10af3a7c3258632b5389be761e1464542bb62
4
- data.tar.gz: 4de7110a34a4584f15382f42011705f656b556bbff7b2d479da537d80b617031
3
+ metadata.gz: 365e64b86f80c85db718b455f7c211cfe2638a13246a129053017eca0493602a
4
+ data.tar.gz: eba8db9f623c92d138f9c06fab19d80e3383900638853fda2f9062ca34fc52f5
5
5
  SHA512:
6
- metadata.gz: 2d9209f70432c4b4f635f38850c70c11b1c302b0a573935e7bb09ea602faedcc63f9e5da7b82730239395ed5e9d80db44dd7f2e61d9ef05f049158083e1ffc0e
7
- data.tar.gz: b1cf4cf5806276b724a36cff6161e050a4c4c1fd7c12f809ff1ebbf3fd04893d21bdd02d70e5d9c758450be4247f5ceadeacf5719c460c248e152604c6a3eb41
6
+ metadata.gz: 2ede0fd21608c56d6cb994537274541138eb1e3006da0476baa7ed106b76fe3ea8195b1d5eb67fa6d63816aef92055e8ad51f8c74f5fefbfff44e0e8440f530a
7
+ data.tar.gz: bab79e14426ea0634ee6644533c239344dfd43b1eac3eb95b34ed7b6d633a9794a67354c77757d4b1f62cf8f3c1d37aa2d201c3c87def558e43522f441e98ae4
data/.rubocop.yml CHANGED
@@ -1,5 +1,5 @@
1
1
  AllCops:
2
- TargetRubyVersion: 2.7
2
+ TargetRubyVersion: 3.2
3
3
  NewCops: enable
4
4
 
5
5
  Metrics/AbcSize:
data/Gemfile CHANGED
@@ -3,3 +3,7 @@
3
3
  source 'https://rubygems.org'
4
4
 
5
5
  gemspec
6
+
7
+ group :development do
8
+ gem 'rubocop', '~> 1.57', '>= 1.57.0'
9
+ end
data/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2010-2022 Anton Maminov
3
+ Copyright (c) 2010-2023 Anton Maminov
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
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-2022 Anton Maminov (anton.maminov@gmail.com)
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: 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: user_id) if e.error_code == 177
32
+ vk_api.account_banUser(user_id:) if e.error_code == 177
33
33
  puts ' - Skip'
34
34
  end
35
35
  end
@@ -3,9 +3,7 @@
3
3
  require 'bundler'
4
4
  Bundler.setup :default
5
5
 
6
- require 'pp'
7
6
  require 'vkontakte_client'
8
- require 'pry'
9
7
 
10
8
  puts Vkontakte::VERSION
11
9
 
@@ -10,7 +10,6 @@ Bundler.setup :default
10
10
 
11
11
  require 'vkontakte_client'
12
12
 
13
- require 'pp'
14
13
  require 'date'
15
14
  require 'net/http'
16
15
  require 'uri'
@@ -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: count, offset: offset * count, out: 1)['items']
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: 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: use_ssl) do |http|
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: use_ssl,
79
+ use_ssl:,
80
80
  read_timeout: timeout,
81
81
  open_timeout: timeout
82
82
  ) do |http|
@@ -35,22 +35,13 @@ module Vkontakte
35
35
 
36
36
  query = {
37
37
  client_id: @client_id,
38
- redirect_uri: redirect_uri,
39
- display: display,
38
+ redirect_uri:,
39
+ display:,
40
40
  scope: permissions,
41
- response_type: 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 get_token(page)
80
- auth_regexp = /access_token=(?<access_token>.*)&expires_in=(?<expires_in>\d+)&user_id=(?<user_id>\d*)\z/
81
-
82
- return false unless page.uri.path == '/auth_redirect'
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
- auth_params = authorize_url.match(auth_regexp)
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
- return false unless auth_params
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
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Vkontakte
4
- VERSION = '2.1.0'
4
+ VERSION = '2.2.0'
5
5
  end
@@ -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.7.0'
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.1.0
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: 2022-01-10 00:00:00.000000000 Z
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.7.0
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.3.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