本文整理汇总了Python中r2.models.Link类的典型用法代码示例。如果您正苦于以下问题:Python Link类的具体用法?Python Link怎么用?Python Link使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Link类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: submit_all
def submit_all():
from r2.models import Subdigg, Account, Link, NotFound
from r2.lib.media import set_media
from r2.lib.db import queries
sr = Subdigg._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:kevinrose,项目名称:diggit,代码行数:28,代码来源:scraper.py
示例2: get_links
def get_links(sr, sort, time, merge_batched=True):
"""General link query for a subreddit."""
q = Link._query(Link.c.sr_id == sr._id,
sort = db_sort(sort),
data = True)
if time != 'all':
q._filter(db_times[time])
res = make_results(q)
# see the discussion above batched_time_times
if (merge_batched
and g.use_query_cache
and sort in batched_time_sorts
and time in batched_time_times):
byday = Link._query(Link.c.sr_id == sr._id,
sort = db_sort(sort), data=True)
byday._filter(db_times['day'])
res = merge_results(res,
make_results(byday))
return res
开发者ID:codyro,项目名称:reddit,代码行数:25,代码来源:queries.py
示例3: run
def run(verbose=True, sleep_time = 60, num_items = 1):
key = "indextank_cursor"
cursor = g.cache.get(key)
if cursor is None:
raise ValueError("%s is not set!" % key)
cursor = int(cursor)
while True:
if verbose:
print "Looking for %d items with _id < %d" % (num_items, cursor)
q = Link._query(sort = desc('_id'),
limit = num_items)
q._after(Link._byID(cursor))
last_date = None
for item in q:
cursor = item._id
last_date = item._date
amqp.add_item('indextank_changes', item._fullname,
message_id = item._fullname,
delivery_mode = amqp.DELIVERY_TRANSIENT)
g.cache.set(key, cursor)
if verbose:
if last_date:
last_date = last_date.strftime("%Y-%m-%d")
print ("Just enqueued %d items. New cursor=%s (%s). Sleeping %d seconds."
% (num_items, cursor, last_date, sleep_time))
sleep(sleep_time)
开发者ID:constantAmateur,项目名称:sciteit,代码行数:29,代码来源:indextank_backfill.py
示例4: GET_report
def GET_report(self, start, end, link_text=None, owner=None):
now = datetime.now(g.tz).replace(hour=0, minute=0, second=0,
microsecond=0)
end = end or now - timedelta(days=1)
start = start or end - timedelta(days=7)
links = []
bad_links = []
owner_name = owner.name if owner else ''
if owner:
promo_weights = PromotionWeights.get_campaigns(start, end,
author_id=owner._id)
campaign_ids = [pw.promo_idx for pw in promo_weights]
campaigns = PromoCampaign._byID(campaign_ids, data=True)
link_ids = {camp.link_id for camp in campaigns.itervalues()}
links.extend(Link._byID(link_ids, data=True, return_dict=False))
if link_text is not None:
id36s = link_text.replace(',', ' ').split()
try:
links_from_text = Link._byID36(id36s, data=True)
except NotFound:
links_from_text = {}
bad_links = [id36 for id36 in id36s if id36 not in links_from_text]
links.extend(links_from_text.values())
content = PromoteReport(links, link_text, owner_name, bad_links, start,
end)
if c.render_style == 'csv':
return content.as_csv()
else:
return PromotePage(title=_("sponsored link report"),
content=content).render()
开发者ID:6r3nt,项目名称:reddit,代码行数:35,代码来源:promotecontroller.py
示例5: _handle_check_edits
def _handle_check_edits(payload):
existing = Link._by_fullname(payload["link"], data=True)
creative = creatives_service.get_creative(existing)
link = utils.dfp_creative_to_link(
creative, link=Link._by_fullname(payload["link"], data=True))
link.dfp_checking_edits = False
link._commit()
开发者ID:13steinj,项目名称:reddit-plugin-dfp,代码行数:9,代码来源:queue.py
示例6: _mock_link
def _mock_link(id=1, author_id=1, sr_id=1, **kwargs):
kwargs['id'] = id
kwargs['author_id'] = author_id
kwargs['sr_id'] = sr_id
link = Link(**kwargs)
VByName.run = MagicMock(return_value=link)
sr = Subreddit(id=sr_id)
link.subreddit = sr
return link
开发者ID:heqzha,项目名称:reddit,代码行数:12,代码来源:test_validator.py
示例7: _mock_link
def _mock_link(id=1, author_id=1, sr_id=1, can_comment=True, can_view_promo=True, **kwargs):
kwargs["id"] = id
kwargs["author_id"] = author_id
kwargs["sr_id"] = sr_id
link = Link(**kwargs)
VByName.run = MagicMock(return_value=link)
sr = Subreddit(id=sr_id)
link.subreddit_slow = sr
Subreddit.can_comment = MagicMock(return_value=can_comment)
Link.can_view_promo = MagicMock(return_value=can_view_promo)
return link
开发者ID:Liwink,项目名称:reddit,代码行数:15,代码来源:test_validator.py
示例8: _handle_adzerk
def _handle_adzerk(msg):
data = json.loads(msg.body)
g.log.debug('data: %s' % data)
action = data.get('action')
if action == 'deactivate_link':
link = Link._by_fullname(data['link'], data=True)
_deactivate_link(link)
elif action == 'deactivate_campaign':
link = Link._by_fullname(data['link'], data=True)
campaign = PromoCampaign._by_fullname(data['campaign'], data=True)
_deactivate_campaign(link, campaign)
elif action == 'update_adzerk':
link = Link._by_fullname(data['link'], data=True)
campaign = PromoCampaign._by_fullname(data['campaign'], data=True)
_update_adzerk(link, campaign)
开发者ID:alienth,项目名称:reddit-plugin-adzerk,代码行数:15,代码来源:adzerkpromote.py
示例9: get_comment_items
def get_comment_items(srs, src, count=4):
"""Get hot links from srs, plus top comment from each link."""
link_fullnames = normalized_hot([sr._id for sr in srs])
hot_links = Link._by_fullname(link_fullnames[:count], return_dict=False)
top_comments = []
for link in hot_links:
builder = CommentBuilder(
link, operators.desc("_confidence"), comment=None, context=None, num=1, load_more=False
)
listing = NestedListing(builder, parent_name=link._fullname).listing()
top_comments.extend(listing.things)
srs = Subreddit._byID([com.sr_id for com in top_comments])
links = Link._byID([com.link_id for com in top_comments])
comment_items = [ExploreItem(TYPE_COMMENT, src, srs[com.sr_id], links[com.link_id], com) for com in top_comments]
return comment_items
开发者ID:Shilohtd,项目名称:reddit,代码行数:15,代码来源:recommender.py
示例10: _use_adserver_reporting
def _use_adserver_reporting(thing):
if not feature.is_enabled("adserver_reporting"):
return False
if not g.adserver_reporting_cutoff:
return False
try:
cutoff = parse_date(g.adserver_reporting_cutoff)
except ValueError:
return False
if isinstance(thing, PromoCampaign):
link = Link._byID(thing.link_id)
else:
link = thing
campaigns = list(PromoCampaign._by_link(link._id))
# No campaigns, so nothing to report. Show the new
# view anyway.
if not campaigns:
return True
end_date = max(campaign.end_date for campaign in campaigns)
end_date = end_date.replace(tzinfo=g.tz)
cutoff = cutoff.replace(tzinfo=g.tz)
if end_date < cutoff:
return False
return not feature.is_enabled("legacy_ad_reporting")
开发者ID:zeantsoi,项目名称:reddit,代码行数:32,代码来源:trafficpages.py
示例11: new_promotion
def new_promotion(is_self, title, content, author, ip):
"""
Creates a new promotion with the provided title, etc, and sets it
status to be 'unpaid'.
"""
sr = Subreddit._byID(Subreddit.get_promote_srid())
l = Link._submit(
is_self=is_self,
title=title,
content=content,
author=author,
sr=sr,
ip=ip,
)
l.promoted = True
l.disable_comments = False
l.sendreplies = True
PromotionLog.add(l, 'promotion created')
update_promote_status(l, PROMOTE_STATUS.unpaid)
# the user has posted a promotion, so enable the promote menu unless
# they have already opted out
if author.pref_show_promote is not False:
author.pref_show_promote = True
author._commit()
# notify of new promo
emailer.new_promo(l)
return l
开发者ID:pra85,项目名称:reddit,代码行数:31,代码来源:promote.py
示例12: bid_history
def bid_history(cls, start_date, end_date = None, account_id = None):
from r2.models import Link
from r2.lib import promote
start_date = to_date(start_date)
end_date = to_date(end_date)
q = cls.query()
q = q.filter(and_(cls.date >= start_date, cls.date < end_date))
q = list(q)
links = Link._by_fullname([x.thing_name for x in q], data=True)
d = start_date
res = []
while d < end_date:
bid = 0
refund = 0
for i in q:
if d == i.date:
l = links[i.thing_name]
if (not promote.is_rejected(l) and
not promote.is_unpaid(l) and
not l._deleted and
i.promo_idx in getattr(l, 'campaigns', {})):
camp = l.campaigns[i.promo_idx]
bid += i.bid
refund += i.bid if camp[-1] <= 0 else 0
res.append([d, bid, refund])
d += datetime.timedelta(1)
return res
开发者ID:Jeerok,项目名称:reddit,代码行数:30,代码来源:bidding.py
示例13: _create_link
def _create_link(creative):
"""
Creates a link to allow third party voting/commenting
"""
user = _get_user()
sr = _get_subreddit()
attributes = _template_to_dict(creative)
kind = "self" if attributes["selftext"] else "link"
url = attributes["url"] if kind == "link" else "self"
link = Link._submit(
attributes["title"], url, user, sr,
ip="127.0.0.1", sendreplies=False,
)
if kind == "self":
link.url = link.make_permalink_slow()
link.is_self = True
link.selftext = attributes["selftext"]
link.promoted = True
link.third_party_promo = True
link.thumbnail_url = attributes["thumbnail_url"]
link.mobile_ad_url = attributes["mobile_ad_url"]
link.third_party_tracking = attributes["third_party_tracking"]
link.third_party_tracking_2 = attributes["third_party_tracking_2"]
link.external_id = creative["id"]
link._commit()
return link
开发者ID:dwick,项目名称:reddit-plugin-dfp,代码行数:32,代码来源:linkcontroller.py
示例14: new_comment
def new_comment(comment, inbox_rels):
author = Account._byID(comment.author_id)
job = [get_comments(author, "new", "all")]
if comment._deleted:
job.append(get_all_comments())
add_queries(job, delete_items=comment)
else:
# if comment._spam:
# sr = Subreddit._byID(comment.sr_id)
# job.append(get_spam_comments(sr))
add_queries(job, insert_items=comment)
amqp.add_item("new_comment", comment._fullname)
if not g.amqp_host:
l = Link._byID(comment.link_id, data=True)
add_comment_tree(comment, l)
# note that get_all_comments() is updated by the amqp process
# r2.lib.db.queries.run_new_comments
if inbox_rels:
for inbox_rel in tup(inbox_rels):
inbox_owner = inbox_rel._thing1
if inbox_rel._name == "inbox":
add_queries([get_inbox_comments(inbox_owner)], insert_items=inbox_rel)
else:
add_queries([get_inbox_selfreply(inbox_owner)], insert_items=inbox_rel)
set_unread(comment, inbox_owner, True)
开发者ID:denrobapps,项目名称:Reddit-VM,代码行数:27,代码来源:queries.py
示例15: get_promos
def get_promos(date, sr_names=None, link=None):
campaign_ids = PromotionWeights.get_campaign_ids(date, sr_names=sr_names, link=link)
campaigns = PromoCampaign._byID(campaign_ids, data=True, return_dict=False)
link_ids = {camp.link_id for camp in campaigns}
links = Link._byID(link_ids, data=True)
for camp in campaigns:
yield camp, links[camp.link_id]
开发者ID:karthikv,项目名称:reddit,代码行数:7,代码来源:promote.py
示例16: get_spam_filtered_links
def get_spam_filtered_links(sr_id):
""" NOTE: This query will never run unless someone does an "update" on it,
but that will probably timeout. Use insert_spam_filtered_links."""
return Link._query(Link.c.sr_id == sr_id,
Link.c._spam == True,
Link.c.verdict != 'mod-removed',
sort = db_sort('new'))
开发者ID:rram,项目名称:reddit,代码行数:7,代码来源:queries.py
示例17: set_recent_clicks
def set_recent_clicks():
c.recent_clicks = []
if not c.user_is_loggedin:
return
click_cookie = read_user_cookie('recentclicks2')
if click_cookie:
if valid_click_cookie(click_cookie):
names = [ x for x in UniqueIterator(click_cookie.split(',')) if x ]
if len(names) > 5:
names = names[:5]
set_user_cookie('recentclicks2', ','.join(names))
#eventually this will look at the user preference
names = names[:5]
try:
c.recent_clicks = Link._by_fullname(names, data=True,
return_dict=False)
except NotFound:
# clear their cookie because it's got bad links in it
set_user_cookie('recentclicks2', '')
else:
#if the cookie wasn't valid, clear it
set_user_cookie('recentclicks2', '')
开发者ID:ChrisCinelli,项目名称:reddit,代码行数:25,代码来源:reddit_base.py
示例18: new_promotion
def new_promotion(title, url, selftext, user, ip):
"""
Creates a new promotion with the provided title, etc, and sets it
status to be 'unpaid'.
"""
sr = Subreddit._byID(get_promote_srid())
l = Link._submit(title, url, user, sr, ip)
l.promoted = True
l.disable_comments = False
PromotionLog.add(l, "promotion created")
if url == "self":
l.url = l.make_permalink_slow()
l.is_self = True
l.selftext = selftext
l._commit()
update_promote_status(l, PROMOTE_STATUS.unpaid)
# the user has posted a promotion, so enable the promote menu unless
# they have already opted out
if user.pref_show_promote is not False:
user.pref_show_promote = True
user._commit()
# notify of new promo
emailer.new_promo(l)
return l
开发者ID:j2p2,项目名称:reddit,代码行数:29,代码来源:promote.py
示例19: dfp_creative_to_link
def dfp_creative_to_link(creative, link=None):
from r2.models import (
Link,
PROMOTE_STATUS,
)
user = get_dfp_user()
sr = get_dfp_subreddit()
attributes = dfp_template_to_dict(
creative.creativeTemplateVariableValues)
kind = "self" if attributes["selftext"] else "link"
url = attributes["url"] if kind == "link" else "self"
if not link:
link = Link._submit(
attributes["title"], url, user, sr,
ip="127.0.0.1", sendreplies=False,
)
if kind == "self":
link.url = link.make_permalink_slow()
link.is_self = True
link.selftext = attributes["selftext"]
link.promoted = True
link.promote_status = PROMOTE_STATUS.promoted
link.thumbnail_url = attributes["thumbnail_url"]
link.mobile_ad_url = attributes["mobile_ad_url"]
link.third_party_tracking = attributes["third_party_tracking"]
link.third_party_tracking_2 = attributes["third_party_tracking_2"]
link.dfp_creative_id = creative["id"]
link._commit()
return link
开发者ID:13steinj,项目名称:reddit-plugin-dfp,代码行数:35,代码来源:utils.py
示例20: query
def query(self):
if c.user_is_sponsor:
if self.sort == "future_promos":
return queries.get_all_unapproved_links()
elif self.sort == "pending_promos":
return queries.get_all_accepted_links()
elif self.sort == "unpaid_promos":
return queries.get_all_unpaid_links()
elif self.sort == "rejected_promos":
return queries.get_all_rejected_links()
elif self.sort == "live_promos" and self.sr:
return self.live_by_subreddit(self.sr)
elif self.sort == 'live_promos':
return queries.get_all_live_links()
elif self.sort == 'underdelivered':
q = queries.get_underdelivered_campaigns()
campaigns = PromoCampaign._by_fullname(list(q), data=True,
return_dict=False)
link_ids = [camp.link_id for camp in campaigns]
return [Link._fullname_from_id36(to36(id)) for id in link_ids]
elif self.sort == 'reported':
return queries.get_reported_links(get_promote_srid())
return queries.get_all_promoted_links()
else:
if self.sort == "future_promos":
return queries.get_unapproved_links(c.user._id)
elif self.sort == "pending_promos":
return queries.get_accepted_links(c.user._id)
elif self.sort == "unpaid_promos":
return queries.get_unpaid_links(c.user._id)
elif self.sort == "rejected_promos":
return queries.get_rejected_links(c.user._id)
elif self.sort == "live_promos":
return queries.get_live_links(c.user._id)
return queries.get_promoted_links(c.user._id)
开发者ID:Damgaard,项目名称:reddit,代码行数:35,代码来源:promotecontroller.py
注:本文中的r2.models.Link类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论