Beispiel #1
0
    def __init__(self, username, password):
        self.username = username
        self.password = password

        self.recent_timeline = []
        self.self_tweet = None
        self.trends = {}

        self.feeds = []
        self.feeds_by_name = {}
        self.unread_counts = []

        e = self.events = Storage(
            (name, Delegate()) for name in self.event_names)

        e.following += self.on_following
        e.trends += self.on_trends
        e.on_unread_counts += self.on_unread_counts
        e.recent_timeline += self.on_recent_timeline
        e.self_tweet += self.on_self_tweet
        e.on_feeds += self.on_feeds
        e.on_change_view += self.on_change_view
        e.on_view += self.on_view_changed

        def render_tweets(tweets, render_context):
            return htmlize_tweets(self, tweets)

        self.social_feed = SocialFeed('twitter_' + self.username,
                                      'twitter_' + self.username,
                                      self.get_tweet_feed, render_tweets,
                                      lambda: self.account.set_infobox_dirty)
Beispiel #2
0
    def test_feed_item_deleted(self):
        first_ad_spot = 2
        with fakeads(first_ad_index=first_ad_spot):

            ids = None

            def get_content():
                return [S(id=c) for c in ids]

            ids_1 = [1, 2, 3, 4, 5]

            def getitem(t, ctx):
                return t

            sf = SocialFeed('foo_test', 'feed', get_content, getitem)

            # ensure ads are inserted
            sf.new_ids(ids_1)
            ids = ids_1
            feed = list(sf.get_iterator())

            def show():
                #print '$$$$ feed:
                from pprint import pprint
                pprint(feed)

            show()
            assert feed_trends.isad(feed[2]), feed[2]

            # ensure the ad moves as new items come in
            ids_2 = [6, 7, 8, 1, 2, 4, 5]
            sf.new_ids(ids_2)
            ids = ids_2

            feed = list(sf.get_iterator())
            show()
            assert feed_trends.isad(feed[5])

            # ensure that new ads appear
            ids_3 = [11, 12, 13, 14, 15, 16, 6, 7, 8, 1, 2, 4, 5]
            sf.new_ids(ids_3)
            ids = ids_3

            feed = list(sf.get_iterator())
            show()
            assert feed_trends.isad(feed[1]), feed[1]
            assert feed_trends.isad(feed[-3])

            # no more than 2 ads will ever appear
            ids_4 = [101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111
                     ] + ids_3
            sf.new_ids(ids_4)
            ids = ids_4
            feed = list(sf.get_iterator())
            self.assertEquals(
                2, sum(1 if feed_trends.isad(a) else 0 for a in feed))
Beispiel #3
0
    def __init__(self, acct):
        self.stream_request_outstanding = True
        self.acct = acct
        self._init_apis()
        self.last_stream = True
        self.last_filter_key = self.filter_key
        EventMixin.__init__(self)

        self.social_feed = SocialFeed('facebook_' + self.acct.username,
                                      'newsfeed', self.get_post_feed,
                                      self.htmlize_posts,
                                      self.set_infobox_dirty)
Beispiel #4
0
    def __init__(self, **options):
        self.time_offset = None
        options['password'] = None
        oauth_util.OAuthAccountBase.__init__(self, **options)

        self.connection = None
        self._dirty = False

        SocialNetwork.__init__(self, **options)
        self.social_feed = SocialFeed('linkedin_' + self.username,
                                      'linkedin_' + self.username,
                                      self.get_newsfeed_iter,
                                      self.generate_newsfeed_html,
                                      lambda: self.set_infobox_dirty)
Beispiel #5
0
    def __init__(self, tweets):
        self.recent_timeline = tweets

        from twitter.twitter import htmlize_tweets
        username = '******'
        mock_protocol = S(username=username,
                          trends=[],
                          unread_counts=[],
                          self_tweet=None)
        id = 'twitter_' + username
        context = 'twitter_feed'
        self.social_feed = SocialFeed(
            id, context, self.get_tweet_feed,
            lambda tweets, ctx: htmlize_tweets(mock_protocol, tweets))

        ids = [t['id'] for t in self.recent_timeline]
        self.social_feed.new_ids(ids)
Beispiel #6
0
    def __init__(self, *a, **k):
        common.Protocol.StateMixin.__init__(self)
        oauth_util.OAuthAccountBase.__init__(self, **k)

        self.count = 0
        self.connection = None
        self._dirty = False

        filters = k.pop('filters', {})
        self.filters = dict(
            indicators=dict(
                zip(
                    self.indicators_keys,
                    filters.get('indicators',
                                [True] * len(self.indicators_keys)))),
            feed=dict(
                zip(self.feed_keys,
                    filters.get('feed', [True] * len(self.feed_keys)))),
        )

        self.header_funcs = (
            ('Home', self.openurl_Home),
            #            ('Profile',         self.openurl_Profile),
            ('Inbox', self.openurl_Inbox),
            ('Friends', self.openurl_Friends),
            ('Blog', self.openurl_Blog),
            ('Post Bulletin', self.openurl_Post),
        )

        if 'password' not in k:
            k['password'] = None

        social.network.__init__(self, *a, **k)
        self._remove_password = not self.protocol_info()['needs_password']
        if self._remove_password:
            self.password = None

        from social.network import SocialFeed
        self.social_feed = SocialFeed(
            'myspace_' + self.username, 'activities',
            lambda: iter(self.connection.combined_feed()),
            self.htmlize_activities, self._set_dirty)