Compare commits

..

11 Commits

Author SHA1 Message Date
TC
6fd10ea4a0 Bump version to 1.1.6 2019-09-11 23:49:31 +02:00
TC
746b5f13bb Fix Google login 2019-09-11 23:46:19 +02:00
474bfd19a2 Merge pull request #7 from th-ch/dependabot/npm_and_yarn/eslint-utils-1.4.2
Bump eslint-utils from 1.3.1 to 1.4.2
2019-09-03 13:41:20 +02:00
71222649a0 Bump eslint-utils from 1.3.1 to 1.4.2
Bumps [eslint-utils](https://github.com/mysticatea/eslint-utils) from 1.3.1 to 1.4.2.
- [Release notes](https://github.com/mysticatea/eslint-utils/releases)
- [Commits](https://github.com/mysticatea/eslint-utils/compare/v1.3.1...v1.4.2)

Signed-off-by: dependabot[bot] <support@github.com>
2019-08-26 22:51:08 +00:00
TC
1a72129108 npm audit fix 2019-07-13 19:51:01 +02:00
3108e16018 Merge pull request #4 from th-ch/dependabot/npm_and_yarn/lodash.mergewith-4.6.2
Bump lodash.mergewith from 4.6.1 to 4.6.2
2019-07-13 19:47:14 +02:00
fae19f4533 Merge pull request #5 from th-ch/dependabot/npm_and_yarn/lodash-4.17.14
Bump lodash from 4.17.11 to 4.17.14
2019-07-13 19:47:01 +02:00
348f1b8189 Bump lodash from 4.17.11 to 4.17.14
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.11 to 4.17.14.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.11...4.17.14)

Signed-off-by: dependabot[bot] <support@github.com>
2019-07-13 05:20:15 +00:00
ffdc7f66b9 Bump lodash.mergewith from 4.6.1 to 4.6.2
Bumps [lodash.mergewith](https://github.com/lodash/lodash) from 4.6.1 to 4.6.2.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/commits)

Signed-off-by: dependabot[bot] <support@github.com>
2019-07-11 10:21:14 +00:00
TC
07c4a429c1 Bump version to 1.1.5 2019-07-06 20:04:53 +02:00
TC
b10a1bb32d Fix navigation plugin 2019-07-06 20:03:29 +02:00
8 changed files with 222 additions and 132 deletions

View File

@ -42,8 +42,10 @@ function createMainWindow() {
backgroundColor: "#000",
show : false,
webPreferences : {
nodeIntegration: false,
preload : path.join(__dirname, "preload.js")
nodeIntegration : false,
preload : path.join(__dirname, "preload.js"),
nativeWindowOpen: true, // window.open return Window object(like in regular browsers), not BrowserWindowProxy
affinity : "main-window" // main window, and addition windows should work in one process
},
frame : !is.macOS(),
titleBarStyle: is.macOS() ? "hiddenInset": "default"
@ -86,6 +88,17 @@ function createMainWindow() {
}
});
win.webContents.on(
"new-window",
(e, url, frameName, disposition, options) => {
// hook on new opened window
// at now new window in mainWindow renderer process.
// Also, this will automatically get an option `nodeIntegration=false`(not override to true, like in iframe's) - like in regular browsers
options.webPreferences.affinity = "main-window";
}
);
win.on("move", () => {
let position = win.getPosition();
store.set("window-position", { x: position[0], y: position[1] });

70
package-lock.json generated
View File

@ -1,6 +1,6 @@
{
"name": "youtube-music",
"version": "1.1.3",
"version": "1.1.6",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
@ -111,7 +111,7 @@
"integrity": "sha512-VtLcSSIUKzLG9BnWx6LbWjtesYTUxddAxiqn7Ih0o9lLD0XBKIX1IPPYm4uJF+Pri4Fj5bqqmfeh8bsOu0Ju5A==",
"requires": {
"bloom-filter-cpp": "^1.2.2",
"hashset-cpp": "^2.1.1",
"hashset-cpp": "^2.2.1",
"nan": "^2.10.0"
},
"dependencies": {
@ -2461,10 +2461,13 @@
}
},
"eslint-utils": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.3.1.tgz",
"integrity": "sha512-Z7YjnIldX+2XMcjr7ZkgEsOj/bREONV60qYeB/bjMAqqqZ4zxKyWX+BOUkdmRmA9riiIPVvo5x86m5elviOk0Q==",
"dev": true
"version": "1.4.2",
"resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.2.tgz",
"integrity": "sha512-eAZS2sEUMlIeCjBeubdj45dmBHQwPHWyBcT1VSYB7o9x9WRRqKxyUoiXlRjyAwzN7YEzHJlYg0NmzDRWx6GP4Q==",
"dev": true,
"requires": {
"eslint-visitor-keys": "^1.0.0"
}
},
"eslint-visitor-keys": {
"version": "1.0.0",
@ -4115,9 +4118,9 @@
}
},
"lodash": {
"version": "4.17.11",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
"integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==",
"version": "4.17.14",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.14.tgz",
"integrity": "sha512-mmKYbW3GLuJeX+iGP+Y7Gp1AiGHGbXHCOh/jZmrawMmsE7MS4znI3RL2FsjbqOyMayHInjOeykW7PEajUk1/xw==",
"dev": true
},
"lodash.assign": {
@ -4150,9 +4153,9 @@
"dev": true
},
"lodash.mergewith": {
"version": "4.6.1",
"resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz",
"integrity": "sha512-eWw5r+PYICtEBgrBE5hhlT6aAa75f411bgDz/ZL2KZqYV03USvucsxcHUIlGTDTECs1eunpI7HOV7U+WLDvNdQ==",
"version": "4.6.2",
"resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz",
"integrity": "sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==",
"dev": true
},
"lodash.snakecase": {
@ -4364,9 +4367,9 @@
}
},
"mixin-deep": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz",
"integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==",
"version": "1.3.2",
"resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz",
"integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==",
"dev": true,
"requires": {
"for-in": "^1.0.2",
@ -5610,9 +5613,9 @@
"dev": true
},
"set-value": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz",
"integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==",
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz",
"integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==",
"dev": true,
"requires": {
"extend-shallow": "^2.0.1",
@ -6465,38 +6468,15 @@
"dev": true
},
"union-value": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz",
"integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=",
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz",
"integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==",
"dev": true,
"requires": {
"arr-union": "^3.1.0",
"get-value": "^2.0.6",
"is-extendable": "^0.1.1",
"set-value": "^0.4.3"
},
"dependencies": {
"extend-shallow": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
"integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
"dev": true,
"requires": {
"is-extendable": "^0.1.0"
}
},
"set-value": {
"version": "0.4.3",
"resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz",
"integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=",
"dev": true,
"requires": {
"extend-shallow": "^2.0.1",
"is-extendable": "^0.1.1",
"is-plain-object": "^2.0.1",
"to-object-path": "^0.3.0"
}
}
"set-value": "^2.0.1"
}
},
"unique-string": {

View File

@ -1,60 +1,60 @@
{
"name" : "youtube-music",
"name": "youtube-music",
"productName": "YouTube Music",
"version" : "1.1.4",
"version": "1.1.6",
"description": "YouTube Music Desktop App - including custom plugins",
"license" : "MIT",
"repository" : "th-ch/youtube-music",
"author" : {
"name" : "th-ch",
"license": "MIT",
"repository": "th-ch/youtube-music",
"author": {
"name": "th-ch",
"email": "th-ch@users.noreply.github.com",
"url" : "https://github.com/th-ch/youtube-music"
"url": "https://github.com/th-ch/youtube-music"
},
"build": {
"appId" : "com.github.th-ch.youtube-music",
"appId": "com.github.th-ch.youtube-music",
"productName": "YouTube Music",
"mac" : {
"mac": {
"identity": null,
"icon" : "assets/generated/icons/mac/icon.icns"
"icon": "assets/generated/icons/mac/icon.icns"
},
"win": {
"icon": "assets/generated/icons/win/icon.ico"
},
"linux": {
"icon" : "assets/generated/icons/png",
"icon": "assets/generated/icons/png",
"category": "AudioVideo"
}
},
"scripts": {
"test" : "xo",
"start" : "electron .",
"icon" : "rimraf assets/generated && electron-icon-maker --input=assets/youtube-music.png --output=assets/generated",
"postinstall" : "npm run icon && npm rebuild && node plugins/adblocker/generator.js && electron-rebuild",
"clean" : "rimraf dist",
"build" : "npm run clean && build --win --mac --linux",
"build:mac" : "npm run clean && build --mac",
"build:win" : "npm run clean && build --win",
"test": "xo",
"start": "electron .",
"icon": "rimraf assets/generated && electron-icon-maker --input=assets/youtube-music.png --output=assets/generated",
"postinstall": "npm run icon && npm rebuild && node plugins/adblocker/generator.js && electron-rebuild",
"clean": "rimraf dist",
"build": "npm run clean && build --win --mac --linux",
"build:mac": "npm run clean && build --mac",
"build:win": "npm run clean && build --win",
"release:linux": "npm run clean && build --linux -p always",
"release:mac" : "npm run clean && build --mac -p always",
"release:win" : "npm run clean && build --win -p always"
"release:mac": "npm run clean && build --mac -p always",
"release:win": "npm run clean && build --win -p always"
},
"dependencies": {
"ad-block" : "^4.1.3",
"electron-debug" : "^2.0.0",
"electron-is" : "^3.0.0",
"ad-block": "^4.1.3",
"electron-debug": "^2.0.0",
"electron-is": "^3.0.0",
"electron-localshortcut": "^3.1.0",
"electron-store" : "^2.0.0",
"electron-updater" : "^4.0.6"
"electron-store": "^2.0.0",
"electron-updater": "^4.0.6"
},
"devDependencies": {
"devtron" : "^1.4.0",
"electron" : "^4.0.8",
"electron-builder" : "^20.40.2",
"devtron": "^1.4.0",
"electron": "^4.0.8",
"electron-builder": "^20.40.2",
"electron-devtools-installer": "^2.2.4",
"electron-icon-maker" : "0.0.4",
"electron-rebuild" : "^1.8.4",
"rimraf" : "^2.6.3",
"xo" : "^0.24.0"
"electron-icon-maker": "0.0.4",
"electron-rebuild": "^1.8.4",
"rimraf": "^2.6.3",
"xo": "^0.24.0"
},
"xo": {
"envs": [

View File

@ -1,7 +1,10 @@
const { listenAction } = require("../utils");
const { ACTIONS, CHANNEL } = require("./actions.js");
const path = require("path");
const { injectCSS, listenAction } = require("../utils");
const { ACTIONS, CHANNEL } = require("./actions.js");
function handle(win) {
injectCSS(win.webContents, path.join(__dirname, "style.css"));
listenAction(CHANNEL, (event, action) => {
switch (action) {
case ACTIONS.NEXT:

View File

@ -1,14 +1,15 @@
const { ElementFromFile, templatePath } = require('../utils');
const { ElementFromFile, templatePath } = require("../utils");
function run() {
const forwardButton = ElementFromFile(templatePath(__dirname, 'forward.html'));
const backButton = ElementFromFile(templatePath(__dirname, 'back.html'));
const menu = document.querySelector("ytmusic-pivot-bar-renderer");
const forwardButton = ElementFromFile(
templatePath(__dirname, "forward.html")
);
const backButton = ElementFromFile(templatePath(__dirname, "back.html"));
const menu = document.querySelector("ytmusic-pivot-bar-renderer");
if (menu) {
menu.prepend(forwardButton);
menu.prepend(backButton);
}
if (menu) {
menu.prepend(backButton, forwardButton);
}
}
module.exports = run;

View File

@ -0,0 +1,36 @@
.navigation-item {
font-family : Roboto, Noto Naskh Arabic UI, Arial, sans-serif;
font-size : 20px;
line-height : var(--ytmusic-title-1_-_line-height);
font-weight : 500;
color : #fff;
--yt-endpoint-color : #fff;
--yt-endpoint-hover-color : #fff;
--yt-endpoint-visited-color: #fff;
display : inline-flex;
align-items : center;
color : rgba(255, 255, 255, 0.5);
cursor : pointer;
margin : 0 var(--ytmusic-pivot-bar-tab-margin);
}
.navigation-item:hover {
color: #fff;
}
.navigation-icon {
display : inline-flex;
-ms-flex-align : center;
-webkit-align-items : center;
align-items : center;
-ms-flex-pack : center;
-webkit-justify-content: center;
justify-content : center;
position : relative;
vertical-align : middle;
fill : var(--iron-icon-fill-color, currentcolor);
stroke : none;
width : var(--iron-icon-width, 24px);
height : var(--iron-icon-height, 24px);
animation : var(--iron-icon_-_animation);
}

View File

@ -1,21 +1,51 @@
<ytmusic-pivot-bar-item-renderer class="style-scope ytmusic-pivot-bar-renderer" tab-id="FEmusic_back" role="tab" onclick="goToPreviousPage()">
<yt-icon class="tab-icon style-scope ytmusic-pivot-bar-item-renderer">
<svg viewBox="0 0 24 24" preserveAspectRatio="xMidYMid meet" focusable="false" class="style-scope yt-icon" style="pointer-events: none; display: block; width: 100%; height: 100%;">
<g class="style-scope yt-icon">
<path class="st0" d="M109.3 265.2l218.9 218.9c5.1 5.1 11.8 7.9 19 7.9s14-2.8 19-7.9l16.1-16.1c10.5-10.5 10.5-27.6 0-38.1L198.6 246.1 382.7 62c5.1-5.1 7.9-11.8 7.9-19 0-7.2-2.8-14-7.9-19L366.5 7.9c-5.1-5.1-11.8-7.9-19-7.9-7.2 0-14 2.8-19 7.9L109.3 227c-5.1 5.1-7.9 11.9-7.8 19.1 0 7.2 2.8 14 7.8 19.1z" class="style-scope yt-icon">
</path>
</g>
</svg>
</yt-icon>
<div
class="style-scope ytmusic-pivot-bar-renderer navigation-item"
tab-id="FEmusic_back"
role="tab"
onclick="goToPreviousPage()"
>
<div
class="tab-icon style-scope ytmusic-pivot-bar-item-renderer yt-icon-container"
>
<svg
viewBox="0 0 24 24"
preserveAspectRatio="xMidYMid meet"
focusable="false"
class="style-scope yt-icon"
style="pointer-events: none; display: block; width: 100%; height: 100%;"
>
<g class="style-scope yt-icon">
<path
class="st0"
d="M109.3 265.2l218.9 218.9c5.1 5.1 11.8 7.9 19 7.9s14-2.8 19-7.9l16.1-16.1c10.5-10.5 10.5-27.6 0-38.1L198.6 246.1 382.7 62c5.1-5.1 7.9-11.8 7.9-19 0-7.2-2.8-14-7.9-19L366.5 7.9c-5.1-5.1-11.8-7.9-19-7.9-7.2 0-14 2.8-19 7.9L109.3 227c-5.1 5.1-7.9 11.9-7.8 19.1 0 7.2 2.8 14 7.8 19.1z"
class="style-scope yt-icon"
></path>
</g>
</svg>
</div>
<paper-icon-button class="search-icon style-scope ytmusic-search-box" role="button" tabindex="0" aria-disabled="false" title="Go to previous page">
<iron-icon id="icon" class="style-scope paper-icon-button">
<svg viewBox="0 0 492 492" preserveAspectRatio="xMidYMid meet" focusable="false" class="style-scope iron-icon" style="pointer-events: none; display: block; width: 100%; height: 100%;">
<g class="style-scope iron-icon">
<path class="st0" d="M109.3 265.2l218.9 218.9c5.1 5.1 11.8 7.9 19 7.9s14-2.8 19-7.9l16.1-16.1c10.5-10.5 10.5-27.6 0-38.1L198.6 246.1 382.7 62c5.1-5.1 7.9-11.8 7.9-19 0-7.2-2.8-14-7.9-19L366.5 7.9c-5.1-5.1-11.8-7.9-19-7.9-7.2 0-14 2.8-19 7.9L109.3 227c-5.1 5.1-7.9 11.9-7.8 19.1 0 7.2 2.8 14 7.8 19.1z">
</path>
</g>
</svg>
</iron-icon>
</paper-icon-button>
</ytmusic-pivot-bar-item-renderer>
<div
class="search-icon style-scope ytmusic-search-box"
role="button"
tabindex="0"
aria-disabled="false"
title="Go to previous page"
>
<div id="icon" class="style-scope paper-icon-button navigation-icon">
<svg
viewBox="0 0 492 492"
preserveAspectRatio="xMidYMid meet"
focusable="false"
class="style-scope iron-icon"
style="pointer-events: none; display: block; width: 100%; height: 100%;"
>
<g class="style-scope iron-icon">
<path
class="st0"
d="M109.3 265.2l218.9 218.9c5.1 5.1 11.8 7.9 19 7.9s14-2.8 19-7.9l16.1-16.1c10.5-10.5 10.5-27.6 0-38.1L198.6 246.1 382.7 62c5.1-5.1 7.9-11.8 7.9-19 0-7.2-2.8-14-7.9-19L366.5 7.9c-5.1-5.1-11.8-7.9-19-7.9-7.2 0-14 2.8-19 7.9L109.3 227c-5.1 5.1-7.9 11.9-7.8 19.1 0 7.2 2.8 14 7.8 19.1z"
></path>
</g>
</svg>
</div>
</div>
</div>

View File

@ -1,26 +1,53 @@
<ytmusic-pivot-bar-item-renderer class="style-scope ytmusic-pivot-bar-renderer" tab-id="FEmusic_next" role="tab" onclick="goToNextPage()">
<yt-icon class="tab-icon style-scope ytmusic-pivot-bar-item-renderer">
<svg viewBox="0 0 24 24" preserveAspectRatio="xMidYMid meet" focusable="false" class="style-scope yt-icon" style="pointer-events: none; display: block; width: 100%; height: 100%;">
<g class="style-scope yt-icon">
<path d="M382.678,226.804L163.73,7.86C158.666,2.792,151.906,0,144.698,0s-13.968,2.792-19.032,7.86l-16.124,16.12
<div
class="style-scope ytmusic-pivot-bar-renderer navigation-item"
tab-id="FEmusic_next"
role="tab"
onclick="goToNextPage()"
>
<div class="tab-icon style-scope ytmusic-pivot-bar-item-renderer">
<svg
viewBox="0 0 24 24"
preserveAspectRatio="xMidYMid meet"
focusable="false"
class="style-scope yt-icon"
style="pointer-events: none; display: block; width: 100%; height: 100%;"
>
<g class="style-scope yt-icon">
<path
d="M382.678,226.804L163.73,7.86C158.666,2.792,151.906,0,144.698,0s-13.968,2.792-19.032,7.86l-16.124,16.12
c-10.492,10.504-10.492,27.576,0,38.064L293.398,245.9l-184.06,184.06c-5.064,5.068-7.86,11.824-7.86,19.028
c0,7.212,2.796,13.968,7.86,19.04l16.124,16.116c5.068,5.068,11.824,7.86,19.032,7.86s13.968-2.792,19.032-7.86L382.678,265
c5.076-5.084,7.864-11.872,7.848-19.088C390.542,238.668,387.754,231.884,382.678,226.804z" class="style-scope yt-icon">
</path>
</g>
</svg>
</yt-icon>
c5.076-5.084,7.864-11.872,7.848-19.088C390.542,238.668,387.754,231.884,382.678,226.804z"
class="style-scope yt-icon"
></path>
</g>
</svg>
</div>
<paper-icon-button class="search-icon style-scope ytmusic-search-box" role="button" tabindex="0" aria-disabled="false" title="Go to next page">
<iron-icon id="icon" class="style-scope paper-icon-button">
<svg viewBox="0 0 492 492" preserveAspectRatio="xMidYMid meet" focusable="false" class="style-scope iron-icon" style="pointer-events: none; display: block; width: 100%; height: 100%;">
<g class="style-scope iron-icon">
<path class="st0" d="M382.7,226.8L163.7,7.9c-5.1-5.1-11.8-7.9-19-7.9s-14,2.8-19,7.9L109.5,24c-10.5,10.5-10.5,27.6,0,38.1
<div
class="search-icon style-scope ytmusic-search-box"
role="button"
tabindex="0"
aria-disabled="false"
title="Go to next page"
>
<div id="icon" class="style-scope paper-icon-button navigation-icon">
<svg
viewBox="0 0 492 492"
preserveAspectRatio="xMidYMid meet"
focusable="false"
class="style-scope iron-icon"
style="pointer-events: none; display: block; width: 100%; height: 100%;"
>
<g class="style-scope iron-icon">
<path
class="st0"
d="M382.7,226.8L163.7,7.9c-5.1-5.1-11.8-7.9-19-7.9s-14,2.8-19,7.9L109.5,24c-10.5,10.5-10.5,27.6,0,38.1
l183.9,183.9L109.3,430c-5.1,5.1-7.9,11.8-7.9,19c0,7.2,2.8,14,7.9,19l16.1,16.1c5.1,5.1,11.8,7.9,19,7.9s14-2.8,19-7.9L382.7,265
c5.1-5.1,7.9-11.9,7.8-19.1C390.5,238.7,387.8,231.9,382.7,226.8z">
</path>
</g>
</svg>
</iron-icon>
</paper-icon-button>
</ytmusic-pivot-bar-item-renderer>
c5.1-5.1,7.9-11.9,7.8-19.1C390.5,238.7,387.8,231.9,382.7,226.8z"
></path>
</g>
</svg>
</div>
</div>
</div>