Merge branch 'develop'
This commit is contained in:
commit
6e7e11e061
11
CHANGELOG.md
11
CHANGELOG.md
|
@ -10,6 +10,17 @@
|
||||||
You should also include the user name that made the change.
|
You should also include the user name that made the change.
|
||||||
-->
|
-->
|
||||||
|
|
||||||
|
## 12.107.0 (2022/02/12)
|
||||||
|
|
||||||
|
### Improvements
|
||||||
|
- クライアント: テーマを追加 @syuilo
|
||||||
|
|
||||||
|
### Bugfixes
|
||||||
|
- API: stats APIで内部エラーが発生する問題を修正 @syuilo
|
||||||
|
- クライアント: ソフトミュートですべてがマッチしてしまう場合があるのを修正 @tamaina
|
||||||
|
- クライアント: デバイスのスクリーンのセーフエリアを考慮するように @syuilo
|
||||||
|
- クライアント: 一部環境でサイドバーの投稿ボタンが表示されない問題を修正 @syuilo
|
||||||
|
|
||||||
## 12.106.3 (2022/02/11)
|
## 12.106.3 (2022/02/11)
|
||||||
|
|
||||||
### Improvements
|
### Improvements
|
||||||
|
|
|
@ -831,6 +831,8 @@ smartphone: "Smartphone"
|
||||||
tablet: "Tablet"
|
tablet: "Tablet"
|
||||||
auto: "Automatisch"
|
auto: "Automatisch"
|
||||||
themeColor: "Instanzfarbe"
|
themeColor: "Instanzfarbe"
|
||||||
|
size: "Größe"
|
||||||
|
numberOfColumn: "Spaltenanzahl"
|
||||||
_emailUnavailable:
|
_emailUnavailable:
|
||||||
used: "Diese Email-Adresse wird bereits verwendet"
|
used: "Diese Email-Adresse wird bereits verwendet"
|
||||||
format: "Das Format dieser Email-Adresse ist ungültig"
|
format: "Das Format dieser Email-Adresse ist ungültig"
|
||||||
|
|
|
@ -829,6 +829,8 @@ smartphone: "Smartphone"
|
||||||
tablet: "Tablet"
|
tablet: "Tablet"
|
||||||
auto: "Auto"
|
auto: "Auto"
|
||||||
themeColor: "Theme Color"
|
themeColor: "Theme Color"
|
||||||
|
size: "Size"
|
||||||
|
numberOfColumn: "Number of columns"
|
||||||
_emailUnavailable:
|
_emailUnavailable:
|
||||||
used: "This email address is already being used"
|
used: "This email address is already being used"
|
||||||
format: "The format of this email address is invalid"
|
format: "The format of this email address is invalid"
|
||||||
|
|
|
@ -830,6 +830,8 @@ smartphone: "Smartfón"
|
||||||
tablet: "Tablet"
|
tablet: "Tablet"
|
||||||
auto: "Automaticky"
|
auto: "Automaticky"
|
||||||
themeColor: "Farba témy"
|
themeColor: "Farba témy"
|
||||||
|
size: "Veľkosť"
|
||||||
|
numberOfColumn: "Počet stĺpcov"
|
||||||
_emailUnavailable:
|
_emailUnavailable:
|
||||||
used: "Táto emailová adresa sa už používa"
|
used: "Táto emailová adresa sa už používa"
|
||||||
format: "Formát emailovej adresy je nesprávny"
|
format: "Formát emailovej adresy je nesprávny"
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "misskey",
|
"name": "misskey",
|
||||||
"version": "12.106.3",
|
"version": "12.107.0",
|
||||||
"codename": "indigo",
|
"codename": "indigo",
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import define from '../define';
|
import define from '../define';
|
||||||
import { NoteReactions, Notes, Users } from '@/models/index';
|
import { Instances, NoteReactions, Notes, Users } from '@/models/index';
|
||||||
import { federationChart, driveChart } from '@/services/chart/index';
|
import { } from '@/services/chart/index';
|
||||||
|
|
||||||
export const meta = {
|
export const meta = {
|
||||||
requireCredential: false,
|
requireCredential: false,
|
||||||
|
@ -63,7 +63,7 @@ export default define(meta, async () => {
|
||||||
Users.count({ where: { host: null }, cache: 3600000 }),
|
Users.count({ where: { host: null }, cache: 3600000 }),
|
||||||
NoteReactions.count({ cache: 3600000 }), // 1 hour
|
NoteReactions.count({ cache: 3600000 }), // 1 hour
|
||||||
//NoteReactions.count({ where: { userHost: null }, cache: 3600000 }),
|
//NoteReactions.count({ where: { userHost: null }, cache: 3600000 }),
|
||||||
federationChart.getChart('hour', 1, null).then(chart => chart.instance.total[0]),
|
Instances.count({ cache: 3600000 }),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|
|
@ -180,12 +180,12 @@ const setPosition = () => {
|
||||||
el.value.style.top = top + 'px';
|
el.value.style.top = top + 'px';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
let loopHandler;
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
nextTick(() => {
|
nextTick(() => {
|
||||||
setPosition();
|
setPosition();
|
||||||
|
|
||||||
let loopHandler;
|
|
||||||
|
|
||||||
const loop = () => {
|
const loop = () => {
|
||||||
loopHandler = window.requestAnimationFrame(() => {
|
loopHandler = window.requestAnimationFrame(() => {
|
||||||
setPosition();
|
setPosition();
|
||||||
|
@ -194,11 +194,11 @@ onMounted(() => {
|
||||||
};
|
};
|
||||||
|
|
||||||
loop();
|
loop();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
onUnmounted(() => {
|
onUnmounted(() => {
|
||||||
window.cancelAnimationFrame(loopHandler);
|
window.cancelAnimationFrame(loopHandler);
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -95,8 +95,7 @@ window.addEventListener('resize', () => {
|
||||||
if (['smartphone', 'tablet'].includes(deviceKind)) {
|
if (['smartphone', 'tablet'].includes(deviceKind)) {
|
||||||
const viewport = document.getElementsByName('viewport').item(0);
|
const viewport = document.getElementsByName('viewport').item(0);
|
||||||
viewport.setAttribute('content',
|
viewport.setAttribute('content',
|
||||||
`${viewport.getAttribute('content')},minimum-scale=1,maximum-scale=1,user-scalable=no`);
|
`${viewport.getAttribute('content')}, minimum-scale=1, maximum-scale=1, user-scalable=no, viewport-fit=cover`);
|
||||||
document.head.appendChild(viewport);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//#region Set lang attr
|
//#region Set lang attr
|
||||||
|
|
|
@ -7,7 +7,11 @@ export function checkWordMute(note: Record<string, any>, me: Record<string, any>
|
||||||
|
|
||||||
const matched = mutedWords.some(filter => {
|
const matched = mutedWords.some(filter => {
|
||||||
if (Array.isArray(filter)) {
|
if (Array.isArray(filter)) {
|
||||||
return filter.every(keyword => note.text!.includes(keyword));
|
// Clean up
|
||||||
|
const filteredFilter = filter.filter(keyword => keyword !== '');
|
||||||
|
if (filteredFilter.length === 0) return false;
|
||||||
|
|
||||||
|
return filteredFilter.every(keyword => note.text!.includes(keyword));
|
||||||
} else {
|
} else {
|
||||||
// represents RegExp
|
// represents RegExp
|
||||||
const regexp = filter.match(/^\/(.+)\/(.*)$/);
|
const regexp = filter.match(/^\/(.+)\/(.*)$/);
|
||||||
|
|
|
@ -20,6 +20,7 @@ export const builtinThemes = [
|
||||||
require('@/themes/l-apricot.json5'),
|
require('@/themes/l-apricot.json5'),
|
||||||
require('@/themes/l-rainy.json5'),
|
require('@/themes/l-rainy.json5'),
|
||||||
require('@/themes/l-vivid.json5'),
|
require('@/themes/l-vivid.json5'),
|
||||||
|
require('@/themes/l-cherry.json5'),
|
||||||
require('@/themes/l-sushi.json5'),
|
require('@/themes/l-sushi.json5'),
|
||||||
|
|
||||||
require('@/themes/d-dark.json5'),
|
require('@/themes/d-dark.json5'),
|
||||||
|
@ -27,6 +28,7 @@ export const builtinThemes = [
|
||||||
require('@/themes/d-astro.json5'),
|
require('@/themes/d-astro.json5'),
|
||||||
require('@/themes/d-future.json5'),
|
require('@/themes/d-future.json5'),
|
||||||
require('@/themes/d-botanical.json5'),
|
require('@/themes/d-botanical.json5'),
|
||||||
|
require('@/themes/d-cherry.json5'),
|
||||||
require('@/themes/d-pumpkin.json5'),
|
require('@/themes/d-pumpkin.json5'),
|
||||||
require('@/themes/d-black.json5'),
|
require('@/themes/d-black.json5'),
|
||||||
] as Theme[];
|
] as Theme[];
|
||||||
|
|
20
packages/client/src/themes/d-cherry.json5
Normal file
20
packages/client/src/themes/d-cherry.json5
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
{
|
||||||
|
id: '679b3b87-a4e9-4789-8696-b56c15cc33b0',
|
||||||
|
|
||||||
|
name: 'Mi Cherry Dark',
|
||||||
|
author: 'syuilo',
|
||||||
|
|
||||||
|
base: 'dark',
|
||||||
|
|
||||||
|
props: {
|
||||||
|
accent: 'rgb(255, 89, 117)',
|
||||||
|
bg: 'rgb(28, 28, 37)',
|
||||||
|
fg: 'rgb(236, 239, 244)',
|
||||||
|
panel: 'rgb(35, 35, 47)',
|
||||||
|
renote: '@accent',
|
||||||
|
link: '@accent',
|
||||||
|
mention: '@accent',
|
||||||
|
hashtag: '@accent',
|
||||||
|
divider: 'rgb(63, 63, 80)',
|
||||||
|
},
|
||||||
|
}
|
21
packages/client/src/themes/l-cherry.json5
Normal file
21
packages/client/src/themes/l-cherry.json5
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
{
|
||||||
|
id: 'ac168876-f737-4074-a3fc-a370c732ef48',
|
||||||
|
|
||||||
|
name: 'Mi Cherry Light',
|
||||||
|
author: 'syuilo',
|
||||||
|
|
||||||
|
base: 'light',
|
||||||
|
|
||||||
|
props: {
|
||||||
|
accent: 'rgb(219, 96, 114)',
|
||||||
|
bg: 'rgb(254, 248, 249)',
|
||||||
|
fg: 'rgb(152, 13, 26)',
|
||||||
|
panel: 'rgb(255, 255, 255)',
|
||||||
|
renote: '@accent',
|
||||||
|
link: 'rgb(156, 187, 5)',
|
||||||
|
mention: '@accent',
|
||||||
|
hashtag: '@accent',
|
||||||
|
divider: 'rgba(134, 51, 51, 0.1)',
|
||||||
|
inputBorderHover: 'rgb(238, 221, 222)',
|
||||||
|
},
|
||||||
|
}
|
|
@ -305,7 +305,7 @@ export default defineComponent({
|
||||||
|
|
||||||
&.post:before {
|
&.post:before {
|
||||||
width: calc(100% - 28px);
|
width: calc(100% - 28px);
|
||||||
height: min-content;
|
height: auto;
|
||||||
aspect-ratio: 1/1;
|
aspect-ratio: 1/1;
|
||||||
border-radius: 100%;
|
border-radius: 100%;
|
||||||
}
|
}
|
||||||
|
|
|
@ -276,7 +276,7 @@ export default defineComponent({
|
||||||
}
|
}
|
||||||
|
|
||||||
> * {
|
> * {
|
||||||
font-size: 22px;
|
font-size: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
&:disabled {
|
&:disabled {
|
||||||
|
|
|
@ -340,13 +340,14 @@ const wallpaper = localStorage.getItem('wallpaper') != null;
|
||||||
z-index: 1000;
|
z-index: 1000;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
left: 0;
|
left: 0;
|
||||||
padding: 16px;
|
padding: 16px 16px calc(env(safe-area-inset-bottom, 0px) + 16px) 16px;
|
||||||
display: flex;
|
display: flex;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
-webkit-backdrop-filter: var(--blur, blur(32px));
|
-webkit-backdrop-filter: var(--blur, blur(32px));
|
||||||
backdrop-filter: var(--blur, blur(32px));
|
backdrop-filter: var(--blur, blur(32px));
|
||||||
background-color: var(--header);
|
background-color: var(--header);
|
||||||
|
border-top: solid 0.5px var(--divider);
|
||||||
|
|
||||||
> .button {
|
> .button {
|
||||||
position: relative;
|
position: relative;
|
||||||
|
@ -392,7 +393,7 @@ const wallpaper = localStorage.getItem('wallpaper') != null;
|
||||||
}
|
}
|
||||||
|
|
||||||
> * {
|
> * {
|
||||||
font-size: 22px;
|
font-size: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
&:disabled {
|
&:disabled {
|
||||||
|
|
Loading…
Reference in a new issue