Hoşgeldin Misafir

Text to Regex Alias (Kelimeyi Regexe Çevirmek)

Enyalios

21 Eki 2020
873 Mesaj

Aktiflik

Seviye

Deneyim

TIM / GÖREV:
merhabalar değerli forum kullanıcıları. FnX botunun auto spam kodundan bir parçayı sizlerle paylaşma kararı aldım. daha da gelişmiş halini de ilerleyen zamanlarda paylaşmayı düşünüyorum. regexe çevirmek istediğiniz kelimenin boyutu 338 byte/karakterden büyük ise regex çevirme işlemini yapmıyor. bunun sebebi bu kodu kulanmış olduğum sunucuda bu boyutu aşan verilerin (açıklama dahil) spamfilter olarak eklenememesiydi. kullanımıyla ilgili örnekleri aşağıda vereceğim.--

öncelikle kodumuz:--


Kod:
;yardımcılar
alias _reg { return $replace($1-,a,[àáâãä忯ÀÁÂÃÄÅÆaª@4],e,[æèéêëe£â‚¬ÈÉÊ3],i,ı,ı,İ,İ,[ÌÍÎÏìíîïİıi\!1j],b,ß,ß,[bß],k,[kq],o,ö,ö,Ö,Ö,0,0,[òóôõoöÖøÒØÔº0],u,ü,ü,Ü,Ü,[ùúûÙÚÛuÜüÙµ],[:p[ùúûÙÚÛuÜüÙµ]nct:],[:punct:],ğ,Ğ,Ğ,g,g,q,q,[ğĞgq],c,ç,ç,Ç,Ç,[©¢cçÇ],[k[ğĞgq]],([kq]|(\|\{)),[:pun[©¢cçÇ]t:],[:punct:],[:[©¢cçÇ]ntrl:],[:cntrl:],r,[r\®],[:cnt[r\®]l:],[:cntrl:],ş,s,s,Ş,Ş,$,$,[Å¡Å*sŞş§\$5],\[Å¡Å*sŞş§\$5],\s,v,w,w,[wv]) }
alias c {
  if $regex($prop,/^b$/) { return $+($chr(3),$regsubex($1,/(x)/g,$chr(44)),$chr(2),$chr(2),$chr(2),$2-,$chr(3),$chr(2)) } 
  if $regex($prop,/^u$/) { return $+($chr(3),$regsubex($1,/(x)/g,$chr(44)),$chr(31),$chr(2),$chr(2),$2-,$chr(3),$chr(31)) }
  if $regex($prop,/^(bu)|(ub)$/) { return $+($chr(3),$regsubex($1,/(x)/g,$chr(44)),$chr(31),$chr(2),$chr(2),$chr(2),$2-,$chr(3),$chr(31),$chr(2)) }
  else { return $+($chr(3),$regsubex($1,/(x)/g,$chr(44)),$chr(2),$chr(2),$2-,$chr(3))) }
}
;olay
alias çevir3 {
  var %breglen (?i) $+ $regsubex($_reg($regsubex($regsubex($regsubex($strip($1),/(.)/g,\1+([[:punct:][:cntrl:] ]|\d)*),/\Q([[:punct:][:cntrl:] ]|\d)*\E$/g,),/\+$/g,)),/(\[bß\]|n|m|z|h|f|x|d|p|y|t|l|\[wv\]|\Q([kq]|(\|\{))\E|\[wv\]|\[©¢cçÇ\]|\Q[Å¡Å*sŞş§\$5]\E|\[ğĞgq\]|\Q[r\®]\E)\+\Q([[:punct:][:cntrl:] ]|\d)*\E/gi,\1+([[:punct:][:cntrl:] ]|\d|h)*)
  if $len(%breglen) > 338 { 
    echo -a $c(4,<Hata Mesajı>) Çevirdiğiniz regex spamfilter için $c(4,$calc($+($len(%breglen),-,338))) BYTE kadar büyük. Lütfen kelimenizi $c(4,sondan birer harf silerek).b çevirme işlemini yineleyin.
    echo -a -
    return
  }
  echo -a $c(2,Kelime:) $1
  echo -a $c(2,Regex:) %breglen
  echo -a $c(2,Boyut:) $len(%breglen) BYTE
  echo -a - 
}
-yaptığımız testler:--
--

uygulama:--
 /çevir3 Xenophanes--

cevap:--

<Hata Mesajı> Çevirdiğiniz regex spamfilter için 8 BYTE kadar büyük. Lütfen kelimenizi sondan birer harf silerek çevirme işlemini yineleyin.--

---

uygulama:-- /çevir3 Xenop--

cevap:--

Kelime: Xenop--

Regex: (?i)X+([[:punct:][:cntrl:] ]|\d|h)*[æèéêëe£â‚¬ÈÉÊ3]+([[:punct:][:cntrl:] ]|\d)*n+([[:punct:][:cntrl:] ]|\d|h)*[òóôõoöÖøÒØÔº0]+([[:punct:][:cntrl:] ]|\d)*p--

Boyut: 152 BYTE--

---

uygulama:-- /çevir3 trsohbet--

cevap:--

Kelime: trsohbet--

Regex: (?i)t+([[:punct:][:cntrl:] ]|\d|h)*[r\®]+([[:punct:][:cntrl:] ]|\d|h)*[Å¡Å*sŞş§\$5]+([[:punct:][:cntrl:] ]|\d|h)*[òóôõoöÖøÒØÔº0]+([[:punct:][:cntrl:] ]|\d)*h+([[:punct:][:cntrl:] ]|\d|h)*[bß]+([[:punct:][:cntrl:] ]|\d|h)*[æèéêëe£â‚¬ÈÉÊ3]+([[:punct:][:cntrl:] ]|\d)*t--

Boyut: 262 BYTE--

---



bu arada şu c aliası kodlarda renk,bold,altı çizili gibi olayları kodlamalarda kullanabilmek için azıcık ta can sıkıntısından yapmış olduğum bir şey. onun da olayı:--
-kırmızı font, beyaz yazı ile Xenophanes yazmak için: $c(0x4,Xenophanes)
kırmızı font, beyaz yazı, kalın harfler ile Xenophanes yazmak için: $c(0x4,Xenophanes).b
kırmızı font, beyaz yazı, altı çizili harfler ile Xenophanes yazmak için: $c(0x4,Xenophanes).u
kırmızı font, beyaz yazı, altı çizili, kalın harfler ile Xenophanes yazmak için: $c(0x4,Xenophanes).ub veya $c(0x4,Xenophanes).bu
kırmızı yazı ile Xenophanes yazmak için: $c(4,Xenophanes)--
--