[tor-commits] [gettor/master] Minor changes to drive script

ilv at torproject.org ilv at torproject.org
Tue Nov 3 19:31:30 UTC 2015


commit 4ed9de8fe5760a60e04298d86bc05780ea7378eb
Author: ilv <ilv at users.noreply.github.com>
Date:   Mon Aug 3 15:07:34 2015 -0300

    Minor changes to drive script
---
 upload/bundles2drive.py |  108 ++++++++++++++++++++++++++++-------------------
 1 file changed, 65 insertions(+), 43 deletions(-)

diff --git a/upload/bundles2drive.py b/upload/bundles2drive.py
index 8c329bf..9612382 100644
--- a/upload/bundles2drive.py
+++ b/upload/bundles2drive.py
@@ -16,10 +16,11 @@ import re
 import os
 import gnupg
 import hashlib
+import logging
 import ConfigParser
 import gettor.core
 
-#import google drive libs
+# import google drive libs
 import httplib2
 from apiclient.discovery import build
 from apiclient.http import MediaFileUpload
@@ -51,7 +52,7 @@ def valid_format(file, osys):
             file)
     elif(osys == 'osx'):
         m = re.search(
-            'TorBrowser-\d\.\d\.\d-osx\d\d_(\w\w)(-\w\w)?\.dmg',     
+            'TorBrowser-\d\.\d\.\d-osx\d\d_(\w\w)(-\w\w)?\.dmg',
             file)
     if m:
         return True
@@ -143,21 +144,21 @@ def upload_files(client, basedir):
     for name in os.listdir(basedir):
         path = os.path.abspath(os.path.join(basedir, name))
         if os.path.isfile(path) and p.match(path)\
-        and valid_format(name, 'linux'):
+           and valid_format(name, 'linux'):
             files.append(name)
 
     p = re.compile('.*\.exe$')
     for name in os.listdir(basedir):
         path = os.path.abspath(os.path.join(basedir, name))
         if os.path.isfile(path) and p.match(path)\
-        and valid_format(name, 'windows'):
+           and valid_format(name, 'windows'):
             files.append(name)
 
     p = re.compile('.*\.dmg$')
     for name in os.listdir(basedir):
         path = os.path.abspath(os.path.join(basedir, name))
         if os.path.isfile(path) and p.match(path)\
-        and valid_format(name, 'osx'):
+           and valid_format(name, 'osx'):
             files.append(name)
 
     # dictionary to store file names and IDs
@@ -173,33 +174,44 @@ def upload_files(client, basedir):
             continue
 
         # upload tor browser installer
-        file_body = MediaFileUpload(abs_file, resumable=True)
+        file_body = MediaFileUpload(
+            abs_file,
+            mimetype="application/octet-stream",
+            resumable=True
+        )
         body = {
-          'title': file
+            'title': file
         }
         print "Uploading '%s'..." % file
         try:
-            file_data = drive_service.files().insert(body=body, media_body=file_body).execute()
+            file_data = drive_service.files().insert(
+                body=body,
+                media_body=file_body
+                ).execute()
         except errors.HttpError, e:
             print str(e)
 
         # upload signature
         asc_body = MediaFileUpload(abs_asc, resumable=True)
         asc_head = {
-           'title': "%s.asc" % file
+            'title': "%s.asc" % file
         }
         print "Uploading '%s'..." % asc
         try:
-            asc_data = drive_service.files().insert(body=asc_head, media_body=asc_body).execute()
+            asc_data = drive_service.files().insert(
+                body=asc_head,
+                media_body=asc_body
+                ).execute()
         except errors.HttpError, e:
             print str(e)
 
         # add filenames and file id to dict
         files_dict[file] = file_data['id']
-        files_dict[asc]  = asc_data['id']
+        files_dict[asc] = asc_data['id']
 
     return files_dict
 
+
 def share_file(service, file_id):
     """Make files public
 
@@ -207,26 +219,28 @@ def share_file(service, file_id):
     link to file.
 
     :param: file_id (string)
-    
+
     :return: (string) url to shared file
-   
+
     """
     permission = {
-         'type': "anyone",
-         'role': "reader",
-         'withLink': True
+        'type': "anyone",
+        'role': "reader",
+        'withLink': True
     }
-    
+
     try:
         service.permissions().insert(
-               fileId=file_id, body=permission).execute()
+            fileId=file_id,
+            body=permission
+            ).execute()
     except errors.HttpError, error:
-           print('An error occured while sharing: %s' % file_id)
+        print('An error occured while sharing: %s' % file_id)
 
     try:
         file = service.files().get(fileId=file_id).execute()
     except errors.HttpError, error:
-           print('Error occured while fetch public link for file: %s' % file_id)
+        print('Error occured while fetch public link for file: %s' % file_id)
 
     print("Uploaded to %s" % file['webContentLink'])
     return file['webContentLink']
@@ -250,29 +264,33 @@ if __name__ == '__main__':
 
     print "Authenticating..."
 
-    flow = OAuth2WebServerFlow(client_id, app_secret, OAUTH_SCOPE,
-                           redirect_uri=REDIRECT_URI)
+    flow = OAuth2WebServerFlow(
+        client_id,
+        app_secret,
+        OAUTH_SCOPE,
+        redirect_uri=REDIRECT_URI
+    )
 
     # If no valid token found, need to prompt user.
     # this should only occur once
     if not refresh_token:
-       flow.params['access_type'] = 'offline'
-       flow.params['approval_prompt'] = 'force'
-       authorize_url = flow.step1_get_authorize_url()
-       print 'Go to the following link in your browser: ' + authorize_url
-       code = raw_input('Enter verification code: ').strip()
-       try:
-           credentials = flow.step2_exchange(code)
-       except FlowExchangeError as e:
-           print str(e)
-
-       # oauth2 credentials instance must be stored as json string
-       config.set('app', 'refresh_token', credentials.to_json())
-       with open('drive.cfg', 'wb') as configfile:
+        flow.params['access_type'] = 'offline'
+        flow.params['approval_prompt'] = 'force'
+        authorize_url = flow.step1_get_authorize_url()
+        print 'Go to the following link in your browser: ' + authorize_url
+        code = raw_input('Enter verification code: ').strip()
+        try:
+            credentials = flow.step2_exchange(code)
+        except FlowExchangeError as e:
+            print str(e)
+
+        # oauth2 credentials instance must be stored as json string
+        config.set('app', 'refresh_token', credentials.to_json())
+        with open('drive.cfg', 'wb') as configfile:
             config.write(configfile)
     else:
-       # we already have a valid token
-       credentials = Credentials.new_from_json(refresh_token)
+        # we already have a valid token
+        credentials = Credentials.new_from_json(refresh_token)
 
     # authenticate with oauth2
     http = httplib2.Http()
@@ -281,7 +299,6 @@ if __name__ == '__main__':
     # initialize drive instance
     drive_service = build('drive', 'v2', http=http)
 
-
     # import key fingerprint
     gpg = gnupg.GPG()
     key_data = open(tbb_key).read()
@@ -309,7 +326,7 @@ if __name__ == '__main__':
         for file in uploaded_files.keys():
             # only run for tor browser installers
             if p4.match(file):
-               continue
+                continue
             asc = "%s.asc" % file
             abs_file = os.path.abspath(os.path.join(upload_dir, file))
             abs_asc = os.path.abspath(os.path.join(upload_dir, asc))
@@ -317,10 +334,15 @@ if __name__ == '__main__':
             sha_file = get_file_sha256(abs_file)
 
             # build links
-            link_file = share_file(drive_service,
-                                   uploaded_files[file])
-            link_asc  = share_file(drive_service,
-                                   uploaded_files["%s.asc" % file])
+            link_file = share_file(
+                drive_service,
+                uploaded_files[file]
+            )
+
+            link_asc = share_file(
+                drive_service,
+                uploaded_files["%s.asc" % file]
+            )
 
             if p1.match(file):
                 osys, arch, lc = get_bundle_info(file, 'linux')





More information about the tor-commits mailing list