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


Python Subreddit._by_name方法代码示例

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


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

示例1: set_subreddit

# 需要导入模块: from r2.models import Subreddit [as 别名]
# 或者: from r2.models.Subreddit import _by_name [as 别名]
def set_subreddit():
    #the r parameter gets added by javascript for POST requests so we
    #can reference c.site in api.py
    sr_name = request.environ.get("subreddit", request.POST.get('r'))
    domain = request.environ.get("domain")

    can_stale = request.method.upper() in ('GET', 'HEAD')

    c.site = Frontpage
    if not sr_name:
        #check for cnames
        cname = request.environ.get('legacy-cname')
        if cname:
            sr = Subreddit._by_domain(cname) or Frontpage
            domain = g.domain
            if g.domain_prefix:
                domain = ".".join((g.domain_prefix, domain))
            redirect_to('http://%s%s' % (domain, sr.path), _code=301)
    elif sr_name == 'r':
        #reddits
        c.site = Sub
    elif '+' in sr_name:
        sr_names = sr_name.split('+')
        srs = set(Subreddit._by_name(sr_names, stale=can_stale).values())
        if All in srs:
            c.site = All
        elif Friends in srs:
            c.site = Friends
        else:
            srs = [sr for sr in srs if not isinstance(sr, FakeSubreddit)]
            if len(srs) == 0:
                c.site = MultiReddit([], sr_name)
            elif len(srs) == 1:
                c.site = srs.pop()
            else:
                sr_ids = [sr._id for sr in srs]
                c.site = MultiReddit(sr_ids, sr_name)
    else:
        try:
            c.site = Subreddit._by_name(sr_name, stale=can_stale)
        except NotFound:
            sr_name = chksrname(sr_name)
            if sr_name:
                redirect_to("/reddits/search?q=%s" % sr_name)
            elif not c.error_page and not request.path.startswith("/api/login/") :
                abort(404)

    #if we didn't find a subreddit, check for a domain listing
    if not sr_name and isinstance(c.site, DefaultSR) and domain:
        c.site = DomainSR(domain)

    if isinstance(c.site, FakeSubreddit):
        c.default_sr = True
开发者ID:alexvermeer,项目名称:reddit,代码行数:55,代码来源:reddit_base.py

示例2: run

# 需要导入模块: from r2.models import Subreddit [as 别名]
# 或者: from r2.models.Subreddit import _by_name [as 别名]
 def run(self, path):
     if not self.required and not path:
         return
     adhoc_multi_rx = is_adhoc_multi_rx.match(path)
     if is_multi_rx.match(path):
         return VMultiByPath(self.param, kinds=("m")).run(path)
     elif adhoc_multi_rx:
         sr_strings = adhoc_multi_rx.groups()[0].split("+")
         srs = Subreddit._by_name(sr_strings, stale=True).values()
         return MultiReddit(path, srs)
     else:
         try:
             return Subreddit._by_name(path)
         except NotFound:
             self.set_error(errors.INVALID_SITE_PATH)
开发者ID:KeyserSosa,项目名称:reddit-plugin-adzerk,代码行数:17,代码来源:validator.py

示例3: POST_report

# 需要导入模块: from r2.models import Subreddit [as 别名]
# 或者: from r2.models.Subreddit import _by_name [as 别名]
    def POST_report(self, form, jquery, report_type):
        """Report the thread for violating the rules of reddit."""
        if form.has_errors("type", errors.INVALID_OPTION):
            return

        if c.user._spam or c.user.ignorereports:
            return

        already_reported = LiveUpdateReportsByAccount.get_report(
            c.user, c.liveupdate_event)
        if already_reported:
            self.abort403()

        LiveUpdateReportsByAccount.create(
            c.user, c.liveupdate_event, type=report_type)
        queries.report_event(c.liveupdate_event)

        try:
            default_subreddit = Subreddit._by_name(g.default_sr)
        except NotFound:
            pass
        else:
            not_yet_reported = g.cache.add(
                "lu_reported_" + str(c.liveupdate_event._id), 1, time=3600)
            if not_yet_reported:
                send_system_message(
                    default_subreddit,
                    subject="live thread reported",
                    body=REPORTED_MESSAGE % {
                        "title": c.liveupdate_event.title,
                        "url": "/live/" + c.liveupdate_event._id,
                        "reason": pages.REPORT_TYPES[report_type],
                    },
                )
开发者ID:Safturento,项目名称:reddit-plugin-liveupdate,代码行数:36,代码来源:controllers.py

示例4: add_affinity_variant

# 需要导入模块: from r2.models import Subreddit [as 别名]
# 或者: from r2.models.Subreddit import _by_name [as 别名]
def add_affinity_variant(variant, filename, debug=True):
    """Store related subreddits and similarity scores"""

    # Load file and split out affinity data
    with open(filename, 'rb') as f:
        sr_affinity_data = []
        for line in f:
            sr_affinity_data.append(line.strip().split('\x01'))

    # Group similar subreddits (and scores) under the original subreddit
    subreddit_similarity = {}
    for sr_name, similar_subreddit, similarity in sr_affinity_data:
        if subreddit_similarity.get(sr_name):
            subreddit_similarity[sr_name][similar_subreddit] = similarity
        else:
            similar_subreddit_dict = {similar_subreddit: similarity}
            subreddit_similarity[sr_name] = similar_subreddit_dict

    # Add subreddit and their similar subreddits/scores to SubredditAffinity
    for sr_name, similar_subreddits in subreddit_similarity.iteritems():
        try:
            subreddit = Subreddit._by_name(sr_name)
        except NotFound:
            print 'skipping: not found %s' % sr_name

        if debug:
            print "%s adding: %s" % (subreddit.name, similar_subreddits)
        else:
            SubredditAffinity.create(subreddit, variant, similar_subreddits)
开发者ID:zeantsoi,项目名称:reddit,代码行数:31,代码来源:subreddit_affinity.py

示例5: GET_promote_inventory

# 需要导入模块: from r2.models import Subreddit [as 别名]
# 或者: from r2.models.Subreddit import _by_name [as 别名]
    def GET_promote_inventory(self, start, end, sr_name, collection_name):
        if not start or not end:
            start = promote.promo_datetime_now(offset=1).date()
            end = promote.promo_datetime_now(offset=8).date()
            c.errors.remove((errors.BAD_DATE, 'startdate'))
            c.errors.remove((errors.BAD_DATE, 'enddate'))

        target = Target(Frontpage.name)
        if sr_name:
            try:
                sr = Subreddit._by_name(sr_name)
                target = Target(sr.name)
            except NotFound:
                c.errors.add(errors.SUBREDDIT_NOEXIST, field='sr_name')
        elif collection_name:
            collection = Collection.by_name(collection_name)
            if not collection:
                c.errors.add(errors.COLLECTION_NOEXIST, field='collection_name')
            else:
                target = Target(collection)

        content = PromoteInventory(start, end, target)

        if c.render_style == 'csv':
            return content.as_csv()
        else:
            return PromotePage(title=_("sponsored link inventory"),
                               content=content).render()
开发者ID:2ndnotch,项目名称:reddit,代码行数:30,代码来源:promotecontroller.py

示例6: get_subreddit

# 需要导入模块: from r2.models import Subreddit [as 别名]
# 或者: from r2.models.Subreddit import _by_name [as 别名]
    def get_subreddit(self):
        """checks if the current url refers to a subreddit and returns
        that subreddit object.  The cases here are:

          * the hostname is unset or is g.domain, in which case it
            looks for /r/XXXX or /subreddits.  The default in this case
            is Default.
          * the hostname is a cname to a known subreddit.

        On failure to find a subreddit, returns None.
        """
        from pylons import g
        from r2.models import Subreddit, Sub, NotFound, DefaultSR
        try:
            if (not self.hostname or
                    is_subdomain(self.hostname, g.domain) or
                    self.hostname.startswith(g.domain)):
                if self.path.startswith('/r/'):
                    return Subreddit._by_name(self.path.split('/')[2])
                elif self.path.startswith(('/subreddits/', '/reddits/')):
                    return Sub
                else:
                    return DefaultSR()
            elif self.hostname:
                return Subreddit._by_domain(self.hostname)
        except NotFound:
            pass
        return None
开发者ID:HerculesCE,项目名称:reddit,代码行数:30,代码来源:utils.py

示例7: submit_all

# 需要导入模块: from r2.models import Subreddit [as 别名]
# 或者: from r2.models.Subreddit import _by_name [as 别名]
def submit_all():
    from r2.models import Subreddit, Account, Link, NotFound
    from r2.lib.media import set_media
    from r2.lib.db import queries
    sr = Subreddit._by_name('testmedia')
    author = Account._by_name('testmedia')
    links = []
    for url in test_urls:
        try:
            # delete any existing version of the link
            l = Link._by_url(url, sr)
            print "Deleting %s" % l
            l._deleted = True
            l._commit()
        except NotFound:
            pass

        l = Link._submit(url, url, author, sr, '0.0.0.0')

        try:
            set_media(l)
        except Exception, e:
            print e

        if g.write_query_queue:
            queries.new_link(l)

        links.append(l)
开发者ID:DFectuoso,项目名称:culter,代码行数:30,代码来源:scraper.py

示例8: submit_link

# 需要导入模块: from r2.models import Subreddit [as 别名]
# 或者: from r2.models.Subreddit import _by_name [as 别名]
def submit_link(user, subreddit, title, url, thumb_url):
    account = Account._by_name(user)
    subreddit = Subreddit._by_name(subreddit)
    ip = '127.0.0.1'

    # submit the link
    link = Link._submit(
        is_self=False,
        title=title,
        content=url,
        author=account,
        sr=subreddit,
        ip=ip,
        spam=False,
    )

    try:
        # force the thumbnail before scraper_q gets in the mix
        image_data = urllib.urlopen(thumb_url).read()
        force_thumbnail(link, image_data)
    except:
        pass

    # various backend processing things
    queries.new_link(link)
    link.update_search_index()

    # wait for the amqp worker to finish up
    worker.join()

    print link.make_permalink_slow()
开发者ID:reddit,项目名称:postcards,代码行数:33,代码来源:submit_link.py

示例9: degolden

# 需要导入模块: from r2.models import Subreddit [as 别名]
# 或者: from r2.models.Subreddit import _by_name [as 别名]
 def degolden(self, account):
     from r2.lib.db.queries import changed
     account.gold = False
     Award.take_away("reddit_gold", account)
     account._commit()
     if g.lounge_reddit:
         sr = Subreddit._by_name(g.lounge_reddit)
         sr.remove_contributor(account)
开发者ID:JediWatchman,项目名称:reddit,代码行数:10,代码来源:admintools.py

示例10: campaign_has_oversold_error

# 需要导入模块: from r2.models import Subreddit [as 别名]
# 或者: from r2.models.Subreddit import _by_name [as 别名]
def campaign_has_oversold_error(form, campaign):
    if campaign.priority.inventory_override:
        return

    target = Subreddit._by_name(campaign.sr_name) if campaign.sr_name else None
    return has_oversold_error(form, campaign, campaign.start_date,
                              campaign.end_date, campaign.bid, campaign.cpm,
                              target)
开发者ID:AD42,项目名称:reddit,代码行数:10,代码来源:promotecontroller.py

示例11: backfill

# 需要导入模块: from r2.models import Subreddit [as 别名]
# 或者: from r2.models.Subreddit import _by_name [as 别名]
def backfill(after=None):
    q = Subreddit._query(sort=asc('_date'))
    if after:
        sr = Subreddit._by_name(after)
        q = q._after(sr)

    for sr in fetch_things2(q):
        backfill_sr(sr)
开发者ID:0xcd03,项目名称:reddit,代码行数:10,代码来源:modaction_by_srandmod.py

示例12: init_builder

# 需要导入模块: from r2.models import Subreddit [as 别名]
# 或者: from r2.models.Subreddit import _by_name [as 别名]
 def init_builder(self):
     sr = Subreddit._by_name(g.default_sr)
     return UnbannedCommentBuilder(
         self.query(),
         [sr._id],
         num = 5,
         wrap = RecentItems.wrap_thing,
         skip = True
     )
开发者ID:PeerInfinity,项目名称:lesswrong,代码行数:11,代码来源:pages.py

示例13: enflair

# 需要导入模块: from r2.models import Subreddit [as 别名]
# 或者: from r2.models.Subreddit import _by_name [as 别名]
def enflair(subreddit_name, account_name, flair_text, flair_class):
    sr = Subreddit._by_name(subreddit_name)
    account = Account._by_name(account_name)

    sr.add_flair(account)

    setattr(account, "flair_%d_text" % sr._id, flair_text)
    setattr(account, "flair_%d_css_class" % sr._id, flair_class)
    account._commit()
开发者ID:chromakode,项目名称:postcards,代码行数:11,代码来源:enflair.py

示例14: nav

# 需要导入模块: from r2.models import Subreddit [as 别名]
# 或者: from r2.models.Subreddit import _by_name [as 别名]
    def nav(self):
        sr = Subreddit._by_name(g.default_sr)
        cloud = Tag.tag_cloud_for_subreddits([sr._id])

        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:PeerInfinity,项目名称:lesswrong,代码行数:11,代码来源:pages.py

示例15: promote_link

# 需要导入模块: from r2.models import Subreddit [as 别名]
# 或者: from r2.models.Subreddit import _by_name [as 别名]
def promote_link(link, campaign):
    if (not link.over_18 and
        campaign.sr_name and Subreddit._by_name(campaign.sr_name).over_18):
        link.over_18 = True
        link._commit()

    if not is_promoted(link):
        update_promote_status(link, PROMOTE_STATUS.promoted)
        emailer.live_promo(link)
开发者ID:Lax100,项目名称:reddit,代码行数:11,代码来源:promote.py


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