diff options
author | MCMXC <16797721+mcmxcdev@users.noreply.github.com> | 2023-07-26 06:29:03 -0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-07-26 17:59:03 +0530 |
commit | 9b8f01716774a960073e944823ab727cc867a8f6 (patch) | |
tree | 732b83770baa78f5cf12776aaa33ce65bebfa418 /recipes/google-classroom | |
parent | Add Excalidraw recipe (#393) (diff) | |
download | ferdium-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/LICENSE | 21 | ||||
-rw-r--r-- | recipes/google-classroom/darkmode.css | 154 | ||||
-rw-r--r-- | recipes/google-classroom/icon.svg | 1 | ||||
-rw-r--r-- | recipes/google-classroom/index.js | 1 | ||||
-rw-r--r-- | recipes/google-classroom/package.json | 10 | ||||
-rw-r--r-- | recipes/google-classroom/webview.js | 34 |
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 @@ | |||
1 | MIT License | ||
2 | |||
3 | Copyright (c) 2020 Tania R. Zúñiga | ||
4 | |||
5 | Permission is hereby granted, free of charge, to any person obtaining a copy | ||
6 | of this software and associated documentation files (the "Software"), to deal | ||
7 | in the Software without restriction, including without limitation the rights | ||
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||
9 | copies of the Software, and to permit persons to whom the Software is | ||
10 | furnished to do so, subject to the following conditions: | ||
11 | |||
12 | The above copyright notice and this permission notice shall be included in all | ||
13 | copies or substantial portions of the Software. | ||
14 | |||
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||
21 | SOFTWARE. | ||
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 @@ | |||
1 | html { | ||
2 | -webkit-filter:invert(90%) hue-rotate(180deg)!important; | ||
3 | filter:invert(90%) hue-rotate(180deg)!important; | ||
4 | background:#191919!important; | ||
5 | } | ||
6 | |||
7 | .CflnFb { | ||
8 | background-color:#7b96c1!important; | ||
9 | filter:invert(100%) hue-rotate(180deg) brightness(1.1) saturate(140%) contrast(105%)!important; | ||
10 | color:#FFF!important; | ||
11 | } | ||
12 | |||
13 | .h5t3Nc .GrK4Mb,.h5t3Nc .hVDHke,.h5t3Nc .l7VQxb,.h5t3Nc .zP0T0b,.h5t3Nc .qNixLe { | ||
14 | background-color:#c9c9c9; | ||
15 | border-color:#FFF; | ||
16 | } | ||
17 | |||
18 | .lq96Td { | ||
19 | background-color:#003e3a!important; | ||
20 | color:#FFF!important; | ||
21 | filter:invert(100%) hue-rotate(180deg) brightness(1.1) saturate(140%) contrast(105%)!important; | ||
22 | } | ||
23 | |||
24 | .GooADb { | ||
25 | color:#9dceff!important; | ||
26 | text-shadow:0 0 #404040!important; | ||
27 | } | ||
28 | |||
29 | .bJZIjf.qs41qe { | ||
30 | opacity: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 { | ||
34 | color:rgba(255,255,255,0.87)!important; | ||
35 | text-decoration:none!important; | ||
36 | background-color:#000!important; | ||
37 | } | ||
38 | |||
39 | .M6tHv { | ||
40 | background-color:#444!important; | ||
41 | } | ||
42 | |||
43 | .gb_ea.gb_6f { | ||
44 | background-color:#e8e8e8!important; | ||
45 | } | ||
46 | |||
47 | .gb_yc svg,.gb_kc svg { | ||
48 | color:#000!important; | ||
49 | opacity:.54!important; | ||
50 | } | ||
51 | |||
52 | .HkPXyb { | ||
53 | background-color:#f9f9f9; | ||
54 | } | ||
55 | |||
56 | .EfQccc.F262Ye.EiZ8Dd::after { | ||
57 | border-color:#000; | ||
58 | } | ||
59 | |||
60 | .uHMk6b.fsHoPb { | ||
61 | border:7px solid #000!important; | ||
62 | } | ||
63 | |||
64 | .g3VIld.GFhhge.Up8vH.hFEqNb.J9Nfi.iWO5td { | ||
65 | filter:invert(100%) hue-rotate(180deg) brightness(1.1) saturate(140%) contrast(105%)!important; | ||
66 | background:#191919!important; | ||
67 | color:#FFF!important; | ||
68 | } | ||
69 | |||
70 | .g3dbUc .jKgTF,.QGRmIf,.lcPUt { | ||
71 | filter:invert(100%) hue-rotate(180deg) brightness(1.1) saturate(140%) contrast(105%)!important; | ||
72 | font-weight:700!important; | ||
73 | mix-blend-mode:darken; | ||
74 | } | ||
75 | |||
76 | .g3dbUc.UflSff { | ||
77 | filter:invert(100%) hue-rotate(180deg) saturate(140%) contrast(105%) opacity(40%)!important; | ||
78 | color:#404040!important; | ||
79 | } | ||
80 | |||
81 | .NlL62b.EfQccc.elYzab-cXXICe-Hjleke.EiZ8Dd.UflSff.jKgTF { | ||
82 | filter:invert(100%) hue-rotate(180deg) saturate(140%) contrast(50%) brightness(140%) opacity(90%)!important; | ||
83 | } | ||
84 | |||
85 | .NlL62b.EfQccc.elYzab-cXXICe-Hjleke.EiZ8Dd.UflSff { | ||
86 | filter:opacity(80%)!important; | ||
87 | } | ||
88 | |||
89 | .NlL62b.EfQccc.elYzab-cXXICe-Hjleke.EiZ8Dd.jKgTF { | ||
90 | filter:invert(100%) hue-rotate(180deg) brightness(1.1) saturate(140%) contrast(105%)!important; | ||
91 | font-weight:700!important; | ||
92 | } | ||
93 | |||
94 | .W0m3G { | ||
95 | font-weight:500!important; | ||
96 | } | ||
97 | |||
98 | .g3dbUc { | ||
99 | font-weight:900!important; | ||
100 | color:#000!important; | ||
101 | } | ||
102 | |||
103 | .g3dbUc.smECzc { | ||
104 | color:#666!important; | ||
105 | } | ||
106 | |||
107 | .FAxxKc { | ||
108 | font-weight:600!important; | ||
109 | color:#000!important; | ||
110 | } | ||
111 | |||
112 | .rq8Mwb { | ||
113 | filter:invert(100%)!important; | ||
114 | } | ||
115 | |||
116 | .WpDZC,.zHQkBf { | ||
117 | color:#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 { | ||
121 | filter:invert(100%) hue-rotate(180deg) brightness(1.1) saturate(140%) contrast(105%)!important; | ||
122 | } | ||
123 | |||
124 | .gb_3,#rAECCd,.jPtXgd { | ||
125 | font-weight:600!important; | ||
126 | } | ||
127 | |||
128 | #I0_1513527137275,.gb_W,:not([data-date]):before,img,svg,.jPtXgd,.gb_Wa.gb_Fe,.fFW7wc-OEVmcd { | ||
129 | filter: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 { | ||
133 | color:#000!important; | ||
134 | } | ||
135 | |||
136 | .EfQccc.Hrn1mc.EiZ8Dd::after,.EfQccc.MmaWIb.KKjvXb.EiZ8Dd::after { | ||
137 | border:1px solid #000; | ||
138 | } | ||
139 | |||
140 | .XBkKC.WSvIUd,.logo-plus-button-lockup-text { | ||
141 | color:#FFF; | ||
142 | } | ||
143 | |||
144 | .IP9Hyd .O0WRkf:first-child,.gb_je.gb_ee { | ||
145 | color:#fff; | ||
146 | } | ||
147 | |||
148 | .Jmftzc.gVNoLb.LKeQwe,.Jmftzc.EiZ8Dd { | ||
149 | color:#000; | ||
150 | } | ||
151 | |||
152 | .gb_fa.gb_ng,.gb_Z { | ||
153 | font-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 @@ | |||
1 | function _interopRequireDefault(obj) { | ||
2 | return obj && obj.__esModule ? obj : { default: obj }; | ||
3 | } | ||
4 | |||
5 | const _path = _interopRequireDefault(require('path')); | ||
6 | |||
7 | module.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 | }; | ||