mirror of
https://github.com/reddit-archive/reddit.git
synced 2026-01-27 07:48:16 -05:00
Add ability to set custom DART keywords for links.
This commit is contained in:
@@ -244,7 +244,7 @@ def make_map(global_conf={}, app_conf={}):
|
||||
|
||||
# Used for showing ads
|
||||
mc("/ads/", controller = "ad", action = "ad")
|
||||
mc("/ads/r/:reddit_name", controller = "ad", action = "ad")
|
||||
mc("/ads/r/:reddit_name/:keyword", controller = "ad", action = "ad", keyword=None)
|
||||
mc("/ads/:codename", controller = "ad", action = "ad_by_codename")
|
||||
|
||||
mc("/try", controller = "forms", action = "try_compact")
|
||||
|
||||
@@ -66,9 +66,9 @@ class AdController(MinimalController):
|
||||
request.fullpath,
|
||||
random.choice(xrange(100)))
|
||||
|
||||
def GET_ad(self, reddit_name = None):
|
||||
def GET_ad(self, reddit_name = None, keyword=None):
|
||||
c.render_style = "html"
|
||||
return render_ad(reddit_name=reddit_name)
|
||||
return render_ad(reddit_name=reddit_name, keyword=keyword)
|
||||
|
||||
def GET_ad_by_codename(self, codename = None):
|
||||
if not codename:
|
||||
|
||||
@@ -824,6 +824,9 @@ class LinkInfoPage(Reddit):
|
||||
if hasattr(self.link, "shortlink"):
|
||||
self.shortlink = self.link.shortlink
|
||||
|
||||
if hasattr(self.link, "dart_keyword"):
|
||||
c.custom_dart_keyword = self.link.dart_keyword
|
||||
|
||||
# if we're already looking at the 'duplicates' page, we can
|
||||
# avoid doing this lookup twice
|
||||
if duplicates is None:
|
||||
@@ -3470,12 +3473,13 @@ class RawString(Templated):
|
||||
return unsafe(self.s)
|
||||
|
||||
class Dart_Ad(CachedTemplate):
|
||||
def __init__(self, dartsite, tag):
|
||||
def __init__(self, dartsite, tag, custom_keyword=None):
|
||||
tag = tag or "homepage"
|
||||
keyword = custom_keyword or tag
|
||||
tracker_url = AdframeInfo.gen_url(fullname = "dart_" + tag,
|
||||
ip = request.ip)
|
||||
Templated.__init__(self, tag = tag, dartsite = dartsite,
|
||||
tracker_url = tracker_url)
|
||||
tracker_url = tracker_url, keyword=keyword)
|
||||
|
||||
def render(self, *a, **kw):
|
||||
res = CachedTemplate.render(self, *a, **kw)
|
||||
@@ -3494,22 +3498,24 @@ class HouseAd(CachedTemplate):
|
||||
class ComScore(CachedTemplate):
|
||||
pass
|
||||
|
||||
def render_ad(reddit_name=None, codename=None):
|
||||
def render_ad(reddit_name=None, codename=None, keyword=None):
|
||||
if not reddit_name:
|
||||
reddit_name = g.default_sr
|
||||
if g.frontpage_dart:
|
||||
return Dart_Ad("reddit.dart", reddit_name).render()
|
||||
return Dart_Ad("reddit.dart", reddit_name, keyword).render()
|
||||
|
||||
try:
|
||||
sr = Subreddit._by_name(reddit_name)
|
||||
except NotFound:
|
||||
return Dart_Ad("reddit.dart", g.default_sr).render()
|
||||
return Dart_Ad("reddit.dart", g.default_sr, keyword).render()
|
||||
|
||||
if sr.over_18:
|
||||
dartsite = "reddit.dart.nsfw"
|
||||
else:
|
||||
dartsite = "reddit.dart"
|
||||
|
||||
if keyword:
|
||||
return Dart_Ad(dartsite, reddit_name, keyword).render()
|
||||
|
||||
if codename:
|
||||
if codename == "DART":
|
||||
|
||||
@@ -25,7 +25,15 @@
|
||||
import random
|
||||
%>
|
||||
|
||||
<% name = "r/%s/" % c.site.name if not c.default_sr else '' %>
|
||||
<%
|
||||
|
||||
name = ''
|
||||
if c.custom_dart_keyword:
|
||||
name = "r/%s/%s" % (c.site.name, c.custom_dart_keyword)
|
||||
elif not c.default_sr:
|
||||
name = "r/%s/" % c.site.name
|
||||
|
||||
%>
|
||||
|
||||
<iframe id="ad-frame" frameborder="0" scrolling="no" name="ad-frame"
|
||||
src="${g.ad_domain}/ads/${name}">
|
||||
|
||||
@@ -57,10 +57,10 @@
|
||||
<script language="JavaScript" type="text/javascript">
|
||||
//<![CDATA[
|
||||
ord=Math.random()*10000000000000000;
|
||||
document.write('<script language="JavaScript" src="http://ad.doubleclick.net/adj/${thing.dartsite}/${thing.tag};kw=${thing.tag};tile=1;sz=300x250;ord=' + ord + '?" type="text/javascript"></scr' + 'ipt>');
|
||||
document.write('<script language="JavaScript" src="http://ad.doubleclick.net/adj/${thing.dartsite}/${thing.tag};kw=${thing.keyword};tile=1;sz=300x250;ord=' + ord + '?" type="text/javascript"></scr' + 'ipt>');
|
||||
//]]>
|
||||
</script>
|
||||
<noscript><a href="http://ad.doubleclick.net/jump/${thing.dartsite}/${thing.tag};kw=${thing.tag};tile=1;sz=300x250;ord=123456789?" target="_blank"><img src="http://ad.doubleclick.net/ad/${thing.dartsite}/${thing.tag};kw=${thing.tag};tile=1;sz=300x250;ord=123456789?" width="300" height="250" border="0" alt=""/></a></noscript>
|
||||
<noscript><a href="http://ad.doubleclick.net/jump/${thing.dartsite}/${thing.tag};kw=${thing.keyword};tile=1;sz=300x250;ord=123456789?" target="_blank"><img src="http://ad.doubleclick.net/ad/${thing.dartsite}/${thing.tag};kw=${thing.keyword};tile=1;sz=300x250;ord=123456789?" width="300" height="250" border="0" alt=""/></a></noscript>
|
||||
</div>
|
||||
<div id="adlink">
|
||||
<a target="_top" href="#" onmousedown="rwt(this)">
|
||||
|
||||
Reference in New Issue
Block a user