PageSourceSearch

https://technews.tw/wp-content/themes/twentytwelve/js/tn-cookies.js?ver=2610011002

js technews.tw collected 2026-10-01 10:11:46 UTC 3,694 bytes, 104 lines download raw bytes

1function setCookie(cookieName, cookieValue, exdays, domainHost) {
2    if (document.cookie.indexOf(cookieName) >= 0) {
3        var expD = new Date();
4        expD.setTime(expD.getTime() + (-1*60*60*24*1000));
5        var uexpires = "expires="+expD.toUTCString();
6        var domain = "domain="+domainHost;
7        document.cookie = cookieName + "=" + cookieValue + "; " + uexpires + "; path=/;" + domain + ";";
8    }
9    var d = new Date();
10    d.setTime(d.getTime() + (exdays*60*60*24*1000));
11    var expires = "expires="+d.toUTCString();
12    var domain = "domain="+domainHost;
13    document.cookie = cookieName + "=" + cookieValue + "; " + expires + "; path=/; " + domain + ";";
14}
15
16function getCookie(cookieName) {
17    var name = cookieName + "=";
18    var ca = document.cookie.split(';');
19    for(var i=0; i<ca.length; i++) {
20        var c = ca[i];
21        while (c.charAt(0)==' ') c = c.substring(1);
22        if (c.indexOf(name) == 0) return c.substring(name.length,c.length);
23    }
24    return "";
25}
26
27function deleteCookie(cookieName, cookieValue, exdays, domainHost) {
28    var expD = new Date();
29    expD.setTime(expD.getTime() -exdays);
30    var uexpires = "expires="+expD.toUTCString();
31    var domain = "domain="+domainHost;
32    document.cookie = cookieName + "=" + cookieValue + "; " + uexpires + "; path=/;" + domain + ";";
33}
34
35// 取代setCookie,以分鐘紀錄
36function setCookieMinute(cookieName, cookieValue, expireMinute, domainHost) {
37    var tnCookieTTL = expireMinute * 60 * 1000;
38    var tnCookieDomain = "domain=" + domainHost;
39    var tnExpDate = new Date();
40    var tnCurDate = new Date();
41    var tnExpires;
42
43    if (document.cookie.indexOf(cookieName) >= 0) {
44        tnExpDate.setTime(tnExpDate.getTime() + (-1 * tnCookieTTL));
45        tnExpires = "expires=" + tnExpDate.toUTCString();
46        document.cookie = cookieName + "=" + cookieValue + "; " + tnExpires + "; path=/;" + tnCookieDomain + ";";
47    }
48    tnCurDate.setTime(tnCurDate.getTime() + (expireMinute * tnCookieTTL));
49    tnExpires = "expires=" + tnCurDate.toUTCString();
50    document.cookie = cookieName + "=" + cookieValue + "; " + tnExpires + "; path=/; " + tnCookieDomain + ";";
51}
52
53/**
54 * 會員登入cookie
55 * @param username
56 * @param permission
57 * @param uuid
58 * @param domainHost
59 */
60function tn_set_user_cookie(username, permission, uuid = '', cookieExpMinute = 30, domainHost = '') {
61    var tnloginString = (username == '' || username == null) ? 0 : 1;
62    cookieExpMinute = (username == '' || username == null) ? 30 : cookieExpMinute;
63
64    setCookieMinute('logss', btoa(tnloginString), cookieExpMinute, domainHost);
65    setCookieMinute('per', btoa(permission), cookieExpMinute, domainHost);
66    setCookieMinute('urn', btoa(username), cookieExpMinute, domainHost);
67    setCookieMinute('tn_uuid', btoa(uuid), cookieExpMinute, domainHost);
68
69    deleteCookie('tn_guest', '', 1, domainHost);
70}
71
72/**
73 * 清除會員cookie
74 * @param domainHost
75 */
76function tn_destroy_user_cookie(domainHost) {
77    deleteCookie('logss', '', 1, domainHost);
78    deleteCookie('per', '', 1, domainHost);
79    deleteCookie('urn', '', 1, domainHost);
80    deleteCookie('tn_uuid', '', 1, domainHost);
81}
82
83/**
84 * 訪客cookie
85 * @param expMinute
86 * @param domainHost
87 */
88function tn_set_guest_cookie(expMinute, domainHost) {
89    tn_destroy_user_cookie(domainHost);
90    setCookieMinute('tn_guest', 1, expMinute, domainHost);
91}
92
93/**
94 * 取得user cookie & decrypt
95 */
96function tn_get_user_cookie() {
97    return {
98        is_login: atob(getCookie('logss')),
99        is_guest: getCookie('tn_guest'),
100        uuid: atob(getCookie('tn_uuid')),
101        permission: atob(getCookie('per')),
102        username: atob(getCookie('urn'))
103    };
104}

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.