diff options
22 files changed, 181 insertions, 165 deletions
diff --git a/backend/urls.py b/backend/urls.py index a7f884b..44524a4 100755 --- a/backend/urls.py +++ b/backend/urls.py @@ -1,6 +1,5 @@ from django.conf.urls import patterns, include, url - urlpatterns = patterns('backend.views', # AUTH API url(r'^auth/login/$' , 'api_auth_login' ), @@ -14,7 +13,7 @@ urlpatterns = patterns('backend.views', url(r'^user/videos/$' , 'api_user_videos' ), url(r'^user/likes/$' , 'api_user_likes' ), url(r'^user/top/$' , 'api_user_top' ), - url(r'^user/settings/$' , 'api_user_settings' ), + url(r'^user/settings/$' , 'api_user_settings' ), # ROOM API url(r'^room/watch/$' , 'api_room_watch' ), url(r'^room/list/$' , 'api_room_list' ), diff --git a/backend/views.py b/backend/views.py index acb0369..5e24078 100755 --- a/backend/views.py +++ b/backend/views.py @@ -31,6 +31,9 @@ from backend.models import SJSearch from backend.models import SJUserProfile from browser import Browser + +from haystack.query import SearchQuerySet +from haystack.inputs import AutoQuery, Exact, Clean API_HEADER = '#@scanjam 0.3b\n' @@ -80,10 +83,6 @@ def title_from_url (url): def headers(response): """ Setup additional headers for response """ - response['Access-Control-Allow-Origin'] = '*' - response['Access-Control-Allow-Methods'] = 'POST, GET, OPTIONS' - response['Access-Control-Allow-Headers'] = 'x-requested-with' - response['Access-Control-Max-Age'] = '3628800' response['Content-type'] = 'text/plain; charset=UTF-8' def response_error(error, response=None): @@ -384,6 +383,9 @@ def api_auth_login(request): return response user = auth.authenticate(username=request.POST['username'], password=request.POST['password']) +#any idea? well for login to work i think ajax should send cookies, but i don't see any django cookies there + if not user: + return response_error('NO USER') if user: if user.is_active: auth.login(request, user) @@ -478,9 +480,12 @@ def api_auth_available(request): @require_POST def api_auth_checkin(request): """ Check in user. Private API + so we need to figure out what it SHOULD return, right? yeah + """ if request.user.is_authenticated(): response = response_success() + response.write(user_response_str(request)) return response return HttpResponse() @@ -546,6 +551,7 @@ def api_user_videos(request): v.user.username, s['url'], s['title'], + ("%d" % v.sjlike_set.count()) ]) response.write(l + '\n') return response @@ -600,7 +606,7 @@ def api_user_settings(request): if not user.is_authenticated(): return response_error('NO LOGGED IN') user_profile = user.get_profile() - form_fields = ['userid', 'bio', 'settings'] + form_fields = ['userid', 'bio', 'settings', 'email'] response = check_form_fields(request, form_fields) if response: return response @@ -608,6 +614,12 @@ def api_user_settings(request): return response_error('YOU CAN ONLY EDIT YOURSELF MAN') settings = user_profile.settings settings.update(thraw(request.POST['settings'])) + user.email = request.POST['email'] + user.save() + # i guess somehting like this ok whew well now the template? yep #weird looks like edit is gone? here you CAN + #log in as me pepper.scannerjammer.Common + #user: pepper + #pw: amnesia yeah i'm there can't find it I see it in the source...we should try to grep for it, right? yes user_profile.settings = settings user_profile.save() return response_success() @@ -1049,84 +1061,34 @@ def api_video_remove(request): def api_video_search(request): """ Search video view. Private API """ + user = request.user if not user.is_authenticated(): - return response_error('NO LOGGED IN') + return response_error('NOT LOGGED IN') user_profile = user.get_profile() form_fields = ['q'] response = check_form_fields(request, form_fields) if response: return response - start = 0 - if 'start' in request.POST and is_number(request.POST['start']): - start = int(request.POST['start']) - limit = 10 - if 'limit' in request.POST and is_number(request.POST['limit']): - limit = int(request.POST['limit']) - if limit > 100: - limit = 100 - recenttime = datetime.fromtimestamp(time.time() - 60*60*24*30*3) - - videos = SJContent.objects.filter(content_type='video', datetime__gt=recenttime) - words = {} - videos_by_url = {} - videos_by_id = {} - for video in videos: - settings = video.settings - url = settings.get('url', '') - likes = SJLike.objects.filter(content=video).count() - username = video.user.username - if url in videos_by_url: - videos_by_url[url]['score'] += likes - if username not in videos_by_url[url]['users']: - videos_by_url[url]['users'].append(username) - continue - settings['id'] = video.id - settings['users'] = [username] - settings['score'] = likes - if 'thumbnail' not in settings: - settings['thumbnail'] = '' - videos_by_url[url] = settings - videos_by_id[video.id] = settings - terms = re.split(r'\W+', settings['title']) - terms.extend(settings['users']) - for term in terms: - term = term.lower() - if len(term) >= 2: - if term not in words: - words[term] = [] - words[term].append(settings['id']) - terms = re.split(r'\W+', request.POST['q'].lower()) - match = {} - for term in terms: - if term in words: - for videoid in words[term]: - if videoid not in match: - match[videoid] = 1 - else: - match[videoid] += 1 - results = [] - count = 0 - for videoid in sorted(sorted(match, key=lambda x: videos_by_id[x]['score'], reverse=True), key=lambda x: match[x], reverse=True): - count += 1 - if count > limit: - break - if count < start: - continue - settings = videos_by_id[videoid] - results.append(settings) - response = response_success(message='') - for result in results: + + videos = SearchQuerySet().filter(content=request.POST['q']).load_all() + for searchresult in videos.all(): + v = searchresult.object + if v.content_type != "video": + continue + posted_by = SearchQuerySet().filter(content=Exact(v.settings['url'])).count() response.write('%s\n' % ( - '\t'.join([str(result['id']), - str(result['score']), - result['users'][0], - str(len(result['users'])), - result['title'], - result['url'], - result['thumbnail']]) + '\t'.join([ + str(v.id), + str(v.sjlike_set.count()), + v.user.username, + str(posted_by), + v.settings['title'], + v.settings['url'], + v.settings['thumbnail']]) )) - count = len(match) + return response + count = videos.count() if start == 0: search = SJSearch(user=user, datetime=datetime.now()) settings = { diff --git a/frontend/static/js/profile.js b/frontend/static/js/profile.js index c4fb146..8cf63e2 100755 --- a/frontend/static/js/profile.js +++ b/frontend/static/js/profile.js @@ -159,21 +159,26 @@ var Room = var Settings = { bio: "", + email: "", data: {}, eventSet: false, defaults: { avatar: "http://scannerjammer.com/static/img/runner.gif", bg: "http://scannerjammer.com/static/bgz/scannerjammer_cyberspace.jpg", + email: "", }, open: function () { - if (parseInt(Auth.userid) !== userProfile[0]) - return + if (parseInt(Auth.userid) !== userProfile[0]){ + return + } $("#settings-hook").show() $("#profile-avatar").val(Settings.data.avatar) $("#profile-bg").val(Settings.data.bg) $("#profile-bio").html(Settings.bio) + $("#profile-email").val(Settings.email) //ok only thing is that it's not saving through form submission trying to + //seems like it doesn't save in the Settings object, but does do the form submission... if (! Profile.eventSet) { $("#profile-settings-save").bind("click", Settings.save) @@ -189,6 +194,7 @@ var Settings = Settings.data.bg = bg var bio = d.sanitizeWithNewlines( $("#profile-bio").val() ) Settings.bio = bio + Settings.email = $('#profile-email').val(); Settings.load() var s = "avatar\t"+avatar+"\n" s += "bg\t"+bg+"\n" @@ -197,6 +203,7 @@ var Settings = settings: s, bio: bio, session: Auth.session, + email: Settings.email } $.post(API.URL.user.settings, data).success(Settings.saveCallback).error(Settings.errorCallback) }, @@ -237,12 +244,12 @@ var Settings = bio += "<p>"+s+"</p>" } $("#bio").html(bio) - Settings.open() +// Settings.open() Viewport.standardResize() }, init: function () { - if (userProfile[6]) // bio + if (userProfile[6]) // bio { Settings.bio = userProfile[6] } @@ -254,6 +261,10 @@ var Settings = Settings.data[i] = s[i] } } + if (userProfile[8]){ //email + Settings.email = userProfile[8] + console.log(Settings.email); + } Settings.load() } } @@ -340,7 +351,7 @@ var Profile = var lines = API.parse("/user/load", raw) if (! lines) return if (lines[0].indexOf("0\t") === 0) - return // console.log(lines.split("\t")[1]) + return queue = [] for (i in lines) { @@ -348,7 +359,7 @@ var Profile = continue if (lines[i].length < 2) continue - line = lines[i].split("\t").slice(1); + line = lines[i].split("\t"); queue.push(line) } Profile.page += 1 @@ -360,6 +371,9 @@ var Profile = if (queue.length < 50) $("#queue").append("<li id='queueDone'>That's all the videos!</li>") }, +//one second ok I'm back... can we use a breakpoint here? I don't know how to find the right part +//must be in one of these two scripts i found it, did you use a breakpoint? well just looked at thin profile.js for videos loadLess +//through the browser? yes ok cool where is it? loadLess: function () { Profile.page -= 1 @@ -491,6 +505,7 @@ var Poll = } } Poll.poll() + Settings.open() }, poll: function () diff --git a/frontend/static/js/src/api.js b/frontend/static/js/src/api.js index 797823e..3a0cd14 100644 --- a/frontend/static/js/src/api.js +++ b/frontend/static/js/src/api.js @@ -6,7 +6,7 @@ var API = { auth: { - login: "/api/auth/login", + login: "/api/auth/login", logout: "/api/auth/logout", checkin: "/api/auth/checkin", sneakin: "/api/auth/sneakin", @@ -64,6 +64,14 @@ var API = } } // $.ajaxSetup({ timeout: 1000 }) + $.ajaxSetup({ + type: "POST", + xhrFields: { + withCredentials: true + }, + }); +//API.js seems fairly global still no cookie looks good need to check database if it's was updated +//for my user, right? yep } } var Local = diff --git a/frontend/static/js/src/auth.js b/frontend/static/js/src/auth.js index 26da79d..42a92c5 100644 --- a/frontend/static/js/src/auth.js +++ b/frontend/static/js/src/auth.js @@ -36,15 +36,24 @@ var Auth = document.cookie = "session="+Auth.session+";path=/;domain=.scannerjammer.com;max-age=1086400" Auth.success() }, +//http://i.imgur.com/kqpf9wX.png yes i see so do we just need to add cors headers? yes, what about nginx, did we restart it? +//no good yet checkin: function () { d.warn("CHECK IN") - $.post(API.URL.auth.checkin, {'session':Auth.session}, Auth.checkinCallback) + $.ajax(API.URL.auth.checkin, { + type: "POST", + data: { 'session':Auth.session, }, + xhrFields: { + withCredentials: true + }, + }).success(Auth.checkinCallback); }, checkinCallback: function (raw) { var lines = API.parse("/auth/checkin", raw) if (! lines.length) return + //so we should just return "OK" right? looks sso if (lines[0] !== "OK") { alert(lines[0].split("\t")[1]) diff --git a/frontend/static/js/src/soundmanager.js b/frontend/static/js/src/soundmanager2.js index 46528c9..46528c9 100755 --- a/frontend/static/js/src/soundmanager.js +++ b/frontend/static/js/src/soundmanager2.js diff --git a/frontend/static/other_rooms/admin.html b/frontend/static/other_rooms/admin.html index 95539c5..bebab84 100755 --- a/frontend/static/other_rooms/admin.html +++ b/frontend/static/other_rooms/admin.html @@ -64,12 +64,12 @@ <script type="text/javascript" src="http://scannerjammer.com/js/src/debug.js"></script> <script type="text/javascript" src="http://scannerjammer.com/js/src/api.js"></script> <script type="text/javascript" src="http://scannerjammer.com/js/admin.js"></script> -<script type="text/javascript" src="http://scannerjammer.com/js/like.js"></script> +<script type="text/javascript" src="http://scannerjammer.com/js/src/like.js"></script> <script type="text/javascript" src="http://scannerjammer.com/js/src/auth.js"></script> -<script type="text/javascript" src="http://scannerjammer.com/js/chat.js"></script> +<script type="text/javascript" src="http://scannerjammer.com/js/src/chat.js"></script> <script type="text/javascript" src="http://scannerjammer.com/js/room.js"></script> -<script type="text/javascript" src="http://scannerjammer.com/js/player.js"></script> -<script type="text/javascript" src="http://scannerjammer.com/js/youtube.js"></script> +<script type="text/javascript" src="http://scannerjammer.com/js/src/player.js"></script> +<script type="text/javascript" src="http://scannerjammer.com/js/src/youtube.js"></script> <!-- <script type="text/javascript" src="http://scannerjammer.com/js/main.js"></script> --> diff --git a/frontend/static/other_rooms/calendar.html b/frontend/static/other_rooms/calendar.html index 5e89162..21c046b 100755 --- a/frontend/static/other_rooms/calendar.html +++ b/frontend/static/other_rooms/calendar.html @@ -72,17 +72,17 @@ <script type="text/javascript" src="/js/src/jquery.md5.js"></script> <script type="text/javascript" src="/other_rooms/datepicker/datepicker.js"></script> <script type="text/javascript" src="/js/src/swfobject.js"></script> -<script type="text/javascript" src="/js/soundmanager2.js"></script> +<script type="text/javascript" src="/js/src/soundmanager2.js"></script> <script type="text/javascript" src="/js/src/debug.js"></script> <script type="text/javascript" src="/js/src/api.js"></script> <script type="text/javascript" src="/js/src/auth.js"></script> -<script type="text/javascript" src="/js/like.js"></script> -<script type="text/javascript" src="/js/chat.js"></script> -<script type="text/javascript" src="/js/player.js"></script> -<script type="text/javascript" src="/js/vimeo.js"></script> -<script type="text/javascript" src="/js/youtube.js"></script> -<script type="text/javascript" src="/js/soundcloud.js"></script> -<script type="text/javascript" src="/js/audio.js"></script> +<script type="text/javascript" src="/js/src/like.js"></script> +<script type="text/javascript" src="/js/src/chat.js"></script> +<script type="text/javascript" src="/js/src/player.js"></script> +<script type="text/javascript" src="/js/src/vimeo.js"></script> +<script type="text/javascript" src="/js/src/youtube.js"></script> +<script type="text/javascript" src="/js/src/soundcloud.js"></script> +<script type="text/javascript" src="/js/src/audio.js"></script> <script type="text/javascript" src="/js/calendar.js"></script> <script src="http://connect.facebook.net/en_US/all.js#xfbml=1"></script> </html> diff --git a/frontend/static/other_rooms/embed.html b/frontend/static/other_rooms/embed.html index c15581c..e43c4fc 100755 --- a/frontend/static/other_rooms/embed.html +++ b/frontend/static/other_rooms/embed.html @@ -49,16 +49,16 @@ </script> <script type="text/javascript" src="http://scannerjammer.com/js/src/jquery.md5.js"></script> <script type="text/javascript" src="http://scannerjammer.com/js/src/swfobject.js"></script> -<script type="text/javascript" src="http://scannerjammer.com/js/soundmanager2.js"></script> +<script type="text/javascript" src="http://scannerjammer.com/js/src/soundmanager2.js"></script> <script type="text/javascript" src="http://scannerjammer.com/js/src/debug.js"></script> <script type="text/javascript" src="http://scannerjammer.com/js/src/api.js"></script> <script type="text/javascript" src="http://scannerjammer.com/js/src/auth.js"></script> -<script type="text/javascript" src="http://scannerjammer.com/js/like.js"></script> -<script type="text/javascript" src="http://scannerjammer.com/js/player.js"></script> -<script type="text/javascript" src="http://scannerjammer.com/js/vimeo.js"></script> -<script type="text/javascript" src="http://scannerjammer.com/js/youtube.js"></script> -<script type="text/javascript" src="http://scannerjammer.com/js/soundcloud.js"></script> -<script type="text/javascript" src="http://scannerjammer.com/js/audio.js"></script> +<script type="text/javascript" src="http://scannerjammer.com/js/src/like.js"></script> +<script type="text/javascript" src="http://scannerjammer.com/js/src/player.js"></script> +<script type="text/javascript" src="http://scannerjammer.com/js/src/vimeo.js"></script> +<script type="text/javascript" src="http://scannerjammer.com/js/src/youtube.js"></script> +<script type="text/javascript" src="http://scannerjammer.com/js/src/soundcloud.js"></script> +<script type="text/javascript" src="http://scannerjammer.com/js/src/audio.js"></script> <script type="text/javascript" src="http://scannerjammer.com/js/embed.js"></script> </html> diff --git a/frontend/static/other_rooms/topvids.html b/frontend/static/other_rooms/topvids.html index 6b94997..a8b0c2c 100755 --- a/frontend/static/other_rooms/topvids.html +++ b/frontend/static/other_rooms/topvids.html @@ -110,17 +110,17 @@ var topVideoQueueTitle = "All Time" <script type="text/javascript" src="/js/src/jquery-1.5.2.min.js"></script> <script type="text/javascript" src="/js/src/jquery.md5.js"></script> <script type="text/javascript" src="/js/src/swfobject.js"></script> -<script type="text/javascript" src="/js/soundmanager2.js"></script> +<script type="text/javascript" src="/js/src/soundmanager2.js"></script> <script type="text/javascript" src="/js/src/debug.js"></script> <script type="text/javascript" src="/js/src/api.js"></script> <script type="text/javascript" src="/js/src/auth.js"></script> -<script type="text/javascript" src="/js/like.js"></script> -<script type="text/javascript" src="/js/chat.js"></script> -<script type="text/javascript" src="/js/player.js"></script> -<script type="text/javascript" src="/js/vimeo.js"></script> -<script type="text/javascript" src="/js/youtube.js"></script> -<script type="text/javascript" src="/js/soundcloud.js"></script> -<script type="text/javascript" src="/js/audio.js"></script> +<script type="text/javascript" src="/js/src/like.js"></script> +<script type="text/javascript" src="/js/src/chat.js"></script> +<script type="text/javascript" src="/js/src/player.js"></script> +<script type="text/javascript" src="/js/src/vimeo.js"></script> +<script type="text/javascript" src="/js/src/youtube.js"></script> +<script type="text/javascript" src="/js/src/soundcloud.js"></script> +<script type="text/javascript" src="/js/src/audio.js"></script> <script type="text/javascript" src="/js/top.js"></script> <script src="http://connect.facebook.net/en_US/all.js#xfbml=1"></script> </html> diff --git a/frontend/static/sass/compile.sh b/frontend/static/sass/compile.sh new file mode 100755 index 0000000..f22b5c1 --- /dev/null +++ b/frontend/static/sass/compile.sh @@ -0,0 +1,2 @@ +#!/bin/bash +compass compile diff --git a/frontend/static/sass/src/profile.sass b/frontend/static/sass/src/profile.sass index 0d88ea5..fa5ec01 100755 --- a/frontend/static/sass/src/profile.sass +++ b/frontend/static/sass/src/profile.sass @@ -181,7 +181,7 @@ body input margin: 2px 10px 0 0 width: 100px - #profile-avatar, #profile-bg + #profile-avatar, #profile-bg, #profile-email width: 300px #profile-settings-save font-size: 14px diff --git a/frontend/static/sass/stylesheets/profile.css b/frontend/static/sass/stylesheets/profile.css index 13b4a58..20c2537 100755 --- a/frontend/static/sass/stylesheets/profile.css +++ b/frontend/static/sass/stylesheets/profile.css @@ -323,7 +323,7 @@ body { width: 100px; } /* line 184, ../src/profile.sass */ -#settings-container #profile-avatar, #settings-container #profile-bg { +#settings-container #profile-avatar, #settings-container #profile-bg, #settings-container #profile-email { width: 300px; } /* line 186, ../src/profile.sass */ diff --git a/frontend/templates/admin.html b/frontend/templates/admin.html index c486260..bef2360 100755 --- a/frontend/templates/admin.html +++ b/frontend/templates/admin.html @@ -66,12 +66,12 @@ <script type="text/javascript" src="{{STATIC_PREFIX}}js/src/debug.js"></script> <script type="text/javascript" src="{{STATIC_PREFIX}}js/src/api.js"></script> <script type="text/javascript" src="{{STATIC_PREFIX}}js/admin.js"></script> -<script type="text/javascript" src="{{STATIC_PREFIX}}js/like.js"></script> +<script type="text/javascript" src="{{STATIC_PREFIX}}js/src/like.js"></script> <script type="text/javascript" src="{{STATIC_PREFIX}}js/src/auth.js"></script> -<script type="text/javascript" src="{{STATIC_PREFIX}}js/chat.js"></script> +<script type="text/javascript" src="{{STATIC_PREFIX}}js/src/chat.js"></script> <script type="text/javascript" src="{{STATIC_PREFIX}}js/room.js"></script> -<script type="text/javascript" src="{{STATIC_PREFIX}}js/player.js"></script> -<script type="text/javascript" src="{{STATIC_PREFIX}}js/youtube.js"></script> +<script type="text/javascript" src="{{STATIC_PREFIX}}js/src/player.js"></script> +<script type="text/javascript" src="{{STATIC_PREFIX}}js/src/youtube.js"></script> <!-- <script type="text/javascript" src="{{STATIC_PREFIX}}js/main.js"></script> --> diff --git a/frontend/templates/calendar.html b/frontend/templates/calendar.html index 306ef5a..5c8df56 100755 --- a/frontend/templates/calendar.html +++ b/frontend/templates/calendar.html @@ -74,17 +74,17 @@ <script type="text/javascript" src="{{ STATIC_PREFIX }}/js/src/jquery.md5.js"></script> <script type="text/javascript" src="{{ STATIC_PREFIX }}/js/datepicker/datepicker.js"></script> <script type="text/javascript" src="{{ STATIC_PREFIX }}/js/src/swfobject.js"></script> -<script type="text/javascript" src="{{ STATIC_PREFIX }}/js/soundmanager2.js"></script> +<script type="text/javascript" src="{{ STATIC_PREFIX }}/js/src/soundmanager2.js"></script> <script type="text/javascript" src="{{ STATIC_PREFIX }}/js/src/debug.js"></script> <script type="text/javascript" src="{{ STATIC_PREFIX }}/js/src/api.js"></script> <script type="text/javascript" src="{{ STATIC_PREFIX }}/js/src/auth.js"></script> -<script type="text/javascript" src="{{ STATIC_PREFIX }}/js/like.js"></script> -<script type="text/javascript" src="{{ STATIC_PREFIX }}/js/chat.js"></script> -<script type="text/javascript" src="{{ STATIC_PREFIX }}/js/player.js"></script> -<script type="text/javascript" src="{{ STATIC_PREFIX }}/js/vimeo.js"></script> -<script type="text/javascript" src="{{ STATIC_PREFIX }}/js/youtube.js"></script> -<script type="text/javascript" src="{{ STATIC_PREFIX }}/js/soundcloud.js"></script> -<script type="text/javascript" src="{{ STATIC_PREFIX }}/js/audio.js"></script> +<script type="text/javascript" src="{{ STATIC_PREFIX }}/js/src/like.js"></script> +<script type="text/javascript" src="{{ STATIC_PREFIX }}/js/src/chat.js"></script> +<script type="text/javascript" src="{{ STATIC_PREFIX }}/js/src/player.js"></script> +<script type="text/javascript" src="{{ STATIC_PREFIX }}/js/src/vimeo.js"></script> +<script type="text/javascript" src="{{ STATIC_PREFIX }}/js/src/youtube.js"></script> +<script type="text/javascript" src="{{ STATIC_PREFIX }}/js/src/soundcloud.js"></script> +<script type="text/javascript" src="{{ STATIC_PREFIX }}/js/src/audio.js"></script> <script type="text/javascript" src="{{ STATIC_PREFIX }}/js/calendar.js"></script> <script src="http://connect.facebook.net/en_US/all.js#xfbml=1"></script> </html> diff --git a/frontend/templates/profile.html b/frontend/templates/profile.html index 233bf5d..9df2a44 100755 --- a/frontend/templates/profile.html +++ b/frontend/templates/profile.html @@ -59,9 +59,9 @@ </div> <div id="contact"> - <img src="{{ STATIC_PREFIX }}/img/runner.gif" class="avatar"> + <img src="{{ STATIC_PREFIX }}/static/img/runner.gif" class="avatar"> <p id="bio"></p> - <img src="{{ STATIC_PREFIX }}/img/runner.gif" class="avatar"> + <img src="{{ STATIC_PREFIX }}/static/img/runner.gif" class="avatar"> </div> <div id="bg"> @@ -98,6 +98,10 @@ <textarea id="profile-bio"></textarea><br/> <div class="shim"></div> + <label>enter email here (private, for administrative use only)</label> + <input type="text" id="profile-email"><br/> + <div class="shim"></div> + <label> </label><button id="profile-settings-save">save</button><br /> <div class="shim"></div> <div class="shim"></div> @@ -131,19 +135,19 @@ var now = {{NOW}} <script type="text/javascript" src="{{ STATIC_PREFIX }}/js/src/jquery-1.5.2.min.js"></script> <script type="text/javascript" src="{{ STATIC_PREFIX }}/js/src/jquery.md5.js"></script> <script type="text/javascript" src="{{ STATIC_PREFIX }}/js/src/swfobject.js"></script> -<script type="text/javascript" src="{{ STATIC_PREFIX }}/js/soundmanager2.js"></script> +<script type="text/javascript" src="{{ STATIC_PREFIX }}/js/src/soundmanager2.js"></script> <!--not sure what debug is --> <script type="text/javascript" src="{{ STATIC_PREFIX }}/js/src/debug.js"></script> <script type="text/javascript" src="{{ STATIC_PREFIX }}/js/src/api.js"></script> <script type="text/javascript" src="{{ STATIC_PREFIX }}/js/src/auth.js"></script> <!--really not sure why chat and like are here --> -<script type="text/javascript" src="{{ STATIC_PREFIX }}/js/like.js"></script> -<script type="text/javascript" src="{{ STATIC_PREFIX }}/js/chat.js"></script> -<script type="text/javascript" src="{{ STATIC_PREFIX }}/js/player.js"></script> -<script type="text/javascript" src="{{ STATIC_PREFIX }}/js/vimeo.js"></script> -<script type="text/javascript" src="{{ STATIC_PREFIX }}/js/youtube.js"></script> -<script type="text/javascript" src="{{ STATIC_PREFIX }}/js/soundcloud.js"></script> -<script type="text/javascript" src="{{ STATIC_PREFIX }}/js/audio.js"></script> +<script type="text/javascript" src="{{ STATIC_PREFIX }}/js/src/like.js"></script> +<script type="text/javascript" src="{{ STATIC_PREFIX }}/js/src/chat.js"></script> +<script type="text/javascript" src="{{ STATIC_PREFIX }}/js/src/player.js"></script> +<script type="text/javascript" src="{{ STATIC_PREFIX }}/js/src/vimeo.js"></script> +<script type="text/javascript" src="{{ STATIC_PREFIX }}/js/src/youtube.js"></script> +<script type="text/javascript" src="{{ STATIC_PREFIX }}/js/src/soundcloud.js"></script> +<script type="text/javascript" src="{{ STATIC_PREFIX }}/js/src/audio.js"></script> <!-- I guess the probz you were talking about would be in profile.js --> <script type="text/javascript" src="{{ STATIC_PREFIX }}/js/profile.js"></script> <!-- diff --git a/frontend/templates/profile_img.html b/frontend/templates/profile_img.html index 65db188..1e75dac 100755 --- a/frontend/templates/profile_img.html +++ b/frontend/templates/profile_img.html @@ -59,9 +59,9 @@ </div> <div id="contact"> - <img src="{{ STATIC_PREFIX }}/img/runner.gif" class="avatar"> + <img src="{{ STATIC_PREFIX }}/static/img/runner.gif" class="avatar"> <p id="bio"></p> - <img src="{{ STATIC_PREFIX }}/img/runner.gif" class="avatar"> + <img src="{{ STATIC_PREFIX }}/static/img/runner.gif" class="avatar"> </div> <div id="bg"> @@ -128,19 +128,19 @@ var now = {{NOW}} <script type="text/javascript" src="{{ STATIC_PREFIX }}/js/src/jquery-1.5.2.min.js"></script> <script type="text/javascript" src="{{ STATIC_PREFIX }}/js/src/jquery.md5.js"></script> <script type="text/javascript" src="{{ STATIC_PREFIX }}/js/src/swfobject.js"></script> -<script type="text/javascript" src="{{ STATIC_PREFIX }}/js/soundmanager2.js"></script> +<script type="text/javascript" src="{{ STATIC_PREFIX }}/js/src/soundmanager2.js"></script> <!--not sure what debug is --> <script type="text/javascript" src="{{ STATIC_PREFIX }}/js/src/debug.js"></script> <script type="text/javascript" src="{{ STATIC_PREFIX }}/js/src/api.js"></script> <script type="text/javascript" src="{{ STATIC_PREFIX }}/js/src/auth.js"></script> <!--really not sure why chat and like are here --> -<script type="text/javascript" src="{{ STATIC_PREFIX }}/js/like.js"></script> -<script type="text/javascript" src="{{ STATIC_PREFIX }}/js/chat.js"></script> -<script type="text/javascript" src="{{ STATIC_PREFIX }}/js/player.js"></script> -<script type="text/javascript" src="{{ STATIC_PREFIX }}/js/vimeo.js"></script> -<script type="text/javascript" src="{{ STATIC_PREFIX }}/js/youtube.js"></script> -<script type="text/javascript" src="{{ STATIC_PREFIX }}/js/soundcloud.js"></script> -<script type="text/javascript" src="{{ STATIC_PREFIX }}/js/audio.js"></script> +<script type="text/javascript" src="{{ STATIC_PREFIX }}/js/src/like.js"></script> +<script type="text/javascript" src="{{ STATIC_PREFIX }}/js/src/chat.js"></script> +<script type="text/javascript" src="{{ STATIC_PREFIX }}/js/src/player.js"></script> +<script type="text/javascript" src="{{ STATIC_PREFIX }}/js/src/vimeo.js"></script> +<script type="text/javascript" src="{{ STATIC_PREFIX }}/js/src/youtube.js"></script> +<script type="text/javascript" src="{{ STATIC_PREFIX }}/js/src/soundcloud.js"></script> +<script type="text/javascript" src="{{ STATIC_PREFIX }}/js/src/audio.js"></script> <!-- I guess the probz you were talking about would be in profile.js --> <script type="text/javascript" src="{{ STATIC_PREFIX }}/js/profile.js"></script> <!-- diff --git a/frontend/templates/register.html b/frontend/templates/register.html index f041a50..2d75d5d 100755 --- a/frontend/templates/register.html +++ b/frontend/templates/register.html @@ -147,6 +147,11 @@ img <label></label> <button id="register-go">REGISTER</button> + <div>--or--</div> + <div id="password_reset"> + <a href="{% url "password_reset_recover" %}">Reset Password</a> + </div> + </section> <section id="success"> <!-- @@ -166,9 +171,9 @@ img <section id="plant"><img src="{{ STATIC_PREFIX }}img/plant.gif" height="700" /></section> </body> <script type="text/javascript">document.getElementById("plea").style.display="none"</script> -<script type="text/javascript" src="{{ STATIC_PREFIX }}/js/jquery-1.5.2.min.js"></script> -<script type="text/javascript" src="{{ STATIC_PREFIX }}/js/jquery.md5.js"></script> -<script type="text/javascript" src="{{ STATIC_PREFIX }}/js/swfobject.js"></script> -<script type="text/javascript" src="{{ STATIC_PREFIX }}/js/register.js"></script> +<script type="text/javascript" src="{{ STATIC_PREFIX }}js/src/jquery-1.5.2.min.js"></script> +<script type="text/javascript" src="{{ STATIC_PREFIX }}js/src/jquery.md5.js"></script> +<script type="text/javascript" src="{{ STATIC_PREFIX }}js/src/swfobject.js"></script> +<script type="text/javascript" src="{{ STATIC_PREFIX }}js/register.js"></script> </html> diff --git a/frontend/templates/topvideos.html b/frontend/templates/topvideos.html index 5684a68..4f8bbe7 100755 --- a/frontend/templates/topvideos.html +++ b/frontend/templates/topvideos.html @@ -112,17 +112,17 @@ var topVideoQueueTitle = "All Time" <script type="text/javascript" src="{{ STATIC_PREFIX }}js/src/jquery-1.5.2.min.js"></script> <script type="text/javascript" src="{{ STATIC_PREFIX }}js/src/jquery.md5.js"></script> <script type="text/javascript" src="{{ STATIC_PREFIX }}js/src/swfobject.js"></script> -<script type="text/javascript" src="{{ STATIC_PREFIX }}js/soundmanager2.js"></script> +<script type="text/javascript" src="{{ STATIC_PREFIX }}js/src/soundmanager2.js"></script> <script type="text/javascript" src="{{ STATIC_PREFIX }}js/src/debug.js"></script> <script type="text/javascript" src="{{ STATIC_PREFIX }}js/src/api.js"></script> <script type="text/javascript" src="{{ STATIC_PREFIX }}js/src/auth.js"></script> -<script type="text/javascript" src="{{ STATIC_PREFIX }}js/like.js"></script> -<script type="text/javascript" src="{{ STATIC_PREFIX }}js/chat.js"></script> -<script type="text/javascript" src="{{ STATIC_PREFIX }}js/player.js"></script> -<script type="text/javascript" src="{{ STATIC_PREFIX }}js/vimeo.js"></script> -<script type="text/javascript" src="{{ STATIC_PREFIX }}js/youtube.js"></script> -<script type="text/javascript" src="{{ STATIC_PREFIX }}js/soundcloud.js"></script> -<script type="text/javascript" src="{{ STATIC_PREFIX }}js/audio.js"></script> +<script type="text/javascript" src="{{ STATIC_PREFIX }}js/src/like.js"></script> +<script type="text/javascript" src="{{ STATIC_PREFIX }}js/src/chat.js"></script> +<script type="text/javascript" src="{{ STATIC_PREFIX }}js/src/player.js"></script> +<script type="text/javascript" src="{{ STATIC_PREFIX }}js/src/vimeo.js"></script> +<script type="text/javascript" src="{{ STATIC_PREFIX }}js/src/youtube.js"></script> +<script type="text/javascript" src="{{ STATIC_PREFIX }}js/src/soundcloud.js"></script> +<script type="text/javascript" src="{{ STATIC_PREFIX }}js/src/audio.js"></script> <script type="text/javascript" src="{{ STATIC_PREFIX }}js/top.js"></script> <script src="http://connect.facebook.net/en_US/all.js#xfbml=1"></script> </html> diff --git a/frontend/views.py b/frontend/views.py index ab69045..9a97402 100755 --- a/frontend/views.py +++ b/frontend/views.py @@ -117,7 +117,7 @@ def directory(request): return response def get_thumbnail(user): - STOCK_THUMBNAIL = 'http://scannerjammer.com/img/runner.gif' + STOCK_THUMBNAIL = 'http://scannerjammer.com/static/img/runner.gif' """ FIXME if user.access and 'http' in user.access: # what was those fields? @@ -151,7 +151,7 @@ def profile(request, username): topz = SJContent.objects.filter(user__id=userprofile.user.id, content_type='video').annotate(likes=Count('sjlike')).order_by('-likes')[:50] likez = SJContent.objects.filter(content_type='video', sjlike__user_id = userprofile.user.id ).order_by('-sjlike__datetime')[:50] tvidz = SJContent.objects.filter(user__id=userprofile.user.id, content_type='video').order_by('-datetime')[:50] - profile = [ userprofile.id, userprofile.nickname, userprofile.score, 3, 4, 5, userprofile.bio, json.loads(userprofile.settings_text) ] + profile = [ userprofile.user.id, userprofile.nickname, userprofile.score, 3, 4, 5, userprofile.bio, json.loads(userprofile.settings_text), userprofile.user.email ] vidz = [] for a in tvidz: vidz.insert(0,a) @@ -176,6 +176,8 @@ def profile(request, username): ) response['Pragma'] = 'no-cache' return response +# looks good to me ok awesome...lets continue this tomorrow? alright hey thanks a lot, don't want this to go too late, +#but thanks so much for this help, I'll test it no problems def profile_img(request, username): """ Directory view @@ -185,7 +187,7 @@ def profile_img(request, username): thumbnail = get_thumbnail(userprofile) likez = SJContent.objects.filter(content_type='text', sjlike__user_id = userprofile.user.id ).order_by('-datetime')[:50] - profile = [ userprofile.id, userprofile.nickname, userprofile.score, 3, 4, 5, userprofile.bio, json.loads(userprofile.settings_text) ] + profile = [ userprofile.user.id, userprofile.nickname, userprofile.score, 3, 4, 5, userprofile.bio, json.loads(userprofile.settings_text), userprofile.user.email ] response = render_to_response( 'profile_img.html', @@ -236,11 +238,11 @@ def room(request, roomname): jsPath = "/js/sj_compiled.js" title = sjroom.name.capitalize() + " room on ScannerJammer" - thumbnail = "http://scannerjammer.com/img/plant.gif" + thumbnail = "http://scannerjammer.com/static/img/plant.gif" if sjroom.name == "glitter": - thumbnail = "http://scannerjammer.com/img/glitter_flower.gif" + thumbnail = "http://scannerjammer.com/static/img/glitter_flower.gif" elif sjroom.name == "glasspopcorn": - thumbnail = "http://scannerjammer.com/img/glasspopthumb.gif" + thumbnail = "http://scannerjammer.com/static/img/glasspopthumb.gif" title = "GlassPopcorn TV" elif room == "adult": #serverPort = 6969 diff --git a/scannerjammer/settings.py b/scannerjammer/settings.py index 46be8e7..15889ec 100755 --- a/scannerjammer/settings.py +++ b/scannerjammer/settings.py @@ -137,6 +137,7 @@ INSTALLED_APPS = ( 'django.contrib.admin', # Uncomment the next line to enable admin documentation: 'django.contrib.admindocs', + 'password_reset', ) # A sample logging configuration. The only tangible logging @@ -177,7 +178,7 @@ START_TIME = datetime.now() SERVER_HOST = 'scannerjammer.com' SERVER_PORT = 80 -SESSION_COOKIE_DOMAIN=".scannerjammer.com" +SESSION_COOKIE_DOMAIN=".scannerjammer.com" USE_X_FORWARDED_HOST=True HAYSTACK_CONNECTIONS = { diff --git a/scannerjammer/urls.py b/scannerjammer/urls.py index d8ba0e1..de316f7 100755 --- a/scannerjammer/urls.py +++ b/scannerjammer/urls.py @@ -1,11 +1,20 @@ -from django.conf.urls.defaults import * +from django.conf.urls.defaults import * + from django.contrib.staticfiles.urls import staticfiles_urlpatterns +from password_reset import views # Uncomment the next two lines to enable the admin: from django.contrib import admin admin.autodiscover() + urlpatterns = patterns('', + url(r'^recover/(?P<signature>.+)/$', views.recover_done, + name='password_reset_sent'), + url(r'^recover/$', views.recover, name='password_reset_recover'), + url(r'^reset/done/$', views.reset_done, name='password_reset_done'), + url(r'^reset/(?P<token>[\w:-]+)/$', views.reset, + name='password_reset_reset'), # Examples: # url(r'^$', 'scannerjammer.views.home', name='home'), # url(r'^scannerjammer/', include('scannerjammer.foo.urls')), |
