From 6f5e4a00588aefdda7a5a1cfe70935870e7e234a Mon Sep 17 00:00:00 2001 From: Bennett Date: Tue, 22 Sep 2020 20:56:48 +0200 Subject: Unpack recipes and update recipes icons (#292) Co-authored-by: Amine Mouafik --- recipes/wechat/LICENSE | 21 +++++++++++++++++++++ recipes/wechat/README.md | 26 ++++++++++++++++++++++++++ recipes/wechat/icon.png | Bin 0 -> 56714 bytes recipes/wechat/icon.svg | 1 + recipes/wechat/index.js | 6 ++++++ recipes/wechat/package.json | 15 +++++++++++++++ recipes/wechat/service.css | 9 +++++++++ recipes/wechat/webview.js | 34 ++++++++++++++++++++++++++++++++++ 8 files changed, 112 insertions(+) create mode 100644 recipes/wechat/LICENSE create mode 100644 recipes/wechat/README.md create mode 100644 recipes/wechat/icon.png create mode 100644 recipes/wechat/icon.svg create mode 100644 recipes/wechat/index.js create mode 100644 recipes/wechat/package.json create mode 100644 recipes/wechat/service.css create mode 100644 recipes/wechat/webview.js (limited to 'recipes/wechat') diff --git a/recipes/wechat/LICENSE b/recipes/wechat/LICENSE new file mode 100644 index 0000000..eee14ce --- /dev/null +++ b/recipes/wechat/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2017 Koma + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/recipes/wechat/README.md b/recipes/wechat/README.md new file mode 100644 index 0000000..962f0da --- /dev/null +++ b/recipes/wechat/README.md @@ -0,0 +1,26 @@ +# WeChat +Recipe for [WeChat](https://www.wechat.com) integration with [Franz 5](http://meetfranz.com) + +## To test this dev release + +1. Clone/download the folder `recipe-wechat`. + +2. Open the Franz Recipe folder on your machine: + * Mac: `~/Library/Application Support/Franz/recipes/` + * Windows: `%appdata%/Franz/recipes/` + * Linux: `~/.config/Franz/recipes/` + +3. Create a `dev` folder if you have not already done so + +3. Unzip and copy the `recipe-wechat` folder into the recipes dev directory + +4. Restart Franz + +## How to create your own Franz recipes: +[Read the documentation](https://github.com/meetfranz/plugins) + +## WeChat logo resources +Uses unofficial logos acquired from https://github.com/RayPS/WeChat-Logo + +## Authors +[Koma](https://github.com/koma-private/) diff --git a/recipes/wechat/icon.png b/recipes/wechat/icon.png new file mode 100644 index 0000000..317e2d7 Binary files /dev/null and b/recipes/wechat/icon.png differ diff --git a/recipes/wechat/icon.svg b/recipes/wechat/icon.svg new file mode 100644 index 0000000..e494f53 --- /dev/null +++ b/recipes/wechat/icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/recipes/wechat/index.js b/recipes/wechat/index.js new file mode 100644 index 0000000..37c403f --- /dev/null +++ b/recipes/wechat/index.js @@ -0,0 +1,6 @@ +'use strict'; + +// just pass through Franz + +module.exports = Franz => Franz; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlY2hhdC9pbmRleC5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwiRnJhbnoiXSwibWFwcGluZ3MiOiJBQUFBOztBQUVBOztBQUNBQSxPQUFPQyxPQUFQLEdBQWlCQyxTQUFTQSxLQUExQiIsImZpbGUiOiJ3ZWNoYXQvaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbi8vIGp1c3QgcGFzcyB0aHJvdWdoIEZyYW56XG5tb2R1bGUuZXhwb3J0cyA9IEZyYW56ID0+IEZyYW56OyJdfQ== \ No newline at end of file diff --git a/recipes/wechat/package.json b/recipes/wechat/package.json new file mode 100644 index 0000000..85ad7e9 --- /dev/null +++ b/recipes/wechat/package.json @@ -0,0 +1,15 @@ +{ + "id": "wechat", + "name": "WeChat", + "version": "1.0.1", + "description": "Instant messaging", + "main": "index.js", + "author": "Koma", + "license": "MIT", + "repository": "https://github.com/koma-private/recipe-wechat", + "config": { + "hasNotificationSound": true, + "hasIndirectMessages": true, + "serviceURL": "https://web.wechat.com/" + } +} \ No newline at end of file diff --git a/recipes/wechat/service.css b/recipes/wechat/service.css new file mode 100644 index 0000000..0e45c65 --- /dev/null +++ b/recipes/wechat/service.css @@ -0,0 +1,9 @@ +.main { + padding-top: 0; + height: 100vh; +} + +.main_inner { + margin: 0; + max-width: 100%; +} diff --git a/recipes/wechat/webview.js b/recipes/wechat/webview.js new file mode 100644 index 0000000..8b81a33 --- /dev/null +++ b/recipes/wechat/webview.js @@ -0,0 +1,34 @@ +'use strict'; + +const path = require('path'); + +module.exports = (Franz, options) => { + function getMessages() { + let directCount = 0; + let indirectCount = 0; + let chat_item = document.querySelectorAll('div.chat_item'); + + Array.prototype.forEach.call(chat_item, function (item) { + let count = 0; + let reddot = item.querySelector("i.web_wechat_reddot_middle"); + let avatarImage = item.querySelector("img.img"); + + if (reddot && reddot.innerText) { + count = parseInt(reddot.innerText); + } + + if (avatarImage && avatarImage.getAttribute("src").search("webwxgeticon") != -1) { + directCount += count; + } else { + indirectCount += count; + } + }); + + Franz.setBadge(directCount, indirectCount); + } + + Franz.injectCSS(path.join(__dirname, 'service.css')); + + Franz.loop(getMessages); +}; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlY2hhdC93ZWJ2aWV3LmpzIl0sIm5hbWVzIjpbInBhdGgiLCJyZXF1aXJlIiwibW9kdWxlIiwiZXhwb3J0cyIsIkZyYW56Iiwib3B0aW9ucyIsImdldE1lc3NhZ2VzIiwiZGlyZWN0Q291bnQiLCJpbmRpcmVjdENvdW50IiwiY2hhdF9pdGVtIiwiZG9jdW1lbnQiLCJxdWVyeVNlbGVjdG9yQWxsIiwiQXJyYXkiLCJwcm90b3R5cGUiLCJmb3JFYWNoIiwiY2FsbCIsIml0ZW0iLCJjb3VudCIsInJlZGRvdCIsInF1ZXJ5U2VsZWN0b3IiLCJhdmF0YXJJbWFnZSIsImlubmVyVGV4dCIsInBhcnNlSW50IiwiZ2V0QXR0cmlidXRlIiwic2VhcmNoIiwic2V0QmFkZ2UiLCJpbmplY3RDU1MiLCJqb2luIiwiX19kaXJuYW1lIiwibG9vcCJdLCJtYXBwaW5ncyI6IkFBQUE7O0FBQ0EsTUFBTUEsT0FBT0MsUUFBUSxNQUFSLENBQWI7O0FBRUFDLE9BQU9DLE9BQVAsR0FBaUIsQ0FBQ0MsS0FBRCxFQUFRQyxPQUFSLEtBQW9CO0FBQ25DLFdBQVNDLFdBQVQsR0FBdUI7QUFDckIsUUFBSUMsY0FBYyxDQUFsQjtBQUNBLFFBQUlDLGdCQUFnQixDQUFwQjtBQUNBLFFBQUlDLFlBQVlDLFNBQVNDLGdCQUFULENBQTBCLGVBQTFCLENBQWhCOztBQUVBQyxVQUFNQyxTQUFOLENBQWdCQyxPQUFoQixDQUF3QkMsSUFBeEIsQ0FBNkJOLFNBQTdCLEVBQXdDLFVBQVVPLElBQVYsRUFBZ0I7QUFDdEQsVUFBSUMsUUFBUSxDQUFaO0FBQ0EsVUFBSUMsU0FBU0YsS0FBS0csYUFBTCxDQUFtQiw0QkFBbkIsQ0FBYjtBQUNBLFVBQUlDLGNBQWNKLEtBQUtHLGFBQUwsQ0FBbUIsU0FBbkIsQ0FBbEI7O0FBRUEsVUFBSUQsVUFBVUEsT0FBT0csU0FBckIsRUFBZ0M7QUFDOUJKLGdCQUFRSyxTQUFTSixPQUFPRyxTQUFoQixDQUFSO0FBQ0Q7O0FBRUQsVUFBSUQsZUFBZUEsWUFBWUcsWUFBWixDQUF5QixLQUF6QixFQUFnQ0MsTUFBaEMsQ0FBdUMsY0FBdkMsS0FBMEQsQ0FBQyxDQUE5RSxFQUFpRjtBQUMvRWpCLHVCQUFlVSxLQUFmO0FBQ0QsT0FGRCxNQUVPO0FBQ0xULHlCQUFpQlMsS0FBakI7QUFDRDtBQUNGLEtBZEQ7O0FBZ0JBYixVQUFNcUIsUUFBTixDQUFlbEIsV0FBZixFQUE0QkMsYUFBNUI7QUFDRDs7QUFFREosUUFBTXNCLFNBQU4sQ0FBZ0IxQixLQUFLMkIsSUFBTCxDQUFVQyxTQUFWLEVBQXFCLGFBQXJCLENBQWhCOztBQUVBeEIsUUFBTXlCLElBQU4sQ0FBV3ZCLFdBQVg7QUFDRCxDQTVCRCIsImZpbGUiOiJ3ZWNoYXQvd2Vidmlldy5qcyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcbmNvbnN0IHBhdGggPSByZXF1aXJlKCdwYXRoJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gKEZyYW56LCBvcHRpb25zKSA9PiB7XG4gIGZ1bmN0aW9uIGdldE1lc3NhZ2VzKCkge1xuICAgIGxldCBkaXJlY3RDb3VudCA9IDA7XG4gICAgbGV0IGluZGlyZWN0Q291bnQgPSAwO1xuICAgIGxldCBjaGF0X2l0ZW0gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkaXYuY2hhdF9pdGVtJyk7XG5cbiAgICBBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGNoYXRfaXRlbSwgZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgIGxldCBjb3VudCA9IDA7XG4gICAgICBsZXQgcmVkZG90ID0gaXRlbS5xdWVyeVNlbGVjdG9yKFwiaS53ZWJfd2VjaGF0X3JlZGRvdF9taWRkbGVcIik7XG4gICAgICBsZXQgYXZhdGFySW1hZ2UgPSBpdGVtLnF1ZXJ5U2VsZWN0b3IoXCJpbWcuaW1nXCIpO1xuXG4gICAgICBpZiAocmVkZG90ICYmIHJlZGRvdC5pbm5lclRleHQpIHtcbiAgICAgICAgY291bnQgPSBwYXJzZUludChyZWRkb3QuaW5uZXJUZXh0KTtcbiAgICAgIH1cblxuICAgICAgaWYgKGF2YXRhckltYWdlICYmIGF2YXRhckltYWdlLmdldEF0dHJpYnV0ZShcInNyY1wiKS5zZWFyY2goXCJ3ZWJ3eGdldGljb25cIikgIT0gLTEpIHtcbiAgICAgICAgZGlyZWN0Q291bnQgKz0gY291bnQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpbmRpcmVjdENvdW50ICs9IGNvdW50O1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgRnJhbnouc2V0QmFkZ2UoZGlyZWN0Q291bnQsIGluZGlyZWN0Q291bnQpO1xuICB9XG5cbiAgRnJhbnouaW5qZWN0Q1NTKHBhdGguam9pbihfX2Rpcm5hbWUsICdzZXJ2aWNlLmNzcycpKTtcblxuICBGcmFuei5sb29wKGdldE1lc3NhZ2VzKTtcbn1cbiJdfQ== \ No newline at end of file -- cgit v1.2.3-54-g00ecf