• 28-04-2020, 17:23:53
    #1
    Aşağıdaki örnekteki göründüğü gibi deneme yaptığım kod Twitch üzerinden kendi kanalımda yazılan mesajlara otomatik cevap veriyor.Ancak şöyle bir sorun var "sa" şeklinde yazıldığında cevap veriyor ama "SA" gibi büyük-küçük harf farklı yazıldığı durumlarda yanıt vermiyor if döngüsüne koşul operatörleri ile eklemeyi denedim ancak bu seferde tüm yanıtları chatten yazmaya başladı.Örn: "sa" yazıldığında hem as yanıtını verdi hem de bir altındaki satırdaki merhaba yanıtını verdi.Nerede hata yapıyorum bilenler yardımcı olursa sevinirim.
    var client = new tmi.client(config)
    client.connect();
    
    client.on("connected", (address, port) => {
    console.log(channelName, "Successfully Connected")
    })
    
    client.on("chat", (channel, user, message, self) => {
    if (self) return;
    if (message == "sa") {
    client.say(channelName, "@"+user.username + " " + "as")
    }
    
    })
    client.on("chat", (channel, user, message, self) => {
    if (self) return;
    if (message == "selam") {
    client.say(channelName, "@"+user.username + " " + "as")
    }
    })
    client.on("chat", (channel, user, message, self) => {
    if (self) return;
    if (message == "merhaba") {
    client.say(channelName, "@"+user.username + " " +"Merhaba")
    }
    })
  • 28-04-2020, 17:31:18
    #2
    Node.js tam bilmiyorum ama belki yararı olur diye söylemek istedim PHP'de olması lazımdı lowercase yapıyordu bazıları gelen mesajları böylelikle gelen mesaj MERHABA olsa bile merhaba olarak değişkende tutuluyordu onun üzerinden If döngüsü çalıştırılıyordu belki yararı olur diye söylemek istedim Node.JS'de lowercase karşılığı nedir bilmiyorum.
  • 28-04-2020, 17:35:16
    #3
    Üyeliği durduruldu
    İyi günler,

    Biraz daha regex yaptıktan sonra.

    Aşağıdaki gibi denersen aslında daha stabil bir kod elde etmiş olursun.

    client.on("chat", (channel, user, message, self) => {
    if (self) return;
    switch(message) {
    case "sa":
        client.say(channelName, "<span class="userTag"><span class="userTag"><span class="userTag">@"</span></span></span>+user.username + " " + "as")
    break;
    case "merhaba":
        client.say(channelName, "<span class="userTag"><span class="userTag"><span class="userTag">@"</span></span></span>+user.username + " " + "merhaba")
    break;
    default:
        client.say(channelName, "<span class="userTag"><span class="userTag"><span class="userTag">@"</span></span></span>+user.username + " " + "hoÅŸgeldin")
    }
    })
  • 28-04-2020, 17:35:39
    #4
    JustChargin adlı üyeden alıntı: mesajı görüntüle
    Node.js tam bilmiyorum ama belki yararı olur diye söylemek istedim PHP'de olması lazımdı lowercase yapıyordu bazıları gelen mesajları böylelikle gelen mesaj MERHABA olsa bile merhaba olarak değişkende tutuluyordu onun üzerinden If döngüsü çalıştırılıyordu belki yararı olur diye söylemek istedim Node.JS'de lowercase karşılığı nedir bilmiyorum.
    Yanıtınız için teşekkürler Node.js üzerinde toLowerCase() metodu mevcut onu da denemiştim ama bir sonuç alamamıştım ancak tekrar bir göz gezdiririm.



    Aragami adlı üyeden alıntı: mesajı görüntüle
    İyi günler,

    Biraz daha regex yaptıktan sonra.

    Aşağıdaki gibi denersen aslında daha stabil bir kod elde etmiş olursun.

    client.on("chat", (channel, user, message, self) => {
    if (self) return;
    switch(message) {
    case "sa":
        client.say(channelName, "<span class="userTag"><span class="userTag"><span class="userTag">@"</span></span></span>+user.username + " " + "as")
    break;
    case "merhaba":
        client.say(channelName, "<span class="userTag"><span class="userTag"><span class="userTag">@"</span></span></span>+user.username + " " + "merhaba")
    break;
    default:
        client.say(channelName, "<span class="userTag"><span class="userTag"><span class="userTag">@"</span></span></span>+user.username + " " + "hoÅŸgeldin")
    }
    })
    Tavsiyeleriniz için teşekkürler önerdiğiniz yöntem daha mantıklı gözüküyor uygulayacağım.
  • 28-04-2020, 17:40:14
    #5
    Üyeliği durduruldu
    Bir de if döngüsü demişsin if-else döngü değildir.

    if-else statament, ifadesi/sorgulaması demeliyiz.

    Verdiğim kodla biraz daha oynarsan çok daha işlevsel olacak ve hızlanacaktır.
  • 23-05-2020, 12:09:18
    #6
    if (message.toLowerCase() == "sa") şeklinde kullanırsanız büyükte yazılsa küçükte yazılsa farketmez. Muhtemelen çözmüşsünüzdür ama yinede yazayım dedim.