Received: from mail.netlandish.com (mail.netlandish.com [174.136.98.166]) by code.netlandish.com (Postfix) with ESMTP id C029713C for <~netlandish/links-dev@lists.code.netlandish.com>; Tue, 25 Feb 2025 12:57:54 +0000 (UTC) Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=209.85.128.169; helo=mail-yw1-f169.google.com; envelope-from=peter@netlandish.com; receiver= Authentication-Results: mail.netlandish.com; dkim=pass (1024-bit key; unprotected) header.d=netlandish.com header.i=@netlandish.com header.b=V/QcqYS7 Received: from mail-yw1-f169.google.com (mail-yw1-f169.google.com [209.85.128.169]) by mail.netlandish.com (Postfix) with ESMTP id 2D8B81D80C1 for <~netlandish/links-dev@lists.code.netlandish.com>; Tue, 25 Feb 2025 13:06:04 +0000 (UTC) Received: by mail-yw1-f169.google.com with SMTP id 00721157ae682-6fb9dae0125so46618747b3.1 for <~netlandish/links-dev@lists.code.netlandish.com>; Tue, 25 Feb 2025 05:06:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=netlandish.com; s=google; t=1740488764; x=1741093564; 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=lGkMPsJn5Bpgl2QobPSw/YYRue1t9t0u/L+OAtJn1t0=; b=V/QcqYS7XYC06k36kkiMKmfOlRXE4WaRNs4WrUrUdtka2zXyYyC26pc1xqF/7n2h49 Y1vkRB2DxhIUVh/NXF7pBH99AcdCBjNV+r9T96QOilvWVPFikH5vbpYsMKMfCxwJlpM1 VwxU4wfQojvDLrVsuz/c3mPNRuUl55TE4GlNM= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740488764; x=1741093564; 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=lGkMPsJn5Bpgl2QobPSw/YYRue1t9t0u/L+OAtJn1t0=; b=TzcK8AJHEEqZIJ56qIQ5FFBLk3662EJkgjFQEwYvuJ1TzG5i4eM82Ul89U8C210cof HUd4GjvQKAZqZoiNJEBGTjyE5SFMqzUY+Xf/ddR/gSag1PgUDYKLNsX+E8LIt/Hg5a0i MYNyoS00wwreF3TVL1+Rj6aiPH1NUH4GZ2XevwhI7PTQ49WGPtw1zRQxaMoWBCKp2TTW DgN0NrVHG2DTBxvNn6BCRYt7Kees3Ee7OYknNv1wDpX8ynvwJspO7vLMAtx8O4YyHUxl g5mG4dxQC8Zl+xurg7usl2H7ZPV7YzdgaenvzCzROzfvq+9mXhN6DgrpTClI3wGGXVMG uonw== X-Gm-Message-State: AOJu0YzfnXHv3vckUjm+AjAnWMBf53PAVRhpNesG+TK0ml6rdI4yvjTf nPmLDlVBY7dopAKgu4yg7SGMB6oGFRpHS7LrEoEen9xen4Jp0VKlst6QXcYjH7iz9HfzolKzW3E i4jQ= X-Gm-Gg: ASbGncstHSfPlpzBV8yxMq78oNi/IV9Eka2n58g69G1s8mHF3cDtmY3Hdkiw5Mo66f/ yuRdAeaWZl4NC04OCUxaZYKyijk4zn5Rleqk3oCeMXDxh+Mc5OcOZeuntl69QqW7oBYtWkv0Dak sJpiUuFOLy8SiEJJrY9XAEmjgHTs9LxCFt8/k6WBBivobZZTDitEfs7XD4p+jkUBqEcKiMrPNYO 4A8TX9+4qODe/pyl31rZz2DjZJOZ14aDjoP7vT0L4M6BiX4ciejIGBSYu9jQFHLKaUBb8akwino Ks/PHXIi5SOXEeZlG6C7LHTeBA== X-Google-Smtp-Source: AGHT+IHVp6YC9Y9tvliuLw7F6vTltC72OTS7GfJRh/kjOCgvvTkR/jldLj9djMMVCROGOnchgHVPoA== X-Received: by 2002:a05:690c:998a:b0:6fb:9822:bbb8 with SMTP id 00721157ae682-6fbcc3a4ed9mr150725707b3.35.1740488763972; Tue, 25 Feb 2025 05:06:03 -0800 (PST) Received: from localhost ([2803:2d60:1107:87f:c915:f2de:c4a2:13a]) by smtp.gmail.com with ESMTPSA id 00721157ae682-6fd1185ba1fsm4073587b3.111.2025.02.25.05.06.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 25 Feb 2025 05:06:03 -0800 (PST) From: Peter Sanchez To: ~netlandish/links-dev@lists.code.netlandish.com Cc: Peter Sanchez Subject: [PATCH links] Add length checker for tag imports. Date: Tue, 25 Feb 2025 07:05:00 -0600 Message-ID: <20250225130556.14842-1-peter@netlandish.com> X-Mailer: git-send-email 2.47.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Changelog-added: additional import sanity checking to avoid db layer errors (ie, max length exceeded). --- Follow up to a previous commit (513b4084ea) to avoid possible import errors when tags violate max length core/import.go | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/core/import.go b/core/import.go index 7e6aebb..59e2437 100644 --- a/core/import.go +++ b/core/import.go @@ -107,7 +107,18 @@ func (p pinBoardObj) IsUnread() bool { } func (p pinBoardObj) GetTags() []string { - return strings.Split(strings.TrimSpace(p.Tags), " ") + return trimTags(strings.Split(strings.TrimSpace(p.Tags), " ")) +} + +func trimTags(tags []string) []string { + var ret []string + for _, t := range tags { + if len(t) > 50 { + t = t[:50] + } + ret = append(ret, t) + } + return ret } // Especific html object representation, used by Safari and Chrome @@ -161,7 +172,7 @@ func (h htmlObj) IsUnread() bool { } func (h htmlObj) GetTags() []string { - return strings.Split(strings.TrimSpace(h.Tags), ",") + return trimTags(strings.Split(strings.TrimSpace(h.Tags), ",")) } // This adapter struct is used to wrap a slice [n:m] -- 2.47.2