Compare commits

...

6 Commits

Author SHA1 Message Date
syuilo
60a11f8da5 11.0.0-beta.10 2019-04-13 18:58:48 +09:00
syuilo
1181fcdceb Fix bug 2019-04-13 18:58:29 +09:00
syuilo
8cb9852058 リプライ先をエラー時に無視すると本来は投票なのに投票じゃないと扱われおかしくなるのでエラーにするように 2019-04-13 18:45:07 +09:00
syuilo
53d46d1cbe Fix error 2019-04-13 18:23:32 +09:00
syuilo
275e1c8de9 Refactor 2019-04-13 18:17:27 +09:00
syuilo
d46eca4c87 Refactor 2019-04-13 18:14:32 +09:00
7 changed files with 25 additions and 21 deletions

View File

@@ -1,7 +1,7 @@
{
"name": "misskey",
"author": "syuilo <i@syuilo.com>",
"version": "11.0.0-beta.9",
"version": "11.0.0-beta.10",
"codename": "daybreak",
"repository": {
"type": "git",

View File

@@ -20,7 +20,7 @@ export async function getFallbackReaction(): Promise<string> {
return meta.useStarForReactionFallback ? 'star' : 'like';
}
export async function toDbReaction(reaction: string, enableEmoji = true): Promise<string> {
export async function toDbReaction(reaction?: string | null, enableEmoji = true): Promise<string> {
if (reaction == null) return await getFallbackReaction();
// 既存の文字列リアクションはそのまま

View File

@@ -120,13 +120,15 @@ export async function createNote(value: any, resolver?: Resolver, silent = false
: [];
// リプライ
const reply: Note | undefined | null = note.inReplyTo
? await resolveNote(note.inReplyTo, resolver).catch(e => {
// 4xxの場合はリプライしてないことにする
if (e.statusCode >= 400 && e.statusCode < 500) {
logger.warn(`Ignored inReplyTo ${note.inReplyTo} - ${e.statusCode} `);
return null;
const reply: Note | null = note.inReplyTo
? await resolveNote(note.inReplyTo, resolver).then(x => {
if (x == null) {
logger.warn(`Specified inReplyTo, but nout found`);
throw 'inReplyTo not found';
} else {
return x;
}
}).catch(e => {
logger.warn(`Error in inReplyTo ${note.inReplyTo} - ${e.statusCode || e}`);
throw e;
})
@@ -150,11 +152,11 @@ export async function createNote(value: any, resolver?: Resolver, silent = false
const cw = note.summary === '' ? null : note.summary;
// テキストのパース
const text = note._misskey_content || fromHtml(note.content);
const text = note._misskey_content || (note.content ? fromHtml(note.content) : null);
// vote
if (reply && reply.hasPoll) {
const poll = await Polls.findOne({ noteId: reply.id }).then(ensure);
const poll = await Polls.findOne(reply.id).then(ensure);
const tryCreateVote = async (name: string, index: number): Promise<null> => {
if (poll.expiresAt && Date.now() > new Date(poll.expiresAt).getTime()) {

View File

@@ -12,7 +12,7 @@ export interface IObject {
attachment?: any[];
inReplyTo?: any;
replies?: ICollection;
content: string;
content?: string;
name?: string;
startTime?: Date;
endTime?: Date;
@@ -44,16 +44,16 @@ export interface IOrderedCollection extends IObject {
export interface INote extends IObject {
type: 'Note' | 'Question';
_misskey_content: string;
_misskey_quote: string;
_misskey_question: string;
_misskey_content?: string;
_misskey_quote?: string;
_misskey_question?: string;
}
export interface IQuestion extends IObject {
type: 'Note' | 'Question';
_misskey_content: string;
_misskey_quote: string;
_misskey_question: string;
_misskey_content?: string;
_misskey_quote?: string;
_misskey_question?: string;
oneOf?: IQuestionChoice[];
anyOf?: IQuestionChoice[];
endTime?: Date;
@@ -129,7 +129,7 @@ export interface IRemove extends IActivity {
export interface ILike extends IActivity {
type: 'Like';
_misskey_reaction: string;
_misskey_reaction?: string;
}
export interface IAnnounce extends IActivity {

View File

@@ -8,7 +8,7 @@ import { genId } from '../../../misc/gen-id';
import { createNotification } from '../../create-notification';
export default async function(user: User, note: Note, choice: number) {
const poll = await Polls.findOne({ noteId: note.id });
const poll = await Polls.findOne(note.id);
if (poll == null) throw 'poll not found';

View File

@@ -16,7 +16,7 @@ import { NoteReaction } from '../../../models/entities/note-reaction';
import { createNotification } from '../../create-notification';
import { isDuplicateKeyValueError } from '../../../misc/is-duplicate-key-value-error';
export default async (user: User, note: Note, reaction: string) => {
export default async (user: User, note: Note, reaction?: string) => {
// Myself
if (note.userId === user.id) {
throw new IdentifiableError('2d8e7297-1873-4c00-8404-792c68d7bef0', 'cannot react to my note');

View File

@@ -63,7 +63,9 @@ export async function updateHashtag(user: User, tag: string, isUserAttached = fa
}
}
q.execute();
if (Object.keys(set).length > 0) {
q.execute();
}
} else {
if (isUserAttached) {
Hashtags.save({