aboutsummaryrefslogtreecommitdiffstats
path: root/recipes/googlecalendar
diff options
context:
space:
mode:
Diffstat (limited to 'recipes/googlecalendar')
-rw-r--r--recipes/googlecalendar/LICENSE19
-rw-r--r--recipes/googlecalendar/README.md4
-rw-r--r--recipes/googlecalendar/calendar.css41
-rw-r--r--recipes/googlecalendar/icon.pngbin0 -> 31377 bytes
-rw-r--r--recipes/googlecalendar/icon.svg1
-rw-r--r--recipes/googlecalendar/index.js11
-rw-r--r--recipes/googlecalendar/package.json15
-rw-r--r--recipes/googlecalendar/webview.js41
8 files changed, 132 insertions, 0 deletions
diff --git a/recipes/googlecalendar/LICENSE b/recipes/googlecalendar/LICENSE
new file mode 100644
index 0000000..4608c00
--- /dev/null
+++ b/recipes/googlecalendar/LICENSE
@@ -0,0 +1,19 @@
1Copyright 2017 Rico Herwig
2
3Permission is hereby granted, free of charge, to any person obtaining
4a copy of this software and associated documentation files (the "Software"),
5to deal in the Software without restriction, including without limitation the
6rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7copies of the Software, and to permit persons to whom the Software is furnished
8to do so, subject to the following conditions:
9
10The above copyright notice and this permission notice shall be included
11in all copies or substantial portions of the Software.
12
13THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
14EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
16IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
17DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
18ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
19OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/recipes/googlecalendar/README.md b/recipes/googlecalendar/README.md
new file mode 100644
index 0000000..f540101
--- /dev/null
+++ b/recipes/googlecalendar/README.md
@@ -0,0 +1,4 @@
1# Franz 5 Recipe: Google Calendar
2This recipe integrates the Google Calendar into Franz.
3
4You can get the latest version of Franz [here](https://meetfranz.com/). \ No newline at end of file
diff --git a/recipes/googlecalendar/calendar.css b/recipes/googlecalendar/calendar.css
new file mode 100644
index 0000000..7cd726b
--- /dev/null
+++ b/recipes/googlecalendar/calendar.css
@@ -0,0 +1,41 @@
1#franz-modal {
2 display: none;
3 position: fixed;
4 z-index: 9999;
5 left: 0;
6 top: 0;
7 right: 0;
8 bottom: 0;
9 overflow: auto;
10 background-color: rgba(0, 0, 0, 0.8);
11}
12
13#franz-modal.open {
14 display: block;
15}
16
17#franz-modal .modal-content {
18 background-color: #fefefe;
19 margin: 15% auto;
20 padding: 20px;
21 border: 1px solid #888;
22 width: 30%;
23 -webkit-border-radius: 3px;
24 -moz-border-radius: 3px;
25 border-radius: 3px;
26}
27
28#franz-modal .close {
29 color: #aaa;
30 float: right;
31 margin-top: -10px;
32 font-size: 20px;
33 font-weight: bold;
34}
35
36#franz-modal .close:hover,
37#franz-modal .close:focus {
38 color: black;
39 text-decoration: none;
40 cursor: pointer;
41}
diff --git a/recipes/googlecalendar/icon.png b/recipes/googlecalendar/icon.png
new file mode 100644
index 0000000..421388a
--- /dev/null
+++ b/recipes/googlecalendar/icon.png
Binary files differ
diff --git a/recipes/googlecalendar/icon.svg b/recipes/googlecalendar/icon.svg
new file mode 100644
index 0000000..9c7a5f1
--- /dev/null
+++ b/recipes/googlecalendar/icon.svg
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" focusable="false" width="1em" height="1em" style="-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M67.852 9.367c1.935-.314 4.03-.346 5.843.51c2.684 1.082 4.583 3.652 5.233 6.422c.221 1.97.157 4.058-.775 5.857c-1.692 3.719-6.193 5.864-10.144 4.833c-4.054-.907-7.07-4.808-7.032-8.952c-.078-4.033 3.01-7.717 6.875-8.67" fill="#FFF"/><path d="M183.808 9.353c1.96-.307 4.073-.311 5.893.589c3.013 1.328 5.054 4.472 5.272 7.73c-.003 2.51-.842 5.13-2.702 6.886c-1.58 1.667-3.859 2.588-6.132 2.69c-3.519.05-7.067-2.051-8.445-5.334c-.892-1.753-.782-3.773-.667-5.672c.667-3.348 3.472-6.115 6.781-6.89" fill="#FFF"/><path d="M172.172 146.432c4.586-.021 9.173-.025 13.756 0c-.057 18.229-.01 36.46-.02 54.689c-4.57 0-9.139.004-13.71-.003c-.012-18.23.038-36.457-.026-54.686" fill="#FFF"/><path d="M183.808 9.353c-3.309.774-6.114 3.54-6.78 6.889c-.116 1.899-.226 3.919.666 5.672c1.378 3.283 4.926 5.385 8.445 5.335c2.273-.103 4.551-1.024 6.132-2.691c1.86-1.756 2.7-4.376 2.702-6.885c-.218-3.26-2.259-6.403-5.272-7.731c-1.82-.9-3.933-.896-5.893-.59m-115.956.015c-3.866.953-6.953 4.637-6.875 8.67c-.039 4.144 2.977 8.045 7.032 8.952c3.951 1.03 8.452-1.114 10.144-4.833c.932-1.8.996-3.887.775-5.857c-.65-2.77-2.549-5.34-5.233-6.422c-1.813-.856-3.908-.824-5.843-.51m-44.367-7.97C26.377.13 29.575-.063 32.691.016c64.251.007 128.502 0 192.753-.004c7.01-.117 13.84 4.216 16.673 10.636c1.195 2.53 1.702 5.34 1.652 8.13c-.028 6.248.064 12.494-.036 18.737c-2.073-.79-4.308-1-6.51-1.014c-72.7.015-145.399.007-218.099.01c-2.302.062-4.658.16-6.832 1.008c-.093-6.49-.043-12.978-.064-19.464c-.043-7.153 4.615-14.02 11.257-16.658" fill="#C7C7C7"/><path d="M182.73 91.715c1.029-.425 2.149-.403 3.238-.318c-.064 18.29.008 36.582-.035 54.87l-.004.165c-4.584-.025-9.17-.021-13.756 0v-.16c-.007-12.646-.012-25.288.002-37.935c-9.144 3.04-18.27 6.132-27.419 9.155c-.028-4.13.022-8.26-.024-12.388c12.65-4.51 25.341-8.906 37.999-13.39" fill="#C7C7C7"/><path d="M70.832 98.286c5.73-4.365 12.9-6.621 20.06-6.89c7.104-.25 14.456.9 20.67 4.509c4.916 2.816 8.806 7.324 10.925 12.57c2.114 5.24 2.785 11.034 2.142 16.634c-1.375 8.97-8.302 16.216-16.398 19.799a20.69 20.69 0 0 1 3.364 1.335a9.897 9.897 0 0 1-2.15.193c-9.55-.068-19.102.064-28.647-.065c-.035-2.073-.085-4.15.046-6.221c6.886-.164 14.15.678 20.592-2.341c5.292-2.234 9.23-7.296 9.976-13.01c.642-5.444.092-11.397-3.134-16.005c-2.538-3.648-6.839-5.668-11.14-6.307c-5.803-.81-12.168-.232-17.04 3.29c-4.796 3.374-7.335 9.327-7.213 15.106c-4.42.118-8.842.028-13.264.043c.087-2.427.271-4.87.904-7.221c1.52-6.128 5.271-11.636 10.307-15.42" fill="#C7C7C7"/><path d="M12.292 37.518c2.174-.846 4.53-.946 6.832-1.007c72.7-.003 145.399.004 218.099-.01c2.202.014 4.437.225 6.51 1.013c6.283 2.267 11.372 8.085 12.029 14.824c-1.278-4.619-4.04-8.917-8.17-11.462c-2.991-1.866-6.482-2.944-10.015-2.912c-72.932.05-145.868.05-218.803.05c-5.493-.1-11.029 2.27-14.53 6.546c-1.7 1.817-2.588 4.162-3.777 6.3c1.178-6.146 5.986-11.268 11.825-13.342" fill="#4483EF"/><path d="M171.916 146.293l.257-.021v.16c.064 18.229.013 36.457.024 54.686c4.572.007 9.142.004 13.71.004c.01-18.23-.036-36.461.022-54.69l.004-.164l.22.018c2.017.243 4.052.096 6.079.118c17.18-.011 34.362-.032 51.54 0c1.986 28.729 3.852 57.466 5.816 86.195c.192 3.284.61 6.657-.3 9.877l-.083.103c-.843.946-1.328 2.124-1.93 3.223c-3.224 5.26-9.214 8.802-15.424 8.742c-68.535-.04-137.065.03-205.595.006c-2.15 0-4.34.11-6.436-.453c-4.736-1.292-9.03-4.394-11.415-8.73c-.5-.95-.963-1.924-1.631-2.767l-.085-.118c-1.146-4.304-.215-8.766-.072-13.127c1.885-27.634 3.68-55.278 5.59-82.912c22.84-.057 45.684-.032 68.522-.014c.022 1.313.034 2.627.016 3.94c7.237.139 14.813-.728 21.668 2.138c4.63 1.807 8.431 5.676 9.895 10.455c1.613 5.289 1.427 11.143-.468 16.337c-1.767 4.868-6 8.63-10.944 10.083c-6.002 1.777-12.689 1.624-18.47-.857c-4.502-1.923-8.175-5.8-9.563-10.525c-.66-2.082-.916-4.27-.957-6.443c-4.376.028-8.752.018-13.128.004c.083 5.535 1.425 11.157 4.516 15.804c3.294 5.083 8.406 8.795 14.007 10.972c7.099 2.77 14.944 3.388 22.45 2.238c7.3-1.156 14.448-4.426 19.406-10.02c4.555-5.053 6.91-11.813 7.22-18.555c.419-6.436-1.063-13.196-5.15-18.308c-2.297-3.026-5.458-5.211-8.684-7.131c1.57-.196 3.155-.154 4.736-.146c16.185-.015 32.368.003 48.55-.008c2.028-.042 4.065.125 6.087-.114" fill="#4483EF"/><path d="M4.244 44.56c3.5-4.276 9.037-6.646 14.53-6.546c72.936 0 145.87 0 218.803-.05c3.533-.032 7.024 1.046 10.015 2.912c4.13 2.545 6.893 6.843 8.17 11.462c.354 1.631.257 3.323.072 4.972c-3.962 29.68-8.07 59.34-11.98 89.025c-16.485-.028-32.972.015-49.455-.003c-2.75-.022-5.501.103-8.245-.046l-.222-.018c.043-18.29-.028-36.582.036-54.872c-1.09-.085-2.21-.107-3.237.318c-12.657 4.483-25.35 8.881-38 13.39c.047 4.128-.003 8.258.026 12.388c9.148-3.023 18.275-6.115 27.419-9.156c-.014 12.647-.011 25.29-.003 37.935l-.257.021c-19.157.143-38.32.004-57.477.076c-.946-.022-1.945.271-2.844-.125a20.727 20.727 0 0 0-3.363-1.335c8.095-3.584 15.023-10.829 16.398-19.799c.642-5.6-.03-11.393-2.142-16.633c-2.12-5.247-6.011-9.755-10.926-12.57c-6.214-3.61-13.567-4.759-20.67-4.51c-7.16.268-14.331 2.524-20.06 6.89c-5.035 3.783-8.787 9.29-10.307 15.42c-.632 2.351-.818 4.792-.904 7.22c4.423-.015 8.845.074 13.264-.043c-.121-5.779 2.417-11.733 7.214-15.106c4.872-3.523 11.236-4.1 17.04-3.29c4.3.638 8.602 2.658 11.14 6.306c3.226 4.608 3.776 10.562 3.133 16.005c-.746 5.715-4.683 10.776-9.976 13.011c-6.442 3.02-13.706 2.177-20.591 2.341l-.171.003c.07 2.074-.011 4.152.046 6.23c-22.851-.037-45.705-.044-68.56.002C8.264 117.306 4.306 88.235.387 59.16c-.451-2.742-.604-5.586.082-8.299c1.188-2.138 2.077-4.483 3.776-6.3" fill="#3664D0"/><path d="M6.774 242.6c.667.843 1.132 1.817 1.63 2.767c2.386 4.336 6.68 7.438 11.416 8.73c2.095.564 4.287.453 6.435.453c68.53.025 137.062-.046 205.596-.007c6.21.06 12.2-3.48 15.423-8.741c.604-1.1 1.089-2.277 1.93-3.223c-1.512 5.857-6.223 10.718-11.984 12.524c-3.213 1.122-6.657.839-9.994.875l-200.25-.003c-2.662.02-5.386.046-7.95-.786c-5.874-1.742-10.703-6.65-12.252-12.59" fill="#3664D0"/></svg> \ No newline at end of file
diff --git a/recipes/googlecalendar/index.js b/recipes/googlecalendar/index.js
new file mode 100644
index 0000000..401a28f
--- /dev/null
+++ b/recipes/googlecalendar/index.js
@@ -0,0 +1,11 @@
1var os = require('os')
2
3module.exports = Franz =>
4 class googlecalendar 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 };
diff --git a/recipes/googlecalendar/package.json b/recipes/googlecalendar/package.json
new file mode 100644
index 0000000..95d4e1c
--- /dev/null
+++ b/recipes/googlecalendar/package.json
@@ -0,0 +1,15 @@
1{
2 "id": "googlecalendar",
3 "name": "Google Calendar",
4 "version": "1.0.3",
5 "description": "Google Calendar",
6 "main": "index.js",
7 "author": "Rico Herwig <rherwig4711@gmail.com>",
8 "license": "MIT",
9 "config": {
10 "serviceURL": "https://calendar.google.com/calendar",
11 "hasNotificationSound": true,
12 "hasDirectMessages": true,
13 "openDevTools": true
14 }
15 }
diff --git a/recipes/googlecalendar/webview.js b/recipes/googlecalendar/webview.js
new file mode 100644
index 0000000..3d2b6f6
--- /dev/null
+++ b/recipes/googlecalendar/webview.js
@@ -0,0 +1,41 @@
1'use strict';
2
3const path = require('path');
4
5module.exports = Franz => {
6 let modal;
7 let updates = 0;
8
9 const createModal = () => {
10 const franzModal = document.createElement('div');
11 franzModal.setAttribute('id', 'franz-modal');
12 franzModal.innerHTML = '<div class="modal-content"><span class="close">&times;</span><p></p></div>';
13 franzModal.querySelector('.close').addEventListener('click', hideModal);
14
15 return franzModal;
16 };
17
18 const showModal = text => {
19 modal.querySelector('p').innerHTML = text;
20 updates++;
21 modal.classList.add('open');
22 };
23
24 const hideModal = () => {
25 modal.querySelector('p').innerHTML = '';
26 updates--;
27 modal.classList.remove('open');
28 };
29
30 window.alert = showModal;
31
32 const getMessages = () => Franz.setBadge(updates);
33
34 modal = createModal();
35 document.body.appendChild(modal);
36 document.addEventListener('keydown', event => event.keyCode === 27 && hideModal());
37
38 Franz.injectCSS(path.join(__dirname, 'calendar.css'));
39 Franz.loop(getMessages);
40};
41//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImdvb2dsZWNhbGVuZGFyL3dlYnZpZXcuanMiXSwibmFtZXMiOlsicGF0aCIsInJlcXVpcmUiLCJtb2R1bGUiLCJleHBvcnRzIiwiRnJhbnoiLCJtb2RhbCIsInVwZGF0ZXMiLCJjcmVhdGVNb2RhbCIsImZyYW56TW9kYWwiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJzZXRBdHRyaWJ1dGUiLCJpbm5lckhUTUwiLCJxdWVyeVNlbGVjdG9yIiwiYWRkRXZlbnRMaXN0ZW5lciIsImhpZGVNb2RhbCIsInNob3dNb2RhbCIsInRleHQiLCJjbGFzc0xpc3QiLCJhZGQiLCJyZW1vdmUiLCJ3aW5kb3ciLCJhbGVydCIsImdldE1lc3NhZ2VzIiwic2V0QmFkZ2UiLCJib2R5IiwiYXBwZW5kQ2hpbGQiLCJldmVudCIsImtleUNvZGUiLCJpbmplY3RDU1MiLCJqb2luIiwiX19kaXJuYW1lIiwibG9vcCJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxNQUFNQSxPQUFPQyxRQUFRLE1BQVIsQ0FBYjs7QUFFQUMsT0FBT0MsT0FBUCxHQUFpQkMsU0FBUztBQUN4QixNQUFJQyxLQUFKO0FBQ0EsTUFBSUMsVUFBVSxDQUFkOztBQUVBLFFBQU1DLGNBQWMsTUFBTTtBQUN4QixVQUFNQyxhQUFhQyxTQUFTQyxhQUFULENBQXVCLEtBQXZCLENBQW5CO0FBQ0FGLGVBQVdHLFlBQVgsQ0FBd0IsSUFBeEIsRUFBOEIsYUFBOUI7QUFDQUgsZUFBV0ksU0FBWCxHQUF1Qiw0RUFBdkI7QUFDQUosZUFBV0ssYUFBWCxDQUF5QixRQUF6QixFQUFtQ0MsZ0JBQW5DLENBQW9ELE9BQXBELEVBQTZEQyxTQUE3RDs7QUFFQSxXQUFPUCxVQUFQO0FBQ0QsR0FQRDs7QUFTQSxRQUFNUSxZQUFZQyxRQUFRO0FBQ3hCWixVQUFNUSxhQUFOLENBQW9CLEdBQXBCLEVBQXlCRCxTQUF6QixHQUFxQ0ssSUFBckM7QUFDQVg7QUFDQUQsVUFBTWEsU0FBTixDQUFnQkMsR0FBaEIsQ0FBb0IsTUFBcEI7QUFDRCxHQUpEOztBQU1BLFFBQU1KLFlBQVksTUFBTTtBQUN0QlYsVUFBTVEsYUFBTixDQUFvQixHQUFwQixFQUF5QkQsU0FBekIsR0FBcUMsRUFBckM7QUFDQU47QUFDQUQsVUFBTWEsU0FBTixDQUFnQkUsTUFBaEIsQ0FBdUIsTUFBdkI7QUFDRCxHQUpEOztBQU1BQyxTQUFPQyxLQUFQLEdBQWVOLFNBQWY7O0FBRUEsUUFBTU8sY0FBYyxNQUFNbkIsTUFBTW9CLFFBQU4sQ0FBZWxCLE9BQWYsQ0FBMUI7O0FBRUFELFVBQVFFLGFBQVI7QUFDQUUsV0FBU2dCLElBQVQsQ0FBY0MsV0FBZCxDQUEwQnJCLEtBQTFCO0FBQ0FJLFdBQVNLLGdCQUFULENBQTBCLFNBQTFCLEVBQXFDYSxTQUFTQSxNQUFNQyxPQUFOLEtBQWtCLEVBQWxCLElBQXdCYixXQUF0RTs7QUFFQVgsUUFBTXlCLFNBQU4sQ0FBZ0I3QixLQUFLOEIsSUFBTCxDQUFVQyxTQUFWLEVBQXFCLGNBQXJCLENBQWhCO0FBQ0EzQixRQUFNNEIsSUFBTixDQUFXVCxXQUFYO0FBQ0QsQ0FuQ0QiLCJmaWxlIjoiZ29vZ2xlY2FsZW5kYXIvd2Vidmlldy5qcyIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHBhdGggPSByZXF1aXJlKCdwYXRoJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gRnJhbnogPT4ge1xuICBsZXQgbW9kYWw7XG4gIGxldCB1cGRhdGVzID0gMDtcblxuICBjb25zdCBjcmVhdGVNb2RhbCA9ICgpID0+IHtcbiAgICBjb25zdCBmcmFuek1vZGFsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgZnJhbnpNb2RhbC5zZXRBdHRyaWJ1dGUoJ2lkJywgJ2ZyYW56LW1vZGFsJyk7XG4gICAgZnJhbnpNb2RhbC5pbm5lckhUTUwgPSAnPGRpdiBjbGFzcz1cIm1vZGFsLWNvbnRlbnRcIj48c3BhbiBjbGFzcz1cImNsb3NlXCI+JnRpbWVzOzwvc3Bhbj48cD48L3A+PC9kaXY+JztcbiAgICBmcmFuek1vZGFsLnF1ZXJ5U2VsZWN0b3IoJy5jbG9zZScpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgaGlkZU1vZGFsKTtcblxuICAgIHJldHVybiBmcmFuek1vZGFsO1xuICB9O1xuXG4gIGNvbnN0IHNob3dNb2RhbCA9IHRleHQgPT4ge1xuICAgIG1vZGFsLnF1ZXJ5U2VsZWN0b3IoJ3AnKS5pbm5lckhUTUwgPSB0ZXh0O1xuICAgIHVwZGF0ZXMrKztcbiAgICBtb2RhbC5jbGFzc0xpc3QuYWRkKCdvcGVuJyk7XG4gIH07XG5cbiAgY29uc3QgaGlkZU1vZGFsID0gKCkgPT4ge1xuICAgIG1vZGFsLnF1ZXJ5U2VsZWN0b3IoJ3AnKS5pbm5lckhUTUwgPSAnJztcbiAgICB1cGRhdGVzLS07XG4gICAgbW9kYWwuY2xhc3NMaXN0LnJlbW92ZSgnb3BlbicpO1xuICB9O1xuXG4gIHdpbmRvdy5hbGVydCA9IHNob3dNb2RhbDtcblxuICBjb25zdCBnZXRNZXNzYWdlcyA9ICgpID0+IEZyYW56LnNldEJhZGdlKHVwZGF0ZXMpO1xuXG4gIG1vZGFsID0gY3JlYXRlTW9kYWwoKTtcbiAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChtb2RhbCk7XG4gIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBldmVudCA9PiBldmVudC5rZXlDb2RlID09PSAyNyAmJiBoaWRlTW9kYWwoKSk7XG5cbiAgRnJhbnouaW5qZWN0Q1NTKHBhdGguam9pbihfX2Rpcm5hbWUsICdjYWxlbmRhci5jc3MnKSk7XG4gIEZyYW56Lmxvb3AoZ2V0TWVzc2FnZXMpO1xufTtcbiJdfQ== \ No newline at end of file