ciricc / easyvk

This app helps you create an apps with vk api easy!
MIT License
101 stars 10 forks source link

Фикс поиска в 2.2.17 #6

Closed PurpleHorrorRus closed 5 years ago

PurpleHorrorRus commented 5 years ago

Как я уже писал, в 2.2.17 сломался поиск, это фиксится, если в http.js на 218 строке вернуть оператор &&.

if (isMobile && method === 'post') {
    headers['x-requested-with'] = 'XMLHttpRequest'
}

И ещё пара фиксов При поиске иногда может возникать ошибка (2.2.16), не связанная с алгоритмом поиска ВК (в моём случае, я вводил в поиск "Dead Silence"). Фикс в AudioAPI.js функции r(e)

function r (e) {
      if (!o() && ~e.indexOf('audio_api_unavailable')) {
        let t;
        let alter;
        if(e.split('?extra=')[1] != undefined) {
          t = e.split('?extra=')[1].split('#');
          alter = t[1];
        } 
        else {
          t = e.split("?extra")[0]
          alter = t[0];
        }
        var n = alter === '' ? '' : a(alter);
        t = a(t[0])
        if (typeof n !== 'string' || !t) return e
        n = n ? n.split(String.fromCharCode(9)) : []
        for (var r, s, l = n.length; l--;) {
          s = n[l].split(String.fromCharCode(11))
          r = s.splice(0, 1, t)[0]
          if (!i[r]) return e
          t = i[r].apply(null, s);
        }
        if (t && t.substr(0, 4) === 'http') return t
      }
      return e
    }

Следующий фикс связан с кодировкой тела, которые возвращают запросы в search и get. Дело в том, что они приходят в разных кодировках. Фикс: Убрать в http.js в промисе request

res.body = encoding.convert(res.body, 'utf-8', 'windows-1251').toString()

Добавить в AudioAPI.js

const encoding = require("encoding");

В get() и getPlaylists()

res.body = encoding.convert(res.body, 'utf-8', 'windows-1251').toString()

В search()

res.body = encoding.convert(res.body, 'cp-1251', 'windows-1251').toString()

И вроде как ничего не сломалось

ciricc commented 5 years ago

Спасибо большое за проделанную работу. Все фиксы применены. Пулл отменяю, с ним какая-то неразбериха в качестве кода