From 5dba8a65ae8cd990c47dbb50395db73a9bb7db9d Mon Sep 17 00:00:00 2001 From: Neil Williams Date: Sat, 15 Sep 2012 17:37:38 -0700 Subject: [PATCH] builders: Rework SimpleBuilder for use with simple psuedo-things. --- r2/r2/models/builder.py | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/r2/r2/models/builder.py b/r2/r2/models/builder.py index 89d83780c..ea90a3a5f 100755 --- a/r2/r2/models/builder.py +++ b/r2/r2/models/builder.py @@ -472,27 +472,35 @@ class IDBuilder(QueryBuilder): return done, new_items -class FakeThing(object): - def __init__(self, name): - self._id = name - class SimpleBuilder(IDBuilder): def thing_lookup(self, names): - return [FakeThing(name) for name in names] + return names def init_query(self): - names = list(tup(self.query)) - self.names = self._get_after(names, self.after, self.reverse) + items = list(tup(self.query)) + + if self.reverse: + items.reverse() + + if self.after: + for i, item in enumerate(items): + if item._id == self.after: + self.names = items[i + 1:] + break + else: + self.names = () + else: + self.names = items def get_items(self): items, prev, next, bcount, acount = IDBuilder.get_items(self) - items = [i._id for i in items] if prev: prev = prev._id if next: next = next._id return (items, prev, next, bcount, acount) + class SearchBuilder(IDBuilder): def __init__(self, query, wrap=Wrapped, keep_fn=None, skip=False, skip_deleted_authors=True, **kw):