A lot of changes
Download list Icons Install script/app metadata
|
@ -1,4 +1,5 @@
|
|||
/target
|
||||
**/*.rs.bk
|
||||
.buildconfig
|
||||
data.json
|
||||
data.json
|
||||
debian
|
|
@ -315,24 +315,6 @@ name = "fuchsia-zircon-sys"
|
|||
version = "0.3.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
|
||||
[[package]]
|
||||
name = "funkload"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"cairo-rs 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"dirs 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"gdk 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"gdk-pixbuf 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"glib 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"gtk 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"reqwest 0.9.9 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"serde 1.0.86 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"serde_derive 1.0.86 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"serde_json 1.0.38 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"workerpool 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "futures"
|
||||
version = "0.1.25"
|
||||
|
@ -713,6 +695,25 @@ dependencies = [
|
|||
"ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "mobydick"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"cairo-rs 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"dirs 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"gdk 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"gdk-pixbuf 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"glib 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"gtk 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"open 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"reqwest 0.9.9 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"serde 1.0.86 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"serde_derive 1.0.86 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"serde_json 1.0.38 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"workerpool 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "native-tls"
|
||||
version = "0.2.2"
|
||||
|
@ -753,6 +754,14 @@ dependencies = [
|
|||
"libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "open"
|
||||
version = "1.2.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "openssl"
|
||||
version = "0.10.16"
|
||||
|
@ -1566,6 +1575,7 @@ dependencies = [
|
|||
"checksum net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)" = "42550d9fb7b6684a6d404d9fa7250c2eb2646df731d1c06afc06dcee9e1bcf88"
|
||||
"checksum nodrop 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "2f9667ddcc6cc8a43afc9b7917599d7216aa09c463919ea32c59ed6cac8bc945"
|
||||
"checksum num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5a69d464bdc213aaaff628444e99578ede64e9c854025aa43b9796530afa9238"
|
||||
"checksum open 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "eedfa0ca7b54d84d948bfd058b8f82e767d11f362dd78c36866fd1f69c175867"
|
||||
"checksum openssl 0.10.16 (registry+https://github.com/rust-lang/crates.io-index)" = "ec7bd7ca4cce6dbdc77e7c1230682740d307d1218a87fb0349a571272be749f9"
|
||||
"checksum openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de"
|
||||
"checksum openssl-sys 0.9.40 (registry+https://github.com/rust-lang/crates.io-index)" = "1bb974e77de925ef426b6bc82fce15fd45bdcbeb5728bffcfc7cdeeb7ce1c2d6"
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[package]
|
||||
name = "funkload"
|
||||
name = "mobydick"
|
||||
version = "0.1.0"
|
||||
authors = ["Baptiste Gelez <baptiste@gelez.xyz>"]
|
||||
edition = "2018"
|
||||
|
@ -10,10 +10,11 @@ dirs = "1.0"
|
|||
gdk = "0.9"
|
||||
gdk-pixbuf = "0.5"
|
||||
glib = "0.6"
|
||||
gtk = { version = "0.5", features = [ "v3_22" ] }
|
||||
gtk = { version = "0.5", features = [ "v3_22_29" ] }
|
||||
serde = "1.0"
|
||||
serde_derive = "1.0"
|
||||
serde_json = "1.0"
|
||||
reqwest = "0.9"
|
||||
workerpool = "1.1.1"
|
||||
lazy_static = "1.2"
|
||||
lazy_static = "1.2"
|
||||
open = "1.2"
|
|
@ -0,0 +1,449 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
id="svg4379"
|
||||
height="128"
|
||||
width="128"
|
||||
version="1.1"
|
||||
inkscape:version="0.92.3 (2405546, 2018-03-11)"
|
||||
sodipodi:docname="128.svg">
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1017"
|
||||
id="namedview51"
|
||||
showgrid="false"
|
||||
inkscape:zoom="2"
|
||||
inkscape:cx="-156.23562"
|
||||
inkscape:cy="67.90654"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="30"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="g5216">
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid4190"
|
||||
empspacing="4" />
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid4192"
|
||||
spacingx="0.5"
|
||||
spacingy="0.5"
|
||||
empspacing="2"
|
||||
color="#ff3fff"
|
||||
opacity="0.1254902"
|
||||
empcolor="#3fffff"
|
||||
empopacity="0.10196078" />
|
||||
</sodipodi:namedview>
|
||||
<defs
|
||||
id="defs4381">
|
||||
<linearGradient
|
||||
gradientTransform="matrix(0.89553576,0,0,-0.89663265,6.6836208,69.705837)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
xlink:href="#linearGradient4113"
|
||||
id="linearGradient3149"
|
||||
y2="3.4508991"
|
||||
x2="76.523361"
|
||||
y1="-9.023138"
|
||||
x1="76.523361" />
|
||||
<linearGradient
|
||||
id="linearGradient4113">
|
||||
<stop
|
||||
offset="0"
|
||||
style="stop-color:#000000;stop-opacity:1"
|
||||
id="stop4115" />
|
||||
<stop
|
||||
offset="1"
|
||||
style="stop-color:#000000;stop-opacity:0"
|
||||
id="stop4117" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
gradientTransform="matrix(2.7297298,0,0,2.7297298,-1.5135124,1.486514)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
xlink:href="#linearGradient3924-776"
|
||||
id="linearGradient3159"
|
||||
y2="43"
|
||||
x2="23.99999"
|
||||
y1="4.999989"
|
||||
x1="23.99999" />
|
||||
<linearGradient
|
||||
id="linearGradient3924-776">
|
||||
<stop
|
||||
offset="0"
|
||||
style="stop-color:#ffffff;stop-opacity:1"
|
||||
id="stop3124" />
|
||||
<stop
|
||||
offset="0.06316455"
|
||||
style="stop-color:#ffffff;stop-opacity:0.23529412"
|
||||
id="stop3126" />
|
||||
<stop
|
||||
offset="0.95056331"
|
||||
style="stop-color:#ffffff;stop-opacity:0.15686275"
|
||||
id="stop3128" />
|
||||
<stop
|
||||
offset="1"
|
||||
style="stop-color:#ffffff;stop-opacity:0.39215687"
|
||||
id="stop3130" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
gradientTransform="matrix(0,25.083279,-30.794253,0,372.81658,-208.0918)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
xlink:href="#linearGradient2867-449-88-871-390-598-476-591-434-148-57-177-8-3-3-6-4-8-8-8-5"
|
||||
id="radialGradient3395"
|
||||
fy="9.9571075"
|
||||
fx="6.2001843"
|
||||
r="12.671875"
|
||||
cy="9.9571075"
|
||||
cx="6.7304144" />
|
||||
<linearGradient
|
||||
id="linearGradient2867-449-88-871-390-598-476-591-434-148-57-177-8-3-3-6-4-8-8-8-5">
|
||||
<stop
|
||||
offset="0"
|
||||
style="stop-color:#95a3ab;stop-opacity:1"
|
||||
id="stop3750-1-0-7-6-6-1-3-9-3" />
|
||||
<stop
|
||||
offset="0.26238"
|
||||
style="stop-color:#667885;stop-opacity:1"
|
||||
id="stop3752-3-7-4-0-32-8-923-0-7" />
|
||||
<stop
|
||||
offset="0.704952"
|
||||
style="stop-color:#485a6c;stop-opacity:1"
|
||||
id="stop3754-1-8-5-2-7-6-7-1-9" />
|
||||
<stop
|
||||
offset="1"
|
||||
style="stop-color:#273445;stop-opacity:1"
|
||||
id="stop3756-1-6-2-6-6-1-96-6-0" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
gradientTransform="matrix(2.003784,0,0,1.4,27.98813,-17.4)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
xlink:href="#linearGradient3688-166-749-5"
|
||||
id="radialGradient2455-1"
|
||||
fy="43.5"
|
||||
fx="4.9929786"
|
||||
r="2.5"
|
||||
cy="43.5"
|
||||
cx="4.9929786" />
|
||||
<linearGradient
|
||||
id="linearGradient3688-166-749-5">
|
||||
<stop
|
||||
offset="0"
|
||||
style="stop-color:#181818;stop-opacity:1"
|
||||
id="stop2883-0" />
|
||||
<stop
|
||||
offset="1"
|
||||
style="stop-color:#181818;stop-opacity:0"
|
||||
id="stop2885-5" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
gradientTransform="matrix(2.003784,0,0,1.4,-20.01187,-104.4)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
xlink:href="#linearGradient3688-464-309-8"
|
||||
id="radialGradient2457-5"
|
||||
fy="43.5"
|
||||
fx="4.9929786"
|
||||
r="2.5"
|
||||
cy="43.5"
|
||||
cx="4.9929786" />
|
||||
<linearGradient
|
||||
id="linearGradient3688-464-309-8">
|
||||
<stop
|
||||
offset="0"
|
||||
style="stop-color:#181818;stop-opacity:1"
|
||||
id="stop2889-9" />
|
||||
<stop
|
||||
offset="1"
|
||||
style="stop-color:#181818;stop-opacity:0"
|
||||
id="stop2891-4" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
gradientUnits="userSpaceOnUse"
|
||||
xlink:href="#linearGradient3702-501-757-0"
|
||||
id="linearGradient2459-7"
|
||||
y2="39.999443"
|
||||
x2="25.058096"
|
||||
y1="47.027729"
|
||||
x1="25.058096" />
|
||||
<linearGradient
|
||||
id="linearGradient3702-501-757-0">
|
||||
<stop
|
||||
offset="0"
|
||||
style="stop-color:#181818;stop-opacity:0"
|
||||
id="stop2895-0" />
|
||||
<stop
|
||||
offset="0.5"
|
||||
style="stop-color:#181818;stop-opacity:1"
|
||||
id="stop2897-2" />
|
||||
<stop
|
||||
offset="1"
|
||||
style="stop-color:#181818;stop-opacity:0"
|
||||
id="stop2899-6" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient3811">
|
||||
<stop
|
||||
offset="0"
|
||||
style="stop-color:#000000;stop-opacity:1"
|
||||
id="stop3813" />
|
||||
<stop
|
||||
offset="1"
|
||||
style="stop-color:#000000;stop-opacity:0"
|
||||
id="stop3815" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
gradientTransform="matrix(1.5563924,0,0,0.16978827,70.270358,102.13029)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
xlink:href="#linearGradient3811"
|
||||
id="radialGradient4377"
|
||||
fy="93.467628"
|
||||
fx="-4.0287771"
|
||||
r="35.338131"
|
||||
cy="93.467628"
|
||||
cx="-4.0287771" />
|
||||
<filter
|
||||
style="color-interpolation-filters:sRGB;"
|
||||
inkscape:label="Colorize"
|
||||
id="filter1542">
|
||||
<feComposite
|
||||
in2="SourceGraphic"
|
||||
operator="arithmetic"
|
||||
k1="1"
|
||||
k2="1"
|
||||
result="composite1"
|
||||
id="feComposite1528" />
|
||||
<feColorMatrix
|
||||
in="composite1"
|
||||
values="1"
|
||||
type="saturate"
|
||||
result="colormatrix1"
|
||||
id="feColorMatrix1530" />
|
||||
<feFlood
|
||||
flood-opacity="1"
|
||||
flood-color="rgb(243,115,41)"
|
||||
result="flood1"
|
||||
id="feFlood1532" />
|
||||
<feBlend
|
||||
in="flood1"
|
||||
in2="colormatrix1"
|
||||
mode="normal"
|
||||
result="blend1"
|
||||
id="feBlend1534" />
|
||||
<feBlend
|
||||
in2="blend1"
|
||||
mode="normal"
|
||||
result="blend2"
|
||||
id="feBlend1536" />
|
||||
<feColorMatrix
|
||||
in="blend2"
|
||||
values="1"
|
||||
type="saturate"
|
||||
result="colormatrix2"
|
||||
id="feColorMatrix1538" />
|
||||
<feComposite
|
||||
in="colormatrix2"
|
||||
in2="SourceGraphic"
|
||||
operator="in"
|
||||
k2="1"
|
||||
result="composite2"
|
||||
id="feComposite1540" />
|
||||
</filter>
|
||||
<filter
|
||||
style="color-interpolation-filters:sRGB"
|
||||
inkscape:label="Blur"
|
||||
id="filter5149">
|
||||
<feGaussianBlur
|
||||
stdDeviation="2 2"
|
||||
result="blur"
|
||||
id="feGaussianBlur5147" />
|
||||
</filter>
|
||||
<filter
|
||||
style="color-interpolation-filters:sRGB"
|
||||
inkscape:label="Blur"
|
||||
id="filter5149-3">
|
||||
<feGaussianBlur
|
||||
stdDeviation="2 2"
|
||||
result="blur"
|
||||
id="feGaussianBlur5147-6" />
|
||||
</filter>
|
||||
</defs>
|
||||
<metadata
|
||||
id="metadata4384">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
id="g4179">
|
||||
<path
|
||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:0.2;fill:url(#radialGradient4377);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate"
|
||||
id="path3041"
|
||||
d="M 119,118 A 55,6 0 0 1 9.0000016,118 55,6 0 1 1 119,118 Z" />
|
||||
<g
|
||||
style="display:inline"
|
||||
id="g2036"
|
||||
transform="matrix(2.6999989,0,0,0.55555607,-0.8000019,94.888882)">
|
||||
<g
|
||||
style="opacity:0.4"
|
||||
id="g3712"
|
||||
transform="matrix(1.052632,0,0,1.285713,-1.263158,-13.42854)">
|
||||
<rect
|
||||
style="fill:url(#radialGradient2455-1);fill-opacity:1;stroke:none"
|
||||
id="rect2801"
|
||||
y="40"
|
||||
x="38"
|
||||
height="7"
|
||||
width="5" />
|
||||
<rect
|
||||
style="fill:url(#radialGradient2457-5);fill-opacity:1;stroke:none"
|
||||
id="rect3696"
|
||||
transform="scale(-1,-1)"
|
||||
y="-47"
|
||||
x="-10"
|
||||
height="7"
|
||||
width="5" />
|
||||
<rect
|
||||
style="fill:url(#linearGradient2459-7);fill-opacity:1;stroke:none"
|
||||
id="rect3700"
|
||||
y="40"
|
||||
x="10"
|
||||
height="7.0000005"
|
||||
width="28" />
|
||||
</g>
|
||||
</g>
|
||||
<rect
|
||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:url(#radialGradient3395);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994;marker:none;enable-background:accumulate;filter:url(#filter1542)"
|
||||
id="rect5505-21-3"
|
||||
y="15.5"
|
||||
x="12.5"
|
||||
ry="6.0545406"
|
||||
rx="6.0545406"
|
||||
height="103"
|
||||
width="103" />
|
||||
<rect
|
||||
style="opacity:0.3;fill:none;stroke:url(#linearGradient3159);stroke-width:0.99999994;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
id="rect6741-7"
|
||||
y="16.5"
|
||||
x="13.5"
|
||||
ry="5"
|
||||
rx="5"
|
||||
height="101"
|
||||
width="101" />
|
||||
<rect
|
||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:0.5;fill:none;stroke:#0e141f;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
|
||||
id="rect5505-21-6"
|
||||
y="15.5"
|
||||
x="12.5"
|
||||
ry="6"
|
||||
rx="6"
|
||||
height="103"
|
||||
width="103" />
|
||||
<g
|
||||
transform="matrix(0.63430337,0,0,0.64227015,19.027888,23.678354)"
|
||||
id="g5216">
|
||||
<g
|
||||
id="g5198"
|
||||
style="fill:#000000;opacity:0.513">
|
||||
<g
|
||||
style="fill:#000000;filter:url(#filter5149-3)"
|
||||
transform="translate(0,2)"
|
||||
id="g3885-3">
|
||||
<g
|
||||
style="fill:#000000"
|
||||
id="g3881-6">
|
||||
<path
|
||||
style="fill:#000000"
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 70.9,86.1 c 11.7,0 21.2,-9.5 21.2,-21.2 0,-0.6 -0.5,-1.1 -1.1,-1.1 h -8 c -0.6,0 -1.1,0.5 -1.1,1.1 0,6 -4.9,11 -11,11 -6,0 -11,-4.9 -11,-11 0,-0.6 -0.5,-1.1 -1.1,-1.1 h -8 c -0.6,0 -1.1,0.5 -1.1,1.1 0,11.7 9.5,21.2 21.2,21.2 z"
|
||||
id="path3875-7" />
|
||||
<path
|
||||
style="fill:#000000"
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 70.9,106.1 c 22.7,0 41.2,-18.5 41.2,-41.2 0,-0.6 -0.5,-1.1 -1.1,-1.1 h -8 c -0.6,0 -1.1,0.5 -1.1,1.1 0,17.1 -13.9,31 -31,31 -17.1,0 -31,-13.9 -31,-31 0,-0.6 -0.5,-1.1 -1.1,-1.1 h -8 c -0.6,0 -1.1,0.5 -1.1,1.1 -0.1,22.7 18.4,41.2 41.2,41.2 z"
|
||||
id="path3877-5" />
|
||||
<path
|
||||
style="fill:#000000"
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 131.1,63.8 h -8 c -0.6,0 -1.1,0.5 -1.1,1.1 C 122,93.1 99,116 70.9,116 42.7,116 19.8,93.1 19.8,64.9 c 0,-0.6 -0.5,-1.1 -1.1,-1.1 h -8 c -0.6,0 -1.1,0.5 -1.1,1.1 0,33.8 27.5,61.3 61.3,61.3 33.8,0 61.3,-27.5 61.3,-61.3 0,-0.6 -0.5,-1.1 -1.1,-1.1 z"
|
||||
id="path3879-3" />
|
||||
</g>
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
transform="matrix(1.9664647,0,0,1.0309994,34.431968,27.47427)"
|
||||
style="fill:#000000;fill-opacity:1;stroke:#b3b3b3;stroke-width:1.42147171;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
|
||||
inkscape:transform-center-y="3.7671951"
|
||||
d="M 18.519545,37.212943 12.19076,26.251167 5.8619763,15.289392 H 18.519545 31.177113 l -6.328784,10.961776 z"
|
||||
id="path3894-5" />
|
||||
<rect
|
||||
style="fill:#000000;fill-opacity:1"
|
||||
id="rect3896-6"
|
||||
width="22.08753"
|
||||
height="39.757553"
|
||||
x="59.806232"
|
||||
y="7.8155875"
|
||||
ry="2.0388491" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
style="fill:#ffffff"
|
||||
id="g3885">
|
||||
<g
|
||||
id="g5182">
|
||||
<g
|
||||
id="g3881"
|
||||
style="fill:#ffffff">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 70.9,86.1 c 11.7,0 21.2,-9.5 21.2,-21.2 0,-0.6 -0.5,-1.1 -1.1,-1.1 h -8 c -0.6,0 -1.1,0.5 -1.1,1.1 0,6 -4.9,11 -11,11 -6,0 -11,-4.9 -11,-11 0,-0.6 -0.5,-1.1 -1.1,-1.1 h -8 c -0.6,0 -1.1,0.5 -1.1,1.1 0,11.7 9.5,21.2 21.2,21.2 z"
|
||||
id="path3875"
|
||||
style="fill:#ffffff" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 70.9,106.1 c 22.7,0 41.2,-18.5 41.2,-41.2 0,-0.6 -0.5,-1.1 -1.1,-1.1 h -8 c -0.6,0 -1.1,0.5 -1.1,1.1 0,17.1 -13.9,31 -31,31 -17.1,0 -31,-13.9 -31,-31 0,-0.6 -0.5,-1.1 -1.1,-1.1 h -8 c -0.6,0 -1.1,0.5 -1.1,1.1 -0.1,22.7 18.4,41.2 41.2,41.2 z"
|
||||
id="path3877"
|
||||
style="fill:#ffffff" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 131.1,63.8 h -8 c -0.6,0 -1.1,0.5 -1.1,1.1 C 122,93.1 99,116 70.9,116 42.7,116 19.8,93.1 19.8,64.9 c 0,-0.6 -0.5,-1.1 -1.1,-1.1 h -8 c -0.6,0 -1.1,0.5 -1.1,1.1 0,33.8 27.5,61.3 61.3,61.3 33.8,0 61.3,-27.5 61.3,-61.3 0,-0.6 -0.5,-1.1 -1.1,-1.1 z"
|
||||
id="path3879"
|
||||
style="fill:#ffffff" />
|
||||
</g>
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
transform="matrix(1.9664647,0,0,1.0309994,34.431968,27.47427)"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:1.42147171;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
|
||||
inkscape:transform-center-y="3.7671951"
|
||||
d="M 18.519545,37.212943 12.19076,26.251167 5.8619763,15.289392 H 18.519545 31.177113 l -6.328784,10.961776 z"
|
||||
id="path3894" />
|
||||
<rect
|
||||
style="fill:#ffffff;fill-opacity:1"
|
||||
id="rect3896"
|
||||
width="22.08753"
|
||||
height="39.757553"
|
||||
x="59.806232"
|
||||
y="7.8155875"
|
||||
ry="2.0388491" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 15 KiB |
|
@ -0,0 +1,268 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
width="16"
|
||||
height="16"
|
||||
id="svg4372"
|
||||
inkscape:version="0.92.3 (2405546, 2018-03-11)"
|
||||
sodipodi:docname="16.svg">
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1017"
|
||||
id="namedview23"
|
||||
showgrid="true"
|
||||
inkscape:zoom="22.627417"
|
||||
inkscape:cx="-12.49341"
|
||||
inkscape:cy="7.3555074"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="30"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="layer1">
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid4151"
|
||||
empspacing="4" />
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid4153"
|
||||
spacingy="0.5"
|
||||
spacingx="0.5"
|
||||
empspacing="4"
|
||||
color="#ff00ff"
|
||||
opacity="0.2627451"
|
||||
empcolor="#ff3fff"
|
||||
empopacity="0" />
|
||||
</sodipodi:namedview>
|
||||
<defs
|
||||
id="defs4374">
|
||||
<linearGradient
|
||||
x1="23.99999"
|
||||
y1="4.999989"
|
||||
x2="23.99999"
|
||||
y2="43"
|
||||
id="linearGradient3304"
|
||||
xlink:href="#linearGradient3924-4-8"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.2972973,0,0,0.2972973,0.86486906,0.8648672)" />
|
||||
<linearGradient
|
||||
id="linearGradient3924-4-8">
|
||||
<stop
|
||||
id="stop3926-0-4"
|
||||
style="stop-color:#ffffff;stop-opacity:1"
|
||||
offset="0" />
|
||||
<stop
|
||||
id="stop3928-6-8"
|
||||
style="stop-color:#ffffff;stop-opacity:0.23529412"
|
||||
offset="0.06316455" />
|
||||
<stop
|
||||
id="stop3930-2-1"
|
||||
style="stop-color:#ffffff;stop-opacity:0.15686275"
|
||||
offset="0.95056331" />
|
||||
<stop
|
||||
id="stop3932-9-0"
|
||||
style="stop-color:#ffffff;stop-opacity:0.39215687"
|
||||
offset="1" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient2867-449-88-871-390-598-476-591-434-148-57-177-8-3-3-6-4-8-8-8-5">
|
||||
<stop
|
||||
id="stop3750-1-0-7-6-6-1-3-9-3"
|
||||
style="stop-color:#95a3ab;stop-opacity:1"
|
||||
offset="0" />
|
||||
<stop
|
||||
id="stop3752-3-7-4-0-32-8-923-0-7"
|
||||
style="stop-color:#667885;stop-opacity:1"
|
||||
offset="0.26238" />
|
||||
<stop
|
||||
id="stop3754-1-8-5-2-7-6-7-1-9"
|
||||
style="stop-color:#485a6c;stop-opacity:1"
|
||||
offset="0.704952" />
|
||||
<stop
|
||||
id="stop3756-1-6-2-6-6-1-96-6-0"
|
||||
style="stop-color:#273445;stop-opacity:1"
|
||||
offset="1" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
cx="6.7304144"
|
||||
cy="9.9571075"
|
||||
r="12.671875"
|
||||
fx="6.2001843"
|
||||
fy="9.9571075"
|
||||
id="radialGradient4370"
|
||||
xlink:href="#linearGradient2867-449-88-871-390-598-476-591-434-148-57-177-8-3-3-6-4-8-8-8-5"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0,3.1658508,-3.8866533,0,46.976839,-26.720326)" />
|
||||
<filter
|
||||
style="color-interpolation-filters:sRGB;"
|
||||
inkscape:label="Colorize"
|
||||
id="filter843">
|
||||
<feComposite
|
||||
in2="SourceGraphic"
|
||||
operator="arithmetic"
|
||||
k1="1"
|
||||
k2="1"
|
||||
result="composite1"
|
||||
id="feComposite829" />
|
||||
<feColorMatrix
|
||||
in="composite1"
|
||||
values="1"
|
||||
type="saturate"
|
||||
result="colormatrix1"
|
||||
id="feColorMatrix831" />
|
||||
<feFlood
|
||||
flood-opacity="1"
|
||||
flood-color="rgb(243,115,41)"
|
||||
result="flood1"
|
||||
id="feFlood833" />
|
||||
<feBlend
|
||||
in="flood1"
|
||||
in2="colormatrix1"
|
||||
mode="normal"
|
||||
result="blend1"
|
||||
id="feBlend835" />
|
||||
<feBlend
|
||||
in2="blend1"
|
||||
mode="normal"
|
||||
result="blend2"
|
||||
id="feBlend837" />
|
||||
<feColorMatrix
|
||||
in="blend2"
|
||||
values="1"
|
||||
type="saturate"
|
||||
result="colormatrix2"
|
||||
id="feColorMatrix839" />
|
||||
<feComposite
|
||||
in="colormatrix2"
|
||||
in2="SourceGraphic"
|
||||
operator="in"
|
||||
k2="1"
|
||||
result="composite2"
|
||||
id="feComposite841" />
|
||||
</filter>
|
||||
<filter
|
||||
style="color-interpolation-filters:sRGB"
|
||||
inkscape:label="Blur"
|
||||
id="filter5149">
|
||||
<feGaussianBlur
|
||||
stdDeviation="2 2"
|
||||
result="blur"
|
||||
id="feGaussianBlur5147" />
|
||||
</filter>
|
||||
<filter
|
||||
style="color-interpolation-filters:sRGB"
|
||||
inkscape:label="Blur"
|
||||
id="filter5149-3">
|
||||
<feGaussianBlur
|
||||
stdDeviation="2 2"
|
||||
result="blur"
|
||||
id="feGaussianBlur5147-6" />
|
||||
</filter>
|
||||
</defs>
|
||||
<metadata
|
||||
id="metadata4377">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
id="layer1"
|
||||
transform="translate(-1.4305115e-6,1.5497208e-6)">
|
||||
<rect
|
||||
width="13.000003"
|
||||
height="13.000003"
|
||||
rx="1"
|
||||
ry="1"
|
||||
x="1.5"
|
||||
y="1.499997"
|
||||
id="rect5505-21-2"
|
||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:url(#radialGradient4370);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994;marker:none;enable-background:accumulate;filter:url(#filter843)" />
|
||||
<rect
|
||||
width="11"
|
||||
height="11"
|
||||
x="2.5"
|
||||
y="2.4999969"
|
||||
id="rect6741-0-3-5"
|
||||
style="opacity:0.3;fill:none;stroke:url(#linearGradient3304);stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
|
||||
<rect
|
||||
width="13.000003"
|
||||
height="13.000003"
|
||||
rx="1"
|
||||
ry="1"
|
||||
x="1.5"
|
||||
y="1.499997"
|
||||
id="rect5505-21-2-8"
|
||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:0.5;fill:none;stroke:#0e141f;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
|
||||
<g
|
||||
transform="matrix(0.11534501,0,0,0.11534501,-0.1721926,3.5213603)"
|
||||
id="g5342">
|
||||
<g
|
||||
style="opacity:0.46200005;fill:#000000"
|
||||
id="g5198">
|
||||
<g
|
||||
id="g3885-3"
|
||||
transform="translate(0,2)"
|
||||
style="fill:#000000;filter:url(#filter5149-3)">
|
||||
<path
|
||||
id="path3894-5"
|
||||
d="M 18.519545,37.212943 12.19076,26.251167 5.8619763,15.289392 H 18.519545 31.177113 l -6.328784,10.961776 z"
|
||||
inkscape:transform-center-y="3.7671951"
|
||||
style="fill:#000000;fill-opacity:1;stroke:#b3b3b3;stroke-width:1.42147171;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
|
||||
transform="matrix(1.9664647,0,0,1.0309994,34.431968,27.47427)"
|
||||
inkscape:connector-curvature="0" />
|
||||
<rect
|
||||
ry="2.0388491"
|
||||
y="7.8155875"
|
||||
x="59.806232"
|
||||
height="39.757553"
|
||||
width="22.08753"
|
||||
id="rect3896-6"
|
||||
style="fill:#000000;fill-opacity:1" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
id="g3885"
|
||||
style="fill:#ffffff">
|
||||
<g
|
||||
id="g5182">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path3894"
|
||||
d="M 18.519545,37.212943 12.19076,26.251167 5.8619763,15.289392 H 18.519545 31.177113 l -6.328784,10.961776 z"
|
||||
inkscape:transform-center-y="3.7671951"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:1.42147171;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
|
||||
transform="matrix(1.9664647,0,0,1.0309994,34.431968,27.47427)" />
|
||||
<rect
|
||||
ry="2.0388491"
|
||||
y="7.8155875"
|
||||
x="59.806232"
|
||||
height="39.757553"
|
||||
width="22.08753"
|
||||
id="rect3896"
|
||||
style="fill:#ffffff;fill-opacity:1" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 8.5 KiB |
|
@ -0,0 +1,375 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
id="svg4157"
|
||||
height="24"
|
||||
width="24"
|
||||
version="1.1"
|
||||
inkscape:version="0.92.3 (2405546, 2018-03-11)"
|
||||
sodipodi:docname="24.svg">
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1017"
|
||||
id="namedview46"
|
||||
showgrid="true"
|
||||
inkscape:zoom="16"
|
||||
inkscape:cx="-7.766342"
|
||||
inkscape:cy="9.3530973"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="30"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="g4169">
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid4179"
|
||||
empspacing="4" />
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid4181"
|
||||
spacingx="0.5"
|
||||
spacingy="0.5"
|
||||
empspacing="2"
|
||||
color="#ff3fff"
|
||||
opacity="0.1254902"
|
||||
empcolor="#3ff9ff"
|
||||
empopacity="0.11764706" />
|
||||
</sodipodi:namedview>
|
||||
<defs
|
||||
id="defs4159">
|
||||
<linearGradient
|
||||
gradientTransform="matrix(1.0181566,0,0,-1.0195328,-0.21530444,32.481143)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
xlink:href="#linearGradient4097"
|
||||
id="linearGradient3223"
|
||||
y2="20.187275"
|
||||
x2="12.913282"
|
||||
y1="17.533852"
|
||||
x1="12.913282" />
|
||||
<linearGradient
|
||||
id="linearGradient4097">
|
||||
<stop
|
||||
offset="0"
|
||||
style="stop-color:#000000;stop-opacity:1"
|
||||
id="stop4099" />
|
||||
<stop
|
||||
offset="1"
|
||||
style="stop-color:#000000;stop-opacity:0"
|
||||
id="stop4101" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
gradientTransform="matrix(0.45945947,0,0,0.45945947,0.9742203,0.9717328)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
xlink:href="#linearGradient4095"
|
||||
id="linearGradient3233"
|
||||
y2="41.229313"
|
||||
x2="23.99999"
|
||||
y1="6.5493407"
|
||||
x1="23.99999" />
|
||||
<linearGradient
|
||||
id="linearGradient4095">
|
||||
<stop
|
||||
offset="0"
|
||||
style="stop-color:#ffffff;stop-opacity:1"
|
||||
id="stop4097" />
|
||||
<stop
|
||||
offset="0.01652508"
|
||||
style="stop-color:#ffffff;stop-opacity:0.23529412"
|
||||
id="stop4100" />
|
||||
<stop
|
||||
offset="0.98001981"
|
||||
style="stop-color:#ffffff;stop-opacity:0.15686275"
|
||||
id="stop4102" />
|
||||
<stop
|
||||
offset="1"
|
||||
style="stop-color:#ffffff;stop-opacity:0.39215687"
|
||||
id="stop4104" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
gradientTransform="matrix(0,4.6270127,-5.6804933,0,68.966159,-38.745063)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
xlink:href="#linearGradient2867-449-88-871-390-598-476-591-434-148-57-177-8-3-3-6-4-8-8-8-5"
|
||||
id="radialGradient3215"
|
||||
fy="9.9571075"
|
||||
fx="6.2001843"
|
||||
r="12.671875"
|
||||
cy="9.9571075"
|
||||
cx="6.7304144" />
|
||||
<linearGradient
|
||||
id="linearGradient2867-449-88-871-390-598-476-591-434-148-57-177-8-3-3-6-4-8-8-8-5">
|
||||
<stop
|
||||
offset="0"
|
||||
style="stop-color:#95a3ab;stop-opacity:1"
|
||||
id="stop3750-1-0-7-6-6-1-3-9-3" />
|
||||
<stop
|
||||
offset="0.26238"
|
||||
style="stop-color:#667885;stop-opacity:1"
|
||||
id="stop3752-3-7-4-0-32-8-923-0-7" />
|
||||
<stop
|
||||
offset="0.704952"
|
||||
style="stop-color:#485a6c;stop-opacity:1"
|
||||
id="stop3754-1-8-5-2-7-6-7-1-9" />
|
||||
<stop
|
||||
offset="1"
|
||||
style="stop-color:#273445;stop-opacity:1"
|
||||
id="stop3756-1-6-2-6-6-1-96-6-0" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
gradientTransform="matrix(2.003784,0,0,1.4,27.98813,-17.4)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
xlink:href="#linearGradient3688-166-749-9"
|
||||
id="radialGradient3082-6"
|
||||
fy="43.5"
|
||||
fx="4.9929786"
|
||||
r="2.5"
|
||||
cy="43.5"
|
||||
cx="4.9929786" />
|
||||
<linearGradient
|
||||
id="linearGradient3688-166-749-9">
|
||||
<stop
|
||||
offset="0"
|
||||
style="stop-color:#181818;stop-opacity:1"
|
||||
id="stop2883-2" />
|
||||
<stop
|
||||
offset="1"
|
||||
style="stop-color:#181818;stop-opacity:0"
|
||||
id="stop2885-2" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
gradientTransform="matrix(2.003784,0,0,1.4,-20.01187,-104.4)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
xlink:href="#linearGradient3688-464-309-7-6"
|
||||
id="radialGradient3084-4"
|
||||
fy="43.5"
|
||||
fx="4.9929786"
|
||||
r="2.5"
|
||||
cy="43.5"
|
||||
cx="4.9929786" />
|
||||
<linearGradient
|
||||
id="linearGradient3688-464-309-7-6">
|
||||
<stop
|
||||
offset="0"
|
||||
style="stop-color:#181818;stop-opacity:1"
|
||||
id="stop2889-75" />
|
||||
<stop
|
||||
offset="1"
|
||||
style="stop-color:#181818;stop-opacity:0"
|
||||
id="stop2891-4-9" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
gradientUnits="userSpaceOnUse"
|
||||
xlink:href="#linearGradient3702-501-757-1"
|
||||
id="linearGradient3086-8"
|
||||
y2="39.999443"
|
||||
x2="25.058096"
|
||||
y1="47.027729"
|
||||
x1="25.058096" />
|
||||
<linearGradient
|
||||
id="linearGradient3702-501-757-1">
|
||||
<stop
|
||||
offset="0"
|
||||
style="stop-color:#181818;stop-opacity:0"
|
||||
id="stop2895-2" />
|
||||
<stop
|
||||
offset="0.5"
|
||||
style="stop-color:#181818;stop-opacity:1"
|
||||
id="stop2897-89" />
|
||||
<stop
|
||||
offset="1"
|
||||
style="stop-color:#181818;stop-opacity:0"
|
||||
id="stop2899-36" />
|
||||
</linearGradient>
|
||||
<filter
|
||||
style="color-interpolation-filters:sRGB;"
|
||||
inkscape:label="Colorize"
|
||||
id="filter913">
|
||||
<feComposite
|
||||
in2="SourceGraphic"
|
||||
operator="arithmetic"
|
||||
k1="1"
|
||||
k2="1"
|
||||
result="composite1"
|
||||
id="feComposite899" />
|
||||
<feColorMatrix
|
||||
in="composite1"
|
||||
values="1"
|
||||
type="saturate"
|
||||
result="colormatrix1"
|
||||
id="feColorMatrix901" />
|
||||
<feFlood
|
||||
flood-opacity="1"
|
||||
flood-color="rgb(243,115,41)"
|
||||
result="flood1"
|
||||
id="feFlood903" />
|
||||
<feBlend
|
||||
in="flood1"
|
||||
in2="colormatrix1"
|
||||
mode="normal"
|
||||
result="blend1"
|
||||
id="feBlend905" />
|
||||
<feBlend
|
||||
in2="blend1"
|
||||
mode="normal"
|
||||
result="blend2"
|
||||
id="feBlend907" />
|
||||
<feColorMatrix
|
||||
in="blend2"
|
||||
values="1"
|
||||
type="saturate"
|
||||
result="colormatrix2"
|
||||
id="feColorMatrix909" />
|
||||
<feComposite
|
||||
in="colormatrix2"
|
||||
in2="SourceGraphic"
|
||||
operator="in"
|
||||
k2="1"
|
||||
result="composite2"
|
||||
id="feComposite911" />
|
||||
</filter>
|
||||
<filter
|
||||
style="color-interpolation-filters:sRGB"
|
||||
inkscape:label="Blur"
|
||||
id="filter5149-3">
|
||||
<feGaussianBlur
|
||||
stdDeviation="2 2"
|
||||
result="blur"
|
||||
id="feGaussianBlur5147-6" />
|
||||
</filter>
|
||||
</defs>
|
||||
<metadata
|
||||
id="metadata4162">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
id="g4169">
|
||||
<g
|
||||
style="display:inline"
|
||||
id="g2036-4"
|
||||
transform="matrix(0.55,0,0,0.3333336,-1.2000011,7.33333)">
|
||||
<g
|
||||
style="opacity:0.4"
|
||||
id="g3712-8"
|
||||
transform="matrix(1.052632,0,0,1.285713,-1.263158,-13.42854)">
|
||||
<rect
|
||||
style="fill:url(#radialGradient3082-6);fill-opacity:1;stroke:none"
|
||||
id="rect2801-6"
|
||||
y="40"
|
||||
x="38"
|
||||
height="7"
|
||||
width="5" />
|
||||
<rect
|
||||
style="fill:url(#radialGradient3084-4);fill-opacity:1;stroke:none"
|
||||
id="rect3696-20"
|
||||
transform="scale(-1,-1)"
|
||||
y="-47"
|
||||
x="-10"
|
||||
height="7"
|
||||
width="5" />
|
||||
<rect
|
||||
style="fill:url(#linearGradient3086-8);fill-opacity:1;stroke:none"
|
||||
id="rect3700-5"
|
||||
y="40"
|
||||
x="10"
|
||||
height="7.0000005"
|
||||
width="28" />
|
||||
</g>
|
||||
</g>
|
||||
<rect
|
||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:url(#radialGradient3215);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994;marker:none;enable-background:accumulate;filter:url(#filter913)"
|
||||
id="rect5505-21-8"
|
||||
y="2.5000257"
|
||||
x="2.4999981"
|
||||
ry="1"
|
||||
rx="1"
|
||||
height="19.000002"
|
||||
width="19.000002" />
|
||||
<rect
|
||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:0.5;fill:none;stroke:#0e141f;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
|
||||
id="rect5505-21-8-1"
|
||||
y="2.5000257"
|
||||
x="2.4999981"
|
||||
ry="1"
|
||||
rx="1"
|
||||
height="19.000002"
|
||||
width="19.000002" />
|
||||
<rect
|
||||
style="opacity:0.3;fill:none;stroke:url(#linearGradient3233);stroke-width:0.99999988;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
id="rect6741-9"
|
||||
y="3.4987564"
|
||||
x="3.5012455"
|
||||
height="17"
|
||||
width="17" />
|
||||
<g
|
||||
transform="matrix(0.23392019,0,0,0.23392019,-4.5732456,2.9173021)"
|
||||
id="g5342">
|
||||
<g
|
||||
style="opacity:0.46200005;fill:#000000"
|
||||
id="g5198">
|
||||
<g
|
||||
id="g3885-3"
|
||||
transform="translate(0,2)"
|
||||
style="fill:#000000;filter:url(#filter5149-3)">
|
||||
<path
|
||||
id="path3894-5"
|
||||
d="M 18.519545,37.212943 12.19076,26.251167 5.8619763,15.289392 H 18.519545 31.177113 l -6.328784,10.961776 z"
|
||||
inkscape:transform-center-y="3.7671951"
|
||||
style="fill:#000000;fill-opacity:1;stroke:#b3b3b3;stroke-width:1.42147171;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
|
||||
transform="matrix(1.9664647,0,0,1.0309994,34.431968,27.47427)"
|
||||
inkscape:connector-curvature="0" />
|
||||
<rect
|
||||
ry="2.0388491"
|
||||
y="7.8155875"
|
||||
x="59.806232"
|
||||
height="39.757553"
|
||||
width="22.08753"
|
||||
id="rect3896-6"
|
||||
style="fill:#000000;fill-opacity:1" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
id="g3885"
|
||||
style="fill:#ffffff">
|
||||
<g
|
||||
id="g5182">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path3894"
|
||||
d="M 18.519545,37.212943 12.19076,26.251167 5.8619763,15.289392 H 18.519545 31.177113 l -6.328784,10.961776 z"
|
||||
inkscape:transform-center-y="3.7671951"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:1.42147171;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
|
||||
transform="matrix(1.9664647,0,0,1.0309994,34.431968,27.47427)" />
|
||||
<rect
|
||||
ry="2.0388491"
|
||||
y="7.8155875"
|
||||
x="59.806232"
|
||||
height="39.757553"
|
||||
width="22.08753"
|
||||
id="rect3896"
|
||||
style="fill:#ffffff;fill-opacity:1" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 12 KiB |
|
@ -0,0 +1,415 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
id="svg4588"
|
||||
height="32"
|
||||
width="32"
|
||||
version="1.1"
|
||||
inkscape:version="0.92.3 (2405546, 2018-03-11)"
|
||||
sodipodi:docname="32.svg">
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1017"
|
||||
id="namedview46"
|
||||
showgrid="true"
|
||||
inkscape:zoom="22.627417"
|
||||
inkscape:cx="-1.484058"
|
||||
inkscape:cy="11.333225"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="30"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="g4174">
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid4203"
|
||||
empspacing="4" />
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid4205"
|
||||
empspacing="2"
|
||||
spacingx="0.5"
|
||||
spacingy="0.5"
|
||||
color="#ff3fff"
|
||||
opacity="0.37254902"
|
||||
empcolor="#3fffff"
|
||||
empopacity="0.1254902" />
|
||||
</sodipodi:namedview>
|
||||
<defs
|
||||
id="defs4590">
|
||||
<linearGradient
|
||||
id="linearGradient4687">
|
||||
<stop
|
||||
offset="0"
|
||||
style="stop-color:#000000;stop-opacity:1"
|
||||
id="stop4689" />
|
||||
<stop
|
||||
offset="1"
|
||||
style="stop-color:#000000;stop-opacity:0"
|
||||
id="stop4691" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
gradientTransform="matrix(0.67567568,0,0,0.67567568,-0.21621855,-0.2162061)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
xlink:href="#linearGradient3924-0"
|
||||
id="linearGradient3483"
|
||||
y2="41.679485"
|
||||
x2="38.546436"
|
||||
y1="6.3738203"
|
||||
x1="38.546436" />
|
||||
<linearGradient
|
||||
id="linearGradient3924-0">
|
||||
<stop
|
||||
offset="0"
|
||||
style="stop-color:#ffffff;stop-opacity:1"
|
||||
id="stop3926-6" />
|
||||
<stop
|
||||
offset="0.03798588"
|
||||
style="stop-color:#ffffff;stop-opacity:0.23529412"
|
||||
id="stop3928-3" />
|
||||
<stop
|
||||
offset="0.96200818"
|
||||
style="stop-color:#ffffff;stop-opacity:0.15686275"
|
||||
id="stop3930-2" />
|
||||
<stop
|
||||
offset="1"
|
||||
style="stop-color:#ffffff;stop-opacity:0.39215687"
|
||||
id="stop3932-62" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
gradientTransform="matrix(0,6.5752286,-8.07228,0,96.951918,-56.111442)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
xlink:href="#linearGradient2867-449-88-871-390-598-476-591-434-148-57-177-8-3-3-6-4-8-8-8-5"
|
||||
id="radialGradient4388"
|
||||
fy="9.9571075"
|
||||
fx="6.2001843"
|
||||
r="12.671875"
|
||||
cy="9.9571075"
|
||||
cx="6.7304144" />
|
||||
<linearGradient
|
||||
id="linearGradient2867-449-88-871-390-598-476-591-434-148-57-177-8-3-3-6-4-8-8-8-5">
|
||||
<stop
|
||||
offset="0"
|
||||
style="stop-color:#95a3ab;stop-opacity:1"
|
||||
id="stop3750-1-0-7-6-6-1-3-9-3" />
|
||||
<stop
|
||||
offset="0.26238"
|
||||
style="stop-color:#667885;stop-opacity:1"
|
||||
id="stop3752-3-7-4-0-32-8-923-0-7" />
|
||||
<stop
|
||||
offset="0.704952"
|
||||
style="stop-color:#485a6c;stop-opacity:1"
|
||||
id="stop3754-1-8-5-2-7-6-7-1-9" />
|
||||
<stop
|
||||
offset="1"
|
||||
style="stop-color:#273445;stop-opacity:1"
|
||||
id="stop3756-1-6-2-6-6-1-96-6-0" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
gradientTransform="matrix(2.003784,0,0,1.4,27.98813,-17.4)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
xlink:href="#linearGradient3688-166-749-6"
|
||||
id="radialGradient3493"
|
||||
fy="43.5"
|
||||
fx="4.9929786"
|
||||
r="2.5"
|
||||
cy="43.5"
|
||||
cx="4.9929786" />
|
||||
<linearGradient
|
||||
id="linearGradient3688-166-749-6">
|
||||
<stop
|
||||
offset="0"
|
||||
style="stop-color:#181818;stop-opacity:1"
|
||||
id="stop2883-8" />
|
||||
<stop
|
||||
offset="1"
|
||||
style="stop-color:#181818;stop-opacity:0"
|
||||
id="stop2885-3" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
gradientTransform="matrix(2.003784,0,0,1.4,-20.01187,-104.4)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
xlink:href="#linearGradient3688-464-309-7"
|
||||
id="radialGradient3495"
|
||||
fy="43.5"
|
||||
fx="4.9929786"
|
||||
r="2.5"
|
||||
cy="43.5"
|
||||
cx="4.9929786" />
|
||||
<linearGradient
|
||||
id="linearGradient3688-464-309-7">
|
||||
<stop
|
||||
offset="0"
|
||||
style="stop-color:#181818;stop-opacity:1"
|
||||
id="stop2889-0" />
|
||||
<stop
|
||||
offset="1"
|
||||
style="stop-color:#181818;stop-opacity:0"
|
||||
id="stop2891-66" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
gradientUnits="userSpaceOnUse"
|
||||
xlink:href="#linearGradient3702-501-757-3"
|
||||
id="linearGradient3497"
|
||||
y2="39.999443"
|
||||
x2="25.058096"
|
||||
y1="47.027729"
|
||||
x1="25.058096" />
|
||||
<linearGradient
|
||||
id="linearGradient3702-501-757-3">
|
||||
<stop
|
||||
offset="0"
|
||||
style="stop-color:#181818;stop-opacity:0"
|
||||
id="stop2895-3" />
|
||||
<stop
|
||||
offset="0.5"
|
||||
style="stop-color:#181818;stop-opacity:1"
|
||||
id="stop2897-28" />
|
||||
<stop
|
||||
offset="1"
|
||||
style="stop-color:#181818;stop-opacity:0"
|
||||
id="stop2899-8" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
x1="30.212982"
|
||||
y1="21.416878"
|
||||
x2="30.212982"
|
||||
y2="25.361452"
|
||||
id="linearGradient3143"
|
||||
xlink:href="#linearGradient4687"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.74734572,0,0,-0.74821732,-1.9357971,34.712168)" />
|
||||
<filter
|
||||
style="color-interpolation-filters:sRGB;"
|
||||
inkscape:label="Colorize"
|
||||
id="filter865">
|
||||
<feComposite
|
||||
in2="SourceGraphic"
|
||||
operator="arithmetic"
|
||||
k1="1"
|
||||
k2="1"
|
||||
result="composite1"
|
||||
id="feComposite851" />
|
||||
<feColorMatrix
|
||||
in="composite1"
|
||||
values="1"
|
||||
type="saturate"
|
||||
result="colormatrix1"
|
||||
id="feColorMatrix853" />
|
||||
<feFlood
|
||||
flood-opacity="1"
|
||||
flood-color="rgb(243,115,41)"
|
||||
result="flood1"
|
||||
id="feFlood855" />
|
||||
<feBlend
|
||||
in="flood1"
|
||||
in2="colormatrix1"
|
||||
mode="normal"
|
||||
result="blend1"
|
||||
id="feBlend857" />
|
||||
<feBlend
|
||||
in2="blend1"
|
||||
mode="normal"
|
||||
result="blend2"
|
||||
id="feBlend859" />
|
||||
<feColorMatrix
|
||||
in="blend2"
|
||||
values="1"
|
||||
type="saturate"
|
||||
result="colormatrix2"
|
||||
id="feColorMatrix861" />
|
||||
<feComposite
|
||||
in="colormatrix2"
|
||||
in2="SourceGraphic"
|
||||
operator="in"
|
||||
k2="1"
|
||||
result="composite2"
|
||||
id="feComposite863" />
|
||||
</filter>
|
||||
<filter
|
||||
style="color-interpolation-filters:sRGB"
|
||||
inkscape:label="Blur"
|
||||
id="filter5149">
|
||||
<feGaussianBlur
|
||||
stdDeviation="2 2"
|
||||
result="blur"
|
||||
id="feGaussianBlur5147" />
|
||||
</filter>
|
||||
</defs>
|
||||
<metadata
|
||||
id="metadata4593">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
id="g4174">
|
||||
<g
|
||||
style="display:inline"
|
||||
id="g2036-2"
|
||||
transform="matrix(0.6999997,0,0,0.3333336,-0.8000002,15.33333)">
|
||||
<g
|
||||
style="opacity:0.4"
|
||||
id="g3712-3"
|
||||
transform="matrix(1.052632,0,0,1.285713,-1.263158,-13.42854)">
|
||||
<rect
|
||||
style="fill:url(#radialGradient3493);fill-opacity:1;stroke:none"
|
||||
id="rect2801-0"
|
||||
y="40"
|
||||
x="38"
|
||||
height="7"
|
||||
width="5" />
|
||||
<rect
|
||||
style="fill:url(#radialGradient3495);fill-opacity:1;stroke:none"
|
||||
id="rect3696-2"
|
||||
transform="scale(-1,-1)"
|
||||
y="-47"
|
||||
x="-10"
|
||||
height="7"
|
||||
width="5" />
|
||||
<rect
|
||||
style="fill:url(#linearGradient3497);fill-opacity:1;stroke:none"
|
||||
id="rect3700-1"
|
||||
y="40"
|
||||
x="10"
|
||||
height="7.0000005"
|
||||
width="28" />
|
||||
</g>
|
||||
</g>
|
||||
<rect
|
||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:url(#radialGradient4388);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994;marker:none;enable-background:accumulate;filter:url(#filter865)"
|
||||
id="rect5505"
|
||||
y="2.5000005"
|
||||
x="2.4999998"
|
||||
ry="2.1600001"
|
||||
rx="2.1600001"
|
||||
height="27"
|
||||
width="27" />
|
||||
<rect
|
||||
style="opacity:0.3;fill:none;stroke:url(#linearGradient3483);stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
id="rect6741-7-4"
|
||||
y="3.5"
|
||||
x="3.5"
|
||||
ry="1.0869565"
|
||||
rx="1.0869565"
|
||||
height="25"
|
||||
width="25" />
|
||||
<rect
|
||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:0.5;fill:none;stroke:#0e141f;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
|
||||
id="rect5505-6"
|
||||
y="2.5"
|
||||
x="2.5"
|
||||
ry="2.1600001"
|
||||
rx="2.1600001"
|
||||
height="27"
|
||||
width="27" />
|
||||
<g
|
||||
transform="matrix(0.17699253,0,0,0.17699253,3.4512287,3.7861361)"
|
||||
id="g5342">
|
||||
<g
|
||||
style="opacity:0.46200005;fill:#000000"
|
||||
id="g5198">
|
||||
<g
|
||||
id="g3885-3"
|
||||
transform="translate(0,2)"
|
||||
style="fill:#000000;filter:url(#filter5149)">
|
||||
<g
|
||||
id="g3881-6"
|
||||
style="fill:#000000">
|
||||
<path
|
||||
id="path3875-7"
|
||||
d="m 70.9,86.1 c 11.7,0 21.2,-9.5 21.2,-21.2 0,-0.6 -0.5,-1.1 -1.1,-1.1 h -8 c -0.6,0 -1.1,0.5 -1.1,1.1 0,6 -4.9,11 -11,11 -6,0 -11,-4.9 -11,-11 0,-0.6 -0.5,-1.1 -1.1,-1.1 h -8 c -0.6,0 -1.1,0.5 -1.1,1.1 0,11.7 9.5,21.2 21.2,21.2 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000" />
|
||||
<path
|
||||
id="path3877-5"
|
||||
d="m 70.9,106.1 c 22.7,0 41.2,-18.5 41.2,-41.2 0,-0.6 -0.5,-1.1 -1.1,-1.1 h -8 c -0.6,0 -1.1,0.5 -1.1,1.1 0,17.1 -13.9,31 -31,31 -17.1,0 -31,-13.9 -31,-31 0,-0.6 -0.5,-1.1 -1.1,-1.1 h -8 c -0.6,0 -1.1,0.5 -1.1,1.1 -0.1,22.7 18.4,41.2 41.2,41.2 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000" />
|
||||
<path
|
||||
id="path3879-3"
|
||||
d="m 131.1,63.8 h -8 c -0.6,0 -1.1,0.5 -1.1,1.1 C 122,93.1 99,116 70.9,116 42.7,116 19.8,93.1 19.8,64.9 c 0,-0.6 -0.5,-1.1 -1.1,-1.1 h -8 c -0.6,0 -1.1,0.5 -1.1,1.1 0,33.8 27.5,61.3 61.3,61.3 33.8,0 61.3,-27.5 61.3,-61.3 0,-0.6 -0.5,-1.1 -1.1,-1.1 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000" />
|
||||
</g>
|
||||
<path
|
||||
id="path3894-5"
|
||||
d="M 18.519545,37.212943 12.19076,26.251167 5.8619763,15.289392 H 18.519545 31.177113 l -6.328784,10.961776 z"
|
||||
inkscape:transform-center-y="3.7671951"
|
||||
style="fill:#000000;fill-opacity:1;stroke:#b3b3b3;stroke-width:1.42147171;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
|
||||
transform="matrix(1.9664647,0,0,1.0309994,34.431968,27.47427)"
|
||||
inkscape:connector-curvature="0" />
|
||||
<rect
|
||||
ry="2.0388491"
|
||||
y="7.8155875"
|
||||
x="59.806232"
|
||||
height="39.757553"
|
||||
width="22.08753"
|
||||
id="rect3896-6"
|
||||
style="fill:#000000;fill-opacity:1" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
id="g3885"
|
||||
style="fill:#ffffff">
|
||||
<g
|
||||
id="g5182">
|
||||
<g
|
||||
style="fill:#ffffff"
|
||||
id="g3881">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffffff"
|
||||
id="path3875"
|
||||
d="m 70.9,86.1 c 11.7,0 21.2,-9.5 21.2,-21.2 0,-0.6 -0.5,-1.1 -1.1,-1.1 h -8 c -0.6,0 -1.1,0.5 -1.1,1.1 0,6 -4.9,11 -11,11 -6,0 -11,-4.9 -11,-11 0,-0.6 -0.5,-1.1 -1.1,-1.1 h -8 c -0.6,0 -1.1,0.5 -1.1,1.1 0,11.7 9.5,21.2 21.2,21.2 z" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffffff"
|
||||
id="path3877"
|
||||
d="m 70.9,106.1 c 22.7,0 41.2,-18.5 41.2,-41.2 0,-0.6 -0.5,-1.1 -1.1,-1.1 h -8 c -0.6,0 -1.1,0.5 -1.1,1.1 0,17.1 -13.9,31 -31,31 -17.1,0 -31,-13.9 -31,-31 0,-0.6 -0.5,-1.1 -1.1,-1.1 h -8 c -0.6,0 -1.1,0.5 -1.1,1.1 -0.1,22.7 18.4,41.2 41.2,41.2 z" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffffff"
|
||||
id="path3879"
|
||||
d="m 131.1,63.8 h -8 c -0.6,0 -1.1,0.5 -1.1,1.1 C 122,93.1 99,116 70.9,116 42.7,116 19.8,93.1 19.8,64.9 c 0,-0.6 -0.5,-1.1 -1.1,-1.1 h -8 c -0.6,0 -1.1,0.5 -1.1,1.1 0,33.8 27.5,61.3 61.3,61.3 33.8,0 61.3,-27.5 61.3,-61.3 0,-0.6 -0.5,-1.1 -1.1,-1.1 z" />
|
||||
</g>
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path3894"
|
||||
d="M 18.519545,37.212943 12.19076,26.251167 5.8619763,15.289392 H 18.519545 31.177113 l -6.328784,10.961776 z"
|
||||
inkscape:transform-center-y="3.7671951"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:1.42147171;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
|
||||
transform="matrix(1.9664647,0,0,1.0309994,34.431968,27.47427)" />
|
||||
<rect
|
||||
ry="2.0388491"
|
||||
y="7.8155875"
|
||||
x="59.806232"
|
||||
height="39.757553"
|
||||
width="22.08753"
|
||||
id="rect3896"
|
||||
style="fill:#ffffff;fill-opacity:1" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 14 KiB |
|
@ -0,0 +1,458 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
id="svg4405"
|
||||
height="48"
|
||||
width="48"
|
||||
version="1.1"
|
||||
inkscape:version="0.92.3 (2405546, 2018-03-11)"
|
||||
sodipodi:docname="48.svg">
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1017"
|
||||
id="namedview45"
|
||||
showgrid="true"
|
||||
inkscape:zoom="11.313708"
|
||||
inkscape:cx="-1.2924217"
|
||||
inkscape:cy="24.375562"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="30"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="g5216">
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid4182"
|
||||
empspacing="4" />
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid4184"
|
||||
empspacing="2"
|
||||
spacingx="0.5"
|
||||
spacingy="0.5"
|
||||
color="#ff3fff"
|
||||
opacity="0.31372549"
|
||||
empcolor="#3fffff"
|
||||
empopacity="0.11764706" />
|
||||
</sodipodi:namedview>
|
||||
<defs
|
||||
id="defs4407">
|
||||
<linearGradient
|
||||
id="linearGradient4187">
|
||||
<stop
|
||||
offset="0"
|
||||
style="stop-color:#ffffff;stop-opacity:1"
|
||||
id="stop4189" />
|
||||
<stop
|
||||
offset="0.02099473"
|
||||
style="stop-color:#ffffff;stop-opacity:0.23529412"
|
||||
id="stop4191" />
|
||||
<stop
|
||||
offset="0.97696"
|
||||
style="stop-color:#ffffff;stop-opacity:0.15686275"
|
||||
id="stop4193" />
|
||||
<stop
|
||||
offset="1"
|
||||
style="stop-color:#ffffff;stop-opacity:0.39215687"
|
||||
id="stop4195" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient4311">
|
||||
<stop
|
||||
offset="0"
|
||||
style="stop-color:#000000;stop-opacity:1"
|
||||
id="stop4313" />
|
||||
<stop
|
||||
offset="1"
|
||||
style="stop-color:#000000;stop-opacity:0"
|
||||
id="stop4315" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
gradientTransform="matrix(2.003784,0,0,1.4,27.98813,-17.4)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
xlink:href="#linearGradient3688-166-749-2-324"
|
||||
id="radialGradient3013-896"
|
||||
fy="43.5"
|
||||
fx="4.9929786"
|
||||
r="2.5"
|
||||
cy="43.5"
|
||||
cx="4.9929786" />
|
||||
<linearGradient
|
||||
id="linearGradient3688-166-749-2-324">
|
||||
<stop
|
||||
offset="0"
|
||||
style="stop-color:#181818;stop-opacity:1"
|
||||
id="stop3216" />
|
||||
<stop
|
||||
offset="1"
|
||||
style="stop-color:#181818;stop-opacity:0"
|
||||
id="stop3218" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
gradientTransform="matrix(2.003784,0,0,1.4,-20.01187,-104.4)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
xlink:href="#linearGradient3688-464-309-8-331"
|
||||
id="radialGradient3015-826"
|
||||
fy="43.5"
|
||||
fx="4.9929786"
|
||||
r="2.5"
|
||||
cy="43.5"
|
||||
cx="4.9929786" />
|
||||
<linearGradient
|
||||
id="linearGradient3688-464-309-8-331">
|
||||
<stop
|
||||
offset="0"
|
||||
style="stop-color:#181818;stop-opacity:1"
|
||||
id="stop3222" />
|
||||
<stop
|
||||
offset="1"
|
||||
style="stop-color:#181818;stop-opacity:0"
|
||||
id="stop3224" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient3702-501-757-6-946">
|
||||
<stop
|
||||
offset="0"
|
||||
style="stop-color:#181818;stop-opacity:0"
|
||||
id="stop3228" />
|
||||
<stop
|
||||
offset="0.5"
|
||||
style="stop-color:#181818;stop-opacity:1"
|
||||
id="stop3230" />
|
||||
<stop
|
||||
offset="1"
|
||||
style="stop-color:#181818;stop-opacity:0"
|
||||
id="stop3232" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
gradientUnits="userSpaceOnUse"
|
||||
xlink:href="#linearGradient3702-501-757-6-946"
|
||||
id="linearGradient4395"
|
||||
y2="39.999443"
|
||||
x2="25.058096"
|
||||
y1="47.027729"
|
||||
x1="25.058096" />
|
||||
<linearGradient
|
||||
id="linearGradient2867-449-88-871-390-598-476-591-434-148-57-177-8-3-3-6-4-8-8-8-5">
|
||||
<stop
|
||||
offset="0"
|
||||
style="stop-color:#95a3ab;stop-opacity:1"
|
||||
id="stop3750-1-0-7-6-6-1-3-9-3" />
|
||||
<stop
|
||||
offset="0.26238"
|
||||
style="stop-color:#667885;stop-opacity:1"
|
||||
id="stop3752-3-7-4-0-32-8-923-0-7" />
|
||||
<stop
|
||||
offset="0.704952"
|
||||
style="stop-color:#485a6c;stop-opacity:1"
|
||||
id="stop3754-1-8-5-2-7-6-7-1-9" />
|
||||
<stop
|
||||
offset="1"
|
||||
style="stop-color:#273445;stop-opacity:1"
|
||||
id="stop3756-1-6-2-6-6-1-96-6-0" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
gradientTransform="matrix(1.0521608,0,0,-1.0532519,-1.2521612,51.339874)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
xlink:href="#linearGradient4311"
|
||||
id="linearGradient3143"
|
||||
y2="25.361452"
|
||||
x2="30.212982"
|
||||
y1="21.416878"
|
||||
x1="30.212982" />
|
||||
<linearGradient
|
||||
gradientTransform="translate(1.17e-5,1.00001)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
xlink:href="#linearGradient4187"
|
||||
id="linearGradient3153"
|
||||
y2="41.890972"
|
||||
x2="23.99999"
|
||||
y1="6.1111298"
|
||||
x1="23.99999" />
|
||||
<radialGradient
|
||||
gradientTransform="matrix(0,9.4975523,-11.65996,0,140.93055,-79.160972)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
xlink:href="#linearGradient2867-449-88-871-390-598-476-591-434-148-57-177-8-3-3-6-4-8-8-8-5"
|
||||
id="radialGradient4144"
|
||||
fy="9.9571075"
|
||||
fx="6.2001843"
|
||||
r="12.671875"
|
||||
cy="9.9571075"
|
||||
cx="6.7304144" />
|
||||
<filter
|
||||
style="color-interpolation-filters:sRGB;"
|
||||
inkscape:label="Colorize"
|
||||
id="filter864">
|
||||
<feComposite
|
||||
in2="SourceGraphic"
|
||||
operator="arithmetic"
|
||||
k1="1"
|
||||
k2="1"
|
||||
result="composite1"
|
||||
id="feComposite850" />
|
||||
<feColorMatrix
|
||||
in="composite1"
|
||||
values="1"
|
||||
type="saturate"
|
||||
result="colormatrix1"
|
||||
id="feColorMatrix852" />
|
||||
<feFlood
|
||||
flood-opacity="1"
|
||||
flood-color="rgb(243,115,41)"
|
||||
result="flood1"
|
||||
id="feFlood854" />
|
||||
<feBlend
|
||||
in="flood1"
|
||||
in2="colormatrix1"
|
||||
mode="normal"
|
||||
result="blend1"
|
||||
id="feBlend856" />
|
||||
<feBlend
|
||||
in2="blend1"
|
||||
mode="normal"
|
||||
result="blend2"
|
||||
id="feBlend858" />
|
||||
<feColorMatrix
|
||||
in="blend2"
|
||||
values="1"
|
||||
type="saturate"
|
||||
result="colormatrix2"
|
||||
id="feColorMatrix860" />
|
||||
<feComposite
|
||||
in="colormatrix2"
|
||||
in2="SourceGraphic"
|
||||
operator="in"
|
||||
k2="1"
|
||||
result="fbSourceGraphic"
|
||||
id="feComposite862" />
|
||||
<feColorMatrix
|
||||
result="fbSourceGraphicAlpha"
|
||||
in="fbSourceGraphic"
|
||||
values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
|
||||
id="feColorMatrix866" />
|
||||
<feComposite
|
||||
in2="fbSourceGraphic"
|
||||
id="feComposite868"
|
||||
operator="arithmetic"
|
||||
k1="1"
|
||||
k2="1"
|
||||
result="composite1"
|
||||
in="fbSourceGraphic" />
|
||||
<feColorMatrix
|
||||
id="feColorMatrix870"
|
||||
in="composite1"
|
||||
values="1"
|
||||
type="saturate"
|
||||
result="colormatrix1" />
|
||||
<feFlood
|
||||
id="feFlood872"
|
||||
flood-opacity="1"
|
||||
flood-color="rgb(243,115,41)"
|
||||
result="flood1" />
|
||||
<feBlend
|
||||
in2="colormatrix1"
|
||||
id="feBlend874"
|
||||
in="flood1"
|
||||
mode="normal"
|
||||
result="blend1" />
|
||||
<feBlend
|
||||
in2="blend1"
|
||||
id="feBlend876"
|
||||
mode="normal"
|
||||
result="blend2" />
|
||||
<feColorMatrix
|
||||
id="feColorMatrix878"
|
||||
in="blend2"
|
||||
values="1"
|
||||
type="saturate"
|
||||
result="colormatrix2" />
|
||||
<feComposite
|
||||
in2="fbSourceGraphic"
|
||||
id="feComposite880"
|
||||
in="colormatrix2"
|
||||
operator="in"
|
||||
k2="1"
|
||||
result="composite2" />
|
||||
</filter>
|
||||
<filter
|
||||
style="color-interpolation-filters:sRGB"
|
||||
inkscape:label="Blur"
|
||||
id="filter5149">
|
||||
<feGaussianBlur
|
||||
stdDeviation="2 2"
|
||||
result="blur"
|
||||
id="feGaussianBlur5147" />
|
||||
</filter>
|
||||
</defs>
|
||||
<metadata
|
||||
id="metadata4410">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
id="g4173">
|
||||
<g
|
||||
transform="matrix(1.1578952,0,0,0.57142859,-3.789476,19.142856)"
|
||||
id="g3712-0"
|
||||
style="opacity:0.4">
|
||||
<rect
|
||||
width="5"
|
||||
height="7"
|
||||
x="38"
|
||||
y="40"
|
||||
id="rect2801-4"
|
||||
style="fill:url(#radialGradient3013-896);fill-opacity:1;stroke:none" />
|
||||
<rect
|
||||
width="5"
|
||||
height="7"
|
||||
x="-10"
|
||||
y="-47"
|
||||
transform="scale(-1,-1)"
|
||||
id="rect3696-8"
|
||||
style="fill:url(#radialGradient3015-826);fill-opacity:1;stroke:none" />
|
||||
<rect
|
||||
width="28"
|
||||
height="7.0000005"
|
||||
x="10"
|
||||
y="40"
|
||||
id="rect3700-7"
|
||||
style="fill:url(#linearGradient4395);fill-opacity:1;stroke:none" />
|
||||
</g>
|
||||
<rect
|
||||
width="39"
|
||||
height="39"
|
||||
rx="2"
|
||||
ry="2"
|
||||
x="4.5000067"
|
||||
y="5.5"
|
||||
id="rect5505-21"
|
||||
style="color:#000000;fill:url(#radialGradient4144);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;filter:url(#filter864)" />
|
||||
<rect
|
||||
width="37"
|
||||
height="37"
|
||||
rx="1"
|
||||
ry="1"
|
||||
x="5.5000081"
|
||||
y="6.5"
|
||||
id="rect6741-1"
|
||||
style="opacity:0.3;fill:none;stroke:url(#linearGradient3153);stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
|
||||
<rect
|
||||
width="39"
|
||||
height="39"
|
||||
rx="2"
|
||||
ry="2"
|
||||
x="4.5000081"
|
||||
y="5.5"
|
||||
id="rect5505-21-6"
|
||||
style="opacity:0.5;color:#000000;fill:none;stroke:#0e141f;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
|
||||
<g
|
||||
transform="matrix(0.23281432,0,0,0.23281432,7.4934636,9.9339976)"
|
||||
id="g5216">
|
||||
<g
|
||||
id="g5198"
|
||||
style="fill:#000000;opacity:0.56">
|
||||
<g
|
||||
style="fill:#000000;filter:url(#filter5149)"
|
||||
transform="translate(0,2)"
|
||||
id="g3885-3">
|
||||
<g
|
||||
style="fill:#000000"
|
||||
id="g3881-6">
|
||||
<path
|
||||
style="fill:#000000"
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 70.9,86.1 c 11.7,0 21.2,-9.5 21.2,-21.2 0,-0.6 -0.5,-1.1 -1.1,-1.1 h -8 c -0.6,0 -1.1,0.5 -1.1,1.1 0,6 -4.9,11 -11,11 -6,0 -11,-4.9 -11,-11 0,-0.6 -0.5,-1.1 -1.1,-1.1 h -8 c -0.6,0 -1.1,0.5 -1.1,1.1 0,11.7 9.5,21.2 21.2,21.2 z"
|
||||
id="path3875-7" />
|
||||
<path
|
||||
style="fill:#000000"
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 70.9,106.1 c 22.7,0 41.2,-18.5 41.2,-41.2 0,-0.6 -0.5,-1.1 -1.1,-1.1 h -8 c -0.6,0 -1.1,0.5 -1.1,1.1 0,17.1 -13.9,31 -31,31 -17.1,0 -31,-13.9 -31,-31 0,-0.6 -0.5,-1.1 -1.1,-1.1 h -8 c -0.6,0 -1.1,0.5 -1.1,1.1 -0.1,22.7 18.4,41.2 41.2,41.2 z"
|
||||
id="path3877-5" />
|
||||
<path
|
||||
style="fill:#000000"
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 131.1,63.8 h -8 c -0.6,0 -1.1,0.5 -1.1,1.1 C 122,93.1 99,116 70.9,116 42.7,116 19.8,93.1 19.8,64.9 c 0,-0.6 -0.5,-1.1 -1.1,-1.1 h -8 c -0.6,0 -1.1,0.5 -1.1,1.1 0,33.8 27.5,61.3 61.3,61.3 33.8,0 61.3,-27.5 61.3,-61.3 0,-0.6 -0.5,-1.1 -1.1,-1.1 z"
|
||||
id="path3879-3" />
|
||||
</g>
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
transform="matrix(1.9664647,0,0,1.0309994,34.431968,27.47427)"
|
||||
style="fill:#000000;fill-opacity:1;stroke:#b3b3b3;stroke-width:1.42147171;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
|
||||
inkscape:transform-center-y="3.7671951"
|
||||
d="M 18.519545,37.212943 12.19076,26.251167 5.8619763,15.289392 H 18.519545 31.177113 l -6.328784,10.961776 z"
|
||||
id="path3894-5" />
|
||||
<rect
|
||||
style="fill:#000000;fill-opacity:1"
|
||||
id="rect3896-6"
|
||||
width="22.08753"
|
||||
height="39.757553"
|
||||
x="59.806232"
|
||||
y="7.8155875"
|
||||
ry="2.0388491" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
style="fill:#ffffff;"
|
||||
id="g3885">
|
||||
<g
|
||||
id="g5182">
|
||||
<g
|
||||
id="g3881"
|
||||
style="fill:#ffffff">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 70.9,86.1 c 11.7,0 21.2,-9.5 21.2,-21.2 0,-0.6 -0.5,-1.1 -1.1,-1.1 h -8 c -0.6,0 -1.1,0.5 -1.1,1.1 0,6 -4.9,11 -11,11 -6,0 -11,-4.9 -11,-11 0,-0.6 -0.5,-1.1 -1.1,-1.1 h -8 c -0.6,0 -1.1,0.5 -1.1,1.1 0,11.7 9.5,21.2 21.2,21.2 z"
|
||||
id="path3875"
|
||||
style="fill:#ffffff" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 70.9,106.1 c 22.7,0 41.2,-18.5 41.2,-41.2 0,-0.6 -0.5,-1.1 -1.1,-1.1 h -8 c -0.6,0 -1.1,0.5 -1.1,1.1 0,17.1 -13.9,31 -31,31 -17.1,0 -31,-13.9 -31,-31 0,-0.6 -0.5,-1.1 -1.1,-1.1 h -8 c -0.6,0 -1.1,0.5 -1.1,1.1 -0.1,22.7 18.4,41.2 41.2,41.2 z"
|
||||
id="path3877"
|
||||
style="fill:#ffffff" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 131.1,63.8 h -8 c -0.6,0 -1.1,0.5 -1.1,1.1 C 122,93.1 99,116 70.9,116 42.7,116 19.8,93.1 19.8,64.9 c 0,-0.6 -0.5,-1.1 -1.1,-1.1 h -8 c -0.6,0 -1.1,0.5 -1.1,1.1 0,33.8 27.5,61.3 61.3,61.3 33.8,0 61.3,-27.5 61.3,-61.3 0,-0.6 -0.5,-1.1 -1.1,-1.1 z"
|
||||
id="path3879"
|
||||
style="fill:#ffffff" />
|
||||
</g>
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
transform="matrix(1.9664647,0,0,1.0309994,34.431968,27.47427)"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:1.42147171;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
|
||||
inkscape:transform-center-y="3.7671951"
|
||||
d="M 18.519545,37.212943 12.19076,26.251167 5.8619763,15.289392 H 18.519545 31.177113 l -6.328784,10.961776 z"
|
||||
id="path3894" />
|
||||
<rect
|
||||
style="fill:#ffffff;fill-opacity:1"
|
||||
id="rect3896"
|
||||
width="22.08753"
|
||||
height="39.757553"
|
||||
x="59.806232"
|
||||
y="7.8155875"
|
||||
ry="2.0388491" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 15 KiB |
|
@ -0,0 +1,409 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
id="svg4332"
|
||||
height="64px"
|
||||
width="64px"
|
||||
inkscape:version="0.92.3 (2405546, 2018-03-11)"
|
||||
sodipodi:docname="64.svg">
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1017"
|
||||
id="namedview46"
|
||||
showgrid="true"
|
||||
inkscape:zoom="5.6568543"
|
||||
inkscape:cx="-32.649098"
|
||||
inkscape:cy="32.589592"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="30"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="g4178">
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid4203"
|
||||
empspacing="4" />
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid4187"
|
||||
empspacing="2"
|
||||
spacingx="0.5"
|
||||
spacingy="0.5"
|
||||
color="#ff3fff"
|
||||
opacity="0.29803922"
|
||||
empcolor="#3fffff"
|
||||
empopacity="0.1372549" />
|
||||
</sodipodi:namedview>
|
||||
<defs
|
||||
id="defs4334">
|
||||
<linearGradient
|
||||
x1="38.856056"
|
||||
y1="26.320496"
|
||||
x2="38.856056"
|
||||
y2="32.521935"
|
||||
id="linearGradient4225-5"
|
||||
xlink:href="#linearGradient4213-9"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.99215968,0,0,-0.9932415,0.25417006,63.794031)" />
|
||||
<linearGradient
|
||||
id="linearGradient4213-9">
|
||||
<stop
|
||||
id="stop4215-4"
|
||||
style="stop-color:#000000;stop-opacity:1"
|
||||
offset="0" />
|
||||
<stop
|
||||
id="stop4217-1"
|
||||
style="stop-color:#000000;stop-opacity:0"
|
||||
offset="1" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
y2="42.091705"
|
||||
x2="23.99999"
|
||||
y1="5.9093657"
|
||||
x1="23.99999"
|
||||
gradientTransform="matrix(1.4324324,0,0,1.4362832,-2.3783747,-2.4707827)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="linearGradient3904"
|
||||
xlink:href="#linearGradient4270" />
|
||||
<linearGradient
|
||||
id="linearGradient4270">
|
||||
<stop
|
||||
id="stop4272"
|
||||
style="stop-color:#ffffff;stop-opacity:1"
|
||||
offset="0" />
|
||||
<stop
|
||||
id="stop4274"
|
||||
style="stop-color:#ffffff;stop-opacity:0.23529412"
|
||||
offset="0.0348749" />
|
||||
<stop
|
||||
id="stop4276"
|
||||
style="stop-color:#ffffff;stop-opacity:0.15686275"
|
||||
offset="0.96216321" />
|
||||
<stop
|
||||
id="stop4278"
|
||||
style="stop-color:#ffffff;stop-opacity:0.39215687"
|
||||
offset="1" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
r="12.671875"
|
||||
fy="9.9571075"
|
||||
fx="6.2001843"
|
||||
cy="9.9571075"
|
||||
cx="6.7304144"
|
||||
gradientTransform="matrix(0,13.393984,-16.443533,0,196.90205,-114.89368)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient4147"
|
||||
xlink:href="#linearGradient2867-449-88-871-390-598-476-591-434-148-57-177-8-3-3-6-4-8-8-8-5" />
|
||||
<linearGradient
|
||||
id="linearGradient2867-449-88-871-390-598-476-591-434-148-57-177-8-3-3-6-4-8-8-8-5">
|
||||
<stop
|
||||
id="stop3750-1-0-7-6-6-1-3-9-3"
|
||||
style="stop-color:#95a3ab;stop-opacity:1"
|
||||
offset="0" />
|
||||
<stop
|
||||
id="stop3752-3-7-4-0-32-8-923-0-7"
|
||||
style="stop-color:#667885;stop-opacity:1"
|
||||
offset="0.26238" />
|
||||
<stop
|
||||
id="stop3754-1-8-5-2-7-6-7-1-9"
|
||||
style="stop-color:#485a6c;stop-opacity:1"
|
||||
offset="0.704952" />
|
||||
<stop
|
||||
id="stop3756-1-6-2-6-6-1-96-6-0"
|
||||
style="stop-color:#273445;stop-opacity:1"
|
||||
offset="1" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
gradientTransform="matrix(2.003784,0,0,1.4,27.98813,-17.4)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
xlink:href="#linearGradient3688-166-749-654"
|
||||
id="radialGradient2873-966-168-714"
|
||||
fy="43.5"
|
||||
fx="4.9929786"
|
||||
r="2.5"
|
||||
cy="43.5"
|
||||
cx="4.9929786" />
|
||||
<linearGradient
|
||||
id="linearGradient3688-166-749-654">
|
||||
<stop
|
||||
offset="0"
|
||||
style="stop-color:#181818;stop-opacity:1"
|
||||
id="stop3088" />
|
||||
<stop
|
||||
offset="1"
|
||||
style="stop-color:#181818;stop-opacity:0"
|
||||
id="stop3090" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
gradientTransform="matrix(2.003784,0,0,1.4,-20.01187,-104.4)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
xlink:href="#linearGradient3688-464-309-604"
|
||||
id="radialGradient2875-742-326-419"
|
||||
fy="43.5"
|
||||
fx="4.9929786"
|
||||
r="2.5"
|
||||
cy="43.5"
|
||||
cx="4.9929786" />
|
||||
<linearGradient
|
||||
id="linearGradient3688-464-309-604">
|
||||
<stop
|
||||
offset="0"
|
||||
style="stop-color:#181818;stop-opacity:1"
|
||||
id="stop3094" />
|
||||
<stop
|
||||
offset="1"
|
||||
style="stop-color:#181818;stop-opacity:0"
|
||||
id="stop3096" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
gradientUnits="userSpaceOnUse"
|
||||
xlink:href="#linearGradient3702-501-757-795"
|
||||
id="linearGradient2877-634-617-908"
|
||||
y2="39.999443"
|
||||
x2="25.058096"
|
||||
y1="47.027729"
|
||||
x1="25.058096" />
|
||||
<linearGradient
|
||||
id="linearGradient3702-501-757-795">
|
||||
<stop
|
||||
offset="0"
|
||||
style="stop-color:#181818;stop-opacity:0"
|
||||
id="stop3100" />
|
||||
<stop
|
||||
offset="0.5"
|
||||
style="stop-color:#181818;stop-opacity:1"
|
||||
id="stop3102" />
|
||||
<stop
|
||||
offset="1"
|
||||
style="stop-color:#181818;stop-opacity:0"
|
||||
id="stop3104" />
|
||||
</linearGradient>
|
||||
<filter
|
||||
style="color-interpolation-filters:sRGB;"
|
||||
inkscape:label="Colorize"
|
||||
id="filter880">
|
||||
<feComposite
|
||||
in2="SourceGraphic"
|
||||
operator="arithmetic"
|
||||
k1="1"
|
||||
k2="1"
|
||||
result="composite1"
|
||||
id="feComposite866" />
|
||||
<feColorMatrix
|
||||
in="composite1"
|
||||
values="1"
|
||||
type="saturate"
|
||||
result="colormatrix1"
|
||||
id="feColorMatrix868" />
|
||||
<feFlood
|
||||
flood-opacity="1"
|
||||
flood-color="rgb(243,115,41)"
|
||||
result="flood1"
|
||||
id="feFlood870" />
|
||||
<feBlend
|
||||
in="flood1"
|
||||
in2="colormatrix1"
|
||||
mode="normal"
|
||||
result="blend1"
|
||||
id="feBlend872" />
|
||||
<feBlend
|
||||
in2="blend1"
|
||||
mode="normal"
|
||||
result="blend2"
|
||||
id="feBlend874" />
|
||||
<feColorMatrix
|
||||
in="blend2"
|
||||
values="1"
|
||||
type="saturate"
|
||||
result="colormatrix2"
|
||||
id="feColorMatrix876" />
|
||||
<feComposite
|
||||
in="colormatrix2"
|
||||
in2="SourceGraphic"
|
||||
operator="in"
|
||||
k2="1"
|
||||
result="composite2"
|
||||
id="feComposite878" />
|
||||
</filter>
|
||||
<filter
|
||||
style="color-interpolation-filters:sRGB"
|
||||
inkscape:label="Blur"
|
||||
id="filter5149">
|
||||
<feGaussianBlur
|
||||
stdDeviation="2 2"
|
||||
result="blur"
|
||||
id="feGaussianBlur5147" />
|
||||
</filter>
|
||||
</defs>
|
||||
<metadata
|
||||
id="metadata4337">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
id="g4178">
|
||||
<g
|
||||
style="opacity:0.4"
|
||||
id="g3712"
|
||||
transform="matrix(1.5789502,0,0,0.7142857,-5.8947511,28.428574)">
|
||||
<rect
|
||||
style="fill:url(#radialGradient2873-966-168-714);fill-opacity:1;stroke:none"
|
||||
id="rect2801"
|
||||
y="40"
|
||||
x="38"
|
||||
height="7"
|
||||
width="5" />
|
||||
<rect
|
||||
style="fill:url(#radialGradient2875-742-326-419);fill-opacity:1;stroke:none"
|
||||
id="rect3696"
|
||||
transform="scale(-1,-1)"
|
||||
y="-47"
|
||||
x="-10"
|
||||
height="7"
|
||||
width="5" />
|
||||
<rect
|
||||
style="fill:url(#linearGradient2877-634-617-908);fill-opacity:1;stroke:none"
|
||||
id="rect3700"
|
||||
y="40"
|
||||
x="10"
|
||||
height="7.0000005"
|
||||
width="28" />
|
||||
</g>
|
||||
<rect
|
||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:url(#radialGradient4147);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994;marker:none;enable-background:accumulate;filter:url(#filter880)"
|
||||
id="rect5505-21-3-8-5-2-9"
|
||||
y="4.5"
|
||||
x="4.5"
|
||||
ry="3"
|
||||
rx="3"
|
||||
height="55"
|
||||
width="55" />
|
||||
<rect
|
||||
width="53"
|
||||
height="53.142479"
|
||||
rx="2"
|
||||
ry="2"
|
||||
x="5.5"
|
||||
y="5.428761"
|
||||
id="rect6741"
|
||||
style="opacity:0.3;fill:none;stroke:url(#linearGradient3904);stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
|
||||
<rect
|
||||
width="55"
|
||||
height="55"
|
||||
rx="3"
|
||||
ry="3"
|
||||
x="4.5"
|
||||
y="4.5"
|
||||
id="rect5505-21-9"
|
||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:0.5;fill:none;stroke:#0e141f;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
|
||||
<g
|
||||
transform="matrix(0.33544265,0,0,0.33544265,8.2171145,10.851843)"
|
||||
id="g5216">
|
||||
<g
|
||||
id="g5198">
|
||||
<g
|
||||
style="fill:#666666;filter:url(#filter5149)"
|
||||
transform="translate(0,2)"
|
||||
id="g3885-3">
|
||||
<g
|
||||
style="fill:#666666"
|
||||
id="g3881-6">
|
||||
<path
|
||||
style="fill:#666666"
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 70.9,86.1 c 11.7,0 21.2,-9.5 21.2,-21.2 0,-0.6 -0.5,-1.1 -1.1,-1.1 h -8 c -0.6,0 -1.1,0.5 -1.1,1.1 0,6 -4.9,11 -11,11 -6,0 -11,-4.9 -11,-11 0,-0.6 -0.5,-1.1 -1.1,-1.1 h -8 c -0.6,0 -1.1,0.5 -1.1,1.1 0,11.7 9.5,21.2 21.2,21.2 z"
|
||||
id="path3875-7" />
|
||||
<path
|
||||
style="fill:#666666"
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 70.9,106.1 c 22.7,0 41.2,-18.5 41.2,-41.2 0,-0.6 -0.5,-1.1 -1.1,-1.1 h -8 c -0.6,0 -1.1,0.5 -1.1,1.1 0,17.1 -13.9,31 -31,31 -17.1,0 -31,-13.9 -31,-31 0,-0.6 -0.5,-1.1 -1.1,-1.1 h -8 c -0.6,0 -1.1,0.5 -1.1,1.1 -0.1,22.7 18.4,41.2 41.2,41.2 z"
|
||||
id="path3877-5" />
|
||||
<path
|
||||
style="fill:#666666"
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 131.1,63.8 h -8 c -0.6,0 -1.1,0.5 -1.1,1.1 C 122,93.1 99,116 70.9,116 42.7,116 19.8,93.1 19.8,64.9 c 0,-0.6 -0.5,-1.1 -1.1,-1.1 h -8 c -0.6,0 -1.1,0.5 -1.1,1.1 0,33.8 27.5,61.3 61.3,61.3 33.8,0 61.3,-27.5 61.3,-61.3 0,-0.6 -0.5,-1.1 -1.1,-1.1 z"
|
||||
id="path3879-3" />
|
||||
</g>
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
transform="matrix(1.9664647,0,0,1.0309994,34.431968,27.47427)"
|
||||
style="fill:#666666;fill-opacity:1;stroke:#b3b3b3;stroke-width:1.42147171;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
|
||||
inkscape:transform-center-y="3.7671951"
|
||||
d="M 18.519545,37.212943 12.19076,26.251167 5.8619763,15.289392 H 18.519545 31.177113 l -6.328784,10.961776 z"
|
||||
id="path3894-5" />
|
||||
<rect
|
||||
style="fill:#666666;fill-opacity:1"
|
||||
id="rect3896-6"
|
||||
width="22.08753"
|
||||
height="39.757553"
|
||||
x="59.806232"
|
||||
y="7.8155875"
|
||||
ry="2.0388491" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
style="fill:#ffffff"
|
||||
id="g3885">
|
||||
<g
|
||||
id="g5182">
|
||||
<g
|
||||
id="g3881"
|
||||
style="fill:#ffffff">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 70.9,86.1 c 11.7,0 21.2,-9.5 21.2,-21.2 0,-0.6 -0.5,-1.1 -1.1,-1.1 h -8 c -0.6,0 -1.1,0.5 -1.1,1.1 0,6 -4.9,11 -11,11 -6,0 -11,-4.9 -11,-11 0,-0.6 -0.5,-1.1 -1.1,-1.1 h -8 c -0.6,0 -1.1,0.5 -1.1,1.1 0,11.7 9.5,21.2 21.2,21.2 z"
|
||||
id="path3875"
|
||||
style="fill:#ffffff" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 70.9,106.1 c 22.7,0 41.2,-18.5 41.2,-41.2 0,-0.6 -0.5,-1.1 -1.1,-1.1 h -8 c -0.6,0 -1.1,0.5 -1.1,1.1 0,17.1 -13.9,31 -31,31 -17.1,0 -31,-13.9 -31,-31 0,-0.6 -0.5,-1.1 -1.1,-1.1 h -8 c -0.6,0 -1.1,0.5 -1.1,1.1 -0.1,22.7 18.4,41.2 41.2,41.2 z"
|
||||
id="path3877"
|
||||
style="fill:#ffffff" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 131.1,63.8 h -8 c -0.6,0 -1.1,0.5 -1.1,1.1 C 122,93.1 99,116 70.9,116 42.7,116 19.8,93.1 19.8,64.9 c 0,-0.6 -0.5,-1.1 -1.1,-1.1 h -8 c -0.6,0 -1.1,0.5 -1.1,1.1 0,33.8 27.5,61.3 61.3,61.3 33.8,0 61.3,-27.5 61.3,-61.3 0,-0.6 -0.5,-1.1 -1.1,-1.1 z"
|
||||
id="path3879"
|
||||
style="fill:#ffffff" />
|
||||
</g>
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
transform="matrix(1.9664647,0,0,1.0309994,34.431968,27.47427)"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:1.42147171;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
|
||||
inkscape:transform-center-y="3.7671951"
|
||||
d="M 18.519545,37.212943 12.19076,26.251167 5.8619763,15.289392 H 18.519545 31.177113 l -6.328784,10.961776 z"
|
||||
id="path3894" />
|
||||
<rect
|
||||
style="fill:#ffffff;fill-opacity:1"
|
||||
id="rect3896"
|
||||
width="22.08753"
|
||||
height="39.757553"
|
||||
x="59.806232"
|
||||
y="7.8155875"
|
||||
ry="2.0388491" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 14 KiB |
|
@ -0,0 +1,7 @@
|
|||
cargo build --release
|
||||
sudo cp target/release/mobydick $PREFIX/bin/xyz.gelez.mobydick
|
||||
sudo cp *.appdata.xml $PREFIX/share/appdata/
|
||||
sudo cp *.desktop $PREFIX/share/applications/
|
||||
for s in "16" "24" "32" "48" "64" "128"; do
|
||||
sudo cp icons/$s.svg $PREFIX/share/icons/hicolor/${s}x${s}/mobydick.svg
|
||||
done
|
After Width: | Height: | Size: 111 KiB |
After Width: | Height: | Size: 125 KiB |
29
src/api.rs
|
@ -74,22 +74,6 @@ impl Worker for Req {
|
|||
}
|
||||
}
|
||||
|
||||
#[derive(Deserialize)]
|
||||
#[serde(untagged)]
|
||||
pub enum ApiResult<T> {
|
||||
Ok(T),
|
||||
Err
|
||||
}
|
||||
|
||||
impl<T> Into<Result<T, ()>> for ApiResult<T> {
|
||||
fn into(self) -> Result<T, ()> {
|
||||
match self {
|
||||
ApiResult::Ok(t) => Ok(t),
|
||||
ApiResult::Err => Err(()),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Deserialize, Serialize)]
|
||||
pub struct LoginData {
|
||||
pub password: String,
|
||||
|
@ -172,3 +156,16 @@ pub struct AlbumTrack {
|
|||
pub listen_url: String,
|
||||
}
|
||||
|
||||
impl AlbumTrack {
|
||||
pub fn into_full(self, album: &Album) -> Track {
|
||||
let mut album = album.clone();
|
||||
album.tracks = None;
|
||||
Track {
|
||||
album: album,
|
||||
id: self.id,
|
||||
title: self.title,
|
||||
artist: self.artist,
|
||||
listen_url: self.listen_url,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
135
src/main.rs
|
@ -1,5 +1,6 @@
|
|||
use gtk::{self, prelude::*, *};
|
||||
use std::{
|
||||
collections::HashMap,
|
||||
cell::RefCell,
|
||||
rc::Rc,
|
||||
sync::{Arc, Mutex},
|
||||
|
@ -70,22 +71,78 @@ mod ui;
|
|||
#[derive(Debug)]
|
||||
pub struct AppState {
|
||||
stack: Stack,
|
||||
err_revealer: Revealer,
|
||||
err_label: Label,
|
||||
downloads: Arc<RefCell<Vec<Download>>>,
|
||||
error: InfoBar,
|
||||
header: HeaderBar,
|
||||
}
|
||||
|
||||
pub type State = Rc<RefCell<AppState>>;
|
||||
|
||||
#[derive(Debug, Clone, PartialEq)]
|
||||
pub enum DlStatus {
|
||||
Planned,
|
||||
Started,
|
||||
Done,
|
||||
Cancelled,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone)]
|
||||
pub struct Download {
|
||||
url: String,
|
||||
done: bool,
|
||||
status: DlStatus,
|
||||
output: PathBuf,
|
||||
track: api::Track,
|
||||
}
|
||||
|
||||
lazy_static! {
|
||||
static ref DOWNLOADS: Arc<Mutex<Vec<Download>>> = Arc::new(Mutex::new(vec![]));
|
||||
impl Download {
|
||||
pub fn ended(&mut self, out: PathBuf) {
|
||||
self.status = DlStatus::Done;
|
||||
self.output = out;
|
||||
}
|
||||
}
|
||||
|
||||
lazy_static::lazy_static! {
|
||||
static ref DOWNLOADS: Arc<Mutex<HashMap<i32, Download>>> = Arc::new(Mutex::new(HashMap::new()));
|
||||
|
||||
static ref DL_JOBS: workerpool::Pool<TrackDl> = workerpool::Pool::new(5);
|
||||
}
|
||||
|
||||
#[derive(Default)]
|
||||
struct TrackDl;
|
||||
|
||||
impl workerpool::Worker for TrackDl {
|
||||
type Input = Download;
|
||||
type Output = ();
|
||||
|
||||
fn execute(&mut self, dl: Self::Input) -> Self::Output {
|
||||
if dl.status == DlStatus::Cancelled {
|
||||
return;
|
||||
}
|
||||
|
||||
{
|
||||
let mut dls = DOWNLOADS.lock().unwrap();
|
||||
let mut dl = dls.get_mut(&dl.track.id).unwrap();
|
||||
dl.status = DlStatus::Started;
|
||||
}
|
||||
|
||||
let mut res = client!().get(&dl.url).send().unwrap();
|
||||
|
||||
let ext = res.headers()
|
||||
.get(reqwest::header::CONTENT_DISPOSITION).and_then(|h| h.to_str().ok())
|
||||
.unwrap_or(".mp3")
|
||||
.rsplitn(2, ".").next().unwrap_or("mp3");
|
||||
|
||||
fs::create_dir_all(dl.output.clone().parent().unwrap()).unwrap();
|
||||
let mut out = dl.output.clone();
|
||||
out.set_extension(ext);
|
||||
let mut file = fs::File::create(out.clone()).unwrap();
|
||||
|
||||
res.copy_to(&mut file).unwrap();
|
||||
|
||||
let mut dls = DOWNLOADS.lock().unwrap();
|
||||
if let Some(dl) = dls.get_mut(&dl.track.id) {
|
||||
dl.ended(out);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fn main() {
|
||||
|
@ -95,10 +152,11 @@ fn main() {
|
|||
}
|
||||
|
||||
let window = Window::new(WindowType::Toplevel);
|
||||
window.set_icon_from_file("icons/128.svg");
|
||||
window.set_title("Funkload");
|
||||
window.set_default_size(1080, 720);
|
||||
|
||||
let connected = fs::read("data.json").ok().and_then(|f| {
|
||||
let connected = fs::read(dirs::config_dir().unwrap().join("mobydick").join("data.json")).ok().and_then(|f| {
|
||||
let json: serde_json::Value = serde_json::from_slice(&f).ok()?;
|
||||
let mut api_ctx = crate::api::API.lock().ok()?;
|
||||
let mut ctx = api::RequestContext::new(json["instance"].as_str()?.to_string());
|
||||
|
@ -108,37 +166,74 @@ fn main() {
|
|||
Some(())
|
||||
}).is_some();
|
||||
|
||||
let err_revealer = Revealer::new();
|
||||
let err_label = Label::new("Error");
|
||||
err_revealer.add(&err_label);
|
||||
let state = Rc::new(RefCell::new(AppState {
|
||||
stack: Stack::new(),
|
||||
err_revealer: err_revealer,
|
||||
err_label: err_label,
|
||||
downloads: Arc::new(RefCell::new(Vec::new())),
|
||||
stack: {
|
||||
let s = Stack::new();
|
||||
s.set_vexpand(true);
|
||||
s
|
||||
},
|
||||
error: {
|
||||
let error = InfoBar::new();
|
||||
error.set_revealed(false);
|
||||
error.set_message_type(MessageType::Error);
|
||||
error.get_content_area().unwrap().downcast::<gtk::Box>().unwrap().add(&Label::new("Test test"));
|
||||
error.set_show_close_button(true);
|
||||
error.connect_close(|e| e.set_revealed(false));
|
||||
error.connect_response(|e, _| e.set_revealed(false));
|
||||
error
|
||||
},
|
||||
header: {
|
||||
let h = HeaderBar::new();
|
||||
h.set_show_close_button(true);
|
||||
h.set_title("Funkload");
|
||||
h
|
||||
},
|
||||
}));
|
||||
|
||||
let login_page = ui::login_page::render(state.clone());
|
||||
let main_box = gtk::Box::new(Orientation::Vertical, 0);
|
||||
main_box.add(&state.borrow().error);
|
||||
main_box.add(&state.borrow().stack);
|
||||
|
||||
state.borrow().stack.add_named(&login_page, "login");
|
||||
let scrolled = ScrolledWindow::new(None, None);
|
||||
scrolled.add(&state.borrow().stack);
|
||||
scrolled.add(&main_box);
|
||||
window.add(&scrolled);
|
||||
window.set_titlebar(&state.borrow().header);
|
||||
window.show_all();
|
||||
|
||||
if connected {
|
||||
let main_page = ui::main_page::render();
|
||||
state.borrow().stack.add_named(&main_page, "main");
|
||||
let main_page = ui::main_page::render(&state.borrow().header, &{
|
||||
let s = StackSwitcher::new();
|
||||
s.set_stack(&state.borrow().stack);
|
||||
s
|
||||
});
|
||||
state.borrow().stack.add_titled(&main_page, "main", "Search Music");
|
||||
state.borrow().stack.add_titled(&*ui::dl_list::render().borrow(), "downloads", "Downloads");
|
||||
state.borrow().stack.set_visible_child_name("main");
|
||||
} else {
|
||||
let login_page = ui::login_page::render(state.clone());
|
||||
state.borrow().stack.add_named(&login_page, "login");
|
||||
}
|
||||
|
||||
window.connect_delete_event(move |_, _| {
|
||||
gtk::main_quit();
|
||||
|
||||
fs::write("data.json", serde_json::to_string(&client!().to_json()).unwrap()).unwrap();
|
||||
fs::write(
|
||||
dirs::config_dir().unwrap().join("mobydick").join("data.json"),
|
||||
serde_json::to_string(&client!().to_json()).unwrap()
|
||||
).unwrap();
|
||||
|
||||
Inhibit(false)
|
||||
});
|
||||
|
||||
gtk::main();
|
||||
}
|
||||
|
||||
fn show_error(state: State, msg: &str) {
|
||||
let b = state.borrow().error.get_content_area().unwrap().downcast::<gtk::Box>().unwrap();
|
||||
for ch in b.get_children() {
|
||||
b.remove(&ch);
|
||||
}
|
||||
b.add(&Label::new(msg));
|
||||
state.borrow().error.show_all();
|
||||
state.borrow().error.set_revealed(true);
|
||||
}
|
||||
|
|
164
src/ui/card.rs
|
@ -1,6 +1,6 @@
|
|||
use gtk::*;
|
||||
use std::{fs, thread, sync::mpsc::channel, rc::Rc, cell::RefCell};
|
||||
use crate::{Download, api::{self, execute}, ui::network_image::NetworkImage};
|
||||
use std::{thread, sync::mpsc::channel, rc::Rc, cell::RefCell};
|
||||
use crate::{Download, DlStatus, api, ui::network_image::NetworkImage};
|
||||
|
||||
pub fn render<T>(model: T) -> Rc<RefCell<Grid>> where T: CardModel + 'static {
|
||||
let card = Grid::new();
|
||||
|
@ -21,66 +21,107 @@ pub fn render<T>(model: T) -> Rc<RefCell<Grid>> where T: CardModel + 'static {
|
|||
sub_text.set_hexpand(true);
|
||||
sub_text.set_halign(Align::Start);
|
||||
|
||||
let dl_bt = Button::new_with_label("Download");
|
||||
dl_bt.set_valign(Align::Center);
|
||||
dl_bt.set_vexpand(true);
|
||||
dl_bt.get_style_context().map(|c| c.add_class("suggested-action"));
|
||||
rc!(card);
|
||||
if let Some(dl) = model.download_status() {
|
||||
match dl.status {
|
||||
DlStatus::Done => {
|
||||
let open_bt = Button::new_with_label("Play");
|
||||
open_bt.set_valign(Align::Center);
|
||||
open_bt.set_vexpand(true);
|
||||
open_bt.get_style_context().map(|c| c.add_class("suggested-action"));
|
||||
|
||||
rc!(dl_bt, card);
|
||||
{
|
||||
clone!(dl_bt, card);
|
||||
wait!({ // Fetch the list of files to download
|
||||
let (tx, rx) = channel();
|
||||
thread::spawn(move || {
|
||||
let dl_list = model.downloads();
|
||||
tx.send(dl_list).unwrap();
|
||||
});
|
||||
rx
|
||||
} => | const dl_list | {
|
||||
let dl_bt = dl_bt.borrow();
|
||||
println!("DLs: {:?}", dl_list);
|
||||
if dl_list.is_empty() { // Nothing to download
|
||||
dl_bt.set_label("Not available");
|
||||
dl_bt.set_sensitive(false);
|
||||
} else {
|
||||
clone!(dl_list);
|
||||
dl_bt.connect_clicked(move |_| {
|
||||
for dl in dl_list.clone() {
|
||||
thread::spawn(move || {
|
||||
let mut res = client!().get(&dl.url).send().unwrap();
|
||||
|
||||
let ext = res.headers()
|
||||
.get(reqwest::header::CONTENT_DISPOSITION).and_then(|h| h.to_str().ok())
|
||||
.unwrap_or(".mp3")
|
||||
.rsplitn(2, ".").next().unwrap_or("mp3");
|
||||
|
||||
fs::create_dir_all(dl.output.clone().parent().unwrap()).unwrap();
|
||||
let mut out = dl.output.clone();
|
||||
out.set_extension(ext);
|
||||
let mut file = fs::File::create(out).unwrap();
|
||||
|
||||
println!("saving {} in {:?}", dl.url.clone(), dl.output.clone());
|
||||
res.copy_to(&mut file).unwrap();
|
||||
println!("saved {:?}", dl.output);
|
||||
});
|
||||
}
|
||||
let out = dl.output.clone();
|
||||
open_bt.connect_clicked(move |_| {
|
||||
open::that(out.clone()).unwrap();
|
||||
println!("opened file");
|
||||
});
|
||||
}
|
||||
card.borrow().attach(&open_bt, 3, 0, 1, 2);
|
||||
|
||||
if dl_list.len() > 1 { // Not only one song
|
||||
let more_bt = Button::new_with_label("Details");
|
||||
more_bt.set_valign(Align::Center);
|
||||
more_bt.set_vexpand(true);
|
||||
card.borrow().attach(&more_bt, 2, 0, 1, 2);
|
||||
let open_bt = Button::new_with_label("View File");
|
||||
open_bt.set_valign(Align::Center);
|
||||
open_bt.set_vexpand(true);
|
||||
|
||||
let out = dl.output.clone();
|
||||
open_bt.connect_clicked(move |_| {
|
||||
open::that(out.parent().unwrap().clone()).unwrap();
|
||||
println!("opened folder");
|
||||
});
|
||||
card.borrow().attach(&open_bt, 2, 0, 1, 2);
|
||||
},
|
||||
DlStatus::Planned | DlStatus::Started => {
|
||||
let cancel_bt = Button::new_with_label("Cancel");
|
||||
cancel_bt.set_valign(Align::Center);
|
||||
cancel_bt.set_vexpand(true);
|
||||
cancel_bt.get_style_context().map(|c| c.add_class("destructive-action"));
|
||||
|
||||
let track_id = dl.track.id;
|
||||
cancel_bt.connect_clicked(move |_| {
|
||||
let mut dls = crate::DOWNLOADS.lock().unwrap();
|
||||
let mut dl = dls.get_mut(&track_id).unwrap();
|
||||
dl.status = DlStatus::Cancelled;
|
||||
println!("Cancelled");
|
||||
});
|
||||
card.borrow().attach(&cancel_bt, 3, 0, 1, 2);
|
||||
|
||||
if dl.status == DlStatus::Planned {
|
||||
sub_text.set_text(format!("{} — Waiting to download", model.subtext()).as_ref());
|
||||
} else {
|
||||
sub_text.set_text(format!("{} — Download in progress", model.subtext()).as_ref());
|
||||
}
|
||||
}
|
||||
});
|
||||
DlStatus::Cancelled => {
|
||||
sub_text.set_text(format!("{} — Cancelled", model.subtext()).as_ref());
|
||||
}
|
||||
}
|
||||
} else {
|
||||
let dl_bt = Button::new_with_label("Download");
|
||||
dl_bt.set_valign(Align::Center);
|
||||
dl_bt.set_vexpand(true);
|
||||
dl_bt.get_style_context().map(|c| c.add_class("suggested-action"));
|
||||
|
||||
rc!(dl_bt);
|
||||
{
|
||||
clone!(dl_bt, card);
|
||||
wait!({ // Fetch the list of files to download
|
||||
let (tx, rx) = channel();
|
||||
thread::spawn(move || {
|
||||
let dl_list = model.downloads();
|
||||
tx.send(dl_list).unwrap();
|
||||
});
|
||||
rx
|
||||
} => | const dl_list | {
|
||||
let dl_bt = dl_bt.borrow();
|
||||
if dl_list.is_empty() { // Nothing to download
|
||||
dl_bt.set_label("Not available");
|
||||
dl_bt.set_sensitive(false);
|
||||
} else {
|
||||
clone!(dl_list);
|
||||
dl_bt.connect_clicked(move |_| {
|
||||
for dl in dl_list.clone() {
|
||||
let mut dls = crate::DOWNLOADS.lock().unwrap();
|
||||
dls.insert(dl.track.id, dl.clone());
|
||||
|
||||
crate::DL_JOBS.execute(dl);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
if dl_list.len() > 1 { // Not only one song
|
||||
let more_bt = Button::new_with_label("Details");
|
||||
more_bt.set_valign(Align::Center);
|
||||
more_bt.set_vexpand(true);
|
||||
card.borrow().attach(&more_bt, 2, 0, 1, 2);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
card.borrow().attach(&*dl_bt.borrow(), 3, 0, 1, 2);
|
||||
}
|
||||
|
||||
{
|
||||
let card = card.borrow();
|
||||
card.attach(&main_text, 1, 0, 1, 1);
|
||||
card.attach(&sub_text, 1, 1, 1, 1);
|
||||
card.attach(&*dl_bt.borrow(), 3, 0, 1, 2);
|
||||
}
|
||||
|
||||
card
|
||||
|
@ -96,6 +137,10 @@ pub trait CardModel: Clone + Send + Sync {
|
|||
}
|
||||
|
||||
fn downloads(&self) -> Vec<Download>;
|
||||
|
||||
fn download_status(&self) -> Option<Download> {
|
||||
None
|
||||
}
|
||||
}
|
||||
|
||||
impl CardModel for api::Artist {
|
||||
|
@ -120,14 +165,15 @@ impl CardModel for api::Artist {
|
|||
.send().unwrap()
|
||||
.json().unwrap();
|
||||
|
||||
for track in album.tracks.unwrap_or_default() {
|
||||
for track in album.clone().tracks.unwrap_or_default() {
|
||||
dls.push(Download {
|
||||
url: track.listen_url.clone(),
|
||||
output: dirs::audio_dir().unwrap()
|
||||
.join(self.name.clone())
|
||||
.join(album.title.clone())
|
||||
.join(format!("{}.mp3", track.title.clone())),
|
||||
done: false,
|
||||
status: DlStatus::Planned,
|
||||
track: track.clone().into_full(&album),
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -156,7 +202,8 @@ impl CardModel for api::Album {
|
|||
.join(self.artist.name.clone())
|
||||
.join(self.title.clone())
|
||||
.join(format!("{}.mp3", track.title.clone())),
|
||||
done: false,
|
||||
status: DlStatus::Planned,
|
||||
track: track.clone().into_full(&self),
|
||||
}
|
||||
).collect()
|
||||
}
|
||||
|
@ -182,7 +229,12 @@ impl CardModel for api::Track {
|
|||
.join(self.artist.name.clone())
|
||||
.join(self.album.title.clone())
|
||||
.join(format!("{}.mp3", self.title.clone())),
|
||||
done: false,
|
||||
status: DlStatus::Planned,
|
||||
track: self.clone(),
|
||||
}]
|
||||
}
|
||||
|
||||
fn download_status(&self) -> Option<Download> {
|
||||
crate::DOWNLOADS.lock().ok()?.get(&self.id).map(|x| x.clone())
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,37 @@
|
|||
use gtk::{prelude::*, *};
|
||||
use std::{cell::RefCell, rc::Rc};
|
||||
use crate::{ui::card};
|
||||
|
||||
pub fn render() -> Rc<RefCell<gtk::Box>> {
|
||||
let cont = gtk::Box::new(Orientation::Vertical, 12);
|
||||
cont.set_valign(Align::Start);
|
||||
cont.set_margin_top(48);
|
||||
cont.set_margin_bottom(48);
|
||||
cont.set_margin_start(96);
|
||||
cont.set_margin_end(96);
|
||||
|
||||
let active = crate::DL_JOBS.active_count();
|
||||
rc!(cont, active);
|
||||
gtk::idle_add(clone!(cont => move || {
|
||||
let active_now = crate::DL_JOBS.active_count();
|
||||
if active_now != *active.borrow() {
|
||||
*active.borrow_mut() = active_now;
|
||||
|
||||
let cont = cont.borrow();
|
||||
for ch in cont.get_children() {
|
||||
cont.remove(&ch);
|
||||
}
|
||||
|
||||
let dl_list = {
|
||||
crate::DOWNLOADS.lock().unwrap().clone()
|
||||
};
|
||||
for (_, dl) in dl_list {
|
||||
cont.add(&*card::render(dl.track).borrow());
|
||||
}
|
||||
cont.show_all();
|
||||
}
|
||||
glib::Continue(true)
|
||||
}));
|
||||
cont.borrow().show_all();
|
||||
cont
|
||||
}
|
|
@ -34,15 +34,28 @@ pub fn render(state: State) -> gtk::Box {
|
|||
username: widgets.borrow().1.get_text().clone().unwrap(),
|
||||
password: widgets.borrow().2.get_text().clone().unwrap(),
|
||||
})) => |res| {
|
||||
let res: Result<_, _> = res.json::<ApiResult<LoginInfo>>().unwrap().into();
|
||||
let res: Result<LoginInfo, _> = res.json();
|
||||
|
||||
if let Some(ref mut client) = *crate::api::API.lock().unwrap() {
|
||||
client.auth(res.unwrap().token.clone());
|
||||
match res {
|
||||
Err(_) => crate::show_error(state.clone(), "Somehting went wrong, check your username and password, and the URL of your instance."),
|
||||
Ok(res) => {
|
||||
if let Some(ref mut client) = *crate::api::API.lock().unwrap() {
|
||||
client.auth(res.token.clone());
|
||||
}
|
||||
|
||||
let state = state.borrow();
|
||||
state.error.set_revealed(false);
|
||||
state.stack.add_titled(&crate::ui::main_page::render(&state.header, &{
|
||||
let s = StackSwitcher::new();
|
||||
s.set_stack(&state.stack);
|
||||
s
|
||||
}), "main", "Search Music");
|
||||
state.stack.set_visible_child_name("main");
|
||||
state.stack.add_titled(&*crate::ui::dl_list::render().borrow(), "downloads", "Downloads");
|
||||
state.stack.remove(&state.stack.get_child_by_name("login").unwrap()); // To avoid having a "Login" tab in the header
|
||||
state.stack.show_all();
|
||||
}
|
||||
}
|
||||
|
||||
state.borrow_mut().stack.add_named(&crate::ui::main_page::render(), "main");
|
||||
state.borrow_mut().stack.set_visible_child_name("main");
|
||||
state.borrow_mut().stack.show_all();
|
||||
});
|
||||
}));
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@ use std::{
|
|||
};
|
||||
use crate::{api::{self, execute}, ui::{title, card}};
|
||||
|
||||
pub fn render() -> gtk::Box {
|
||||
pub fn render(header: &HeaderBar, switcher: &StackSwitcher) -> gtk::Box {
|
||||
let cont = gtk::Box::new(Orientation::Vertical, 12);
|
||||
cont.set_margin_top(48);
|
||||
cont.set_margin_bottom(48);
|
||||
|
@ -16,12 +16,12 @@ pub fn render() -> gtk::Box {
|
|||
let avatar_path = dirs::cache_dir().unwrap().join("funkload").join("avatar.png");
|
||||
|
||||
let avatar = DrawingArea::new();
|
||||
avatar.set_size_request(128, 128);
|
||||
avatar.set_size_request(32, 32);
|
||||
avatar.set_halign(Align::Center);
|
||||
avatar.connect_draw(clone!(avatar_path => move |da, g| { // More or less stolen from Fractal (https://gitlab.gnome.org/GNOME/fractal/blob/master/fractal-gtk/src/widgets/avatar.rs)
|
||||
use std::f64::consts::PI;
|
||||
let width = 128.0f64;
|
||||
let height = 128.0f64;
|
||||
let width = 32.0f64;
|
||||
let height = 32.0f64;
|
||||
|
||||
g.set_antialias(cairo::Antialias::Best);
|
||||
|
||||
|
@ -37,8 +37,8 @@ pub fn render() -> gtk::Box {
|
|||
);
|
||||
g.clip();
|
||||
|
||||
let pb = gdk_pixbuf::Pixbuf::new_from_file_at_scale(avatar_path.clone(), 128, 128, true)
|
||||
.unwrap_or_else(|_| IconTheme::get_default().unwrap().load_icon("avatar-default", 128, IconLookupFlags::empty()).unwrap().unwrap());
|
||||
let pb = gdk_pixbuf::Pixbuf::new_from_file_at_scale(avatar_path.clone(), 32, 32, true)
|
||||
.unwrap_or_else(|_| IconTheme::get_default().unwrap().load_icon("avatar-default", 32, IconLookupFlags::empty()).unwrap().unwrap());
|
||||
|
||||
let hpos: f64 = (width - (pb.get_height()) as f64) / 2.0;
|
||||
g.set_source_pixbuf(&pb, 0.0, hpos);
|
||||
|
@ -48,10 +48,9 @@ pub fn render() -> gtk::Box {
|
|||
|
||||
Inhibit(false)
|
||||
}));
|
||||
cont.add(&avatar);
|
||||
let welcome = Label::new("Welcome.");
|
||||
welcome.get_style_context().map(|c| c.add_class("h1"));
|
||||
cont.add(&welcome);
|
||||
header.pack_start(&avatar);
|
||||
header.set_custom_title(&*switcher);
|
||||
header.show_all();
|
||||
|
||||
let search = SearchEntry::new();
|
||||
search.set_placeholder_text("Search");
|
||||
|
@ -61,12 +60,12 @@ pub fn render() -> gtk::Box {
|
|||
results.set_valign(Align::Start);
|
||||
cont.add(&results);
|
||||
|
||||
rc!(welcome, avatar, results);
|
||||
clone!(welcome, avatar, results, avatar_path);
|
||||
rc!(avatar, results);
|
||||
clone!(avatar, results, avatar_path);
|
||||
wait!(execute(client!().get("/api/v1/users/users/me")) => |res| {
|
||||
let res: api::UserInfo = res.json().unwrap();
|
||||
|
||||
welcome.borrow().set_text(format!("Welcome {}.", res.username).as_ref());
|
||||
avatar.borrow().set_tooltip_text(format!("Connected as {}.", res.username).as_ref());
|
||||
|
||||
clone!(avatar_path, avatar);
|
||||
wait!(execute(client!().get(&res.avatar.medium_square_crop.unwrap_or_default())) => |avatar_dl| {
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
use gtk::prelude::*;
|
||||
|
||||
pub mod card;
|
||||
pub mod dl_list;
|
||||
pub mod login_page;
|
||||
pub mod main_page;
|
||||
pub mod network_image;
|
||||
|
|
|
@ -0,0 +1,17 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<component type="addon">
|
||||
<id>xyz.gelez.mobydick</id>
|
||||
<name>Mobydick</name>
|
||||
<summary>Download music from your Funkwhale instance</summary>
|
||||
<screenshots>
|
||||
<screenshot type="default">
|
||||
<image>https://raw.githubusercontent.com/BaptisteGelez/mobydick/master/screen-main.png</image>
|
||||
</screenshot>
|
||||
<screenshot type="default">
|
||||
<image>https://raw.githubusercontent.com/BaptisteGelez/mobydick/master/screen-list.png</image>
|
||||
</screenshot>
|
||||
</screenshots>
|
||||
<url type="bugtracker">https://github.com/BaptisteGelez/mobydick/issues</url>
|
||||
<metadata_license>CC0-1.0</metadata_license>
|
||||
<project_license>GPL-3.0</project_license>
|
||||
</component>
|
|
@ -0,0 +1,10 @@
|
|||
[Desktop Entry]
|
||||
Name=Mobydick
|
||||
Comment=Download music from Funkwhale
|
||||
Exec=xyz.gelez.mobydick %U
|
||||
Icon=mobydick
|
||||
Keywords=Music;Funkwhale;
|
||||
Terminal=false
|
||||
Type=Application
|
||||
StartupNotify=true
|
||||
Categories=GNOME;GTK;Network;Music;
|