-
Notifications
You must be signed in to change notification settings - Fork 215
/
Cookies.browser.py
68 lines (54 loc) · 1.81 KB
/
Cookies.browser.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
def getCookie(cookie_name):
JS("""
var results = document['cookie']['match'] ( '(^|;) ?' +
@{{cookie_name}} + '=([^;]*)(;|$)' );
if ( results )
return ( decodeURIComponent ( results[2] ) );
else
return null;
""")
# expires can be int or Date
def setCookie(name, value, expires, domain=None, path=None, secure=False):
JS("""
if (@{{expires}} instanceof Date) @{{expires}} = @{{expires}}['getTime']();
if (@{{isUndefined}}(@{{domain}})) @{{domain}} = null;
if (@{{isUndefined}}(@{{path}})) @{{path}} = null;
if (@{{isUndefined}}(@{{secure}})) @{{secure}} = false;
var today = new Date();
var expiration = new Date();
if (!@{{expires}}) @{{expires}} = 0;
expiration['setTime'](today['getTime']() + @{{expires}});
var c = encodeURIComponent(@{{name}}) + '=' + encodeURIComponent(@{{value}});
c += ';expires=' + expiration['toGMTString']();
if (@{{domain}})
c += ';domain=' + @{{domain}};
if (@{{path}})
c += ';path=' + @{{path}};
if (@{{secure}})
c += ';secure';
$doc['cookie'] = c;
""")
def loadCookies():
JS("""
var cookies = {};
var docCookie = $doc['cookie'];
if (docCookie && docCookie != '') {
var crumbs = docCookie['split'](';');
for (var i = 0; i < crumbs['length']; ++i) {
alert(crumbs['length']);
var name, value;
var eqIdx = crumbs[i]['indexOf']('=');
if (eqIdx == -1) {
name = crumbs[i];
value = '';
} else {
name = crumbs[i]['substring'](0, eqIdx);
value = crumbs[i]['substring'](eqIdx + 1);
}
alert(name);
alert(value);
cookies[decodeURIComponent(name)] = decodeURIComponent(value);
}
}
return cookies;
""")