def share(provider_id, debate_id): if provider_id not in ["facebook", "twitter"]: abort(404) try: thread = cdw.threads.with_id(debate_id) except: abort(404) record = ShareRecord(provider=provider_id, debateId=debate_id) record.save() config = current_app.config lr = config["LOCAL_REQUEST"] question_id = str(thread.question.id) url = "%s/questions/%s/debates/%s" % (lr, question_id, debate_id) username = config["CDW"]["bitly"]["username"] api_key = config["CDW"]["bitly"]["api_key"] b = bitlyapi.BitLy(username, api_key) res = b.shorten(longUrl=url) short_url = res["url"] if provider_id == "facebook": msg = "I just debated at CDW" # TODO: Ugly, make nicer app_id = config["SOCIAL_PROVIDERS"]["facebook"]["oauth"]["consumer_key"] fb_url = ( "http://www.facebook.com/dialog/feed?" "app_id=%s" "&link=%s" "&name=%s" "&description=%s" "&message=%s" "&redirect_uri=%s" "&display=page" ) redirect_url = urllib.quote_plus("%s/share/close" % lr) fb_url = fb_url % ( app_id, urllib.quote_plus(url), urllib.quote_plus("ILSTU Views"), urllib.quote_plus("A place for civil debate"), urllib.quote_plus(msg), redirect_url, ) current_app.logger.debug(fb_url) return redirect(fb_url) if provider_id == "twitter": msg = "I just debated on ILSTU Views. %s" % short_url msg = urllib.quote_plus(msg) return redirect("http://twitter.com/home?status=%s" % msg)
def share(provider_id, debate_id): if provider_id not in ['facebook','twitter']: abort(404) try: thread = cdw.threads.with_id(debate_id) except: abort(404) record = ShareRecord(provider=provider_id, debateId=debate_id) record.save() config = current_app.config lr = config['LOCAL_REQUEST'] question_id = str(thread.question.id) url = "%s/questions/%s/debates/%s" % (lr, question_id, debate_id) username = config['CDW']['bitly']['username'] api_key = config['CDW']['bitly']['api_key'] b = bitlyapi.BitLy(username, api_key) res = b.shorten(longUrl=url) short_url = res['url'] if provider_id == 'facebook': msg = "I just debated at CDW" # TODO: Ugly, make nicer app_id = config['SOCIAL_PROVIDERS']['facebook']['oauth']['consumer_key'] fb_url = "http://www.facebook.com/dialog/feed?" \ "app_id=%s" \ "&link=%s" \ "&name=%s" \ "&description=%s" \ "&message=%s" \ "&redirect_uri=%s" \ "&display=page" redirect_url = urllib.quote_plus('%s/share/close' % lr) fb_url = fb_url % (app_id, urllib.quote_plus(url), urllib.quote_plus('The Wall'), urllib.quote_plus('A place for civil debate'), urllib.quote_plus(msg), redirect_url) current_app.logger.debug(fb_url) return redirect(fb_url) if provider_id == 'twitter': msg = "I just debated on The Wall. %s" % short_url msg = urllib.quote_plus(msg) return redirect('http://twitter.com/home?status=%s' % msg)
def share(provider_id, debate_id): if provider_id not in ['facebook', 'twitter']: abort(404) try: thread = cdw.threads.with_id(debate_id) except: abort(404) record = ShareRecord(provider=provider_id, debateId=debate_id) record.save() config = current_app.config lr = config['LOCAL_REQUEST'] question_id = str(thread.question.id) url = "%s/questions/%s/debates/%s" % (lr, question_id, debate_id) username = config['CDW']['bitly']['username'] api_key = config['CDW']['bitly']['api_key'] b = bitlyapi.BitLy(username, api_key) res = b.shorten(longUrl=url) short_url = res['url'] if provider_id == 'facebook': msg = "I just debated at CDW" # TODO: Ugly, make nicer app_id = config['SOCIAL_PROVIDERS']['facebook']['oauth'][ 'consumer_key'] fb_url = "http://www.facebook.com/dialog/feed?" \ "app_id=%s" \ "&link=%s" \ "&name=%s" \ "&description=%s" \ "&message=%s" \ "&redirect_uri=%s" \ "&display=page" redirect_url = urllib.quote_plus('%s/share/close' % lr) fb_url = fb_url % (app_id, urllib.quote_plus(url), urllib.quote_plus('ILSTU Views'), urllib.quote_plus('A place for civil debate'), urllib.quote_plus(msg), redirect_url) current_app.logger.debug(fb_url) return redirect(fb_url) if provider_id == 'twitter': msg = "I just debated on ILSTU Views. %s" % short_url msg = urllib.quote_plus(msg) return redirect('http://twitter.com/home?status=%s' % msg)
def stats(): def kiosk_users(): for u in cdw.users.with_fields(origin='kiosk'): yield u total_kiosk_users = cdw.users.with_fields(origin='kiosk').count() total_web_users = cdw.users.with_fields(origin='web').count() total_users_with_photos = cdw.users.with_fields( webProfilePicture__not__contains='avatar', origin='web').count() total_users_sms_subscribes = cdw.users.with_fields(threadSubscription__exists=1).count() uses_both = [] for u in kiosk_users(): try: web_user = cdw.users.with_fields(origin='web', phoneNumber=u.phoneNumber).first() if web_user and web_user.phoneNumber not in uses_both: uses_both.append(web_user.phoneNumber) except: pass total_threads = cdw.threads.all().count() total_threads_kiosk = cdw.threads.with_fields(origin='kiosk').count() total_threads_web = cdw.threads.with_fields(origin='web').count() total_messages = cdw.posts.all().count() average_responses = float(total_messages) / float(total_threads) total_messages_kiosk = cdw.posts.with_fields(origin='kiosk').count() total_messages_web = cdw.posts.with_fields(origin='web').count() total_messages_sms = cdw.posts.with_fields(origin='cell').count() total_likes = 0 for p in cdw.posts.with_fields(likes__gt=0): total_likes += p.likes from cdw.models import ShareRecord facebook_likes = ShareRecord.objects(provider='facebook').count() twitter_likes = ShareRecord.objects(provider='twitter').count() return render_template("admin/stats.html", section_selector='stats', page_selector='index', uses_both=len(uses_both), total_web_users=total_web_users, total_kiosk_users=total_kiosk_users, total_users_with_photos=total_users_with_photos, total_users_sms_subscribes=total_users_sms_subscribes, total_threads=total_threads, total_messages=total_messages, total_threads_kiosk=total_threads_kiosk, total_threads_web=total_threads_web, total_messages_kiosk=total_messages_kiosk, total_messages_web=total_messages_web, total_messages_sms=total_messages_sms, total_likes=total_likes, facebook_likes=facebook_likes, twitter_likes=twitter_likes, average_responses=average_responses)