General GroupMe Master Thread

GroupMe started making it very annoying for SMS users. They added emojis and Hebrew letters for sms working but now messages get truncated very fast. In my initial testing I didn’t find it getting truncated at all, but later I got complaints from people that it is happening. After testing more later, it did happen.

I tried to determine what’s the longest a message can be and it seemed to be the size of 3 parts (meaning - the amount that fits into (1/3) … (3/3) - if you use sms GroupMe, you know what I mean)

So I updated both my bot + my public GroupMe bot such that any bot message gets split into small enough chunks and sent separately. But then when testing it, it seems it depends and sometimes it’s shorter. (Seems like there’s some metric to split it into tokens…)

If some has more info on the actual limit, it would be greatly appreciated

i am pretty sure the old limit was 200 charachters but could be the new update changed it from my testing it’s now 135-158 Charachters meaning if you write 159 charchters you will get 135 and 24 but if you write 157 you will get it all in one (this is based off my testing)

Firstly limit was never 200. Was and still is around 160 depending on spaces etc.

Also, it depends on the length of the username sending it as the full SMS must be that length.

But anyway I wasn’t referring to this at all. This is all about when the message is split. I’m talking about when it’s truncated meaning you’ll get 1/2, 2/2 and usually even up to 3 but the message is really longer then just 3 parts and it just ends with “…” Followed by a link.

An interesting thing by both of these limits (160 and about 3 times that) is that it’s only usually the case. If you have interesting characters, it’s much shorter. Try with newlines for example. If I’ll have time and patience I’d write a script to have fully normal characters and keep testing to find how many characters every newline and other interesting characters are worth but I’m not in the mood right now.

1 Like

FIXED

SMS encodings

GroupMe works with the old SMS system. Which means that a message can be up to 160 normal characters (normal being defined by GSM-7 standard) and not normal characters taking up the value of 2 normal characters. (E.g. the characters ‘’ aren’t gsm-7 normal characters). Then there are even funnier characters such as Hebrew and emojis which change the entire messages encoding to USC-2 which gives you a limit of only 70 characters per message.

GroupMe behavior with SMS

So GroupMe used to take any none GSM compatible character and replace it with a ‘?’ for SMS users. That meant you can always have close to the full 160 characters per message. (I say close because you gotta subtract the ‘name: ’ in the beginning and the ’ (1/2)’ at the end and the fact that it didn’t split mid word.)

what changed

Now 2 changes were made. 1 good and 1 not so much. And the good 1 makes the bad 1 worse…

So the first thing is that GroupMe started supporting emojis and Hebrew characters for SMS users. The second thing is that they limited the amount of splits to 3. So if the message is longer, in the third message it’ll just end with ‘… Link’. And since now all characters are supported, 1 funny symbol in a Copilot response means the entire message be limited to 70 characters a chunk and the limit being reached annoyingly quickly.

the fix

The fix is simple. Instead of letting GroupMe do the work of splitting your long message according to it’s discretion I made the bot do it itself. So before a message is sent, it’s parsed. If less than a fifth is funny characters (aka it’s not a text written in Yiddish), all funny characters are replaced with literall question marks (so that you don’t get 5 splits for a single message) and it’s split into chunks of close to 160 each (accounting for the bot name and the 1/2 the bot appends to the end). If more than a fifth is funny characters then it leaves them as is. Either way they get split in a way that makes GroupMe sends each message without further splitting or truncating.

The code is written in python and uses a python library. I don’t know if or what exists for js. But technically it should be easy to write it without a library. Just arrays of different character sets.

1 Like

It was fun while it lasted, but it looks like the party’s over, guys.

:open_mouth::open_mouth::sleepy_face::sleepy_face::sob::sob:

What will we do? Who will we true advantage of next?