mastodonでトゥートできる文字数制限を500字以上にしたい
前提
mastodonはオープンソースですので、誰でも改造が可能ですが、このシステムは使い方によっては他のサーバーにいるユーザーに迷惑をかける可能性があります。トゥートの投稿は用法用量を守って行いましょう。また、この記事を見たうえで文字数制限を緩和し、それにより何らかの迷惑行為が発生した場合、私は一切の責任を負いかねます。
作業をするにょ
まずはmastodonユーザーに変更します。そして、ファイルを色々いじります。
app/javascript/mastodon/features/compose/components/compose_form.js
というファイルをいじります。
su - mastodon cd live vi app/javascript/mastodon/features/compose/components/compose_form.js
ファイル内で「/500」と検索し、数値を任意の値にします。今回は2023文字にしたいので、2023に変更してます。93行目と280行目にあると思います。2ヶ所修正しましょう。
「return~~」の方が93行目、「<characterCounter~~」の方が280行目です。
return !(isSubmitting || isUploading || isChangingUpload || length(fulltext) > 2023 || (isOnlyWhitespace && !anyMedia)); } <CharacterCounter max={2023} text={this.getFulltextForCharacterCounting()} />
続いてapp/validators/status_length_validator.rb
というファイルを編集します。
MAX_CHARSの部分の1か所のみ任意の値にします。今回は2023文字にするので、2023と入力します。
# frozen_string_literal: true class StatusLengthValidator < ActiveModel::Validator MAX_CHARS = 2023 URL_PLACEHOLDER_CHARS = 23 URL_PLACEHOLDER = 'x' * 23 def validate(status)
3つ目にapp/serializers/rest/instance_serializer.rb
というファイルを編集します。
12行目にある「attributes」の中に「:lanuages」だの「:configuration」だのいろんな文字が書かれると思います。
その一番下の「:registrations」の横に「:max_toot_chars」を追記します。
この時、「:registrations」の後ろに「,」を付ける事と、「:configuration」の前にコロンを付ける事を忘れないでください。
# frozen_string_literal: true class REST::InstanceSerializer < ActiveModel::Serializer class ContactSerializer < ActiveModel::Serializer attributes :email has_one :account, serializer: REST::AccountSerializer end include RoutingHelper attributes :domain, :title, :version, :source_url, :description, :usage, :thumbnail, :languages, :configuration, :registrations, :max_toot_chars has_one :contact, serializer: ContactSerializer has_many :rules, serializer: REST::RuleSerializer
同じファイルでもう1か所追記します。一番下に移動して、下記のコードを加えてください。
def max_toot_chars <任意の文字数> end
「<任意の文字数>」は2つのファイルで指定した数値です。なので、私の場合は以下のようになります。
def max_toot_chars 2023 end
これでファイル編集作業は終了です。
最後にプリコンパイルをして反映させて、再起動をかければ反映されていると思います。
RAILS_ENV=production bundle exec rails assets:precompile #←少し時間かかります。 exit sudo systemctl restart mastodon-*
最後に
この文字数に関するプログラムですが、私は利用者と鯖缶の間でしっかりとコミュニケーションをとって、最適な文字数にすることが最大のポイントだと思っております。
冒頭でも言いましたが、やろうと思えば4096文字とかもできます。
ただ、やりすぎるとTLの治安が悪くなったりして他の方に迷惑がかかる場合があります。
ちなみに今回は文字数を増やしましたが、数値次第で減らすことも可能です。
文字数制限1文字のサーバーとか、前にあったような。
とにかく、鯖缶は利用者に対しての許容範囲をしっかりと定め、荒らされない良い塩梅を見つけましょう。
そして、それでも荒らされて迷惑行為に発展する場合は容赦なくモデレーションしましょう。