aboutsummaryrefslogtreecommitdiffstats
path: root/recipes/gmail
diff options
context:
space:
mode:
authorLibravatar Bennett <hello@vantezzen.io>2020-09-22 20:56:48 +0200
committerLibravatar GitHub <noreply@github.com>2020-09-22 19:56:48 +0100
commit6f5e4a00588aefdda7a5a1cfe70935870e7e234a (patch)
tree9e29aa7aa0620a1a4a968ff8739b4b8ba96791a9 /recipes/gmail
parentUpdated logos for Outlook/OWA (diff)
downloadferdium-recipes-6f5e4a00588aefdda7a5a1cfe70935870e7e234a.tar.gz
ferdium-recipes-6f5e4a00588aefdda7a5a1cfe70935870e7e234a.tar.zst
ferdium-recipes-6f5e4a00588aefdda7a5a1cfe70935870e7e234a.zip
Unpack recipes and update recipes icons (#292)
Co-authored-by: Amine Mouafik <amine@mouafik.fr>
Diffstat (limited to 'recipes/gmail')
-rw-r--r--recipes/gmail/README.md5
-rw-r--r--recipes/gmail/icon.pngbin0 -> 65542 bytes
-rw-r--r--recipes/gmail/icon.svg56
-rw-r--r--recipes/gmail/index.js17
-rw-r--r--recipes/gmail/package.json12
-rw-r--r--recipes/gmail/service.css3
-rw-r--r--recipes/gmail/webview.js31
7 files changed, 124 insertions, 0 deletions
diff --git a/recipes/gmail/README.md b/recipes/gmail/README.md
new file mode 100644
index 0000000..1dcd235
--- /dev/null
+++ b/recipes/gmail/README.md
@@ -0,0 +1,5 @@
1# Gmail for Franz/Ferdi
2This is an edited version of the official Franz recipe for Gmail
3
4### How to create your own Franz recipes:
5* [Read the documentation](https://github.com/meetfranz/plugins)
diff --git a/recipes/gmail/icon.png b/recipes/gmail/icon.png
new file mode 100644
index 0000000..9502b2d
--- /dev/null
+++ b/recipes/gmail/icon.png
Binary files differ
diff --git a/recipes/gmail/icon.svg b/recipes/gmail/icon.svg
new file mode 100644
index 0000000..bb75f1e
--- /dev/null
+++ b/recipes/gmail/icon.svg
@@ -0,0 +1,56 @@
1<?xml version="1.0"?>
2<svg width="1277" height="1277" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg">
3 <g>
4 <title>Layer 1</title>
5 <g id="a">
6 <line id="svg_18" fill="none" y2="1114.00803" x2="1131.931001" y1="1114.00803" x1="1131.648001"/>
7 <line id="svg_19" fill="none" y2="1114.00803" x2="1131.648001" y1="1114.00803" x1="1131.931001"/>
8 <path id="svg_20" fill="#E75A4D" d="m1172.353,190.000025c57.543,0 104.627,47.083 104.627,104.626l0,30.331l-145.36,103.833l-494.873,340.894l-494.873,-344.352l0,654.067l0,34.609l-37.247,0c-57.543,0 -104.627,-47.082 -104.627,-104.625l0,-714.728c0,-57.544 47.084,-104.627 104.627,-104.627l532.12,394.525l535.577,-394.525l0.029,-0.028z"/>
9 <linearGradient id="svg_21" transform="translate(0,10) translate(0,-5) translate(0,5) translate(0,5) translate(0,3) translate(0,-0.041229248046875) translate(0,4.213991641998291) translate(0,-4.213991641998291) translate(0,4.213991641998291) translate(0,-4.213991641998291) translate(0,-4.213991641998291) translate(0,4.213991641998291) translate(0,4.213991641998291) translate(0,4.213991641998291) translate(-6.005217552185059,0) translate(-4.213991641998291,0) translate(4.213991641998291,0) translate(4.213991641998291,0) translate(4.213991641998291,0) translate(4.213991641998291,0) translate(-4.213991641998291,0) translate(-42.13991928100586,0) translate(-4.213991641998291,0) translate(-4.213991641998291,0) translate(-4.213991641998291,0) translate(-4.213991641998291,0) translate(-438.2551574707031,67.42386627197266) translate(494.8282775878906,96.18938446044922) translate(325.81939697265625,-104.0087890625) translate(627.884765625,-847.0123901367188) translate(-960.7901611328125,943.9342041015625) " y2="0.500087" x2="0.818862" y1="0.500087" x1="0.179921">
10 <stop id="svg_22" stop-color="#F8F6EF" offset="0"/>
11 <stop id="svg_23" stop-color="#E7E4D6" offset="1"/>
12 </linearGradient>
13 <polygon id="svg_24" fill="url(#SVGID_1_)" points="104.62704467773438,190 636.7471313476562,584.5249633789062 1172.35302734375,190 "/>
14 <polygon id="svg_25" fill="#E7E4D7" points="141.87399291992188,425.33209228515625 141.87399291992188,1114.008056640625 1131.6480712890625,1114.008056640625 1131.6480712890625,428.78997802734375 636.7471313476562,769.68408203125 "/>
15 <polygon id="svg_26" fill="#B8B7AE" points="141.87399291992188,1114.008056640625 636.7471313476562,769.68408203125 634.5071411132812,768.09814453125 141.87399291992188,1106.43994140625 "/>
16 <polygon id="svg_27" fill="#B7B6AD" points="1131.6480712890625,428.78997802734375 1131.9310302734375,1114.008056640625 636.7471313476562,769.68408203125 "/>
17 <path id="svg_28" fill="#B2392F" d="m1276.98,324.957025l0.17,684.51c-2.494,76.082 -35.461,103.238 -145.219,104.514l-0.283,-685.219l145.36,-103.833l-0.028,0.028z"/>
18 <linearGradient id="svg_29" transform="translate(0,10) translate(0,-5) translate(0,5) translate(0,5) translate(0,3) translate(0,-0.041229248046875) translate(0,4.213991641998291) translate(0,-4.213991641998291) translate(0,4.213991641998291) translate(0,-4.213991641998291) translate(0,-4.213991641998291) translate(0,4.213991641998291) translate(0,4.213991641998291) translate(0,4.213991641998291) translate(-6.005217552185059,0) translate(-4.213991641998291,0) translate(4.213991641998291,0) translate(4.213991641998291,0) translate(4.213991641998291,0) translate(4.213991641998291,0) translate(-4.213991641998291,0) translate(-42.13991928100586,0) translate(-4.213991641998291,0) translate(-4.213991641998291,0) translate(-4.213991641998291,0) translate(-4.213991641998291,0) translate(-438.2551574707031,67.42386627197266) translate(494.8282775878906,96.18938446044922) translate(325.81939697265625,-104.0087890625) translate(627.884765625,-847.0123901367188) translate(-960.7901611328125,943.9342041015625) " y2="0.500087" x2="0.818862" y1="0.500087" x1="0.179921">
19 <stop id="svg_30" stop-color="#F8F6EF" offset="0"/>
20 <stop id="svg_31" stop-color="#E7E4D6" offset="1"/>
21 </linearGradient>
22 <polygon id="svg_32" fill="url(#SVGID_2_)" points="104.62704467773438,190 636.7471313476562,584.5249633789062 1172.35302734375,190 "/>
23 <linearGradient id="svg_33" transform="translate(0,10) translate(0,-5) translate(0,5) translate(0,5) translate(0,3) translate(0,-0.041229248046875) translate(0,4.213991641998291) translate(0,-4.213991641998291) translate(0,4.213991641998291) translate(0,-4.213991641998291) translate(0,-4.213991641998291) translate(0,4.213991641998291) translate(0,4.213991641998291) translate(0,4.213991641998291) translate(-6.005217552185059,0) translate(-4.213991641998291,0) translate(4.213991641998291,0) translate(4.213991641998291,0) translate(4.213991641998291,0) translate(4.213991641998291,0) translate(-4.213991641998291,0) translate(-42.13991928100586,0) translate(-4.213991641998291,0) translate(-4.213991641998291,0) translate(-4.213991641998291,0) translate(-4.213991641998291,0) translate(-438.2551574707031,67.42386627197266) translate(494.8282775878906,96.18938446044922) translate(325.81939697265625,-104.0087890625) translate(627.884765625,-847.0123901367188) translate(-960.7901611328125,943.9342041015625) " y2="0.500087" x2="0.818862" y1="0.500087" x1="0.179921">
24 <stop id="svg_34" stop-color="#F8F6EF" offset="0"/>
25 <stop id="svg_35" stop-color="#E7E4D6" offset="1"/>
26 </linearGradient>
27 <polygon id="svg_36" fill="url(#SVGID_3_)" points="104.62704467773438,190 636.7471313476562,584.5249633789062 1172.35302734375,190 "/>
28 <linearGradient id="svg_37" transform="translate(0,10) translate(0,-5) translate(0,5) translate(0,5) translate(0,3) translate(0,-0.041229248046875) translate(0,4.213991641998291) translate(0,-4.213991641998291) translate(0,4.213991641998291) translate(0,-4.213991641998291) translate(0,-4.213991641998291) translate(0,4.213991641998291) translate(0,4.213991641998291) translate(0,4.213991641998291) translate(-6.005217552185059,0) translate(-4.213991641998291,0) translate(4.213991641998291,0) translate(4.213991641998291,0) translate(4.213991641998291,0) translate(4.213991641998291,0) translate(-4.213991641998291,0) translate(-42.13991928100586,0) translate(-4.213991641998291,0) translate(-4.213991641998291,0) translate(-4.213991641998291,0) translate(-4.213991641998291,0) translate(-438.2551574707031,67.42386627197266) translate(494.8282775878906,96.18938446044922) translate(325.81939697265625,-104.0087890625) translate(627.884765625,-847.0123901367188) translate(-960.7901611328125,943.9342041015625) " y2="0.500087" x2="0.818862" y1="0.500087" x1="0.179921">
29 <stop id="svg_38" stop-color="#F8F6EF" offset="0"/>
30 <stop id="svg_39" stop-color="#E7E4D6" offset="1"/>
31 </linearGradient>
32 <polygon id="svg_40" fill="url(#SVGID_4_)" points="104.62704467773438,190 636.7471313476562,584.5249633789062 1172.35302734375,190 "/>
33 <linearGradient id="svg_41" transform="translate(0,10) translate(0,-5) translate(0,5) translate(0,5) translate(0,3) translate(0,-0.041229248046875) translate(0,4.213991641998291) translate(0,-4.213991641998291) translate(0,4.213991641998291) translate(0,-4.213991641998291) translate(0,-4.213991641998291) translate(0,4.213991641998291) translate(0,4.213991641998291) translate(0,4.213991641998291) translate(-6.005217552185059,0) translate(-4.213991641998291,0) translate(4.213991641998291,0) translate(4.213991641998291,0) translate(4.213991641998291,0) translate(4.213991641998291,0) translate(-4.213991641998291,0) translate(-42.13991928100586,0) translate(-4.213991641998291,0) translate(-4.213991641998291,0) translate(-4.213991641998291,0) translate(-4.213991641998291,0) translate(-438.2551574707031,67.42386627197266) translate(494.8282775878906,96.18938446044922) translate(325.81939697265625,-104.0087890625) translate(627.884765625,-847.0123901367188) translate(-960.7901611328125,943.9342041015625) " y2="0.500087" x2="0.818862" y1="0.500087" x1="0.179921">
34 <stop id="svg_42" stop-color="#F8F6EF" offset="0"/>
35 <stop id="svg_43" stop-color="#E7E4D6" offset="1"/>
36 </linearGradient>
37 <polygon id="svg_44" fill="url(#SVGID_5_)" points="104.62704467773438,190 636.7471313476562,584.5249633789062 1172.35302734375,190 "/>
38 <linearGradient id="svg_45" transform="translate(0,10) translate(0,-5) translate(0,5) translate(0,5) translate(0,3) translate(0,-0.041229248046875) translate(0,4.213991641998291) translate(0,-4.213991641998291) translate(0,4.213991641998291) translate(0,-4.213991641998291) translate(0,-4.213991641998291) translate(0,4.213991641998291) translate(0,4.213991641998291) translate(0,4.213991641998291) translate(-6.005217552185059,0) translate(-4.213991641998291,0) translate(4.213991641998291,0) translate(4.213991641998291,0) translate(4.213991641998291,0) translate(4.213991641998291,0) translate(-4.213991641998291,0) translate(-42.13991928100586,0) translate(-4.213991641998291,0) translate(-4.213991641998291,0) translate(-4.213991641998291,0) translate(-4.213991641998291,0) translate(-438.2551574707031,67.42386627197266) translate(494.8282775878906,96.18938446044922) translate(325.81939697265625,-104.0087890625) translate(627.884765625,-847.0123901367188) translate(-960.7901611328125,943.9342041015625) " y2="0.500087" x2="0.818862" y1="0.500087" x1="0.179921">
39 <stop id="svg_46" stop-color="#F8F6EF" offset="0"/>
40 <stop id="svg_47" stop-color="#E7E4D6" offset="1"/>
41 </linearGradient>
42 <polygon id="svg_48" fill="url(#SVGID_6_)" points="104.62704467773438,190 636.7471313476562,584.5249633789062 1172.35302734375,190 "/>
43 <linearGradient id="svg_49" transform="translate(0,10) translate(0,-5) translate(0,5) translate(0,5) translate(0,3) translate(0,-0.041229248046875) translate(0,4.213991641998291) translate(0,-4.213991641998291) translate(0,4.213991641998291) translate(0,-4.213991641998291) translate(0,-4.213991641998291) translate(0,4.213991641998291) translate(0,4.213991641998291) translate(0,4.213991641998291) translate(-6.005217552185059,0) translate(-4.213991641998291,0) translate(4.213991641998291,0) translate(4.213991641998291,0) translate(4.213991641998291,0) translate(4.213991641998291,0) translate(-4.213991641998291,0) translate(-42.13991928100586,0) translate(-4.213991641998291,0) translate(-4.213991641998291,0) translate(-4.213991641998291,0) translate(-4.213991641998291,0) translate(-438.2551574707031,67.42386627197266) translate(494.8282775878906,96.18938446044922) translate(325.81939697265625,-104.0087890625) translate(627.884765625,-847.0123901367188) translate(-960.7901611328125,943.9342041015625) " y2="0.500087" x2="0.818862" y1="0.500087" x1="0.179921">
44 <stop id="svg_50" stop-color="#F8F6EF" offset="0"/>
45 <stop id="svg_51" stop-color="#E7E4D6" offset="1"/>
46 </linearGradient>
47 <polygon id="svg_52" fill="url(#SVGID_7_)" points="104.62704467773438,190 636.7471313476562,584.5249633789062 1172.35302734375,190 "/>
48 <linearGradient id="svg_53" transform="translate(0,10) translate(0,-5) translate(0,5) translate(0,5) translate(0,3) translate(0,-0.041229248046875) translate(0,4.213991641998291) translate(0,-4.213991641998291) translate(0,4.213991641998291) translate(0,-4.213991641998291) translate(0,-4.213991641998291) translate(0,4.213991641998291) translate(0,4.213991641998291) translate(0,4.213991641998291) translate(-6.005217552185059,0) translate(-4.213991641998291,0) translate(4.213991641998291,0) translate(4.213991641998291,0) translate(4.213991641998291,0) translate(4.213991641998291,0) translate(-4.213991641998291,0) translate(-42.13991928100586,0) translate(-4.213991641998291,0) translate(-4.213991641998291,0) translate(-4.213991641998291,0) translate(-4.213991641998291,0) translate(-438.2551574707031,67.42386627197266) translate(494.8282775878906,96.18938446044922) translate(325.81939697265625,-104.0087890625) translate(627.884765625,-847.0123901367188) translate(-960.7901611328125,943.9342041015625) " y2="0.500087" x2="0.818862" y1="0.500087" x1="0.179921">
49 <stop id="svg_54" stop-color="#F8F6EF" offset="0"/>
50 <stop id="svg_55" stop-color="#E7E4D6" offset="1"/>
51 </linearGradient>
52 <polygon id="svg_56" fill="url(#SVGID_8_)" points="104.62704467773438,190 636.7471313476562,584.5249633789062 1172.35302734375,190 "/>
53 <polygon id="svg_57" fill="#F7F5ED" points="104.62704467773438,190 636.7471313476562,584.5249633789062 1172.35302734375,190 "/>
54 </g>
55 </g>
56</svg> \ No newline at end of file
diff --git a/recipes/gmail/index.js b/recipes/gmail/index.js
new file mode 100644
index 0000000..60f0971
--- /dev/null
+++ b/recipes/gmail/index.js
@@ -0,0 +1,17 @@
1var os = require('os')
2
3module.exports = Franz =>
4 class Gmail extends Franz {
5 modifyRequestHeaders() {
6 return [
7 {
8 headers: {
9 'user-agent': window.navigator.userAgent.replace(/(Ferdi|Electron)\/\S+ \([^)]+\)/g,"").trim(),
10 },
11 requestFilters: {
12 urls: ['*://*/*'],
13 }
14 }
15 ]
16 }
17 };
diff --git a/recipes/gmail/package.json b/recipes/gmail/package.json
new file mode 100644
index 0000000..7e8c9ed
--- /dev/null
+++ b/recipes/gmail/package.json
@@ -0,0 +1,12 @@
1{
2 "id": "gmail",
3 "name": "Gmail",
4 "version": "1.3.3",
5 "description": "Gmail",
6 "main": "index.js",
7 "author": "Stefan Malzner <stefan@adlk.io>",
8 "license": "MIT",
9 "config": {
10 "serviceURL": "https://mail.google.com"
11 }
12}
diff --git a/recipes/gmail/service.css b/recipes/gmail/service.css
new file mode 100644
index 0000000..c07277e
--- /dev/null
+++ b/recipes/gmail/service.css
@@ -0,0 +1,3 @@
1.aiw .cd .vh {
2 display: none !important;
3} \ No newline at end of file
diff --git a/recipes/gmail/webview.js b/recipes/gmail/webview.js
new file mode 100644
index 0000000..95d28e7
--- /dev/null
+++ b/recipes/gmail/webview.js
@@ -0,0 +1,31 @@
1const path = require("path");
2
3module.exports = (Franz) => {
4 // if the user is on gmail's landing page, go to the login page.
5 if (location.hostname == 'www.google.com' && location.href.includes("gmail/about/")) {
6 location.href = 'https://accounts.google.com/AccountChooser?service=mail&continue=https://mail.google.com/mail/';
7 }
8
9 const getMessages = function getMessages() {
10 let count = 0;
11
12 if (document.getElementsByClassName('J-Ke n0').length > 0) {
13 if (document.getElementsByClassName('J-Ke n0')[0].getAttribute('aria-label') != null) {
14 count = parseInt(document.getElementsByClassName('J-Ke n0')[0].getAttribute('aria-label').replace(/[^0-9.]/g, ''), 10);
15 }
16 }
17
18 // Just incase we don't end up with a number, set it back to zero (parseInt can return NaN)
19 count = parseInt(count, 10);
20 if (isNaN(count)) {
21 count = 0;
22 }
23
24 // set Franz badge
25 Franz.setBadge(count);
26 };
27
28 Franz.injectCSS(path.join(__dirname, 'service.css'));
29 // check for new messages every second and update Franz badge
30 Franz.loop(getMessages);
31};