Fixed open graph handler for user

This commit is contained in:
Fergal Moran
2012-10-19 13:22:10 +01:00
parent 559956200a
commit be144be7cf
6 changed files with 24 additions and 10 deletions

View File

@@ -1,3 +1,9 @@
import os
if os.name == 'posix':
LOG_FILE = '/tmp/dss.log'
else:
LOG_FILE = 'c:\\temp\\dss.log'
LOGGING = {
'version': 1,
'formatters': {
@@ -17,7 +23,7 @@ LOGGING = {
'file': {
'level': 'DEBUG',
'class': 'logging.FileHandler',
'filename': '/tmp/dss.lgo',
'filename': LOG_FILE,
'formatter': 'simple'
},
},

View File

@@ -1,6 +1,7 @@
import urlparse
from allauth.socialaccount.models import SocialAccount
from django.contrib.auth.models import User
from django.contrib.sites.models import Site
from django.core.urlresolvers import reverse
from django.db import models
from django.db.models.signals import post_save
@@ -96,6 +97,9 @@ class UserProfile(_BaseModel):
return urlparse.urljoin(settings.STATIC_URL, "img/default-avatar-32.png")
def get_profile_url(self):
return 'http://%s/user/%s' % (Site.objects.get_current().domain, self.profile_slug)
def save(self, force_insert=False, force_update=False, using=None):
return super(UserProfile, self).save(force_insert, force_update, using)

View File

@@ -10,10 +10,10 @@ from dss import settings
from spa.models.Mix import Mix
from spa.models.UserProfile import UserProfile
from allauth.socialaccount.models import SocialToken
import logging
logger = logging.getLogger(__name__)
class SocialHandler(object):
import logging
logger = logging.getLogger(__name__)
def __init__(self, api_name="v1"):
self.api_name = api_name
@@ -67,8 +67,8 @@ def mix(request, args):
extras = {
"description": mix.title,
"image_url": image,
"audio_url": 'http://%s:%s%s' % (Site.objects.get_current().domain, request.META['SERVER_PORT'], audio_url),
"mix_url": 'http://%s:%s%s' % (Site.objects.get_current().domain, request.META['SERVER_PORT'], mix_url)
"audio_url": 'http://%s%s' % (Site.objects.get_current().domain, audio_url),
"mix_url": 'http://%s%s' % (Site.objects.get_current().domain, mix_url)
}
payload = dict(default.items() + extras.items())
response = render_to_response(
@@ -80,19 +80,21 @@ def mix(request, args):
def user(request, args):
try:
user = UserProfile.objects.get(profile_slug=args['mix_id'])
user = UserProfile.objects.get(profile_slug=args['user_id'])
except UserProfile.DoesNotExist:
raise Http404
image = user.get_avatar_image()
profile_url = user.get_profile_url()
default = _getPayload(request)
extras = {
"description": user.nice_name,
"profile_url": profile_url,
"image_url": image,
}
payload = dict(default.items() + extras.items())
response = render_to_response(
'inc/facebook/mix.html',
'inc/facebook/user.html',
payload,
context_instance=RequestContext(request)
)

View File

@@ -1,3 +1,4 @@
from django.http import HttpResponse
from django.shortcuts import render_to_response, redirect
from django.template.context import RequestContext
from core.utils.string import lreplace, rreplace
@@ -11,7 +12,6 @@ def _app(request):
def app(request):
logger.error("App request hit")
return HttpResponse('Hello Sailor')
if 'HTTP_USER_AGENT' in request.META:
if request.META['HTTP_USER_AGENT'].startswith('facebookexternalhit'):
logger.debug("Redirecting facebook hit")

View File

@@ -1,5 +1,7 @@
<!DOCTYPE HTML>
<html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:og="http://ogp.me/ns#"
xmlns:fb="https://www.facebook.com/2008/fbml">
<head>
<meta property="fb:app_id" content="{{ app_id }}" />
<meta property="og:url" content="{{ mix_url }}/" />

View File

@@ -3,7 +3,7 @@
<head>
<title>Deep South Sounds User Profile</title>
<meta property="fb:app_id" content="{{ app_id }}" />
<meta property="og:type" content="deepsouthsounds:user" />
<meta property="og:url" content="{{ profile_url }}/" />
<meta property="og:title" content="{{ description }}" />
<meta property="og:image" content="{{ image_url }}" />
</head>