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')
class CommentableModelMixin(models.Model): comments_count = None fetch_comments = get_improperly_configured_field('facebook_comments')
""" 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):