def account(request): """ Edit account info """ user = request.user if request.POST and request.is_ajax(): success = False errors = {} data = None type = request.POST.get('form_type', None) if type == 'account-info': first_name = request.POST.get('first_name', '') last_name = request.POST.get('last_name', '') anon_email = request.POST.get('anon_checkbox', False) == 'True' location = request.POST.get('location', '') website = request.POST.get('website', '') bio = request.POST.get('bio', '') user.first_name = first_name user.last_name = last_name user.save() profile = user.profile profile.anon_email = anon_email profile.location = location profile.website = website profile.bio = bio profile.save() success = "User info updated!" elif type == 'pic': pic_url = request.POST.get('pic_url') pic_url = put_profile_pic( pic_url, user.profile) #download and upload to our S3 if pic_url: #no errors/less than 1mb #patlsotw user.profile.pic_url = pic_url user.profile.save() success = "Profile picture changed!" else: errors['pic'] = ['Oops -- something went wrong.'] resp = { 'success': success, 'errors': errors, 'type': type, 'data': data, } return JSONResponse(resp) return _template_values(request, page_title="edit whitelist", header="account info", navbar='nav_account', sub_navbar="subnav_account_info")
def ticker_info(request): timestamp = timezone.now() - datetime.timedelta(minutes=5) followers = User.objects.filter(userprofile__followed_by=request.user) history = EyeHistory.objects.filter( start_time__gt=timestamp).order_by('-start_time').select_related() most_recent_hist = None mutelist_urls = MuteList.objects.filter(user=request.user, url__isnull=False).values_list( 'url', flat=True) mutelist_words = MuteList.objects.filter(user=request.user, word__isnull=False).values_list( 'word', flat=True) users = [] for h in history: if h.user not in users and h.user in followers: if most_recent_hist == None: show = True if len(mutelist_urls) > 0: for m in mutelist_urls: if m in h.url: show = False if show and len(mutelist_words) > 0: for m in mutelist_words: if m in h.title: show = False if show: most_recent_hist = h users.append({ 'username': h.user.username, 'pic_url': gravatar_for_user(h.user), 'url': '%s/users/%s' % (BASE_URL, h.user.username), }) res = {} res['online_users'] = sorted(users, key=lambda u: u['username']) if most_recent_hist != None: res['history_item'] = { 'username': most_recent_hist.user.username, 'pic_url': gravatar_for_user(most_recent_hist.user), 'user_url': '%s/users/%s' % (BASE_URL, most_recent_hist.user.username), 'url': most_recent_hist.url, 'title': most_recent_hist.title, 'favicon': most_recent_hist.favIconUrl, 'time_ago': humanize_time(timezone.now() - most_recent_hist.start_time) } t = Tag.objects.filter(user=request.user, domain=most_recent_hist.domain) if t.exists(): res['history_item']['tag'] = { 'name': t[0].name, 'color': t[0].color } else: res['history_item'] = None return JSONResponse(res)
def logged_in(request): if request.user.is_authenticated(): return JSONResponse({'res': True, 'username': request.user.username}) else: return JSONResponse({'res': False})
def bubble_info(request): url = request.POST.get('url', '') domain = url_domain(url) timestamp = timezone.now() - datetime.timedelta(days=7) used_users = [] active = [] followers = User.objects.filter(userprofile__followed_by=request.user) eyehists = EyeHistory.objects.filter( (Q(url=url) | Q(domain=domain)) & Q(start_time__gt=timestamp) & ~Q(user_id=request.user.id)).order_by('-end_time').select_related() for eyehist in eyehists: if len(active) >= 6: break user = eyehist.user if user not in used_users and user in followers: old_level = 3 if eyehist.end_time > \ (timezone.now() - datetime.timedelta(minutes=5)): old_level = 0 elif eyehist.end_time > \ (timezone.now() - datetime.timedelta(hours=1)): old_level = 1 elif eyehist.end_time > \ (timezone.now() - datetime.timedelta(hours=24)): old_level = 2 url_level = "site-level" if eyehist.url == url: url_level = "page-level" active.append({ 'username': user.username, 'pic_url': gravatar_for_user(user), 'url': '%s/users/%s' % (BASE_URL, user.username), 'old_level': old_level, 'url_level': url_level, 'time_ago': humanize_time(timezone.now() - eyehist.end_time) }) used_users.append(user) messages = EyeHistoryMessage.objects.filter( Q(eyehistory__url=url) & Q(post_time__gt=timestamp)).order_by('-post_time').select_related() about_message = None user_url = None username = None message = None for m in messages: if m.eyehistory.user in followers: message = m.message about_message = humanize_time(timezone.now() - m.post_time) + ' ago' user_url = '%s/users/%s' % (BASE_URL, m.eyehistory.user.username) username = m.eyehistory.user.username break if not about_message: chat_messages = ChatMessage.objects.filter( url=url).order_by('-date').select_related() for c in chat_messages: if c.author in followers: about_message = humanize_time(timezone.now() - c.date) + ' ago' message = '"%s"' % (c.message) user_url = '%s/users/%s' % (BASE_URL, c.author.username) username = c.author.username break if not about_message: about_message = '' message = '' return JSONResponse({ 'url': url, 'active_users': active, 'message': message, 'about_message': about_message, 'user_url': user_url, 'username': username, })