niconicomments documentation

About

https://xpadev-net.github.io/niconicomments/

TypeDoc: https://xpadev-net.github.io/niconicomments/type/

https://github.com/xpadev-net/niconicomments

npm: https://www.npmjs.com/package/@xpadev-net/niconicomments

Sample

Install

NodeJS:

npm i @xpadev-net/niconicomments

Web:

<script src="https://cdn.jsdelivr.net/npm/@xpadev-net/niconicomments@latest/dist/bundle.min.js"></script>

Example

const canvas = document.getElementById("canvas");
const video = document.getElementById("video");
const req = await fetch("sample.json");
const res = await req.json();
const niconiComments = new NiconiComments(canvas, res);
setInterval(() => niconiComments.drawCanvas(Math.floor(video.currentTime * 100)), 10);

const canvas = document.getElementById("canvas");
const video = document.getElementById("video");
const req = await fetch("sample.json");
const res = await req.json();
const renderer = new NiconiComments.internal.renderer.CanvasRenderer(canvas);
const niconiComments = new NiconiComments(renderer, res);
setInterval(() => niconiComments.drawCanvas(Math.floor(video.currentTime * 100)), 10);

Class

class NiconiComments(canvas:HTMLCanvasElement | IRenderer, data:inputFormat, options:InitOptions)

このライブラリの本体です

Parameters

canvas:HTMLCanvasElement | IRenderer

data:inputFormat

options:InitOptions

config:Config = {}

debug:boolean = false

enableLegacyPiP:boolean = false

format:inputFormatType = "legacy"

入力フォーマットを指定します

対応しているフォーマットは以下のとおりです

名前 dataのtype 備考
niconicome XMLDocument XMLをDOMParserでparseFromStringしたものを渡してください
formatted formattedComment[] | formattedLegacyComment[] user_idとlayerが含まれない場合はformattedLegacyCommentになります
legacy rawApiResponse[] legacy apiのレスポンスをJSON.parseしたものを渡してください
owner ownerComment[] 投稿者コメント編集画面のエディータのjsonをそのまま渡してください
legacyOwner string 旧投稿者コメント編集画面のエディータの文字列(改行含む)をそのまま渡してください
v1 v1Thread[] v1 apiのdata以下threadsの内容を渡してください

formatted:boolean = false

このオプションは非推奨です。formatオプションを使用してください

コメントデータが独自フォーマットかを指定します

デフォルト(false)の場合は独自フォーマットに変換を行ってから処理を行います

trueの場合はそのまま処理を行います

keepCA:boolean = false

mode:modeType = "default"

scale:number = 1

showCollision:boolean = false

showCommentCount:boolean = false

showFPS:boolean = false

useLegacy:boolean = false

video:HTMLVideoElement | null = null

Methods

addComments(...comments:formattedComment):void

addEventListener(eventName:CommentEventName, eventHandler:CommentEventHandler):void

removeEventListener(eventName:CommentEventName, eventHandler:CommentEventHandler):void

drawCanvas(vpos:number):void

clear():void

Custom Commands

niconicomments独自のコマンド

Flash

format

nico:flash

自動モード時にFlash版コメントとしての処理を強制します

※HTML5モード時は無視されます

※自動モード時にHTML5版コメントとしての処理を強制させたい場合はdefont、mincho、gothicのいずれかを使用してください

Stroke Color

format

nico:stroke:(color|color code)

example

nico:stroke:red
nico:stroke:#f0f
nico:stroke:#fff5

コメントの縁取りの色を変更するできます

色の指定は色コマンドまたはカラーコードで行ってください

カラーコードは透明度も指定可能です

Waku

format

nico:waku:(color|color code)

example

nico:waku:red
nico:waku:#f0f
nico:waku:#fff5

コメント単位で枠の表示を制御できます

色の指定は色コマンドまたはカラーコードで行ってください

カラーコードは透明度も指定可能です

Fill

format

nico:fill:(color|color code)

example

nico:fill:red
nico:fill:#f0f
nico:fill:#fff5

コメント単位で背景色の表示を制御できます

色の指定は色コマンドまたはカラーコードで行ってください

カラーコードは透明度も指定可能です