yagop / node-telegram-bot-api

Telegram Bot API for NodeJS
MIT License
8.31k stars 1.51k forks source link

question #546

Closed AOleksenko closed 2 years ago

AOleksenko commented 6 years ago

Bug Report

I have read:

I am using the latest version of the library.

Expected Behavior

Actual Behavior

Steps to reproduce the Behavior

Feature Request

I have:

Introduction

Example

Question

yagop commented 6 years ago

What is the question?

AOleksenko commented 6 years ago

hello, how can i make function when my bot clears chat history with every user every 2 hours?

tyt34 commented 6 years ago

Aleks97, Why you not add chat history in individual file? Then you can clear and do anything with it.

AOleksenko commented 6 years ago

but in this case user will have him conversation with bot,isnt it?

tyt34 commented 6 years ago

Now, I dont undrestand what you want.

AOleksenko commented 6 years ago

okay. How can i add chat history in individual file?

tyt34 commented 6 years ago
bot.on('message', (msg) => {
    // get Data
    let now = new Date();
    let c = now.getFullYear();
    let m = now.getMinutes();
    let s = now.getSeconds();
    console.log(msg.text+" "+m+":"+s);
    let before = fs.readFileSync("YOUR_FILE" , "UTF-8");
    fs.writeFileSync("YOUR_FILE" , before+"Text => "+msg.text+"\nUser => "+msg.from.first_name+" "+msg.from.last_name+"\n\n")
});

My code

AOleksenko commented 6 years ago

i wrote this code in my bot, and every time when i click every button on my keyboard i saw in console 57:24 error: [polling_error] {} and figures are different all time

tyt34 commented 6 years ago

I dont know. This code in begin file. I dont have erorr. I can send img with console and display telegramm chat for proof.

AOleksenko commented 6 years ago

please do it and please add code's photo

tyt34 commented 6 years ago

ok Yes

AOleksenko commented 6 years ago

thank you and now How can you delete this message?

tyt34 commented 6 years ago

From chatHistory.txt file?

AOleksenko commented 6 years ago

вы говорите по русски?

tyt34 commented 6 years ago

Конечно

AOleksenko commented 6 years ago

блин,давай-те я по русски напишу,просто я наверное на английском не понятно описал,что у меня не получается. Смотрите я написал телеграм бота,с помощью вашей библиотеки и у меня возникла проблема. Я не знаю как написать такую функцию, чтобы бот удалял историю переписки с каждым человеком, допустим каждые два часа или может можно прописать,чтобы я удалял в ручную?

tyt34 commented 6 years ago
a.bot.onText(/\Qq/, (msg) => {
        fs.writeFileSync("fileForAleks.txt" , "");
 })

Пишешь в чат \Qq и история стерлась. Только что проверил.

AOleksenko commented 6 years ago

bot.on('message', (msg) => { // get Data let now = new Date(); let c = now.getFullYear(); let m = now.getMinutes(); let s = now.getSeconds(); console.log(msg.text+" "+m+":"+s); let before = fs.readFileSync("название файла в котором пишу бота.js" , "UTF-8"); fs.writeFileSync("название файла куда должно все отправляться.txt" , before+"Text => "+msg.text+"\nUser => "+msg.from.first_name+" "+msg.from.last_name+"\n\n") });

a.bot.onText(/\Qq/, (msg) => { fs.writeFileSync("название файла куда должно все отправляться.txt" , ""); }) так должно быть?

tyt34 commented 6 years ago

1) Используйте функцию "Insert code"; 2) let before = fs.readFileSync("название файла в котором пишу бота.js" , "UTF-8"); Нет, не в файле бота, а в файле где ваша переписка. Вы читали про библиотеку "fs"? Вот, почитайте.

AOleksenko commented 6 years ago

вы путь прописывали через filename или dirname? /Qq 51:23 error: [polling_error] {"errno":-4058,"code":"ENOENT","syscall":"open","path":"D:\front\bot\index.js\fileAleks.txt"}

AOleksenko commented 6 years ago

можете пожалуйста отправить пример что вы пишете в ковычках let before = fs.readFileSync("название файла в котором пишу бота.js" , "UTF-8");

tyt34 commented 6 years ago

https://www.google.ru/search?q=fs+js&oq=fs+js&aqs=chrome..69i57.3230j0j7&client=ms-android-sonymobile&sourceid=chrome-mobile&ie=UTF-8

AOleksenko commented 6 years ago

спасибо большое за совет,все прочитал все сделал,работает,в консоли выдает ответ как у вас на скриншоте, и в отдельный файл все смс выходят. Но мне не это нужно было,смотрите, если я вам отправлю своего бота вы сможете по нажимать разные кнопки,он отправит вам картинки и так далее, но если вы нажмете /Qq то вся история удалиться,но у меня(в текстовом документе который я указал) а не у вас в чате с ботом,верно?

AOleksenko commented 6 years ago

я имею в виду,допустим у вас очень много в чате смс с ботом,если у вас андроид,то в правом верхнем углу будет три точки,там есть кнопка очистить историю, и все сообщения удаляются,могу ли я прописать такую функцию или команду? Допустим, чтобы при сообщении /Qq все смс в этом чате удалились?

tyt34 commented 6 years ago

не знаю

AOleksenko commented 6 years ago

вы когда прописали ваш код,я имею в виду, все что вы мне отправили у вас в самом чате удалились сообщения?

tyt34 commented 6 years ago

нет

tyt34 commented 6 years ago

вот почитайте, может поможет https://core.telegram.org/bots/api#deletemessage

AOleksenko commented 6 years ago

спасибо,я это читал,как я понял то бот может удалить любое сообщение,если он администратор чата(то есть какого-то телеграм канала,где бот является админом)а если это просто бот,то он как бы создает свой чат с каждым человеком отдельно и получается,что я могу это контролировать просто получая информацию из каждого чата используя webhook или poling, но удалить сообщение допустим из вашего чата с моим ботом я не могу.(не могу сделать телеграм канал и поставить его админом, так как делаю тест бот) Извините за кол-во вопросов,просто никогда не писал на js, не давно начал заниматься

AOleksenko commented 6 years ago

возможно, я что-то неправильно понимаю