eivid 1.1.1 → 1.1.4
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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 84e784e3dbec889dae0b8fd97deade4b7dfb158845015783c1f3bc4bf7ff1f5f
|
4
|
+
data.tar.gz: d804c9c9c80d164bcfcf07046d880f3359e7e1c6f030d038039c43e711689941
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ade10d5df13c9d5bd79ce6c1c0e12a8ac470feca13d0cc7c0611a51d632dd01fb344afe54a4163a0a781238b8c9f63f3ceb6726a71aa17c93160eb4ef76bda75
|
7
|
+
data.tar.gz: e6df28555d25e1d259546285924e5fd237383bebfb9ce98b7856c3b2618428ca31245a07b67cc5f37396aa1aefb89cf6c863e232e820aba97bb3104774339586
|
@@ -14,27 +14,21 @@ module Eivid::Concerns::VideoValidations
|
|
14
14
|
|
15
15
|
def validate_video_file_presence
|
16
16
|
unless params["video_file"]
|
17
|
-
|
18
|
-
"you forgot to add a required 'video_file' to your request"
|
19
|
-
)
|
17
|
+
raise_controller_error "you forgot to add a required 'video_file' to your request"
|
20
18
|
end
|
21
19
|
end
|
22
20
|
|
23
21
|
def validate_video_file_format
|
24
22
|
mime = params["video_file"]&.original_filename&.split('.')&.last&.downcase
|
25
23
|
unless Eivid::VideoMimeDump::DATA.include?(mime)
|
26
|
-
|
27
|
-
"the 'video_file' you tried to upload, is of an invalid mime type"
|
28
|
-
)
|
24
|
+
raise_controller_error "the 'video_file' you tried to upload, is of an invalid mime type"
|
29
25
|
end
|
30
26
|
end
|
31
27
|
|
32
28
|
def validate_video_file_size
|
33
29
|
megabytes = params["video_file"].tempfile.size / 1.0.megabyte
|
34
30
|
unless MAX_MB_VIDEO >= megabytes
|
35
|
-
|
36
|
-
"the 'video_file' size (#{megabytes.round(2)} mb) you tried to upload exceeds the maximum file size (#{MAX_MB_VIDEO} mb)"
|
37
|
-
)
|
31
|
+
raise_controller_error "the 'video_file' size (#{megabytes.round(2)} mb) you tried to upload exceeds the maximum file size (#{MAX_MB_VIDEO} mb)"
|
38
32
|
end
|
39
33
|
end
|
40
34
|
|
@@ -3,7 +3,7 @@ module Eivid::Concerns::MainApp::Owner
|
|
3
3
|
included do
|
4
4
|
|
5
5
|
has_one :video_owner, class_name: 'Eivid::Owner', foreign_key: 'external_id'
|
6
|
-
has_many :videos, class_name: 'Eivid::Video',
|
6
|
+
has_many :videos, class_name: 'Eivid::Video', foreign_key: 'owner_id'
|
7
7
|
|
8
8
|
include Eivid::Concerns::MainApp::VideoConcerns
|
9
9
|
|
@@ -2,19 +2,56 @@ module Eivid::Concerns::RequestService::UploadVideo
|
|
2
2
|
extend ActiveSupport::Concern
|
3
3
|
|
4
4
|
def upload_video(video_path:)
|
5
|
-
@file
|
6
|
-
|
7
|
-
@response = JSON.parse(@request).deep_symbolize_keys
|
8
|
-
@upload_link = @response.dig(:upload, :upload_link)
|
9
|
-
|
5
|
+
@file = File.open(video_path)
|
6
|
+
retrieve_upload_link
|
10
7
|
tus_upload_to_vimeo
|
11
8
|
@response
|
12
9
|
end
|
13
10
|
|
14
11
|
private
|
15
12
|
|
13
|
+
def retrieve_upload_link
|
14
|
+
efforts = 0
|
15
|
+
max_efforts = 180
|
16
|
+
sleep_time = 1
|
17
|
+
|
18
|
+
while @upload_link.blank? && efforts < max_efforts do
|
19
|
+
|
20
|
+
puts "Trying to retrieve upload link from Vimeo... try #{efforts}/#{max_efforts} with #{sleep_time} seconds sleep in between..."
|
21
|
+
|
22
|
+
@request = HTTParty.post Eivid::RequestService::VIDEOS_URL, **upload_params
|
23
|
+
@response = JSON.parse(@request).deep_symbolize_keys
|
24
|
+
@upload_link = @response.dig(:upload, :upload_link)
|
25
|
+
|
26
|
+
if @upload_link.blank?
|
27
|
+
sleep sleep_time
|
28
|
+
efforts += 1
|
29
|
+
|
30
|
+
else
|
31
|
+
puts "successfully retrieved the Vimeo upload link!"
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
16
36
|
def tus_upload_to_vimeo
|
17
|
-
|
37
|
+
efforts = 0
|
38
|
+
max_efforts = 10
|
39
|
+
sleep_time = 30
|
40
|
+
successful = false
|
41
|
+
|
42
|
+
while !successful && efforts < max_efforts
|
43
|
+
|
44
|
+
puts "Trying to upload the video to Vimeo... try #{efforts}/#{max_efforts} with #{sleep_time} seconds sleep in between..."
|
45
|
+
response = HTTParty.patch @upload_link, body: @file.read, headers: tus_headers
|
46
|
+
|
47
|
+
if response.code >= 500
|
48
|
+
sleep sleep_time
|
49
|
+
efforts += 1
|
50
|
+
else
|
51
|
+
successful = true
|
52
|
+
puts "successfully uploaded the video to Vimeo!"
|
53
|
+
end
|
54
|
+
end
|
18
55
|
end
|
19
56
|
|
20
57
|
def upload_params
|
@@ -28,4 +65,4 @@ module Eivid::Concerns::RequestService::UploadVideo
|
|
28
65
|
{ body: body.to_json, headers: default_headers }
|
29
66
|
end
|
30
67
|
|
31
|
-
end
|
68
|
+
end
|
data/lib/eivid/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: eivid
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jurriaan Schrofer
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-03-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -143,7 +143,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
143
143
|
- !ruby/object:Gem::Version
|
144
144
|
version: '0'
|
145
145
|
requirements: []
|
146
|
-
rubygems_version: 3.
|
146
|
+
rubygems_version: 3.2.22
|
147
147
|
signing_key:
|
148
148
|
specification_version: 4
|
149
149
|
summary: Eivid because we can.
|