PageSourceSearch

https://aduang.co/js/module/announcement/announcement_module.js

js aduang.co collected 2026-10-01 14:05:31 UTC 5,240 bytes, 298 lines download raw bytes

1// import main
2import {main_link, service_link, CallService, checkErrorMsg, loader_spinn, value, gtagCheck, gtagCheckParam} from '/js/__main2.js';
3
4// import text
5import * as text_memo from '/text/text.js';
6const text = text_memo.exText;
7const local = text_memo.localTime;
8
9
10// Element's name
11const announcement_modal_container = '#announcement-modal-container';
12const image_announcement = '#image-announcement';
13const announcement_modal_link = '.announcement-modal-link';
14
15
16// Global variables
17export let lastestId;
18export let duration_sec = 0;
19
20
21
22
23
24
25// ============== Show Announcement Function =============
26export function exModal() {
27
28	setTimeout(function() {
29
30		$(announcement_modal_container).modal('show');
31
32	}, 3000);
33}
34
35
36
37
38// =============== Get announcement Function ===============
39export function getAnnouncement() {
40
41	const allowCall = checkExpired();
42	if (allowCall == true && value != undefined) {
43
44		const url = service_link + '/announcement_service.php';
45		const get_announcement = {
46			get_announce: true,
47			lastestId: lastestId
48		};
49
50		// Add Lazy load image
51		$(image_announcement).attr('src', loader_spinn);
52
53		CallService(get_announcement, url, 'POST', false, function(msg) {
54
55			checkErrorMsg(msg,
56				function(){
57
58			},
59				function() {
60
61					if (msg != 204) {
62
63						let {
64							actionUrl,
65							activeDate,
66							createdDate,
67							expiredDate,
68							id,
69							imageUrl,
70							targetGroup,
71							viewCount,
72							duration
73						} = msg;
74
75						lastestId = id;
76
77						// Set Duration
78						durationCal(duration);
79
80					// Gtag
81						gtagCheckParam('announcement_view', 'id', id, 'announcement');
82
83
84						if (actionUrl == "" || actionUrl == null) {
85							actionUrl = "#";
86						}
87						else {
88
89							const checkAction1 = actionUrl.indexOf('aduang://');
90							const checkAction2 = actionUrl.indexOf('http');
91
92							if (checkAction1 >= 0) {
93
94								const action = actionUrl.split('aduang://')[1];
95
96								if (action == 'register') {
97									actionUrl = '/teller/register';
98								}
99								else if (action == 'campaign') {
100									actionUrl = '/campaign';
101								}
102								else {
103									actionUrl = '/';
104								}
105
106							}
107
108						}
109
110
111						// Maping Image Announcement
112						$(announcement_modal_link).attr('href', actionUrl);
113						$(image_announcement).attr('data-src', imageUrl);
114
115
116						// Stamp time and expire time
117						stampTime(id);
118
119
120						// Pop Image Announcement
121						exModal();
122					}
123					else {
124						let announcementTimeStamp = sessionStorage.getItem('announcementTimeStamp');
125						announcementTimeStamp = JSON.parse(announcementTimeStamp);
126
127						if (announcementTimeStamp != null) {
128
129							let {
130								id,
131								timeStamp,
132								expiredTime
133							} = announcementTimeStamp;
134
135							let newTimeStamp = {
136								id: undefined,
137								timeStamp: timeStamp,
138								expiredTime: expiredTime
139							};
140
141							newTimeStamp = JSON.stringify(newTimeStamp);
142							sessionStorage.setItem('announcementTimeStamp', newTimeStamp);
143
144							getAnnouncement();
145
146						}
147					}
148
149				});
150
151
152
153		});
154
155	}
156}
157
158
159
160
161
162
163
164
165
166
167
168export function postClickAnnouncement(id, action) {
169
170	const url = service_link + '/announcement_service.php';
171	const postClick = {
172		clickAnnouncement: id
173	};
174
175
176	gtagCheckParam('announcement_click', 'id', id, 'announcement');
177
178	CallService(postClick, url, 'POST', false, function(msg) {
179
180		window.location.href(action);
181
182	});
183
184}
185
186
187
188
189
190
191
192
193
194
195
196
197
198// ================== Duration Calculating Function =================
199export function durationCal(duration) {
200
201	let hr = duration.split(':')[0];
202	let min = duration.split(':')[1];
203	let sec = duration.split(':')[2];
204
205	hr = parseInt(hr);
206	min = parseInt(min);
207	sec = parseInt(sec);
208
209	hr = Math.pow(60, 2) * hr;
210	min = min * 60;
211
212	sec = hr + min + sec;
213	duration_sec = sec;
214}
215
216
217
218
219
220
221
222
223
224
225
226
227
228// ==================== Stamp Time Function ======================
229export function stampTime (id) {
230
231	const timeStamp = moment().format();
232	const expiredTime = moment().add(duration_sec, 'seconds').format();
233
234	let announcementTimeStamp = {
235		id: id,
236		timeStamp: timeStamp,
237		expiredTime: expiredTime,
238	};
239
240
241	announcementTimeStamp = JSON.stringify(announcementTimeStamp);
242	sessionStorage.setItem('announcementTimeStamp', announcementTimeStamp);
243}
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260//  ================== Check Expired Time Function ================
261export function checkExpired() {
262
263	let announcementTimeStamp = sessionStorage.getItem('announcementTimeStamp');
264	announcementTimeStamp = JSON.parse(announcementTimeStamp);
265
266	const thisTime = moment();
267
268	if (announcementTimeStamp != null && value != undefined) {
269
270		let {
271			id,
272			timeStamp,
273			expiredTime
274		} = announcementTimeStamp;
275
276		// Set Lastest Id
277		lastestId = id;
278
279		// Check expired time
280		expiredTime = moment(expiredTime);
281		let durationMin = expiredTime.diff(thisTime, 'minutes');
282
283		if (durationMin < 0) {
284
285			return true;
286		}
287		else {
288
289			return false;
290		}
291	}
292	else {
293
294		return true;
295	}
296
297
298}

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.