I am attempting to get a 250+ character command on my YouTube Nightbot account, and I got as far as using a custom Nightbot API to submit the command via a curl command, however when I send the command I am unable to send an ampersand ('&') through it.
Here is a sample of what I mean:
.BAT File: (Removed any unimportant code and any security tokens of course)
curl -X POST "https://api.nightbot.tv/1/commands"-H "Authorization: Bearer 1234567890qwertyuiop"-d "message=$(eval if(...){const req = `$(urlfetch https://website.com/command?value1=YouTube~~$(userlevel)~~$(userid)&value2=$(user)&value3=$(querystring))`; `@$(user): Your Level Code "$(querystring)" has been submitted!`;}else{`@$(user): Error`;})"-d "userLevel=everyone"-d "coolDown=5"-d "name=!test"
Response:
{"command":{"_id":"1234567890","createdAt":"2021-07-29T07:32:35.000Z","updatedAt":"2021-07-29T07:32:35.185Z","name":"!test","message":"$(eval if( . . . command?value1=YouTube~~$(userlevel)~~$(userid)","userLevel":"everyone","count":0,"coolDown":5},"status":200}
For some reason the ampersand ('&') just cuts the message short.
I have tried replacing the '&' with the following:
"^&" - Thought this was command line related, not at all the case. Results in the same thing, but ends the message with "^" instead
"%26" - Thought it needed to be encoded, but this did not encode properly. The message had the full text this time, but where an "&" would have been, there was a "6" instead, essentially ignoring the "%2" (probably a command line related reason).