]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Split changelog entries for discord (#23832)
authormetalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Tue, 30 Jan 2024 11:14:00 +0000 (22:14 +1100)
committerGitHub <noreply@github.com>
Tue, 30 Jan 2024 11:14:00 +0000 (22:14 +1100)
* Split changelog entries for discord

Not sure where best to split it, by entry in group or by author.

* Formatting

Tools/actions_changelogs_since_last_run.py

index 10f76f7ff72b9d921df51f42dadd3d9cc530c65d..9fe99d66ecb65b59c6d6f9c28c05dd60a19e077f 100755 (executable)
@@ -109,11 +109,13 @@ def send_to_discord(entries: Iterable[ChangelogEntry]) -> None:
         print(f"No discord webhook URL found, skipping discord send")
         return
 
-    content = io.StringIO()
     count: int = 0
 
     for name, group in itertools.groupby(entries, lambda x: x["author"]):
+        count = 0
+        content = io.StringIO()
         content.write(f"**{name}** updated:\n")
+
         for entry in group:
             for change in entry["changes"]:
                 emoji = TYPES_TO_EMOJI.get(change['type'], "❓")
@@ -124,25 +126,26 @@ def send_to_discord(entries: Iterable[ChangelogEntry]) -> None:
                     content.write(f"{emoji} [-]({url}) {message}\n")
                 else:
                     content.write(f"{emoji} - {message}\n")
-    
-    if count == 0:
-        print("Skipping discord push as no changelog entries found")
-        return
-
-    print(f"Posting {count} changelog entries to discord webhook")
-
-    body = {
-        "content": content.getvalue(),
-        # Do not allow any mentions.
-        "allowed_mentions": {
-            "parse": []
-        },
-        # SUPPRESS_EMBEDS
-        "flags": 1 << 2
-    }
-
-    response = requests.post(DISCORD_WEBHOOK_URL, json=body)
-    response.raise_for_status()
 
+            body = {
+                "content": content.getvalue(),
+                # Do not allow any mentions.
+                "allowed_mentions": {
+                    "parse": []
+                },
+                # SUPPRESS_EMBEDS
+                "flags": 1 << 2
+            }
+            
+        # No entries?
+        if count == 0:
+          continue
+
+        # Post per group to try to avoid discord character limits
+        print(f"Posting {count} changelog entries to discord webhook")
+
+        response = requests.post(DISCORD_WEBHOOK_URL, json=body)
+        response.raise_for_status()
+    
 
 main()