Jump to content

Sky Slate Blueberry Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate
Photo

Annoying text colorizer


  • Please log in to reply
14 replies to this topic
ManaUser
  • Members
  • 1121 posts
  • Last active: Dec 07 2016 04:24 PM
  • Joined: 24 May 2007
Just because I was bored, I made a script that turns words in a forum post all different colors using BBCode. Isn't that annoying? Especially since the yellow isn't really readable on a light background. And because this forum allows color tags inside code tags, I can even colorize the script itself! Isn't that annoying?
[color=Red]#c::[/color] [color=Orange];Win+C[/color]
[color=Yellow];Colorize[/color] [color=Green]text[/color] [color=Blue]using[/color] [color=Magenta]BBCode.[/color]
[color=Red]Send[/color] [color=Orange]^c[/color]
[color=Yellow]InputBox[/color] [color=Green]TempText,[/color] [color=Blue]Enter[/color] [color=Magenta]Colors,[/color] [color=Red]Example:[/color] [color=Orange]Red[/color] [color=Yellow]Blue[/color] [color=Green]Green,,,[/color] [color=Blue]120,,,,,[/color] [color=Magenta]Red[/color] [color=Red]Orange[/color] [color=Orange]Yellow[/color] [color=Yellow]Green[/color] [color=Green]Blue[/color] [color=Blue]Magenta[/color]
[color=Magenta]If[/color] [color=Red]ErrorLevel[/color]
   [color=Orange]Return[/color]
[color=Yellow]Temp2[/color] [color=Green]:=[/color] [color=Blue]Clipboard[/color]
[color=Magenta]Temp2[/color] [color=Red]:=[/color] [color=Orange]RegExReplace(Temp2,[/color] [color=Yellow]"i)C[/color][color=Green]O[/color][color=Blue]L[/color][color=Magenta]O[/color][color=Red]R",[/color] [color=Orange]"C[/C[/color][color=Yellow]O[/color][color=Green]L[/color][color=Blue]O[/color][color=Magenta]R][C[/color][color=Red]O[/color][color=Orange]L[/color][color=Yellow]O[/color][color=Green]R=¢0£0®]O[/C[/color][color=Blue]O[/color][color=Magenta]L[/color][color=Red]O[/color][color=Orange]R][C[/color][color=Yellow]O[/color][color=Green]L[/color][color=Blue]O[/color][color=Magenta]R=¢0£0®]L[/C[/color][color=Red]O[/color][color=Orange]L[/color][color=Yellow]O[/color][color=Green]R][C[/color][color=Blue]O[/color][color=Magenta]L[/color][color=Red]O[/color][color=Orange]R=¢0£0®]O[/C[/color][color=Yellow]O[/color][color=Green]L[/color][color=Blue]O[/color][color=Magenta]R][C[/color][color=Red]O[/color][color=Orange]L[/color][color=Yellow]O[/color][color=Green]R=¢0£0®]R")[/color]
[color=Blue]Temp2[/color] [color=Magenta]:=[/color] [color=Red]RegExReplace(Temp2,[/color] [color=Orange]"(\s+)",[/color] [color=Yellow]"[/C[/color][color=Green]O[/color][color=Blue]L[/color][color=Magenta]O[/color][color=Red]R]$1[C[/color][color=Orange]O[/color][color=Yellow]L[/color][color=Green]O[/color][color=Blue]R=¢0£0®]")[/color]
[color=Magenta]Temp2[/color] [color=Red]:=[/color] [color=Orange]"[C[/color][color=Yellow]O[/color][color=Green]L[/color][color=Blue]O[/color][color=Magenta]R=¢0£0®]"[/color] [color=Red].[/color] [color=Orange]Temp2[/color] [color=Yellow].[/color] [color=Green]"[/C[/color][color=Blue]O[/color][color=Magenta]L[/color][color=Red]O[/color][color=Orange]R]"[/color]
[color=Yellow]Loop[/color]
[color=Green]{[/color]
   [color=Blue]Loop[/color] [color=Magenta]Parse,[/color] [color=Red]TempText,[/color] [color=Orange]%A_Space%[/color]
   [color=Yellow]{[/color]
      [color=Green]StringReplace[/color] [color=Blue]Temp2,[/color] [color=Magenta]Temp2,[/color] [color=Red]¢0£0®,[/color] [color=Orange]%A_LoopField%[/color]
      [color=Yellow]If[/color] [color=Green]ErrorLevel[/color]
         [color=Blue]Goto[/color] [color=Magenta]ColorizeDone[/color]
   [color=Red]}[/color]
[color=Orange]}[/color]
[color=Yellow]ColorizeDone:[/color]
[color=Green]Clipboard[/color] [color=Blue]:=[/color] [color=Magenta]Temp2[/color]
[color=Red]Send[/color] [color=Orange]^v[/color]
[color=Yellow]Return[/color]
Of course I had to fudge it a little since it would have tripped up if its own special sequence of ¢0£0® was in the text.

Laszlo
  • Moderators
  • 4713 posts
  • Last active: Mar 31 2012 03:17 AM
  • Joined: 14 Feb 2005
Nice! It looks such an important script that I could not resist to simplify a bit ;)
[color=Red]colors[/color][color=Orange] = Black[/color][color=Brown],Red[/color][color=Green],Orange[/color][color=Blue],Brown[/color][color=Magenta],Green[/color][color=Black],Blue[/color][color=Red],Magenta[/color][color=Orange]
StringSplit[/color][color=Brown] col[/color][color=Green], colors[/color][color=Blue], `,

#c[/color][color=Magenta]:: ; Win[/color][color=Black]-C[/color][color=Red]: Colorize[/color][color=Orange] text[/color][color=Brown] using[/color][color=Green] BBCode[/color][color=Blue].
   Send[/color][color=Magenta] ^c[/color][color=Black]
   t[/color][color=Red] := RegExReplace[/color][color=Orange](ClipBoard[/color][color=Brown],"m[/color][color=Green])\w[/color][color=Blue]+","$0[/color][color=Magenta]" Chr[/color][color=Black](166[/color][color=Red])), s[/color][color=Orange] := ""
   Loop[/color][color=Brown] Parse[/color][color=Green], t[/color][color=Blue],% Chr[/color][color=Magenta](166[/color][color=Black])
      i[/color][color=Red] := mod[/color][color=Orange](A_Index[/color][color=Brown],col0[/color][color=Green])+1[/color][color=Blue], s[/color][color=Magenta] .= "[" . "color[/color][color=Black]=" . col[/color][color=Red]%i[/color][color=Orange]% . "]" . A_LoopField[/color][color=Brown] . "[" . "/color[/color][color=Green]]"
   ClipBoard[/color][color=Blue] := s[/color][color=Magenta]
   Send[/color][color=Black] ^v[/color][color=Red]
Return[/color][color=Orange][/color]

Edit: Bugfix to color the separator correctly

neXt
  • Members
  • 549 posts
  • Last active: May 20 2015 02:38 AM
  • Joined: 18 Mar 2007
:lol: antidote:
send ^a


ManaUser
  • Members
  • 1121 posts
  • Last active: Dec 07 2016 04:24 PM
  • Joined: 24 May 2007
Nice, I knew mine was a little clunky. But now you can't enter custom color themes. How about a compromise.
[color=orange]#c[/color][color=brown]:: ; Win-C: Colorize text using BBCode.
   Send[/color][color=orange] ^c[/color][color=brown]
   InputBox[/color][color=orange] colors[/color][color=red], Enter[/color][color=orange] Colors[/color][color=brown], Example[/color][color=orange]: Red[/color][color=red] Blue[/color][color=orange] Green[/color][color=brown],,, 120[/color][color=orange],,,,, Red[/color][color=red] Orange[/color][color=orange] Yellow[/color][color=brown] Green[/color][color=orange] Blue[/color][color=red] Magenta[/color][color=orange]
   If[/color][color=brown] ErrorLevel[/color][color=orange]
      Return[/color][color=red]
   StringSplit[/color][color=orange] col[/color][color=brown], colors[/color][color=orange], %A_Space[/color][color=red]%
   t[/color][color=orange] := RegExReplace[/color][color=brown](ClipBoard[/color][color=orange],"m[/color][color=red])\w[/color][color=orange]+","$0[/color][color=brown]" Chr[/color][color=orange](166[/color][color=red])), s[/color][color=orange] := ""
   Loop[/color][color=brown] Parse[/color][color=orange], t[/color][color=red],% Chr[/color][color=orange](166[/color][color=brown])
      i[/color][color=orange] := mod[/color][color=red](A_Index[/color][color=orange],col0[/color][color=brown])+1[/color][color=orange], s[/color][color=red] .= "[" . "color[/color][color=orange]=" . col[/color][color=brown]%i[/color][color=orange]% . "]" . A_LoopField[/color][color=red] . "[" . "/color[/color][color=orange]]"
   ClipBoard[/color][color=brown] := s[/color][color=orange]
   Send[/color][color=red] ^v[/color][color=orange]
Return[/color][color=brown][/color]
[edit] Hmm, maybe something's wrong with this. Every once in a while it misbehaves and garbles the results.

Laszlo
  • Moderators
  • 4713 posts
  • Last active: Mar 31 2012 03:17 AM
  • Joined: 14 Feb 2005
Try clearing the clipboard before sending ^c and add "ClipWait 2" before the RegExReplace line. It could be that the clipboard is not yet set when the script wants to use it. A Sleep 50 before "Send ^v" could also be helpful, sometimes.

Lexikos
  • Administrators
  • 9844 posts
  • AutoHotkey Foundation
  • Last active:
  • Joined: 17 Oct 2006
Randomly coloured characters are more annoying...
...and gradients are much cooler. 8)

  • Guests
  • Last active:
  • Joined: --

...and gradients are much cooler.

...try putting a gradient in a sig...you'll run outta 255 chars before you get off even a 5 char gradient-message...that 255 limit...a) needs to be raised...to at least 3019...B) needs to not count bbcode in the limit...

Lirave
  • Members
  • 14 posts
  • Last active:
  • Joined: 23 Dec 2007
@lexikos
how do you make this ?

...and gradients are much cooler. 8)



Superfraggle
  • Members
  • 1019 posts
  • Last active: Sep 25 2011 01:06 AM
  • Joined: 02 Nov 2004
Probably here or somewhere similar.
Steve F AKA Superfraggle

http://r.yuwie.com/superfraggle

Jero3n
  • Members
  • 147 posts
  • Last active: Mar 31 2010 05:07 PM
  • Joined: 19 Jan 2007
Woot thanks for that link!

polyethene
  • Members
  • 5519 posts
  • Last active: May 17 2015 06:39 AM
  • Joined: 26 Oct 2012
w00t thanks for that link!
abcdefghijklmnopqrstuvwxyx
strange lol ...
omg red shift!

coltxt(str, a = 0x000000, i = -1) {
	f = %A_FormatInteger%
	SetFormat, Integer, Hex
	VarSetCapacity(bc, StrLen(str) * 24)
	If i = -1
		i := 0xff // StrLen(str)
	i &= k := 0xffffff
	Loop, Parse, str
	{
		c := SubStr(000000 . SubStr((a + i * (A_Index - 1)) & k, 3), -5)
		bc = %bc%[color=#%c%]%A_LoopField%[/color]
	}
	SetFormat, Integer, %f%
	Return, bc
}

MsgBox, % clipboard := coltxt("w00t thanks for that link!", 0xbe, 0x80000)
 . "`n" . coltxt("abcdefghijklmnopqrstuvwxyx")
 . "`n" . coltxt("strange lol ...", 0x333333, 0x102030)
 . "`n" . coltxt("omg red shift!", 0xff << 16, -0x100000)

autohotkey.com/net Site Manager

 

Contact me by email (polyethene at autohotkey.net) or message tidbit


ManaUser
  • Members
  • 1121 posts
  • Last active: Dec 07 2016 04:24 PM
  • Joined: 24 May 2007
Bravo! That's a neat effect and a neat implementation. Though I'm still kind of partial to the crazy looking text created by my original script.

Lexikos
  • Administrators
  • 9844 posts
  • AutoHotkey Foundation
  • Last active:
  • Joined: 17 Oct 2006

Probably here or somewhere similar.

Nope, I used a parsing loop. 8) It was a little simpler than Titan's script, since it only did black -> blue.

Guest1
  • Guests
  • Last active:
  • Joined: --
just wonderin if this actually works

ManaUser
  • Members
  • 1121 posts
  • Last active: Dec 07 2016 04:24 PM
  • Joined: 24 May 2007

just wonderin if this actually works

Wondering if what works?