def search(request, string): template = loader.get_template('search.html') drive_services = DriveCredential.objects.filter(user_id=request.user.id) file_list = [] root_ids = [] cred_list = [(x.token, x.credentials) for x in drive_services] for i in cred_list: file_list += (get_file_list(auth(*i))) root_ids.append(get_root_id(auth(*i))) results = find(string, file_list) context = { 'file_list': results, } return HttpResponse(template.render(context))
def index(request): template = loader.get_template('main.html') drive_service = auth('manager/tokens/token001.json', 'manager/credentials/credentials001.json') file_list = get_file_list(drive_service) context = {'file_list': file_list} return HttpResponse(template.render(context))
def create_drive(request): if request.method == 'POST': form = DriveDetailForm(request.POST) if form.is_valid(): if auth(form['token'].value(), form['credentials'].value()): root_id = get_root_id( auth(form['token'].value(), form['credentials'].value())) user = User.objects.get(pk=request.user.id) new_drive = DriveCredential.create(user, form['email'].value(), root_id, form['token'].value(), form['credentials'].value()) new_drive.save() return redirect('/drives/') else: raise ValueError("token and credentials are invalid") else: form = DriveDetailForm() return render(request, 'drive_details.html', {'form': form})
def download(request, file_id): template = loader.get_template('contents.html') drive_services = DriveCredential.objects.filter(user_id=request.user.id) file_list = [] root_ids = [] cred_list = [(x.token, x.credentials) for x in drive_services] for i in cred_list: file_list += (get_file_list(auth(*i))) file = [x for x in file_list if x['id'] == file_id] print(file[0]['owners'][0]['emailAddress']) for i in cred_list: if (get_user(auth(*i)) == file[0]['owners'][0]['emailAddress']): drive = auth(*i) request, file_name = download_file(file_id, file_list, drive) response = HttpResponse(request.execute()) response['Content-Disposition'] = 'attachement; filename=' + file_name return response
def upload_test(request): drive_services = DriveCredential.objects.get(user_id=2, pk=2) drive = auth(drive_services.token, drive_services.credentials) if request.method == 'POST': uploaded_file = request.FILES['document'] fs = FileSystemStorage() fs.save(uploaded_file.name, uploaded_file) media = MediaFileUpload(BASE_DIR + '/tmp/' + uploaded_file.name) file_metadata = {'name': uploaded_file.name} # print(BASE_DIR) drive.files().create(body=file_metadata, media_body=media, fields='id').execute() fs.delete(uploaded_file.name) return render(request, 'upload_test.html')
def drive_detail(request, drive_id): drive_service = DriveCredential.objects.get(user_id=request.user.id, pk=drive_id) if request.method == 'POST': form = DriveDetailForm(request.POST) if form.is_valid(): root_id = get_root_id( auth(form['token'].value(), form['credentials'].value())) drive_service.email = form['email'].value() drive_service.token = form['token'].value() drive_service.credentials = form['credentials'].value() drive_service.root_id = root_id drive_service.save() return redirect('/drives/') else: form = DriveDetailForm( initial={ 'email': drive_service.email, 'token': drive_service.token, 'credentials': drive_service.credentials }) return render(request, 'drive_details.html', {'form': form})
def contents(request, parent_id): drive_services = DriveCredential.objects.filter(user_id=request.user.id) file_list = [] root_ids = [] drives = [] cred_list = [(x.token, x.credentials) for x in drive_services] page = request.GET.get('page', 1) for i in cred_list: file_list += (get_file_list(auth(*i))) root_ids.append(get_root_id(auth(*i))) file = get_file(parent_id, file_list) if parent_id != 'all': if not file: cred = DriveCredential.objects.get(user_id=request.user.id, root_id=parent_id) drive = auth(cred.token, cred.credentials) parent = parent_id else: for i in cred_list: if (get_user(auth(*i)) == file['owners'][0]['emailAddress']): drive = auth(*i) parent = file['id'] if request.method == 'POST': if 'upload' in request.POST: uploaded_file = request.FILES['document'] fs = FileSystemStorage() fs.save(uploaded_file.name, uploaded_file) media = MediaFileUpload(BASE_DIR + '/tmp/' + uploaded_file.name) file_metadata = {'name': uploaded_file.name, 'parents': [parent]} # print(BASE_DIR) drive.files().create(body=file_metadata, media_body=media, fields='id').execute() fs.delete(uploaded_file.name) file_list = [] for i in cred_list: file_list += (get_file_list(auth(*i))) root_ids.append(get_root_id(auth(*i))) elif 'search' in request.POST: string = request.POST.get('string') print(request.POST) return redirect('/search/' + string) # print(file_list) if parent_id != 'all': cleared = [ x for x in file_list if 'parents' in x if parent_id in x['parents'] ] print('not all') else: cleared = [x for x in file_list] print('all') # print(cleared) paginator = Paginator(cleared, 10) try: files = paginator.page(page) except PageNotAnInteger: files = paginator.page(1) except EmptyPage: files = paginator.page(paginator.num_pages) # print(files) for i in files: print(i['name']) context = { 'parent_id': parent_id, 'file_list': cleared, 'root_ids': root_ids, 'file': file, 'files': files, } # print(file_list) return render(request, 'contents.html', context)