ved_decoder 1.0.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 +7 -0
- data/lib/ved_decoder/ved_pb.rb +20 -0
- data/lib/ved_decoder/version.rb +5 -0
- data/lib/ved_decoder.rb +30 -0
- metadata +60 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 1f5dc9914d0d84fc54f535a3d5a6b2c8e414902b7ac811787b4936dbe2915c40
|
4
|
+
data.tar.gz: 691c429b1c081ab73b976bba5ad3f81fe6d0bd7196f60bf0341632b95ebc43c5
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: d487a8d077a6f5f20cbbc50d1657d56577aebafd60af4db46bc258a50b6a5c80cbabb04e800311b31ab9fa4b18de44f42584d6da5996e27f11e3f1761cf141ea
|
7
|
+
data.tar.gz: 453b13efa334ab82905903b84c10b6feebe3267ed7beeb9c5a52f4f63dc6928f45d2f76d5345b1ed89fb8663db2ca57ed411cffa1eda69e3044a7d82bcef250b
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
2
|
+
# source: lib/ved_decoder/ved.proto
|
3
|
+
|
4
|
+
require 'google/protobuf'
|
5
|
+
|
6
|
+
Google::Protobuf::DescriptorPool.generated_pool.build do
|
7
|
+
add_file("lib/ved_decoder/ved.proto", :syntax => :proto2) do
|
8
|
+
add_message "ved_decoder.Ved" do
|
9
|
+
optional :index, :uint64, 1
|
10
|
+
optional :type, :uint64, 2
|
11
|
+
optional :sub_result_position, :uint64, 5
|
12
|
+
optional :result_position, :uint64, 6
|
13
|
+
optional :start_page, :uint64, 7
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
module VedDecoder
|
19
|
+
Ved = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("ved_decoder.Ved").msgclass
|
20
|
+
end
|
data/lib/ved_decoder.rb
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'base64'
|
4
|
+
require_relative "ved_decoder/version"
|
5
|
+
require_relative 'ved_decoder/ved_pb'
|
6
|
+
|
7
|
+
module VedDecoder
|
8
|
+
KEY_MAPPER = {'i' => 'index', 't' => 'type', 'r' => 'result_position', 's' => 'start_page'}
|
9
|
+
|
10
|
+
def self.decode(str)
|
11
|
+
return nil unless str.is_a?(String)
|
12
|
+
|
13
|
+
if str[0] == '1'
|
14
|
+
params = {}
|
15
|
+
str[1..].split(',').each do |param|
|
16
|
+
kv = param.strip.split(':')
|
17
|
+
next unless kv.size == 2
|
18
|
+
|
19
|
+
if key = KEY_MAPPER[kv[0]]
|
20
|
+
params[key] = kv[1].to_i
|
21
|
+
end
|
22
|
+
end
|
23
|
+
Ved.new(params)
|
24
|
+
else
|
25
|
+
Ved.decode(Base64.urlsafe_decode64(str[1..]))
|
26
|
+
end
|
27
|
+
rescue
|
28
|
+
nil
|
29
|
+
end
|
30
|
+
end
|
metadata
ADDED
@@ -0,0 +1,60 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: ved_decoder
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Yicheng Zhou
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2023-02-22 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: google-protobuf
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
description: VedDecoder is a decoder for the Google ved parameter
|
28
|
+
email:
|
29
|
+
- zyc9012@gmail.com
|
30
|
+
executables: []
|
31
|
+
extensions: []
|
32
|
+
extra_rdoc_files: []
|
33
|
+
files:
|
34
|
+
- lib/ved_decoder.rb
|
35
|
+
- lib/ved_decoder/ved_pb.rb
|
36
|
+
- lib/ved_decoder/version.rb
|
37
|
+
homepage: https://github.com/serpapi/ved_decoder
|
38
|
+
licenses:
|
39
|
+
- MIT
|
40
|
+
metadata: {}
|
41
|
+
post_install_message:
|
42
|
+
rdoc_options: []
|
43
|
+
require_paths:
|
44
|
+
- lib
|
45
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
46
|
+
requirements:
|
47
|
+
- - ">="
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: 2.4.0
|
50
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
requirements: []
|
56
|
+
rubygems_version: 3.0.3.1
|
57
|
+
signing_key:
|
58
|
+
specification_version: 4
|
59
|
+
summary: VedDecoder is a decoder for the Google ved parameter
|
60
|
+
test_files: []
|