Ejemplo n.º 1
0
from facebook_api.models import MASTER_DATABASE, FacebookGraphIDModel, FacebookGraphTimelineManager
from facebook_api.utils import UnknownResourceType, get_improperly_configured_field, get_or_create_from_small_resource
from facebook_applications.models import Application
from facebook_pages.models import Page
from facebook_users.models import User

log = logging.getLogger('facebook_posts')

if 'facebook_comments' in settings.INSTALLED_APPS:
    from facebook_comments.models import Comment
    from facebook_comments.mixins import CommentableModelMixin

    wall_comments = generic.GenericRelation(
        Comment, content_type_field='owner_content_type', object_id_field='owner_id', verbose_name=u'Comments')
else:
    wall_comments = get_improperly_configured_field('facebook_comments', True)

    class CommentableModelMixin(models.Model):
        comments_count = None
        fetch_comments = get_improperly_configured_field('facebook_comments')


class PostRemoteManager(FacebookGraphTimelineManager):

    def update_count_and_get_posts(self, instances, page, *args, **kwargs):
        page.posts_count = page.wall_posts.count()
        page.save()
        return instances

    @atomic
    @fetch_all(return_all=update_count_and_get_posts, paging_next_arg_name='until')
Ejemplo n.º 2
0
 class CommentableModelMixin(models.Model):
     comments_count = None
     fetch_comments = get_improperly_configured_field('facebook_comments')
Ejemplo n.º 3
0
"""
import logging
import re

from django.conf import settings
from django.core.exceptions import ImproperlyConfigured
from django.db import models
from facebook_api import fields
from facebook_api.decorators import atomic
from facebook_api.models import FacebookGraphIDModel, FacebookGraphManager
from facebook_api.utils import get_improperly_configured_field


if 'facebook_photos' in settings.INSTALLED_APPS:
    from facebook_photos.models import Album
    albums = get_improperly_configured_field('facebook_photos', True)
    # albums = generic.GenericRelation(
    #     Album, content_type_field='author_content_type', object_id_field='author_id', verbose_name=u'Albums')

    def fetch_albums(self, *args, **kwargs):
        return Album.remote.fetch_page(page=self, *args, **kwargs)
else:
    albums = get_improperly_configured_field('facebook_photos', True)
    fetch_albums = get_improperly_configured_field('facebook_photos')

log = logging.getLogger('facebook_pages')

PAGES_FANS_USER_ID = getattr(settings, 'FACEBOOK_PAGES_FANS_USER_ID', '')


class FacebookPageGraphManager(FacebookGraphManager):