Иконка ресурса

Апдейтер Lineage II на Python

Конечно меняется. Если язык эстонский, то скорость загрузки ниже процентов на 40.
 
главное чтоб работал
 

тут скорее вопрос, поддерживает ли многопоточную скачку, несколько источников с выбором более быстрого или параллельной скачки, и заморозку/восстановление скачки при обрыве соединения.


а если русский, то клиент автоматический грузится с локализацией на фене?
 
Вы имеете в виду возможность ограничить скорость загрузки через настройки или добиться максимальной скорости, заменив стандартную загрузку на многопоточную, то есть загружать несколько файлов одновременно?

Оба варианта реализуемы, но не в этой публичной версии. Возможно, я добавлю такие функции позже, хотя это не гарантировано, так как версия всё-таки бесплатная.
 
Я имел в виду скорость скачки отличается в зависимости на каком языке написан апдейтер? Если не меняется то роли не играет на каких языках написан он , а шаблон натянуть не проблема для красоты
 
Для лаунчера, которого функция загрузки файла из интернета это много . Мягко говоря, лаунчер на должен весить больше чем патч в два-три раза .
Если бы мой лаунчер весит 20 мегов в теории, я бы его и не начинал делать, и то у меня (по моим меркам) 12 мб считают много, но у меня он целый веб сервер развертывает под капотом
 
Для лаунчера, которого функция загрузки файла из интернета это много
Это было актуально для года так 2000, но не 2025, когда интернет от 100Мб и винты SSD/Nvme.
Разница будет, 1 секунда и 3-5 секунд на скачивание.
Даже если бы он весил и 100 метров.
Естественно разговор только о ВЕСЕ лаунчера, а не функционале в целом.
 
Учитывая, с какой скоростью РКН и тому подобные банят урлы с загрузкой клиента, то сейчас в цене тот лаунчер, который позволит без ребилда с помощью удаленной команды менять чек урлы на апдейтерах клиентов.
 
Можно еще дальше пойти
или
 
Обновление

Изменения в версии:​

  • Улучшена проверка файлов:
    • Заменена стандартная сверка файлов на проверку с использованием контрольной суммы.
  • Обновление генератора списка файлов для патча:
    • Теперь в списке для каждого файла указывается его контрольная сумма (хеш).
  • Снижено количество ложных срабатываний на VirusTotal:
    • Уменьшено с 12 до 5.


СКАЧАТЬ

VirusTotal

 
Скорость скачивания в апдейтере больше зависит от скорости интернет-соединения, загрузки сервера, и качества реализации сетевого кода, чем от языка программирования. Язык влияет минимально, если используются оптимальные библиотеки и настройки. Например, правильное использование многопоточности и буферизации может ускорить процесс независимо от языка. Так что главное — это грамотная реализация и хорошая связь.
 
Сравнивать навыки человека, который только начинает, с тем, кто уже давно в этом деле, как минимум некорректно. Плюс, как я уже говорил, сильно заморачиваться над оптимизацией веса для бесплатного релиза особого смысла нет.
 
Какой алгоритм контрольной суммы был использован?
SHA256

Пример:
import hashlib

def compute_sha256(file_path):
"Вычисляет контрольную сумму SHA256 для указанного файла."
sha256_hash = hashlib.sha256()
with open(file_path, "rb") as f:
for byte_block in iter(lambda: f.read(4096), b""):
sha256_hash.update(byte_block)
return sha256_hash.hexdigest()

Эта функция compute_sha256 открывает файл в побайтовом режиме, считывает его блоками по 4096 байт и обновляет объект sha256_hash, пока весь файл не будет прочитан. В конце возвращается хэш в виде шестнадцатеричной строки.
 

ну это профессиональное чистоплюйство. когда делаешь топ-проект и ты мастер - грех не сделать. для простого люда и такой лаунчер сойдет. честно, пока он до 100 мегов - ваще пох, это уже мусорные размеры. у меня видосы с рега каждые 4 минуты и то по 300 мегов весят. а их тысячи.
вот дальше вопрос более интересный поднят -



вот это было бы актуально. 2 команды. одна на смену айпишников для скачивания, причем желательно с каким-то запасным сервером авторизации, если основной командный заблочат, а вторая на запуск скачки новой версии апдейтера, для обновлений и прочих сюрпризов, если вылезут со временем/ркном и тд
 
Не асинхронный — значит, работает по порядку, шаг за шагом. Каждая операция завершает выполнение, прежде чем начнётся следующая. В отличие от асинхронного, где можно приостановить задачу и заняться чем-то ещё, пока, например, ждёшь ответа от сервера.
 
Данный сайт использует cookie. Вы должны принять их для продолжения использования. Узнать больше…