diff --git a/Airdroid/icon.png b/Airdroid/icon.png
new file mode 100644
index 0000000..e963d29
Binary files /dev/null and b/Airdroid/icon.png differ
diff --git a/Airdroid/icon.svg b/Airdroid/icon.svg
new file mode 100644
index 0000000..0c95a1c
--- /dev/null
+++ b/Airdroid/icon.svg
@@ -0,0 +1,288 @@
+
+
+
+
diff --git a/Airdroid/index.js b/Airdroid/index.js
new file mode 100644
index 0000000..258da41
--- /dev/null
+++ b/Airdroid/index.js
@@ -0,0 +1 @@
+module.exports = Franz => Franz;
diff --git a/Airdroid/package.json b/Airdroid/package.json
new file mode 100644
index 0000000..963ddeb
--- /dev/null
+++ b/Airdroid/package.json
@@ -0,0 +1,23 @@
+{
+ "name": "Airdroid",
+ "version": "1.0.0",
+ "description": "AirDroid allows you to access and manage your Android phone or tablet from Windows, Mac or the Web, wirelessly, for free. Transfer files between your devices, and share files to your friends.",
+ "main": "index.js",
+ "author": "David Sipos ",
+ "license": "MIT",
+ "config": {
+ "serviceURL": "http://web.airdroid.com/",
+ "serviceName": "Airdroid",
+ "message": "AirDroid allows you to access and manage your Android phone or tablet from Windows, Mac or the Web, wirelessly, for free. Transfer files between your devices, and share files to your friends.",
+ "popup": [],
+ "hasNotificationSound": true,
+ "hasIndirectMessages": false,
+ "hasTeamID": false,
+ "customURL": false,
+ "hostedOnly": false,
+ "webviewOptions": {
+ "disablewebsecurity": ""
+ },
+ "openDevTools": false
+ }
+}
diff --git a/Airdroid/webview.js b/Airdroid/webview.js
new file mode 100644
index 0000000..bc38bd1
--- /dev/null
+++ b/Airdroid/webview.js
@@ -0,0 +1,15 @@
+// orat.io integration
+module.exports = (Franz, options) => {
+ function getMessages() {
+ const count = {};
+ const FranzData = document.querySelector('#FranzMessages').dataset;
+ if (FranzData) {
+ count.count = FranzData.direct;
+ count.count_indirect = FranzData.indirect;
+ }
+
+ Franz.setBadge(count);
+ }
+
+ Franz.loop(getMessages);
+}
diff --git a/gadu-gadu/css/franz.css b/gadu-gadu/css/franz.css
new file mode 100644
index 0000000..998e3be
--- /dev/null
+++ b/gadu-gadu/css/franz.css
@@ -0,0 +1,3 @@
+#sr-advert-container, #sr-footer {
+ display: none !important;
+}
diff --git a/gadu-gadu/icon.png b/gadu-gadu/icon.png
new file mode 100644
index 0000000..e0a4481
Binary files /dev/null and b/gadu-gadu/icon.png differ
diff --git a/gadu-gadu/icon.svg b/gadu-gadu/icon.svg
new file mode 100644
index 0000000..7d7eb4b
--- /dev/null
+++ b/gadu-gadu/icon.svg
@@ -0,0 +1,19 @@
+
+
\ No newline at end of file
diff --git a/gadu-gadu/index.js b/gadu-gadu/index.js
new file mode 100644
index 0000000..46f936f
--- /dev/null
+++ b/gadu-gadu/index.js
@@ -0,0 +1,2 @@
+// just pass through Franz
+module.exports = Franz => Franz;
diff --git a/gadu-gadu/package.json b/gadu-gadu/package.json
new file mode 100644
index 0000000..fb0a10b
--- /dev/null
+++ b/gadu-gadu/package.json
@@ -0,0 +1,23 @@
+{
+ "name": "gadu-gadu",
+ "version": "1.0.0",
+ "description": "Gadu-Gadu the most popular polish communicator of the 00's",
+ "main": "index.js",
+ "author": "MichaĆ Kubrycz ",
+ "license": "MIT",
+ "config": {
+ "serviceURL": "http://www.gg.pl/#",
+ "serviceName": "GG",
+ "message": "GG - Polski. Najlepszy. Komunikator.",
+ "popup": [],
+ "hasNotificationSound": true,
+ "hasIndirectMessages": false,
+ "hasTeamID": false,
+ "customURL": false,
+ "hostedOnly": false,
+ "webviewOptions": {
+ "disablewebsecurity": ""
+ },
+ "openDevTools": false
+ }
+}
diff --git a/gadu-gadu/webview.js b/gadu-gadu/webview.js
new file mode 100644
index 0000000..db5af37
--- /dev/null
+++ b/gadu-gadu/webview.js
@@ -0,0 +1,22 @@
+const path = require('path');
+
+module.exports = (Franz, options) => {
+ const getMessages = () => {
+ const updates = parseInt(document.querySelector('i#sr-last-counter').textContent);
+ let messages = 0;
+
+ const conversations = document.querySelectorAll('.chat-counter:not(.d-none)').length;
+ if (conversations == 0) {
+ messages = 0;
+ } else {
+ for (var i = 0; i < conversations; i++) {
+ messages += parseInt(document.querySelectorAll('.chat-counter:not(.d-none)')[i].textContent);
+ }
+ }
+
+ Franz.setBadge(messages, updates);
+ };
+
+ Franz.injectCSS(path.join(__dirname, 'css', 'franz.css'));
+ Franz.loop(getMessages);
+};
diff --git a/glowing-bear/icon.png b/glowing-bear/icon.png
new file mode 100644
index 0000000..3bf2ca2
Binary files /dev/null and b/glowing-bear/icon.png differ
diff --git a/glowing-bear/icon.svg b/glowing-bear/icon.svg
new file mode 100644
index 0000000..48e21c4
--- /dev/null
+++ b/glowing-bear/icon.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/glowing-bear/index.js b/glowing-bear/index.js
new file mode 100644
index 0000000..46f936f
--- /dev/null
+++ b/glowing-bear/index.js
@@ -0,0 +1,2 @@
+// just pass through Franz
+module.exports = Franz => Franz;
diff --git a/glowing-bear/package.json b/glowing-bear/package.json
new file mode 100644
index 0000000..234c05f
--- /dev/null
+++ b/glowing-bear/package.json
@@ -0,0 +1,23 @@
+{
+ "name": "glowing-bear",
+ "version": "1.0.0",
+ "description": "A client for WeeChat",
+ "main": "index.js",
+ "author": "Matej Cotman ",
+ "license": "MIT",
+ "config": {
+ "serviceURL": "https://www.glowing-bear.org/",
+ "serviceName": "Glowing-Bear",
+ "message": "",
+ "popup": [],
+ "hasNotificationSound": true,
+ "hasIndirectMessages": false,
+ "hasTeamID": false,
+ "customURL": false,
+ "hostedOnly": false,
+ "webviewOptions": {
+ "disablewebsecurity": ""
+ },
+ "openDevTools": false
+ }
+}
diff --git a/glowing-bear/webview.js b/glowing-bear/webview.js
new file mode 100644
index 0000000..317d918
--- /dev/null
+++ b/glowing-bear/webview.js
@@ -0,0 +1,14 @@
+const path = require('path');
+
+global.window.Notification = null;
+
+module.exports = (Franz, options) => {
+ const getMessages = () => {
+ let badge = document.querySelectorAll('span[ng-show="notifications > 0"]')[0];
+ let direct = badge ? parseInt(badge.innerHTML) : 0;
+ Franz.setBadge(direct);
+ };
+
+ // check for new messages every second and update Franz badge
+ Franz.loop(getMessages);
+};
diff --git a/googledrive/icon.png b/googledrive/icon.png
new file mode 100644
index 0000000..4b67727
Binary files /dev/null and b/googledrive/icon.png differ
diff --git a/googledrive/icon.svg b/googledrive/icon.svg
new file mode 100644
index 0000000..3407027
--- /dev/null
+++ b/googledrive/icon.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/googledrive/index.js b/googledrive/index.js
new file mode 100755
index 0000000..258da41
--- /dev/null
+++ b/googledrive/index.js
@@ -0,0 +1 @@
+module.exports = Franz => Franz;
diff --git a/googledrive/package.json b/googledrive/package.json
new file mode 100755
index 0000000..55efbc4
--- /dev/null
+++ b/googledrive/package.json
@@ -0,0 +1,23 @@
+{
+ "name": "GoogleDrive",
+ "version": "1.0.0",
+ "description": "GoogleDrive",
+ "main": "index.js",
+ "author": "Koray K. ",
+ "license": "MIT",
+ "config": {
+ "serviceURL": "https://drive.google.com/drive/u/0/",
+ "serviceName": "GoogleDrive",
+ "message": "",
+ "popup": [],
+ "hasNotificationSound": true,
+ "hasIndirectMessages": false,
+ "hasTeamID": false,
+ "customURL": false,
+ "hostedOnly": false,
+ "webviewOptions": {
+ "disablewebsecurity": ""
+ },
+ "openDevTools": false
+ }
+}
diff --git a/googledrive/webview.js b/googledrive/webview.js
new file mode 100755
index 0000000..8d854de
--- /dev/null
+++ b/googledrive/webview.js
@@ -0,0 +1,3 @@
+module.exports = (Franz, options) => {
+
+}
diff --git a/googlekeep/icon.png b/googlekeep/icon.png
new file mode 100644
index 0000000..6ecdae8
Binary files /dev/null and b/googlekeep/icon.png differ
diff --git a/googlekeep/icon.svg b/googlekeep/icon.svg
new file mode 100644
index 0000000..abb5088
--- /dev/null
+++ b/googlekeep/icon.svg
@@ -0,0 +1,13 @@
+
+
+
diff --git a/googlekeep/index.js b/googlekeep/index.js
new file mode 100644
index 0000000..258da41
--- /dev/null
+++ b/googlekeep/index.js
@@ -0,0 +1 @@
+module.exports = Franz => Franz;
diff --git a/googlekeep/package.json b/googlekeep/package.json
new file mode 100644
index 0000000..34e0d12
--- /dev/null
+++ b/googlekeep/package.json
@@ -0,0 +1,23 @@
+{
+ "name": "GoogleKeep",
+ "version": "1.0.0",
+ "description": "Google Keep",
+ "main": "index.js",
+ "author": "Jorge Martinez ",
+ "license": "MIT",
+ "config": {
+ "serviceURL": "https://keep.google.com/",
+ "serviceName": "GoogleKeep",
+ "message": "",
+ "popup": [],
+ "hasNotificationSound": false,
+ "hasIndirectMessages": false,
+ "hasTeamID": false,
+ "customURL": false,
+ "hostedOnly": false,
+ "webviewOptions": {
+ "disablewebsecurity": ""
+ },
+ "openDevTools": false
+ }
+}
diff --git a/googlekeep/webview.js b/googlekeep/webview.js
new file mode 100644
index 0000000..8d854de
--- /dev/null
+++ b/googlekeep/webview.js
@@ -0,0 +1,3 @@
+module.exports = (Franz, options) => {
+
+}
diff --git a/googlevoice/icon.png b/googlevoice/icon.png
new file mode 100644
index 0000000..57930ee
Binary files /dev/null and b/googlevoice/icon.png differ
diff --git a/googlevoice/icon.svg b/googlevoice/icon.svg
new file mode 100644
index 0000000..01c2d59
--- /dev/null
+++ b/googlevoice/icon.svg
@@ -0,0 +1,21 @@
+
+
+
diff --git a/googlevoice/index.js b/googlevoice/index.js
new file mode 100644
index 0000000..9157a2e
--- /dev/null
+++ b/googlevoice/index.js
@@ -0,0 +1 @@
+module.exports = Franz => Franz;
\ No newline at end of file
diff --git a/googlevoice/package.json b/googlevoice/package.json
new file mode 100644
index 0000000..8f6944d
--- /dev/null
+++ b/googlevoice/package.json
@@ -0,0 +1,23 @@
+{
+ "name": "googlevoice",
+ "version": "0.1.0",
+ "description": "Google Voice",
+ "main": "index.js",
+ "author": "Behind The Math ",
+ "license": "MIT",
+ "config": {
+ "serviceURL": "https://www.google.com/voice",
+ "serviceName": "Google Voice",
+ "message": "Google Voice gives you one number for all your phones, voicemail as easy as email, free US long distance, low rates on international calls, and many calling features like transcripts, call blocking, call screening, conference calling, SMS, and more.",
+ "popup": [],
+ "hasNotificationSound": false,
+ "hasIndirectMessages": false,
+ "hasTeamID": false,
+ "customURL": false,
+ "hostedOnly": false,
+ "webviewOptions": {
+ "disablewebsecurity": ""
+ },
+ "openDevTools": false
+ }
+}
\ No newline at end of file
diff --git a/googlevoice/webview.js b/googlevoice/webview.js
new file mode 100644
index 0000000..3b219b3
--- /dev/null
+++ b/googlevoice/webview.js
@@ -0,0 +1,10 @@
+module.exports = (Franz, options) => {
+ function getMessages() {
+ const count = document.querySelector('.msgCount').innerHTML.replace(/[\(\) ]/gi,"");
+ if (count) {
+ Franz.setBadge(count);
+ }
+ }
+
+ Franz.loop(getMessages);
+}
\ No newline at end of file
diff --git a/iCloud/icon.png b/iCloud/icon.png
new file mode 100644
index 0000000..fb3e224
Binary files /dev/null and b/iCloud/icon.png differ
diff --git a/iCloud/icon.svg b/iCloud/icon.svg
new file mode 100644
index 0000000..5f14081
--- /dev/null
+++ b/iCloud/icon.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/iCloud/index.js b/iCloud/index.js
new file mode 100644
index 0000000..258da41
--- /dev/null
+++ b/iCloud/index.js
@@ -0,0 +1 @@
+module.exports = Franz => Franz;
diff --git a/iCloud/package.json b/iCloud/package.json
new file mode 100644
index 0000000..e71b20e
--- /dev/null
+++ b/iCloud/package.json
@@ -0,0 +1,23 @@
+{
+ "name": "iCloud",
+ "version": "1.0.0",
+ "description": "iCloud web portal",
+ "main": "index.js",
+ "author": "Ryan Voltaire ",
+ "license": "MIT",
+ "config": {
+ "serviceURL": "https://www.icloud.com/",
+ "serviceName": "iCloud",
+ "message": "",
+ "popup": [],
+ "hasNotificationSound": false,
+ "hasIndirectMessages": false,
+ "hasTeamID": false,
+ "customURL": false,
+ "hostedOnly": false,
+ "webviewOptions": {
+ "disablewebsecurity": ""
+ },
+ "openDevTools": false
+ }
+}
diff --git a/iCloud/webview.js b/iCloud/webview.js
new file mode 100644
index 0000000..8d854de
--- /dev/null
+++ b/iCloud/webview.js
@@ -0,0 +1,3 @@
+module.exports = (Franz, options) => {
+
+}
diff --git a/instagram/css/franz.css b/instagram/css/franz.css
new file mode 100644
index 0000000..09e72fb
--- /dev/null
+++ b/instagram/css/franz.css
@@ -0,0 +1,3 @@
+footer {
+ display: none !important;
+}
diff --git a/instagram/icon.png b/instagram/icon.png
new file mode 100644
index 0000000..7f6f4ee
Binary files /dev/null and b/instagram/icon.png differ
diff --git a/instagram/icon.svg b/instagram/icon.svg
new file mode 100644
index 0000000..1336cb7
--- /dev/null
+++ b/instagram/icon.svg
@@ -0,0 +1,612 @@
+
+
+
+
diff --git a/instagram/index.js b/instagram/index.js
new file mode 100644
index 0000000..46f936f
--- /dev/null
+++ b/instagram/index.js
@@ -0,0 +1,2 @@
+// just pass through Franz
+module.exports = Franz => Franz;
diff --git a/instagram/package.json b/instagram/package.json
new file mode 100644
index 0000000..51bb4ae
--- /dev/null
+++ b/instagram/package.json
@@ -0,0 +1,23 @@
+{
+ "name": "Instagram",
+ "version": "1.0.0",
+ "description": "Instagram",
+ "main": "index.js",
+ "author": "Marc Jose ",
+ "license": "MIT",
+ "config": {
+ "serviceURL": "https://www.instagram.com/",
+ "serviceName": "Instagram",
+ "message": "Instagram is a simple way to capture and share the worldâs moments.",
+ "popup": [],
+ "hasNotificationSound": false,
+ "hasIndirectMessages": false,
+ "hasTeamID": false,
+ "customURL": false,
+ "hostedOnly": false,
+ "webviewOptions": {
+ "disablewebsecurity": ""
+ },
+ "openDevTools": false
+ }
+}
diff --git a/instagram/webview.js b/instagram/webview.js
new file mode 100644
index 0000000..d0ff08b
--- /dev/null
+++ b/instagram/webview.js
@@ -0,0 +1,22 @@
+const path = require('path');
+
+module.exports = (Franz, options) => {
+ const getMessages = () => {
+ // get unread messages
+ const updates = document.getElementById('franz').getAttribute('data-unread');
+
+ // get conversations in 'My Inbox'
+ const inbox = document.getElementById('franz').getAttribute('data-inbox');
+
+ // set Franz badge
+ // updates => active unread count
+ // inbox => passive unread count
+ Franz.setBadge(updates, inbox);
+ };
+
+ // inject franz.css stylesheet
+ Franz.injectCSS(path.join(__dirname, 'css', 'franz.css'));
+
+ // check for new messages every second and update Franz badge
+ Franz.loop(getMessages);
+};
diff --git a/meistertask/icon.png b/meistertask/icon.png
new file mode 100644
index 0000000..9ab7211
Binary files /dev/null and b/meistertask/icon.png differ
diff --git a/meistertask/icon.svg b/meistertask/icon.svg
new file mode 100644
index 0000000..2c4115a
--- /dev/null
+++ b/meistertask/icon.svg
@@ -0,0 +1,74 @@
+
\ No newline at end of file
diff --git a/meistertask/index.js b/meistertask/index.js
new file mode 100755
index 0000000..258da41
--- /dev/null
+++ b/meistertask/index.js
@@ -0,0 +1 @@
+module.exports = Franz => Franz;
diff --git a/meistertask/package.json b/meistertask/package.json
new file mode 100755
index 0000000..fea6ea1
--- /dev/null
+++ b/meistertask/package.json
@@ -0,0 +1,23 @@
+{
+ "name": "MeisterTask",
+ "version": "1.0.0",
+ "description": "MeisterTask WEB",
+ "main": "index.js",
+ "author": "Koray K. ",
+ "license": "MIT",
+ "config": {
+ "serviceURL": "https://www.meistertask.com/app",
+ "serviceName": "MeisterTask",
+ "message": "",
+ "popup": [],
+ "hasNotificationSound": false,
+ "hasIndirectMessages": false,
+ "hasTeamID": false,
+ "customURL": false,
+ "hostedOnly": false,
+ "webviewOptions": {
+ "disablewebsecurity": ""
+ },
+ "openDevTools": false
+ }
+}
diff --git a/meistertask/webview.js b/meistertask/webview.js
new file mode 100755
index 0000000..8d854de
--- /dev/null
+++ b/meistertask/webview.js
@@ -0,0 +1,3 @@
+module.exports = (Franz, options) => {
+
+}
diff --git a/mingdao/icon.png b/mingdao/icon.png
new file mode 100644
index 0000000..b1b2a7b
Binary files /dev/null and b/mingdao/icon.png differ
diff --git a/mingdao/icon.svg b/mingdao/icon.svg
new file mode 100644
index 0000000..5d801c9
--- /dev/null
+++ b/mingdao/icon.svg
@@ -0,0 +1,93 @@
+
+
+
+
diff --git a/mingdao/index.js b/mingdao/index.js
new file mode 100644
index 0000000..258da41
--- /dev/null
+++ b/mingdao/index.js
@@ -0,0 +1 @@
+module.exports = Franz => Franz;
diff --git a/mingdao/package.json b/mingdao/package.json
new file mode 100644
index 0000000..5ba79fb
--- /dev/null
+++ b/mingdao/package.json
@@ -0,0 +1,23 @@
+{
+ "name": "mingdao",
+ "version": "0.1.0",
+ "description": "mingdao",
+ "main": "index.js",
+ "author": "Sin ",
+ "license": "MIT",
+ "config": {
+ "serviceURL": "https://www.mingdao.com/login.htm",
+ "serviceName": "Mingdao",
+ "message": "èȘç±èżæ„äžććäœè
",
+ "popup": [],
+ "hasNotificationSound": false,
+ "hasIndirectMessages": false,
+ "hasTeamID": false,
+ "customURL": false,
+ "hostedOnly": false,
+ "webviewOptions": {
+ "disablewebsecurity": ""
+ },
+ "openDevTools": false
+ }
+}
diff --git a/mingdao/webview.js b/mingdao/webview.js
new file mode 100644
index 0000000..db38b13
--- /dev/null
+++ b/mingdao/webview.js
@@ -0,0 +1,7 @@
+module.exports = (Franz, options) => {
+ function getMessageCount() {
+ const count = parseInt($('#topBarContainer .messageLittleRedDot').data('count'), 10);
+ Franz.setBadge(count);
+ }
+ Franz.loop(getMessageCount);
+}
diff --git a/office365/package.json b/office365/package.json
index fa2088a..d5b7dcb 100644
--- a/office365/package.json
+++ b/office365/package.json
@@ -1,7 +1,7 @@
{
- "name": "Zoho Mail",
+ "name": "Office365",
"version": "1.0.0",
- "description": "Outlook from Office365",
+ "description": "Outlook Office365",
"main": "index.js",
"author": "Chris Gray ",
"license": "MIT",
diff --git a/office365/webview.js b/office365/webview.js
index 489f369..0b28302 100644
--- a/office365/webview.js
+++ b/office365/webview.js
@@ -2,7 +2,7 @@ const path = require('path');
module.exports = (Franz, options) => {
const getMessages = () => {
- const unreadMail = jQuery("span[title*='Inbox'] + div > span").text();
+ const unreadMail = jQuery("span[title*='Inbox'] + div > span").first().text();
Franz.setBadge(unreadMail);
}
diff --git a/pivotaltracker/icon.png b/pivotaltracker/icon.png
new file mode 100644
index 0000000..f85f3e9
Binary files /dev/null and b/pivotaltracker/icon.png differ
diff --git a/pivotaltracker/icon.svg b/pivotaltracker/icon.svg
new file mode 100644
index 0000000..3dbf5c6
--- /dev/null
+++ b/pivotaltracker/icon.svg
@@ -0,0 +1,7 @@
+
+
\ No newline at end of file
diff --git a/pivotaltracker/index.js b/pivotaltracker/index.js
new file mode 100644
index 0000000..258da41
--- /dev/null
+++ b/pivotaltracker/index.js
@@ -0,0 +1 @@
+module.exports = Franz => Franz;
diff --git a/pivotaltracker/package.json b/pivotaltracker/package.json
new file mode 100644
index 0000000..a8aebfd
--- /dev/null
+++ b/pivotaltracker/package.json
@@ -0,0 +1,23 @@
+{
+ "name": "pivotal",
+ "version": "1.0.0",
+ "description": "Pivotal Tracker",
+ "main": "index.js",
+ "author": "Laszlo Racz ",
+ "license": "MIT",
+ "config": {
+ "serviceURL": "https://www.pivotaltracker.com/signin",
+ "serviceName": "Pivotal Tracker",
+ "message": "",
+ "popup": [],
+ "hasNotificationSound": true,
+ "hasIndirectMessages": false,
+ "hasTeamID": false,
+ "customURL": false,
+ "hostedOnly": false,
+ "webviewOptions": {
+ "disablewebsecurity": ""
+ },
+ "openDevTools": false
+ }
+}
diff --git a/pivotaltracker/webview.js b/pivotaltracker/webview.js
new file mode 100644
index 0000000..a550492
--- /dev/null
+++ b/pivotaltracker/webview.js
@@ -0,0 +1,13 @@
+module.exports = (Franz, options) => {
+
+ function getMessages() {
+ var bell = document.querySelectorAll("#view65 > span")[0];
+
+ counter = parseInt(bell.innerText);
+
+ Franz.setBadge(counter);
+ };
+
+ Franz.loop(getMessages);
+
+}
diff --git a/podio-chat/css/franz.css b/podio-chat/css/franz.css
new file mode 100644
index 0000000..b5668ee
--- /dev/null
+++ b/podio-chat/css/franz.css
@@ -0,0 +1,22 @@
+#header-global {
+ display: none !important;
+}
+
+.content-container
+{
+ margin-top: -15px !important;
+ padding-top: 0px !important;
+}
+
+.settings-trigger {
+ display: none !important;
+}
+
+.grid {
+ box-sizing: border-box;
+ padding: 0 !important;
+}
+
+.grid .grid-column-1-2:last-of-type, .grid .grid-column-1-3:last-of-type, .grid .grid-column-1-4:last-of-type, .grid .grid-column-1:last-of-type, .grid .grid-column-2-3:last-of-type, .grid .grid-column-3-4:last-of-type {
+ padding-right: -10px !important;
+}
\ No newline at end of file
diff --git a/podio-chat/icon.png b/podio-chat/icon.png
new file mode 100644
index 0000000..5c20fac
Binary files /dev/null and b/podio-chat/icon.png differ
diff --git a/podio-chat/icon.svg b/podio-chat/icon.svg
new file mode 100644
index 0000000..6646fad
--- /dev/null
+++ b/podio-chat/icon.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/podio-chat/index.js b/podio-chat/index.js
new file mode 100644
index 0000000..46f936f
--- /dev/null
+++ b/podio-chat/index.js
@@ -0,0 +1,2 @@
+// just pass through Franz
+module.exports = Franz => Franz;
diff --git a/podio-chat/package.json b/podio-chat/package.json
new file mode 100644
index 0000000..062c6ae
--- /dev/null
+++ b/podio-chat/package.json
@@ -0,0 +1,23 @@
+{
+ "name": "podio-chat",
+ "version": "1.0.0",
+ "description": "Podio Chat",
+ "main": "index.js",
+ "author": "Jan Willem Kaper ",
+ "license": "MIT",
+ "config": {
+ "serviceURL": "https://podio.com/conversations",
+ "serviceName": "Podio Chat",
+ "message": "",
+ "popup": [
+ ],
+ "hasNotificationSound": true,
+ "hasIndirectMessages": false,
+ "hasTeamID": false,
+ "customURL": false,
+ "hostedOnly": false,
+ "webviewOptions": {
+ },
+ "openDevTools": false
+ }
+}
diff --git a/podio-chat/webview.js b/podio-chat/webview.js
new file mode 100644
index 0000000..b1ddc4f
--- /dev/null
+++ b/podio-chat/webview.js
@@ -0,0 +1,22 @@
+const path = require('path');
+
+module.exports = (Franz, options) => {
+ const getMessages = () => {
+ // get unread messages
+ const updates = document.getElementsByClassName('counter')[0].innerHTML;
+
+ // get conversations in 'My Inbox'
+ //const inbox = document.getElementById('franz').getAttribute('data-inbox');
+
+ // set Franz badge
+ // updates => active unread count
+ // inbox => passive unread count
+ Franz.setBadge(updates, 0);
+ };
+
+ // inject franz.css stylesheet
+ Franz.injectCSS(path.join(__dirname, 'css', 'franz.css'));
+
+ // check for new messages every second and update Franz badge
+ Franz.loop(getMessages);
+};
diff --git a/protonet/icon.png b/protonet/icon.png
new file mode 100644
index 0000000..264b5ed
Binary files /dev/null and b/protonet/icon.png differ
diff --git a/protonet/icon.svg b/protonet/icon.svg
new file mode 100644
index 0000000..0989981
--- /dev/null
+++ b/protonet/icon.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/protonet/index.js b/protonet/index.js
new file mode 100755
index 0000000..258da41
--- /dev/null
+++ b/protonet/index.js
@@ -0,0 +1 @@
+module.exports = Franz => Franz;
diff --git a/protonet/package.json b/protonet/package.json
new file mode 100755
index 0000000..fe20cde
--- /dev/null
+++ b/protonet/package.json
@@ -0,0 +1,27 @@
+{
+ "name": "Protonet",
+ "version": "1.0.1",
+ "description": "Protonet",
+ "main": "index.js",
+ "author": "Joschka Schulz",
+ "license": "MIT",
+ "config": {
+ "serviceURL": "https://{teamID}.protonet.info",
+ "serviceName": "Protonet",
+ "message": "",
+ "popup": [],
+ "hasNotificationSound": true,
+ "hasIndirectMessages": false,
+ "hasTeamID": true,
+ "wording": {
+ "url": "protonet.info",
+ "team": "Protonet"
+ },
+ "customURL": false,
+ "hostedOnly": false,
+ "webviewOptions": {
+ "disablewebsecurity": ""
+ },
+ "openDevTools": false
+ }
+}
diff --git a/protonet/webview.js b/protonet/webview.js
new file mode 100755
index 0000000..8b597cf
--- /dev/null
+++ b/protonet/webview.js
@@ -0,0 +1,10 @@
+module.exports = (Franz, options) => {
+ const getMessages = () => {
+ const unreadPrivateMessages = parseInt($(".messages .unread-meeps").text());
+ const unreadGroupMessages = parseInt($(".today .unread-meeps").text());
+
+ Franz.setBadge(unreadPrivateMessages + unreadGroupMessages);
+ }
+
+ Franz.loop(getMessages);
+}
diff --git a/shout/icon.png b/shout/icon.png
new file mode 100644
index 0000000..6d7bf41
Binary files /dev/null and b/shout/icon.png differ
diff --git a/shout/icon.svg b/shout/icon.svg
new file mode 100644
index 0000000..dd0d301
--- /dev/null
+++ b/shout/icon.svg
@@ -0,0 +1,7 @@
+
+
diff --git a/shout/index.js b/shout/index.js
new file mode 100644
index 0000000..8761417
--- /dev/null
+++ b/shout/index.js
@@ -0,0 +1,18 @@
+module.exports = (Franz) => {
+ class Shout extends Franz {
+ validateServer(URL) {
+ const api = `${URL}`;
+ return new Promise((resolve, reject) => {
+ $.get(api, (resp) => {
+ if (typeof(resp) === 'object' && 'build' in resp) {
+ resolve();
+ } else {
+ reject();
+ }
+ }).fail(reject);
+ });
+ }
+ }
+
+ return Shout;
+};
diff --git a/shout/package.json b/shout/package.json
new file mode 100644
index 0000000..ec8ba32
--- /dev/null
+++ b/shout/package.json
@@ -0,0 +1,23 @@
+{
+ "name": "Shout",
+ "version": "1.0.0",
+ "description": "Shout - The self-hosted web IRC client",
+ "main": "index.js",
+ "author": "Stuart Clark ",
+ "license": "MIT",
+ "config": {
+ "serviceURL": "",
+ "serviceName": "Shout",
+ "message": "The self-hosted web IRC client",
+ "popup": [],
+ "hasNotificationSound": true,
+ "hasIndirectMessages": true,
+ "hasTeamID": false,
+ "customURL": true,
+ "hostedOnly": true,
+ "webviewOptions": {
+ "disablewebsecurity": ""
+ },
+ "openDevTools": false
+ }
+}
diff --git a/shout/webview.js b/shout/webview.js
new file mode 100644
index 0000000..738d566
--- /dev/null
+++ b/shout/webview.js
@@ -0,0 +1,29 @@
+const path = require('path');
+
+module.exports = (Franz, options) => {
+ const getMessages = () => {
+ // get unread messages
+ var updates = 0;
+ jQuery('.badge.highlight').each(function(i,v) {
+ var data = jQuery(this).data('count');
+ if (jQuery.isNumeric(data)) {
+ updates += data;
+ }
+ });
+
+ // get general messages
+ var index = 0;
+ jQuery('.badge:not(".highlight")').each(function(i,v) {
+ var data = jQuery(this).data('count');
+ if (jQuery.isNumeric(data)) {
+ index += data;
+ }
+ });
+
+ // set Franz badge
+ Franz.setBadge(updates, index);
+ };
+
+ // check for new messages every second and update Franz badge
+ Franz.loop(getMessages);
+};
diff --git a/soundcloud/icon.png b/soundcloud/icon.png
new file mode 100755
index 0000000..b2fc05e
Binary files /dev/null and b/soundcloud/icon.png differ
diff --git a/soundcloud/icon.svg b/soundcloud/icon.svg
new file mode 100755
index 0000000..c4924d8
--- /dev/null
+++ b/soundcloud/icon.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/soundcloud/index.js b/soundcloud/index.js
new file mode 100755
index 0000000..258da41
--- /dev/null
+++ b/soundcloud/index.js
@@ -0,0 +1 @@
+module.exports = Franz => Franz;
diff --git a/soundcloud/package.json b/soundcloud/package.json
new file mode 100755
index 0000000..de49893
--- /dev/null
+++ b/soundcloud/package.json
@@ -0,0 +1,23 @@
+{
+ "name": "Soundcloud",
+ "version": "1.0.0",
+ "description": "Soundcloud",
+ "main": "index.js",
+ "author": "Koray K. ",
+ "license": "MIT",
+ "config": {
+ "serviceURL": "https://soundcloud.com/signin",
+ "serviceName": "Soundcloud",
+ "message": "",
+ "popup": [],
+ "hasNotificationSound": false,
+ "hasIndirectMessages": false,
+ "hasTeamID": false,
+ "customURL": false,
+ "hostedOnly": false,
+ "webviewOptions": {
+ "disablewebsecurity": ""
+ },
+ "openDevTools": false
+ }
+}
diff --git a/soundcloud/webview.js b/soundcloud/webview.js
new file mode 100755
index 0000000..8d854de
--- /dev/null
+++ b/soundcloud/webview.js
@@ -0,0 +1,3 @@
+module.exports = (Franz, options) => {
+
+}
diff --git a/todoist/icon.png b/todoist/icon.png
new file mode 100644
index 0000000..f1c5183
Binary files /dev/null and b/todoist/icon.png differ
diff --git a/todoist/icon.svg b/todoist/icon.svg
new file mode 100644
index 0000000..c9b6828
--- /dev/null
+++ b/todoist/icon.svg
@@ -0,0 +1,28 @@
+
+
+
diff --git a/todoist/index.js b/todoist/index.js
new file mode 100644
index 0000000..258da41
--- /dev/null
+++ b/todoist/index.js
@@ -0,0 +1 @@
+module.exports = Franz => Franz;
diff --git a/todoist/package.json b/todoist/package.json
new file mode 100644
index 0000000..7811bed
--- /dev/null
+++ b/todoist/package.json
@@ -0,0 +1,23 @@
+{
+ "name": "todoist",
+ "version": "1.0.0",
+ "description": "todoist plugin for Franz",
+ "main": "index.js",
+ "author": "Alex Ward ",
+ "license": "MIT",
+ "config": {
+ "serviceURL": "https://todoist.com/Users/showLogin",
+ "serviceName": "Todoist",
+ "message": "",
+ "popup": [],
+ "hasNotificationSound": false,
+ "hasIndirectMessages": false,
+ "hasTeamID": false,
+ "customURL": false,
+ "hostedOnly": false,
+ "webviewOptions": {
+ "disablewebsecurity": ""
+ },
+ "openDevTools": false
+ }
+}
diff --git a/todoist/webview.js b/todoist/webview.js
new file mode 100644
index 0000000..8d854de
--- /dev/null
+++ b/todoist/webview.js
@@ -0,0 +1,3 @@
+module.exports = (Franz, options) => {
+
+}
diff --git a/vector.im/package.json b/vector.im/package.json
index 4d7ffea..afdcc15 100644
--- a/vector.im/package.json
+++ b/vector.im/package.json
@@ -3,7 +3,7 @@
"version": "1.0.1",
"description": "Riot (matrix/vector.im)",
"main": "index.js",
- "author": "Matthew Frost
+
\ No newline at end of file
diff --git a/waffleio/index.js b/waffleio/index.js
new file mode 100644
index 0000000..258da41
--- /dev/null
+++ b/waffleio/index.js
@@ -0,0 +1 @@
+module.exports = Franz => Franz;
diff --git a/waffleio/package.json b/waffleio/package.json
new file mode 100644
index 0000000..302518c
--- /dev/null
+++ b/waffleio/package.json
@@ -0,0 +1,23 @@
+{
+ "name": "waffleio",
+ "version": "1.0.0",
+ "description": "waffle.io",
+ "main": "index.js",
+ "author": "Brian Retterer ",
+ "license": "MIT",
+ "config": {
+ "serviceURL": "https://waffle.io/{teamID}",
+ "serviceName": "Waffle.io",
+ "message": "",
+ "popup": [],
+ "hasNotificationSound": false,
+ "hasIndirectMessages": false,
+ "hasTeamID": true,
+ "customURL": false,
+ "hostedOnly": false,
+ "webviewOptions": {
+ "disablewebsecurity": ""
+ },
+ "openDevTools": false
+ }
+}
diff --git a/waffleio/webview.js b/waffleio/webview.js
new file mode 100644
index 0000000..8d854de
--- /dev/null
+++ b/waffleio/webview.js
@@ -0,0 +1,3 @@
+module.exports = (Franz, options) => {
+
+}
diff --git a/wunderlist/icon.png b/wunderlist/icon.png
new file mode 100644
index 0000000..05df4b6
Binary files /dev/null and b/wunderlist/icon.png differ
diff --git a/wunderlist/icon.svg b/wunderlist/icon.svg
new file mode 100644
index 0000000..d7bc44e
--- /dev/null
+++ b/wunderlist/icon.svg
@@ -0,0 +1,1720 @@
+
+
+
+
diff --git a/wunderlist/index.js b/wunderlist/index.js
new file mode 100644
index 0000000..258da41
--- /dev/null
+++ b/wunderlist/index.js
@@ -0,0 +1 @@
+module.exports = Franz => Franz;
diff --git a/wunderlist/package.json b/wunderlist/package.json
new file mode 100644
index 0000000..3c7d1d8
--- /dev/null
+++ b/wunderlist/package.json
@@ -0,0 +1,23 @@
+{
+ "name": "wunderlist",
+ "version": "1.0.0",
+ "description": "Wunderlist",
+ "main": "index.js",
+ "author": "Laszlo Racz ",
+ "license": "MIT",
+ "config": {
+ "serviceURL": "https://www.wunderlist.com/login",
+ "serviceName": "Wunderlist",
+ "message": "",
+ "popup": [],
+ "hasNotificationSound": true,
+ "hasIndirectMessages": false,
+ "hasTeamID": false,
+ "customURL": false,
+ "hostedOnly": false,
+ "webviewOptions": {
+ "disablewebsecurity": ""
+ },
+ "openDevTools": false
+ }
+}
diff --git a/wunderlist/webview.js b/wunderlist/webview.js
new file mode 100644
index 0000000..78f83cd
--- /dev/null
+++ b/wunderlist/webview.js
@@ -0,0 +1,13 @@
+module.exports = (Franz, options) => {
+
+ function getMessages() {
+ var bell = document.querySelectorAll("#user-toolbar > div > a.activities-count > span")[0];
+
+ counter = parseInt(bell.innerText);
+
+ Franz.setBadge(counter);
+ };
+
+ Franz.loop(getMessages);
+
+}
diff --git a/youtube/icon.png b/youtube/icon.png
new file mode 100755
index 0000000..e6e5930
Binary files /dev/null and b/youtube/icon.png differ
diff --git a/youtube/icon.svg b/youtube/icon.svg
new file mode 100755
index 0000000..e0e76f0
--- /dev/null
+++ b/youtube/icon.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/youtube/index.js b/youtube/index.js
new file mode 100755
index 0000000..258da41
--- /dev/null
+++ b/youtube/index.js
@@ -0,0 +1 @@
+module.exports = Franz => Franz;
diff --git a/youtube/package.json b/youtube/package.json
new file mode 100755
index 0000000..47488f9
--- /dev/null
+++ b/youtube/package.json
@@ -0,0 +1,23 @@
+{
+ "name": "YouTube",
+ "version": "1.0.0",
+ "description": "YouTube SmartTV Edition",
+ "main": "index.js",
+ "author": "Koray K. ",
+ "license": "MIT",
+ "config": {
+ "serviceURL": "https://youtube.com/tv",
+ "serviceName": "YouTube",
+ "message": "",
+ "popup": [],
+ "hasNotificationSound": false,
+ "hasIndirectMessages": false,
+ "hasTeamID": false,
+ "customURL": false,
+ "hostedOnly": false,
+ "webviewOptions": {
+ "disablewebsecurity": ""
+ },
+ "openDevTools": false
+ }
+}
diff --git a/youtube/webview.js b/youtube/webview.js
new file mode 100755
index 0000000..8d854de
--- /dev/null
+++ b/youtube/webview.js
@@ -0,0 +1,3 @@
+module.exports = (Franz, options) => {
+
+}