redis client.quit
redis client.end
bot.on('message', async (msg) => {
const text = msg.text.toLowerCase()
const chatId = msg.chat.id
const message = 'TEXT'
if (text.match('123')) {
setTimeout(() => {
bot.sendMessage(chatId, message)
.then(msgData=>{
let count = 0;
const timerId = setInterval(() => {
count+=Math.floor(Math.random()*10);
if(count>100){
count=100;
clearInterval(timerId);
}
bot.editMessageText(`${message} (edit) ${count}%`,
{
chat_id: msgData.chat.id,
message_id: msgData.message_id
});
}, 500)
})
}, 500)
}
})
Moscow:
91.243.188.184
91.243.188.114
91.243.188.30
91.243.188.137
SPB:
109.120.128.178
109.120.128.179
109.120.128.180
New IP Moscow:
83.166.240.184
83.166.241.9
83.166.241.120
port: 7951
login/pas: In the account https://www.oplata.info/info/delivery.asp
const filedata = fs.readFileSync('proxy.txt', 'utf-8');
const proxyData = filedata.split(/\s*?\n+\s*/).reduce(
(acc, line)=>{
if( /\w+:$/.test(line)){
acc.location = line;
}else if( /port:\s*\d+/.test(line)){
acc.port = line.replace(/\D+/g,'');
}else if( /\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/.test(line)){
acc.list.push({
ip: line,
location: acc.location
});
}
return acc;
},
{
list:[],
location: undefined,
port: undefined
}
);
const targetProxy = proxyData.list.map(item => item.ip + ':' + proxyData.port);
console.log(targetProxy)
// 91.243.188.184:7951
// 91.243.188.114:7951
// 91.243.188.30:7951
// 91.243.188.137:7951
// 109.120.128.178:7951
// 109.120.128.179:7951
// 109.120.128.180:7951
// 83.166.240.184:7951
// 83.166.241.9:7951
// 83.166.241.120:7951
fs.writeFile(file, data[, options], callback)#
History:
- file
<string> | <Buffer> | <URL> | <integer>
filename or file descriptor- data
<string> | <Buffer> | <TypedArray> | <DataView> | <Object>
- options
<Object> | <string>
- encoding
<string> | <null>
Default: 'utf8'- mode
<integer>
Default: 0o666- flag
<string>
See support of file system flags. Default: 'w'.- signal
<AbortSignal>
allows aborting an in-progress writeFile- callback
<Function>
- err
<Error> | <AggregateError>
When file is a filename, asynchronously writes data to the file, replacing the file if it already exists. data can be a string or a buffer.
When file is a file descriptor, the behavior is similar to calling fs.write() directly (which is recommended). See the notes below on using a file descriptor.
The encoding option is ignored if data is a buffer.
If data is a plain object, it must have an own (not inherited) toString function property.
...
fs.write
). После этого нужные пункты оглавления подсветятся желтым и вы легко найдете нужный. var sharedData;
socket.on('Название события', data => {
sharedData = data
})
(async () => {
async function getData(){
const promise = new Promise(function(resolve, reject) {
socket.on('Название события', data => {
resolve(data);
});
});
return promise;
}
var sharedData = await getData();
// тут в sharedData будет доступно значение из data
})();
// мой chatId (я админ)
const myId = 1396346856;
// chatId собеседника
let currentInterlocutorId;
bot.on('message', msg => {
//chatId который пишет боту
const chatId = msg.chat.id
// если сообщение от меня (хозяина бота)
if (chatId === myId) {
// не будем мучать БД при каждом моем сообщении поэтому сначала проверим, похоже ли то что я написал на ID пользователя
if (/^\d+$/.test(msg.text)) {
/*если сообщение которое я ввел равно chatId пользователя из базы данных, то следующие сообщения будут отправляться этому пользователю*/
Person
.findOne({ chat: msg.text })
.then(person => {
currentInterlocutorId = msg.text;
bot.sendMessage(mayId, 'Соединение установлено')
})
.catch()
}
// если я (хозяина бота) ввел "stop" общение прекращаем
if (msg.text === "stop") {
bot.sendMessage(mayId, 'Соединение разорвано');
bot.sendMessage(currentInterlocutorId, 'Я от тебя устал, не пиши мне больше!!!');
currentInterlocutorId = undefined;
}
}
// если собеседник был выбран
if (currentInterlocutorId) {
// если пишу я
if (chatId === myId) {
bot.sendMessage(currentInterlocutorId, msg.text)
}
// если выбранный собеседник пишет мне
else if (chatId === currentInterlocutorId) {
bot.sendMessage(mayId, msg.text)
}
}
})
TypeError: Cannot read property '0' of null
StringPrototypeMatch(importStatement, /{.*}/)
вместо массива (или возможно вместо объекта или даже строки) выдает вам nullconst match = StringPrototypeMatch(importStatement, /{.*}/);
if( !match ) {
return; // сопоставлений не найдено, дальшейшие действия не имеют смысла
}
const namedImports = match[0];
const fs = require("fs");
const Discord = require("discord.js");
const client = new Discord.Client();
client.login("ТУТ ВАШ ТОКЕН");
...
// обработчик события message
client.on('message', async message => {
const filename = Date.now()+".json";
const data = {
content: message.content,
attachments: message.attachments.map(attach=>{
return {
id: attach.id,
url: attach.url,
proxyURL: attach.proxyURL,
filename: attach.filename,
filesize: attach.filesize,
height: attach.height,
width: attach.width
};
})
};
// не забудьте создать папочку logs в папке с ботом
fs.writeFile('./logs/'+filename, JSON.stringify(data), (err) => {
if (err) throw err;
});
});
{
"content":"Тест",
"attachments":[
{
"id":"686193341083549696",
"url":"https://cdn.discordapp.com/attachments/452202521671237653/686193341083549696/IMG-30dd366b26acb4b1cbbe786f3ad22862-V.jpg",
"proxyURL":"https://media.discordapp.net/attachments/452202521671237653/686193341083549696/IMG-30dd366b26acb4b1cbbe786f3ad22862-V.jpg",
"filename":"IMG-30dd366b26acb4b1cbbe786f3ad22862-V.jpg",
"filesize":58121,
"height":330,
"width":374
}
]
}
The first argument must be one of type string ...
ws.send( JSON.stringify({'connected':25,"room":1000}));