vaccine-finder 0.1.2 → 0.1.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/vaccine-spotter.rb +15 -4
  3. metadata +103 -5
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ec8c4062927671f520225c64bbb3b2969844f34b31174caf682cb2aede2466b4
4
- data.tar.gz: 39e8bfbde995ef6eab07499a73d99984fffc09db583fb8fac1b801ea1d5b2f83
3
+ metadata.gz: b7c59363cf8627f383661d103f56ad2bc8908aa5a5c98a88fc18ff46f93c2fff
4
+ data.tar.gz: fff7002723dd78f809209ffc733b12ae710c51f4e5a797031a8e73149d9f9ca5
5
5
  SHA512:
6
- metadata.gz: 722b206545ebd3fa29c6a4a39cdd8ba114376b0c0753b992d21ea1688f281b66a2ad07b6df29e72bfe1a83ecacce2517c0ed3ab785b54d948cf654fe2613745a
7
- data.tar.gz: 8781e295aae57432c2862ba07715f6ee638497cfb49c34bcec568183965118e7a4436055b9a4945ad4d314fe38646ca2277c12b55505ab244312b926e582e419
6
+ metadata.gz: 013cafab525ef10eac7f9c4e8d175f0b121b2be4d642c409900c5ad40613d7b891cd2997eccd847fb0b7ed6b29bd1cffe05796ec6d449c9f0d1ebd77859b24b2
7
+ data.tar.gz: 374336e333588cb1bb992528e2c56137f6c25eb72fb8eb71dc6d6160df7e9aa89fac807893446b97a34192440f71c1386589e95524ffa0b959017504ecde9672
@@ -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
- print " v0.1.2"
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) == true) and (!excluded.include? current["id"].to_i) and (current["appointment_vaccine_types"]["pfizer"] == true or current["appointment_vaccine_types"]["unknown"] == true)
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-spotter", :open => "#{current["url"]}")
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.2
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-13 00:00:00.000000000 Z
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/covid-vaccine-finders
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.15
143
+ rubygems_version: 3.2.16
46
144
  signing_key:
47
145
  specification_version: 4
48
146
  summary: Get notified of vaccine availability