def get_user_by_name(request, name): loggedInUser = get_current_user(request) if name != loggedInUser.user_name and not name in user_registry.users_by_name: if request.COOKIES.has_key('access_token'): response = ttagRequestUserProfileWithAccessToken( name, request.COOKIES['access_token']) else: response = ttagRequestUserProfile(name) if 'data' in response and response['data'][ 'is_activated'] and not response['data']['is_deleted']: data = response['data'] user_registry.users_by_name[name] = user = User(data) user_registry.users_by_id[user.user_id] = user if user.user_name in loggedInUser.get_following_names(): user.following = user["following"] = True if user.user_name in loggedInUser.get_follower_names(): user.follower = user["follower"] = True if 'follow' in response: user_registry.users_by_name[ name].follow = user_registry.users_by_name[name][ "follow"] = response['follow'] if name in user_registry.users_by_name: return user_registry.users_by_name[name] else: return False
def userFollow(request, user_name): try: authed, user = ttagServiceAuth(request) thereturn = loginscreen(request) if authed: thereturn = custompopup(request, '<p>Could not complete request</p>') access_token = request.COOKIES['access_token'] location = request.META[ 'HTTP_REFERER'] if 'location' not in request.POST else request.POST[ 'location'] followers = ttagRequestFollowers(user['_id']) found = False follower_id = 0 if 'data' in followers and 'users' in followers[ 'data'] and followers['data']['users'] != None: for follower in followers['data']['users']: if follower['user_name'] == str(user_name): found = True follower_id = follower['user_id'] break if found: response = ttagPost( "/follow/delete", { 'access_token': access_token, 'user_id': user['_id'], 'follower_id': follower_id, 'followee_id': user['_id'] }) else: f_user = ttagRequestUserProfile(user_name) follower_id = f_user['data']['_id'] response = ttagPost( "/follow/create", { 'access_token': access_token, 'user_id': user['_id'], 'follower_id': follower_id, 'followee_id': user['_id'] }) if response["result"] == "OK": from webapp.views.email import notifyOfUserFollowing # send reply notification notifyOfUserFollowing(request, follower_id, user["_id"]) response['found'] = found # localprint(request, response) if request.is_ajax(): thereturn = render_to_response( 'partial_user_follow.html', locals(), context_instance=RequestContext(request)) else: thereturn = HttpResponseRedirect(location) return thereturn except: logger = logging.getLogger(__name__) return errorscreen(request, logger, sys)
def userProfileView(request, user_name='', view_type='', page='', time='', userdetails='', pagetitle='ttagit - User Profile Page', pagetemplate='user_profile.html', partial=None, hideMiniSpraycan=False): try : authed, data = ttagServiceAuth(request) follow = -1 loggedin_user = '' if not authed else data['_id'] if user_name != '' : if request.COOKIES.has_key('access_token'): response = ttagRequestUserProfileWithAccessToken(user_name,request.COOKIES['access_token']) else: response = ttagRequestUserProfile(user_name) if 'data' in response and response['data']['is_activated'] and not response['data']['is_deleted'] : data = response['data'] if 'follow' in response : follow = response['follow'] if loggedin_user == data['_id'] : follow = -1 else : return HttpResponseRedirect(reverse('home-page')) elif data != None and 'user_name' in data : user_name = data['user_name'] if not data or data == None : return HttpResponseRedirect(reverse('home-page')) response = ttagRequestCount(data['_id']) if 'counts' in response : counts = response['counts'] servertime = response['time'] counts['tags'] = counts['ttags'] counts['following'] = counts['followees'] else : counts = {'tags':0,'replies':0,'followers':0,'following':0} import time servertime = int(time.mktime(datetime.datetime.now().timetuple())*1000) if view_type not in ['tags','replies','following','followers','finds','favorites'] : view_type = 'tags' if partial is not None : return render_to_response(partial,locals(),context_instance=RequestContext(request)) if not page or page == '' : page = 1 page = int(page) if not time or time == '' : time = 0 time = int(time) more = True if counts[view_type] > PROFILE_ITEM_ROWS * page and time == 0 else False if userdetails == '' : userdetails = getUserDetails(request, data, user_name, data['_id'], loggedin_user, view_type, page, time, more) if request.is_ajax() : return HttpResponse(userdetails) context = {'view_type': view_type, 'data': data, 'counts': counts, 'pagetitle': pagetitle, 'request': request, 'loggedin': False, 'details': userdetails, 'page': page, 'servertime': servertime,'follow':follow, 'showfollow': True, 'hideMiniSpraycan': hideMiniSpraycan} if authed : context['loggedin'] = True return render_to_response(pagetemplate, context, context_instance=RequestContext(request)) except : logger=logging.getLogger(__name__) return errorscreen(request,logger, sys)
def get_user_by_name(request, name): loggedInUser = get_current_user(request) if name != loggedInUser.user_name and not name in user_registry.users_by_name: if request.COOKIES.has_key('access_token'): response = ttagRequestUserProfileWithAccessToken(name,request.COOKIES['access_token']) else: response = ttagRequestUserProfile(name) if 'data' in response and response['data']['is_activated'] and not response['data']['is_deleted'] : data = response['data'] user_registry.users_by_name[name] = user = User(data) user_registry.users_by_id[user.user_id] = user if user.user_name in loggedInUser.get_following_names(): user.following = user["following"] = True if user.user_name in loggedInUser.get_follower_names(): user.follower = user["follower"] = True if 'follow' in response : user_registry.users_by_name[name].follow = user_registry.users_by_name[name]["follow"] = response['follow'] if name in user_registry.users_by_name : return user_registry.users_by_name[name] else : return False
def getUserVariables(request, user_name): loggedin, user = ttagServiceAuth(request) loggedin_user = '' follow = -1 data = {} if loggedin : loggedin_user = user['_id'] if user and user_name == '' : user_name = user['user_name'] if user and user_name == user['user_name'] : data = user elif request.COOKIES.has_key('access_token'): response = ttagRequestUserProfileWithAccessToken(user_name,request.COOKIES['access_token']) else: response = ttagRequestUserProfile(user_name) if 'response' in locals() and 'data' in response and response['data']['is_activated'] and not response['data']['is_deleted'] : data = response['data'] if 'follow' in response : follow = response['follow'] if loggedin_user == data['_id'] : follow = -1 return loggedin, user, loggedin_user, follow, data
def userFollow(request, user_name): try : authed, user = ttagServiceAuth(request) thereturn = loginscreen(request) if authed : thereturn = custompopup(request,'<p>Could not complete request</p>') access_token = request.COOKIES['access_token'] location = request.META['HTTP_REFERER'] if 'location' not in request.POST else request.POST['location'] followers = ttagRequestFollowers(user['_id']) found = False follower_id = 0 if 'data' in followers and 'users' in followers['data'] and followers['data']['users'] != None : for follower in followers['data']['users'] : if follower['user_name'] == str(user_name) : found = True follower_id = follower['user_id'] break if found : response = ttagPost("/follow/delete", {'access_token': access_token, 'user_id': user['_id'], 'follower_id': follower_id, 'followee_id': user['_id']}) else : f_user = ttagRequestUserProfile(user_name) follower_id = f_user['data']['_id'] response = ttagPost("/follow/create", {'access_token': access_token, 'user_id': user['_id'], 'follower_id': follower_id, 'followee_id': user['_id']}) if response["result"] == "OK": from webapp.views.email import notifyOfUserFollowing # send reply notification notifyOfUserFollowing(request, follower_id, user["_id"]) response['found'] = found # localprint(request, response) if request.is_ajax() : thereturn = render_to_response('partial_user_follow.html',locals(),context_instance=RequestContext(request)) else : thereturn = HttpResponseRedirect(location) return thereturn except : logger=logging.getLogger(__name__) return errorscreen(request,logger, sys)
def getUserVariables(request, user_name): loggedin, user = ttagServiceAuth(request) loggedin_user = '' follow = -1 data = {} if loggedin: loggedin_user = user['_id'] if user and user_name == '': user_name = user['user_name'] if user and user_name == user['user_name']: data = user elif request.COOKIES.has_key('access_token'): response = ttagRequestUserProfileWithAccessToken( user_name, request.COOKIES['access_token']) else: response = ttagRequestUserProfile(user_name) if 'response' in locals() and 'data' in response and response['data'][ 'is_activated'] and not response['data']['is_deleted']: data = response['data'] if 'follow' in response: follow = response['follow'] if loggedin_user == data['_id']: follow = -1 return loggedin, user, loggedin_user, follow, data
def search(request): try: thereturn = loginscreen(request) loggedin, data = ttagServiceAuth(request) if loggedin: if 'search' in request.POST: atusername = '' emailform = SpraycanSearchEmail(request.POST) usernameform = SpraycanSearchUsername(request.POST) if emailform.is_valid(): resp = ttagPost('/validate/request-username-by-email', {'email': emailform.getSpraycan_Search()}) if resp['result'] == 'OK' and resp['find_by_email']: atusername = resp['user_name'] elif usernameform.is_valid(): resp = ttagRequestUserProfile( usernameform.getSpraycan_Search()[1:]) if resp['result'] == 'OK': atusername = resp['data']['user_name'] if atusername != '': # from django.core.urlresolvers import reverse # return render_to_response("javascript_redirect.html", {"redirect_url" : reverse('user-profile', kwargs={'user_name':atusername,'view_type':'','page':'','time':''}),'hidespraycan':'true'}) from webapp.views.user import userWallView return userWallView(request, atusername) form = SpraycanSearch(request.POST) if form.is_valid(): urlform = SpraycanSearchURL(request.POST) if urlform.is_valid(): #show spraycan for URL thereturn = url(request, urlform.getSpraycan_Search()) else: #show search results import datetime from webapp.views.user import getUserFollowers location_type = 'search' loggedin_user = data['_id'] filter = request.POST.get('filter', "All") ttags = ttagPost( '/find/url-keyword-hashtag', { 'query': form.getSpraycan_Search(), 'items_per_page': '100', 'page_number': '0' }) response = { 'time': ttags['time'], 'data': { 'founder': {}, 'favorite': False, 'ttags': [] if filter not in ['All', 'Tags'] or ttags['data'] == None or 'ttags' not in ttags['data'] or ttags['data']['ttags'] == None else ttags['data']['ttags'], 'users': [] if filter not in ['All', 'Users'] or ttags['data'] == None or 'users' not in ttags['data'] or ttags['data']['users'] == None else ttags['data']['users'], 'hashtags': [] if filter not in ['All', 'HashTags'] or ttags['data'] == None or 'hashtags' not in ttags['data'] or ttags['data']['hashtags'] == None else ttags['data']['hashtags'], 'location': [] if filter not in ['All', 'Locations'] or ttags['data'] == None or 'location' not in ttags['data'] or ttags['data']['location'] == None else ttags['data']['location'], 'hubs': [] if filter not in ['All', 'Hubs'] or ttags['data'] == None or 'hubs' not in ttags['data'] or ttags['data']['hubs'] == None else ttags['data']['hubs'], 'spams': [], 'thumbups': [] } } from webapp.models.hub import processRawHubs response['data']['hubs'] = processRawHubs( response['data']['hubs'], request) response['data']['followers'] = getUserFollowers( loggedin_user) from webapp.views.user import getUserHubs response['data']['joinedhubs'] = getUserHubs( data['user_name']) response['data']['searchcounts'] = { 'ttags': 0 if ttags['data'] == None or 'ttags' not in ttags['data'] or ttags['data']['ttags'] == None else len( ttags['data']['ttags']), 'users': 0 if ttags['data'] == None or 'users' not in ttags['data'] or ttags['data']['users'] == None else len( ttags['data']['users']), 'hashtags': 0 if ttags['data'] == None or 'hashtags' not in ttags['data'] or ttags['data']['hashtags'] == None else len( ttags['data']['hashtags']), 'location': 0 if ttags['data'] == None or 'location' not in ttags['data'] or ttags['data']['location'] == None else len( ttags['data']['location']), 'hubs': 0 if ttags['data'] == None or 'hubs' not in ttags['data'] or ttags['data']['hubs'] == None else len( ttags['data']['hubs']) } servertime = datetime.datetime.fromtimestamp( int(ttags['time']) / 1000) if request.is_ajax(): thetemplate = 'base_ajax.html' thereturn = render_to_response( "spraycan.html", locals(), context_instance=RequestContext(request)) if request.is_ajax(): usercontext = mark_safe( render_to_response('partial_user_details.html', locals(), context_instance=RequestContext( request)).content) import simplejson jsonReturn = simplejson.dumps({ 'context': usercontext, 'results': mark_safe(thereturn.content) }) thereturn = HttpResponse(mark_safe(jsonReturn)) return thereturn except: logger = logging.getLogger(__name__) return errorscreen(request, logger, sys)
def userProfileView(request, user_name='', view_type='', page='', time='', userdetails='', pagetitle='ttagit - User Profile Page', pagetemplate='user_profile.html', partial=None, hideMiniSpraycan=False): try: authed, data = ttagServiceAuth(request) follow = -1 loggedin_user = '' if not authed else data['_id'] if user_name != '': if request.COOKIES.has_key('access_token'): response = ttagRequestUserProfileWithAccessToken( user_name, request.COOKIES['access_token']) else: response = ttagRequestUserProfile(user_name) if 'data' in response and response['data'][ 'is_activated'] and not response['data']['is_deleted']: data = response['data'] if 'follow' in response: follow = response['follow'] if loggedin_user == data['_id']: follow = -1 else: return HttpResponseRedirect(reverse('home-page')) elif data != None and 'user_name' in data: user_name = data['user_name'] if not data or data == None: return HttpResponseRedirect(reverse('home-page')) response = ttagRequestCount(data['_id']) if 'counts' in response: counts = response['counts'] servertime = response['time'] counts['tags'] = counts['ttags'] counts['following'] = counts['followees'] else: counts = {'tags': 0, 'replies': 0, 'followers': 0, 'following': 0} import time servertime = int( time.mktime(datetime.datetime.now().timetuple()) * 1000) if view_type not in [ 'tags', 'replies', 'following', 'followers', 'finds', 'favorites' ]: view_type = 'tags' if partial is not None: return render_to_response(partial, locals(), context_instance=RequestContext(request)) if not page or page == '': page = 1 page = int(page) if not time or time == '': time = 0 time = int(time) more = True if counts[ view_type] > PROFILE_ITEM_ROWS * page and time == 0 else False if userdetails == '': userdetails = getUserDetails(request, data, user_name, data['_id'], loggedin_user, view_type, page, time, more) if request.is_ajax(): return HttpResponse(userdetails) context = { 'view_type': view_type, 'data': data, 'counts': counts, 'pagetitle': pagetitle, 'request': request, 'loggedin': False, 'details': userdetails, 'page': page, 'servertime': servertime, 'follow': follow, 'showfollow': True, 'hideMiniSpraycan': hideMiniSpraycan } if authed: context['loggedin'] = True return render_to_response(pagetemplate, context, context_instance=RequestContext(request)) except: logger = logging.getLogger(__name__) return errorscreen(request, logger, sys)
def settingsChangePost(request): try : form = SettingsForm() loggedin, data = ttagServiceAuth(request) checkUser = False if (request.method == "POST"): form = SettingsForm(request.POST) if loggedin : aToken = request.COOKIES['access_token'] else : aToken = '' return loginscreen(request) if form.is_valid() and data['user_name'] != form.getUser_Name() : checkUser = ttagRequestUserProfile(form.getUser_Name()) if checkUser['result'] == 'OK' : form._errors['user_name'] = form.error_class([u"Sorry, that username already exists"]) if form.is_valid(): serviceResponse = ttagServiceAccountChange(aToken, full_name = form.getFull_Name(), find_by_email = 'true' if 'find_by_email' in request.POST else 'false', location = form.getLocation(), site_link = form.getWebsite(), self_description = form.getBio(), country = form.getCountry(), time_zone = form.getTime_Zone(), email_on_new_follower = 'true' if 'email_on_new_follower' in request.POST else 'false', email_on_reply = 'true' if 'email_on_reply' in request.POST else 'false', email_on_followed_ttag = 'true' if 'email_on_followed_ttag' in request.POST else 'false', gender = form.getGender(), google_map_address = form.getGoogleMap_Address(), pro_description = form.getPro_Description(), ) json_obj = simplejson.loads(serviceResponse.read()) if checkUser != False : updateUsername = ttagPost('/user/update-username',{'new_username': form.getUser_Name(),'access_token':aToken}) if updateUsername['result'] == 'OK' : data['user_name'] = form.getUser_Name() if json_obj['result'] == 'OK': settings_message = mark_safe('Account settings changed.') if data['email'] != form.getEmail() : emailresp = ttagPost('/user/update-email',{'access_token':aToken,'new_email':form.getEmail()}) if emailresp['result'] != 'OK' : settings_message = mark_safe('Email not updated: '+emailresp['msg']) else: settings_message = mark_safe("Account settings not changed! "+json_obj['msg']) ## Check if password change request should be sent if len(form.getNew_Password()) > 0 and len(form.getCurrent_Password()) > 0 : pwdResponse = ttagServicePasswordChange(aToken, form.getCurrent_Password(), form.getNew_Password() ) resp = pwdResponse.read() jsonPwdResp = simplejson.loads(resp) if jsonPwdResp['result'] == 'OK': settings_message += mark_safe('<br />Password changed.') elif jsonPwdResp['msg'] == 'Incorrect old password. Change password failed' : form._errors['current_password'] = form.error_class([u"Current Password was incorrect"]) else: settings_message += mark_safe('<br />Password not changed') return render_to_response('home_settings.html', locals(), context_instance=RequestContext(request)) except : logger=logging.getLogger(__name__) return errorscreen(request,logger, sys)
def search(request): try : thereturn = loginscreen(request) loggedin, data = ttagServiceAuth(request) if loggedin : if 'search' in request.POST : atusername = '' emailform = SpraycanSearchEmail(request.POST) usernameform = SpraycanSearchUsername(request.POST) if emailform.is_valid() : resp = ttagPost('/validate/request-username-by-email',{'email':emailform.getSpraycan_Search()}) if resp['result'] == 'OK' and resp['find_by_email'] : atusername = resp['user_name'] elif usernameform.is_valid() : resp = ttagRequestUserProfile(usernameform.getSpraycan_Search()[1:]) if resp['result'] == 'OK' : atusername = resp['data']['user_name'] if atusername != '' : # from django.core.urlresolvers import reverse # return render_to_response("javascript_redirect.html", {"redirect_url" : reverse('user-profile', kwargs={'user_name':atusername,'view_type':'','page':'','time':''}),'hidespraycan':'true'}) from webapp.views.user import userWallView return userWallView(request, atusername) form = SpraycanSearch(request.POST) if form.is_valid() : urlform = SpraycanSearchURL(request.POST) if urlform.is_valid() : #show spraycan for URL thereturn = url(request, urlform.getSpraycan_Search()) else : #show search results import datetime from webapp.views.user import getUserFollowers location_type = 'search' loggedin_user = data['_id'] filter = request.POST.get('filter', "All") ttags = ttagPost('/find/url-keyword-hashtag',{'query':form.getSpraycan_Search(),'items_per_page':'100','page_number':'0'}) response = {'time': ttags['time'], 'data':{ 'founder': {}, 'favorite': False, 'ttags':[] if filter not in ['All','Tags'] or ttags['data'] == None or 'ttags' not in ttags['data'] or ttags['data']['ttags'] == None else ttags['data']['ttags'], 'users': [] if filter not in ['All','Users'] or ttags['data'] == None or 'users' not in ttags['data'] or ttags['data']['users'] == None else ttags['data']['users'], 'hashtags': [] if filter not in ['All','HashTags'] or ttags['data'] == None or 'hashtags' not in ttags['data'] or ttags['data']['hashtags'] == None else ttags['data']['hashtags'], 'location': [] if filter not in ['All','Locations'] or ttags['data'] == None or 'location' not in ttags['data'] or ttags['data']['location'] == None else ttags['data']['location'], 'hubs': [] if filter not in ['All','Hubs'] or ttags['data'] == None or 'hubs' not in ttags['data'] or ttags['data']['hubs'] == None else ttags['data']['hubs'], 'spams':[], 'thumbups':[]}} from webapp.models.hub import processRawHubs response['data']['hubs'] = processRawHubs(response['data']['hubs'], request) response['data']['followers'] = getUserFollowers(loggedin_user) from webapp.views.user import getUserHubs response['data']['joinedhubs'] = getUserHubs(data['user_name']) response['data']['searchcounts'] = { 'ttags': 0 if ttags['data'] == None or 'ttags' not in ttags['data'] or ttags['data']['ttags'] == None else len(ttags['data']['ttags']), 'users': 0 if ttags['data'] == None or 'users' not in ttags['data'] or ttags['data']['users'] == None else len(ttags['data']['users']), 'hashtags': 0 if ttags['data'] == None or 'hashtags' not in ttags['data'] or ttags['data']['hashtags'] == None else len(ttags['data']['hashtags']), 'location': 0 if ttags['data'] == None or 'location' not in ttags['data'] or ttags['data']['location'] == None else len(ttags['data']['location']), 'hubs': 0 if ttags['data'] == None or 'hubs' not in ttags['data'] or ttags['data']['hubs'] == None else len(ttags['data']['hubs']) } servertime = datetime.datetime.fromtimestamp(int(ttags['time'])/1000) if request.is_ajax() : thetemplate = 'base_ajax.html' thereturn = render_to_response("spraycan.html", locals(), context_instance=RequestContext(request)) if request.is_ajax() : usercontext = mark_safe(render_to_response('partial_user_details.html',locals(),context_instance=RequestContext(request)).content) import simplejson jsonReturn = simplejson.dumps({'context':usercontext,'results':mark_safe(thereturn.content)}) thereturn = HttpResponse(mark_safe(jsonReturn)); return thereturn except : logger=logging.getLogger(__name__) return errorscreen(request,logger, sys)