当前位置: 首页>>代码示例>>Python>>正文


Python Subreddit.user_subreddits方法代码示例

本文整理汇总了Python中r2.models.Subreddit.user_subreddits方法的典型用法代码示例。如果您正苦于以下问题:Python Subreddit.user_subreddits方法的具体用法?Python Subreddit.user_subreddits怎么用?Python Subreddit.user_subreddits使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在r2.models.Subreddit的用法示例。


在下文中一共展示了Subreddit.user_subreddits方法的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: srids_from_site

# 需要导入模块: from r2.models import Subreddit [as 别名]
# 或者: from r2.models.Subreddit import user_subreddits [as 别名]
def srids_from_site(user, site):
    if not isinstance(site, FakeSubreddit):
        srids = {site._id}
    elif isinstance(site, MultiReddit):
        srids = set(site.sr_ids)
    elif user and not isinstance(user, FakeAccount):
        srids = set(Subreddit.user_subreddits(user, ids=True) + [""])
    else:
        srids = set(Subreddit.user_subreddits(None, ids=True) + [""])
    return srids
开发者ID:AD42,项目名称:reddit,代码行数:12,代码来源:promote.py

示例2: srnames_from_site

# 需要导入模块: from r2.models import Subreddit [as 别名]
# 或者: from r2.models.Subreddit import user_subreddits [as 别名]
def srnames_from_site(user, site):
    if not isinstance(site, FakeSubreddit):
        srnames = {site.name}
    elif isinstance(site, MultiReddit):
        srnames = {sr.name for sr in site.srs}
    elif user and not isinstance(user, FakeAccount):
        srnames = {sr.name for sr in Subreddit.user_subreddits(user, ids=False)}
        srnames.add(Frontpage.name)
    else:
        srnames = {sr.name for sr in Subreddit.user_subreddits(None, ids=False)}
        srnames.add(Frontpage.name)
    return srnames
开发者ID:APerson241,项目名称:reddit,代码行数:14,代码来源:promote.py

示例3: filter_links

# 需要导入模块: from r2.models import Subreddit [as 别名]
# 或者: from r2.models.Subreddit import user_subreddits [as 别名]
def filter_links(links, filter_spam = False, multiple = True):
    # run the list through a builder to remove any that the user
    # isn't allowed to see
    from pylons import c
    from r2.models import IDBuilder, Link, Subreddit, NotFound
    links = IDBuilder([link._fullname for link in links],
                      skip = False).get_items()[0]
    if not links:
        return

    if filter_spam:
        # first, try to remove any spam
        links_nonspam = [ link for link in links
                          if not link._spam ]
        if links_nonspam:
            links = links_nonspam

    # if it occurs in one or more of their subscriptions, show them
    # that one first
    subs = set(Subreddit.user_subreddits(c.user, limit = None))
    def cmp_links(a, b):
        if a.sr_id in subs and b.sr_id not in subs:
            return -1
        elif a.sr_id not in subs and b.sr_id in subs:
            return 1
        else:
            return cmp(b._hot, a._hot)
    links = sorted(links, cmp = cmp_links)

    # among those, show them the hottest one
    return links if multiple else links[0]
开发者ID:9peppe,项目名称:reddit,代码行数:33,代码来源:utils.py

示例4: __init__

# 需要导入模块: from r2.models import Subreddit [as 别名]
# 或者: from r2.models.Subreddit import user_subreddits [as 别名]
    def __init__(self):
        Wrapped.__init__(self)

        my_reddits = []
        sr_ids = Subreddit.user_subreddits(c.user if c.user_is_loggedin else None)
        if sr_ids:
            my_reddits = Subreddit._byID(sr_ids, True,
                                         return_dict = False)
            my_reddits.sort(key = lambda sr: sr.name.lower())

        drop_down_buttons = []    
        for sr in my_reddits:
            drop_down_buttons.append(SubredditButton(sr))

        #leaving the 'home' option out for now
        #drop_down_buttons.insert(0, NamedButton('home', sr_path = False,
        #                                        css_class = 'top-option',
        #                                        dest = '/'))
        drop_down_buttons.append(NamedButton('edit', sr_path = False,
                                             css_class = 'bottom-option',
                                             dest = '/reddits/'))
        self.sr_dropdown = SubredditMenu(drop_down_buttons,
                                         title = _('my reddits'),
                                         type = 'srdrop')

    
        pop_reddits = Subreddit.default_srs(c.content_langs, limit = 30)        
        buttons = [SubredditButton(sr) for sr in c.recent_reddits]
        for sr in pop_reddits:
            if sr not in c.recent_reddits:
                buttons.append(SubredditButton(sr))
    
        self.sr_bar = NavMenu(buttons, type='flatlist', separator = '-',
                                        _id = 'sr-bar')
开发者ID:vin,项目名称:reddit,代码行数:36,代码来源:pages.py

示例5: srnames_from_site

# 需要导入模块: from r2.models import Subreddit [as 别名]
# 或者: from r2.models.Subreddit import user_subreddits [as 别名]
def srnames_from_site(user, site, include_subscriptions=True):
    is_logged_in = user and not isinstance(user, FakeAccount)
    over_18 = is_site_over18(site)
    srnames = set()

    if not isinstance(site, FakeSubreddit):
        srnames.add(site.name)
    elif isinstance(site, MultiReddit):
        srnames = srnames | {sr.name for sr in site.srs}
    else:
        srnames.add(Frontpage.name)

        if is_logged_in and include_subscriptions:
            subscriptions = Subreddit.user_subreddits(user, ids=False)

            # only use subreddits that aren't quarantined and have the same
            # age gate as the subreddit being viewed.
            subscriptions = filter(lambda sr: not sr.quarantine and sr.over_18 == over_18, subscriptions)

            subscription_srnames = {sr.name for sr in subscriptions}

            # remove any subscriptions that may have nsfw ads targeting
            # them because they're apart of a nsfw collection.
            nsfw_collection_srnames = get_nsfw_collections_srnames()

            if not over_18:
                subscription_srnames = subscription_srnames - nsfw_collection_srnames

            srnames = srnames | subscription_srnames

    return srnames
开发者ID:travmi,项目名称:reddit,代码行数:33,代码来源:promote.py

示例6: nav

# 需要导入模块: from r2.models import Subreddit [as 别名]
# 或者: from r2.models.Subreddit import user_subreddits [as 别名]
    def nav(self):
        sr_ids = Subreddit.user_subreddits(c.user) if c.default_sr else [c.site._id]
        cloud = Tag.tag_cloud_for_subreddits(sr_ids)

        buttons =[]
        for tag, weight in cloud:
            buttons.append(NavButton(tag.name, tag.name, css_class=self.numbers[weight - 1]))

        return NavMenu(buttons, type="flatlist", separator=' ', base_path='/tag/')
开发者ID:EmileKroeger,项目名称:lesswrong,代码行数:11,代码来源:pages.py

示例7: init_builder

# 需要导入模块: from r2.models import Subreddit [as 别名]
# 或者: from r2.models.Subreddit import user_subreddits [as 别名]
 def init_builder(self):
     user = c.user if c.user_is_loggedin else None
     sr_ids = Subreddit.user_subreddits(user)
     return UnbannedCommentBuilder(
         self.query(),
         sr_ids,
         num = 5,
         wrap = RecentItems.wrap_thing,
         skip = True
     )
开发者ID:EmileKroeger,项目名称:lesswrong,代码行数:12,代码来源:pages.py

示例8: get_promotion_list

# 需要导入模块: from r2.models import Subreddit [as 别名]
# 或者: from r2.models.Subreddit import user_subreddits [as 别名]
def get_promotion_list(user, site):
    if not isinstance(site, FakeSubreddit):
        srids = set([site._id])
    elif isinstance(site, MultiReddit):
        srids = set(site.sr_ids)
    elif user and not isinstance(user, FakeAccount):
        srids = set(Subreddit.reverse_subscriber_ids(user) + [""])
    else:
        srids = set(Subreddit.user_subreddits(None, ids=True) + [""])

    tuples = get_promotion_list_cached(srids)
    return [PromoTuple(*t) for t in tuples]
开发者ID:caseypatrickdriscoll,项目名称:reddit,代码行数:14,代码来源:promote.py

示例9: get_promotion_list

# 需要导入模块: from r2.models import Subreddit [as 别名]
# 或者: from r2.models.Subreddit import user_subreddits [as 别名]
def get_promotion_list(user, site):
    # site is specified, pick an ad from that site
    if not isinstance(site, FakeSubreddit):
        srids = set([site._id])
    elif isinstance(site, MultiReddit):
        srids = set(site.sr_ids)
    # site is Fake, user is not.  Pick based on their subscriptions.
    elif user and not isinstance(user, FakeAccount):
        srids = set(Subreddit.reverse_subscriber_ids(user) + [""])
    # both site and user are "fake" -- get the default subscription list
    else:
        srids = set(Subreddit.user_subreddits(None, True) + [""])

    return get_promotions_cached(srids)
开发者ID:cooiky,项目名称:reddit,代码行数:16,代码来源:promote.py

示例10: assign_trial

# 需要导入模块: from r2.models import Subreddit [as 别名]
# 或者: from r2.models.Subreddit import user_subreddits [as 别名]
def assign_trial(account, ip, slash16):
    from r2.models import Jury, Subreddit, Trial
    from r2.lib.db import queries

    defendants_voted_upon = []
    defendants_assigned_to = []
    for jury in Jury.by_account(account):
        defendants_assigned_to.append(jury._thing2_id)
        if jury._name != '0':
            defendants_voted_upon.append(jury._thing2_id)

    subscribed_sr_ids = Subreddit.user_subreddits(account, ids=True, limit=None)

    # Pull defendants, except ones which already have lots of juryvotes
    defs = Trial.all_defendants(quench=True)

    # Filter out defendants outside this user's subscribed SRs
    defs = filter (lambda d: d.sr_id in subscribed_sr_ids, defs)

    # Dictionary of sr_id => SR for all defendants' SRs
    srs = Subreddit._byID(set([ d.sr_id for d in defs ]))

    # Dictionary of sr_id => eligibility bool
    submit_srs = {}
    for sr_id, sr in srs.iteritems():
        submit_srs[sr_id] = sr.can_submit(account) and not sr._spam

    # Filter out defendants with ineligible SRs
    defs = filter (lambda d: submit_srs.get(d.sr_id), defs)

    likes = queries.get_likes(account, defs)

    if not g.debug:
        # Filter out things that the user has upvoted or downvoted
        defs = filter (lambda d: likes.get((account, d)) is None, defs)

    # Prefer oldest trials
    defs.sort(key=lambda x: x._date)

    for defendant in defs:
        sr = srs[defendant.sr_id]

        if voir_dire(account, ip, slash16, defendants_voted_upon, defendant, sr):
            if defendant._id not in defendants_assigned_to:
                j = Jury._new(account, defendant)

            return defendant

    return None
开发者ID:XieConnect,项目名称:reddit,代码行数:51,代码来源:trial_utils.py

示例11: default_queries

# 需要导入模块: from r2.models import Subreddit [as 别名]
# 或者: from r2.models.Subreddit import user_subreddits [as 别名]
def default_queries():
    from r2.models import Link, Subreddit
    from r2.lib.db.operators import desc
    from copy import deepcopy

    queries = []

    q = Link._query(Link.c.sr_id == Subreddit.user_subreddits(None), sort=desc("_hot"), limit=37)

    queries.append(q)
    # add a higher limit one too
    q = deepcopy(q)
    q._limit = 75
    queries.append(q)

    return queries
开发者ID:rajbot,项目名称:tikical,代码行数:18,代码来源:stats.py

示例12: __init__

# 需要导入模块: from r2.models import Subreddit [as 别名]
# 或者: from r2.models.Subreddit import user_subreddits [as 别名]
    def __init__(self, checkboxes = True):
        Wrapped.__init__(self)

        self.checkboxes = checkboxes
        if checkboxes:
            self.title = _('Customize your reddit')
            self.subtitle = _('Select which communities you want to see')
        else:
            self.title = _('Other reddit communities')
            self.subtitle = 'Visit your subscribed reddits (in bold) or explore new ones'
        self.create_link = ('/reddits/', menu.more)
        self.more_link   = ('/reddits/create', _('create'))

        my_reddits = []
        sr_ids = Subreddit.user_subreddits(c.user if c.user_is_loggedin else None)
        if sr_ids:
            my_reddits = Subreddit._byID(sr_ids, True,
                                         return_dict = False)
            my_reddits.sort(key = lambda sr: sr._downs, reverse = True)

        display_reddits = my_reddits[:g.num_side_reddits]
        
        #remove the current reddit
        display_reddits = filter(lambda x: x != c.site, display_reddits)

        pop_reddits = Subreddit.default_srs(c.content_langs, limit = g.num_side_reddits)
        #add english reddits to the list
        if c.content_langs != 'all' and 'en' not in c.content_langs:
            en_reddits = Subreddit.default_srs(['en'])
            pop_reddits += [sr for sr in en_reddits if sr not in pop_reddits]

        for sr in pop_reddits:
            if len(display_reddits) >= g.num_side_reddits:
                break

            if sr != c.site and sr not in display_reddits:
                display_reddits.append(sr)

        col1, col2 = [], []
        cur_col, other = col1, col2
        for sr in display_reddits:
            cur_col.append((sr, sr in my_reddits))
            cur_col, other = other, cur_col

        self.cols = ((col1, col2))
        self.mine = my_reddits
开发者ID:cmak,项目名称:reddit,代码行数:48,代码来源:pages.py

示例13: for_user

# 需要导入模块: from r2.models import Subreddit [as 别名]
# 或者: from r2.models.Subreddit import user_subreddits [as 别名]
 def for_user(cls, account):
     """Return a new AccountSRPrefs obj populated with user's data."""
     prefs = cls()
     multis = LabeledMulti.by_owner(account)
     multi_srs = set(chain.from_iterable(multi.srs for multi in multis))
     feedback = AccountSRFeedback.for_user(account)
     # subscriptions and srs in the user's multis become likes
     subscriptions = Subreddit.user_subreddits(account, limit=None)
     prefs.likes.update(utils.to36(sr_id) for sr_id in subscriptions)
     prefs.likes.update(sr._id36 for sr in multi_srs)
     # recent clicks on explore tab items are also treated as likes
     prefs.likes.update(feedback[CLICK])
     # dismissed recommendations become dislikes
     prefs.dislikes.update(feedback[DISMISS])
     # dislikes take precedence over likes
     prefs.likes = prefs.likes.difference(prefs.dislikes)
     # recently recommended items won't be shown again right away
     prefs.recent_views.update(feedback[VIEW])
     return prefs
开发者ID:pra85,项目名称:reddit,代码行数:21,代码来源:recommend.py


注:本文中的r2.models.Subreddit.user_subreddits方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。