Hey @lillezon!
Okay, I made you a command that would convert 1 hour 50 minutes 20 seconds
to 12 hours 52 minutes 20 seconds
as I think that’s what you’re looking for.
There could be some errors if the command is called at 0 minute/second/etc as it simply removes the value instead of giving a 0, so that gives ~0.02% of errors. Since it could be “minute” or “minutes” I didn’t have enough room to include the tests required to make it perfect.
One solution would have been to create a Pastebin to fit the more complete code, but I tried to keep it as simple as possible to only use Nightbot, that said I didn’t manage to make it fit under 500 characters, so we’ll be using an alias command as well.
So here are the commands, just copy/paste them in your chat:
!addcom !dogy -a=_dogy $(eval t=`$(twitch $(channel) "{{uptimeLength}}")`.replace(/\s?year(s)?/,``).replace(/\s?month(s)?/,``).replace(/\s?day(s)?/,``).replace(/\s?hour(s)?/,``).replace(/\s?minutes(s)?/,``).replace(/\s?second(s)?/,``).split(` `);t.reverse();m=[1,60,3600,86400,2592000,31536000];for(i=0;i<t.length;i++){t[i]=Number(t[i])*m[i]*7;}s=t.reduce((a,b)=>a+b);m.reverse();c=[];for(i=0;i<m.length;i++){c.unshift(Math.floor(s/m[i]));s=s%m[i];}c.join(`|`);)
!addcom _dogy $(eval q=`$(query)`.split(`|`);`${q[5]} year(s) ${q[4]} month(s) ${q[3]} days(s) ${q[2]} hour(s) ${q[1]} minute(s) ${q[0]} second(s)`)
The command you use to convert the time in dog time is !dogy
.
If you don’t plan on streaming more than 24h ever, we can simplify the commands down to one command:
!addcom !dogy $(eval t=`$(twitch $(channel) "{{uptimeLength}}")`.replace(/\s?hour(s)?/,``).replace(/\s?minutes(s)?/,``).replace(/\s?second(s)?/,``).split(` `);t.reverse();m=[1,60,3600,86400];for(i=0;i<t.length;i++){t[i]=Number(t[i])*m[i]*7;}s=t.reduce((a,b)=>a+b);m.reverse();c=[];for(i=0;i<m.length;i++){c.unshift(Math.floor(s/m[i]));s=s%m[i];}`${c[3]} days(s) ${c[2]} hour(s) ${c[1]} minute(s) ${c[0]} second(s)`)
If you think you’ll do more than 24h a few times, but never more than 4 days in a row, you can use this one:
!addcom !dogy $(eval t=`$(twitch $(channel) "{{uptimeLength}}")`.replace(/\s?day(s)?/,``).replace(/\s?hour(s)?/,``).replace(/\s?minutes(s)?/,``).replace(/\s?second(s)?/,``).split(` `);t.reverse();m=[1,60,3600,86400];for(i=0;i<t.length;i++){t[i]=Number(t[i])*m[i]*7;}s=t.reduce((a,b)=>a+b);m.reverse();c=[];for(i=0;i<m.length;i++){c.unshift(Math.floor(s/m[i]));s=s%m[i];}`${c[3]} days(s) ${c[2]} hour(s) ${c[1]} minute(s) ${c[0]} second(s)`)