summary refs log tree commit diff stats
path: root/system/services/mastodon
diff options
context:
space:
mode:
Diffstat (limited to 'system/services/mastodon')
-rw-r--r--system/services/mastodon/default.nix12
-rw-r--r--system/services/mastodon/patches/0001-feat-treewide-Increase-character-limit-to-5000-in-me.patch40
-rw-r--r--system/services/mastodon/patches/mastodon_v4.2.1-maxchar-5000.patch34
3 files changed, 47 insertions, 39 deletions
diff --git a/system/services/mastodon/default.nix b/system/services/mastodon/default.nix
index 8e2c174..f613bf3 100644
--- a/system/services/mastodon/default.nix
+++ b/system/services/mastodon/default.nix
@@ -4,17 +4,19 @@
   ...
 }: let
   emailAddress = "mastodon@vhack.eu";
+  applyPatches = pkg:
+    pkg.overrideAttrs (attrs: {
+      patches = (attrs.patches or []) ++ [./patches/0001-feat-treewide-Increase-character-limit-to-5000-in-me.patch];
+    });
 in {
   services.mastodon = {
     enable = true;
 
-    package = pkgs.mastodon.overrideAttrs (attrs: {
-      patches = (attrs.patches or []) ++ [./patches/mastodon_v4.2.1-maxchar-5000.patch];
-    });
+    package = applyPatches pkgs.mastodon;
 
     # Unstable Mastodon package, used if
-    #security updates aren't backported.
-    #package = pkgs-unstable.mastodon;
+    # security updates aren't backported.
+    #package = applyPatches pkgs-unstable.mastodon;
 
     localDomain = "vhack.eu";
     smtp = {
diff --git a/system/services/mastodon/patches/0001-feat-treewide-Increase-character-limit-to-5000-in-me.patch b/system/services/mastodon/patches/0001-feat-treewide-Increase-character-limit-to-5000-in-me.patch
new file mode 100644
index 0000000..35dc809
--- /dev/null
+++ b/system/services/mastodon/patches/0001-feat-treewide-Increase-character-limit-to-5000-in-me.patch
@@ -0,0 +1,40 @@
+From ab67426c53d343eee349de501767ecbbf5d211ad Mon Sep 17 00:00:00 2001
+From: Benedikt Peetz <benedikt.peetz@b-peetz.de>
+Date: Sat, 21 Dec 2024 20:07:11 +0100
+Subject: [PATCH] feat(treewide): Increase character limit to 5000 in messages
+
+The default of 500 was just not enough.
+---
+ .../features/compose/containers/compose_form_container.js       | 2 +-
+ app/validators/status_length_validator.rb                       | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/app/javascript/mastodon/features/compose/containers/compose_form_container.js b/app/javascript/mastodon/features/compose/containers/compose_form_container.js
+index bda2edba6..76ac65bf3 100644
+--- a/app/javascript/mastodon/features/compose/containers/compose_form_container.js
++++ b/app/javascript/mastodon/features/compose/containers/compose_form_container.js
+@@ -28,7 +28,7 @@ const mapStateToProps = state => ({
+   anyMedia: state.getIn(['compose', 'media_attachments']).size > 0,
+   isInReply: state.getIn(['compose', 'in_reply_to']) !== null,
+   lang: state.getIn(['compose', 'language']),
+-  maxChars: state.getIn(['server', 'server', 'configuration', 'statuses', 'max_characters'], 500),
++  maxChars: state.getIn(['server', 'server', 'configuration', 'statuses', 'max_characters'], 5000),
+ });
+ 
+ const mapDispatchToProps = (dispatch) => ({
+diff --git a/app/validators/status_length_validator.rb b/app/validators/status_length_validator.rb
+index dc841ded3..9cb1ec94b 100644
+--- a/app/validators/status_length_validator.rb
++++ b/app/validators/status_length_validator.rb
+@@ -1,7 +1,7 @@
+ # frozen_string_literal: true
+ 
+ class StatusLengthValidator < ActiveModel::Validator
+-  MAX_CHARS = 500
++  MAX_CHARS = 5000
+   URL_PLACEHOLDER_CHARS = 23
+   URL_PLACEHOLDER = 'x' * 23
+ 
+-- 
+2.47.0
+
diff --git a/system/services/mastodon/patches/mastodon_v4.2.1-maxchar-5000.patch b/system/services/mastodon/patches/mastodon_v4.2.1-maxchar-5000.patch
deleted file mode 100644
index e48a993..0000000
--- a/system/services/mastodon/patches/mastodon_v4.2.1-maxchar-5000.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-diff --git a/app/javascript/mastodon/features/compose/components/compose_form.jsx b/app/javascript/mastodon/features/compose/components/compose_form.jsx
-index 9222b2dc8..962310a28 100644
---- a/app/javascript/mastodon/features/compose/components/compose_form.jsx
-+++ b/app/javascript/mastodon/features/compose/components/compose_form.jsx
-@@ -100,7 +100,7 @@ class ComposeForm extends ImmutablePureComponent {
-     const fulltext = this.getFulltextForCharacterCounting();
-     const isOnlyWhitespace = fulltext.length !== 0 && fulltext.trim().length === 0;
-
--    return !(isSubmitting || isUploading || isChangingUpload || length(fulltext) > 500 || (isOnlyWhitespace && !anyMedia));
-+    return !(isSubmitting || isUploading || isChangingUpload || length(fulltext) > 5000 || (isOnlyWhitespace && !anyMedia));
-   };
-
-   handleSubmit = (e) => {
-@@ -297,7 +297,7 @@ class ComposeForm extends ImmutablePureComponent {
-             </div>
-
-             <div className='character-counter__wrapper'>
--              <CharacterCounter max={500} text={this.getFulltextForCharacterCounting()} />
-+              <CharacterCounter max={5000} text={this.getFulltextForCharacterCounting()} />
-             </div>
-           </div>
-         </div>
-diff --git a/app/validators/status_length_validator.rb b/app/validators/status_length_validator.rb
-index dc841ded3..9cb1ec94b 100644
---- a/app/validators/status_length_validator.rb
-+++ b/app/validators/status_length_validator.rb
-@@ -1,7 +1,7 @@
- # frozen_string_literal: true
-
- class StatusLengthValidator < ActiveModel::Validator
--  MAX_CHARS = 500
-+  MAX_CHARS = 5000
-   URL_PLACEHOLDER_CHARS = 23
-   URL_PLACEHOLDER = 'x' * 23
\ No newline at end of file