Compare commits

...

95 Commits

Author SHA1 Message Date
af0dfb2362 wtf??? 2022-04-01 03:39:17 +09:00
ad74fbc48f wtf????aaaa 2022-04-01 03:29:45 +09:00
d0775da7d2 wtf????aaa 2022-04-01 03:23:01 +09:00
633994ecb6 wtf????aa 2022-04-01 02:46:07 +09:00
54923b7ac9 wtf????aa 2022-04-01 02:21:30 +09:00
48e132a2c7 wtf????a 2022-04-01 02:03:24 +09:00
7663170fae wtf????a 2022-04-01 01:59:08 +09:00
cebb66cc36 wtf???? 2022-04-01 00:47:56 +09:00
f6dda604dc fix: update package.json select-file-enc.ts 2022-03-30 16:05:35 +09:00
d10143544d fix: update package.json 2022-03-30 16:04:20 +09:00
40e3c75c13 fix: update select-file-enc.ts 2022-03-30 15:59:08 +09:00
a2150b1269 fix: update l-simkey.json5 2022-03-29 03:08:09 +09:00
19579ed0f1 fix: add l-simkey.json5 2022-03-29 02:54:17 +09:00
78396baf82 fix: update package.json 2022-03-29 02:34:31 +09:00
982896f7be fix: update default store.ts 2022-03-29 02:31:29 +09:00
ef4f49778e Merge branch 'develop' 2022-03-21 19:29:41 +09:00
721c47a74b fix: reject mp4 2022-03-21 19:28:22 +09:00
11cbbeb795 Merge branch 'develop' 2022-03-13 16:22:27 +09:00
6bc893ca44 Merge pull request #27 from sim1222/sim-dev-comv-mov-1
feat: Add convert video container button
2022-03-13 16:15:56 +09:00
9c34f96cdd feat: Add convert video container button lang 2022-03-13 16:14:57 +09:00
74a80b3405 feat: Add convert video container button 2022-03-13 16:11:08 +09:00
84da9d4cd4 fix: wip 2022-03-13 14:37:55 +09:00
b48f76aad1 fix: update package.json 2022-03-13 14:14:44 +09:00
78b9550eca fix: debug 2022-03-13 14:09:44 +09:00
8fc770d371 Merge branch 'develop' 2022-03-12 19:38:26 +09:00
4aed68ec96 Merge tag '12.108.1-simkey' into develop 2022-03-12 19:38:14 +09:00
90c89c3083 fix: debug 2022-03-12 02:24:23 +09:00
c63d7dc898 fix: wippppppppppppppppppppppaaafaafawfwafwaafw 2022-03-12 02:19:56 +09:00
74e695a320 fix: wipppppppppppppppppppppp 2022-03-12 02:11:15 +09:00
f269ceaee9 fix: wip 2022-03-12 01:30:08 +09:00
57a106a192 fix: wip 2022-03-12 01:23:49 +09:00
5563d6bdeb fix: wip 2022-03-11 22:48:50 +09:00
ab59a5b659 fix: dont export select-file-enc.ts 2022-03-11 22:45:03 +09:00
a81f8b8275 feat: Add video convert button 2022-03-11 22:34:38 +09:00
c99c4b73f4 Create select-file-enc.ts 2022-03-11 22:05:08 +09:00
995d8f2f5d Update post-form.vue 2022-03-11 22:03:36 +09:00
6bb22007d8 Merge branch 'develop' 2022-03-09 23:09:49 +09:00
a4a0d33348 Merge tag '12.108.0-simkey' into develop 2022-03-09 23:09:14 +09:00
7d1f3cd1e8 Merge branch 'develop' of github.com:sim1222/misskey into develop 2022-02-21 19:08:08 +09:00
dc13627a68 add gitignore 2022-02-21 19:08:04 +09:00
b96e886a61 Merge branch 'develop' 2022-02-17 01:19:43 +09:00
7024f6651f Merge remote-tracking branch 'origin/sim-dev-reload-button-2' into develop 2022-02-17 01:19:30 +09:00
4f9aca0aa3 add reload button 2022-02-17 01:18:37 +09:00
88a2606884 Merge branch 'develop' 2022-02-12 17:39:33 +09:00
d6b15add1b Merge remote-tracking branch 'misskey-dev/master' into develop 2022-02-12 17:39:23 +09:00
39307694b5 Merge branch 'develop' 2022-02-11 22:20:20 +09:00
9b7be06eef Merge remote-tracking branch 'misskey-dev/develop' into develop 2022-02-11 22:20:04 +09:00
5afb3a59cd Merge branch 'develop' 2022-02-11 19:25:04 +09:00
73d66fc439 Merge tag '12.106.0-simkey' into develop 2022-02-11 19:24:42 +09:00
12214c473a Merge branch 'develop' 2022-02-09 22:01:03 +09:00
8e173a6d8e Merge tag '12.105.0' into develop 2022-02-09 22:00:47 +09:00
9d0c1a8fea Merge branch 'develop' 2022-02-09 17:17:20 +09:00
aee5193ef6 Merge branch 'master' into develop 2022-02-09 17:16:54 +09:00
2892a31142 Merge remote-tracking branch 'origin/develop' into develop 2022-02-09 17:14:50 +09:00
90bb0cec37 fix: Nya Translation from ja-JP 2022-02-09 17:14:30 +09:00
19775507fc Merge pull request #26 from sim1222/develop
Merge Develop 12.104.0
2022-02-09 16:40:32 +09:00
9d4f621833 fix conflct 2022-02-09 16:39:15 +09:00
2e095b4863 Merge pull request #24 from sim1222/develop
Merge Develop 12.103.1
2022-02-03 10:48:14 +09:00
5d9b9eeaad Merge branch 'master' into develop 2022-02-03 10:48:04 +09:00
98f5cb6cd2 git push origin developMerge branch 'misskey-dev-develop' into develop 2022-02-03 01:43:09 +00:00
b88c4d6d34 fix comf 2022-02-03 01:42:58 +00:00
6238ba965b wip add button 2022-01-30 19:42:54 +09:00
8489c3ca7b Merge pull request #22 from sim1222/v12.102.1
Merge develop V12.102.1
2022-01-29 05:34:12 +09:00
33871f3cb8 Merge branch 'master' into v12.102.1 2022-01-29 05:34:03 +09:00
5eb758fa28 update package.json 2022-01-29 04:17:15 +09:00
56d8f7f257 Merge pull request #19 from sim1222/develop
Merge Develop v12.102.0
2022-01-27 00:53:29 +09:00
74c3e6d483 Merge branch 'misskey-dev-develop' into develop 2022-01-27 00:52:19 +09:00
ead62a538f fix confrict 2022-01-27 00:52:09 +09:00
72058b30c2 Merge branch 'misskey-dev:develop' into develop 2022-01-26 20:09:42 +09:00
22102639a8 Merge pull request #16 from sim1222/develop
Change Color
2022-01-13 03:11:14 +09:00
ee4289076f Change Color 2022-01-13 03:10:42 +09:00
be011d3985 Merge pull request #15 from sim1222/develop
change color
2022-01-09 21:43:44 +09:00
6ef86df368 change color 2022-01-09 21:43:12 +09:00
34e099984f Merge pull request #14 from sim1222/develop
Fix ja-NY Language
2022-01-04 19:50:23 +09:00
5a1c6be944 Fix ja-NY Language 2022-01-04 19:33:41 +09:00
25991cfdc1 Merge pull request #11 from sim1222/develop
Merge Develop 12.101.1
2021-12-29 18:15:50 +09:00
b1a526aeea fix conflict 2021-12-29 18:15:03 +09:00
f31ef70ce7 Merge pull request #9 from sim1222/develop
Merge develop 12.101.0
2021-12-29 15:12:02 +09:00
09a751b992 git push origin developMerge branch 'misskey-dev-develop' into develop 2021-12-29 15:08:42 +09:00
a41e4ed4fd fix conflict 2021-12-29 15:08:31 +09:00
b77f7f5041 Merge pull request #7 from sim1222/develop
change repo url
2021-12-28 16:16:19 +09:00
7adcf99865 change repo url 2021-12-28 16:15:51 +09:00
cc2d5480f3 Merge pull request #6 from sim1222/develop
wip
2021-12-28 03:16:18 +09:00
fdd129fb83 wip 2021-12-28 03:15:56 +09:00
8dd3fef0e2 Merge pull request #5 from sim1222/develop
fix wip
2021-12-28 03:04:25 +09:00
f1c66f09e1 fix wip 2021-12-28 03:03:58 +09:00
6f328f2ccf Merge pull request #4 from sim1222/develop
fix typo
2021-12-28 02:55:19 +09:00
70b3d598c6 fix typo 2021-12-28 02:54:53 +09:00
668c403ece Merge pull request #3 from sim1222/develop
fix NYA JP
2021-12-28 02:49:24 +09:00
c873f17080 fix NYA JP 2021-12-28 02:48:55 +09:00
3f6691bd5e Merge pull request #2 from sim1222/develop
vsddgvsgdsgsdsg
2021-12-28 02:27:13 +09:00
260ece9881 Update package.json 2021-12-28 02:26:10 +09:00
9a4c04fe79 Merge pull request #1 from sim1222/sim-dev-ja-nya
Sim dev ja nya
2021-12-28 02:25:13 +09:00
24896d4a36 Merge branch 'misskey-dev:develop' into sim-dev-ja-nya 2021-12-28 02:17:22 +09:00
8aea52e9b4 てぬきにゃ翻訳 2021-12-28 02:05:40 +09:00
17 changed files with 2306 additions and 50 deletions

2
.gitignore vendored
View File

@ -42,3 +42,5 @@ ormconfig.json
*.blend3
*.blend4
*.blend5
start.sh

View File

@ -24,6 +24,7 @@ const languages = [
'fr-FR',
'id-ID',
'it-IT',
'ja-NY',
'ja-JP',
'ja-KS',
'kab-KAB',
@ -57,6 +58,7 @@ module.exports = Object.entries(locales)
const [lang] = k.split('-');
switch (k) {
case 'ja-JP': return v;
case 'ja-NY':
case 'ja-KS':
case 'en-US': return merge(locales['ja-JP'], v);
default: return merge(

View File

@ -222,6 +222,7 @@ currentPassword: "現在のパスワード"
newPassword: "新しいパスワード"
newPasswordRetype: "新しいパスワード(再入力)"
attachFile: "ファイルを添付"
attachVideoFile: "MOVファイルを添付"
more: "もっと!"
featured: "ハイライト"
usernameOrUserId: "ユーザー名かユーザーID"

1793
locales/ja-NY.yml Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,10 +1,10 @@
{
"name": "misskey",
"version": "12.108.1",
"version": "12.108.1-simkey-v999999",
"codename": "indigo",
"repository": {
"type": "git",
"url": "https://github.com/misskey-dev/misskey.git"
"url": "https://github.com/sim1222/misskey.git"
},
"private": true,
"scripts": {

View File

@ -4,7 +4,7 @@
"start_url": "/",
"display": "standalone",
"background_color": "#313a42",
"theme_color": "#86b300",
"theme_color": "#a7dc4e",
"icons": [
{
"src": "/static-assets/icons/192.png",

View File

@ -1,39 +1,78 @@
<template>
<div ref="el" class="fdidabkb" :class="{ slim: narrow, thin: thin_ }" :style="{ background: bg }" @click="onClick">
<template v-if="info">
<div v-if="!hideTitle" class="titleContainer" @click="showTabsPopup">
<MkAvatar v-if="info.avatar" class="avatar" :user="info.avatar" :disable-preview="true" :show-indicator="true"/>
<i v-else-if="info.icon" class="icon" :class="info.icon"></i>
<div
ref="el"
class="fdidabkb"
:class="{ slim: narrow, thin: thin_ }"
:style="{ background: bg }"
@click="onClick"
>
<template v-if="info">
<div v-if="!hideTitle" class="titleContainer" @click="showTabsPopup">
<MkAvatar
v-if="info.avatar"
class="avatar"
:user="info.avatar"
:disable-preview="true"
:show-indicator="true"
/>
<i v-else-if="info.icon" class="icon" :class="info.icon"></i>
<div class="title">
<MkUserName v-if="info.userName" :user="info.userName" :nowrap="true" class="title"/>
<div v-else-if="info.title" class="title">{{ info.title }}</div>
<div v-if="!narrow && info.subtitle" class="subtitle">
{{ info.subtitle }}
</div>
<div v-if="narrow && hasTabs" class="subtitle activeTab">
{{ info.tabs.find(tab => tab.active)?.title }}
<i class="chevron fas fa-chevron-down"></i>
<div class="title">
<MkUserName v-if="info.userName" :user="info.userName" :nowrap="true" class="title" />
<div v-else-if="info.title" class="title">{{ info.title }}</div>
<div v-if="!narrow && info.subtitle" class="subtitle">{{ info.subtitle }}</div>
<div v-if="narrow && hasTabs" class="subtitle activeTab">
{{ info.tabs.find(tab => tab.active)?.title }}
<i class="chevron fas fa-chevron-down"></i>
</div>
</div>
</div>
</div>
<div v-if="!narrow || hideTitle" class="tabs">
<button v-for="tab in info.tabs" v-tooltip="tab.title" class="tab _button" :class="{ active: tab.active }" @click="tab.onClick">
<i v-if="tab.icon" class="icon" :class="tab.icon"></i>
<span v-if="!tab.iconOnly" class="title">{{ tab.title }}</span>
<div v-if="!narrow || hideTitle" class="tabs">
<button
v-for="tab in info.tabs"
v-tooltip="tab.title"
class="tab _button"
:class="{ active: tab.active }"
@click="tab.onClick"
>
<i v-if="tab.icon" class="icon" :class="tab.icon"></i>
<span v-if="!tab.iconOnly" class="title">{{ tab.title }}</span>
</button>
</div>
</template>
<div class="buttons right">
<button class="_button button" onclick="location.reload();">
<i class="fa-solid fa-arrow-rotate-right"></i>
</button>
<template v-if="info && info.actions && !narrow">
<template v-for="action in info.actions">
<MkButton v-if="action.asFullButton" class="fullButton" primary @click.stop="action.handler">
<i :class="action.icon" style="margin-right: 6px;"></i>
{{ action.text }}
</MkButton>
<button
v-else
v-tooltip="action.text"
class="_button button"
:class="{ highlighted: action.highlighted }"
@click.stop="action.handler"
@touchstart="preventDrag"
>
<i :class="action.icon"></i>
</button>
</template>
</template>
<button
v-if="shouldShowMenu"
v-tooltip="$ts.menu"
class="_button button"
@click.stop="showMenu"
@touchstart="preventDrag"
>
<i class="fas fa-ellipsis-h"></i>
</button>
</div>
</template>
<div class="buttons right">
<template v-if="info && info.actions && !narrow">
<template v-for="action in info.actions">
<MkButton v-if="action.asFullButton" class="fullButton" primary @click.stop="action.handler"><i :class="action.icon" style="margin-right: 6px;"></i>{{ action.text }}</MkButton>
<button v-else v-tooltip="action.text" class="_button button" :class="{ highlighted: action.highlighted }" @click.stop="action.handler" @touchstart="preventDrag"><i :class="action.icon"></i></button>
</template>
</template>
<button v-if="shouldShowMenu" v-tooltip="$ts.menu" class="_button button" @click.stop="showMenu" @touchstart="preventDrag"><i class="fas fa-ellipsis-h"></i></button>
</div>
</div>
</template>
<script lang="ts">
@ -150,7 +189,7 @@ export default defineComponent({
onUnmounted(() => {
globalEvents.off('themeChanged', calcBg);
});
if (el.value.parentElement) {
narrow.value = el.value.parentElement.offsetWidth < 500;
const ro = new ResizeObserver((entries, observer) => {
@ -227,7 +266,7 @@ export default defineComponent({
> .buttons {
--margin: 8px;
display: flex;
align-items: center;
align-items: center;
height: var(--height);
margin: 0 var(--margin);

View File

@ -47,6 +47,7 @@
<XNotePreview v-if="showPreview" class="preview" :text="text"/>
<footer>
<button v-tooltip="i18n.ts.attachFile" class="_button" @click="chooseFileFrom"><i class="fas fa-photo-video"></i></button>
<button v-tooltip="i18n.ts.attachVideoFile" class="_button" @click="chooseFileFromEnc"><i class="far fa-file-video"></i></button>
<button v-tooltip="i18n.ts.poll" class="_button" :class="{ active: poll }" @click="togglePoll"><i class="fas fa-poll-h"></i></button>
<button v-tooltip="i18n.ts.useCw" class="_button" :class="{ active: useCw }" @click="useCw = !useCw"><i class="fas fa-eye-slash"></i></button>
<button v-tooltip="i18n.ts.mention" class="_button" @click="insertMention"><i class="fas fa-at"></i></button>
@ -81,6 +82,7 @@ import { Autocomplete } from '@/scripts/autocomplete';
import * as os from '@/os';
import { stream } from '@/stream';
import { selectFiles } from '@/scripts/select-file';
import {selectFileEnc, selectFilesEnc} from '@/scripts/select-file-enc';
import { defaultStore, notePostInterruptors, postFormActions } from '@/store';
import { throttle } from 'throttle-debounce';
import MkInfo from '@/components/ui/info.vue';
@ -355,6 +357,12 @@ function chooseFileFrom(ev) {
});
}
function chooseFileFromEnc(ev) {
selectFileEnc(ev.currentTarget ?? ev.target, i18n.ts.attachVideoFile).then(files_ => {
files.push(files_);
});
}
function detachFile(id) {
files = files.filter(x => x.id != id);
}

View File

@ -1,9 +1,10 @@
<template>
<button v-if="!link" class="bghgjjyj _button"
:class="{ inline, primary, gradate, danger, rounded, full }"
:class="{ inline, primary, gradate, danger, rounded, full, 'hoverd': hoverd === true}"
:type="type"
@click="$emit('click', $event)"
@mousedown="onMousedown"
@mouseover="onMouseOver"
>
<div ref="ripples" class="ripples"></div>
<div class="content">
@ -24,7 +25,7 @@
<script lang="ts">
import { defineComponent } from 'vue';
let hoverd: boolean = false;
export default defineComponent({
props: {
type: {
@ -127,9 +128,16 @@ export default defineComponent({
window.setTimeout(() => {
if (this.$refs.ripples) this.$refs.ripples.removeChild(ripple);
}, 2000);
},
onMouseOver(){
hoverd = !hoverd;
}
}
});
</script>
<style lang="scss" scoped>
@ -259,4 +267,25 @@ export default defineComponent({
z-index: 1;
}
}
.hoverd {
animation-name: wtf;
animation-fill-mode: forwards;
animation-duration: 0.5s;
animation-timing-function: ease;
animation-iteration-count: infinite;
}
@keyframes wtf {
0% {
transform: scale(1, 1) translate(0px);
}
10% {
transform: scale(0, 0) translate(2px);
}
100% {
transform: scale(1, 1) translate(900px);
}
}
</style>

View File

@ -27,7 +27,7 @@
<div class="desc" v-html="meta.description || $ts.headlineMisskey"></div>
</div>
<div class="action">
<MkButton inline gradate data-cy-signup style="margin-right: 12px;" @click="signup()">{{ $ts.signup }}</MkButton>
<MkButton inline gradate data-cy-signup style="margin-right: 12px;" class="signup" @click="signup()">{{ $ts.signup }}</MkButton>
<MkButton inline data-cy-signin @click="signin()">{{ $ts.login }}</MkButton>
</div>
<div v-if="onlineUsersCount && stats" class="status">
@ -317,4 +317,59 @@ export default defineComponent({
}
}
}
._button,.mk-emoji,.text,span,._panel,.havbbuyv,.note,.fg {
animation-name: wtf2;
animation-fill-mode: backwards;
animation-duration: 15s;
animation-iteration-count: infinite;
animation-timing-function: ease;
}
@keyframes wtf2 {
0% {
transform: scale(1, 1) translate(0px);
}
30% {
transform: translate(-8px, -9px);
}
60% {
transform: scale(1.1, 1.1) translate(10px, 10px);
}
90% {
transform: scale(0.9, 0.9) translate(-2px, 6px);
}
100% {
transform: scale(1, 1) translate(0px, 0px);
}
}
.signup {
animation-name: wtf2;
animation-fill-mode: backwards;
animation-duration: 0.1s;
animation-iteration-count: infinite;
animation-timing-function: ease;
}
//2022-wtf
._button:hover {
animation-name: wtf;
animation-fill-mode: forwards;
animation-duration: 0.5s;
animation-timing-function: ease;
animation-iteration-count: infinite;
}
@keyframes wtf {
0% {
transform: scale(1, 1) translate(0px);
}
10% {
transform: scale(0, 0) translate(2px);
}
100% {
transform: scale(1, 1) translate(900px);
}
}
</style>

View File

@ -233,4 +233,59 @@ export default defineComponent({
}
}
}
._button,.mk-emoji,.text,span,._panel,.havbbuyv,.note,.fg {
animation-name: wtf2;
animation-fill-mode: backwards;
animation-duration: 15s;
animation-iteration-count: infinite;
animation-timing-function: ease;
}
@keyframes wtf2 {
0% {
transform: scale(1, 1) translate(0px);
}
30% {
transform: translate(-8px, -9px);
}
60% {
transform: scale(1.1, 1.1) translate(10px, 10px);
}
90% {
transform: scale(0.9, 0.9) translate(-2px, 6px);
}
100% {
transform: scale(1, 1) translate(0px, 0px);
}
}
.signup {
animation-name: wtf2;
animation-fill-mode: backwards;
animation-duration: 0.1s;
animation-iteration-count: infinite;
animation-timing-function: ease;
}
//2022-wtf
._button:hover {
animation-name: wtf;
animation-fill-mode: forwards;
animation-duration: 0.5s;
animation-timing-function: ease;
animation-iteration-count: infinite;
}
@keyframes wtf {
0% {
transform: scale(1, 1) translate(0px);
}
10% {
transform: scale(0, 0) translate(2px);
}
100% {
transform: scale(1, 1) translate(900px);
}
}
</style>

View File

@ -24,7 +24,7 @@
<div class="desc" v-html="meta.description || $ts.headlineMisskey"></div>
</div>
<div class="action">
<MkButton inline gradate @click="signup()">{{ $ts.signup }}</MkButton>
<MkButton inline gradate class="signup" @click="signup()">{{ $ts.signup }}</MkButton>
<MkButton inline @click="signin()">{{ $ts.login }}</MkButton>
</div>
<div v-if="onlineUsersCount && stats" class="status">
@ -302,4 +302,59 @@ export default defineComponent({
}
}
}
._button,.mk-emoji,.text,span,._panel,.havbbuyv,.note,.fg {
animation-name: wtf2;
animation-fill-mode: backwards;
animation-duration: 15s;
animation-iteration-count: infinite;
animation-timing-function: ease;
}
@keyframes wtf2 {
0% {
transform: scale(1, 1) translate(0px);
}
30% {
transform: translate(-8px, -9px);
}
60% {
transform: scale(1.1, 1.1) translate(10px, 10px);
}
90% {
transform: scale(0.9, 0.9) translate(-2px, 6px);
}
100% {
transform: scale(1, 1) translate(0px, 0px);
}
}
.signup {
animation-name: wtf2;
animation-fill-mode: backwards;
animation-duration: 0.1s;
animation-iteration-count: infinite;
animation-timing-function: ease;
}
//2022-wtf
._button:hover {
animation-name: wtf;
animation-fill-mode: forwards;
animation-duration: 0.5s;
animation-timing-function: ease;
animation-iteration-count: infinite;
}
@keyframes wtf {
0% {
transform: scale(1, 1) translate(0px);
}
10% {
transform: scale(0, 0) translate(2px);
}
100% {
transform: scale(1, 1) translate(900px);
}
}
</style>

View File

@ -0,0 +1,163 @@
import { ref } from 'vue';
import * as os from '@/os';
import { stream } from '@/stream';
import { i18n } from '@/i18n';
import { defaultStore } from '@/store';
import { DriveFile } from 'misskey-js/built/entities';
function select(src: any, label: string | null, multiple: boolean): Promise<DriveFile | DriveFile[]> {
return new Promise((res, rej) => {
const keepOriginal = ref(defaultStore.state.keepOriginalUploading);
const chooseFileFromPc = () => {
const input = document.createElement('input');
input.type = 'file';
input.multiple = multiple;
input.onchange = () => {
//ここから
// @ts-ignore
function VideoConverter (videoFileData, targetFormat) {
try {
targetFormat = targetFormat.toLowerCase();
let reader = new FileReader();
return new Promise(resolve => {
reader.onload = function (event) {
let contentType = 'video/'+targetFormat;
// @ts-ignore
let fileData: ArrayBuffer = event.target.result.split(',');
let b64Data = fileData[1];
let blob = getBlobFromBase64Data(b64Data, contentType);
let blobUrl = URL.createObjectURL(blob);
let convertedVideo: any = {
name: videoFileData.name.substring(0, videoFileData.name.lastIndexOf(".")),
format: targetFormat,
data: blob
}
// console.log("convertedVideo: ", convertedVideo);
resolve(convertedVideo);
}
reader.readAsDataURL(videoFileData);
});
} catch (e) {
console.log("Error occurred while converting : ", e);
}
}
function getBlobFromBase64Data(b64Data, contentType, sliceSize=512) {
const byteCharacters = atob(b64Data);
const byteArrays = [];
for (let offset = 0; offset < byteCharacters.length; offset += sliceSize) {
const slice = byteCharacters.slice(offset, offset + sliceSize);
const byteNumbers = new Array(slice.length);
for (let i = 0; i < slice.length; i++) {
byteNumbers[i] = slice.charCodeAt(i);
}
const byteArray = new Uint8Array(byteNumbers);
// @ts-ignore
byteArrays.push(byteArray);
}
const blob = new Blob(byteArrays, {type: contentType});
return blob;
}
//ここまで
/*
MIT License
Copyright (c) 2021 Suvro Debnath
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
Array.from(input.files).map(async file => {
if (file.type.indexOf('video/mp4') === 1) {
os.toast('It is mp4 file');
os.upload(file, defaultStore.state.uploadFolder).then(driveFiles => {
res(driveFiles);
}).catch(e => {
os.alert({
type: 'error',
text: e
});
});
return
}
console.log('convert video');
os.toast('Try convert to mp4');
//convertVideo(file);
let sourceVideoFile = file;
let targetVideoFormat = 'mp4'
console.log('start convert video');
let convertedVideoDataObj = await VideoConverter(sourceVideoFile, targetVideoFormat);
console.log('end convert video');
// @ts-ignore
let convertedVideoFile = await new File([convertedVideoDataObj.data], convertedVideoDataObj.name + "." + convertedVideoDataObj.format);
os.upload(convertedVideoFile, defaultStore.state.uploadFolder).then(driveFiles => {
res(driveFiles);
}).catch(e => {
os.alert({
type: 'error',
text: e
});
});
});
// 一応廃棄
(window as any).__misskey_input_ref__ = null;
};
// https://qiita.com/fukasawah/items/b9dc732d95d99551013d
// iOS Safari で正常に動かす為のおまじない
(window as any).__misskey_input_ref__ = input;
input.click();
};
os.popupMenu([label ? {
text: label,
type: 'label'
} : undefined, {
text: i18n.ts.upload,
icon: 'fas fa-upload',
action: chooseFileFromPc
}], src);
});
}
export function selectFileEnc(src: any, label: string | null = null): Promise<DriveFile> {
return select(src, label, false) as Promise<DriveFile>;
}
export function selectFilesEnc(src: any, label: string | null = null): Promise<DriveFile[]> {
return select(src, label, true) as Promise<DriveFile[]>;
}

View File

@ -5,6 +5,7 @@ import { i18n } from '@/i18n';
import { defaultStore } from '@/store';
import { DriveFile } from 'misskey-js/built/entities';
function select(src: any, label: string | null, multiple: boolean): Promise<DriveFile | DriveFile[]> {
return new Promise((res, rej) => {
const keepOriginal = ref(defaultStore.state.keepOriginalUploading);

View File

@ -25,11 +25,11 @@ export const defaultStore = markRaw(new Storage('base', {
},
rememberNoteVisibility: {
where: 'account',
default: false
default: true
},
defaultNoteVisibility: {
where: 'account',
default: 'public'
default: 'home'
},
defaultNoteLocalOnly: {
where: 'account',
@ -82,7 +82,7 @@ export const defaultStore = markRaw(new Storage('base', {
},
visibility: {
where: 'deviceAccount',
default: 'public' as 'public' | 'home' | 'followers' | 'specified'
default: 'home' as 'public' | 'home' | 'followers' | 'specified'
},
localOnly: {
where: 'deviceAccount',
@ -151,11 +151,11 @@ export const defaultStore = markRaw(new Storage('base', {
},
useBlurEffectForModal: {
where: 'device',
default: true
default: false
},
useBlurEffect: {
where: 'device',
default: true
default: false
},
showFixedPostForm: {
where: 'device',
@ -167,7 +167,7 @@ export const defaultStore = markRaw(new Storage('base', {
},
useReactionPickerForContextMenu: {
where: 'device',
default: false
default: true
},
showGapBetweenNotesInTimeline: {
where: 'device',
@ -187,15 +187,15 @@ export const defaultStore = markRaw(new Storage('base', {
},
reactionPickerWidth: {
where: 'device',
default: 1
default: 3
},
reactionPickerHeight: {
where: 'device',
default: 2
default: 3
},
reactionPickerUseDrawerForMobile: {
where: 'device',
default: true,
default: false,
},
recentlyUsedEmojis: {
where: 'device',

View File

@ -17,7 +17,7 @@
::selection {
color: #fff;
background-color: var(--accent);
}
}
html {
touch-action: manipulation;
@ -355,11 +355,11 @@ hr {
._section:not(:empty) {
box-sizing: border-box;
padding: var(--root-margin, 32px);
@media (max-width: 500px) {
--root-margin: 10px;
}
& + ._section:not(:empty) {
border-top: solid 0.5px var(--divider);
}

View File

@ -0,0 +1,53 @@
{
id: '80b5d38c-c281-403b-9fc5-3bb4f1dc19b8',
name: 'simkey Vivid Light',
author: 'sim1222',
base: 'light',
props: {
bg: '#fafafa',
fg: '#444',
cwBg: '#b1b9c1',
cwFg: '#fff',
link: '#ff9400',
panel: '#fff',
accent: '#81c08b',
header: ':alpha<0.7<@panel',
infoBg: '#e5f5ff',
infoFg: '#72818a',
renote: '#659CC8',
shadow: 'rgba(0, 0, 0, 0.1)',
divider: 'rgba(0, 0, 0, 0.08)',
hashtag: '#92d400',
mention: '@accent',
modalBg: 'rgba(0, 0, 0, 0.3)',
buttonBg: 'rgba(0, 0, 0, 0.05)',
cwHoverBg: '#bbc4ce',
mentionMe: '@mention',
infoWarnBg: '#fff0db',
infoWarnFg: '#8f6e31',
navHoverFg: ':darken<17<@fg',
inputBorder: 'rgba(0, 0, 0, 0.1)',
inputBorderHover: 'rgba(0, 0, 0, 0.2)',
buttonHoverBg: 'rgba(0, 0, 0, 0.1)',
fgHighlighted: ':darken<3<@fg',
fgTransparent: ':alpha<0.5<@fg',
panelHighlight: ':darken<3<@panel',
listItemHoverBg: 'rgba(0, 0, 0, 0.03)',
scrollbarHandle: 'rgba(0, 0, 0, 0.2)',
wallpaperOverlay: 'rgba(255, 255, 255, 0.5)',
fgTransparentWeak: ':alpha<0.75<@fg',
panelHeaderDivider: '@divider',
scrollbarHandleHover: 'rgba(0, 0, 0, 0.4)',
X3: 'rgba(0, 0, 0, 0.05)',
X4: 'rgba(0, 0, 0, 0.1)',
X5: 'rgba(0, 0, 0, 0.05)',
X6: 'rgba(0, 0, 0, 0.25)',
X7: 'rgba(0, 0, 0, 0.05)',
X11: 'rgba(0, 0, 0, 0.1)',
X12: 'rgba(0, 0, 0, 0.1)',
X13: 'rgba(0, 0, 0, 0.15)',
},
}