mirror of
https://github.com/reddit-archive/reddit.git
synced 2026-01-25 23:08:22 -05:00
Fix for properly modifying click cookies, and accounting for malformed ones
This commit is contained in:
@@ -137,20 +137,18 @@ def set_user_cookie(name, val):
|
||||
c.cookies[uname + '_' + name] = Cookie(value = val,
|
||||
domain = domain)
|
||||
|
||||
valid_click_cookie = re.compile(r'(t[0-9]_[a-zA-Z0-9]+:)+').match
|
||||
def read_click_cookie():
|
||||
if c.user_is_loggedin:
|
||||
cook = [s for s in read_user_cookie('click').split(':') if s]
|
||||
if cook:
|
||||
try:
|
||||
things = Thing._by_fullname(cook, return_dict = False)
|
||||
for t in things:
|
||||
def foo(t1, user):
|
||||
return lambda: t1._click(user)
|
||||
utils.worker.do(foo(t, c.user))
|
||||
except:
|
||||
pass
|
||||
finally:
|
||||
set_user_cookie('click', '')
|
||||
click_cookie = read_user_cookie('click')
|
||||
if click_cookie and valid_click_cookie(click_cookie):
|
||||
ids = [s for s in click_cookie.split(':') if s]
|
||||
things = Thing._by_fullname(ids, return_dict = False)
|
||||
for t in things:
|
||||
def foo(t1, user):
|
||||
return lambda: t1._click(user)
|
||||
utils.worker.do(foo(t, c.user))
|
||||
set_user_cookie('click', '')
|
||||
|
||||
|
||||
def read_mod_cookie():
|
||||
|
||||
@@ -482,7 +482,8 @@ function setClick(a, css_class) {
|
||||
}
|
||||
|
||||
function setClickCookie(id) {
|
||||
createCookie("click", readCookie("click") + id + ":");
|
||||
var newcookie = readCookie("click") + id + ":";
|
||||
createCookie("click", newcookie);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -25,14 +25,16 @@ function createLCookie(name,value,days) {
|
||||
}
|
||||
|
||||
function createCookie(name, value, days) {
|
||||
return createLCookie(cookieName(name));
|
||||
return createLCookie(cookieName(name), value, days);
|
||||
}
|
||||
|
||||
function readLCookie(nameEQ) {
|
||||
nameEQ=nameEQ+'=';
|
||||
var ca=document.cookie.split(';');
|
||||
for(var i=0;i< ca.length;i++) {
|
||||
var c =ca[i];
|
||||
/* walk the list backwards so we always get the last cookie in the
|
||||
list */
|
||||
for(var i = ca.length-1; i >= 0; i--) {
|
||||
var c = ca[i];
|
||||
while(c.charAt(0)==' ') c=c.substring(1,c.length);
|
||||
if(c.indexOf(nameEQ)==0) {
|
||||
return unescape(c.substring(nameEQ.length,c.length));
|
||||
@@ -42,7 +44,7 @@ function readLCookie(nameEQ) {
|
||||
}
|
||||
|
||||
function readCookie(name) {
|
||||
var nameEQ=cookieName(name) + "=";
|
||||
var nameEQ=cookieName(name);
|
||||
return readLCookie(nameEQ);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user