Arseniy10 50 Опубликовано: 17 декабря, 2016 При загрузке файла с GitHub через Internet Lib (из самого мода) загружает только последние 55 строк. Если обращаться к карте, как к компоненту, то загружает определенное кол-во символов. Как избавиться от этого ограничения? (если оно есть) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Fingercomp 4 409 Опубликовано: 17 декабря, 2016 (изменено) Вот так нужно использовать, кстати, либу из OpenOS. local inet = require("internet") local function request(url) local result = "" for chunk in inet.request(url) do result = result .. chunk end return result end @Arseniy10, ты в случае с либой код не указал. Поэтому нет смысла умничать стараться. И вообще не хами тут. Окей? Мне не платят за то, что я тебе отвечаю, поэтому уважение проявляй хоть немного. Изменено 17 декабря, 2016 пользователем Fingercomp 2 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Fingercomp 4 409 Опубликовано: 17 декабря, 2016 Может, не знаю, дашь вызываемый код? Ссылку на страницу? Тут же нет телепатов... 2 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Arseniy10 Автор вопроса 50 Опубликовано: 17 декабря, 2016 Может, не знаю, дашь вызываемый код? Ссылку на страницу? Тут же нет телепатов... Ну раз ты так просишь и не знаешь, есть ли ограничения, то: function request(url) for k,v in pairs(net.request(url)) do --вызвано, как компонент if k == "read" then value = v() end end return value end function write(path,value,mode) mode = mode or "w" local file = io.open(path,"w") file:write(value) file:flush() file:close() end if t["name"] == args[2] then write(t["path"],request(rep_URL..t["path"]),"a") else --сама ссылка: --https://raw.githubusercontent.com/Good-Pudge/OpenComputers/master/lib/bit_palette.lua Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
NEO 542 Опубликовано: 17 декабря, 2016 (изменено) Ну раз ты так просишь и не знаешь, есть ли ограничения, то: .... Используй библиотеку internet. Изменено 17 декабря, 2016 пользователем NEO Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Fingercomp 4 409 Опубликовано: 17 декабря, 2016 Давайте перепишем это безумие. local function request(url) return net.request(url).read() end local function write(path, value) local file = io.open(path, "w") file:write(value) file:flush() file:close() end if t.name == args[2] then write(t.path, request(rep_URL .. t.path)) end Отбрасывая в сторону вопрос о том, почему бы просто не использовать библиотеку OpenOS, теперь отвечаю. read() за раз возвращает не весь ответ. Только его часть. Поэтому-то у тебя и не качает полностью. Поэтому тебе нужно получать кусочки всего буфера сокета, пока не вернётся nil. То есть, так: local function request(url) local result = "" while true do local chunk = net.request(url).read() if not chunk then break end result = result .. chunk end return result end local function write(path, value) local file = io.open(path, "w") file:write(value) file:flush() file:close() end if t.name == args[2] then write(t.path, request(rep_URL .. t.path)) end Но, на самом деле, ты теперь рискуешь уйти в бесконечный цикл при обрыве соединения. Поэтому ты должен использовать библиотеку OpenOS. 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Arseniy10 Автор вопроса 50 Опубликовано: 17 декабря, 2016 Используй библиотеку internet Ты читал весь вопрос? Написал же, тогда загружает последние 55 строк Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
NEO 542 Опубликовано: 17 декабря, 2016 Ну раз ты так просишь и не знаешь, есть ли ограничения, то: ... Тем более read возращает чанк, а не целый ответ, нужно вызывать read пока nil не выпадет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
При загрузке файла с GitHub через Internet Lib (из самого мода) загружает только последние 55 строк.
Если обращаться к карте, как к компоненту, то загружает определенное кол-во символов.
Как избавиться от этого ограничения? (если оно есть)
Поделиться сообщением
Ссылка на сообщение
Поделиться на других сайтах