appscms-tools-theme 5.2.0 → 5.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/_data/.DS_Store +0 -0
- data/_data/aitools/en/instagram-hashtag-generator.json +2 -17
- data/_data/contenttool/en/features.json +18 -243
- data/_data/header/en/data.json +4 -0
- data/_includes/.DS_Store +0 -0
- data/_includes/aitools/instagram-hashtag-generator.html +0 -0
- data/_includes/contenttool_banner.html +266 -0
- data/_includes/contenttool_result_banner.html +135 -0
- data/_layouts/appscms-download.html +110 -99
- data/_layouts/appscms-feature.html +94 -77
- data/assets/.DS_Store +0 -0
- data/assets/js/TopScroll.js +8 -0
- data/assets/js/adBlocker.js +68 -0
- data/assets/js/ads.js +8 -0
- data/assets/js/append-div.js +10 -0
- data/assets/js/appscms-infographics.js +0 -0
- data/assets/js/appscms-login.js +447 -0
- data/assets/js/appscms-search-home1.js +136 -0
- data/assets/js/appscms-search.js +133 -0
- data/assets/js/appscms-theme.js +459 -0
- data/assets/js/batch.js +219 -0
- data/assets/js/calculator-tooltip.js +3 -0
- data/assets/js/devtools.js +82 -0
- data/assets/js/face-api.js +38064 -0
- data/assets/js/face-detection.js +303 -0
- data/assets/js/faceSystem.js +0 -0
- data/assets/js/featureResult.js +48 -0
- data/assets/js/frame.js +264 -0
- data/assets/js/googledrive.js +158 -0
- data/assets/js/homeResult.js +37 -0
- data/assets/js/manifest.json +17 -0
- data/assets/js/models/age_gender_model-shard1 +0 -0
- data/assets/js/models/age_gender_model-weights_manifest.json +1 -0
- data/assets/js/models/face_expression_model-shard1 +0 -0
- data/assets/js/models/face_expression_model-weights_manifest.json +1 -0
- data/assets/js/models/face_landmark_68_model-shard1 +0 -0
- data/assets/js/models/face_landmark_68_model-weights_manifest.json +1 -0
- data/assets/js/models/face_landmark_68_tiny_model-shard1 +0 -0
- data/assets/js/models/face_landmark_68_tiny_model-weights_manifest.json +1 -0
- data/assets/js/models/face_recognition_model-shard1 +0 -0
- data/assets/js/models/face_recognition_model-shard2 +6 -0
- data/assets/js/models/face_recognition_model-weights_manifest.json +1 -0
- data/assets/js/models/mtcnn_model-shard1 +0 -0
- data/assets/js/models/mtcnn_model-weights_manifest.json +1 -0
- data/assets/js/models/ssd_mobilenetv1_model-shard1 +0 -0
- data/assets/js/models/ssd_mobilenetv1_model-shard2 +145 -0
- data/assets/js/models/ssd_mobilenetv1_model-weights_manifest.json +1 -0
- data/assets/js/models/tiny_face_detector_model-shard1 +0 -0
- data/assets/js/models/tiny_face_detector_model-weights_manifest.json +1 -0
- data/assets/js/multiselect.js +185 -0
- data/assets/js/partytown/debug/partytown-atomics.js +929 -0
- data/assets/js/partytown/debug/partytown-media.js +374 -0
- data/assets/js/partytown/debug/partytown-sandbox-sw.js +920 -0
- data/assets/js/partytown/debug/partytown-sw.js +59 -0
- data/assets/js/partytown/debug/partytown-ww-atomics.js +2699 -0
- data/assets/js/partytown/debug/partytown-ww-sw.js +2691 -0
- data/assets/js/partytown/debug/partytown.js +114 -0
- data/assets/js/partytown/partytown-atomics.js +600 -0
- data/assets/js/partytown/partytown-media.js +2 -0
- data/assets/js/partytown/partytown-sw.js +50 -0
- data/assets/js/perspective.min.js +182 -0
- data/assets/js/photo-effects.json +85 -0
- data/assets/js/redirectResult.js +10 -0
- data/assets/js/sharePage.js +65 -0
- data/assets/js/testing-batch.js +39 -0
- data/assets/js/theme.js +104 -0
- data/assets/js/usageTracking.js +143 -0
- data/assets/js/usageTrackingEvents.js +6 -0
- data/assets/js/userUsageCount.js +0 -0
- data/assets/js/webvitals.js +5 -0
- metadata +65 -3
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
// Generate a unique ID for the user (if not already generated)
|
|
2
|
+
const generateUserID = () => {
|
|
3
|
+
// Check if the user ID is already stored in cookies or local storage
|
|
4
|
+
const storedUserID = getStoredUserID();
|
|
5
|
+
|
|
6
|
+
if (storedUserID) {
|
|
7
|
+
return storedUserID;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
// Example: Generating a random string
|
|
11
|
+
const characters =
|
|
12
|
+
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
|
|
13
|
+
let id = "";
|
|
14
|
+
for (let i = 0; i < 10; i++) {
|
|
15
|
+
id += characters.charAt(Math.floor(Math.random() * characters.length));
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
// Store the generated user ID in cookies or local storage
|
|
19
|
+
storeUserID(id);
|
|
20
|
+
|
|
21
|
+
return id;
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
// Get the stored user ID from cookies or local storage
|
|
25
|
+
const getStoredUserID = () => {
|
|
26
|
+
return localStorage.getItem("userID");
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
// Store the user ID in cookies or local storage
|
|
30
|
+
const storeUserID = (userID) => {
|
|
31
|
+
localStorage.setItem("userID", userID);
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
// Get the current date in YYYY-MM-DD format
|
|
35
|
+
const getCurrentDate = () => {
|
|
36
|
+
const today = new Date();
|
|
37
|
+
const year = today.getFullYear();
|
|
38
|
+
const month = String(today.getMonth() + 1).padStart(2, "0");
|
|
39
|
+
const day = String(today.getDate()).padStart(2, "0");
|
|
40
|
+
return `${year}-${month}-${day}`;
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
let userTrackingCountLimit = "20";
|
|
44
|
+
const checkUsage = () => {
|
|
45
|
+
const today = new Date().toDateString();
|
|
46
|
+
const usageCount = getCookie("featureUsageCount");
|
|
47
|
+
|
|
48
|
+
if (usageCount) {
|
|
49
|
+
// User has already used the feature today
|
|
50
|
+
if (usageCount >= Number(userTrackingCountLimit)) {
|
|
51
|
+
showShareModal();
|
|
52
|
+
} else {
|
|
53
|
+
incrementUsageCount(usageCount);
|
|
54
|
+
}
|
|
55
|
+
} else {
|
|
56
|
+
// First usage of the day
|
|
57
|
+
setCookie("featureUsageCount", 1, getExpirationDate());
|
|
58
|
+
}
|
|
59
|
+
const userID = generateUserID();
|
|
60
|
+
try {
|
|
61
|
+
if ((usageCount + 1) % 5 === 0) {
|
|
62
|
+
gtag("event", `feature_used_${usageCount + 1}_times`, {
|
|
63
|
+
user_id: userID,
|
|
64
|
+
userID: userID,
|
|
65
|
+
feature: window.location.pathname + location.search,
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
} catch (error) {
|
|
69
|
+
console.log(error);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
try {
|
|
73
|
+
gtag("event", "feature_used", {
|
|
74
|
+
user_id: userID,
|
|
75
|
+
userID: userID,
|
|
76
|
+
feature: window.location.pathname + location.search,
|
|
77
|
+
});
|
|
78
|
+
} catch (error) {
|
|
79
|
+
console.log(error);
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
const incrementUsageCount = (count) => {
|
|
83
|
+
const today = new Date().toDateString();
|
|
84
|
+
|
|
85
|
+
if (count >= Number(userTrackingCountLimit)) {
|
|
86
|
+
showShareModal();
|
|
87
|
+
} else {
|
|
88
|
+
count++;
|
|
89
|
+
setCookie("featureUsageCount", count, getExpirationDate());
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
const showShareModal = () => {
|
|
94
|
+
document.getElementById("shareModal").style.display = "block";
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
const handleShare = () => {
|
|
98
|
+
const usageCount = getCookie("featureUsageCount");
|
|
99
|
+
if (usageCount) {
|
|
100
|
+
setCookie("featureUsageCount", 0, getExpirationDate());
|
|
101
|
+
}
|
|
102
|
+
document.getElementById("shareModal").style.display = "none";
|
|
103
|
+
try {
|
|
104
|
+
const userID = generateUserID();
|
|
105
|
+
gtag("event", "feature_shared", {
|
|
106
|
+
user_id: userID,
|
|
107
|
+
userID: userID,
|
|
108
|
+
feature: window.location.pathname + location.search,
|
|
109
|
+
});
|
|
110
|
+
} catch (error) {
|
|
111
|
+
console.log(error);
|
|
112
|
+
}
|
|
113
|
+
};
|
|
114
|
+
|
|
115
|
+
const getCookie = (name) => {
|
|
116
|
+
const cookies = document.cookie.split(";");
|
|
117
|
+
for (let i = 0; i < cookies.length; i++) {
|
|
118
|
+
const cookie = cookies[i].trim();
|
|
119
|
+
if (cookie.indexOf(name + "=") === 0) {
|
|
120
|
+
return parseInt(cookie.substring((name + "=").length, cookie.length));
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
return null;
|
|
124
|
+
};
|
|
125
|
+
|
|
126
|
+
const setCookie = (name, value, expires) => {
|
|
127
|
+
document.cookie = `${name}=${value};expires=${expires};path=/`;
|
|
128
|
+
};
|
|
129
|
+
|
|
130
|
+
const getExpirationDate = () => {
|
|
131
|
+
const date = new Date();
|
|
132
|
+
date.setTime(date.getTime() + 24 * 60 * 60 * 1000); // 24 hours in milliseconds
|
|
133
|
+
return date.toUTCString();
|
|
134
|
+
};
|
|
135
|
+
const socialShare = document.querySelectorAll(".social-share");
|
|
136
|
+
|
|
137
|
+
if (socialShare) {
|
|
138
|
+
Array.from(socialShare).map((item) => {
|
|
139
|
+
item.addEventListener("click", () => {
|
|
140
|
+
handleShare();
|
|
141
|
+
});
|
|
142
|
+
});
|
|
143
|
+
}
|
|
File without changes
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: appscms-tools-theme
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 5.2.
|
|
4
|
+
version: 5.2.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- vivek-appscms
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2025-
|
|
11
|
+
date: 2025-10-09 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: jekyll
|
|
@@ -168,6 +168,7 @@ files:
|
|
|
168
168
|
- _includes/Usp/usp.html
|
|
169
169
|
- _includes/adblocker.html
|
|
170
170
|
- _includes/adsense/adsense.html
|
|
171
|
+
- _includes/aitools/instagram-hashtag-generator.html
|
|
171
172
|
- _includes/alternates/alternates.html
|
|
172
173
|
- _includes/appscms/.DS_Store
|
|
173
174
|
- _includes/appscms/category-tabs/category-tabs.html
|
|
@@ -214,6 +215,8 @@ files:
|
|
|
214
215
|
- _includes/authors/authors.html
|
|
215
216
|
- _includes/batch-conversion.html
|
|
216
217
|
- _includes/bookmark.html
|
|
218
|
+
- _includes/contenttool_banner.html
|
|
219
|
+
- _includes/contenttool_result_banner.html
|
|
217
220
|
- _includes/cssfile/links.html
|
|
218
221
|
- _includes/custom-head.html
|
|
219
222
|
- _includes/customCode.html
|
|
@@ -595,6 +598,65 @@ files:
|
|
|
595
598
|
- assets/images/vectorpaint.svg
|
|
596
599
|
- assets/images/video.png
|
|
597
600
|
- assets/instagram.svg
|
|
601
|
+
- assets/js/TopScroll.js
|
|
602
|
+
- assets/js/adBlocker.js
|
|
603
|
+
- assets/js/ads.js
|
|
604
|
+
- assets/js/append-div.js
|
|
605
|
+
- assets/js/appscms-infographics.js
|
|
606
|
+
- assets/js/appscms-login.js
|
|
607
|
+
- assets/js/appscms-search-home1.js
|
|
608
|
+
- assets/js/appscms-search.js
|
|
609
|
+
- assets/js/appscms-theme.js
|
|
610
|
+
- assets/js/batch.js
|
|
611
|
+
- assets/js/calculator-tooltip.js
|
|
612
|
+
- assets/js/devtools.js
|
|
613
|
+
- assets/js/face-api.js
|
|
614
|
+
- assets/js/face-detection.js
|
|
615
|
+
- assets/js/faceSystem.js
|
|
616
|
+
- assets/js/featureResult.js
|
|
617
|
+
- assets/js/frame.js
|
|
618
|
+
- assets/js/googledrive.js
|
|
619
|
+
- assets/js/homeResult.js
|
|
620
|
+
- assets/js/manifest.json
|
|
621
|
+
- assets/js/models/age_gender_model-shard1
|
|
622
|
+
- assets/js/models/age_gender_model-weights_manifest.json
|
|
623
|
+
- assets/js/models/face_expression_model-shard1
|
|
624
|
+
- assets/js/models/face_expression_model-weights_manifest.json
|
|
625
|
+
- assets/js/models/face_landmark_68_model-shard1
|
|
626
|
+
- assets/js/models/face_landmark_68_model-weights_manifest.json
|
|
627
|
+
- assets/js/models/face_landmark_68_tiny_model-shard1
|
|
628
|
+
- assets/js/models/face_landmark_68_tiny_model-weights_manifest.json
|
|
629
|
+
- assets/js/models/face_recognition_model-shard1
|
|
630
|
+
- assets/js/models/face_recognition_model-shard2
|
|
631
|
+
- assets/js/models/face_recognition_model-weights_manifest.json
|
|
632
|
+
- assets/js/models/mtcnn_model-shard1
|
|
633
|
+
- assets/js/models/mtcnn_model-weights_manifest.json
|
|
634
|
+
- assets/js/models/ssd_mobilenetv1_model-shard1
|
|
635
|
+
- assets/js/models/ssd_mobilenetv1_model-shard2
|
|
636
|
+
- assets/js/models/ssd_mobilenetv1_model-weights_manifest.json
|
|
637
|
+
- assets/js/models/tiny_face_detector_model-shard1
|
|
638
|
+
- assets/js/models/tiny_face_detector_model-weights_manifest.json
|
|
639
|
+
- assets/js/multiselect.js
|
|
640
|
+
- assets/js/partytown/debug/partytown-atomics.js
|
|
641
|
+
- assets/js/partytown/debug/partytown-media.js
|
|
642
|
+
- assets/js/partytown/debug/partytown-sandbox-sw.js
|
|
643
|
+
- assets/js/partytown/debug/partytown-sw.js
|
|
644
|
+
- assets/js/partytown/debug/partytown-ww-atomics.js
|
|
645
|
+
- assets/js/partytown/debug/partytown-ww-sw.js
|
|
646
|
+
- assets/js/partytown/debug/partytown.js
|
|
647
|
+
- assets/js/partytown/partytown-atomics.js
|
|
648
|
+
- assets/js/partytown/partytown-media.js
|
|
649
|
+
- assets/js/partytown/partytown-sw.js
|
|
650
|
+
- assets/js/perspective.min.js
|
|
651
|
+
- assets/js/photo-effects.json
|
|
652
|
+
- assets/js/redirectResult.js
|
|
653
|
+
- assets/js/sharePage.js
|
|
654
|
+
- assets/js/testing-batch.js
|
|
655
|
+
- assets/js/theme.js
|
|
656
|
+
- assets/js/usageTracking.js
|
|
657
|
+
- assets/js/usageTrackingEvents.js
|
|
658
|
+
- assets/js/userUsageCount.js
|
|
659
|
+
- assets/js/webvitals.js
|
|
598
660
|
- assets/like.svg
|
|
599
661
|
- assets/linkdin.svg
|
|
600
662
|
- assets/noserverupload.svg
|
|
@@ -631,7 +693,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
631
693
|
- !ruby/object:Gem::Version
|
|
632
694
|
version: '0'
|
|
633
695
|
requirements: []
|
|
634
|
-
rubygems_version: 3.3.
|
|
696
|
+
rubygems_version: 3.3.7
|
|
635
697
|
signing_key:
|
|
636
698
|
specification_version: 4
|
|
637
699
|
summary: Appscms theme for all tools
|