つぶやき一件あたりURLを5件までに制限した。

ブツ

インストール&実行

NAME='Electron.MyLog.20220923085800'
git clone https://github.com/ytyaru/$NAME
cd $NAME
npm install
npm start

情報源

やったこと

一件あたりURLを5件までに制限した。

短縮URLにしたら140字以内でも10件くらい投稿できてしまうので。

text-to-html.js

テキストからURLらしき文字列の件数を返す。

static countUrl(text) { // text内にあるURLの数を数える
    const regexp_url = /(([http|https|ipfs]?:\/\/[a-zA-Z0-9.\-_@:/~?%&;=+#',()*!]+))/g;
    return text.match(regexp_url).length
}

mylog-db.js

DBにinsertするときにURL数をチェックする。5つより多いとエラー。

constructor() {
    this.URL_MAX_COUNT = 5
}
async insert(content, address=null) {
    if (this.URL_MAX_COUNT < TextToHtml.countUrl(content)) { throw new Error(`つぶやく内容に含めるURLは${this.URL_MAX_COUNT}つ以内にしてください。`) }
}

URL数制限について

基本的には140字制限のせいでたくさん書けない。URLがあればなおさら。でもURL短縮サービスを使うとたくさん書ける。つぶやきの範疇を超えてしまうので今回ように制限した。

気になるのはURLの長さに上限がないこと。最悪URLをひとつも書けず投稿できないこともありうる。URL短縮サービスを使えば解決できるが外部サービスに依存してしまう。はたしてどうするべきか。色々考えると複雑なので、ここで終わり。