Посмотрите видео ниже, чтобы узнать, как установить наш сайт в виде веб-приложения на главном экране.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
Список изменений по файлам:Вы не можете просматривать ссылку пожалуйста воспользуйтесь следующими ссылками Вход или Регистрация
> Версия 01.07.01 и выше сделаны с помощью ИИ.
Вы не можете просматривать ссылку пожалуйста воспользуйтесь следующими ссылками Вход или Регистрация
- обновлена ссылка на список файлов для NCSoft Japan;
Вы не можете просматривать ссылку пожалуйста воспользуйтесь следующими ссылками Вход или Регистрация
- ядро загрузчика переписано на поэтапный конвейер (загрузка -> сохранение -> распаковка): у каждого этапа свой менеджер и один общий координатор;
- добавлены аргументы командной строки для всех настроек - теперь .jar можно запускать вообще без "Main.ini";
- добавлен новый источник "AKUMU" (зеркало akumu.ru): список файлов берётся из ".torrent" нужной папки, с поддержкой проверки Anubis (proof-of-work);
- добавлен "-source_compare" - сверка патча с уже скачанной копией до начала загрузки;
- распаковщики (LZMA / ZIP) разнесены по отдельным классам;
Вы не можете просматривать ссылку пожалуйста воспользуйтесь следующими ссылками Вход или Регистрация
- добавлены режимы загрузки "-download_mode": ALL_MEMORY / HYBRID / ALL_TEMP. В HYBRID мелкие файлы остаются в памяти, а крупные уходят во временные файлы;
- добавлены "-temp_dir" и "-temp_threshold" для управления временными файлами;
- добавлены потоковая загрузка и потоковая распаковка - большой файл большиком;
- добавлена асинхронная проверка (хеш / размер) уже после сохранения файла;
- добавлена защита от зарезервированных имён устройств Windows (NUL, CON, COM1 ...) в списке файлов;
Вы не можете просматривать ссылку пожалуйста воспользуйтесь следующими ссылками Вход или Регистрация
- файлы больше 2 ГБ теперь всегда сохраняются через временный файл (массив байт не вмещает больше Integer.MAX_VALUE);
- если сервер игнорирует заголовок "Range" и отвечает '200' при загрузке по частям - соединение отменяется, а не выкачивается файл целиком заново;
Вы не можете просматривать ссылку пожалуйста воспользуйтесь следующими ссылками Вход или Регистрация
- добавлен "-last_version" - спрашивает у сервера обновлений NCSoft текущую версию патча и завершает работу. Ничего не качает и не требует файла настроек;
- добавлены хосты обновлений для Кореи и Тайваня;
- исправлено падение при разборе конфига, если ключ типа "File" отсутствует (ConfigFieldParser);
Вы не можете просматривать ссылку пожалуйста воспользуйтесь следующими ссылками Вход или Регистрация
- добавлен "README.md";
- добавлены примеры запуска: "set_java.bat" (выбор используемой Java) + "example_download_nc_japan.bat", "example_download_akumu.bat", "example_last_version.bat";
- убраны из-под контроля версий файлы IDE / утилит (qodana.yaml, *.iml, ".idea" кроме artifacts);
Вы не можете просматривать ссылку пожалуйста воспользуйтесь следующими ссылками Вход или Регистрация
- исправлена сборка артефакта - папка "work" теперь кладётся именно папкой, а не рассыпается содержимым в корень сборки;
RU:
Список изменений по файлам:Вы не можете просматривать ссылку пожалуйста воспользуйтесь следующими ссылками Вход или Регистрация
Вы не можете просматривать ссылку пожалуйста воспользуйтесь следующими ссылками Вход или Регистрация
- Исправлена ошибка парсинга списка файлов для лаунчера типа UpNovaLauncher;
Вы не можете просматривать ссылку пожалуйста воспользуйтесь следующими ссылками Вход или Регистрация
- В случае если запрос на HTTP не возвращает код '200' - логируем как ошибку;
Вы не можете просматривать ссылку пожалуйста воспользуйтесь следующими ссылками Вход или Регистрация
- добавлена обработка ошибок в проверку файлов, из-за чего она могла не корректно завершиться;
Список изменений по файлам:Вы не можете просматривать ссылку пожалуйста воспользуйтесь следующими ссылками Вход или Регистрация
Вы не можете просматривать ссылку пожалуйста воспользуйтесь следующими ссылками Вход или Регистрация
- Переработан парсинг Конфигурационных файлов;
- Переработаны парсеры из строки (String) в значение;
Вы не можете просматривать ссылку пожалуйста воспользуйтесь следующими ссылками Вход или Регистрация
- Удалена информация для отладки;
- если конфиг. файл не существует - игнорируем;
- добавлено время ожидания подключения для http запроса;
Вы не можете просматривать ссылку пожалуйста воспользуйтесь следующими ссылками Вход или Регистрация
[Что не попало в список изменений]:
- Вызов "onLoad" при завершении парсинга и присвоении значений;
- Добавлено 'pause' в конце .bat файла чтобы избежать его закрытия после выполнения;
- Удалено поле [ansi_supported];
[Версия 01.03.02]:
* Улучшение HTTP подключения;
[Версия 01.04.01]:
* Поддержка списка файлов с UpNovaLauncher;
* Переименование "Decode" в "Decompress";
* Добавлен "ArchiveType" enum для корректного понимания какой тип архива представлен в файле;
* Разделение классов разархивации;
[Версия 01.04.02]:
* Добавление новых алгоритмов хэширования;
* Поддержка "Параметров запуска";
* Исправление формирования списка файлов для UpNovaLauncher;
[Версия 01.05.01]:
* Переименование CheckSumManager в HashingManager;
* Разделение классов для формирование hash-сумы;
* Удалены неиспользуемые парметры;
* Добавлен параметр "UP_NOVA_LAUNCHER_PATCH_PATH" для указания навзвания ноды "PatchPath" из файла UpdateConfig.xml при использовании UpNovaLauncher;
* Добавлен параметр "THREAD_COUNT_FOR_FILE_CHECK_IN_CONDITION" для разделения колличества проверяемых файлов при восстановлении загрузки;
* Добавлен параметр "LOGGING_FILE_CHECK_IN_CONDITION" который будет показывать прогресс формирование списка исключенных из повтороной загруки файлов;
* Переписан класс "ConditionRestoreDownload" из работы "Проверяем все файлы и после проверяем список загрузки" на "Сравниваем файлы из списка загрузки с уже имеющимися";
* Исправление орко-графических ошибок;
* Добавлено "Тупое" логгирование;
* Добавлено использование "toLowerCase" в места где идет запись в словарь (map);
* Добавлена замена "нелегальных" символов;
[Версия 01.05.02]:
* Удалены неиспользуемые парметры;
* Некоторые парметры по-умолчанию были заменены со значения "true" на значение "false"
[Версия 01.05.03]:
* Исправлено деление на 0;
[Версия 01.05.04]:
* параметр запуска, который включает логгирование формирования списка файлов, которые не следует загружать;
[Версия 01.05.05]:
* Исправлено деление на 0;
* Исправление орко-графических ошибок;
* Если include-filter пустой - возвращаем "true" при проверке файлов для загрузки;
* Уменьшено колличество потоков (тредов) если доступное колличество для загрузки файлов меньше, чем колличество запрошеных потоков (тредов);
- Добавлен параметр "max_download_attempts" для перезапуска загрузки файла, если подключение не стабильно;
- Переписан класс "LinkHolder":
- Разделен на FileInfoHolder и LinkInfoHolder;
- FileInfoHolder содержит информацию о разделенных файлах (которые дадут исходный файл при обьединении);
- LinkInfoHolder содержит информацию о ссылках, http статусу и размеру загружаемых данных по http;
- LinkInfoHolder может быть null при условии, если FileInfoHolder содержит разделенные блоки;
Пример использования [max_download_attempts]:
- В AbstractQueueManager _threadStatus изменен с типа boolean на тип AtomicBoolean (спасибо BACEK);
- Дополнительные проверки в DecodeManager для входящего массива данных;
- Переделаны некоторые методы в классе NcTaiwanLinkGenerator и NcKoreanLinkGenerator для упрощения читабельности кода и лучшей производительности;
![]()
![]()
- Фильтр "игнорирования файлов" будет игнорировать указание "*" в "загружаемые файлы";
- exclude_filter > include_filter;
- Реализация многопоточности;
- Изменение некоторых Logger на System.out;
- Тип файлов "FILE_TYPE.UNK_04" тоже обозначен как возможно "разделенный";
- Добавлен параметр, который логирует загруженные файлы в консоли как у acmi;
* include filter поддерживает несколько значений; (добавлен метод "optional" в ICondition)
* в классе FileUtils переменная "recursive" была заменена на "depth" (глубина);
* для проверки одного символа, были заменены методы "equalsIgnoreCase("символ")" на "charAt[0] == 'символ'";
[include filter example:]
![]()