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

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

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


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

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

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

  • Улучшена проверка файлов:
    • Заменена стандартная сверка файлов на проверку с использованием контрольной суммы.
  • Обновление генератора списка файлов для патча:
    • Теперь в списке для каждого файла указывается его контрольная сумма (хеш).
  • Снижено количество ложных срабатываний на 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. Вы должны принять их для продолжения использования. Узнать больше…