Ejemplo n.º 1
0
def new_search(request):
# When user submits search, they are sent to this view.
# All relevant data is stored as session data	
	search_term = request.GET['search_text']
	formatted_url = re.sub(r'\W', '', search_term.replace(' ', '_'))	
	request.session['_tweets'] = extreme_tweets(formatted_url.replace('_', ' '))
	request.session['_tweet_index'] = 0
	request.session['_search_term'] = formatted_url.replace('_', ' ')
	request.session['_favorite_indices'] = []
	request.session['_newly_favorited'] = False
	return redirect('/mean/search/%s/' % (formatted_url,))
Ejemplo n.º 2
0
def search_result(request, formatted_url):
# Check if the user has already searched for this term (aka if they are
# refreshing page or using "prev/next" buttons.
# If they search term doesn't match the URL, a new search is performed
# Based on the URL.
	search_term = formatted_url.replace('_', ' ')
	try:
		if search_term != request.session['_search_term']:
			request.session['_tweets'] = extreme_tweets(search_term)
			request.session['_tweet_index'] = 0
			request.session['_search_term'] = search_term
			request.session['_is_favorite'] = False
			request.session['_favorite_indices'] = []
			request.session['_newly_favorited'] = False
			
	except:
		request.session['_tweets'] = extreme_tweets(search_term)
		request.session['_tweet_index'] = 0
		request.session['_search_term'] = search_term
		request.session['_is_favorite'] = False
		request.session['_favorite_indices'] = []
		request.session['_newly_favorited'] = False
	tweets = request.session['_tweets']	
	if len(tweets) == 0:
		return redirect('/insufficient/')
	try:
	# Change page index based on whether user hit "next/prev" button
		if request.GET["next_prev"] == 'next' and \
		request.session['_tweet_index'] + 1 < len(tweets):
			request.session['_tweet_index'] += 1
		elif request.GET["next_prev"] == 'prev' and \
		request.session['_tweet_index'] > 0:
			request.session['_tweet_index'] -= 1
	except:
		pass
	tweet_index = request.session['_tweet_index']	
	try:
		favorite_count = FavoriteWorst.objects.get(
			tweet_id=tweets[tweet_index]["id"]).upvote_count
	except:
		favorite_count = 0
	if tweet_index in request.session['_favorite_indices']:
		favorite_button = False
	else:
		favorite_button = True	
	# Rules for displaying "next/prev" buttons
	if request.session['_tweet_index'] + 1 < len(tweets):
		next_button = True
	else:
		next_button = False
	if request.session['_tweet_index'] > 0:
		prev_button = True
	else:
		prev_button = False
	to_render = {'search_term': search_term,
				 'tweet': tweets[tweet_index],
				 'next_button_visible': next_button,
				 'prev_button_visible': prev_button,
				 'nice_term': nice_term()[0],
				 'favorite_button_visible': favorite_button,
				 'upvote_count': favorite_count,
				 'newly_favorited': request.session['_newly_favorited']}
	request.session['_newly_favorited'] = False
	return render(request, 
				  'search_results.html', 
				  to_render,)