From 143ae168d7278f3a79ea09289754200e404c5191 Mon Sep 17 00:00:00 2001 From: tproffen Date: Wed, 3 Mar 2021 09:45:29 -0500 Subject: [PATCH 1/9] Addded new cameras --- README.md | 2 ++ app/models/perseverance_scraper.rb | 17 +++++++++++------ db/seeds.rb | 2 ++ spec/models/perseverance_scraper_spec.rb | 6 ++++-- 4 files changed, 19 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 1ffbdfe..ae14895 100644 --- a/README.md +++ b/README.md @@ -32,6 +32,8 @@ Along with querying by date, results can also be filtered by the camera with whi FRONT_HAZCAM_RIGHT_A|Front Hazard Avoidance Camera - Right REAR_HAZCAM_LEFT|Rear Hazard Avoidance Camera - Left REAR_HAZCAM_RIGHT|Rear Hazard Avoidance Camera - Right + SKYCAM|MEDA Skycam + SHERLOC_WATSON|SHERLOC WATSON Camera #### Other rovers diff --git a/app/models/perseverance_scraper.rb b/app/models/perseverance_scraper.rb index a5b5058..a4c2c90 100644 --- a/app/models/perseverance_scraper.rb +++ b/app/models/perseverance_scraper.rb @@ -44,10 +44,13 @@ def create_photo(image) sol = image['sol'] camera = camera_from_json image link = image['image_files']['large'] - fail "Camera not found. Name: #{camera}" if camera.is_a?(String) - photo = Photo.find_or_initialize_by(sol: sol, camera: camera, - img_src: link, rover: rover) - photo.log_and_save_if_new + if camera.is_a?(String) + puts "WARNING: Camera not found. Name: #{camera}" + else + photo = Photo.find_or_initialize_by(sol: sol, camera: camera, + img_src: link, rover: rover) + photo.log_and_save_if_new + end end def camera_abbreviations @@ -58,7 +61,7 @@ def camera_abbreviations epu1cam: "EDL_PUCAM1", epu2cam: "EDL_PUCAM2", navlcam: "NAVCAM_LEFT", - nacrcam: "NAVCAM_RIGHT", + navrcam: "NAVCAM_RIGHT", mczlcam: "MCZ_LEFT", mczrcam: "MCZ_RIGHT", fhlacam: "FRONT_HAZCAM_LEFT_A", @@ -66,7 +69,9 @@ def camera_abbreviations fhlbcam: "FRONT_HAZCAM_LEFT_B", fhrbcam: "FRONT_HAZCAM_RIGHT_B", rhlcam: "REAR_HAZCAM_LEFT", - rhrcam: "REAR_HAZCAM_RIGHT" + rhrcam: "REAR_HAZCAM_RIGHT", + skycam: "SKYCAM", + watson: "SHERLOC_WATSON" } end diff --git a/db/seeds.rb b/db/seeds.rb index 54854db..f05a856 100644 --- a/db/seeds.rb +++ b/db/seeds.rb @@ -20,6 +20,8 @@ perseverance.cameras.find_or_create_by(name: "FRONT_HAZCAM_RIGHT_A", full_name: "Front Hazard Avoidance Camera - Right") perseverance.cameras.find_or_create_by(name: "REAR_HAZCAM_LEFT", full_name: "Rear Hazard Avoidance Camera - Left") perseverance.cameras.find_or_create_by(name: "REAR_HAZCAM_RIGHT", full_name: "Rear Hazard Avoidance Camera - Right") +perseverance.cameras.find_or_create_by(name: "SKYCAM", full_name: "MEDA Skycam") +perseverance.cameras.find_or_create_by(name: "SHERLOC_WATSON", full_name: "SHERLOC WATSON Camera") opportunity.cameras.find_or_create_by(name: "FHAZ", full_name: "Front Hazard Avoidance Camera") opportunity.cameras.find_or_create_by(name: "RHAZ", full_name: "Read Hazard Avoidance Camera") diff --git a/spec/models/perseverance_scraper_spec.rb b/spec/models/perseverance_scraper_spec.rb index 490ef74..fd055d7 100644 --- a/spec/models/perseverance_scraper_spec.rb +++ b/spec/models/perseverance_scraper_spec.rb @@ -22,7 +22,7 @@ let!(:epu1cam) {create :camera, rover: perseverance, name: "EDL_PUCAM1" } let!(:epu2cam) {create :camera, rover: perseverance, name: "EDL_PUCAM2" } let!(:navlcam) {create :camera, rover: perseverance, name: "NAVCAM_LEFT" } - let!(:nacrcam) {create :camera, rover: perseverance, name: "NAVCAM_RIGHT" } + let!(:navrcam) {create :camera, rover: perseverance, name: "NAVCAM_RIGHT" } let!(:mczlcam) {create :camera, rover: perseverance, name: "MCZ_LEFT" } let!(:mczrcam) {create :camera, rover: perseverance, name: "MCZ_RIGHT" } let!(:fhlacam) {create :camera, rover: perseverance, name: "FRONT_HAZCAM_LEFT_A" } @@ -31,11 +31,13 @@ let!(:fhrbcam) {create :camera, rover: perseverance, name: "FRONT_HAZCAM_RIGHT_B" } let!(:rhlcam) {create :camera, rover: perseverance, name: "REAR_HAZCAM_LEFT" } let!(:rhrcam) {create :camera, rover: perseverance, name: "REAR_HAZCAM_RIGHT" } + let!(:skycam) {create :camera, rover: perseverance, name: "SKYCAM" } + let!(:waston) {create :camera, rover: perseverance, name: "SHERLOC_WATSON" } it "should create photo objects" do allow(scraper).to receive(:collect_links).and_return ["https://mars.nasa.gov/rss/api/?feed=raw_images&category=mars2020&feedtype=json&sol=1"] - expect{ scraper.scrape }.to change { Photo.count }.by(191) + expect{ scraper.scrape }.to change { Photo.count }.by(201) end end end From c65a22e0353f3a9df6300978cb213832f2a5c5a2 Mon Sep 17 00:00:00 2001 From: Luis Miguel Alvarado Date: Sun, 14 Mar 2021 19:51:59 -0400 Subject: [PATCH 2/9] feat: add perseverance rover image --- public/explore/images/Perseverance_rover.jpg | Bin 0 -> 90060 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 public/explore/images/Perseverance_rover.jpg diff --git a/public/explore/images/Perseverance_rover.jpg b/public/explore/images/Perseverance_rover.jpg new file mode 100644 index 0000000000000000000000000000000000000000..cc81e659cf9e88c00014ecc0fb38cf3eae2712a8 GIT binary patch literal 90060 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 literal 0 HcmV?d00001 From bd1fb8012054bfce6c3b3f0af02daee0f9eaae81 Mon Sep 17 00:00:00 2001 From: mxkay Date: Wed, 31 Mar 2021 23:12:35 -0400 Subject: [PATCH 3/9] Permit :rover_id --- app/controllers/api/v1/photos_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/api/v1/photos_controller.rb b/app/controllers/api/v1/photos_controller.rb index 386d366..fac711c 100644 --- a/app/controllers/api/v1/photos_controller.rb +++ b/app/controllers/api/v1/photos_controller.rb @@ -16,7 +16,7 @@ def index private def photo_params - params.permit :sol, :camera, :earth_date + params.permit :sol, :camera, :earth_date, :rover_id end def photos(rover) From 555f0c6d849565c4f29bdada4c7ac1d1aa787e89 Mon Sep 17 00:00:00 2001 From: mxkay Date: Thu, 1 Apr 2021 22:30:05 -0400 Subject: [PATCH 4/9] Permit :rover_id in latest_photos_controller --- app/controllers/api/v1/latest_photos_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/api/v1/latest_photos_controller.rb b/app/controllers/api/v1/latest_photos_controller.rb index d6440fb..81048bd 100644 --- a/app/controllers/api/v1/latest_photos_controller.rb +++ b/app/controllers/api/v1/latest_photos_controller.rb @@ -13,7 +13,7 @@ def index private def photo_params - params.permit(:camera, :earth_date).merge(sol: @rover.photos.maximum(:sol)) + params.permit(:camera, :earth_date, :rover_id).merge(sol: @rover.photos.maximum(:sol)) end def search_photos From 6a2832d2811456d923865f189667f60660c15ec3 Mon Sep 17 00:00:00 2001 From: Chris C Cerami Date: Sun, 4 Apr 2021 12:22:24 -0400 Subject: [PATCH 5/9] Add supercam and LCAM --- db/seeds.rb | 2 ++ spec/models/perseverance_scraper_spec.rb | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/db/seeds.rb b/db/seeds.rb index f05a856..5c54452 100644 --- a/db/seeds.rb +++ b/db/seeds.rb @@ -22,6 +22,8 @@ perseverance.cameras.find_or_create_by(name: "REAR_HAZCAM_RIGHT", full_name: "Rear Hazard Avoidance Camera - Right") perseverance.cameras.find_or_create_by(name: "SKYCAM", full_name: "MEDA Skycam") perseverance.cameras.find_or_create_by(name: "SHERLOC_WATSON", full_name: "SHERLOC WATSON Camera") +perseverance.cameras.find_or_create_by(name: "SUPERCAM_RMI", full_name: "SuperCam Remote Micro Imager") +perseverance.cameras.find_or_create_by(name: "LCAM", full_name: "Lander Vision System Camera") opportunity.cameras.find_or_create_by(name: "FHAZ", full_name: "Front Hazard Avoidance Camera") opportunity.cameras.find_or_create_by(name: "RHAZ", full_name: "Read Hazard Avoidance Camera") diff --git a/spec/models/perseverance_scraper_spec.rb b/spec/models/perseverance_scraper_spec.rb index fd055d7..0a37f3a 100644 --- a/spec/models/perseverance_scraper_spec.rb +++ b/spec/models/perseverance_scraper_spec.rb @@ -33,11 +33,12 @@ let!(:rhrcam) {create :camera, rover: perseverance, name: "REAR_HAZCAM_RIGHT" } let!(:skycam) {create :camera, rover: perseverance, name: "SKYCAM" } let!(:waston) {create :camera, rover: perseverance, name: "SHERLOC_WATSON" } + let!(:supercam) { create :camera, rover: perseverance, name: "SUPERCAM_RMI" } it "should create photo objects" do allow(scraper).to receive(:collect_links).and_return ["https://mars.nasa.gov/rss/api/?feed=raw_images&category=mars2020&feedtype=json&sol=1"] - expect{ scraper.scrape }.to change { Photo.count }.by(201) + expect{ scraper.scrape }.to change { Photo.count }.by(205) end end end From 935cc753e84b9060afb8bef0729bd1e7766e3d73 Mon Sep 17 00:00:00 2001 From: Chris C Cerami Date: Sun, 4 Apr 2021 12:22:31 -0400 Subject: [PATCH 6/9] Upgrade Rails to resolve mimemagic issue --- Gemfile.lock | 126 +++++++++++++++++++++++++-------------------------- 1 file changed, 62 insertions(+), 64 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 3e02ad9..e5bfeec 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,40 +1,40 @@ GEM remote: https://rubygems.org/ specs: - actioncable (6.1.2.1) - actionpack (= 6.1.2.1) - activesupport (= 6.1.2.1) + actioncable (6.1.3.1) + actionpack (= 6.1.3.1) + activesupport (= 6.1.3.1) nio4r (~> 2.0) websocket-driver (>= 0.6.1) - actionmailbox (6.1.2.1) - actionpack (= 6.1.2.1) - activejob (= 6.1.2.1) - activerecord (= 6.1.2.1) - activestorage (= 6.1.2.1) - activesupport (= 6.1.2.1) + actionmailbox (6.1.3.1) + actionpack (= 6.1.3.1) + activejob (= 6.1.3.1) + activerecord (= 6.1.3.1) + activestorage (= 6.1.3.1) + activesupport (= 6.1.3.1) mail (>= 2.7.1) - actionmailer (6.1.2.1) - actionpack (= 6.1.2.1) - actionview (= 6.1.2.1) - activejob (= 6.1.2.1) - activesupport (= 6.1.2.1) + actionmailer (6.1.3.1) + actionpack (= 6.1.3.1) + actionview (= 6.1.3.1) + activejob (= 6.1.3.1) + activesupport (= 6.1.3.1) mail (~> 2.5, >= 2.5.4) rails-dom-testing (~> 2.0) - actionpack (6.1.2.1) - actionview (= 6.1.2.1) - activesupport (= 6.1.2.1) + actionpack (6.1.3.1) + actionview (= 6.1.3.1) + activesupport (= 6.1.3.1) rack (~> 2.0, >= 2.0.9) rack-test (>= 0.6.3) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.2.0) - actiontext (6.1.2.1) - actionpack (= 6.1.2.1) - activerecord (= 6.1.2.1) - activestorage (= 6.1.2.1) - activesupport (= 6.1.2.1) + actiontext (6.1.3.1) + actionpack (= 6.1.3.1) + activerecord (= 6.1.3.1) + activestorage (= 6.1.3.1) + activesupport (= 6.1.3.1) nokogiri (>= 1.8.5) - actionview (6.1.2.1) - activesupport (= 6.1.2.1) + actionview (6.1.3.1) + activesupport (= 6.1.3.1) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) @@ -42,22 +42,22 @@ GEM active_model_serializers (0.9.8) activemodel (>= 3.2) concurrent-ruby (~> 1.0) - activejob (6.1.2.1) - activesupport (= 6.1.2.1) + activejob (6.1.3.1) + activesupport (= 6.1.3.1) globalid (>= 0.3.6) - activemodel (6.1.2.1) - activesupport (= 6.1.2.1) - activerecord (6.1.2.1) - activemodel (= 6.1.2.1) - activesupport (= 6.1.2.1) - activestorage (6.1.2.1) - actionpack (= 6.1.2.1) - activejob (= 6.1.2.1) - activerecord (= 6.1.2.1) - activesupport (= 6.1.2.1) - marcel (~> 0.3.1) - mimemagic (~> 0.3.2) - activesupport (6.1.2.1) + activemodel (6.1.3.1) + activesupport (= 6.1.3.1) + activerecord (6.1.3.1) + activemodel (= 6.1.3.1) + activesupport (= 6.1.3.1) + activestorage (6.1.3.1) + actionpack (= 6.1.3.1) + activejob (= 6.1.3.1) + activerecord (= 6.1.3.1) + activesupport (= 6.1.3.1) + marcel (~> 1.0.0) + mini_mime (~> 1.0.2) + activesupport (6.1.3.1) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 1.6, < 2) minitest (>= 5.1) @@ -82,7 +82,7 @@ GEM redis (~> 4.1) globalid (0.4.2) activesupport (>= 4.2.0) - i18n (1.8.8) + i18n (1.8.10) concurrent-ruby (~> 1.0) json (2.3.0) kaminari (1.2.1) @@ -102,19 +102,17 @@ GEM nokogiri (>= 1.5.9) mail (2.7.1) mini_mime (>= 0.1.1) - marcel (0.3.3) - mimemagic (~> 0.3.2) + marcel (1.0.1) method_source (1.0.0) - mimemagic (0.3.5) - mini_mime (1.0.2) + mini_mime (1.0.3) mini_portile2 (2.5.0) - minitest (5.14.3) + minitest (5.14.4) newrelic_rpm (6.11.0.365) - nio4r (2.5.5) - nokogiri (1.11.1) + nio4r (2.5.7) + nokogiri (1.11.2) mini_portile2 (~> 2.5.0) racc (~> 1.4) - nokogiri (1.11.1-x64-mingw32) + nokogiri (1.11.2-x64-mingw32) racc (~> 1.4) pg (1.2.3) pg (1.2.3-x64-mingw32) @@ -129,20 +127,20 @@ GEM rack (>= 2.0.0) rack-test (1.1.0) rack (>= 1.0, < 3) - rails (6.1.2.1) - actioncable (= 6.1.2.1) - actionmailbox (= 6.1.2.1) - actionmailer (= 6.1.2.1) - actionpack (= 6.1.2.1) - actiontext (= 6.1.2.1) - actionview (= 6.1.2.1) - activejob (= 6.1.2.1) - activemodel (= 6.1.2.1) - activerecord (= 6.1.2.1) - activestorage (= 6.1.2.1) - activesupport (= 6.1.2.1) + rails (6.1.3.1) + actioncable (= 6.1.3.1) + actionmailbox (= 6.1.3.1) + actionmailer (= 6.1.3.1) + actionpack (= 6.1.3.1) + actiontext (= 6.1.3.1) + actionview (= 6.1.3.1) + activejob (= 6.1.3.1) + activemodel (= 6.1.3.1) + activerecord (= 6.1.3.1) + activestorage (= 6.1.3.1) + activesupport (= 6.1.3.1) bundler (>= 1.15.0) - railties (= 6.1.2.1) + railties (= 6.1.3.1) sprockets-rails (>= 2.0.0) rails-dom-testing (2.0.3) activesupport (>= 4.2.0) @@ -154,9 +152,9 @@ GEM rails_stdout_logging rails_serve_static_assets (0.0.5) rails_stdout_logging (0.0.5) - railties (6.1.2.1) - actionpack (= 6.1.2.1) - activesupport (= 6.1.2.1) + railties (6.1.3.1) + actionpack (= 6.1.3.1) + activesupport (= 6.1.3.1) method_source rake (>= 0.8.7) thor (~> 1.0) From 9457dbe3f41f58e8414104306bc8261a25d6c564 Mon Sep 17 00:00:00 2001 From: Chris C Cerami Date: Sun, 4 Apr 2021 14:47:48 -0400 Subject: [PATCH 7/9] Upgrade Ruby to 3.0.0 --- .ruby-version | 2 +- Gemfile | 2 +- Gemfile.lock | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.ruby-version b/.ruby-version index 860487c..4a36342 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -2.7.1 +3.0.0 diff --git a/Gemfile b/Gemfile index 5050db3..c10a553 100644 --- a/Gemfile +++ b/Gemfile @@ -1,6 +1,6 @@ source 'https://rubygems.org' -ruby '2.7.1' +ruby '3.0.0' gem 'pg', '~> 1.0' gem 'rake' diff --git a/Gemfile.lock b/Gemfile.lock index e5bfeec..6b2e5de 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -227,7 +227,7 @@ DEPENDENCIES uglifier RUBY VERSION - ruby 2.7.1p83 + ruby 3.0.0p0 BUNDLED WITH - 2.1.4 + 2.2.3 From f2f25cf0482c5c6a1c92d01c278e41bf25473fa4 Mon Sep 17 00:00:00 2001 From: Chris C Cerami Date: Sun, 4 Apr 2021 14:49:45 -0400 Subject: [PATCH 8/9] Upgrade ruby version for Travis config --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index f88e9ed..e178f75 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,7 @@ language: ruby rvm: - - 2.7.1 + - 3.0.0 before_script: - psql -c 'create database mars_curiosity_test;' -U postgres From 368b56bc103371181384957c506a6b65c0440e5d Mon Sep 17 00:00:00 2001 From: mxkay Date: Fri, 9 Apr 2021 20:16:53 -0400 Subject: [PATCH 9/9] Fix 'PerseveranceScraper.scrape should create photo objects' by changing expected photo count --- spec/models/perseverance_scraper_spec.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/models/perseverance_scraper_spec.rb b/spec/models/perseverance_scraper_spec.rb index 0a37f3a..30e31f0 100644 --- a/spec/models/perseverance_scraper_spec.rb +++ b/spec/models/perseverance_scraper_spec.rb @@ -38,7 +38,7 @@ it "should create photo objects" do allow(scraper).to receive(:collect_links).and_return ["https://mars.nasa.gov/rss/api/?feed=raw_images&category=mars2020&feedtype=json&sol=1"] - expect{ scraper.scrape }.to change { Photo.count }.by(205) + expect{ scraper.scrape }.to change { Photo.count }.by(34) end end end