No_FeaR
17 Mart 2015, 21:47
TCL Name: DJ.TCL
Merhabalar,
Radyo Dj'leri icin hazirlanmis olan dj.tcl 'de !istek , !var , !yok , !ara komutları mevcuttur.
Dj kanalında İstek isteyenin nicki , isteği ve isteğinin mp3 'e çevirilmiş hali otomatik olarak cıkmaktadır..
Komutlar:
RADYO KANALINDA İSTEK İSTEMEK İÇİN:
!istek şarkı
ŞARKI VARSA KİŞİNİN ÖZELİNE MESAJ YOLLAMAK İÇİN (dj kanalında):
!var nick
ŞARKI YOKSA KİŞİNİN ÖZELİNE MESAJ YOLLAMAK İÇİN (dj kanalında):
!yok nick
İSTENİLEN ŞARKI DJ KANALINDA DOĞRU LİNK OLARAK ÇIKMAMIŞSA MANUEL ARAMA YAPMAK İÇİN (dj kanalında):
!ara şarkı
Tcl de radyo ve dj kanal isimlerini + bekleme süresini editlemeyi unutmayınız.
## ## ## ####### ## ## ####### ## ## ####### ####### ##
# ## ## ## ## ## ## ### ## ## ## # ## #
# ####### ## ## ## ## ### ## ## ####### #### #
# ## ## ## ## ## ### ## ## ## # ## #
# ## ####### ####### ### ####### ####### ####### #
## Editing By rascoLn ##
set araislem(trigger) "!ara" ;# sadece dj kanalindakilerin kullanacagi komut (eger istenilen sarki linki cikmaz ise)
set istekislem(trigger) "!istek" ;# istek komutu
set varislem(trigger) "!var" ;# sarki var ise yazilacak komut
set yokislem(trigger) "!yok" ;# sarki yok ise yazilacak komut
set radyo "#spor" ;# istek yapilacak kanal
set dj "#dj" ;# istegin gonderilecegi kanal
set timetube "15" ;# Tekrardan istek yapabilmek icin beklenen sure
bind pub - $araislem(trigger) aratube
bind pub - $istekislem(trigger) istektube
bind pub - $varislem(trigger) vartube
bind pub - $yokislem(trigger) yoktube
proc istektube {nick host hand chan arg} {
if {[info exists ::checks($host)] && ([clock seconds] - $::checks($host)) < $::timetube} { putquick "privmsg $nick :Sayin. \002$nick\002 \[\0034 15 \003\] saniye sonra tekrardan istek yapabilirsiniz.. \003"; return }
set ::checks($host) [clock seconds]
if { $::radyo ne $chan } { largetext privmsg $nick "istekler sadece $::radyo kanalindan yapilmaktadir."; return 0 }
if {$arg == ""} { largetext privmsg $nick "\002Istek Kullanimi:\002 $::radyo kanalinda $::istekislem(trigger) <isteginiz> seklindedir."; return 0 }
largetext privmsg $::dj "\t\t\t\t\0030,5\002 G E L E N - I S T E K \003"
largetext privmsg $::dj "--------------------------------------------------"
largetext privmsg $::dj "\0034NICK :\003 $nick | \0034ISTEGI :\003 $arg"
largetext privmsg $::dj "--------------------------------------------------"
largetext privmsg $::radyo "\00315,1 >\0030> \0039Isteginiz Radyo Dj'imize Iletilmistir. \00311$nick \0030<\00315< \003"
youtube $nick $host $hand $chan $arg
}
proc youtube {nick host hand chan arg} {
set form [string map -nocase {" " "+"} $arg]
catch { exec curl -v "[Only Registered Users Can See Links]$form" } data
if {[regexp -- {</div><div class="yt-lockup-content"><h3 class="yt-lockup-title"><a href="(.*?)" class="yt-uix-tile-link yt-ui-ellipsis yt-ui-ellipsis-2 yt-uix-sessionlink spf-link " data-sessionlink=".*?" title="(.*?)" aria-describedby=".*?" rel="spf-prefetch" dir="ltr">.*?</a><span class="accessible-description" id=".*?"> - (.*?).</span></h3>(.*)$} $data -> number title sure data]} {
largetext privmsg $::dj "< You\0030,4tube\003 > \00304Baslik :\00301 [string map -nocase {"°" "I" "ÄŸ" "g" "Ä°" "i" "ç" "c" "ı" "i" "ü" "u" "ÅŸ" "s" "^" "s" "ö" "o"} $title] | \0030,1 $sure \003"
largetext privmsg $::dj "< You\0030,4tube\003 > \00304Youtube linki:\00301 [Only Registered Users Can See Links]$number\003"
largetext privmsg $::dj "< You\0030,4tube\003 > \00300,1 MP3 olarak indir: \00300,4 [Only Registered Users Can See Links][string map -nocase {"\/watch\?" ""} $number]\003"
largetext privmsg $::dj "--------------------------------------------------"
return 0
}
if {![info exists title]} { utimer 1 [list youtube $nick $host $hand $chan $arg] }
}
proc aratube {nick host hand chan arg} {
if { [onchan $nick $::dj] && ($chan eq $::dj)} {
if {$arg == ""} { largetext privmsg $chan "\002Kullanimi:\002 $::istekislem(trigger) <isteginiz>"; return 0 }
set form [string map -nocase {" " "+"} $arg]
catch { exec curl -v "[Only Registered Users Can See Links]$form" } data
if {[regexp -- {</div><div class="yt-lockup-content"><h3 class="yt-lockup-title"><a href="(.*?)" class="yt-uix-tile-link yt-ui-ellipsis yt-ui-ellipsis-2 yt-uix-sessionlink spf-link " data-sessionlink=".*?" title="(.*?)" aria-describedby=".*?" rel="spf-prefetch" dir="ltr">.*?</a><span class="accessible-description" id=".*?"> - (.*?).</span></h3>(.*)$} $data -> number title sure data]} {
largetext privmsg $::dj "--------------------------------------------------"
largetext privmsg $::dj "< You\0030,4tube\003 > \00304Baslik :\00301 [string map -nocase {"°" "I" "ÄŸ" "g" "Ä°" "i" "ç" "c" "ı" "i" "ü" "u" "ÅŸ" "s" "^" "s" "ö" "o"} $title] | \0030,1 $sure \003"
largetext privmsg $::dj "< You\0030,4tube\003 > \00304Youtube linki:\00301 [Only Registered Users Can See Links]$number\003"
largetext privmsg $::dj "< You\0030,4tube\003 > \00300,1 MP3 olarak indir: \00300,4 [Only Registered Users Can See Links][string map -nocase {"\/watch\?" ""} $number]\003"
largetext privmsg $::dj "--------------------------------------------------"
return 0
}
if {![info exists title]} { utimer 1 [list aratube $nick $host $hand $chan $arg] }
}
}
proc vartube {nick host hand chan arg} {
if { $::dj ne $chan } { return 0 }
if { $arg eq "" || [llength $arg] >= 2 } { largetext privmsg $chan "\002Kullanimi:\002 $::varislem(trigger) <nick>"; return 0 }
putquick "privmsg [lindex $arg 0] :Repertuarimizda isteginiz bulunmaktadir. Isteginiz isleme alinmistir."
putquick "privmsg [lindex $arg 0] :Bizi dinlediginiz icin tesekkur eder iyi sohbetler dileriz.."
}
proc yoktube {nick host hand chan arg} {
if { $::dj ne $chan } { return 0 }
if { $arg eq "" || [llength $arg] >= 2 } { largetext privmsg $chan "\002Kullanimi:\002 $::yokislem(trigger) <nick>"; return 0 }
putquick "privmsg [lindex $arg 0] :Repertuarimizda isteginiz bulunmamaktadir."
putquick "privmsg [lindex $arg 0] :Bizi dinlemeye devam edebilir veya baska istekte bulunabilirsiniz. iyi sohbetler dileriz.."
}
proc largetext {type target text {delims {" "•,.!?}}} {
set lineLen [expr {412 - [string length ":$::botname $type [join $target] :\r\n"]}]
if {[string length $text] <= $lineLen} {
putquick "$type $target :[entityToChar $text]"
return 0
}
set _text [split [entityToChar $text] $delims]
set x 0
set i 0
while {$x < $lineLen} {
if {$i >= [llength $_text]} {
return 0
}
set wordlen [string length [lindex $_text $i]]
if {$x + $wordlen > $lineLen} {
break
}
incr x $wordlen
incr x
incr i
}
putquick "$type $target :[string range [entityToChar $text] 0 [expr {$x - 1}]]"
largetext $type $target [string trimleft [string range [entityToChar $text] $x end]] $delims
}
proc entityToChar {text {char utf-8}} {
if {![string match *&* $text]} {return $text}
set escapes {
\xa0 ¡ \xa1 ¢ \xa2 £ \xa3 ¤ \xa4
¥ \xa5 ¦ \xa6 § \xa7 ¨ \xa8 © \xa9
ª \xaa « \xab ¬ \xac * \xad ® \xae
¯ \xaf ° \xb0 ± \xb1 ² \xb2 ³ \xb3
´ \xb4 µ \xb5 ¶ \xb6 · \xb7 ¸ \xb8
¹ \xb9 º \xba » \xbb ¼ \xbc ½ \xbd
¾ \xbe ¿ \xbf À \xc0 Á \xc1 Â \xc2
à \xc3 Ä \xc4 Å \xc5 Æ \xc6 Ç \xc7
È \xc8 É \xc9 Ê \xca Ë \xcb Ì \xcc
Í \xcd Î \xce Ï \xcf Ð \xd0 Ñ \xd1
Ò \xd2 Ó \xd3 Ô \xd4 Õ \xd5 Ö \xd6
× \xd7 Ø \xd8 Ù \xd9 Ú \xda Û \xdb
Ü \xdc Ý \xdd Þ \xde ß \xdf à \xe0
á \xe1 â \xe2 ã \xe3 ä \xe4 å \xe5
æ \xe6 ç \xe7 è \xe8 é \xe9 ê \xea
ë \xeb ì \xec í \xed î \xee ï \xef
ð \xf0 ñ \xf1 ò \xf2 ó \xf3 ô \xf4
õ \xf5 ö \xf6 ÷ \xf7 ø \xf8 ù \xf9
ú \xfa û \xfb ü \xfc ý \xfd þ \xfe
ÿ \xff ƒ \u192 Α \u391 Β \u392 Γ \u393 Δ \u394
Ε \u395 Ζ \u396 Η \u397 Θ \u398 Ι \u399
Κ \u39A Λ \u39B Μ \u39C Ν \u39D Ξ \u39E
Ο \u39F Π \u3A0 Ρ \u3A1 Σ \u3A3 Τ \u3A4
Υ \u3A5 Φ \u3A6 Χ \u3A7 Ψ \u3A8 Ω \u3A9
α \u3B1 β \u3B2 γ \u3B3 δ \u3B4 ε \u3B5
ζ \u3B6 η \u3B7 θ \u3B8 ι \u3B9 κ \u3BA
λ \u3BB μ \u3BC ν \u3BD ξ \u3BE ο \u3BF
π \u3C0 ρ \u3C1 ς \u3C2 σ \u3C3 τ \u3C4
υ \u3C5 φ \u3C6 χ \u3C7 ψ \u3C8 ω \u3C9
ϑ \u3D1 ϒ \u3D2 ϖ \u3D6 • \u2022
… \u2026 ′ \u2032 ″ \u2033 ‾ \u203E
⁄ \u2044 ℘ \u2118 ℑ \u2111 ℜ \u211C
™ \u2122 ℵ \u2135 ← \u2190 ↑ \u2191
→ \u2192 ↓ \u2193 ↔ \u2194 ↵ \u21B5
⇐ \u21D0 ⇑ \u21D1 ⇒ \u21D2 ⇓ \u21D3 ⇔ \u21D4
∀ \u2200 ∂ \u2202 ∃ \u2203 ∅ \u2205
∇ \u2207 ∈ \u2208 ∉ \u2209 ∋ \u220B ∏ \u220F
∑ \u2211 − \u2212 ∗ \u2217 √ \u221A
∝ \u221D ∞ \u221E ∠ \u2220 ∧ \u2227 ∨ \u2228
∩ \u2229 ∪ \u222A ∫ \u222B ∴ \u2234 ∼ \u223C
≅ \u2245 ≈ \u2248 ≠ \u2260 ≡ \u2261 ≤ \u2264
≥ \u2265 ⊂ \u2282 ⊃ \u2283 ⊄ \u2284 ⊆ \u2286
⊇ \u2287 ⊕ \u2295 ⊗ \u2297 ⊥ \u22A5
⋅ \u22C5 ⌈ \u2308 ⌉ \u2309 ⌊ \u230A
⌋ \u230B ⟨ \u2329 ⟩ \u232A ◊ \u25CA
♠ \u2660 ♣ \u2663 ♥ \u2665 ♦ \u2666
" \x22 & \x26 < \x3C > \x3E O&Elig; \u152 œ \u153
Š \u160 š \u161 Ÿ \u178 ˆ \u2C6
˜ \u2DC   \u2002   \u2003   \u2009
‌ \u200C ‍ \u200D ‎ \u200E ‏ \u200F – \u2013
— \u2014 ‘ \u2018 ’ \u2019 ‚ \u201A
“ \u201C ” \u201D „ \u201E † \u2020
‡ \u2021 ‰ \u2030 ‹ \u2039 › \u203A
€ \u20AC ' \u0027 ‎ "" ‏ "" ? "" * ""
* ""
};
set text [string map [list "\]" "\\\]" "\[" "\\\[" "\$" "\\\$" "\\" "\\\\"] [string map $escapes $text]]
regsub -all -- {&#([[:digit:]]{1,5});} $text {[format %c [string trimleft "\1" "0"]]} text
regsub -all -- {&#x([[:xdigit:]]{1,4});} $text {[format %c [scan "\1" %x]]} text
return [subst "$text"]
}
putlog "youtube.tcl editing ßy rascoLn"
youtube.tcl editing ßy rascoLn
Merhabalar,
Radyo Dj'leri icin hazirlanmis olan dj.tcl 'de !istek , !var , !yok , !ara komutları mevcuttur.
Dj kanalında İstek isteyenin nicki , isteği ve isteğinin mp3 'e çevirilmiş hali otomatik olarak cıkmaktadır..
Komutlar:
RADYO KANALINDA İSTEK İSTEMEK İÇİN:
!istek şarkı
ŞARKI VARSA KİŞİNİN ÖZELİNE MESAJ YOLLAMAK İÇİN (dj kanalında):
!var nick
ŞARKI YOKSA KİŞİNİN ÖZELİNE MESAJ YOLLAMAK İÇİN (dj kanalında):
!yok nick
İSTENİLEN ŞARKI DJ KANALINDA DOĞRU LİNK OLARAK ÇIKMAMIŞSA MANUEL ARAMA YAPMAK İÇİN (dj kanalında):
!ara şarkı
Tcl de radyo ve dj kanal isimlerini + bekleme süresini editlemeyi unutmayınız.
## ## ## ####### ## ## ####### ## ## ####### ####### ##
# ## ## ## ## ## ## ### ## ## ## # ## #
# ####### ## ## ## ## ### ## ## ####### #### #
# ## ## ## ## ## ### ## ## ## # ## #
# ## ####### ####### ### ####### ####### ####### #
## Editing By rascoLn ##
set araislem(trigger) "!ara" ;# sadece dj kanalindakilerin kullanacagi komut (eger istenilen sarki linki cikmaz ise)
set istekislem(trigger) "!istek" ;# istek komutu
set varislem(trigger) "!var" ;# sarki var ise yazilacak komut
set yokislem(trigger) "!yok" ;# sarki yok ise yazilacak komut
set radyo "#spor" ;# istek yapilacak kanal
set dj "#dj" ;# istegin gonderilecegi kanal
set timetube "15" ;# Tekrardan istek yapabilmek icin beklenen sure
bind pub - $araislem(trigger) aratube
bind pub - $istekislem(trigger) istektube
bind pub - $varislem(trigger) vartube
bind pub - $yokislem(trigger) yoktube
proc istektube {nick host hand chan arg} {
if {[info exists ::checks($host)] && ([clock seconds] - $::checks($host)) < $::timetube} { putquick "privmsg $nick :Sayin. \002$nick\002 \[\0034 15 \003\] saniye sonra tekrardan istek yapabilirsiniz.. \003"; return }
set ::checks($host) [clock seconds]
if { $::radyo ne $chan } { largetext privmsg $nick "istekler sadece $::radyo kanalindan yapilmaktadir."; return 0 }
if {$arg == ""} { largetext privmsg $nick "\002Istek Kullanimi:\002 $::radyo kanalinda $::istekislem(trigger) <isteginiz> seklindedir."; return 0 }
largetext privmsg $::dj "\t\t\t\t\0030,5\002 G E L E N - I S T E K \003"
largetext privmsg $::dj "--------------------------------------------------"
largetext privmsg $::dj "\0034NICK :\003 $nick | \0034ISTEGI :\003 $arg"
largetext privmsg $::dj "--------------------------------------------------"
largetext privmsg $::radyo "\00315,1 >\0030> \0039Isteginiz Radyo Dj'imize Iletilmistir. \00311$nick \0030<\00315< \003"
youtube $nick $host $hand $chan $arg
}
proc youtube {nick host hand chan arg} {
set form [string map -nocase {" " "+"} $arg]
catch { exec curl -v "[Only Registered Users Can See Links]$form" } data
if {[regexp -- {</div><div class="yt-lockup-content"><h3 class="yt-lockup-title"><a href="(.*?)" class="yt-uix-tile-link yt-ui-ellipsis yt-ui-ellipsis-2 yt-uix-sessionlink spf-link " data-sessionlink=".*?" title="(.*?)" aria-describedby=".*?" rel="spf-prefetch" dir="ltr">.*?</a><span class="accessible-description" id=".*?"> - (.*?).</span></h3>(.*)$} $data -> number title sure data]} {
largetext privmsg $::dj "< You\0030,4tube\003 > \00304Baslik :\00301 [string map -nocase {"°" "I" "ÄŸ" "g" "Ä°" "i" "ç" "c" "ı" "i" "ü" "u" "ÅŸ" "s" "^" "s" "ö" "o"} $title] | \0030,1 $sure \003"
largetext privmsg $::dj "< You\0030,4tube\003 > \00304Youtube linki:\00301 [Only Registered Users Can See Links]$number\003"
largetext privmsg $::dj "< You\0030,4tube\003 > \00300,1 MP3 olarak indir: \00300,4 [Only Registered Users Can See Links][string map -nocase {"\/watch\?" ""} $number]\003"
largetext privmsg $::dj "--------------------------------------------------"
return 0
}
if {![info exists title]} { utimer 1 [list youtube $nick $host $hand $chan $arg] }
}
proc aratube {nick host hand chan arg} {
if { [onchan $nick $::dj] && ($chan eq $::dj)} {
if {$arg == ""} { largetext privmsg $chan "\002Kullanimi:\002 $::istekislem(trigger) <isteginiz>"; return 0 }
set form [string map -nocase {" " "+"} $arg]
catch { exec curl -v "[Only Registered Users Can See Links]$form" } data
if {[regexp -- {</div><div class="yt-lockup-content"><h3 class="yt-lockup-title"><a href="(.*?)" class="yt-uix-tile-link yt-ui-ellipsis yt-ui-ellipsis-2 yt-uix-sessionlink spf-link " data-sessionlink=".*?" title="(.*?)" aria-describedby=".*?" rel="spf-prefetch" dir="ltr">.*?</a><span class="accessible-description" id=".*?"> - (.*?).</span></h3>(.*)$} $data -> number title sure data]} {
largetext privmsg $::dj "--------------------------------------------------"
largetext privmsg $::dj "< You\0030,4tube\003 > \00304Baslik :\00301 [string map -nocase {"°" "I" "ÄŸ" "g" "Ä°" "i" "ç" "c" "ı" "i" "ü" "u" "ÅŸ" "s" "^" "s" "ö" "o"} $title] | \0030,1 $sure \003"
largetext privmsg $::dj "< You\0030,4tube\003 > \00304Youtube linki:\00301 [Only Registered Users Can See Links]$number\003"
largetext privmsg $::dj "< You\0030,4tube\003 > \00300,1 MP3 olarak indir: \00300,4 [Only Registered Users Can See Links][string map -nocase {"\/watch\?" ""} $number]\003"
largetext privmsg $::dj "--------------------------------------------------"
return 0
}
if {![info exists title]} { utimer 1 [list aratube $nick $host $hand $chan $arg] }
}
}
proc vartube {nick host hand chan arg} {
if { $::dj ne $chan } { return 0 }
if { $arg eq "" || [llength $arg] >= 2 } { largetext privmsg $chan "\002Kullanimi:\002 $::varislem(trigger) <nick>"; return 0 }
putquick "privmsg [lindex $arg 0] :Repertuarimizda isteginiz bulunmaktadir. Isteginiz isleme alinmistir."
putquick "privmsg [lindex $arg 0] :Bizi dinlediginiz icin tesekkur eder iyi sohbetler dileriz.."
}
proc yoktube {nick host hand chan arg} {
if { $::dj ne $chan } { return 0 }
if { $arg eq "" || [llength $arg] >= 2 } { largetext privmsg $chan "\002Kullanimi:\002 $::yokislem(trigger) <nick>"; return 0 }
putquick "privmsg [lindex $arg 0] :Repertuarimizda isteginiz bulunmamaktadir."
putquick "privmsg [lindex $arg 0] :Bizi dinlemeye devam edebilir veya baska istekte bulunabilirsiniz. iyi sohbetler dileriz.."
}
proc largetext {type target text {delims {" "•,.!?}}} {
set lineLen [expr {412 - [string length ":$::botname $type [join $target] :\r\n"]}]
if {[string length $text] <= $lineLen} {
putquick "$type $target :[entityToChar $text]"
return 0
}
set _text [split [entityToChar $text] $delims]
set x 0
set i 0
while {$x < $lineLen} {
if {$i >= [llength $_text]} {
return 0
}
set wordlen [string length [lindex $_text $i]]
if {$x + $wordlen > $lineLen} {
break
}
incr x $wordlen
incr x
incr i
}
putquick "$type $target :[string range [entityToChar $text] 0 [expr {$x - 1}]]"
largetext $type $target [string trimleft [string range [entityToChar $text] $x end]] $delims
}
proc entityToChar {text {char utf-8}} {
if {![string match *&* $text]} {return $text}
set escapes {
\xa0 ¡ \xa1 ¢ \xa2 £ \xa3 ¤ \xa4
¥ \xa5 ¦ \xa6 § \xa7 ¨ \xa8 © \xa9
ª \xaa « \xab ¬ \xac * \xad ® \xae
¯ \xaf ° \xb0 ± \xb1 ² \xb2 ³ \xb3
´ \xb4 µ \xb5 ¶ \xb6 · \xb7 ¸ \xb8
¹ \xb9 º \xba » \xbb ¼ \xbc ½ \xbd
¾ \xbe ¿ \xbf À \xc0 Á \xc1 Â \xc2
à \xc3 Ä \xc4 Å \xc5 Æ \xc6 Ç \xc7
È \xc8 É \xc9 Ê \xca Ë \xcb Ì \xcc
Í \xcd Î \xce Ï \xcf Ð \xd0 Ñ \xd1
Ò \xd2 Ó \xd3 Ô \xd4 Õ \xd5 Ö \xd6
× \xd7 Ø \xd8 Ù \xd9 Ú \xda Û \xdb
Ü \xdc Ý \xdd Þ \xde ß \xdf à \xe0
á \xe1 â \xe2 ã \xe3 ä \xe4 å \xe5
æ \xe6 ç \xe7 è \xe8 é \xe9 ê \xea
ë \xeb ì \xec í \xed î \xee ï \xef
ð \xf0 ñ \xf1 ò \xf2 ó \xf3 ô \xf4
õ \xf5 ö \xf6 ÷ \xf7 ø \xf8 ù \xf9
ú \xfa û \xfb ü \xfc ý \xfd þ \xfe
ÿ \xff ƒ \u192 Α \u391 Β \u392 Γ \u393 Δ \u394
Ε \u395 Ζ \u396 Η \u397 Θ \u398 Ι \u399
Κ \u39A Λ \u39B Μ \u39C Ν \u39D Ξ \u39E
Ο \u39F Π \u3A0 Ρ \u3A1 Σ \u3A3 Τ \u3A4
Υ \u3A5 Φ \u3A6 Χ \u3A7 Ψ \u3A8 Ω \u3A9
α \u3B1 β \u3B2 γ \u3B3 δ \u3B4 ε \u3B5
ζ \u3B6 η \u3B7 θ \u3B8 ι \u3B9 κ \u3BA
λ \u3BB μ \u3BC ν \u3BD ξ \u3BE ο \u3BF
π \u3C0 ρ \u3C1 ς \u3C2 σ \u3C3 τ \u3C4
υ \u3C5 φ \u3C6 χ \u3C7 ψ \u3C8 ω \u3C9
ϑ \u3D1 ϒ \u3D2 ϖ \u3D6 • \u2022
… \u2026 ′ \u2032 ″ \u2033 ‾ \u203E
⁄ \u2044 ℘ \u2118 ℑ \u2111 ℜ \u211C
™ \u2122 ℵ \u2135 ← \u2190 ↑ \u2191
→ \u2192 ↓ \u2193 ↔ \u2194 ↵ \u21B5
⇐ \u21D0 ⇑ \u21D1 ⇒ \u21D2 ⇓ \u21D3 ⇔ \u21D4
∀ \u2200 ∂ \u2202 ∃ \u2203 ∅ \u2205
∇ \u2207 ∈ \u2208 ∉ \u2209 ∋ \u220B ∏ \u220F
∑ \u2211 − \u2212 ∗ \u2217 √ \u221A
∝ \u221D ∞ \u221E ∠ \u2220 ∧ \u2227 ∨ \u2228
∩ \u2229 ∪ \u222A ∫ \u222B ∴ \u2234 ∼ \u223C
≅ \u2245 ≈ \u2248 ≠ \u2260 ≡ \u2261 ≤ \u2264
≥ \u2265 ⊂ \u2282 ⊃ \u2283 ⊄ \u2284 ⊆ \u2286
⊇ \u2287 ⊕ \u2295 ⊗ \u2297 ⊥ \u22A5
⋅ \u22C5 ⌈ \u2308 ⌉ \u2309 ⌊ \u230A
⌋ \u230B ⟨ \u2329 ⟩ \u232A ◊ \u25CA
♠ \u2660 ♣ \u2663 ♥ \u2665 ♦ \u2666
" \x22 & \x26 < \x3C > \x3E O&Elig; \u152 œ \u153
Š \u160 š \u161 Ÿ \u178 ˆ \u2C6
˜ \u2DC   \u2002   \u2003   \u2009
‌ \u200C ‍ \u200D ‎ \u200E ‏ \u200F – \u2013
— \u2014 ‘ \u2018 ’ \u2019 ‚ \u201A
“ \u201C ” \u201D „ \u201E † \u2020
‡ \u2021 ‰ \u2030 ‹ \u2039 › \u203A
€ \u20AC ' \u0027 ‎ "" ‏ "" ? "" * ""
* ""
};
set text [string map [list "\]" "\\\]" "\[" "\\\[" "\$" "\\\$" "\\" "\\\\"] [string map $escapes $text]]
regsub -all -- {&#([[:digit:]]{1,5});} $text {[format %c [string trimleft "\1" "0"]]} text
regsub -all -- {&#x([[:xdigit:]]{1,4});} $text {[format %c [scan "\1" %x]]} text
return [subst "$text"]
}
putlog "youtube.tcl editing ßy rascoLn"
youtube.tcl editing ßy rascoLn