diff --git a/app.py b/app.py
index 6492b6a..062a0e5 100644
--- a/app.py
+++ b/app.py
@@ -1,4 +1,4 @@
-from flask import Flask, render_template, request, json, session, redirect, Blueprint, url_for
+from flask import Flask, render_template, request, json, session, redirect, Blueprint, url_for, flash, Response, send_from_directory
from flask_wtf import Form
from wtforms.fields import StringField, SubmitField
from wtforms.validators import Required
@@ -13,8 +13,12 @@ from flask_socketio import emit, join_room, leave_room
import smtplib
from oauth2client import file, client, tools
from googleapiclient.discovery import build
+from googleapiclient.http import MediaFileUpload
from httplib2 import Http
from oauth2client.service_account import ServiceAccountCredentials
+import os
+from werkzeug.utils import secure_filename
+from camera import VideoCamera
@@ -34,7 +38,14 @@ socketio.init_app(app)
#app.config['MYSQL_DATABASE_HOST'] = 'localhost'
#mysql = MySQL()
#mysql.init_app(app)
+
+UPLOAD_FOLDER = './uploads'
+ALLOWED_EXTENSIONS = set(['txt', 'pdf', 'png', 'jpg', 'jpeg', 'gif'])
+app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER
+def allowed_file(filename):
+ return '.' in filename and \
+ filename.rsplit('.', 1)[1].lower() in ALLOWED_EXTENSIONS
@app.route('/groupChat', methods=['GET', 'POST'])
def indexChat():
@@ -99,7 +110,10 @@ class LoginForm(Form):
faces_list = []
testing_face = 0
service = None
-SCOPES = "https://www.googleapis.com/auth/calendar.events"
+drive_service = None
+CALENDAR_SCOPES = "https://www.googleapis.com/auth/calendar.events"
+DRIVE_SCOPES = "https://www.googleapis.com/auth/drive"
+
@socketio.on('message')
def handleMessage(msg):
@@ -111,9 +125,15 @@ def main():
store = file.Storage('token.json')
creds = store.get()
if not creds or creds.invalid:
- flow = client.flow_from_clientsecrets('credentials.json', SCOPES)
+ flow = client.flow_from_clientsecrets('credentials.json', CALENDAR_SCOPES)
creds = tools.run_flow(flow, store)
service = build('calendar', 'v3', http=creds.authorize(Http()))
+
+ if not creds or creds.invalid:
+ flow = client.flow_from_clientsecrets('credentials.json', DRIVE_SCOPES)
+ creds = tools.run_flow(flow, store)
+ drive_service = build('drive', 'v3', http=creds.authorize(Http()))
+
return render_template('index.html', info="Witaj!")
@app.route("/indexENG")
@@ -636,13 +656,181 @@ def addEvent():
service.events().insert(calendarId='primary', body=event).execute()
return render_template('userHome.html', user=session['user'].split('@')[0], calendar_src="https://calendar.google.com/calendar/embed?src=" + session.get("user"))
+@app.route('/streaming')
+def streaming():
+ return render_template('streaming.html')
+
@app.route('/toAddEvent')
def toAddEvent():
if session.get('user'):
return render_template('addEvent.html')
else:
return render_template('error.html',error = 'Nieautoryzowany dostęp!')
+
+def gen(camera):
+ while True:
+ frame = camera.get_frame()
+ yield (b'--frame\r\n'
+ b'Content-Type: image/jpeg\r\n\r\n' + frame + b'\r\n\r\n')
+
+@app.route('/stream')
+def stream():
+ return Response(gen(VideoCamera()),
+ mimetype='multipart/x-mixed-replace; boundary=frame')
+
+def make_tree(path=app.config['UPLOAD_FOLDER']):
+ tree = dict(name=path, children=[])
+ try: lst = os.listdir(path)
+ except OSError:
+ pass #ignore errors
+ else:
+ for name in lst:
+ fn = os.path.join(path, name)
+ if os.path.isdir(fn):
+ tree['children'].append(make_tree(fn))
+ else:
+ tree['children'].append(dict(name=fn))
+ return tree
+
+@app.route('/uploads/Upload new File
+
+
+''' '''
+@app.route('/addResources', methods=['GET', 'POST'])
+def addResources():
+ if request.method == 'POST':
+ # check if the post request has the file part
+ #if 'file' not in request.files:
+ # flash('No file part')
+ # return redirect(request.url)
+ file = request.files['fileToUpload']
+ file_metadata = {'name': file}
+ path = request.files['fileToUpload'].file.name
+ print (os.path.basename(file.filename))
+ media = MediaFileUpload(path)
+ file = drive_service.files().create(body=file_metadata, media_body=media, fields='id').execute()
+ results = drive_service.files().list(pageSize=10, fields="nextPageToken, files(id, name)").execute()
+ items = results.get('files', [])
+ return render_template('allResources.html', resources = items)
+ # file = request.files['fileToUpload']
+ # file = request.form["fileToUpload"]
+ # filename = secure_filename(file.filename)
+ # file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
+ # input_file = UPLOAD_FOLDER + filename
+ # uploads = []
+ # uploads.append(input_file)
+ # return render_template('addResources.html', resources = uploads)
+
+@app.route('/allResources')
+def allResources():
+ results = drive_service.files().list(pageSize=10, fields="nextPageToken, files(id, name)").execute()
+ items = results.get('files', [])
+ return render_template('allResources.html', resources = items)
+
+@app.route('/toAllResources')
+def toAllResources():
+ if session.get('user'):
+ uploads = app.config['UPLOAD_FOLDER'] #os.path.join(current_app.root_path, app.config['UPLOAD_FOLDER'])
+ path = os.getcwd()
+ return render_template('allResources.html', resources = os.path.join(path, uploads))
+ #return render_template('resources.html')
+ else:
+ return render_template('error.html',error = 'Nieautoryzowany dostęp!')
+
+@app.route('/toAddResources')
+def toAddResources():
+ if session.get('user'):
+ uploads = app.config['UPLOAD_FOLDER'] #os.path.join(current_app.root_path, app.config['UPLOAD_FOLDER'])
+ path = os.getcwd()
+ return render_template('addResources.html', resources = os.path.join(path, uploads))
+ #return render_template('resources.html')
+ else:
+ return render_template('error.html',error = 'Nieautoryzowany dostęp!')
+
+@app.route('/downloadResource')
+def downloadResource():
+ if session.get('user'):
+ file_id = request.files["files"]
+ return render_template('addResources.html', resources = os.path.join(path, uploads))
+ #return render_template('resources.html')
+ else:
+ return render_template('error.html',error = 'Nieautoryzowany dostęp!')
+'''
+
if __name__ == "__main__":
#app.run(host='0.0.0.0')
# Port: 5000
diff --git a/templates/resources.html b/templates/resources.html
new file mode 100644
index 0000000..ebee1d6
--- /dev/null
+++ b/templates/resources.html
@@ -0,0 +1,93 @@
+
+
+
+
+
+
+
+ Wszystkie materiały uczelni
+ Materiały do pobrania:
+
+
+ {% for key, value in items.items() %}
+ {% if key == "children" %}
+ {% for val in value %}
+ {% for k, v in val.items() %}
+
+
+
+ {% endfor %}
+ {% endfor %}
+ {% endif %}
+ {% endfor %}
+
+
+
+
+
+
+
+
+
+
+
+
Wrzuć materiał
+
+
Czas | -Jaka aktywność | -
---|---|
8:00 | -brak | -
9:00 | -brak | -
10:00 | -brak | -
11:00 | -brak | -
12:00 | -brak | -