Ответы пользователя по тегу JavaScript
  • Не работает добавление нового скрипта через js?

    @nemolayn
    Создатель бота Nemo
    Забудьте, все что я сказал - бред, оказывается можно но только при указывании:
    <script src="//domen.com/file.js" type="module"></script>

    Но при этом там душит CORS :)
    Ответ написан
    Комментировать
  • Почему не создается http-server?

    @nemolayn
    Создатель бота Nemo
    npm install --global http-server
    http-server [path]
    Ответ написан
    Комментировать
  • Как импортировать функцию под другим именем?

    @nemolayn
    Создатель бота Nemo
    Убрать export в начале функции и использовать:
    module.exports = {
     getItemByCode: getByCode,
    }
    Ответ написан
    Комментировать
  • Оплата подписки через vk pay?

    @nemolayn
    Создатель бота Nemo
    https://dev.vk.com/ru/pay/getting-started
    Используйте клавиатуру и выставляйте настройки.
    Ответ написан
    Комментировать
  • Как убрать все символы до определенного?

    @nemolayn Автор вопроса
    Создатель бота Nemo
    Возьму и сам отвечу на вопрос.

    Рабочий код:
    async function delWords(txt, countDeleteWords){
    // Возьмем переменную текст как "deleteWord word word"
    text += (`Original: ` + txt) // чистая переменная
    
    let filter1 = txt.replace(/\s/g, ",")
    text += (`\n\nFilter1: ` + filter1) // deleteWord,word,word
    
    let prefilter = filter1.split(",") // делим все слова на массив: ["deleteWord", "word", "word"]
    if(prefilter.length < countDeleteWords){ 
    let err = { 
    code: 1, 
    text: "countDeleteWords is too bigger then count words"
    }
    return err;
    } // Обработка ошибки, может кому то надо
    let filter2 = prefilter.slice(countDeleteWords) // убираем n слов(-о) в Array
    text += (`\n\nfilter2: ` + filter2) // результат word,word
    
    return text; // возвращаем переменную, по необходимости меняем на filter2
    }

    После первого фильтра .replace разбил на массив .split и убрал первую часть массива .slice
    Можно сократить если сразу после .split написать .slice:
    let filter2 = filter1.split(",").slice(countDeleteWords)

    Отредактировано для комментатора))
    Ответ написан
  • Проверка элемента в другом элементе в js?

    @nemolayn
    Создатель бота Nemo
    Немного неправильно сделан код JS

    Исправлено:

    setInterval(function(){
    var parent = document.querySelectorAll('.cart_item');
    for(let i = 0; i<parent.length; i++){
    	var elems1 = parent[i].querySelectorAll('.meta_wc');
    	var elems = parent[i].querySelectorAll('.first_size');
    if (elems.innerHTML == '' ) {
    	elems1.style.display = 'none';
    	};	
    }
    }, 1000);


    Отсутствует перебор документов и просто нечего записывать, если что то не так, жду исправление в коммах
    UPD: цикл if был вне for.
    Т.к нету всего кода я не могу полноценно ответить.
    Ответ написан
  • Как сделать автооплатеж через сбп в вк?

    @nemolayn
    Создатель бота Nemo
    Использовать API например Юмани или что то типо того, что поддерживало СБП и могло делать страницу оплаты через POST запрос. А также последующая проверка оплаты.
    Ответ написан
    Комментировать
  • Как использовать события в данной библиотеке?

    @nemolayn
    Создатель бота Nemo
    Используйте документацию и после ее прочтения, можете задавать вопросы которые остались.
    Ответ написан
  • Как можно отследить отправку сообщения с изображением, аудио, стикером и видео?

    @nemolayn Автор вопроса
    Создатель бота Nemo
    Что бы обработать нужно просто делать вот так:
    vk.updates.on('message', async (message) => {
    if(message.attachments){ // проверка на фотки и тп
    let att = message.attachments
    for(let i = 0; i < att.length; i++){
    if(att[i].type == photo){
    // фото
    } else if(att[i].type == video){
    // видео
    } // так можно продолжать и дальше.
    
    }
    } else {
    return;
    }
    })
    Ответ написан
    Комментировать
  • Как обойти ограничение в setTimeout JS?

    @nemolayn Автор вопроса
    Создатель бота Nemo
    Самое лучшее - setInterval()
    Пример:
    let interval = async () => {
    	await setInterval(findMute, 10000)
    	await setInterval(findBan, 10000)
    }

    Каждые 10 секунд проверка на мут и бан в функциях описан сам разбан
    Ответ написан
    Комментировать
  • Как зделать звукавое уведомление js?

    @nemolayn
    Создатель бота Nemo
    Переделываем в функцию:
    function playAudio($url) {
        $audio = new Audio();
        $audio.src = $url;
        return $audio.play();
     }

    Если тут приходит уведомление то проигрываем этот звук:
    if ( $k_new !=0 && $k_new_fav == 0 ){
      echo 'тут уведомление';
      $url = "http://freewavesamples.com/files/Yamaha-TG100-Ocarina-C5.wav"
      playAudio($url)
    }

    Если есть вопросы пиши в коменты, и да у вас скрипт на php?
    Ответ написан
    Комментировать
  • Функция unban разбанивает сразу, что делать?

    @nemolayn Автор вопроса
    Создатель бота Nemo
    Функция UnBan:
    async function unBan(id, chatid) {
      await mongo.models.chatsusers.updateOne({ vkid: Number(id), join_chat: Number(chatid), banned: String(true) }, { $set: { banned: false, bannedTime: "None", bannedReason: "None" } })
    }

    Таймер:
    let timeValue = `1`
    let timeUnit = `день`
    let seconds = convertToSeconds(timeValue, timeUnit)
    let secondsToMilSeconds = seconds * 1000
    let chatid = message.chatId
    setTimeout(() => {
      unBan(id, chatid)
    }, secondsToMilSeconds);

    Если кому надо то вот функция convertToSeconds:
    function convertToSeconds(timeValue, timeUnit) {
      switch (timeUnit) {
        case 'день':
          return timeValue * 24 * 60 * 60;
        case 'час':
          return timeValue * 60 * 60;
        case 'минута':
          return timeValue * 60;
        default:
          return 0;
      }
    }
    Ответ написан
    Комментировать
  • Какую библиотеку/библиотеки для вк бота юзать?

    @nemolayn
    Создатель бота Nemo
    Лично я использую
    const { VK, Upload, Updates } = require('vk-io');
    const { HearManager } = require('@vk-io/hear');

    Что бы начать нужно все скачать, через NPM
    А далее:
    const vk = new VK({
        token: "// токен нужно получить в группе"
    });
    const pollid = `// айди нужно получить в группе`
    const bot = new HearManager()

    А так же рекомендую начать с данной команды что бы проверить работу бота:
    bot.hear(/^(?:Пинг)/i, async message => {
    	return message.send("ПОНГ")
    });

    А в конце для работы:
    vk.updates.start().catch(console.error)
    console.log('VK Polling starting...')
    console.log('Polling started')
    console.log("Ready! If u see this message all is ok.")
    Ответ написан
    Комментировать