つぶやき一件あたり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短縮サービスを使えば解決できるが外部サービスに依存してしまう。はたしてどうするべきか。色々考えると複雑なので、ここで終わり。