Twitter の入力可能文字数増加に伴い twitter-text ライブラリも更新されるようです

twitter-text とは

GitHub
文字数のカウントをしたりユーザー名やハッシュタグを抜き出すことができる公式提供のライブラリ。
Java, JavaScript, Ruby, Objective-C が提供されています。C# については後述。

twitter-text 2.0

Updating the character limit (and the twitter-text library)
アップデート自体はまだのようですが Unicode の重みづけに基づき計算されるようになります。
設定にもパラメーターが追加されます。
ドキュメント にある通り以前のバージョンでは複数のヘルパーメソッドが定義されていましたが、
2.0では parseTweet 1つになり、以下のパラメーターを返すようになります。

パラメーター 説明
weightedLength [int] 新アルゴリズムによる加重長
permillage [int] 加重最大長から加重長を引いた割合
isValid [bool] 有効なツイートか
displayTextRange ツイート文字列の開始と終了のインデックスによる表示範囲。
validDisplayTextRange 有効なテキストに対する表示範囲を示す開始と終了のインデックス。終了インデックスはdisplayTextRangeより少なくなる。

非推奨

tweetLengthremaining character count に関するメソッドは非推奨になり、将来のバージョンで削除されます。

推奨

残り文字数の表示には絶対的な数値の表示より進行ベースのUIの採用を推奨します。
parseTweet における permillage パラメーターはちょうどこのために追加されました。

twitter-text 設定


{
  "version": 2,
  "maxWeightedTweetLength": 280,
  "scale": 100,
  "defaultWeight": 200,
  "transformedURLLength": 23,
  "ranges": [
    {
      "start": 0,
      "end": 4351,
      "weight": 100
    },
    {
      "start": 8192,
      "end": 8205,
      "weight": 100
    },
    {
      "start": 8208,
      "end": 8223,
      "weight": 100
    },
    {
      "start": 8242,
      "end": 8247,
      "weight": 100
    }
  ]
}

Sample


    - description: "Regular Tweet with url"
      text: "Hi http://test.co"
      expected:
        weightedLength: 26
        valid: true
        permillage: 92
        displayRangeStart: 0
        displayRangeEnd: 16
        validRangeStart: 0
        validRangeEnd: 16

C# 版

C# でツイートの文字数をカウントする
twitter-text-cs の紹介記事です。公式の twitter-text 共々対応待ちです。

おまけ


カテゴリー: Twitter タグ: パーマリンク