aboutsummaryrefslogtreecommitdiffstats
path: root/recipes/google-classroom
diff options
context:
space:
mode:
authorLibravatar MCMXC <16797721+mcmxcdev@users.noreply.github.com>2023-07-26 06:29:03 -0600
committerLibravatar GitHub <noreply@github.com>2023-07-26 17:59:03 +0530
commit9b8f01716774a960073e944823ab727cc867a8f6 (patch)
tree732b83770baa78f5cf12776aaa33ce65bebfa418 /recipes/google-classroom
parentAdd Excalidraw recipe (#393) (diff)
downloadferdium-recipes-9b8f01716774a960073e944823ab727cc867a8f6.tar.gz
ferdium-recipes-9b8f01716774a960073e944823ab727cc867a8f6.tar.zst
ferdium-recipes-9b8f01716774a960073e944823ab727cc867a8f6.zip
chore: improve lint setup (#397)
- update eslint config to closely mirror the ones from ferdium-app - add .eslintignore - opt in to eslint `reportUnusedDisableDirectives` config option - remove `trailingComma: all` from `prettier` config which is default in `prettier` v3 - autofix or disable a lot of lint issues throughout codebase - add `volta` configuration to `package.json` to autoload correct `node` and `pnpm` versions - upgrade all `eslint` and `prettier` related dependencies to latest - update lint:fix npm script - reformat touched files with prettier - bumped up minor version for all recipes that have changes - introduced injection of 'service.css' where it was missing in many recipes --------- Co-authored-by: Vijay A <vraravam@users.noreply.github.com>
Diffstat (limited to 'recipes/google-classroom')
-rw-r--r--recipes/google-classroom/LICENSE21
-rw-r--r--recipes/google-classroom/darkmode.css154
-rw-r--r--recipes/google-classroom/icon.svg1
-rw-r--r--recipes/google-classroom/index.js1
-rw-r--r--recipes/google-classroom/package.json10
-rw-r--r--recipes/google-classroom/webview.js34
6 files changed, 221 insertions, 0 deletions
diff --git a/recipes/google-classroom/LICENSE b/recipes/google-classroom/LICENSE
new file mode 100644
index 0000000..516df99
--- /dev/null
+++ b/recipes/google-classroom/LICENSE
@@ -0,0 +1,21 @@
1MIT License
2
3Copyright (c) 2020 Tania R. Zúñiga
4
5Permission is hereby granted, free of charge, to any person obtaining a copy
6of this software and associated documentation files (the "Software"), to deal
7in the Software without restriction, including without limitation the rights
8to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9copies of the Software, and to permit persons to whom the Software is
10furnished to do so, subject to the following conditions:
11
12The above copyright notice and this permission notice shall be included in all
13copies or substantial portions of the Software.
14
15THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21SOFTWARE.
diff --git a/recipes/google-classroom/darkmode.css b/recipes/google-classroom/darkmode.css
new file mode 100644
index 0000000..0e47715
--- /dev/null
+++ b/recipes/google-classroom/darkmode.css
@@ -0,0 +1,154 @@
1html {
2-webkit-filter:invert(90%) hue-rotate(180deg)!important;
3filter:invert(90%) hue-rotate(180deg)!important;
4background:#191919!important;
5}
6
7.CflnFb {
8background-color:#7b96c1!important;
9filter:invert(100%) hue-rotate(180deg) brightness(1.1) saturate(140%) contrast(105%)!important;
10color:#FFF!important;
11}
12
13.h5t3Nc .GrK4Mb,.h5t3Nc .hVDHke,.h5t3Nc .l7VQxb,.h5t3Nc .zP0T0b,.h5t3Nc .qNixLe {
14background-color:#c9c9c9;
15border-color:#FFF;
16}
17
18.lq96Td {
19background-color:#003e3a!important;
20color:#FFF!important;
21filter:invert(100%) hue-rotate(180deg) brightness(1.1) saturate(140%) contrast(105%)!important;
22}
23
24.GooADb {
25color:#9dceff!important;
26text-shadow:0 0 #404040!important;
27}
28
29.bJZIjf.qs41qe {
30opacity:0.3;
31}
32
33#gb a.gb_ja,#gb a.gb_ja:visited,#gb a.gb_ja:active,#gb a.gb_ka,#gb a.gb_ka:visited {
34color:rgba(255,255,255,0.87)!important;
35text-decoration:none!important;
36background-color:#000!important;
37}
38
39.M6tHv {
40background-color:#444!important;
41}
42
43.gb_ea.gb_6f {
44background-color:#e8e8e8!important;
45}
46
47.gb_yc svg,.gb_kc svg {
48color:#000!important;
49opacity:.54!important;
50}
51
52.HkPXyb {
53background-color:#f9f9f9;
54}
55
56.EfQccc.F262Ye.EiZ8Dd::after {
57border-color:#000;
58}
59
60.uHMk6b.fsHoPb {
61border:7px solid #000!important;
62}
63
64.g3VIld.GFhhge.Up8vH.hFEqNb.J9Nfi.iWO5td {
65filter:invert(100%) hue-rotate(180deg) brightness(1.1) saturate(140%) contrast(105%)!important;
66background:#191919!important;
67color:#FFF!important;
68}
69
70.g3dbUc .jKgTF,.QGRmIf,.lcPUt {
71filter:invert(100%) hue-rotate(180deg) brightness(1.1) saturate(140%) contrast(105%)!important;
72font-weight:700!important;
73mix-blend-mode:darken;
74}
75
76.g3dbUc.UflSff {
77filter:invert(100%) hue-rotate(180deg) saturate(140%) contrast(105%) opacity(40%)!important;
78color:#404040!important;
79}
80
81.NlL62b.EfQccc.elYzab-cXXICe-Hjleke.EiZ8Dd.UflSff.jKgTF {
82filter:invert(100%) hue-rotate(180deg) saturate(140%) contrast(50%) brightness(140%) opacity(90%)!important;
83}
84
85.NlL62b.EfQccc.elYzab-cXXICe-Hjleke.EiZ8Dd.UflSff {
86filter:opacity(80%)!important;
87}
88
89.NlL62b.EfQccc.elYzab-cXXICe-Hjleke.EiZ8Dd.jKgTF {
90filter:invert(100%) hue-rotate(180deg) brightness(1.1) saturate(140%) contrast(105%)!important;
91font-weight:700!important;
92}
93
94.W0m3G {
95font-weight:500!important;
96}
97
98.g3dbUc {
99font-weight:900!important;
100color:#000!important;
101}
102
103.g3dbUc.smECzc {
104color:#666!important;
105}
106
107.FAxxKc {
108font-weight:600!important;
109color:#000!important;
110}
111
112.rq8Mwb {
113filter:invert(100%)!important;
114}
115
116.WpDZC,.zHQkBf {
117color:#c1c1c1!important;
118}
119
120.XHsn7e,.YqtBEc,.xuBVOe,.Mh0NNb,.ck4bY,.asor.asor_i0,.gsoi.gsoi_w,.gsoi.gsoi_c.asor_v,.gsoi.gsoi_9.asor_v,.gsoi.gsoi_7.asor_v,#vqd3vxfo4jpl,#pnsketfj08m,.st-wc,.NlL62b.EfQccc.elYzab-cXXICe-Hjleke.EiZ8Dd,.a63c9c.ztKZ3d,.a63c9c,.Oxm52e,.kImhzd,.hsrazb,.Tnsqdc,.kw5sif,.kXIDId,.sIyjR,.ghXZpb,.whsOnd.zHQkBf {
121filter:invert(100%) hue-rotate(180deg) brightness(1.1) saturate(140%) contrast(105%)!important;
122}
123
124.gb_3,#rAECCd,.jPtXgd {
125font-weight:600!important;
126}
127
128#I0_1513527137275,.gb_W,:not([data-date]):before,img,svg,.jPtXgd,.gb_Wa.gb_Fe,.fFW7wc-OEVmcd {
129filter:invert(100%) hue-rotate(180deg) brightness(1.1) contrast(105%)!important;
130}
131
132.Wbs5sd,.rF3YF.wmyjXb,.A6wOnd,.VgueE,.Jmftzc.gVNoLb.EiZ8Dd,.Jmftzc.K9QN7e.EiZ8Dd.UflSff,.Jmftzc.K9QN7e.EiZ8Dd,.i5a7ie,.gb_Eb {
133color:#000!important;
134}
135
136.EfQccc.Hrn1mc.EiZ8Dd::after,.EfQccc.MmaWIb.KKjvXb.EiZ8Dd::after {
137border:1px solid #000;
138}
139
140.XBkKC.WSvIUd,.logo-plus-button-lockup-text {
141color:#FFF;
142}
143
144.IP9Hyd .O0WRkf:first-child,.gb_je.gb_ee {
145color:#fff;
146}
147
148.Jmftzc.gVNoLb.LKeQwe,.Jmftzc.EiZ8Dd {
149color:#000;
150}
151
152.gb_fa.gb_ng,.gb_Z {
153font-weight:bolder!important;
154}
diff --git a/recipes/google-classroom/icon.svg b/recipes/google-classroom/icon.svg
new file mode 100644
index 0000000..3a48ab5
--- /dev/null
+++ b/recipes/google-classroom/icon.svg
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="1024pt" height="1024pt" viewBox="0 0 1024 1024"><path style="stroke:none;fill-rule:nonzero;fill:#ffc107;fill-opacity:1" d="M874.668 896H149.332C102.273 896 64 857.727 64 810.668V213.332C64 166.273 102.273 128 149.332 128h725.336C921.727 128 960 166.273 960 213.332v597.336C960 857.727 921.727 896 874.668 896zm0 0"/><path style="stroke:none;fill-rule:nonzero;fill:#388e3c;fill-opacity:1" d="M149.332 213.332h725.336v597.336H149.332zm0 0"/><path style="stroke:none;fill-rule:nonzero;fill:#fff;fill-opacity:1" d="M597.332 768H768v42.668H597.332zM512 362.668c-35.348 0-64 28.652-64 64 0 35.344 28.652 64 64 64s64-28.656 64-64c0-35.348-28.652-64-64-64zm0 0"/><path style="stroke:none;fill-rule:nonzero;fill:#a5d6a7;fill-opacity:1" d="M341.332 448c-23.562 0-42.664 19.102-42.664 42.668 0 23.562 19.102 42.664 42.664 42.664 23.566 0 42.668-19.102 42.668-42.664C384 467.102 364.898 448 341.332 448zm0 0"/><path style="stroke:none;fill-rule:nonzero;fill:#2e7d32;fill-opacity:1" d="M149.332 213.332h725.336V256H149.332zm0 0"/><path style="stroke:none;fill-rule:nonzero;fill:#ffab00;fill-opacity:1" d="M768 810.668H597.332L682.668 896h170.664zm0 0"/><path style="stroke:none;fill-rule:nonzero;fill:#a5d6a7;fill-opacity:1" d="M682.668 448C659.102 448 640 467.102 640 490.668c0 23.562 19.102 42.664 42.668 42.664 23.562 0 42.664-19.102 42.664-42.664 0-23.566-19.102-42.668-42.664-42.668zm106.664 164.012c0-9.496-3.477-18.645-9.984-25.578-14.782-15.766-46.27-31.766-96.68-31.766-50.41 0-81.898 16-96.684 31.766-6.507 6.933-9.984 16.062-9.984 25.578V640h213.332zm-341.332 0c0-9.496-3.477-18.645-9.984-25.578-14.786-15.766-46.274-31.766-96.684-31.766s-81.898 16-96.68 31.766c-6.507 6.933-9.984 16.062-9.984 25.578V640H448zm0 0"/><path style="stroke:none;fill-rule:nonzero;fill:#fff;fill-opacity:1" d="M640 591.828c0-11.39-4.18-22.355-11.988-30.676C610.282 542.23 572.48 512 512 512c-60.48 0-98.281 30.23-116.012 49.129-7.808 8.32-11.988 19.285-11.988 30.7V640h256zm0 0"/></svg> \ No newline at end of file
diff --git a/recipes/google-classroom/index.js b/recipes/google-classroom/index.js
new file mode 100644
index 0000000..dd41f72
--- /dev/null
+++ b/recipes/google-classroom/index.js
@@ -0,0 +1 @@
module.exports = Ferdium => Ferdium;
diff --git a/recipes/google-classroom/package.json b/recipes/google-classroom/package.json
new file mode 100644
index 0000000..3fcb079
--- /dev/null
+++ b/recipes/google-classroom/package.json
@@ -0,0 +1,10 @@
1{
2 "id": "google-classroom",
3 "name": "Google Classroom",
4 "version": "1.3.0",
5 "license": "MIT",
6 "repository": "https://github.com/TanZng/ferdi-googleclassroom",
7 "config": {
8 "serviceURL": "https://classroom.google.com/u/0/"
9 }
10}
diff --git a/recipes/google-classroom/webview.js b/recipes/google-classroom/webview.js
new file mode 100644
index 0000000..47bfe80
--- /dev/null
+++ b/recipes/google-classroom/webview.js
@@ -0,0 +1,34 @@
1function _interopRequireDefault(obj) {
2 return obj && obj.__esModule ? obj : { default: obj };
3}
4
5const _path = _interopRequireDefault(require('path'));
6
7module.exports = Ferdium => {
8 // if the user is on googleclassroom landing page, go to the login page.
9 if (
10 location.hostname === 'edu.google.com' &&
11 location.href.includes('workspace-for-education/classroom/')
12 ) {
13 location.href =
14 'https://accounts.google.com/AccountChooser?continue=https://classroom.google.com/u/0/';
15 }
16
17 const getMessages = () => {
18 let homework = 0;
19 const upcomingAssignment = document.querySelectorAll(
20 '.hrUpcomingAssignmentGroup',
21 );
22 if (upcomingAssignment.length > 0) {
23 let i;
24 for (i = 0; i < upcomingAssignment.length; i += 1) {
25 homework += upcomingAssignment[i].childElementCount;
26 }
27 }
28 Ferdium.setBadge(homework);
29 };
30
31 Ferdium.loop(getMessages);
32
33 Ferdium.injectCSS(_path.default.join(__dirname, 'service.css'));
34};