vaccine-finder 0.1.2 → 0.1.7
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/lib/vaccine-spotter.rb +15 -4
- metadata +103 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b7c59363cf8627f383661d103f56ad2bc8908aa5a5c98a88fc18ff46f93c2fff
|
4
|
+
data.tar.gz: fff7002723dd78f809209ffc733b12ae710c51f4e5a797031a8e73149d9f9ca5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 013cafab525ef10eac7f9c4e8d175f0b121b2be4d642c409900c5ad40613d7b891cd2997eccd847fb0b7ed6b29bd1cffe05796ec6d449c9f0d1ebd77859b24b2
|
7
|
+
data.tar.gz: 374336e333588cb1bb992528e2c56137f6c25eb72fb8eb71dc6d6160df7e9aa89fac807893446b97a34192440f71c1386589e95524ffa0b959017504ecde9672
|
data/lib/vaccine-spotter.rb
CHANGED
@@ -26,7 +26,9 @@ if !config.exist?
|
|
26
26
|
puts "It looks like you don't have a configuration file yet. Would you like to create one?"
|
27
27
|
create_config = prompt.yes? "Create `~/.config/vaccine-finder.toml`?"
|
28
28
|
if create_config
|
29
|
-
set_state = prompt.ask("What state would you like to monitor? (Two-letter postal code, please)", required: true)
|
29
|
+
set_state = prompt.ask("What state would you like to monitor? (Two-letter postal code, please)", required: true) do |q|
|
30
|
+
q.modify :up, :remove
|
31
|
+
end
|
30
32
|
config.set(:state, value: set_state)
|
31
33
|
puts "Ok, time to set zip codes…"
|
32
34
|
if prompt.yes? "freemaptools.com has a really helpful tool for getting the zip codes around a radius. Would you like to open it?"
|
@@ -34,6 +36,8 @@ if !config.exist?
|
|
34
36
|
end
|
35
37
|
set_zips = prompt.ask("What zip codes would you like to track? You can paste here from freemaptools.com, if you used it (comma-separated list of integers, please)", convert: :int_list, required: true)
|
36
38
|
config.set(:zips, value: set_zips)
|
39
|
+
set_vaccine_types = prompt.multi_select("Which types of vaccines would you like to include?", %w(pfizer moderna jj unknown), min: 1, show_help: :always)
|
40
|
+
config.set(:vaccine_types, value: set_vaccine_types)
|
37
41
|
set_refresh_rate = prompt.ask("How often should the script check for updates? (seconds)", convert: :int, required: true)
|
38
42
|
config.set(:refresh_rate, value: set_refresh_rate)
|
39
43
|
puts "Perfect; writing to `~/.config/vaccine-finder.toml`…"
|
@@ -44,13 +48,20 @@ end
|
|
44
48
|
zips = config.read["zips"]
|
45
49
|
state = config.read["state"]
|
46
50
|
refresh_rate = config.read["refresh_rate"].to_i
|
51
|
+
vaccine_types = config.read["vaccine_types"]
|
47
52
|
|
48
53
|
puts
|
49
54
|
print pastel.bold "vaccinespotter.org CLI notifier thing"
|
50
|
-
|
55
|
+
begin
|
56
|
+
print " v#{Gem.loaded_specs["vaccine-finder"].version}"
|
57
|
+
rescue
|
58
|
+
print " [error loading version]"
|
59
|
+
end
|
51
60
|
puts pastel.dim ", by Jack MapelLentz (jltml.me)"
|
52
61
|
puts pastel.dim "This script uses the wonderful vaccinespotter.org, by Nick Muerdter (github.com/GUI)"
|
53
62
|
puts "Checking #{pastel.underline zips.length} zip codes in #{pastel.underline state} every #{pastel.underline refresh_rate} seconds"
|
63
|
+
puts "Filtering appointments for #{pastel.underline vaccine_types.to_s.tr("[]\"", "")}"
|
64
|
+
puts pastel.dim "Press control-C to quit"
|
54
65
|
|
55
66
|
excluded = Array.new
|
56
67
|
|
@@ -70,10 +81,10 @@ loop do
|
|
70
81
|
|
71
82
|
parsed_json["features"].each_index do |i|
|
72
83
|
current = parsed_json["features"][i]["properties"]
|
73
|
-
if (current["appointments_available"] == true) and (zips.include?(current["postal_code"].to_i)
|
84
|
+
if (current["appointments_available"] == true) and (zips.include?(current["postal_code"].to_i) and (!excluded.include? current["id"].to_i) and !(vaccine_types & current["appointment_vaccine_types"].keys).empty?)
|
74
85
|
puts "- #{pastel.green.bold current["city"]} #{pastel.green.bold current["provider_brand_name"]}: #{current["url"]}"
|
75
86
|
puts " - #{current["appointment_vaccine_types"]} as of #{Time.parse(current["appointments_last_fetched"]).localtime.strftime("%H:%M:%S")}"
|
76
|
-
TerminalNotifier.notify("#{current["provider_brand_name"]} - #{current["city"]}", :title => "vaccine-
|
87
|
+
TerminalNotifier.notify("#{current["provider_brand_name"]} - #{current["city"]}", :title => "vaccine-finder", :open => "#{current["url"]}")
|
77
88
|
excluded.append current["id"].to_i
|
78
89
|
end
|
79
90
|
end
|
metadata
CHANGED
@@ -1,15 +1,113 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vaccine-finder
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jack MapelLentz
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-04-
|
12
|
-
dependencies:
|
11
|
+
date: 2021-04-14 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: tty-logger
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 0.6.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.6.0
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: tty-prompt
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 0.23.0
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 0.23.0
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: tty-config
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 0.4.0
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 0.4.0
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: toml
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 0.2.0
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 0.2.0
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: pastel
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 0.8.0
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 0.8.0
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: terminal-notifier
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '2.0'
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '2.0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: launchy
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '2.5'
|
104
|
+
type: :runtime
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '2.5'
|
13
111
|
description: This gem will notify you when COVID-19 vaccine appointments are available
|
14
112
|
matching certain criteria (a list of zip codes, type of vaccine, etc). It currently
|
15
113
|
pretty much just wraps the very beta API from the absolutely wonderful vaccinespotter.org,
|
@@ -23,7 +121,7 @@ extra_rdoc_files: []
|
|
23
121
|
files:
|
24
122
|
- bin/vaccine-finder
|
25
123
|
- lib/vaccine-spotter.rb
|
26
|
-
homepage: https://github.com/jltml/
|
124
|
+
homepage: https://github.com/jltml/vaccine-finder
|
27
125
|
licenses:
|
28
126
|
- MIT
|
29
127
|
metadata: {}
|
@@ -42,7 +140,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
42
140
|
- !ruby/object:Gem::Version
|
43
141
|
version: '0'
|
44
142
|
requirements: []
|
45
|
-
rubygems_version: 3.2.
|
143
|
+
rubygems_version: 3.2.16
|
46
144
|
signing_key:
|
47
145
|
specification_version: 4
|
48
146
|
summary: Get notified of vaccine availability
|