sf-gdrive 0.1.13 → 0.1.14

Sign up to get free protection for your applications and to get access to all the features.
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