0%

Cambiar límite de caracteres en Mastodon

En esta entrada vamos a contar de forma breve como cambiar el número de caracteres en mastodon.
Para hacerlo, seguiremos 3 sencillos siguientes pasos:
(nota: este tutorial se ha hecho usando mastodon 4.2.0 aunque es válido para 4.1 en adelante)

  1. Separar la rama de git del repositorio de mastodon
  2. Editar archivos de mastodon
  3. Reconstruir y/o reiniciar

AVISO: Esto ha cambiado en la versión 4.3.0, no mucho, solo que hay que editar un archivo menos.

Paso 1: Separar la rama de git del repositorio de mastodon

Para ello tenemos que ir a nuestro repositorio de mastodon, en una instalación local suele estar alojada /home/mastodon/live asi que usaremos de ejemplo esa ruta, aunque puede estar donde esté.

1
cd /home/mastodon/live

Una vez dentro de la carpeta del repositorio, creamos una rama nueva, que vamos a llamar “mod”, para ello llamamos al comando checkout con el flag -b que lo que hace es crear una rama nueva y hacer el checkout desde donde estamos.

1
git checkout -b mod

Y con esto ya tenemos nuestra rama separada

Paso 2: Editar archivos de mastodon

Una vez hecho esto, editamos los archivos de mastodon que implican el número limite de caracteres, empezaremos con app/javascript/mastodon/features/compose/components/compose_form.jsx donde nos encontraremos en la linea 103:

AVISO: Este archivo no hace falta modificarlo a partir de la versión 4.3.0, si usas esa versión o una posterior salta al archivo app/validators/status_length_validator.rb

1
2
3
4
5
6
7
canSubmit = () => {
const { isSubmitting, isChangingUpload, isUploading, anyMedia } = this.props;
const fulltext = this.getFulltextForCharacterCounting();
const isOnlyWhitespace = fulltext.length !== 0 && fulltext.trim().length === 0;

return !(isSubmitting || isUploading || isChangingUpload || length(fulltext) > 500 || (isOnlyWhitespace && !anyMedia)); //esta es la linea 103
};

Y en la linea 300

1
<CharacterCounter max={500} text={this.getFulltextForCharacterCounting()} />

Esos dos numeros hay que cambiarlos por el límite deseado

Luego, en el archivo app/validators/status_length_validator.rb en la linea 4 nos encontramos una variable de MAX_CHARS que la cambiaremos al número que queramos. (Nota: Este es el único archivo que hay que editar en la rama 4.3.0 en adelante)

1
2
3
4
# frozen_string_literal: true

class StatusLengthValidator < ActiveModel::Validator
MAX_CHARS = 500 # numero a cambiar por el que quieras

Una vez hecho esto, aplicamos los cambios a la rama

1
2
git add --all # aplicando cambios a la rama
git commit -m "Cambiando el numero de caracteres a XXX" # guardando cambios en la rama con el mensaje

Paso 3: Reconstruir y/o reiniciar

Una vez hecho esto, tenemos dos casos, si tienes mastodon en local, se recompila:

1
RAILS_ENV=production bundle exec rails assets:precompile

y se reinicia:

1
2
3
systemctl restart mastodon-sidekiq
systemctl reload mastodon-web
systemctl restart mastodon-streaming

En caso de tener mastodon en docker, reconstruimos la imagen

1
docker build . -t "ghcr.io/mastodon/mastodon:v4.2.0" # esta etiqueta puede ser personalizada, dependiendo de como esté reflejado en el archivo docker-compose.yml

y cuando esté lista, levantamos los contenedores

1
docker-compose up -d

Final

Y con eso ya tendríamos el limite de caracteres actualizado ^_^U

Espero que sea util a alguien, en el futuro a ver si subo un tutorial para instalar mastodon usando docker.

¡A tocarlo todo!