Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Avalon 8.0 RC 2 #6131

Merged
merged 8 commits into from
Nov 19, 2024
7 changes: 3 additions & 4 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,8 @@ gem 'shakapacker'

# Core Samvera
#gem 'active-fedora', '~> 15.0'
#gem 'active_fedora-datastreams', '~> 0.5'
gem 'active-fedora', git: 'https://github.com/samvera/active_fedora.git', branch: 'fedora6_rebase'
gem 'active_fedora-datastreams', git: 'https://github.com/samvera-labs/active_fedora-datastreams.git', branch: 'fedora6_rebase'
gem 'active-fedora', git: 'https://github.com/samvera/active_fedora.git', ref: '0f5ccb1536224efec750941ce9a1f58f2e09cd3c'
gem 'active_fedora-datastreams', '~> 0.5'
gem 'hydra-head', '~> 13.0'
gem 'ldp', '~> 1.1.0'
gem 'noid-rails', '~> 3.2'
Expand Down Expand Up @@ -60,7 +59,7 @@ gem 'rack-cors', require: 'rack/cors'
gem 'rails_same_site_cookie'
gem 'recaptcha', require: 'recaptcha/rails'
gem 'samvera-persona', '~> 0.5.0'
gem 'speedy-af', git: 'https://github.com/samvera-labs/speedy_af.git', branch: 'empty_reflection'
gem 'speedy-af', '~> 0.4.0'

# Avalon Components
gem 'avalon-workflow', git: "https://github.com/avalonmediasystem/avalon-workflow.git", tag: 'avalon-r8.0'
Expand Down
51 changes: 13 additions & 38 deletions Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -57,32 +57,10 @@ GIT
ims-lti
omniauth

GIT
remote: https://github.com/samvera-labs/active_fedora-datastreams.git
revision: 3e1b54f60e6d6316e114f608ee5c50c85d6598c6
branch: fedora6_rebase
specs:
active_fedora-datastreams (0.5.0)
active-fedora (>= 11.0.0.pre)
activemodel (>= 5.2)
nom-xml (>= 0.5.1)
om (~> 3.1)
rdf (~> 3.2)
rdf-rdfa (= 3.2.0)
rdf-rdfxml (~> 3.2)

GIT
remote: https://github.com/samvera-labs/speedy_af.git
revision: 223abe9e2a7cdc68b033398bf69922523aeff47e
branch: empty_reflection
specs:
speedy-af (0.3.0)
activesupport (> 5.2)

GIT
remote: https://github.com/samvera/active_fedora.git
revision: 0f5ccb1536224efec750941ce9a1f58f2e09cd3c
branch: fedora6_rebase
ref: 0f5ccb1536224efec750941ce9a1f58f2e09cd3c
specs:
active-fedora (15.0.1)
active-triples (>= 0.11.0, < 2.0.0)
Expand Down Expand Up @@ -159,6 +137,13 @@ GEM
active_encode (1.2.3)
addressable (~> 2.8)
rails
active_fedora-datastreams (0.5.0)
active-fedora (>= 11.0.0.pre)
activemodel (>= 5.2)
nom-xml (>= 0.5.1)
om (~> 3.1)
rdf (~> 3.2)
rdf-rdfxml (~> 3.2)
activejob (7.2.2)
activesupport (= 7.2.2)
globalid (>= 0.3.6)
Expand Down Expand Up @@ -466,9 +451,6 @@ GEM
multi_json (~> 1.11)
os (>= 0.9, < 2.0)
signet (>= 0.16, < 2.a)
haml (5.2.2)
temple (>= 0.8.0)
tilt
hashdiff (1.1.1)
hashie (5.0.0)
hooks (0.4.1)
Expand Down Expand Up @@ -740,20 +722,11 @@ GEM
bcp47_spec (~> 0.2)
bigdecimal (~> 3.1, >= 3.1.5)
link_header (~> 0.0, >= 0.0.8)
rdf-aggregate-repo (3.3.0)
rdf (~> 3.3)
rdf-isomorphic (3.3.0)
rdf (~> 3.3)
rdf-ldp (0.1.0)
deprecation
rdf
rdf-rdfa (3.2.0)
haml (~> 5.2)
htmlentities (~> 4.3)
rdf (~> 3.2)
rdf-aggregate-repo (~> 3.2)
rdf-vocab (~> 3.2)
rdf-xsd (~> 3.2)
rdf-rdfxml (3.3.0)
builder (~> 3.2, >= 3.2.4)
htmlentities (~> 4.3)
Expand Down Expand Up @@ -940,6 +913,9 @@ GEM
nokogiri
stomp
xml-simple
speedy-af (0.4.0)
active-fedora (>= 11.0.0)
activesupport (> 5.2)
sprockets (3.7.3)
base64
concurrent-ruby (~> 1.0)
Expand Down Expand Up @@ -967,7 +943,6 @@ GEM
sxp (2.0.0)
matrix (~> 0.4)
rdf (~> 3.3)
temple (0.10.3)
terser (1.2.3)
execjs (>= 0.3.0, < 3)
thor (1.3.2)
Expand Down Expand Up @@ -1033,7 +1008,7 @@ DEPENDENCIES
active_annotations (~> 0.5.0)
active_elastic_job
active_encode (~> 1.2)
active_fedora-datastreams!
active_fedora-datastreams (~> 0.5)
activejob-traffic_control
activejob-uniqueness
activerecord-session_store (>= 2.0.0)
Expand Down Expand Up @@ -1143,7 +1118,7 @@ DEPENDENCIES
sidekiq-cron (~> 1.9)
simplecov
solr_wrapper (>= 0.16)
speedy-af!
speedy-af (~> 0.4.0)
sprockets (~> 3.7.2)
sprockets-es6
sqlite3
Expand Down
4 changes: 0 additions & 4 deletions app/helpers/blacklight/local_blacklight_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,6 @@ def facet_group_names
blacklight_config.facet_fields.map {|facet,opts| opts[:group]}.uniq
end

def url_for_document doc, options = {}
SpeedyAF::Base.for(doc.to_h.with_indifferent_access)
end

def contributor_index_display args
args[:document][args[:field]].first(3).join("; ")
end
Expand Down
2 changes: 1 addition & 1 deletion app/models/master_file.rb
Original file line number Diff line number Diff line change
Expand Up @@ -727,7 +727,7 @@ def saveDerivativesHash(derivative_hash)

def reloadTechnicalMetadata!
# Reset ffprobe
@ffprobe = Avalon::FFprobe.new(FileLocator.new(file_location))
@ffprobe = Avalon::FFprobe.new(FileLocator.new(file_location, { auth_header: @auth_header }))

# Formats like MP4 can be caught as both audio and video
# so the case statement flows in the preferred order
Expand Down
14 changes: 11 additions & 3 deletions app/services/file_locator.rb
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
require 'aws-sdk-s3'

class FileLocator
attr_reader :source
attr_reader :source, :auth_header

class S3File
attr_reader :bucket, :key
Expand Down Expand Up @@ -46,8 +46,9 @@ def download_url
end
end

def initialize(source)
def initialize(source, opts = {})
@source = source
@auth_header = opts[:auth_header]
end

def uri
Expand Down Expand Up @@ -126,7 +127,14 @@ def reader
# Prioritize using URI#open, attempt to fallback to Kernel#open
# if URI fails.
def open_uri
URI.open(uri, 'r')
# Google Drive download urls have the auth as a param
# so we need to make sure the auth gets passed in
# when we try to access files
if auth_header.present? && auth_header.is_a?(Hash)
URI.open(uri, 'r', auth_header)
else
URI.open(uri, 'r')
end
rescue
Kernel::open(uri.to_s, 'r')
end
Expand Down
8 changes: 8 additions & 0 deletions config/initializers/blacklight.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
require 'blacklight'
Rails.application.config.to_prepare do
module Blacklight::UrlHelperBehavior
def url_for_document doc, options = {}
SpeedyAF::Base.for(doc.to_h.with_indifferent_access)
end
end
end
4 changes: 3 additions & 1 deletion lib/avalon/ffprobe.rb
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,9 @@ def json_output
return @json_output unless @json_output.nil?
return @json_output = {} unless valid_content_type?(@media_file)
ffprobe = Settings&.ffprobe&.path || 'ffprobe'
raw_output = `#{ffprobe} -i "#{@media_file.location}" -v quiet -show_format -show_streams -of json`
# Include authorization headers for cases like Google Drive
header = "-headers 'Authorization: #{@media_file.auth_header.fetch('Authorization')}'" if @media_file.auth_header.present?
raw_output = `#{ffprobe} #{header} -i "#{@media_file.location}" -v quiet -show_format -show_streams -of json`
# $? is a variable for the exit status of the last executed process.
# Success == 0, any other value means the command failed in some way.
unless $?.exitstatus == 0
Expand Down
6 changes: 1 addition & 5 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -48,11 +48,7 @@
"webpack-dev-server": "5"
},
"resolutions": {
"glob-parent": "^6.0.2",
"unset-value": "^2.0.1",
"nth-check": "^2.1.1",
"set-value": "^4.1.0",
"kind-of": "^6.0.3"
"glob-parent": "^6.0.2"
},
"scripts": {
"start-collection-index": "webpack-dev-server --mode development --config config/webpack/collection_index.js --host 0.0.0.0",
Expand Down
60 changes: 6 additions & 54 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -2865,9 +2865,9 @@ cropperjs@^1.5.5:
integrity sha512-re7UdjE5UnwdrovyhNzZ6gathI4Rs3KGCBSc8HCIjUo5hO42CtzyblmWLj6QWVw7huHyDMfpKxhiO2II77nhDw==

cross-spawn@^7.0.0, cross-spawn@^7.0.3:
version "7.0.3"
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
version "7.0.6"
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f"
integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==
dependencies:
path-key "^3.1.0"
shebang-command "^2.0.0"
Expand Down Expand Up @@ -3773,13 +3773,6 @@ get-stream@^5.0.0, get-stream@^5.1.0:
dependencies:
pump "^3.0.0"

get-value@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/get-value/-/get-value-3.0.1.tgz#5efd2a157f1d6a516d7524e124ac52d0a39ef5a8"
integrity sha512-mKZj9JLQrwMBtj5wxi6MH8Z5eSKaERpAwjg43dPtlGI1ZVEgH/qC7T8/6R2OBSUA+zzHBZgICsVJaEIV2tKTDA==
dependencies:
isobject "^3.0.1"

getos@^3.2.1:
version "3.2.1"
resolved "https://registry.yarnpkg.com/getos/-/getos-3.2.1.tgz#0134d1f4e00eb46144c5a9c0ac4dc087cbb27dc5"
Expand Down Expand Up @@ -3904,21 +3897,6 @@ has-tostringtag@^1.0.0:
dependencies:
has-symbols "^1.0.2"

has-value@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/has-value/-/has-value-2.0.2.tgz#d0f12e8780ba8e90e66ad1a21c707fdb67c25658"
integrity sha512-ybKOlcRsK2MqrM3Hmz/lQxXHZ6ejzSPzpNabKB45jb5qDgJvKPa3SdapTsTLwEb9WltgWpOmNax7i+DzNOk4TA==
dependencies:
get-value "^3.0.0"
has-values "^2.0.1"

has-values@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/has-values/-/has-values-2.0.1.tgz#3876200ff86d8a8546a9264a952c17d5fc17579d"
integrity sha512-+QdH3jOmq9P8GfdjFg0eJudqx1FqU62NQJ4P16rOEHeRdl7ckgwn6uqQjzYE0ZoHVV/e5E2esuJ5Gl5+HUW19w==
dependencies:
kind-of "^6.0.2"

has@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
Expand Down Expand Up @@ -4321,11 +4299,6 @@ is-plain-object@^5.0.0:
resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344"
integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==

is-primitive@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-3.0.1.tgz#98c4db1abff185485a657fc2905052b940524d05"
integrity sha512-GljRxhWvlCNRfZyORiH77FwdFwGcMO620o37EOYC0ORWdq+WYNVqW0w2Juzew4M+L81l6/QS3t5gkkihyRqv9w==

is-stream@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077"
Expand Down Expand Up @@ -4370,11 +4343,6 @@ isobject@^3.0.1:
resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8=

isobject@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/isobject/-/isobject-4.0.0.tgz#3f1c9155e73b192022a80819bacd0343711697b0"
integrity sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA==

isomorphic-unfetch@^3.0.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/isomorphic-unfetch/-/isomorphic-unfetch-3.1.0.tgz#87341d5f4f7b63843d468438128cb087b7c3e98f"
Expand Down Expand Up @@ -4580,7 +4548,7 @@ keycode@2.2.0:
resolved "https://registry.yarnpkg.com/keycode/-/keycode-2.2.0.tgz#3d0af56dc7b8b8e5cba8d0a97f107204eec22b04"
integrity sha512-ps3I9jAdNtRpJrbBvQjpzyFbss/skHqzS+eu4RxKLaEAtFqkjZaB6TZMSivPbLxf4K7VI4SjR0P5mRCX5+Q25A==

kind-of@^6.0.2, kind-of@^6.0.3:
kind-of@^6.0.2:
version "6.0.3"
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd"
integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==
Expand Down Expand Up @@ -4844,7 +4812,7 @@ methods@~1.1.2:
resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=

micromatch@4.0.8, micromatch@^4.0.2:
micromatch@^4.0.2:
version "4.0.8"
resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202"
integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==
Expand Down Expand Up @@ -5040,7 +5008,7 @@ npm-run-path@^4.0.0:
dependencies:
path-key "^3.0.0"

nth-check@^2.0.0, nth-check@^2.0.1, nth-check@^2.1.1:
nth-check@^2.0.0, nth-check@^2.0.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d"
integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==
Expand Down Expand Up @@ -6304,14 +6272,6 @@ set-function-length@^1.2.1:
gopd "^1.0.1"
has-property-descriptors "^1.0.2"

set-value@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/set-value/-/set-value-4.1.0.tgz#aa433662d87081b75ad88a4743bd450f044e7d09"
integrity sha512-zTEg4HL0RwVrqcWs3ztF+x1vkxfm0lP+MQQFPiMJTKVceBwEV0A569Ou8l9IYQG8jOZdMVI1hGsc0tmeD2o/Lw==
dependencies:
is-plain-object "^2.0.4"
is-primitive "^3.0.1"

setimmediate@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285"
Expand Down Expand Up @@ -6837,14 +6797,6 @@ unpipe@1.0.0, unpipe@~1.0.0:
resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=

unset-value@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-2.0.1.tgz#57bed0c22d26f28d69acde5df9a11b77c74d2df3"
integrity sha512-2hvrBfjUE00PkqN+q0XP6yRAOGrR06uSiUoIQGZkc7GxvQ9H7v8quUPNtZjMg4uux69i8HWpIjLPUKwCuRGyNg==
dependencies:
has-value "^2.0.2"
isobject "^4.0.0"

untildify@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b"
Expand Down
Loading