ved_decoder 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- 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: []
|