Constructors

Properties

enableLegacyPiP: boolean
showCollision: boolean
showCommentCount: boolean
showFPS: boolean
default: typeof default = NiconiComments
FlashComment: {
    class: typeof FlashComment;
    condition: ((comment: {
        content: string;
        date: number;
        date_usec: number;
        id: number;
        is_my_post: boolean;
        layer: number;
        mail: string[];
        owner: boolean;
        premium: boolean;
        user_id: number;
        vpos: number;
    }) => boolean);
} = ...

Type declaration

  • class: typeof FlashComment
  • condition: ((comment: {
        content: string;
        date: number;
        date_usec: number;
        id: number;
        is_my_post: boolean;
        layer: number;
        mail: string[];
        owner: boolean;
        premium: boolean;
        user_id: number;
        vpos: number;
    }) => boolean)
      • (comment): boolean
      • コメントがFlash適用対象化判定返す

        Parameters

        • comment: {
              content: string;
              date: number;
              date_usec: number;
              id: number;
              is_my_post: boolean;
              layer: number;
              mail: string[];
              owner: boolean;
              premium: boolean;
              user_id: number;
              vpos: number;
          }

          コメントデータ

          • content: string
          • date: number
          • date_usec: number
          • id: number
          • is_my_post: boolean
          • layer: number
          • mail: string[]
          • owner: boolean
          • premium: boolean
          • user_id: number
          • vpos: number

        Returns boolean

        Flash適用対象かどうか

internal: internal = internal
typeGuard: {
    comment: {
        color: ((i: unknown) => i is
            | "white"
            | "red"
            | "pink"
            | "orange"
            | "yellow"
            | "green"
            | "cyan"
            | "blue"
            | "purple"
            | "black"
            | "white2"
            | "niconicowhite"
            | "red2"
            | "truered"
            | "pink2"
            | "orange2"
            | "passionorange"
            | "yellow2"
            | "madyellow"
            | "green2"
            | "elementalgreen"
            | "cyan2"
            | "blue2"
            | "marinblue"
            | "purple2"
            | "nobleviolet"
            | "black2");
        colorCode: ((i: unknown) => i is string);
        colorCodeAllowAlpha: ((i: unknown) => i is string);
        command: {
            key: ((i: unknown) => i is
                | "full"
                | "ender"
                | "_live"
                | "invisible");
        };
        font: ((i: unknown) => i is
            | "defont"
            | "mincho"
            | "gothic"
            | "gulim"
            | "simsun");
        loc: ((i: unknown) => i is "ue" | "naka" | "shita");
        size: ((i: unknown) => i is "big" | "small" | "medium");
    };
    config: {
        initOptions: ((item: unknown) => item is Partial<BaseOptions>);
    };
    formatted: {
        comment: ((i: unknown) => i is {
            content: string;
            date: number;
            date_usec: number;
            id: number;
            is_my_post: boolean;
            layer: number;
            mail: string[];
            owner: boolean;
            premium: boolean;
            user_id: number;
            vpos: number;
        });
        comments: ((i: unknown) => i is {
            content: string;
            date: number;
            date_usec: number;
            id: number;
            is_my_post: boolean;
            layer: number;
            mail: string[];
            owner: boolean;
            premium: boolean;
            user_id: number;
            vpos: number;
        }[]);
        legacyComment: ((i: unknown) => i is {
            content: string;
            date: number;
            date_usec: number;
            id: number;
            mail: string[];
            owner: boolean;
            premium: boolean;
            vpos: number;
        });
        legacyComments: ((i: unknown) => i is {
            content: string;
            date: number;
            date_usec: number;
            id: number;
            mail: string[];
            owner: boolean;
            premium: boolean;
            vpos: number;
        }[]);
    };
    internal: {
        CommentMeasuredContentItem: ((i: unknown) => i is {
            char: string;
            charWidth: number;
            count: number;
            font?: "defont" | "gulim" | "simsun";
            isButton?: boolean;
            type: "spacer";
        } | (({ type: "spacer"; char: string; charWidth: number; isButton?: boolean | undefined; font?: "defont" | "gulim" | "simsun" | undefined; count: number; } | { type: "text"; content: string; slicedContent: string[]; isButton?: boolean | undefined; font?: "defont" | ... 2 more ... | undefined; width?: number[] | undefined...));
        CommentMeasuredContentItemArray: ((i: unknown) => i is ({
            char: string;
            charWidth: number;
            count: number;
            font?: "defont" | "gulim" | "simsun";
            isButton?: boolean;
            type: "spacer";
        } | (({ type: "spacer"; char: string; charWidth: number; isButton?: boolean | undefined; font?: "defont" | "gulim" | "simsun" | undefined; count: number; } | { type: "text"; content: string; slicedContent: string[]; isButton?: boolean | undefined; font?: "defont" | ... 2 more ... | undefined; width?: number[] | undefined...))[]);
        HTML5Fonts: ((i: unknown) => i is "defont" | "mincho" | "gothic");
        MeasureInput: ((i: unknown) => i is {
            charSize: number;
            content: ({
                char: string;
                charWidth: number;
                count: number;
                font?: "defont" | "gulim" | "simsun";
                isButton?: boolean;
                type: "spacer";
            } | {
                content: string;
                font?: "defont" | "gulim" | "simsun";
                isButton?: boolean;
                slicedContent: string[];
                type: "text";
                width?: number[];
            })[];
            font:
                | "defont"
                | "mincho"
                | "gothic"
                | "gulim"
                | "simsun";
            lineCount: number;
            lineHeight: number;
        });
        MultiConfigItem: (<T>(i: unknown) => i is MultiConfigItem<T>);
    };
    legacy: {
        apiChat: ((i: unknown) => i is {
            anonymity: number;
            content: string;
            date: number;
            date_usec: number;
            deleted: number;
            mail: string;
            nicoru: number;
            no: number;
            premium: number;
            thread: string;
            user_id: string;
            vpos: number;
        });
        apiGlobalNumRes: ((i: unknown) => i is {
            num_res: number;
            thread: string;
        });
        apiLeaf: ((i: unknown) => i is {
            count: number;
            thread: string;
        });
        apiPing: ((i: unknown) => i is {
            content: string;
        });
        apiThread: ((i: unknown) => i is {
            resultcode: number;
            revision: number;
            server_time: number;
            thread: string;
            ticket: string;
        });
        rawApiResponses: ((i: unknown) => i is ({} | {
            chat: {
                anonymity: number;
                content: string;
                date: number;
                date_usec: number;
                deleted: number;
                mail: string;
                nicoru: number;
                no: number;
                premium: number;
                thread: string;
                user_id: string;
                vpos: number;
            };
        })[]);
    };
    legacyOwner: {
        comments: ((i: unknown) => i is string);
    };
    nicoScript: {
        range: {
            target: ((i: unknown) => i is "コメ" | "投コメ" | "全");
        };
        replace: {
            condition: ((i: unknown) => i is "部分一致" | "完全一致");
            range: ((i: unknown) => i is "全" | "単");
            target: ((i: unknown) => i is
                | "コメ"
                | "投コメ"
                | "全"
                | "含まない"
                | "含む");
        };
    };
    owner: {
        comment: ((i: unknown) => i is {
            command: string;
            comment: string;
            time: string;
        });
        comments: ((i: unknown) => i is {
            command: string;
            comment: string;
            time: string;
        }[]);
    };
    v1: {
        comment: ((i: unknown) => i is {
            body: string;
            commands: string[];
            id: string;
            isMyPost: boolean;
            isPremium: boolean;
            nicoruCount: number;
            nicoruId: null | string;
            no: number;
            postedAt: string;
            score: number;
            source: string;
            userId: string;
            vposMs: number;
        });
        comments: ((i: unknown) => i is {
            body: string;
            commands: string[];
            id: string;
            isMyPost: boolean;
            isPremium: boolean;
            nicoruCount: number;
            nicoruId: null | string;
            no: number;
            postedAt: string;
            score: number;
            source: string;
            userId: string;
            vposMs: number;
        }[]);
        thread: ((i: unknown) => i is {
            commentCount: number;
            comments: {
                body: string;
                commands: string[];
                id: string;
                isMyPost: boolean;
                isPremium: boolean;
                nicoruCount: number;
                nicoruId: null | string;
                no: number;
                postedAt: string;
                score: number;
                source: string;
                userId: string;
                vposMs: number;
            }[];
            fork: string;
            id: unknown;
        });
        threads: ((i: unknown) => i is {
            commentCount: number;
            comments: {
                body: string;
                commands: string[];
                id: string;
                isMyPost: boolean;
                isPremium: boolean;
                nicoruCount: number;
                nicoruId: null | string;
                no: number;
                postedAt: string;
                score: number;
                source: string;
                userId: string;
                vposMs: number;
            }[];
            fork: string;
            id: unknown;
        }[]);
    };
    xml2js: {
        chat: ((i: unknown) => i is {
            chat: {
                _: string;
                $: {
                    date: string;
                    date_usec: string;
                    mail: string;
                    no?: string;
                    owner: string;
                    premium: string;
                    user_id?: string;
                    vpos: string;
                };
            }[];
        });
        chatItem: ((i: unknown) => i is {
            _: string;
            $: {
                date: string;
                date_usec: string;
                mail: string;
                no?: string;
                owner: string;
                premium: string;
                user_id?: string;
                vpos: string;
            };
        });
        packet: ((i: unknown) => i is {
            packet: {
                chat: {
                    _: string;
                    $: {
                        date: string;
                        date_usec: string;
                        mail: string;
                        no?: string;
                        owner: string;
                        premium: string;
                        user_id?: string;
                        vpos: string;
                    };
                }[];
            };
        });
    };
    xmlDocument: ((i: unknown) => i is XMLDocument);
} = typeGuard

Methods

  • 動的にコメント追加する ※すでに存在するコメントの位置はvposに関係なく更新されません

    Parameters

    • Rest...rawComments: {
          content: string;
          date: number;
          date_usec: number;
          id: number;
          is_my_post: boolean;
          layer: number;
          mail: string[];
          owner: boolean;
          premium: boolean;
          user_id: number;
          vpos: number;
      }[]

      コメントデータ

    Returns void

  • キャンバスを消去する

    Returns void

  • @ボタンの呼び出し用

    Parameters

    • vpos: number

      再生位置

    • pos: Position

      カーソルの位置

    Returns void

  • キャンバスを描画する

    Parameters

    • vpos: number

      動画の現在位置の100倍 ニコニコから吐き出されるコメントの位置情報は主にこれ

    • forceRendering: boolean = false

      キャッシュを使用せずに再描画を強制するか

    • Optionalcursor: Position

      カーソルの位置

    Returns boolean

    再描画されたか