diff options
-rw-r--r-- | all.json | 238 | ||||
-rw-r--r-- | recipes/googleclassroom/LICENSE | 21 | ||||
-rw-r--r-- | recipes/googleclassroom/README.md | 23 | ||||
-rw-r--r-- | recipes/googleclassroom/darkmode.css | 154 | ||||
-rw-r--r-- | recipes/googleclassroom/icon.png | bin | 0 -> 49059 bytes | |||
-rw-r--r-- | recipes/googleclassroom/icon.svg | 13 | ||||
-rw-r--r-- | recipes/googleclassroom/index.js | 11 | ||||
-rw-r--r-- | recipes/googleclassroom/package.json | 15 | ||||
-rw-r--r-- | recipes/googleclassroom/service.css | 1 | ||||
-rw-r--r-- | recipes/googleclassroom/webview.js | 17 |
10 files changed, 484 insertions, 9 deletions
@@ -143,6 +143,17 @@ | |||
143 | } | 143 | } |
144 | }, | 144 | }, |
145 | { | 145 | { |
146 | "author": "Ferdi <hello@getferdi.com>", | ||
147 | "featured": false, | ||
148 | "id": "devdocs", | ||
149 | "name": "DevDocs", | ||
150 | "version": "1.0.0", | ||
151 | "icons": { | ||
152 | "png": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/devdocs/icon.png", | ||
153 | "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/devdocs/icon.svg" | ||
154 | } | ||
155 | }, | ||
156 | { | ||
146 | "author": "Stefan Malzner <stefan@adlk.io>", | 157 | "author": "Stefan Malzner <stefan@adlk.io>", |
147 | "featured": true, | 158 | "featured": true, |
148 | "id": "discord", | 159 | "id": "discord", |
@@ -154,6 +165,17 @@ | |||
154 | } | 165 | } |
155 | }, | 166 | }, |
156 | { | 167 | { |
168 | "author": "Ferdi <hello@getferdi.com>", | ||
169 | "featured": false, | ||
170 | "id": "disqus", | ||
171 | "name": "Disqus", | ||
172 | "version": "1.0.0", | ||
173 | "icons": { | ||
174 | "png": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/disqus/icon.png", | ||
175 | "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/disqus/icon.svg" | ||
176 | } | ||
177 | }, | ||
178 | { | ||
157 | "author": "Sylvain Cecchetto <cecchetto.sylvain@me.com>, Omove <61330514+omove@users.noreply.github.com>, Achim Leitner <1033549+fjl5@users.noreply.github.com>", | 179 | "author": "Sylvain Cecchetto <cecchetto.sylvain@me.com>, Omove <61330514+omove@users.noreply.github.com>, Achim Leitner <1033549+fjl5@users.noreply.github.com>", |
158 | "featured": false, | 180 | "featured": false, |
159 | "id": "element", | 181 | "id": "element", |
@@ -253,6 +275,28 @@ | |||
253 | } | 275 | } |
254 | }, | 276 | }, |
255 | { | 277 | { |
278 | "author": "Ferdi <hello@getferdi.com>", | ||
279 | "featured": false, | ||
280 | "id": "figma", | ||
281 | "name": "Figma", | ||
282 | "version": "1.0.0", | ||
283 | "icons": { | ||
284 | "png": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/figma/icon.png", | ||
285 | "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/figma/icon.svg" | ||
286 | } | ||
287 | }, | ||
288 | { | ||
289 | "author": "Ian Sealy <ferdi@iansealy.com>", | ||
290 | "featured": false, | ||
291 | "id": "fleep", | ||
292 | "name": "Fleep", | ||
293 | "version": "1.0.0", | ||
294 | "icons": { | ||
295 | "png": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/fleep/icon.png", | ||
296 | "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/fleep/icon.svg" | ||
297 | } | ||
298 | }, | ||
299 | { | ||
256 | "author": "Stefan Malzner <stefan@adlk.io>", | 300 | "author": "Stefan Malzner <stefan@adlk.io>", |
257 | "featured": false, | 301 | "featured": false, |
258 | "id": "flowdock", | 302 | "id": "flowdock", |
@@ -345,7 +389,7 @@ | |||
345 | "featured": true, | 389 | "featured": true, |
346 | "id": "gmail", | 390 | "id": "gmail", |
347 | "name": "Gmail", | 391 | "name": "Gmail", |
348 | "version": "1.3.3", | 392 | "version": "1.3.5", |
349 | "icons": { | 393 | "icons": { |
350 | "png": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/gmail/icon.png", | 394 | "png": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/gmail/icon.png", |
351 | "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/gmail/icon.svg" | 395 | "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/gmail/icon.svg" |
@@ -363,6 +407,17 @@ | |||
363 | } | 407 | } |
364 | }, | 408 | }, |
365 | { | 409 | { |
410 | "author": "Tania R. Zuniga <tania@tanx.dev>", | ||
411 | "featured": false, | ||
412 | "id": "googleclassroom", | ||
413 | "name": "Google Classroom", | ||
414 | "version": "1.0.2", | ||
415 | "icons": { | ||
416 | "png": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/googleclassroom/icon.png", | ||
417 | "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/googleclassroom/icon.svg" | ||
418 | } | ||
419 | }, | ||
420 | { | ||
366 | "author": "Djonathan Goulart<d.goulart@outlook.com.br>", | 421 | "author": "Djonathan Goulart<d.goulart@outlook.com.br>", |
367 | "featured": false, | 422 | "featured": false, |
368 | "id": "googledrive", | 423 | "id": "googledrive", |
@@ -396,6 +451,17 @@ | |||
396 | } | 451 | } |
397 | }, | 452 | }, |
398 | { | 453 | { |
454 | "author": "Stephen Papierski <stephenpapierski@gmail.com>", | ||
455 | "featured": false, | ||
456 | "id": "googlepodcasts", | ||
457 | "name": "Google Podcasts", | ||
458 | "version": "1.0.0", | ||
459 | "icons": { | ||
460 | "png": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/googlepodcasts/icon.png", | ||
461 | "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/googlepodcasts/icon.svg" | ||
462 | } | ||
463 | }, | ||
464 | { | ||
399 | "author": "Tristan D", | 465 | "author": "Tristan D", |
400 | "featured": false, | 466 | "featured": false, |
401 | "id": "gotomeeting", | 467 | "id": "gotomeeting", |
@@ -444,7 +510,7 @@ | |||
444 | "featured": false, | 510 | "featured": false, |
445 | "id": "habitica", | 511 | "id": "habitica", |
446 | "name": "Habitica", | 512 | "name": "Habitica", |
447 | "version": "1.0.1", | 513 | "version": "1.0.2", |
448 | "icons": { | 514 | "icons": { |
449 | "png": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/habitica/icon.png", | 515 | "png": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/habitica/icon.png", |
450 | "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/habitica/icon.svg" | 516 | "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/habitica/icon.svg" |
@@ -477,7 +543,7 @@ | |||
477 | "featured": false, | 543 | "featured": false, |
478 | "id": "hangoutschat", | 544 | "id": "hangoutschat", |
479 | "name": "Hangouts Chat", | 545 | "name": "Hangouts Chat", |
480 | "version": "1.3.0", | 546 | "version": "1.4.0", |
481 | "icons": { | 547 | "icons": { |
482 | "png": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/hangoutschat/icon.png", | 548 | "png": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/hangoutschat/icon.png", |
483 | "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/hangoutschat/icon.svg" | 549 | "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/hangoutschat/icon.svg" |
@@ -495,6 +561,17 @@ | |||
495 | } | 561 | } |
496 | }, | 562 | }, |
497 | { | 563 | { |
564 | "author": "Ferdi <hello@getferdi.com>", | ||
565 | "featured": false, | ||
566 | "id": "icloud-reminders", | ||
567 | "name": "iCloud Reminders", | ||
568 | "version": "1.0.0", | ||
569 | "icons": { | ||
570 | "png": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/icloud-reminders/icon.png", | ||
571 | "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/icloud-reminders/icon.svg" | ||
572 | } | ||
573 | }, | ||
574 | { | ||
498 | "author": "Stefan Malzner <stefan@adlk.io>", | 575 | "author": "Stefan Malzner <stefan@adlk.io>", |
499 | "featured": false, | 576 | "featured": false, |
500 | "id": "icq", | 577 | "id": "icq", |
@@ -572,6 +649,17 @@ | |||
572 | } | 649 | } |
573 | }, | 650 | }, |
574 | { | 651 | { |
652 | "author": "hongsy <hongsy2006@gmail.com>", | ||
653 | "featured": false, | ||
654 | "id": "lark", | ||
655 | "name": "Lark", | ||
656 | "version": "0.0.1", | ||
657 | "icons": { | ||
658 | "png": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/lark/icon.png", | ||
659 | "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/lark/icon.svg" | ||
660 | } | ||
661 | }, | ||
662 | { | ||
575 | "author": "Janis Hau <janis@my-new.me>, Jonathan Winter <jonathanhwinter@gmail.com>", | 663 | "author": "Janis Hau <janis@my-new.me>, Jonathan Winter <jonathanhwinter@gmail.com>", |
576 | "featured": false, | 664 | "featured": false, |
577 | "id": "lastpass", | 665 | "id": "lastpass", |
@@ -671,6 +759,17 @@ | |||
671 | } | 759 | } |
672 | }, | 760 | }, |
673 | { | 761 | { |
762 | "author": "Yoga Setiawan <ariokidev@gmail.com>", | ||
763 | "featured": false, | ||
764 | "id": "mstodo", | ||
765 | "name": "Microsoft To Do", | ||
766 | "version": "1.0.0", | ||
767 | "icons": { | ||
768 | "png": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/mstodo/icon.png", | ||
769 | "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/mstodo/icon.svg" | ||
770 | } | ||
771 | }, | ||
772 | { | ||
674 | "author": "Stefan Malzner <stefan@adlk.io>", | 773 | "author": "Stefan Malzner <stefan@adlk.io>", |
675 | "featured": false, | 774 | "featured": false, |
676 | "id": "mysms", | 775 | "id": "mysms", |
@@ -706,9 +805,20 @@ | |||
706 | { | 805 | { |
707 | "author": "Edgars Andersons <Edgars+github@gaitenis.id.lv>", | 806 | "author": "Edgars Andersons <Edgars+github@gaitenis.id.lv>", |
708 | "featured": false, | 807 | "featured": false, |
808 | "id": "nextcloud", | ||
809 | "name": "Nextcloud", | ||
810 | "version": "1.0.0", | ||
811 | "icons": { | ||
812 | "png": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/nextcloud/icon.png", | ||
813 | "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/nextcloud/icon.svg" | ||
814 | } | ||
815 | }, | ||
816 | { | ||
817 | "author": "Edgars Andersons <Edgars+github@gaitenis.id.lv>", | ||
818 | "featured": false, | ||
709 | "id": "nextcloud-calendar", | 819 | "id": "nextcloud-calendar", |
710 | "name": "Nextcloud Calendar", | 820 | "name": "Nextcloud Calendar", |
711 | "version": "1.0.0", | 821 | "version": "1.0.1", |
712 | "icons": { | 822 | "icons": { |
713 | "png": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/nextcloud-calendar/icon.png", | 823 | "png": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/nextcloud-calendar/icon.png", |
714 | "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/nextcloud-calendar/icon.svg" | 824 | "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/nextcloud-calendar/icon.svg" |
@@ -741,7 +851,7 @@ | |||
741 | "featured": false, | 851 | "featured": false, |
742 | "id": "nextcloud-talk", | 852 | "id": "nextcloud-talk", |
743 | "name": "Nextcloud Talk", | 853 | "name": "Nextcloud Talk", |
744 | "version": "1.0.2", | 854 | "version": "1.0.3", |
745 | "icons": { | 855 | "icons": { |
746 | "png": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/nextcloud-talk/icon.png", | 856 | "png": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/nextcloud-talk/icon.png", |
747 | "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/nextcloud-talk/icon.svg" | 857 | "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/nextcloud-talk/icon.svg" |
@@ -803,6 +913,17 @@ | |||
803 | } | 913 | } |
804 | }, | 914 | }, |
805 | { | 915 | { |
916 | "author": "Ferdi <hello@getferdi.com>", | ||
917 | "featured": false, | ||
918 | "id": "onenote", | ||
919 | "name": "OneNote", | ||
920 | "version": "1.0.0", | ||
921 | "icons": { | ||
922 | "png": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/onenote/icon.png", | ||
923 | "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/onenote/icon.svg" | ||
924 | } | ||
925 | }, | ||
926 | { | ||
806 | "author": "Wouter Van Speybroeck <wouter.van.speybroeck@gmail.com>", | 927 | "author": "Wouter Van Speybroeck <wouter.van.speybroeck@gmail.com>", |
807 | "featured": false, | 928 | "featured": false, |
808 | "id": "outlook", | 929 | "id": "outlook", |
@@ -814,6 +935,17 @@ | |||
814 | } | 935 | } |
815 | }, | 936 | }, |
816 | { | 937 | { |
938 | "author": "Ferdi <hello@getferdi.com>", | ||
939 | "featured": false, | ||
940 | "id": "pinterest", | ||
941 | "name": "Pinterest", | ||
942 | "version": "1.0.0", | ||
943 | "icons": { | ||
944 | "png": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/pinterest/icon.png", | ||
945 | "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/pinterest/icon.svg" | ||
946 | } | ||
947 | }, | ||
948 | { | ||
817 | "author": "YWJamesLin <ywjameslin.ga>", | 949 | "author": "YWJamesLin <ywjameslin.ga>", |
818 | "featured": false, | 950 | "featured": false, |
819 | "id": "plurk", | 951 | "id": "plurk", |
@@ -939,7 +1071,7 @@ | |||
939 | "featured": false, | 1071 | "featured": false, |
940 | "id": "roundcube", | 1072 | "id": "roundcube", |
941 | "name": "Roundcube", | 1073 | "name": "Roundcube", |
942 | "version": "1.0.0", | 1074 | "version": "1.0.1", |
943 | "icons": { | 1075 | "icons": { |
944 | "png": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/roundcube/icon.png", | 1076 | "png": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/roundcube/icon.png", |
945 | "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/roundcube/icon.svg" | 1077 | "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/roundcube/icon.svg" |
@@ -957,11 +1089,22 @@ | |||
957 | } | 1089 | } |
958 | }, | 1090 | }, |
959 | { | 1091 | { |
1092 | "author": "Ferdi <hello@getferdi.com>", | ||
1093 | "featured": false, | ||
1094 | "id": "simplenote", | ||
1095 | "name": "Simplenote", | ||
1096 | "version": "1.0.0", | ||
1097 | "icons": { | ||
1098 | "png": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/simplenote/icon.png", | ||
1099 | "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/simplenote/icon.svg" | ||
1100 | } | ||
1101 | }, | ||
1102 | { | ||
960 | "author": "Stefan Malzner <stefan@adlk.io>", | 1103 | "author": "Stefan Malzner <stefan@adlk.io>", |
961 | "featured": false, | 1104 | "featured": false, |
962 | "id": "skype", | 1105 | "id": "skype", |
963 | "name": "Skype", | 1106 | "name": "Skype", |
964 | "version": "2.0.0", | 1107 | "version": "2.1.0", |
965 | "icons": { | 1108 | "icons": { |
966 | "png": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/skype/icon.png", | 1109 | "png": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/skype/icon.png", |
967 | "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/skype/icon.svg" | 1110 | "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/skype/icon.svg" |
@@ -979,6 +1122,17 @@ | |||
979 | } | 1122 | } |
980 | }, | 1123 | }, |
981 | { | 1124 | { |
1125 | "author": "Ferdi <hello@getferdi.com>", | ||
1126 | "featured": false, | ||
1127 | "id": "slite", | ||
1128 | "name": "Slite", | ||
1129 | "version": "1.0.0", | ||
1130 | "icons": { | ||
1131 | "png": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/slite/icon.png", | ||
1132 | "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/slite/icon.svg" | ||
1133 | } | ||
1134 | }, | ||
1135 | { | ||
982 | "author": "Kittywhiskers Van Gogh <63189531+kittywhiskers@users.noreply.github.com>", | 1136 | "author": "Kittywhiskers Van Gogh <63189531+kittywhiskers@users.noreply.github.com>", |
983 | "featured": false, | 1137 | "featured": false, |
984 | "id": "stackexchange", | 1138 | "id": "stackexchange", |
@@ -1023,6 +1177,17 @@ | |||
1023 | } | 1177 | } |
1024 | }, | 1178 | }, |
1025 | { | 1179 | { |
1180 | "author": "Marco Lussetti <packages@marcolussetti.com>", | ||
1181 | "featured": false, | ||
1182 | "id": "sync", | ||
1183 | "name": "sync", | ||
1184 | "version": "1.0.0", | ||
1185 | "icons": { | ||
1186 | "png": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/sync/icon.png", | ||
1187 | "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/sync/icon.svg" | ||
1188 | } | ||
1189 | }, | ||
1190 | { | ||
1026 | "author": "Brian Gilbert <brian@briangilbert.net>", | 1191 | "author": "Brian Gilbert <brian@briangilbert.net>", |
1027 | "featured": false, | 1192 | "featured": false, |
1028 | "id": "tawk", | 1193 | "id": "tawk", |
@@ -1089,11 +1254,22 @@ | |||
1089 | } | 1254 | } |
1090 | }, | 1255 | }, |
1091 | { | 1256 | { |
1257 | "author": "Jonas Hilke <jonashilke@gmail.com>", | ||
1258 | "featured": false, | ||
1259 | "id": "TickTick", | ||
1260 | "name": "TickTick", | ||
1261 | "version": "1.1.0", | ||
1262 | "icons": { | ||
1263 | "png": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/TickTick/icon.png", | ||
1264 | "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/TickTick/icon.svg" | ||
1265 | } | ||
1266 | }, | ||
1267 | { | ||
1092 | "author": "Alex Ward <alex@alexward.me.uk>, Mike Burke <mburke@dmwtechnology.com>", | 1268 | "author": "Alex Ward <alex@alexward.me.uk>, Mike Burke <mburke@dmwtechnology.com>", |
1093 | "featured": false, | 1269 | "featured": false, |
1094 | "id": "todoist", | 1270 | "id": "todoist", |
1095 | "name": "Todoist", | 1271 | "name": "Todoist", |
1096 | "version": "1.1.0", | 1272 | "version": "1.2.0", |
1097 | "icons": { | 1273 | "icons": { |
1098 | "png": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/todoist/icon.png", | 1274 | "png": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/todoist/icon.png", |
1099 | "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/todoist/icon.svg" | 1275 | "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/todoist/icon.svg" |
@@ -1243,6 +1419,17 @@ | |||
1243 | } | 1419 | } |
1244 | }, | 1420 | }, |
1245 | { | 1421 | { |
1422 | "author": "Dustin Steiner <dustin.steiner@gmail.com>", | ||
1423 | "featured": false, | ||
1424 | "id": "wire", | ||
1425 | "name": "Wire", | ||
1426 | "version": "1.0.0", | ||
1427 | "icons": { | ||
1428 | "png": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/wire/icon.png", | ||
1429 | "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/wire/icon.svg" | ||
1430 | } | ||
1431 | }, | ||
1432 | { | ||
1246 | "author": "Max Stoiber", | 1433 | "author": "Max Stoiber", |
1247 | "featured": false, | 1434 | "featured": false, |
1248 | "id": "withspectrum", | 1435 | "id": "withspectrum", |
@@ -1287,6 +1474,17 @@ | |||
1287 | } | 1474 | } |
1288 | }, | 1475 | }, |
1289 | { | 1476 | { |
1477 | "author": "Vijay Raghavan Aravamudhan <avijayr@protonmail.com>", | ||
1478 | "featured": false, | ||
1479 | "id": "yahoo-mail", | ||
1480 | "name": "Yahoo Mail", | ||
1481 | "version": "1.0.0", | ||
1482 | "icons": { | ||
1483 | "png": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/yahoo-mail/icon.png", | ||
1484 | "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/yahoo-mail/icon.svg" | ||
1485 | } | ||
1486 | }, | ||
1487 | { | ||
1290 | "author": "Dave Reid <dave@davereid.net>", | 1488 | "author": "Dave Reid <dave@davereid.net>", |
1291 | "featured": false, | 1489 | "featured": false, |
1292 | "id": "yammer", | 1490 | "id": "yammer", |
@@ -1298,6 +1496,28 @@ | |||
1298 | } | 1496 | } |
1299 | }, | 1497 | }, |
1300 | { | 1498 | { |
1499 | "author": "Ferdi <hello@getferdi.com>", | ||
1500 | "featured": false, | ||
1501 | "id": "youtrack", | ||
1502 | "name": "YouTrack", | ||
1503 | "version": "1.0.0", | ||
1504 | "icons": { | ||
1505 | "png": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/youtrack/icon.png", | ||
1506 | "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/youtrack/icon.svg" | ||
1507 | } | ||
1508 | }, | ||
1509 | { | ||
1510 | "author": "Stephen Papierski <stephenpapierski@gmail.com>", | ||
1511 | "featured": false, | ||
1512 | "id": "youtubemusic", | ||
1513 | "name": "YouTube Music", | ||
1514 | "version": "1.0.0", | ||
1515 | "icons": { | ||
1516 | "png": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/youtubemusic/icon.png", | ||
1517 | "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/youtubemusic/icon.svg" | ||
1518 | } | ||
1519 | }, | ||
1520 | { | ||
1301 | "author": "RoiArthurB <arthurbrugiere01@gmail.com>", | 1521 | "author": "RoiArthurB <arthurbrugiere01@gmail.com>", |
1302 | "featured": false, | 1522 | "featured": false, |
1303 | "id": "zalo", | 1523 | "id": "zalo", |
@@ -1357,7 +1577,7 @@ | |||
1357 | "featured": false, | 1577 | "featured": false, |
1358 | "id": "zoho", | 1578 | "id": "zoho", |
1359 | "name": "Zoho Mail", | 1579 | "name": "Zoho Mail", |
1360 | "version": "1.0.0", | 1580 | "version": "1.0.2", |
1361 | "icons": { | 1581 | "icons": { |
1362 | "png": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/zoho/icon.png", | 1582 | "png": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/zoho/icon.png", |
1363 | "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/zoho/icon.svg" | 1583 | "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/zoho/icon.svg" |
diff --git a/recipes/googleclassroom/LICENSE b/recipes/googleclassroom/LICENSE new file mode 100644 index 0000000..516df99 --- /dev/null +++ b/recipes/googleclassroom/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/googleclassroom/README.md b/recipes/googleclassroom/README.md new file mode 100644 index 0000000..a1a3455 --- /dev/null +++ b/recipes/googleclassroom/README.md | |||
@@ -0,0 +1,23 @@ | |||
1 | # Ferdi Google Classroom | ||
2 | A Google Classroom recipe for Ferdi | ||
3 | |||
4 | Fixes getferdi/recipes#135 | ||
5 | |||
6 | ### Release notes | ||
7 | 1.0.2: DarkMode support | ||
8 | |||
9 | 1.0.1: fix serviceURL | ||
10 | |||
11 | 1.0.0: First version | ||
12 | |||
13 | ### How to use? | ||
14 | 1. Click on Download ZIP or use `git clone https://github.com/TanZng/ferdi-googleclassroom` | ||
15 | 2. On Ferdi click on *Add new service* and go to *Custom Service* | ||
16 | 3. Click on *Open Folder* | ||
17 | 4. In the folder that Ferdi opened for you `...\Ferdi\recipes\dev`, drag the **unzip** ferdi-googleclassroom folder | ||
18 | 5. After that Google Classroom should appear on Custom Services. If not, restart Ferdi. | ||
19 | |||
20 | > :warning: **Don't use dark mode**: Google Classroom page will load with a black background! We are fixing it. | ||
21 | |||
22 | ### How to create your own Ferdi recipes: | ||
23 | * [Read the documentation](https://github.com/getferdi/recipes/blob/master/docs/integration.md) | ||
diff --git a/recipes/googleclassroom/darkmode.css b/recipes/googleclassroom/darkmode.css new file mode 100644 index 0000000..0e47715 --- /dev/null +++ b/recipes/googleclassroom/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/googleclassroom/icon.png b/recipes/googleclassroom/icon.png new file mode 100644 index 0000000..5dbd55e --- /dev/null +++ b/recipes/googleclassroom/icon.png | |||
Binary files differ | |||
diff --git a/recipes/googleclassroom/icon.svg b/recipes/googleclassroom/icon.svg new file mode 100644 index 0000000..922bd4e --- /dev/null +++ b/recipes/googleclassroom/icon.svg | |||
@@ -0,0 +1,13 @@ | |||
1 | <?xml version="1.0" encoding="UTF-8"?> | ||
2 | <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1024pt" height="1024pt" viewBox="0 0 1024 1024" version="1.1"> | ||
3 | <g id="surface1"> | ||
4 | <path style=" stroke:none;fill-rule:nonzero;fill:rgb(100%,75.686275%,2.745098%);fill-opacity:1;" d="M 874.667969 896 L 149.332031 896 C 102.273438 896 64 857.726562 64 810.667969 L 64 213.332031 C 64 166.273438 102.273438 128 149.332031 128 L 874.667969 128 C 921.726562 128 960 166.273438 960 213.332031 L 960 810.667969 C 960 857.726562 921.726562 896 874.667969 896 Z M 874.667969 896 "/> | ||
5 | <path style=" stroke:none;fill-rule:nonzero;fill:rgb(21.960784%,55.686275%,23.529412%);fill-opacity:1;" d="M 149.332031 213.332031 L 874.667969 213.332031 L 874.667969 810.667969 L 149.332031 810.667969 Z M 149.332031 213.332031 "/> | ||
6 | <path style=" stroke:none;fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;" d="M 597.332031 768 L 768 768 L 768 810.667969 L 597.332031 810.667969 Z M 512 362.667969 C 476.652344 362.667969 448 391.320312 448 426.667969 C 448 462.011719 476.652344 490.667969 512 490.667969 C 547.347656 490.667969 576 462.011719 576 426.667969 C 576 391.320312 547.347656 362.667969 512 362.667969 Z M 512 362.667969 "/> | ||
7 | <path style=" stroke:none;fill-rule:nonzero;fill:rgb(64.705882%,83.921569%,65.490196%);fill-opacity:1;" d="M 341.332031 448 C 317.769531 448 298.667969 467.101562 298.667969 490.667969 C 298.667969 514.230469 317.769531 533.332031 341.332031 533.332031 C 364.898438 533.332031 384 514.230469 384 490.667969 C 384 467.101562 364.898438 448 341.332031 448 Z M 341.332031 448 "/> | ||
8 | <path style=" stroke:none;fill-rule:nonzero;fill:rgb(18.039216%,49.019608%,19.607843%);fill-opacity:1;" d="M 149.332031 213.332031 L 874.667969 213.332031 L 874.667969 256 L 149.332031 256 Z M 149.332031 213.332031 "/> | ||
9 | <path style=" stroke:none;fill-rule:nonzero;fill:rgb(100%,67.058824%,0%);fill-opacity:1;" d="M 768 810.667969 L 597.332031 810.667969 L 682.667969 896 L 853.332031 896 Z M 768 810.667969 "/> | ||
10 | <path style=" stroke:none;fill-rule:nonzero;fill:rgb(64.705882%,83.921569%,65.490196%);fill-opacity:1;" d="M 682.667969 448 C 659.101562 448 640 467.101562 640 490.667969 C 640 514.230469 659.101562 533.332031 682.667969 533.332031 C 706.230469 533.332031 725.332031 514.230469 725.332031 490.667969 C 725.332031 467.101562 706.230469 448 682.667969 448 Z M 789.332031 612.011719 C 789.332031 602.515625 785.855469 593.367188 779.347656 586.433594 C 764.566406 570.667969 733.078125 554.667969 682.667969 554.667969 C 632.257812 554.667969 600.769531 570.667969 585.984375 586.433594 C 579.476562 593.367188 576 602.496094 576 612.011719 L 576 640 L 789.332031 640 Z M 448 612.011719 C 448 602.515625 444.523438 593.367188 438.015625 586.433594 C 423.230469 570.667969 391.742188 554.667969 341.332031 554.667969 C 290.921875 554.667969 259.433594 570.667969 244.652344 586.433594 C 238.144531 593.367188 234.667969 602.496094 234.667969 612.011719 L 234.667969 640 L 448 640 Z M 448 612.011719 "/> | ||
11 | <path style=" stroke:none;fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;" d="M 640 591.828125 C 640 580.4375 635.820312 569.472656 628.011719 561.152344 C 610.28125 542.230469 572.480469 512 512 512 C 451.519531 512 413.71875 542.230469 395.988281 561.128906 C 388.179688 569.449219 384 580.414062 384 591.828125 L 384 640 L 640 640 Z M 640 591.828125 "/> | ||
12 | </g> | ||
13 | </svg> | ||
diff --git a/recipes/googleclassroom/index.js b/recipes/googleclassroom/index.js new file mode 100644 index 0000000..c9bd550 --- /dev/null +++ b/recipes/googleclassroom/index.js | |||
@@ -0,0 +1,11 @@ | |||
1 | var os = require('os') | ||
2 | |||
3 | module.exports = Franz => | ||
4 | class googleclassroom extends Franz { | ||
5 | overrideUserAgent() { | ||
6 | if (os.platform() == 'linux') | ||
7 | return "Mozilla/5.0 (X11; Linux x86_64; rv:72.0) Gecko/20100101 Firefox/72.0" | ||
8 | else | ||
9 | return "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:72.0) Gecko/20100101 Firefox/72.0"; | ||
10 | } | ||
11 | }; \ No newline at end of file | ||
diff --git a/recipes/googleclassroom/package.json b/recipes/googleclassroom/package.json new file mode 100644 index 0000000..b33114c --- /dev/null +++ b/recipes/googleclassroom/package.json | |||
@@ -0,0 +1,15 @@ | |||
1 | { | ||
2 | "id": "googleclassroom", | ||
3 | "name": "Google Classroom", | ||
4 | "version": "1.0.2", | ||
5 | "description": "Google Classroom", | ||
6 | "main": "index.js", | ||
7 | "author": "Tania R. Zuniga <tania@tanx.dev>", | ||
8 | "license": "MIT", | ||
9 | "repository": "https://github.com/TanZng/ferdi-googleclassroom", | ||
10 | "config": { | ||
11 | "serviceURL": "https://accounts.google.com/ServiceLogin/signinchooser?service=classroom&passive=1209600&continue=https%3A%2F%2Fclassroom.google.com%2F%3Fsafe%3Dactive&followup=https%3A%2F%2Fclassroom.google.com%2F%3Fsafe%3Dactive&emr=1&flowName=GlifWebSignIn&flowEntry=ServiceLogin", | ||
12 | "hasTeamId": false, | ||
13 | "hasNotificationSound": false | ||
14 | } | ||
15 | } | ||
diff --git a/recipes/googleclassroom/service.css b/recipes/googleclassroom/service.css new file mode 100644 index 0000000..38dcab0 --- /dev/null +++ b/recipes/googleclassroom/service.css | |||
@@ -0,0 +1 @@ | |||
/* Insert custom styles you want to insert here */ \ No newline at end of file | |||
diff --git a/recipes/googleclassroom/webview.js b/recipes/googleclassroom/webview.js new file mode 100644 index 0000000..c53fe10 --- /dev/null +++ b/recipes/googleclassroom/webview.js | |||
@@ -0,0 +1,17 @@ | |||
1 | "use strict"; | ||
2 | |||
3 | module.exports = Franz => { | ||
4 | const getMessages = function getMessages() { | ||
5 | var homework = 0 | ||
6 | const upcomingAssignment = document.getElementsByClassName('hrUpcomingAssignmentGroup') | ||
7 | if (upcomingAssignment.length != 0) { | ||
8 | var i; | ||
9 | for (i = 0; i < upcomingAssignment.length; i++) { | ||
10 | homework += upcomingAssignment[i].childElementCount; | ||
11 | } | ||
12 | } | ||
13 | Franz.setBadge(parseInt(homework, 10)); | ||
14 | }; | ||
15 | |||
16 | Franz.loop(getMessages); | ||
17 | }; \ No newline at end of file | ||