Php İle Bot Yapmak
-
Abizittin bunu yazdı:
-----------------------------geçen seneden bu yana değişen bişey yok yani zumsuk :)
çok sağlam bi algoritma lazım sana
-----------------------------puauhauhua aynen :D baba ben kafaya koydum akıllı sistemler üstüne.Yapıcam bunuda.
& pesi : saolasın
& gVeR : baba direk öyle değilde sanırım database kullanıcam.Yine sanıyorum access il bağlayacağım bu sefer :) Hiç olmadı aspden devam.
---
Çok istiyordum dagon.somee.com da editör hariç portal tamamen bana aittir.O portalda akıllı birşeyler yapacaktım ki nickmatör geldi aklıma ve ona yöneldim.Php ile.Portalda kişinin kötülük hanesi olacaktı.Normal işleyişe ters giden birşeyler yaptığında +1 eklenecek 5 te süreli banlanacak.Tekrar yaparsa süresiz banlanacaktı.Haber onayları, forumda yeni konu falan bir çok algoritma ile denetlenip eskiden varmıymış , benzer varmı bakılacak benzer varsa bunlar var benzeyebilir deyip olsun devam diye tekrar yollanacaktı.
Yani admin orda sadece bekleyecek site kendi kendine işleyecekti.Çok farklı fikirlerde var sdece bunlar değil fakat tam konsantremi nickmatöre verdim.Çokta güzel olacaktı millet sitesini yazacak daha sonra sitelerdn index alınacaktı.Belli aralıklarla.archive.org gibi tarihsel bakılabilecekti.Yine aynı indexler biraz dha dallanıp budaklanacak ve zamanı geldimi nickmatörün altında 3 seçenek lacaktı
1-nick ara
2-site görüntüsü ara
3-arama yapböylece hem toplist tarzı, hem arşiv, hem nick kaydedici hemde arama motoru olacaktı.Yardım istemedim kimseden kendim yapayım diye.Bu yüzden baya bi yük düşüyordu.Altından kalkabilirim diye düşünürken pat üniversiteyi kazandım.Orda arkadaşlar dışarısı falan derken hepsi kaldı.Laptop götdüm eski bir tanede ara ara çalışayım diyorum fakat pardus yüklü tamamen.Linuxta php ile uğraşamıyorum grafik tarafım sıfır ve frontpage bana çok yardımcı oluyordu.
Neyse fazla dağıtmayayım.Kısacası aklımda çok proje vardı fakat bir çoğu şimdilik rafa kaldırıldı.Kaç senedir gördüğümde birşey var ki işlenmeyen demir pas tutar :-/ 8 aydır elimi kodlara sürmüyorum aklımda az birşey kalmış.Belki yine bi php portal yapıp hatırlayabilirm :D
-
aklıma karabasan geldi :)
-
arkadaşlar bir tane yapayım dedim yaptım
www.tarcan.somee.com/tarcan.rar
Şimdi burada sorunum şu ;
naberyazdığımızda ii senden vs.. vs.. diyor
fakat geldim naber yazdığımızda işin içine geldim katılıyor ve benim herşey bozuluyor.
Pesinin bota baktım o kısmını anlayamadım çok karışık geldi.Şöyle mantık kısmını anlatack biri varsa sevinirim.Şu sorunu çözünce inş php için kurucam :D
-
geldim naber cümlesi içinde, database deki anahtarları tek tek aratıcaksın.. aspde bu instr olarak yapılır php yi bilmiyorum. DB deki anahtar örneğin geldim olsun.. sen bu kelimeyi çektiğin cümle içinde var mı yokmu aratıcan varsa cevap verdircen yoksa anlamadım filan dedirtcen..
hem geldim hem naber anahtarları varsa eğer db de öncelik en düşük idye aittir mesela geldim anahtarı id 1 olsun naber anahtarı id 2 olsun bot direk geldim anahtarına cevap verir. Burda da senin bota kelime eklerkenki kabiliyetin yatar :D
-
pesimistzombie bunu yazdı:
-----------------------------geldim naber cümlesi içinde, database deki anahtarları tek tek aratıcaksın.. aspde bu instr olarak yapılır php yi bilmiyorum. DB deki anahtar örneğin geldim olsun.. sen bu kelimeyi çektiğin cümle içinde var mı yokmu aratıcan varsa cevap verdircen yoksa anlamadım filan dedirtcen..
hem geldim hem naber anahtarları varsa eğer db de öncelik en düşük idye aittir mesela geldim anahtarı id 1 olsun naber anahtarı id 2 olsun bot direk geldim anahtarına cevap verir. Burda da senin bota kelime eklerkenki kabiliyetin yatar :D
-----------------------------hoba göründüğünden daha karışıkmış şimdi bunu ayarlayayım :D
peki nasıl yapıcam kafam karıştı ciden
örneğin selam nabıyorsun gönderildi
instr(yazi)=request("yazi")
yazi yı böyle yapıp mı sqldan çektiricez.Yoo bu sefer olmaz :S pff
Yardım :D cidden kafam kitlendi.
Edit:
Pesi senin bottada o var sanırım ;
Önce elle temel bir kaç harf giriyoruz ve senin botta anahtarda var mı yokmu bakıyoruz.Eğer varsa dbden cevaplardan rastgele alıyoruz :S
Biraz uzun olabilir.Bunun direği yokmu.Mesela direk kutucuktan aldığımız veriyi anahtarda arıyoruz bulursa içinde cevap gösteriyoruz
-
:@
Nasıl iş bu çözemedim ya gönderdiğim yazıların içinden dbde anahtar kelimeler varmı diye bakacak altı üstü.Fakat düşünce yapısına göre sözcüğü dbde aramak değil dbdeki sözcüğü aratmak gibi ters birşey oluyor...
-
o kadar şey yazdım bağlantı koptu ve uçtu :/
neyse olay şu
sql ile tabloya bağlanırsın
tablodaki anahtarları döngüyle listelersin
listeletme esnasında anahtarı cümle içinde aratırsın varsa cevap verdirirsin yoksa başka cevap verdirirsin
listeletmeye devam edersin (next loop döngüsü)
bağlantıyı kesersin
olay bu :/ şimdi eğer sadece tek kelime requestten gelseydi ona göre eşleştirme yapabilirdin ancak cümle yazdığın için cümle içinde anahtarları aratman eğer varsa cevaplardan birini yollatman eğer yoksa başka cevap yollatman gerekiyor.
-
pesimistzombie bunu yazdı:
-----------------------------o kadar şey yazdım bağlantı koptu ve uçtu :/
neyse olay şu
sql ile tabloya bağlanırsın
tablodaki anahtarları döngüyle listelersin
listeletme esnasında anahtarı cümle içinde aratırsın varsa cevap verdirirsin yoksa başka cevap verdirirsin
listeletmeye devam edersin (next loop döngüsü)
bağlantıyı kesersin
olay bu :/ şimdi eğer sadece tek kelime requestten gelseydi ona göre eşleştirme yapabilirdin ancak cümle yazdığın için cümle içinde anahtarları aratman eğer varsa cevaplardan birini yollatman eğer yoksa başka cevap yollatman gerekiyor.
-----------------------------saolasın :D biraz karışıkmış ama deneyeyim.
-
asp scriptini anlatayım mesela.. randomlar şaşırttı seni sanırım bak olay şudur
if botcuk(lcase(input))="bot" or botcuk(lcase(input))="robot" or botcuk(lcase(input))=""&botcuk(lcase(botadi))&"" then
fonk="botmod"
RANDOMIZE
LowestNumber = 1
HighestNumber = 5
RandomNumber = Int((HighestNumber-LowestNumber+1)*Rnd+LowestNumber)
SELECT Case RandomNumber
Case 1
sanalbot = "efendim arkadaşım?"
Case 2
sanalbot = "Efendim (uye) ?"
Case 3
sanalbot = "Evet?"
Case 4
sanalbot = "efendim?"
Case 5
sanalbot = "söyle (uye)"
End Select' buraya kadar yazma amacım şuydu; kullanıcı sadece botun ismini, sadece robot, sadece bot yazarsa ona göre karşılık cevap ver.. aslında bu gereksiz
else' burdan sonrası eğer kullanıcı yukarda bahsettiklerimi yazmamışsa cümle yazmıştır muhtemelen o yüzden;
set slt_kelime=bagbot.Execute("select * from bot") ' tabloya bağlanıyorum
if not slt_kelime.eof then 'eğer tablo boş değilse bişeyler kayıtlı demektir kayıtlıysa işleme devam edelim
fonk="botmod" ' sadece bot cevap verdi şeklinde bir tetikleme gerek yok aslında ama ben koymuşum.RANDOMIZE
LowestNumber = 1
HighestNumber = 9
RandomNumber = Int((HighestNumber-LowestNumber+1)*Rnd+LowestNumber)
SELECT Case RandomNumber
Case 1
sanalbot = "katılıyorum (uye) :D"
Case 2
sanalbot = "anlamadım (uye)?"
Case 3
sanalbot = "hiç bi fikrim yok (uye)"
Case 4
sanalbot = "anlayamadım (uye) özürdilerim :("
Case 5
sanalbot = "söylediğini anlayamadım (uye)?"
Case 6
sanalbot = "(uye) ne dediğini anlamadım ? :D"
Case 7
sanalbot = "çay kahve ister misin ? :P"
Case 8
sanalbot = ":D :P"
Case 9
sanalbot = ""&input&" demekle neyi kastettin (uye) ?"
End Select
end if'buraya kadar amaç aslında tablo boş değilse ancak aradığım kelimeyi bulamazsam bu cevapları versin geçsin anlamında yazılmış şeylerdir..
Do While Not slt_kelime.eof ' eğer tablo boş değilse anahtarları listeletelim.. olay burda aslında gerisi fasa fiso
anahtar = botcuk(lcase(slt_kelime("anahtar"))) ' o an listelenen anahtar ve üzerine çeşitli filtreler uygulamışım sebebi bot daha zekalı olsun diye..
botid = slt_kelime("id") ' dbdeki id numarasını almışım burda
karakter=Array(anahtar) 'burada anahtarı array e atıyorum daha iyi bulabilsin diye
For Each krtr In karakter 'döngüye sokuyorum
if instr(botcuk(lcase(input)),krtr)>0 Then ' eğer input yani cümle içinde anahtar varsa yakaladıysam
fonk="botmod" ' yine bot bişiler yazdı tetikleyicisi
RANDOMIZE
LowestNumber = 1
HighestNumber = 5
RandomNumber = Int((HighestNumber-LowestNumber+1)*Rnd+LowestNumber)
SELECT Case RandomNumber
Case 1
sanalbot = slt_kelime("cevap1")
Case 2
sanalbot = slt_kelime("cevap2")
Case 3
sanalbot = slt_kelime("cevap3")
Case 4
sanalbot = slt_kelime("cevap4")
Case 5
sanalbot = slt_kelime("cevap5")
End Select' burada random olarak 5 tane cevap vermişim db den çekip bastırıyorum..
end if
if fonk="botmod" Then exit for
Next
slt_kelime.movenext
Loop
slt_kelime.close
Set slt_kelime=Nothing
end if
end if
gerisi döngüleri kapama vs vsben bunu biraz daha geliştirdiydim aslında..
http://rapidshare.com/files/265894016/PesiBotv2.rar
hediyem olsun :d ruh.asp kısmını incele biraz daha derli toplu
-
heh bende
yazi=request("yazi")
set cek = bag.Execute("select * from lag where anahtar like '%" & yazi & "%'")
do while (not cek.eof)
if instr(cek("cevap"),yazi) then
response.write
end if
rec.movenext
Loop
bu nasıl oalcak diyecektim tam .Eyw saolasın.
Benimki böyleydi asp buda;
http://www.tarcan.somee.com/tarcan.rar
saolasın uğraştığın için hemen inceliyorum
edit:
problem tamamen instr kullanımı dolayısıyla cümle içindekini tabloda buldurmada olmuş.Onlarıda hallederim.
ayrıca ne diyorlar bunlar diye merak edenler : http://www.dagon.somee.com/pesibot/sohbet.asp
buraya bakabilir :)