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)
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))
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)
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)
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)
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)