sf-gdrive 0.1.9 → 0.1.14
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 +5 -5
- data/app/controllers/gdrive/drive_controller.rb +0 -95
- data/config/routes.rb +0 -3
- data/lib/gdrive/version.rb +1 -1
- metadata +9 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 64f830ceae7243bc8720ec6c7d6236db894a35e67ecbaedd58abfd64e750019b
|
4
|
+
data.tar.gz: e84d4f7fe9cc14a98cf859e90e51087d7d172356befc927ae97f47efcc9b8927
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 46d4a6fc924f75cfc8c6606f5f58f49d18feb83f8d67215dcffe924a12b0c661f6d1e2102be6e122d06d1e28adebfcdaa27f44d70b91515e2de504c5a9c1e2d6
|
7
|
+
data.tar.gz: b04470583560f4ab76d3af1ad43be99c2aa6d0bb1474556298094c15e224f1d4f619ccc70595e9b825c0a01ff05c564f5e107a487bd257bf9b78865bc2bc9d28
|
@@ -13,7 +13,6 @@ module Gdrive
|
|
13
13
|
:redirect_uri => Gdrive.mount_url
|
14
14
|
)
|
15
15
|
|
16
|
-
|
17
16
|
if request["code"] == nil
|
18
17
|
session["redirect_url"] = params[:redirect_url]
|
19
18
|
@auth_uri = auth_client.authorization_uri.to_s
|
@@ -37,99 +36,5 @@ module Gdrive
|
|
37
36
|
end
|
38
37
|
end
|
39
38
|
end
|
40
|
-
|
41
|
-
def decrypt_temp_file
|
42
|
-
require 'open-uri'
|
43
|
-
content = open('https://raw.githubusercontent.com/standardfile/decrypt-html-page/master/decrypt.html').read
|
44
|
-
tmp = Tempfile.new("decrypt")
|
45
|
-
tmp.write(content)
|
46
|
-
tmp.rewind
|
47
|
-
return tmp
|
48
|
-
end
|
49
|
-
|
50
|
-
def sync_decrypt_file(drive, folder)
|
51
|
-
file_name = "decrypt.html"
|
52
|
-
existing = drive.list_files(q: "name = '#{file_name}'", fields: "files(id, name, created_time)")
|
53
|
-
if existing.files.length > 0
|
54
|
-
file = existing.files[0]
|
55
|
-
days_old = DateTime.now - file.created_time
|
56
|
-
if days_old < 14
|
57
|
-
return
|
58
|
-
end
|
59
|
-
drive.update_file(file.id, upload_source: decrypt_temp_file().path)
|
60
|
-
else
|
61
|
-
drive.create_file({:name => file_name, :parents => [folder.id]}, upload_source: decrypt_temp_file().path, content_type: "text/html")
|
62
|
-
end
|
63
|
-
end
|
64
|
-
|
65
|
-
def find_or_create_folder(drive, folder_name, parent_folder)
|
66
|
-
folder_mime = "application/vnd.google-apps.folder"
|
67
|
-
folder_search = nil
|
68
|
-
begin
|
69
|
-
folder_search = drive.list_files(q: "mimeType='#{folder_mime}' and name='#{folder_name}'")
|
70
|
-
rescue Exception => e
|
71
|
-
puts "\n\n find_or_create_folder exception: #{e}\n\n"
|
72
|
-
return
|
73
|
-
end
|
74
|
-
|
75
|
-
if folder_search.files.length > 0
|
76
|
-
folder = folder_search.files[0]
|
77
|
-
else
|
78
|
-
folder_data = {
|
79
|
-
name: folder_name,
|
80
|
-
mime_type: folder_mime
|
81
|
-
}
|
82
|
-
if parent_folder
|
83
|
-
folder_data[:parents] = [parent_folder.id]
|
84
|
-
end
|
85
|
-
folder = drive.create_file(folder_data, fields: 'id')
|
86
|
-
end
|
87
|
-
|
88
|
-
return folder
|
89
|
-
end
|
90
|
-
|
91
|
-
def sync
|
92
|
-
client_secrets = Google::APIClient::ClientSecrets.load
|
93
|
-
client_params = client_secrets.to_authorization.as_json
|
94
|
-
secret_hash = JSON.parse(Base64.decode64(params[:key]))
|
95
|
-
client_params.merge!(secret_hash)
|
96
|
-
auth_client = Signet::OAuth2::Client.new(client_params)
|
97
|
-
drive = Google::Apis::DriveV3::DriveService.new
|
98
|
-
drive.authorization = auth_client
|
99
|
-
|
100
|
-
parent = nil
|
101
|
-
folders = ["Standard Notes", "#{Time.current.year}", "#{DateTime.now.strftime("%B")}"]
|
102
|
-
resolved_folders = []
|
103
|
-
folders.each do |current_folder_name|
|
104
|
-
result = find_or_create_folder(drive, current_folder_name, parent)
|
105
|
-
resolved_folders.push(result)
|
106
|
-
parent = result
|
107
|
-
end
|
108
|
-
|
109
|
-
folder = resolved_folders.last
|
110
|
-
|
111
|
-
self.sync_decrypt_file(drive, resolved_folders.first)
|
112
|
-
|
113
|
-
auth_params = params[:auth_params]
|
114
|
-
items = params[:items]
|
115
|
-
if items && items.length > 0
|
116
|
-
tmp = Tempfile.new(SecureRandom.hex)
|
117
|
-
payload = { "items" => items}
|
118
|
-
payload["auth_params"] = auth_params if auth_params != nil
|
119
|
-
tmp.write("#{JSON.pretty_generate(payload.as_json)}")
|
120
|
-
tmp.rewind
|
121
|
-
|
122
|
-
file_name = "#{DateTime.now.strftime("%B %-d, %Y").sub(',', '')}.txt"
|
123
|
-
existing = drive.list_files(q: "name = '#{file_name}'")
|
124
|
-
if existing.files.length > 0
|
125
|
-
file = existing.files[0]
|
126
|
-
drive.update_file(file.id, upload_source: tmp.path)
|
127
|
-
else
|
128
|
-
file = drive.create_file({:name => file_name, :parents => [folder.id]}, upload_source: tmp.path, content_type: "text/plain")
|
129
|
-
end
|
130
|
-
end
|
131
|
-
|
132
|
-
end
|
133
|
-
|
134
39
|
end
|
135
40
|
end
|
data/config/routes.rb
CHANGED
data/lib/gdrive/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sf-gdrive
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.14
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- "@StandardNotes"
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-09-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -16,28 +16,28 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 5
|
19
|
+
version: '5'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 5
|
26
|
+
version: '5'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: google-api-client
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - '='
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: 0.25.0
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - '='
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
40
|
+
version: 0.25.0
|
41
41
|
description: Google Drive Extension for Standard File/Standard Notes.
|
42
42
|
email:
|
43
43
|
- mo@standardnotes.org
|
@@ -86,8 +86,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
86
86
|
- !ruby/object:Gem::Version
|
87
87
|
version: '0'
|
88
88
|
requirements: []
|
89
|
-
|
90
|
-
rubygems_version: 2.6.12
|
89
|
+
rubygems_version: 3.0.3
|
91
90
|
signing_key:
|
92
91
|
specification_version: 4
|
93
92
|
summary: Google Drive Extension for Standard File/Standard Notes.
|