sf-gdrive 0.1.13 → 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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7f5a921528786f32a1b5ed13ce2fc8c664031d5a600aa6fb316aaedf073d6ca8
4
- data.tar.gz: 8fca96d26a832c5b7330158b3e2856eb85591dcf1f48f631d283e66ce8cd318f
3
+ metadata.gz: 64f830ceae7243bc8720ec6c7d6236db894a35e67ecbaedd58abfd64e750019b
4
+ data.tar.gz: e84d4f7fe9cc14a98cf859e90e51087d7d172356befc927ae97f47efcc9b8927
5
5
  SHA512:
6
- metadata.gz: 8859e1d7192fc0f63e82a1ddcec8fb73cd44fe131d79f69697dff93afdd28936ed2a322692bd19bbbe263aa44cbf1530d389520c26ac5abb5a297cbdc8f5e50a
7
- data.tar.gz: 6089b84b66608d137e340be1294758d80a1b1c2540a01f16d0d172730634c1530993e02ca8ecd2228634bd3bf886cc0629e861af848ac832958f447c89593e0e
6
+ metadata.gz: 46d4a6fc924f75cfc8c6606f5f58f49d18feb83f8d67215dcffe924a12b0c661f6d1e2102be6e122d06d1e28adebfcdaa27f44d70b91515e2de504c5a9c1e2d6
7
+ data.tar.gz: b04470583560f4ab76d3af1ad43be99c2aa6d0bb1474556298094c15e224f1d4f619ccc70595e9b825c0a01ff05c564f5e107a487bd257bf9b78865bc2bc9d28
@@ -36,119 +36,5 @@ module Gdrive
36
36
  end
37
37
  end
38
38
  end
39
-
40
- def decrypt_temp_file
41
- require 'open-uri'
42
- content = open('https://raw.githubusercontent.com/standardfile/decrypt-html-page/master/decrypt.html').read
43
- tmp = Tempfile.new("decrypt")
44
- tmp.write(content)
45
- tmp.rewind
46
- return tmp
47
- end
48
-
49
- def sync_decrypt_file(drive, folder)
50
- file_name = "decrypt.html"
51
- existing = drive.list_files(q: "name = '#{file_name}'", fields: "files(id, name, created_time)")
52
- if existing.files.length > 0
53
- file = existing.files[0]
54
- days_old = DateTime.now - file.created_time
55
- if days_old < 14
56
- return
57
- end
58
- drive.update_file(file.id, upload_source: decrypt_temp_file().path)
59
- else
60
- drive.create_file({:name => file_name, :parents => [folder.id]}, upload_source: decrypt_temp_file().path, content_type: "text/html")
61
- end
62
- end
63
-
64
- def find_or_create_folder(drive, folder_name, parent_folder)
65
- folder_mime = "application/vnd.google-apps.folder"
66
- folder_search = nil
67
- begin
68
- if parent_folder
69
- folder_search = drive.list_files(q: "mimeType='#{folder_mime}' and name='#{folder_name}' and parents in '#{parent_folder.id}'")
70
- else
71
- folder_search = drive.list_files(q: "mimeType='#{folder_mime}' and name='#{folder_name}'")
72
- end
73
- rescue Exception => e
74
- puts "\n\n find_or_create_folder exception: #{e}\n\n"
75
- return
76
- end
77
-
78
- if folder_search.files.length > 0
79
- folder = folder_search.files[0]
80
- else
81
- folder_data = {
82
- name: folder_name,
83
- mime_type: folder_mime
84
- }
85
- if parent_folder
86
- folder_data[:parents] = [parent_folder.id]
87
- end
88
- folder = drive.create_file(folder_data, fields: 'id')
89
- end
90
-
91
- return folder
92
- end
93
-
94
- def sync
95
- client_secrets = Google::APIClient::ClientSecrets.load
96
- client_params = client_secrets.to_authorization.as_json
97
- secret_hash = JSON.parse(Base64.decode64(params[:key]))
98
- client_params.merge!(secret_hash)
99
- auth_client = Signet::OAuth2::Client.new(client_params)
100
- drive = Google::Apis::DriveV3::DriveService.new
101
- drive.authorization = auth_client
102
-
103
- parent = nil
104
- folders = ["Standard Notes", "#{Time.current.year}", "#{DateTime.now.strftime("%B")}"]
105
- resolved_folders = []
106
- folders.each do |current_folder_name|
107
- result = find_or_create_folder(drive, current_folder_name, parent)
108
- resolved_folders.push(result)
109
- parent = result
110
- end
111
-
112
- folder = resolved_folders.last
113
-
114
- self.sync_decrypt_file(drive, resolved_folders.first)
115
-
116
- auth_params = params[:auth_params]
117
- items = params[:items]
118
- if items && items.length > 0
119
- tmp = Tempfile.new(SecureRandom.hex)
120
- payload = { "items" => items}
121
- payload["auth_params"] = auth_params if auth_params != nil
122
- tmp.write("#{JSON.pretty_generate(payload.as_json)}")
123
- tmp.rewind
124
-
125
- file_name = "#{DateTime.now.strftime("%B %-d, %Y").sub(',', '')}.txt"
126
- existing = drive.list_files(q: "name = '#{file_name}'")
127
- if existing.files.length > 0
128
- file = existing.files[0]
129
- drive.update_file(file.id, upload_source: tmp.path)
130
- else
131
- file = drive.create_file({:name => file_name, :parents => [folder.id]}, upload_source: tmp.path, content_type: "text/plain")
132
- end
133
- end
134
- rescue Signet::AuthorizationError => _e
135
- render(
136
- json: {
137
- error: {
138
- message: 'Could not authorize with Google Drive. Please verify your integration.'
139
- }
140
- },
141
- status: :bad_request
142
- )
143
- rescue Google::Apis::Error => _e
144
- render(
145
- json: {
146
- error: {
147
- message: 'Could not sync with Google Drive. Please verify your integration.'
148
- }
149
- },
150
- status: :bad_request
151
- )
152
- end
153
39
  end
154
40
  end
@@ -1,6 +1,3 @@
1
1
  Gdrive::Engine.routes.draw do
2
-
3
- post "sync" => "drive#sync"
4
-
5
2
  root "drive#index"
6
3
  end
@@ -1,3 +1,3 @@
1
1
  module Gdrive
2
- VERSION = '0.1.13'
2
+ VERSION = '0.1.14'
3
3
  end
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.13
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: 2020-08-17 00:00:00.000000000 Z
11
+ date: 2020-09-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails