Received: from mail.netlandish.com (mail.netlandish.com [174.136.98.166])
	by code.netlandish.com (Postfix) with ESMTP id 9938527B
	for <~netlandish/links-dev@lists.code.netlandish.com>; Thu, 29 May 2025 18:55:37 +0000 (UTC)
Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=209.85.128.175; helo=mail-yw1-f175.google.com; envelope-from=peter@netlandish.com; receiver=<UNKNOWN> 
Authentication-Results: mail.netlandish.com;
	dkim=pass (1024-bit key; unprotected) header.d=netlandish.com header.i=@netlandish.com header.b=kpl9fJ04
Received: from mail-yw1-f175.google.com (mail-yw1-f175.google.com [209.85.128.175])
	by mail.netlandish.com (Postfix) with ESMTP id 6A9661D6432
	for <~netlandish/links-dev@lists.code.netlandish.com>; Thu, 29 May 2025 18:56:01 +0000 (UTC)
Received: by mail-yw1-f175.google.com with SMTP id 00721157ae682-7086dcab64bso12647837b3.1
        for <~netlandish/links-dev@lists.code.netlandish.com>; Thu, 29 May 2025 11:56:01 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=netlandish.com; s=google; t=1748544960; x=1749149760; darn=lists.code.netlandish.com;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=xCXL8QwHvL8OQIw2BQsj0AJ+oeBQnVkgApIdApe8zUE=;
        b=kpl9fJ04qvI1ijW+uncYneL0brwmcMZdVZCBNE6N77EDL16DUUImDWfIDfoh8SFY3q
         HjnuwfjSbgpPraLQT6DAOpzfTCRC8MTNYB0QJAkVaMjble3k5KH5bu0dNw8N+HcT0EUO
         MpWQUPMDGMU554xqKhnIrOz4oYLNV0j9Uj2FY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1748544960; x=1749149760;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=xCXL8QwHvL8OQIw2BQsj0AJ+oeBQnVkgApIdApe8zUE=;
        b=WnG7e4+C9Ht03IrXalvSw6Sq3T2SNVEfmkFXqX546NYzupr1Ay/0FG2esS3BXNtZDE
         OrTvPyRcyQHgTYUcjB+CsyuG6a6X6qnWlYVXdDdRmrceFklMiZQllPvmcTHmyiBmmcIx
         +FhiK1z9RYjXBoJmKHZC+wmT+ro1aRGM7zFii7NXJvAv28VCo6VfncaG7EkshXW8yQse
         z/tm/dgJgneFgk4lK4D4EOTsxHAkHmHqk4kYZJpak/HgXRa2TC2oZeHYcZZSUMOo1Vkf
         gX9VBEbPZgEwNdA5oLpE3vZPhbMGcKCegjw+PIo5gg5Wclw0Ih3TBLyWJFhV2ebRHL7J
         mrNw==
X-Gm-Message-State: AOJu0Yzxo9xGLNlg0h6YhfpxQGJDYhnI7v9W+JRh976O121feShBTHRX
	d6WY2gEgn+L2yUlV7DIkDsTVJcecsnsUiqFzyZikYbsX4lt37zjFIsFbkxFBSc/TVdEmxwkiaF1
	BvN18EYy9TA==
X-Gm-Gg: ASbGnct/iPqXCP2avx5KHKnuPkX7dkyVkc05xoBwxfVuYNysoEkE1tKrO90wEOYQiqN
	BYUs20WRXvxTZLlYCTmSRtveaVHIuivLaBlM5mp/6KIybZU50Yu9m9IobEgIwPQxiLZqmhJl2Ht
	TGhWZZUAYQGNwDfVayWpRM1u5ptWa3V4JYahCKtl7oR/o7OYkhWl0qZReELkQR8RLEq6ouLLbdG
	i+D7TbS47oPpPnjUVkggvNDDRsxXdlpCnnsAZEr2BgJuVlaGvkFpE9gcZVZBRHBxXH5zYVPEAAE
	Y9j0jBSyVR6eDg5v3bOxCleGBlSlV9klwCc4/0wjS8xxyMVbELY=
X-Google-Smtp-Source: AGHT+IG+IRiDhBHtHOcYylafLd2lM+2/NvlWsuCg0I42JyJTn2EL73n0jFE8k21zpwNXYmKs9ZuLwQ==
X-Received: by 2002:a05:690c:691:b0:70e:15e7:59bf with SMTP id 00721157ae682-70f97e5ba5bmr9600897b3.15.1748544960332;
        Thu, 29 May 2025 11:56:00 -0700 (PDT)
Received: from localhost ([2803:2d60:1118:5ee:b5c3:4a6a:10b:caac])
        by smtp.gmail.com with ESMTPSA id 00721157ae682-70f8ac10d35sm4302787b3.67.2025.05.29.11.55.59
        (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
        Thu, 29 May 2025 11:56:00 -0700 (PDT)
From: Peter Sanchez <peter@netlandish.com>
To: ~netlandish/links-dev@lists.code.netlandish.com
Cc: Peter Sanchez <peter@netlandish.com>
Subject: [PATCH links] Allow pipe characters in tags.
Date: Thu, 29 May 2025 12:55:55 -0600
Message-ID: <20250529185557.2452-1-peter@netlandish.com>
X-Mailer: git-send-email 2.47.2
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Don't try to save tags longer than 50 chars.

Changelog-fixed: Issue saving tags longer than 50 chars (not allowed)
Changelog-updated: Allow tags with pipe symbols
---
 helpers.go | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/helpers.go b/helpers.go
index 9ce16dc..7d30e3f 100644
--- a/helpers.go
+++ b/helpers.go
@@ -747,6 +747,9 @@ func ProcessTags(ctx context.Context, tags []string) ([]int, error) {
 		tag := strings.TrimSpace(tag)
 		if tag != "" {
 			slug := Slugify(tag)
+			if len(tag) > 50 || len(slug) > 50 {
+				continue
+			}
 			Tag := &models.Tag{
 				Name: tag,
 				Slug: slug,
@@ -869,6 +872,7 @@ func ParseSearch(s string) string {
 		if len(word) > 0 {
 			word = strings.TrimSpace(word)
 			word = strings.Replace(word, ":", "\\:", -1)
+			word = strings.Replace(word, "|", "\\|", -1)
 			if !strings.HasPrefix(word, "-") {
 				word = word + ":*"
 			}
-- 
2.47.2