|
|
@ -39,7 +39,16 @@ def login(request): |
|
|
|
password = form.cleaned_data.get('loginPass') |
|
|
|
password = form.cleaned_data.get('loginPass') |
|
|
|
user = authenticate(username=username, password=password) |
|
|
|
user = authenticate(username=username, password=password) |
|
|
|
auth.login(request, user) |
|
|
|
auth.login(request, user) |
|
|
|
info = getAddr(request.META['REMOTE_ADDR']) |
|
|
|
#info = getAddr(request.META['REMOTE_ADDR']) |
|
|
|
|
|
|
|
info = { |
|
|
|
|
|
|
|
"status": "success", |
|
|
|
|
|
|
|
"query": "none", |
|
|
|
|
|
|
|
"city": "none", |
|
|
|
|
|
|
|
"country": "none", |
|
|
|
|
|
|
|
"regionName": "none", |
|
|
|
|
|
|
|
"lat": "none", |
|
|
|
|
|
|
|
"lon": "none" |
|
|
|
|
|
|
|
} |
|
|
|
if info['status'] == 'success': |
|
|
|
if info['status'] == 'success': |
|
|
|
Login.objects.create(username=username, client_addr=info['query'], city=info['city'], |
|
|
|
Login.objects.create(username=username, client_addr=info['query'], city=info['city'], |
|
|
|
country=info['country'], region=info['regionName'], latitude=info['lat'], |
|
|
|
country=info['country'], region=info['regionName'], latitude=info['lat'], |
|
|
@ -59,7 +68,9 @@ def userinfo(request): |
|
|
|
image_data = Upload.objects.filter(username=request.user.username).order_by('-upload_time')[:5] |
|
|
|
image_data = Upload.objects.filter(username=request.user.username).order_by('-upload_time')[:5] |
|
|
|
blog_data = paper.objects.filter(username=request.user.username).order_by('-paper_time')[:5] |
|
|
|
blog_data = paper.objects.filter(username=request.user.username).order_by('-paper_time')[:5] |
|
|
|
task_data = Task.objects.filter(username=request.user.username).order_by('-task_time')[:5] |
|
|
|
task_data = Task.objects.filter(username=request.user.username).order_by('-task_time')[:5] |
|
|
|
return render(request, 'function/user.html', {'name': auth.get_user(request).username, 'login_data': login_data, 'image_data': image_data, 'blog_data': blog_data, 'task_data': task_data, 'regtime': auth.get_user(request).date_joined}) |
|
|
|
video_data = videoUpload.objects.filter(username=request.user.username).order_by('-video_time')[:5] |
|
|
|
|
|
|
|
package_data = packageUpload.objects.filter(username=request.user.username).order_by('-package_time')[:5] |
|
|
|
|
|
|
|
return render(request, 'function/user.html', {'name': auth.get_user(request).username, 'login_data': login_data, 'image_data': image_data, 'blog_data': blog_data, 'task_data': task_data, 'video_data': video_data, 'package_data': package_data, 'regtime': auth.get_user(request).date_joined}) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def logout(request): |
|
|
|
def logout(request): |
|
|
@ -81,13 +92,12 @@ def register(request): |
|
|
|
email = request.POST.get('email') |
|
|
|
email = request.POST.get('email') |
|
|
|
password = form.cleaned_data.get('password') |
|
|
|
password = form.cleaned_data.get('password') |
|
|
|
likes = request.POST.getlist('like') |
|
|
|
likes = request.POST.getlist('like') |
|
|
|
role = request.POST.get('role') |
|
|
|
role = "False" |
|
|
|
try: |
|
|
|
try: |
|
|
|
User.objects.create_user(username=username, email=email, password=password, first_name=first_name, |
|
|
|
User.objects.create_user(username=username, email=email, password=password, first_name=first_name, |
|
|
|
last_name=last_name, is_staff=role, likes=likes) |
|
|
|
last_name=last_name, is_staff=role, likes=likes) |
|
|
|
except Exception as e: |
|
|
|
except Exception as e: |
|
|
|
return render(request, 'register.html', {'errors': e}) |
|
|
|
return render(request, 'register.html', {'errors': e}) |
|
|
|
|
|
|
|
|
|
|
|
return redirect(reverse('App:login')) |
|
|
|
return redirect(reverse('App:login')) |
|
|
|
else: |
|
|
|
else: |
|
|
|
return render(request, 'register.html', {'errors': form.errors}) |
|
|
|
return render(request, 'register.html', {'errors': form.errors}) |
|
|
@ -121,6 +131,9 @@ def dashboard(request, type): |
|
|
|
elif type == 'video': |
|
|
|
elif type == 'video': |
|
|
|
data = getData(username, t, 'video') |
|
|
|
data = getData(username, t, 'video') |
|
|
|
table = videoUpload.objects.order_by('-video_time').all()[:100] |
|
|
|
table = videoUpload.objects.order_by('-video_time').all()[:100] |
|
|
|
|
|
|
|
elif type == 'package': |
|
|
|
|
|
|
|
data = getData(username, t, 'package') |
|
|
|
|
|
|
|
table = packageUpload.objects.order_by('package_time').all()[:100] |
|
|
|
else: |
|
|
|
else: |
|
|
|
data = table = "" |
|
|
|
data = table = "" |
|
|
|
return render(request, 'nav/dashboard.html', {'data': data, 'table': table, 'type': type}) |
|
|
|
return render(request, 'nav/dashboard.html', {'data': data, 'table': table, 'type': type}) |
|
|
@ -172,6 +185,26 @@ def upload(request): |
|
|
|
Upload.objects.create(username=auth.get_user(request).username, file_name=file.name, file_path=file.name,file_size=file.size, url_path=url_path['url']).save() |
|
|
|
Upload.objects.create(username=auth.get_user(request).username, file_name=file.name, file_path=file.name,file_size=file.size, url_path=url_path['url']).save() |
|
|
|
data = {'success': 1, 'message': "上传成功", 'url': url_path['url']} |
|
|
|
data = {'success': 1, 'message': "上传成功", 'url': url_path['url']} |
|
|
|
return JsonResponse(data) |
|
|
|
return JsonResponse(data) |
|
|
|
|
|
|
|
elif ftype == 'package': |
|
|
|
|
|
|
|
file = request.FILES.getlist('file', None) |
|
|
|
|
|
|
|
data = {'status': 'success', 'msg': []} |
|
|
|
|
|
|
|
file_path = os.path.join(settings.MEDIA_ROOT, 'package') |
|
|
|
|
|
|
|
for i in file: |
|
|
|
|
|
|
|
if not os.path.exists(file_path): |
|
|
|
|
|
|
|
os.makedirs(file_path) |
|
|
|
|
|
|
|
file_path = os.path.join(file_path, i.name) |
|
|
|
|
|
|
|
package = packageUpload.objects.filter(username=auth.get_user(request).username,package_title=i.name,package_size=i.size) |
|
|
|
|
|
|
|
if package.exists(): |
|
|
|
|
|
|
|
package.update(username=auth.get_user(request).username) |
|
|
|
|
|
|
|
else: |
|
|
|
|
|
|
|
try: |
|
|
|
|
|
|
|
packageUpload.objects.create(username=auth.get_user(request).username, package_title=i.name, package_size=i.size).save() |
|
|
|
|
|
|
|
with open(file_path, 'wb') as f: |
|
|
|
|
|
|
|
for chunk in i.chunks(): |
|
|
|
|
|
|
|
f.write(chunk) |
|
|
|
|
|
|
|
except Exception as e: |
|
|
|
|
|
|
|
print(e) |
|
|
|
|
|
|
|
return JsonResponse(data) |
|
|
|
else: |
|
|
|
else: |
|
|
|
file = request.FILES.getlist('file', None) |
|
|
|
file = request.FILES.getlist('file', None) |
|
|
|
data = {'status': 'success', 'msg': []} |
|
|
|
data = {'status': 'success', 'msg': []} |
|
|
@ -199,10 +232,13 @@ def getData(username, time, type='login'): |
|
|
|
data.update({str(date): paper.objects.filter(paper_time__startswith=date).count()}) |
|
|
|
data.update({str(date): paper.objects.filter(paper_time__startswith=date).count()}) |
|
|
|
elif type == 'video': |
|
|
|
elif type == 'video': |
|
|
|
data.update({str(date): videoUpload.objects.filter(video_time__startswith=date).count()}) |
|
|
|
data.update({str(date): videoUpload.objects.filter(video_time__startswith=date).count()}) |
|
|
|
|
|
|
|
elif type == 'package': |
|
|
|
|
|
|
|
data.update({str(date): packageUpload.objects.filter(package_time__startswith=date).count()}) |
|
|
|
|
|
|
|
print(data) |
|
|
|
return data |
|
|
|
return data |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def getAddr(ip): |
|
|
|
def getAddr(ip=None): |
|
|
|
ip = requests.get('https://httpbin.org/ip').json()['origin'] |
|
|
|
ip = requests.get('https://httpbin.org/ip').json()['origin'] |
|
|
|
info = requests.get('http://ip-api.com/json/' + ip + '?lang=zh-CN') |
|
|
|
info = requests.get('http://ip-api.com/json/' + ip + '?lang=zh-CN') |
|
|
|
info = info.json() |
|
|
|
info = info.json() |
|
|
@ -347,5 +383,23 @@ def videoDownload(request, id): |
|
|
|
response = FileResponse(file) |
|
|
|
response = FileResponse(file) |
|
|
|
response['Content-Type'] = 'application/octet-stream' |
|
|
|
response['Content-Type'] = 'application/octet-stream' |
|
|
|
response['Content-Disposition'] = 'attachment;filename="{}"'.format(quote(file_name)) |
|
|
|
response['Content-Disposition'] = 'attachment;filename="{}"'.format(quote(file_name)) |
|
|
|
#messages.error(request, '下载成功') |
|
|
|
|
|
|
|
return response |
|
|
|
return response |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def packagelist(request): |
|
|
|
|
|
|
|
data = packageUpload.objects.all().order_by('package_time') |
|
|
|
|
|
|
|
return render(request, 'nav/packagelist.html', {'data': data}) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def packageDownload(request, id): |
|
|
|
|
|
|
|
try: |
|
|
|
|
|
|
|
data = packageUpload.objects.filter(id=id) |
|
|
|
|
|
|
|
data.update(downloads=data.get().downloads+1) |
|
|
|
|
|
|
|
file_path = os.path.join(settings.MEDIA_ROOT, 'package', data.get().package_title) |
|
|
|
|
|
|
|
file_name = os.path.basename(file_path) |
|
|
|
|
|
|
|
file = open(file_path, 'rb') |
|
|
|
|
|
|
|
response = FileResponse(file) |
|
|
|
|
|
|
|
response['Content-Type'] = 'application/octet-stream' |
|
|
|
|
|
|
|
response['Content-Disposition'] = 'attachment;filename="{}"'.format(quote(file_name)) |
|
|
|
|
|
|
|
return response |
|
|
|
|
|
|
|
except Exception as e: |
|
|
|
|
|
|
|
print(e) |
|
|
|
|
|
|
|
return HttpResponse('内部错误') |