gais_st

Создание JSON для лаунчера Arizona

В теме 7 сообщений

Создание JSON для лаунчера Arizona

Скачать файл

Видел что где то продают этот скрипт, поэтому даю бесплатно, т.к за 60 строк кода я думаю не целесообразно брать деньги :)

Скрипт для создания JSON файла для копий лаунчера ARIZONA GAMES

 

Вот что создаёт этот скрипт:
xSdP7qn.png


Если увижу по реакциям что это действительно интересно, сделаю ещё более подробные темы (только хз в каком из разделов)
на тематику переделывания лаунчера ARIZONA GAMES <3


В конечном итоге можно будет загружать свои сборку для своих проектов с помощью этого лаунчера, ну и подключатся соответственно тоже с него к серверу)
ypsg5St.png


Как использовать:

 

(ВАЖНО) Для работы скрипта необходимо установить Python
Скачать: python-3.13.1-amd64.exe  (Прямая ссылка)

 

  1. Закинуть скрипт в папку с клиентом игры, и запустить CMD (Командная строка / Терминал Win11)
  2. Перейти в папку где у Вас находится скрипт  cd E:\CRMP  (Вы указываете свой путь) 
  3. Запустить скрипт командой: python.exe .\arizona_json.py
  4. После всех выполненных выше действий в папке появится нужный нам файл
    game.json
     

Пример того что у меня получилось: https://pc.gtax.fun/release/game.json

Код для тех кто не хочет скачивать:
 

Спойлер
import os
import hashlib
import time
import json
from tqdm import tqdm
from concurrent.futures import ThreadPoolExecutor
 
def calculate_hash(file_path):
    hash_md5 = hashlib.md5()
    with open(file_path, "rb") as f:
        for chunk in iter(lambda: f.read(16384), b""):
            hash_md5.update(chunk)
    return hash_md5.hexdigest()
 
def analyze_directory(path, progress_bar=None, executor=None, start_time=None):
    if not os.path.exists(path):
        raise FileNotFoundError(f"Путь не найден: {path}")
 
    dir_data = []
    total_size = 0
    futures = []
 
    for item in os.scandir(path):
        item_path = os.path.join(path, item.name)
        if progress_bar:
            elapsed_time = time.time() - start_time
            progress_bar.set_description(f"Время: {elapsed_time:.2f} сек | Обрабатывается: {item_path}")
 
        if item.is_file():
            size = os.path.getsize(item_path)
            date_change = int(os.path.getmtime(item_path))
 
            future = executor.submit(calculate_hash, item_path)
            futures.append((future, item.name, size, date_change))
 
        elif item.is_dir():
            subdir = analyze_directory(item_path, progress_bar, executor, start_time)
            dir_data.append(subdir)
            total_size += subdir["size"]
 
    for future, name, size, date_change in futures:
        file_hash = future.result()
        dir_data.append({
            "type": "file",
            "name": name,
            "date_change": date_change,
            "size": size,
            "hash": file_hash
        })
        total_size += size
 
    return {
        "type": "dir",
        "name": os.path.basename(path),
        "size": total_size,
        "data": dir_data
    }
 
def generate_game_json(directory, output_file):
    total_items = sum([len(files) for _, _, files in os.walk(directory)])
    with tqdm(total=total_items, unit="файлов/папок") as progress_bar:
        # Начинаем отсчет времени
        start_time = time.time()
 
        with ThreadPoolExecutor() as executor:
            structure = {"data": [analyze_directory(directory, progress_bar, executor, start_time)]}
            with open(output_file, "w", encoding="utf-8") as f:
                json.dump(structure, f, indent=2)
            print(f"\nJSON-файл создан: {output_file}")
 
if __name__ == "__main__":
    input_directory = "./"
    output_json = "game.json"
    generate_game_json(input_directory, output_json)


 


 

Отредактировано пользователем gais_st
Причина: upd code // Ускорение обработки

Заметка от DEST , создано

Если нужно отредактировать, то редактируйте описание в самом файле (на странице файла кнопка "Обновить информацию"). Так описание обновится и в этой теме, и на странице файла.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А почему бы не написать как установить питон и не приложить код скрипта непосредственно в тему?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@Web потому что его великий-превеликий скрипт парсит открытую ссылку на cdn аризоны, которая и так отдает json:dance4:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@keyl А ты открывал сам скрипт вообще? Там нет вообще ничего, что могло бы парсить) И если ещё раз прочесть внимательно тему, то написано: загружать и обновлять свою сборку а не клиент Arizona
 

17 часов назад, keyl сказал:

великий-превеликий

Где так сказано? :)

Не понимаю людей, им дают, они хают :bravo:

Отредактировано пользователем gais_st

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
17 часов назад, Web сказал:

А почему бы не написать как установить питон и не приложить код скрипта непосредственно в тему?

Обновил тему

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И сколько занимает время генерации файла? Судя по коду. Можно еще лучше и быстрей. У меня нет сборки что бы протестировать.

Отредактировано пользователем Web

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@Web 4.60 GB обрабатывает за 1 минуту
 

24 минуты назад, Web сказал:

Можно еще лучше и быстрей

Да действительно, можно
Если юзать ThreadPoolExecutor  то можно распараллелить вычисление хешей, и одним пулом обработать :bravo:

Ускорил, получил уже 4.95 сек на 4.60 GB

Отредактировано пользователем gais_st

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!


Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.


Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Похожий контент

    • gais_st
      От gais_st
      Видел что где то продают этот скрипт, поэтому даю бесплатно, т.к за 60 строк кода я думаю не целесообразно брать деньги 

      Скрипт для создания JSON файла для копий лаунчера ARIZONA GAMES
       
      Вот что создаёт этот скрипт:



      Если увижу по реакциям что это действительно интересно, сделаю ещё более подробные темы (только хз в каком из разделов)
      на тематику переделывания лаунчера ARIZONA GAMES 

      В конечном итоге можно будет загружать свои сборку для своих проектов с помощью этого лаунчера, ну и подключатся соответственно тоже с него к серверу)



      Как использовать:
       
      (ВАЖНО) Для работы скрипта необходимо установить Python
      Скачать: python-3.13.1-amd64.exe  (Прямая ссылка)

       
      Закинуть скрипт в папку с клиентом игры, и запустить CMD (Командная строка / Терминал Win11) Перейти в папку где у Вас находится скрипт  cd E:\CRMP  (Вы указываете свой путь)  Запустить скрипт командой: python.exe .\arizona_json.py После всех выполненных выше действий в папке появится нужный нам файл
      game.json
        Пример того что у меня получилось: https://pc.gtax.fun/release/game.json

      Код для тех кто не хочет скачивать:
       

       
    • Ernesto_Red
      От Ernesto_Red

      Привет всем друзья! ЛЕГЕНДАРНЫЙ бонусный проект возвращается спустя долгое время на площадку "San Andreas MultiPlayer".
       
      Немного о Fresh RolePlay:
      - Бонусный проект который был открыт еще в далеком 2015 году, на версии SA:MP 0.3e, и имел большой успех и популярность у игроков, среди бонусных проектов, благодаря своей атмосфере, своему моду, который на то время был очень разнообразен по функционалу, в отличие от других. В 2019 году проект был закрыт и бывший владелец проекта увел упор на другие свои проекты, которые тоже долго не продержались и в последствии были закрыты.
       
      О нас:
      Мы являемся командой, которая желает вновь возродить тот самый "Фрэш", который радовал своих игроков атмосферой, игрой, весельем. Мы уже подготавливаем мод, сайт к запуску, и Вы совсем скоро сможете начать свою новую историю на нашем сервере!
       
      Присоединяйтесь к нам, и Вы сможете стать настоящим ФРЕШИКОМ! 
       
      Наша официальная группа VK: *Перейти по ссылке*
      Наша свободная группа VK: *Перейти по ссылке*
      Сайт: https://unknown (soon)

       
    • Sandello
      От Sandello
      Доброго времени суток!


      Из новостей имеется:

      ✯Игровой мод будет заменен на более новый.
      ✯Будет больше розыгрышей!
      ✯Мы ищем команду для проекта! Подробнее *тут (https://t.me/SandelloExe)*
      ✯Минимальное количество багов!
      ✯Новейшие системы!

      И многое другое...➤


      Говорю еще раз! Мы в поисках команды для проекта!

      Вы спросите, как мне встать на пост Администратора?

      Имеется 2 способа

      ★Telegram Создателя. *Нажми (https://t.me/SandelloExe)*
      ★Forum Проекта. *Нажми (https://forum-bitcoin-rp.vkweb.su/index.php)*

      ⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻
      ★Если ты нашел баг в игровом моде, напиши в Тех. Раздел!
      ★Он находится на нашем форуме. *Нажми (https://forum-bitcoin-rp.vkweb.su/index.php?forums/bitcoin-Технический-раздел.11/)*
      ⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻


      Наши Социальные сети ⇣⇣
      ⋆Наш дискорд (https://discord.gg/sxKJQB2k3R)
      ⋆Наш Телеграм (https://t.me/bitcoinprojectRP)
      ⋆Наш ВК (https://vk.com/arzbitcoin)


      ⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻
      На этом всё! Ожидайте открытие в ближайшее время!
      ⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻