На самом деле, есть и ещё одна проблема, но возможно стоит создать под неё отдельный вопрос. Полученные при компиляции .exe файлы не запускаются через проводник. В смысле, окно командной строки мелькает на долю секунды, и тут же закрывается.
Те методы, которые я использовал в универе, чтобы оставить окно открытым, сейчас при компиляции у меня почему-то не работают. Впрочем, когда я запускаю приложение при открытой VS Code в режиме без отладки, этой проблемы нет: окно остаётся на экране, и есть надпись "Нажмите любую клавишу . . .", видимо потому, что там неявно всё это обёрнуто в .bat скрипт с вызовом pause.
Пожалуйста, не предлагайте поставить Visual Studio и снести VS Code: у меня сейчас нет места на системном диске, нет места на остальных логических дисках, чтобы их уменьшить, и нет денег на новый физический диск. А Visual Studio требует 8-9 Гб минимум даже в комплектации только под C/C++, я смотрел уже через мастер установки. Кроме того, там нет возможности поставить всё не на диск C:\, на диске C:\ понадобится 3-4 Гб в любом случае.
1. Если я добавляю к проблемной строке комментарий, ошибка не уходит - видимо, её причина выше по коду
2. Если полностью удалить ту строчку, ошибка также не уходит
Можно взять для примера строку 4. Что я вижу там: есть две внешние двойные кавычки, внутри ряд одиночных по парам, и ещё две экранированные двойные. Тем не менее, если даже оставить только верхушку скрипта, интерпретатор ругается на эту строку.
Кстати, основную задачу я успешно решил. Есть ещё маленький нюанс: если после символа @ домен выше 2-ого уровня (как например мой провайдер даёт всем адреса формата user@mail.company.net), то перед проверкой MX записей нужно оставить только два уровня, то есть проверять company.net
Daemon23RUS, кстати, я удалил куки для обоих доменов и обновил вкладку с исходником, чтобы убедиться, что пустое содержимое приходит не из-за кук. Ничего не поменялось.
UPD: поменялось, вы были правы. Я открывал целевой домен, а не исходный. Там действительно есть скрипт. И он ставит куку, в которой содержится некий IP адрес. Вот только у меня есть вопрос, почему это делают через куку, а не отправку HTTP кода или через редирект внутри тега script (например, location.reload)?
Daemon23RUS, да, я не подумал, что JS может удалить весь DOM. Да, вы правы совершенно, такое возможно. Но есть нюанс: когда я получаю содержимое через Insomnia, никакого JS там нет от слова совсем. И в Хроме его тоже нет (чтобы вы не сказали про проверку User-Agent): достаточно нажать Ctrl+U, придёт то же самое содержимое, что приходит в Insomnia - при нажатии этой комбинации браузер перекачивает контент, а не берёт кэшированную версию).
Так что я всё ещё не понял механизма. А главное - если JS там правда бы был, зачем кому-то его прятать?
CityCat4, с одной стороны вы как бы правы, с другой, вы же понимаете, что это чисто политическое решение. Да и зачем жаловаться, если у вас в итоге ничего не перестало работать?
Правда, это не объясняет, почему сбой произошёл на ZIP архиве малого размера (который даже после распаковки 2 мегабайта никак не превысит)... Я потестирую ещё, отпишусь, что будет.
acwartz, совершенно верно. Но я же не единственный автор расширения, загружающего аудиотреки. Вот мне и интересно, как выкрутились остальные разработчики
acwartz, я же не из вредности или принципа это всё затеял. Я действительно не понимаю, как его можно/нужно переписать.
Этот код изначально не предназначен для того, чтобы его понимали. Учитывая его назначение
Что до безопасности - не знаю, совершенно же очевидно по тому, в каком контексте он вызывается, что он просто даёт URL для последующей отправки в Downloads API, там видно, что сервер вконтактовский, и видно, что расширение файла всегда mp3. Но они продолжают убеждать меня/самих себя, что это замаскированный вирус. Ну смешно же
Те методы, которые я использовал в универе, чтобы оставить окно открытым, сейчас при компиляции у меня почему-то не работают. Впрочем, когда я запускаю приложение при открытой VS Code в режиме без отладки, этой проблемы нет: окно остаётся на экране, и есть надпись "Нажмите любую клавишу . . .", видимо потому, что там неявно всё это обёрнуто в .bat скрипт с вызовом pause.