Belzebub 0 Опубликовано: 7 декабря, 2021 Привет, пишу либу для удобного скачивания файлов с raw-url/pastebin-id/github-repo https://pastebin.com/PE5Jq501 респонс https://api.github.com/repos/USER/REPO/git/trees/BRANCH?recursive=1 содержит поля sha, хотелось бы получать хэш скачанных файлов что-бы сравнивать их с хэшем с ремоут репо да-бы добавить авто-обновление в загрузчик. Скрытый текст попытался сравнить хэш с гитхаба и хэш возвращаемый require("component").data.sha256, ничего адекватного не получилось Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
eu_tomat 2 154 Опубликовано: 7 декабря, 2021 Последний скриншот может свидетельствовать о сравнении строки с её шестнадцатеричным представлением. Они и не могут совпадать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Belzebub Автор вопроса 0 Опубликовано: 7 декабря, 2021 Как мне превратить шестнадцатеричное представление в строку для сравнения? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
eu_tomat 2 154 Опубликовано: 8 декабря, 2021 12 часа назад, Belzebub сказал: Как мне превратить шестнадцатеричное представление в строку для сравнения? Предлагаю поступить наоборот: sha256bin = component.data.sha256(text) sha256hex = "" for i=1,#sha256 do sha256hex=sha256hex..("%x"):format(sha256bin:byte(i)) end 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Belzebub Автор вопроса 0 Опубликовано: 12 декабря, 2021 А какая версия sha используется на гитхабе? Как бы не получилось так что я сравниваю sha1 с sha256 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
eu_tomat 2 154 Опубликовано: 12 декабря, 2021 6 часов назад, Belzebub сказал: А какая версия sha используется на гитхабе? Как бы не получилось так что я сравниваю sha1 с sha256 Это можно узнать по количеству символов. Для записи SHA-1 используется 40 шестнадцатеричных цифр, а для SHA-256 — 64 цифры. 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Belzebub Автор вопроса 0 Опубликовано: 12 декабря, 2021 (изменено) Значитс это sha1, странно что git юзает такую древность. К сожалению карта данных из OC не умеет в sha1, получается надо юзать внешнюю либу? Изменено 12 декабря, 2021 пользователем Belzebub typo Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
ProgramCrafter 544 Опубликовано: 25 декабря, 2021 В 12.12.2021 в 13:29, Belzebub сказал: странно что git юзает такую древность О смене хешей вроде в 2017 году задумались. Но не могу понять, сделали ли уже, чтобы можно было нормально работать с SHA-256. Может быть, сработает вот этот фокус с репозиторием (но это не точно): git convert-repo --to-hash=sha-256 --frobnicate-blobs --climb-subtrees \ --liability-waiver=none --use-shovels --carbon-offsets Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
ProgramCrafter 544 Опубликовано: 25 декабря, 2021 @Belzebub 1. Опечатка небольшая в 92 и 102 строках - reqire вместо require; 2. Прикольный кэш os.time() точно возвращает то, что надо? Если нет, можно использовать такой же lastModified, но для какого-нибудь временного файла. 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Belzebub Автор вопроса 0 Опубликовано: 26 декабря, 2021 10 часов назад, ProgramCrafter сказал: @Belzebub 1. Опечатка небольшая в 92 и 102 строках - reqire вместо require; 2. Прикольный кэш os.time() точно возвращает то, что надо? Если нет, можно использовать такой же lastModified, но для какого-нибудь временного файла. оу, с os.time тупанул) грёбанный разработчик опенкомпуктерс, зачем он убрал оригинальный os.time?((( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Belzebub Автор вопроса 0 Опубликовано: 26 декабря, 2021 11 час назад, ProgramCrafter сказал: О смене хешей вроде в 2017 году задумались. Но не могу понять, сделали ли уже, чтобы можно было нормально работать с SHA-256. Может быть, сработает вот этот фокус с репозиторием (но это не точно): git convert-repo --to-hash=sha-256 --frobnicate-blobs --climb-subtrees \ --liability-waiver=none --use-shovels --carbon-offsets git: 'convert-repo' is not a git command. See 'git --help'. нема такого :( 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
eu_tomat 2 154 Опубликовано: 26 декабря, 2021 9 часов назад, Belzebub сказал: грёбанный разработчик опенкомпуктерс, зачем он убрал оригинальный os.time?((( Что значит убрал? Его и не было никогда в OpenComputers. И в ComputerCraft тоже никогда не было. И в документации об этом везде сказано. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Belzebub Автор вопроса 0 Опубликовано: 26 декабря, 2021 10 часов назад, eu_tomat сказал: Что значит убрал? Его и не было никогда в OpenComputers. И в ComputerCraft тоже никогда не было. И в документации об этом везде сказано. в lua то был. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
eu_tomat 2 154 Опубликовано: 26 декабря, 2021 21 минуту назад, Belzebub сказал: в lua то был. В обычном Lua os.time возвращает время на компьютере. В Lua на OpenComputers os.time точно также возвращает время на компьютере. Но не на реальном, а игровом компьютере, где в норме время идёт в 72 раза быстрее времени на сервере. В общем, логика в таком выборе присутствует. На автора грех жаловаться: любой желающий может сделать форк с нужными ему возможностями. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Привет, пишу либу для удобного скачивания файлов с raw-url/pastebin-id/github-repo
https://pastebin.com/PE5Jq501
респонс https://api.github.com/repos/USER/REPO/git/trees/BRANCH?recursive=1 содержит поля sha, хотелось бы получать хэш скачанных файлов что-бы сравнивать их с хэшем с ремоут репо да-бы добавить авто-обновление в загрузчик.
попытался сравнить хэш с гитхаба и хэш возвращаемый require("component").data.sha256, ничего адекватного не получилось
Поделиться сообщением
Ссылка на сообщение
Поделиться на других сайтах