]> git.cworth.org Git - turbot/commitdiff
Don't set a channel description longer than 250 character.
authorCarl Worth <cworth@cworth.org>
Sat, 8 Jan 2022 09:20:02 +0000 (01:20 -0800)
committerCarl Worth <cworth@cworth.org>
Sat, 8 Jan 2022 09:23:46 +0000 (01:23 -0800)
Oops. The Slack channel description _is_ just as limited as the
channel topic, (only 250 characters). So we have to trim it just like
we trim the channel topic.

At least the description has the title first, so different information
will appear in the topic and description and hopefully everything
necessary at least appears in one place or the other.

turbot/puzzle.py

index b9aa1ec40bcc44acaa2238123a2f052d04c92184..d24a7c9a4da955120f565a3ea43db4e8d66f61d5 100644 (file)
@@ -281,30 +281,25 @@ def puzzle_channel_description(puzzle):
     state = puzzle.get('state', None)
 
     description = (
-        "Discussion to solve the puzzle \"{}\".\n".format(puzzle['name'])
+        "Puzzle: \"{}\".\n".format(puzzle['name'])
     )
 
+    links = ''
     if url:
-        description += "See the <{}|Original puzzle>\n".format(url)
+        links += " <{}|Original puzzle> ".format(url)
 
     if sheet_url:
-        description += (
-            "Actual solving work takes place in the "
-            + "<{}|shared spreadsheet>\n".format(sheet_url)
-        )
+        links += " <{}|Sheet>".format(sheet_url)
+
+    if links:
+        description += "Links:{}\n".format(links)
 
     if tags:
-        description += "This puzzle has the following tags: {}\n".format(
+        description += "Tags: {}\n".format(
             " ".join(["`{}`".format(t) for t in tags]))
 
     if state:
-        description += "This puzzle has a state of: {}\n".format(state)
-
-    description += (
-        "You can see a summary of this information at any point "
-        + "by issuing the `/puzzle` command and you can edit any of "
-        + "this information by issuing the `/edit` command"
-    )
+        description += "State: {}\n".format(state)
 
     return description
 
@@ -369,6 +364,9 @@ def puzzle_update_channel_and_sheet(turb, puzzle, old_puzzle=None):
         old_channel_description = puzzle_channel_description(old_puzzle)
 
     if channel_description != old_channel_description:
+        # Slack also only allows 250 characters for a description
+        if len(channel_description) > 250:
+            channel_description = channel_description[:247] + "..."
         turb.slack_client.conversations_setPurpose(channel=channel_id,
                                                    purpose=channel_description)