def dashboard(request,handle):
	template = loader.get_template('tool/basic.html')

	(title,tw_handle)=getTitle(handle,"")

	### for twitter
	filename = os.path.join(BASE_DIR, 'tool/data/tweets_'+tw_handle+'.json')
	data_tw = fileParser(filename)
	series = parseData(data_tw,filename)
	graph_data_tw=getGraphData(series,"twitter")

	### for facebook
	data_fb = getData(handle)
	series = parseFBData(data_fb)
	graph_data_fb=getGraphData(series,"facebook")
	
	d3graph_tw=chartD3Line(graph_data_tw,"tw",tw_handle)
	d3graph_fb=chartD3Line(graph_data_fb,"fb",handle)

	# print "GRAPH HERE"
	# print d3graph

	comp_list_tw=getComparisons(handle=handle,platform="twitter")
	comp_list_fb=getComparisons(handle=handle,platform="facebook")
	comp_div_twitter1=""
	comp_div_facebook1=""
	pick_div=""
	for key in comp_list_tw.keys():
		comp_div_twitter1=comp_div_twitter1+'<li><a class="compare-to-graph1-twitter" href="#">'+comp_list_tw[key][0]+'<div class="comp-fb-handle" style="display:none">'+key+'</div></a></li>'
	for key in comp_list_fb.keys():
		comp_div_facebook1=comp_div_facebook1+'<li><a class="compare-to-graph1-facebook" href="#">'+comp_list_fb[key][0]+'<div class="comp-fb-handle" style="display:none">'+key+'</div></a></li>'
		pick_div=pick_div+'<li><a class="pick-account" href="../'+key+'/">'+comp_list_fb[key][0]+'</a></li>'

	word="why"
	keyList=getKeywords(keyword=word)
	key_div_twitter1=""
	key_div_facebook1=""
	for key in keyList:
		key_div_twitter1=key_div_twitter1+'<li><a class="victimzn-key-twitter" href="#">'+key+'</a></li>'
		key_div_facebook1=key_div_facebook1+'<li><a class="victimzn-key-facebook" href="#">'+key+'</a></li>'

	text_array_tw=parseText(data_tw,"twitter")
	text_array_fb=parseText(data_fb,"facebook")
	tree_tw=wordTree(text_array=text_array_tw,name="wordtree_twitter",word=word)
	tree_fb=wordTree(text_array=text_array_fb,name="wordtree_facebook",word=word)

	if len(text_array_tw)>0:
		(cloud_tw,cloud_list_tw)=wordCloud(text_array=text_array_tw,name="wordcloud_twitter")
	else:
		cloud_tw=""
		cloud_list_tw=[]

	if len(text_array_fb)>0:
		(cloud_fb,cloud_list_fb)=wordCloud(text_array=text_array_fb,name="wordcloud_facebook")
	else:
		cloud_fb=""
		cloud_list_fb=[]

	context = RequestContext(request, {
	    'dashboard_name': title+" Dashboard",
	    'pick_account':pick_div,
	    'graph_tweets':d3graph_tw,
	    'graph_facebook':d3graph_fb,
	    'graph_tree_twitter':tree_tw,
	    'graph_tree_facebook':tree_fb,
	    'twitter_handle':handle,
	    'facebook_handle':handle,
	    'compare_to_graph1_twitter':comp_div_twitter1,
	    'compare_to_graph1_facebook':comp_div_facebook1,
	    'victimisation_twitter':key_div_twitter1,
	    'victimisation_facebook':key_div_facebook1,
	    'victim_current_key_twitter':word,
	    'victim_current_key_facebook':word,
	    'wordcloud_twitter':cloud_tw,
	    'wordcloud_twitter_list':cloud_list_tw,
	    'wordcloud_facebook':cloud_fb,
	    'wordcloud_facebook_list':cloud_list_fb
	})

	return HttpResponse(template.render(context))
Exemple #2
0
def dashboard(request, handle):
    template = loader.get_template('tool/basic.html')

    (title, tw_handle) = getTitle(handle, "")

    ### for twitter
    filename = os.path.join(BASE_DIR,
                            'tool/data/tweets_' + tw_handle + '.json')
    data_tw = fileParser(filename)
    series = parseData(data_tw, filename)
    graph_data_tw = getGraphData(series, "twitter")

    ### for facebook
    data_fb = getData(handle)
    series = parseFBData(data_fb)
    graph_data_fb = getGraphData(series, "facebook")

    # print "GRAPH HERE"
    # print d3graph

    ### line graphs
    d3graph_tw = chartD3Line(graph_data_tw, "tw", tw_handle)
    d3graph_fb = chartD3Line(graph_data_fb, "fb", handle)
    comp_list_tw = getComparisons(handle=handle, platform="twitter")
    comp_list_fb = getComparisons(handle=handle, platform="facebook")
    comp_div_twitter1 = ""
    comp_div_facebook1 = ""
    pick_div = ""
    for key in comp_list_tw:
        comp_div_twitter1 = comp_div_twitter1 + '<li><a class="compare-to-graph1-twitter" href="#">' + key[
            "name"] + '<div class="comp-fb-handle" style="display:none">' + key[
                "key"] + '</div></a></li>'
    for key in comp_list_fb:
        comp_div_facebook1 = comp_div_facebook1 + '<li><a class="compare-to-graph1-facebook" href="#">' + key[
            "name"] + '<div class="comp-fb-handle" style="display:none">' + key[
                "key"] + '</div></a></li>'
        pick_div = pick_div + '<li><a class="pick-account" href="../' + key[
            "key"] + '/">' + key["name"] + '</a></li>'

    ### singular graphs
    fb = ['posts', 'likes', 'comments']
    tw = ['tweets', 'retweets', 'favs']

    graph_facebook_items = []
    for only in fb:
        graph_facebook_datum = {}
        graph_facebook_datum["name"] = only
        graph_facebook_datum["graph"] = onlySpecificLine(
            graph_data_fb, "fb", handle, only)
        graph_facebook_items.append(graph_facebook_datum)

    graph_twitter_items = []
    for only in tw:
        graph_twitter_datum = {}
        graph_twitter_datum["name"] = only
        graph_twitter_datum["graph"] = onlySpecificLine(
            graph_data_tw, "tw", handle, only)
        graph_twitter_items.append(graph_twitter_datum)

    ### wordtree
    word = "why"
    keyList = getKeywords(keyword=word)
    key_div_twitter1 = ""
    key_div_facebook1 = ""
    for key in keyList:
        key_div_twitter1 = key_div_twitter1 + '<li><a class="victimzn-key-twitter" href="#">' + key + '</a></li>'
        key_div_facebook1 = key_div_facebook1 + '<li><a class="victimzn-key-facebook" href="#">' + key + '</a></li>'

    text_array_tw = parseText(data_tw, "twitter")
    text_array_fb = parseText(data_fb, "facebook")
    tree_tw = wordTree(text_array=text_array_tw,
                       name="wordtree_twitter",
                       word=word)
    tree_fb = wordTree(text_array=text_array_fb,
                       name="wordtree_facebook",
                       word=word)

    ### wordcloud
    if len(text_array_tw) > 0:
        (cloud_tw, cloud_list_tw) = wordCloud(text_array=text_array_tw,
                                              name="wordcloud_twitter",
                                              title=handle)
    else:
        cloud_tw = ""
        cloud_list_tw = []

    if len(text_array_fb) > 0:
        (cloud_fb, cloud_list_fb) = wordCloud(text_array=text_array_fb,
                                              name="wordcloud_facebook",
                                              title=handle)
    else:
        cloud_fb = ""
        cloud_list_fb = []

    ### sentiment140

    ##for initially prefetching the sentiments

    # fb_data_sentiment_all = getDataAll()

    # if len(fb_data_sentiment_all)>0:
    # 	getSentiment(posts=fb_data_sentiment_all)

    fb_data_sentiment = getUniqueDataSentiment(handle)

    if len(fb_data_sentiment) > 0:
        getSentiment(posts=fb_data_sentiment)

    # if len(text_array_tw)>0:
    # 	getSentiment(posts=data_tw)

    sentiment_count = []

    sentiment_count = getSentimentCount(handle=handle)

    print sentiment_count

    inject = ''
    inject += '<script type="text/javascript">\n'
    inject += 'plotSentiment(' + str(sentiment_count) + ');\n'
    inject += '</script>'

    # print words_colours
    ## fetching count

    ### cover images and details
    client = pymongo.MongoClient()
    db = client.FBPoliceData
    page_info = db.page_fields.find_one({"page": handle})
    if "cover" in page_info.keys():
        cover_image_src = page_info["cover"]["source"]
    else:
        cover_image_src = ""

    if "website" in page_info.keys():
        website = page_info["website"]
    else:
        website = ""

    if "phone" in page_info.keys():
        fb_phone = page_info["phone"]
    else:
        fb_phone = ""

    j = db.page_names.find_one({"page": handle})
    if "handle" in j.keys():
        tw_name = j["handle"]
        tw_link = "https://twitter.com/" + j["handle"]
    else:
        tw_name = ""
        tw_link = ""

    title = page_info["name"]
    fb_link = page_info["link"]
    fb_name = page_info["page"]
    fb_likes = str(page_info["likes"]) + " likes"
    fb_checkins = str(page_info["checkins"]) + " checkins"

    if len(data_fb) == 0:
        # print d3graph_fb+"\n"
        d3graph_fb = "<b><i>No Facebook data for this handle</i></b>"
        # print tree_fb+"\n"
        tree_fb = "<b><i>No Facebook data for this handle</i></b>"
        # print cloud_fb+"\n"
        cloud_fb = "<b><i>No Facebook data for this handle</i></b>"

    if len(data_tw) == 0:
        # print d3graph_tw+"\n"
        d3graph_tw = "<b><i>No Twitter data for this handle</i></b>"
        # print tree_tw+"\n"
        tree_tw = "<b><i>No Twitter data for this handle</i></b>"
        # print cloud_tw+"\n"
        cloud_tw = "<b><i>No Twitter data for this handle</i></b>"

    context = RequestContext(
        request, {
            'cover_image': cover_image_src,
            'dashboard_name': title,
            'pick_account': pick_div,
            'graph_tweets': d3graph_tw,
            'graph_facebook': d3graph_fb,
            'graph_facebook_items': graph_facebook_items,
            'graph_twitter_items': graph_twitter_items,
            'graph_tree_twitter': tree_tw,
            'graph_tree_facebook': tree_fb,
            'twitter_handle': handle,
            'facebook_handle': handle,
            'compare_to_graph1_twitter': comp_div_twitter1,
            'compare_to_graph1_facebook': comp_div_facebook1,
            'victimisation_twitter': key_div_twitter1,
            'victimisation_facebook': key_div_facebook1,
            'victim_current_key_twitter': word,
            'victim_current_key_facebook': word,
            'wordcloud_twitter': cloud_tw,
            'wordcloud_twitter_list': cloud_list_tw,
            'wordcloud_facebook': cloud_fb,
            'wordcloud_facebook_list': cloud_list_fb,
            'dept_fb_name': fb_name,
            'dept_link': fb_link,
            'dept_tw_name': tw_name,
            'dept_tw_link': tw_link,
            'dept_website': website,
            'dept_phone': fb_phone,
            'dept_likes': fb_likes,
            'dept_checkins': fb_checkins,
            'sentiment_count': inject
        })

    return HttpResponse(template.render(context))
def dashboard(request,handle):
	template = loader.get_template('tool/basic.html')

	(title,tw_handle)=getTitle(handle,"")

	### for twitter
	filename = os.path.join(BASE_DIR, 'tool/data/tweets_'+tw_handle+'.json')
	data_tw = fileParser(filename)
	series = parseData(data_tw,filename)
	graph_data_tw=getGraphData(series,"twitter")

	### for facebook
	data_fb = getData(handle)
	series = parseFBData(data_fb)
	graph_data_fb=getGraphData(series,"facebook")

	# print "GRAPH HERE"
	# print d3graph

	### line graphs
	d3graph_tw=chartD3Line(graph_data_tw,"tw",tw_handle)
	d3graph_fb=chartD3Line(graph_data_fb,"fb",handle)
	comp_list_tw=getComparisons(handle=handle,platform="twitter")
	comp_list_fb=getComparisons(handle=handle,platform="facebook")
	comp_div_twitter1=""
	comp_div_facebook1=""
	pick_div=""
	for key in comp_list_tw:
		comp_div_twitter1=comp_div_twitter1+'<li><a class="compare-to-graph1-twitter" href="#">'+key["name"]+'<div class="comp-fb-handle" style="display:none">'+key["key"]+'</div></a></li>'
	for key in comp_list_fb:
		comp_div_facebook1=comp_div_facebook1+'<li><a class="compare-to-graph1-facebook" href="#">'+key["name"]+'<div class="comp-fb-handle" style="display:none">'+key["key"]+'</div></a></li>'
		pick_div=pick_div+'<li><a class="pick-account" href="../'+key["key"]+'/">'+key["name"]+'</a></li>'

	### singular graphs
	fb=['Posts','Likes','Comments']
	tw=['Tweets','Retweets','Favs']

	graph_facebook_items=[]
	for only in fb:
		graph_facebook_datum={}
		graph_facebook_datum["name"]=only
		graph_facebook_datum["graph"]=onlySpecificLine(graph_data_fb,"fb",handle,only)
		graph_facebook_items.append(graph_facebook_datum)

	graph_twitter_items=[]
	for only in tw:
		graph_twitter_datum={}
		graph_twitter_datum["name"]=only
		graph_twitter_datum["graph"]=onlySpecificLine(graph_data_tw,"tw",handle,only)
		graph_twitter_items.append(graph_twitter_datum)

	### wordtree
	word="why"
	keyList=getKeywords(keyword=word)
	key_div_twitter1=""
	key_div_facebook1=""
	for key in keyList:
		key_div_twitter1=key_div_twitter1+'<li><a class="victimzn-key-twitter" href="#">'+key+'</a></li>'
		key_div_facebook1=key_div_facebook1+'<li><a class="victimzn-key-facebook" href="#">'+key+'</a></li>'

	text_array_tw=parseText(data_tw,"twitter")
	text_array_fb=parseText(data_fb,"facebook")
	tree_tw=wordTree(text_array=text_array_tw,name="wordtree_twitter",word=word)
	tree_fb=wordTree(text_array=text_array_fb,name="wordtree_facebook",word=word)

	### wordcloud
	if len(text_array_tw)>0:
		(cloud_tw,cloud_list_tw)=wordCloud(text_array=text_array_tw,name="wordcloud_twitter",title=handle)
	else:
		cloud_tw=""
		cloud_list_tw=[]

	if len(text_array_fb)>0:
		(cloud_fb,cloud_list_fb)=wordCloud(text_array=text_array_fb,name="wordcloud_facebook",title=handle)
	else:
		cloud_fb=""
		cloud_list_fb=[]

	### sentiment140

	##for initially prefetching the sentiments

	# fb_data_sentiment_all = getDataAll()

	# if len(fb_data_sentiment_all)>0:
	# 	getSentiment(posts=fb_data_sentiment_all)

	fb_data_sentiment = getUniqueDataSentiment(handle)

	if len(fb_data_sentiment)>0:
		getSentiment(posts=fb_data_sentiment)

	# if len(text_array_tw)>0:
	# 	getSentiment(posts=data_tw)


	sentiment_count = []

	sentiment_count = getSentimentCount(handle=handle)

	print sentiment_count

	inject=''
	inject+='<script type="text/javascript">\n'
	inject+='plotSentiment('+str(sentiment_count)+');\n'
	inject+='</script>'


	# print words_colours
		## fetching count





	### cover images and details
	client = pymongo.MongoClient()
	db = client.FBPoliceData
	page_info=db.page_fields.find_one({"page": handle})
	if "cover" in page_info.keys():
		cover_image_src=page_info["cover"]["source"]
	else:
		cover_image_src="http://i.imgur.com/NQtvKMW.png"

	if "website" in page_info.keys():
		website=page_info["website"].split()[0]
	else:
		website=""

	if "phone" in page_info.keys():
		fb_phone=page_info["phone"]
	else:
		fb_phone=""

	j = db.page_names.find_one({"page":handle})
	if "handle" in j.keys():
		tw_name=j["handle"]
		tw_link="https://twitter.com/"+j["handle"]
	else:
		tw_name=""
		tw_link=""

	title=page_info["name"]
	fb_link=page_info["link"]
	fb_name=page_info["page"]
	fb_likes=str(page_info["likes"])+" likes"
	fb_checkins=str(page_info["checkins"])+" checkins"

	if len(data_fb)==0:
		# print d3graph_fb+"\n"
		d3graph_fb="<b><i>No Facebook data for this handle</i></b>"
		# print tree_fb+"\n"
		tree_fb="<b><i>No Facebook data for this handle</i></b>"
		# print cloud_fb+"\n"
		cloud_fb="<b><i>No Facebook data for this handle</i></b>"

	if len(data_tw)==0:
		# print d3graph_tw+"\n"
		d3graph_tw="<b><i>No Twitter data for this handle</i></b>"
		# print tree_tw+"\n"
		tree_tw="<b><i>No Twitter data for this handle</i></b>"
		# print cloud_tw+"\n"
		cloud_tw="<b><i>No Twitter data for this handle</i></b>"

	context = RequestContext(request, {
		'cover_image': cover_image_src,
		'dashboard_name': title,
		'pick_account':pick_div,
		'graph_tweets':d3graph_tw,
		'graph_facebook':d3graph_fb,
		'graph_facebook_items': graph_facebook_items,
		'graph_twitter_items': graph_twitter_items,
		'graph_tree_twitter':tree_tw,
		'graph_tree_facebook':tree_fb,
		'twitter_handle':handle,
		'facebook_handle':handle,
		'compare_to_graph1_twitter':comp_div_twitter1,
		'compare_to_graph1_facebook':comp_div_facebook1,
		'victimisation_twitter':key_div_twitter1,
		'victimisation_facebook':key_div_facebook1,
		'victim_current_key_twitter':word,
		'victim_current_key_facebook':word,
		'wordcloud_twitter':cloud_tw,
		'wordcloud_twitter_list':cloud_list_tw,
		'wordcloud_facebook':cloud_fb,
		'wordcloud_facebook_list':cloud_list_fb,
		'dept_fb_name':fb_name,
		'dept_link':fb_link,
		'dept_tw_name':tw_name,
		'dept_tw_link':tw_link,
		'dept_website':website,
		'dept_phone':fb_phone,
		'dept_likes':fb_likes,
		'dept_checkins':fb_checkins,
		'sentiment_count': inject
	})

	return HttpResponse(template.render(context))