-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathviews.py
130 lines (105 loc) · 4.1 KB
/
views.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
from django.shortcuts import render_to_response, redirect, get_object_or_404
from aniface.models import Anime, P_List, AniPerList
from mysite.aniface.mvmt import *
from django.contrib.auth import logout
from django.contrib.auth.models import User, AnonymousUser
from django.contrib.auth.decorators import login_required
from django.http import HttpResponse, Http404, HttpResponseBadRequest
from django.template import RequestContext
from mysite.aniface.movies import *
import os
import glob
# Create your views here.
def index(request):
if request.user.is_authenticated():
u = request.user
else:
u = AnonymousUser()
u.username='Guest'
anime_list = Anime.objects.all().order_by("a_name")
return render_to_response('anindex.html', {'anime_list': anime_list, 'u' : u})
def anime(request, ap_slug):
u = request.user
a = Anime.objects.filter(ap_slug__exact=ap_slug)[0]
watchers = AniPerList.objects.filter(anime=a, curr_episode__gt=0)
os.chdir(a.location)
flist = glob.glob('*')
if request.user.is_authenticated():
mark = AniPerList.objects.all().filter(person=request.user,
anime=a)
if len(mark) == 0:
marker = 0
else:
marker = mark[0].curr_episode
else:
marker = 0
return render_to_response('anime.html',
{'anime': a, 'file_list' : flist,
'marker' : marker, 'u' : u,
'watchers' : watchers})
@login_required()
def pr_list(request):
u = request.user
pl = P_List.objects.filter(person=u).order_by('ordinal') # pull the priority list
alist = Anime.objects.exclude(id__in=pl.values_list('anime')) # pull the excluded anime list
return render_to_response('plist.html', {'pl' : pl, 'alist' : alist, 'u' : request.user},
context_instance=RequestContext(request))
@login_required()
def mark(request, ap_slug):
val = request.GET['ep']
u = request.user
a = Anime.objects.get(ap_slug=ap_slug)
aplist = AniPerList.objects.all().filter(anime=a, person=u)
if len(aplist) == 0:
apl = AniPerList(anime=a, person=u, curr_episode=int(val))
else:
apl = aplist[0]
apl.curr_episode = int(val)
apl.save()
return redirect('/aniface/anime/' + ap_slug)
def confug(request):
return HttpResponse("Nothing to see here at the moment.")
@login_required()
def movepl(request, ap_slug):
val = int(request.GET['dr'])
u = request.user
if val > 2:
raise Http404
if val == 1:
MoveUp(ap_slug, u)
else:
MoveDown(ap_slug, u)
return redirect('/aniface/plist/')
@login_required()
def rm_plist(request):
loc = int(request.GET['loc'])
u = request.user
if RemFrom(u, loc) == 1:
return HttpResponseBadRequest('Errors occurred on removal')
else:
return redirect('/aniface/plist')
@login_required()
def add_plist(request):
u = request.user
for an in Anime.objects.all():
if an.ap_slug in request.POST: PlaceIn(an.ap_slug, u, request.POST[an.ap_slug])
return redirect('/aniface/plist')
def play(request, ap_slug):
a = Anime.objects.filter(ap_slug__exact=ap_slug)[0]
val = request.GET['fn']
m_type = GetMime(val)
if m_type == BAD_TYPE:
return HttpResponseBadRequest('Bad MIME Type passed!')
return HttpResponse(FileIterWrapper(open(a.location + '/' + val)),
mimetype=GetMime(val))
def leave(request):
logout(request)
return render_to_response('logout.html')
def go_login(request): #goes to login and redirects to the main page.
return redirect('/accounts/login/?next=/aniface/')
def u_page(request, u_name):
u = get_object_or_404(User, username=u_name)
plist = P_List.objects.filter(person=u).order_by('ordinal')
watching = AniPerList.objects.filter(person=u, curr_episode__gt=0)
return render_to_response('person.html', {'u' : u, 'plist' : plist,
'watching' : watching})