this repo has no description
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Add support for Accept-Language

+19 -9
+2 -2
feeds/__init__.py
··· 9 9 for feed in self.feeds.values(): 10 10 feed.process(commit) 11 11 12 - def serve(self, feed_uri, limit, offset): 12 + def serve(self, feed_uri, limit, offset, langs): 13 13 feed = self.feeds.get(feed_uri) 14 14 if feed is not None: 15 - return feed.serve(limit, offset) 15 + return feed.serve(limit, offset, langs)
+15 -6
feeds/rapidfire.py
··· 51 51 "delete from posts where strftime('%s', create_ts) < strftime('%s', 'now', '-15 minutes')" 52 52 ) 53 53 54 - def serve(self, limit, offset): 55 - cur = self.db_cnx.execute( 56 - "select uri from posts order by create_ts desc limit :limit offset :offset", 57 - dict(limit=limit, offset=offset) 58 - ) 59 - return [uri for (uri,) in cur] 54 + def serve(self, limit, offset, langs): 55 + if '*' in langs: 56 + cur = self.db_cnx.execute( 57 + "select uri from posts order by create_ts desc limit :limit offset :offset", 58 + dict(limit=limit, offset=offset) 59 + ) 60 + return [uri for (uri,) in cur] 61 + else: 62 + lang_values = list(langs.values()) 63 + lang_selects = ['select uri, create_ts from posts where lang = ?'] * len(lang_values) 64 + lang_clause = ' union '.join(lang_selects) 65 + cur = self.db_cnx.execute(( 66 + lang_clause + ' order by create_ts desc limit ? offset ?' 67 + ), [*lang_values, limit, offset]) 68 + return [uri for (uri, create_ts) in cur]
+2 -1
feedweb.py
··· 42 42 offset = 0 43 43 44 44 feed_uri = request.args['feed'] 45 - posts = manager.serve(feed_uri, limit, offset) 45 + langs = request.accept_languages 46 + posts = manager.serve(feed_uri, limit, offset, langs) 46 47 offset += len(posts) 47 48 48 49 return dict(cursor=str(offset), feed=[dict(post=uri) for uri in posts])