Add ability to set custom DART keywords for links.

This commit is contained in:
Neil Williams
2011-08-22 20:19:39 -07:00
parent 2c8572a454
commit 9122dd055a
5 changed files with 25 additions and 11 deletions

View File

@@ -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")

View File

@@ -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:

View File

@@ -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":

View File

@@ -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}">

View File

@@ -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)">