This commit is contained in:
syuilo 2018-03-17 03:33:36 +09:00
parent c38b5a9b8b
commit 128b56da28
6 changed files with 601 additions and 58 deletions

View File

@ -27,6 +27,10 @@ module.exports = (params) => new Promise(async (res, rej) => {
const [poll, pollErr] = $(params.poll).optional.boolean().$; const [poll, pollErr] = $(params.poll).optional.boolean().$;
if (pollErr) return rej('invalid poll param'); if (pollErr) return rej('invalid poll param');
// Get 'bot' parameter
//const [bot, botErr] = $(params.bot).optional.boolean().$;
//if (botErr) return rej('invalid bot param');
// Get 'limit' parameter // Get 'limit' parameter
const [limit = 10, limitErr] = $(params.limit).optional.number().range(1, 100).$; const [limit = 10, limitErr] = $(params.limit).optional.number().range(1, 100).$;
if (limitErr) return rej('invalid limit param'); if (limitErr) return rej('invalid limit param');
@ -76,6 +80,11 @@ module.exports = (params) => new Promise(async (res, rej) => {
query.poll = poll ? { $exists: true, $ne: null } : null; query.poll = poll ? { $exists: true, $ne: null } : null;
} }
// TODO
//if (bot != undefined) {
// query.is_bot = bot;
//}
// Issue query // Issue query
const posts = await Post const posts = await Post
.find(query, { .find(query, {

View File

@ -23,6 +23,7 @@ import twitterSetting from './twitter-setting.vue';
import fileTypeIcon from './file-type-icon.vue'; import fileTypeIcon from './file-type-icon.vue';
import Switch from './switch.vue'; import Switch from './switch.vue';
import Othello from './othello.vue'; import Othello from './othello.vue';
import welcomeTimeline from './welcome-timeline.vue';
Vue.component('mk-signin', signin); Vue.component('mk-signin', signin);
Vue.component('mk-signup', signup); Vue.component('mk-signup', signup);
@ -47,3 +48,4 @@ Vue.component('mk-twitter-setting', twitterSetting);
Vue.component('mk-file-type-icon', fileTypeIcon); Vue.component('mk-file-type-icon', fileTypeIcon);
Vue.component('mk-switch', Switch); Vue.component('mk-switch', Switch);
Vue.component('mk-othello', Othello); Vue.component('mk-othello', Othello);
Vue.component('mk-welcome-timeline', welcomeTimeline);

View File

@ -0,0 +1,115 @@
<template>
<div class="mk-welcome-timeline">
<div v-for="post in posts">
<router-link class="avatar-anchor" :to="`/${post.user.username}`">
<img class="avatar" :src="`${post.user.avatar_url}?thumbnail&size=96`" alt="avatar"/>
</router-link>
<div class="body">
<header>
<router-link class="name" :to="`/${post.user.username}`">{{ post.user.name }}</router-link>
<span class="username">@{{ post.user.username }}</span>
<div class="info">
<router-link class="created-at" :to="`/${post.user.username}/${post.id}`">
<mk-time :time="post.created_at"/>
</router-link>
</div>
</header>
<div class="text">
<mk-post-html :ast="post.ast"/>
</div>
</div>
</div>
</div>
</template>
<script lang="ts">
import Vue from 'vue';
export default Vue.extend({
data() {
return {
fetching: true,
posts: []
};
},
mounted() {
this.fetch();
},
methods: {
fetch(cb?) {
this.fetching = true;
(this as any).api('posts', {
reply: false,
repost: false,
media: false,
poll: false,
bot: false
}).then(posts => {
this.posts = posts;
this.fetching = false;
});
}
}
});
</script>
<style lang="stylus" scoped>
.mk-welcome-timeline
background #fff
> div
padding 16px
overflow-wrap break-word
font-size .9em
color #4C4C4C
border-bottom 1px solid rgba(0, 0, 0, 0.05)
&:after
content ""
display block
clear both
> .avatar-anchor
display block
float left
position -webkit-sticky
position sticky
top 16px
> img
display block
width 36px
height 36px
border-radius 6px
> .body
float right
width calc(100% - 36px)
padding-left 8px
> header
display flex
align-items center
margin-bottom 4px
white-space nowrap
> .name
display block
margin 0 .5em 0 0
padding 0
overflow hidden
font-weight bold
text-overflow ellipsis
> .username
margin 0 .5em 0 0
color #ccc
> .info
margin-left auto
font-size 0.9em
> .created-at
color #c0c0c0
</style>

View File

@ -1,13 +1,20 @@
<template> <template>
<div class="mk-welcome"> <div class="mk-welcome">
<main> <main>
<div> <div class="top">
<h1>Share<br>Everything!</h1> <div>
<p>ようこそ <b>Misskey</b>はTwitter風ミニブログSNSです思ったこと共有したいことをシンプルに書き残せますタイムラインを見れば皆の反応や皆がどう思っているのかもすぐにわかります<a>詳しく...</a></p> <div>
<p><button class="signup" @click="signup">はじめる</button><button class="signin" @click="signin">ログイン</button></p> <h1>Share<br>Everything!</h1>
</div> <p>ようこそ <b>Misskey</b>はTwitter風ミニブログSNSです思ったことや皆と共有したいことを投稿しましょうタイムラインを見れば皆の関心事をすぐにチェックすることもできます<a>詳しく...</a></p>
<div> <p><button class="signup" @click="signup">はじめる</button><button class="signin" @click="signin">ログイン</button></p>
</div>
<div>
<div>
<header>%fa:comments R% タイムライン</header>
<mk-welcome-timeline/>
</div>
</div>
</div>
</div> </div>
</main> </main>
<mk-forkit/> <mk-forkit/>
@ -69,61 +76,85 @@ export default Vue.extend({
> main > main
display flex display flex
flex 1 flex 1
max-width $width
margin 0 auto
padding 80px 0 0 0
> div:first-child > .top
margin 0 auto 0 0 display flex
width calc(100% - 500px) width 100%
color #777 background-image url('/assets/welcome.svg')
background-size cover
background-position top center
> h1 > div
margin 0 display flex
font-weight normal max-width $width
font-variant small-caps margin 0 auto
letter-spacing 12px padding 80px 0 0 0
> p > div:first-child
margin 0.5em 0 margin 0 48px 0 0
line-height 2em color #777
button > h1
padding 8px 16px margin 0
font-size inherit font-weight normal
font-variant small-caps
letter-spacing 12px
.signup > p
color $theme-color margin 0.5em 0
border solid 2px $theme-color line-height 2em
border-radius 4px
&:focus button
box-shadow 0 0 0 3px rgba($theme-color, 0.2) padding 8px 16px
font-size inherit
&:hover .signup
color $theme-color-foreground color $theme-color
background $theme-color border solid 2px $theme-color
border-radius 4px
&:active &:focus
color $theme-color-foreground box-shadow 0 0 0 3px rgba($theme-color, 0.2)
background darken($theme-color, 10%)
border-color darken($theme-color, 10%)
.signin &:hover
&:focus color $theme-color-foreground
color #444 background $theme-color
&:hover &:active
color #444 color $theme-color-foreground
background darken($theme-color, 10%)
border-color darken($theme-color, 10%)
&:active .signin
color #333 &:focus
color #444
> div:last-child &:hover
margin 0 0 0 auto color #444
&:active
color #333
> div:last-child
> div
width 410px
background #fff
border-radius 8px
overflow hidden
> header
z-index 1
padding 12px 16px
color #888d94
box-shadow 0 1px 0px rgba(0, 0, 0, 0.1)
> .mk-welcome-timeline
max-height 350px
overflow auto
> footer > footer
color #666 color #949ea5
background #fff background #fff
> div > div

View File

@ -1,9 +1,9 @@
<template> <template>
<div class="welcome"> <div class="welcome">
<h1><b>Misskey</b>へようこそ</h1> <h1><b>Misskey</b>へようこそ</h1>
<p>Twitter風ミニブログSNSMisskeyへようこそ思ったことを投稿したりタイムラインでみんなの投稿を読むこともできます</p> <p>Twitter風ミニブログSNSMisskeyへようこそ思ったことを投稿したりタイムラインでみんなの投稿を読むこともできます<a href="/signup">アカウントを作成する</a></p>
<div class="form"> <div class="form">
<p>ログイン</p> <p>%fa:lock% ログイン</p>
<div> <div>
<form @submit.prevent="onSubmit"> <form @submit.prevent="onSubmit">
<input v-model="username" type="text" pattern="^[a-zA-Z0-9-]+$" placeholder="ユーザー名" autofocus required @change="onUsernameChange"/> <input v-model="username" type="text" pattern="^[a-zA-Z0-9-]+$" placeholder="ユーザー名" autofocus required @change="onUsernameChange"/>
@ -16,13 +16,19 @@
</div> </div>
</div> </div>
</div> </div>
<a href="/signup">アカウントを作成する</a> <div class="tl">
<p>%fa:comments R% タイムラインを見てみる</p>
<mk-welcome-timeline/>
</div>
<footer>
<small>{{ copyright }}</small>
</footer>
</div> </div>
</template> </template>
<script lang="ts"> <script lang="ts">
import Vue from 'vue'; import Vue from 'vue';
import { apiUrl } from '../../../config'; import { apiUrl, copyright } from '../../../config';
export default Vue.extend({ export default Vue.extend({
data() { data() {
@ -32,7 +38,8 @@ export default Vue.extend({
username: '', username: '',
password: '', password: '',
token: '', token: '',
apiUrl apiUrl,
copyright
}; };
}, },
mounted() { mounted() {
@ -83,16 +90,12 @@ export default Vue.extend({
color #949fa9 color #949fa9
.form .form
margin-bottom 16px
background #fff background #fff
border solid 1px rgba(0, 0, 0, 0.2) border solid 1px rgba(0, 0, 0, 0.2)
border-radius 8px border-radius 8px
overflow hidden overflow hidden
& + a
display block
margin-top 16px
text-align center
> p > p
margin 0 margin 0
padding 12px 20px padding 12px 20px
@ -143,4 +146,29 @@ export default Vue.extend({
padding 16px padding 16px
text-align center text-align center
.tl
background #fff
border solid 1px rgba(0, 0, 0, 0.2)
border-radius 8px
overflow hidden
> p
margin 0
padding 12px 20px
color #555
background #f5f5f5
border-bottom solid 1px #ddd
> .mk-welcome-timeline
max-height 300px
overflow auto
> footer
text-align center
color #949fa9
> small
display block
margin 16px 0 0 0
</style> </style>

358
src/web/assets/welcome.svg Normal file
View File

@ -0,0 +1,358 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:osb="http://www.openswatchbook.org/uri/2009/osb"
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"
width="1920"
height="1080"
viewBox="0 0 507.99999 285.75001"
version="1.1"
id="svg8"
inkscape:version="0.92.1 r15371"
sodipodi:docname="描画.svg">
<defs
id="defs2">
<linearGradient
inkscape:collect="always"
id="linearGradient7044">
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop7040" />
<stop
style="stop-color:#ffffff;stop-opacity:1"
offset="1"
id="stop7042" />
</linearGradient>
<pattern
inkscape:collect="always"
xlink:href="#Checkerboard"
id="pattern7010"
patternTransform="matrix(1.673813,0,0,1.673813,-177.6001,-146.38611)" />
<pattern
inkscape:stockid="Checkerboard"
id="Checkerboard"
patternTransform="translate(0,0) scale(10,10)"
height="2"
width="2"
patternUnits="userSpaceOnUse"
inkscape:collect="always">
<rect
id="rect6201"
height="1"
width="1"
y="0"
x="0"
style="fill:black;stroke:none" />
<rect
id="rect6203"
height="1"
width="1"
y="1"
x="1"
style="fill:black;stroke:none" />
</pattern>
<linearGradient
id="linearGradient5406"
osb:paint="solid">
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop5404" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient7044"
id="linearGradient7064"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(3.223659,0,0,2.5556636,-579.27357,808.39)"
x1="86.490868"
y1="-216.62756"
x2="176.77992"
y2="-216.62756" />
<mask
maskUnits="userSpaceOnUse"
id="mask7060">
<rect
style="opacity:1;fill:url(#linearGradient7064);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.92238116;stroke-miterlimit:4;stroke-dasharray:none"
id="rect7062"
width="291.06116"
height="511.36566"
x="-300.45657"
y="-0.91986513"
transform="rotate(-90)" />
</mask>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.84705882"
inkscape:pageshadow="2"
inkscape:zoom="0.51"
inkscape:cx="895.96593"
inkscape:cy="599.48775"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
units="px"
inkscape:pagecheckerboard="true"
inkscape:window-width="1920"
inkscape:window-height="1017"
inkscape:window-x="-8"
inkscape:window-y="1072"
inkscape:window-maximized="1"
objecttolerance="1"
guidetolerance="10000"
gridtolerance="10000"
inkscape:snap-bbox="true"
inkscape:bbox-paths="true"
inkscape:bbox-nodes="true"
inkscape:snap-bbox-edge-midpoints="true"
inkscape:snap-bbox-midpoints="true" />
<metadata
id="metadata5">
<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></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="レイヤー 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-11.249983)">
<rect
style="opacity:0.05;fill:url(#pattern7010);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.15551688;stroke-miterlimit:4;stroke-dasharray:none"
id="rect6987"
width="754.9812"
height="469.89072"
x="-83.816063"
y="-63.078693"
ry="0"
mask="url(#mask7060)" />
<path
style="fill:#000000;fill-opacity:0.09661835;stroke:none;stroke-width:0.26499999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 149.59224,187.51883 -30.48108,6.4476 18.58548,61.14441 32.06774,-5.02079 2.27916,-39.16205 -20.18463,5.72179 z m -19.28212,12.50282 11.30447,-2.22985 0.81973,12.45223 -7.5888,1.65389 z m 15.28477,16.59486 0.74067,11.65353 -7.42226,2.02029 -3.70369,-10.82413 z m 1.61836,17.96698 1.20153,11.02325 -5.56723,1.37628 -3.18232,-10.49349 z m 14.34445,-2.69044 0.26461,11.20806 -5.86133,1.29523 -1.20102,-11.02336 z"
id="path5398"
inkscape:connector-curvature="0" />
<ellipse
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.35368672"
id="path5309"
cx="19.684303"
cy="2.3963881"
rx="115.17702"
ry="51.621048"
transform="matrix(0.99853597,-0.05409175,0,1,0,0)" />
<ellipse
style="fill:#ffffff;fill-opacity:0.56038663;stroke:none;stroke-width:0.26458332"
id="path5313"
cx="146.58771"
cy="21.961346"
rx="60.384743"
ry="31.365929" />
<ellipse
style="fill:#ffffff;fill-opacity:0.56038663;stroke:none;stroke-width:0.22788492"
id="path5313-3"
cx="227.88307"
cy="9.7990417"
rx="51.849796"
ry="27.098455" />
<ellipse
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.18895671"
id="path5309-5"
cx="158.05429"
cy="9.211237"
rx="67.707047"
ry="25.06374"
transform="matrix(0.99900149,0.04467679,0,-1,0,0)" />
<ellipse
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.19881381"
id="path5309-5-5"
cx="-320.59222"
cy="-18.961536"
rx="71.337646"
ry="26.334759"
transform="matrix(-0.99900701,0.04455336,0,-1,0,0)" />
<ellipse
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.2416939"
id="path5309-0"
cx="-474.55038"
cy="-20.052439"
rx="74.602745"
ry="37.216171"
transform="matrix(-0.99818591,-0.06020699,0,1,0,0)" />
<ellipse
style="fill:#ffffff;fill-opacity:0.56038663;stroke:none;stroke-width:0.26458332"
id="path5313-5"
cx="382.79236"
cy="16.200251"
rx="60.384743"
ry="31.365929" />
<circle
style="fill:#000000;fill-opacity:0.09661835;stroke:none;stroke-width:1.99730551"
id="path5392"
cx="253.06117"
cy="887.61829"
r="642.68146" />
<path
style="fill:#000000;fill-opacity:0.09661835;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 329.51477,199.15082 -32.04286,18.26817 12.8142,1.28619 -6.02656,28.18505 32.94792,3.49531 0.51681,-27.76301 11.91226,1.00737 z m -14.10711,25.93826 6.27123,0.90288 -1.15019,5.4805 -6.00929,-0.898 z m 13.58524,2.09643 0.42171,5.50053 -6.35262,-0.44337 1.22618,-5.67857 z m -15.04127,5.73678 6.21844,0.90138 -1.87301,4.94347 -5.07899,-0.81761 z m 8.80707,1.53673 6.3403,1.10313 0.43128,4.98637 -7.83808,-1.19409 z"
id="path6874"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccccccccccccccccccccccccc" />
<path
style="fill:#000000;fill-opacity:0.09661835;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 366.28967,254.78298 7.49431,-30.40441 -7.41388,-2.66046 1.18763,-3.36104 7.21205,2.27141 1.38362,-5.73044 -7.20912,-2.66047 1.28561,-3.65794 7.01313,2.7643 2.17341,-7.01022 3.35519,1.48161 -2.1734,6.51147 6.70747,2.66046 -1.28564,3.16213 -6.31255,-2.46154 -1.68638,6.02735 6.80837,2.46447 -0.9887,3.84808 -6.90052,-2.47031 -6.71038,30.41026 z"
id="path6891"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccccccccccccccccccc" />
<path
style="fill:#000000;fill-opacity:0.09661835;fill-rule:nonzero;stroke:none;stroke-width:0.26499999;stroke-miterlimit:4;stroke-dasharray:none"
d="m 377.25876,69.781182 a 18.234796,18.234796 0 0 1 8.1747,15.19442 18.234796,18.234796 0 0 1 -18.23455,18.235058 18.234796,18.234796 0 0 1 -10.14098,-3.08921 20.380066,20.380066 0 0 0 17.64905,10.2402 20.380066,20.380066 0 0 0 20.38015,-20.380152 20.380066,20.380066 0 0 0 -17.82837,-20.200316 z"
id="path6914"
inkscape:connector-curvature="0" />
<path
sodipodi:type="star"
style="fill:#000000;fill-opacity:0.09661835;fill-rule:nonzero;stroke:none;stroke-width:0.26499999;stroke-miterlimit:4;stroke-dasharray:none"
id="path6921"
sodipodi:sides="4"
sodipodi:cx="117.63232"
sodipodi:cy="102.13793"
sodipodi:r1="5.7652407"
sodipodi:r2="2.8826203"
sodipodi:arg1="1.4464413"
sodipodi:arg2="2.2318395"
inkscape:flatsided="false"
inkscape:rounded="0"
inkscape:randomized="0"
d="m 118.34741,107.85865 -2.48485,-3.44532 -3.95096,-1.56031 3.44531,-2.48485 1.56032,-3.950959 2.48484,3.445318 3.95097,1.560311 -3.44532,2.48485 z"
inkscape:transform-center-x="1.481982e-006"
inkscape:transform-center-y="-1.1450451e-006" />
<path
sodipodi:type="star"
style="fill:#000000;fill-opacity:0.09661835;fill-rule:nonzero;stroke:none;stroke-width:0.26499999;stroke-miterlimit:4;stroke-dasharray:none"
id="path6923"
sodipodi:sides="4"
sodipodi:cx="317.5"
sodipodi:cy="75.679596"
sodipodi:r1="3.949214"
sodipodi:r2="1.974607"
sodipodi:arg1="1.6614562"
sodipodi:arg2="2.4468544"
inkscape:flatsided="false"
inkscape:rounded="0"
inkscape:randomized="0"
d="m 317.14246,79.612591 -1.1594,-2.668882 -2.41606,-1.621658 2.66889,-1.15939 1.62165,-2.41606 1.1594,2.668882 2.41606,1.621658 -2.66889,1.15939 z"
inkscape:transform-center-x="4.0000001e-006" />
<path
sodipodi:type="star"
style="fill:#000000;fill-opacity:0.09661835;fill-rule:nonzero;stroke:none;stroke-width:0.26499999;stroke-miterlimit:4;stroke-dasharray:none"
id="path6925"
sodipodi:sides="4"
sodipodi:cx="230.97409"
sodipodi:cy="57.802349"
sodipodi:r1="2.2613134"
sodipodi:r2="1.1306567"
sodipodi:arg1="1.2490458"
sodipodi:arg2="2.0344439"
inkscape:flatsided="false"
inkscape:rounded="0"
inkscape:randomized="0"
d="m 231.68918,59.947619 -1.22073,-1.13398 -1.63963,-0.2962 1.13398,-1.220735 0.2962,-1.639625 1.22074,1.13398 1.63962,0.2962 -1.13398,1.220735 z"
inkscape:transform-center-x="2.9099099e-006" />
<path
sodipodi:type="star"
style="fill:#000000;fill-opacity:0.09661835;fill-rule:nonzero;stroke:none;stroke-width:0.26499999;stroke-miterlimit:4;stroke-dasharray:none"
id="path6927"
sodipodi:sides="4"
sodipodi:cx="260.65033"
sodipodi:cy="106.42847"
sodipodi:r1="1.59899"
sodipodi:r2="0.79949504"
sodipodi:arg1="2.0344439"
sodipodi:arg2="2.8198421"
inkscape:flatsided="false"
inkscape:rounded="0"
inkscape:randomized="0"
d="m 259.93524,107.85865 -0.0434,-1.17736 -0.67171,-0.96791 1.17736,-0.0434 0.96791,-0.67171 0.0434,1.17735 0.67171,0.96792 -1.17736,0.0434 z"
inkscape:transform-center-x="3.2837838e-006"
inkscape:transform-center-y="-1.1990991e-006" />
<path
sodipodi:type="star"
style="fill:#000000;fill-opacity:0.09661835;fill-rule:nonzero;stroke:none;stroke-width:0.26499999;stroke-miterlimit:4;stroke-dasharray:none"
id="path6925-2"
sodipodi:sides="4"
sodipodi:cx="87.956078"
sodipodi:cy="127.16609"
sodipodi:r1="2.2613134"
sodipodi:r2="1.1306567"
sodipodi:arg1="1.2490458"
sodipodi:arg2="2.0344439"
inkscape:flatsided="false"
inkscape:rounded="0"
inkscape:randomized="0"
d="m 88.671168,129.31136 -1.220735,-1.13398 -1.639626,-0.2962 1.13398,-1.22073 0.296201,-1.63963 1.220735,1.13398 1.639625,0.2962 -1.13398,1.22074 z"
inkscape:transform-center-x="2.4830149e-006"
transform="matrix(0.91666667,0,0,1,7.1509005,0)" />
<path
style="fill:#000000;fill-opacity:0.09661835;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 278.09961 779.17383 L 273.55469 781.65234 L 282.30273 807.51562 L 265.05078 812.48633 L 316.54688 967.83984 L 396.62305 947.04297 L 369.47266 782.39453 L 286.1543 806.4043 L 278.09961 779.17383 z M 341.34766 817.19922 L 346.93555 855.88672 L 315.41797 863.33008 L 300.96094 827.68945 L 341.34766 817.19922 z M 355.63477 872.21094 L 358.58984 909.34961 L 332.12891 916.2207 L 318.54883 881.09766 L 355.63477 872.21094 z "
transform="matrix(0.26458333,0,0,0.26458333,0,11.249983)"
id="path6944" />
<path
style="fill:#000000;fill-opacity:0.09661835;stroke:none;stroke-width:0.24600939px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 43.603475,280.06036 -10.564819,-28.58824 -6.574764,2.28618 -0.916385,-3.37337 6.23111,-2.47535 -2.011396,-5.37101 -6.431418,2.16468 -1.002197,-3.66725 6.348194,-1.96596 -2.123972,-6.85578 3.11982,-0.81419 1.86458,6.45975 6.080155,-1.86705 0.744318,3.27357 -5.700174,1.79072 1.953823,5.78639 6.048884,-2.08256 1.308957,3.64208 -6.116434,2.13257 11.116753,28.12778 z"
id="path6891-8"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccccccccccccccccccc" />
<path
style="fill:#000000;fill-opacity:0.09661835;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 411.98753,264.70523 3.91734,-12.57157 -7.13355,-3.53259 -1.396,-8.02014 5.81668,-6.93436 10.92618,-0.52461 7.35863,5.88054 0.0806,8.11138 -5.67524,6.95564 -7.37536,-0.96565 -1.04168,4.03744 5.21293,-1.96321 1.42492,-6.58308 5.61592,-1.7579 5.33002,3.98422 -1.35343,5.14755 -3.67857,2.33882 -4.89966,-2.03926 -7.52592,2.91667 -1.60892,6.84465 z"
id="path6985"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccccccccccccccccccc" />
<ellipse
style="fill:#ffffff;fill-opacity:0.56038663;stroke:none;stroke-width:0.26458332"
id="path5313-36"
cx="12.969777"
cy="40.717304"
rx="60.384743"
ry="31.365929" />
<ellipse
style="fill:#ffffff;fill-opacity:0.56038663;stroke:none;stroke-width:0.28271547"
id="path5313-36-0"
cx="525.27576"
cy="33.454243"
rx="68.944794"
ry="31.365929" />
<ellipse
style="fill:#ffffff;fill-opacity:0.56038663;stroke:none;stroke-width:0.26458332"
id="path5313-367"
cx="91.30719"
cy="8.5522709"
rx="60.384743"
ry="31.365929" />
<ellipse
style="fill:#ffffff;fill-opacity:0.56038663;stroke:none;stroke-width:0.33264157"
id="path5313-5-9"
cx="445.12253"
cy="3.1049659"
rx="78.023628"
ry="38.369606" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 15 KiB