Перейти к содержимому

AlexCatze

Пользователи
  • Публикации

    67
  • Зарегистрирован

  • Посещение

  • Победитель дней

    7

Сообщения, опубликованные пользователем AlexCatze


  1. Приветствую. Давно конечно меня тут не было, получил пинг на почту, поэтому заскочил.

    8 часов назад, Dimsk сказал:

    что с автором темы?

    Автор темы(я) к счастью, или к сожалению, ещё жив. Живёт в Киеве, и благодаря "освободителям братских народов" у него уже как второй год чуть ли не каждый день летает над головой взрывоопасный металлолом. Чтоб мне совсем жизнь мёдом не казалась - поступил в два университета. Ну и естественно, кушать хочется, по этому имеется работа + подработки. Была ещё девушка, но примерно год назад расстались не самым лучшим образом. С тех пор вообще сил/желания что либо делать нет. Собственно сейчас задача номер один - не шизанутся окончательно, задача номер два - не сдохнуть.

     

    13 минуты назад, eu_tomat сказал:

    Тем более, автор дал на это своё согласие

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


  2. К сожалению я всё лето готовился к экзаменам, и сейчас продолжаю. В этом году поменяли правила, и теперь мне сдавать на 1 экзамен больше. Так что майнкрафт пока не в приоритете. Но это не значит что я отказался от этой идеи, и мне это больше не интересно. Если кто то другой хочет этим заняться - я не против. Сам уже боюсь загадывать когда смогу, загадал уже один раз на лето...

    • Нравится 1

  3. Примерно так и делали раньше спуски в шахту. Дырка с ~60 высоты, до бедрока. На высоте в 3 блока, от пола, в дырке блок воды. Игрок прыгает, с огромной скоростью летит вниз, но цепляется за блок воды. Пролетает его почти моментально и с огромной скоростью ударяется об пол. Но не получает урон, так как при контакте с водой майнкрафт "обнулил" падение, и игрок, по его логике, упал с 3х блоков.

    • Грусть 1

  4. В 31.12.2020 в 03:09, eu_tomat сказал:

    А на твёрдых блоках повреждение свинки зависит от скорости приземления?

    Не должно. Это как если в креативе взлететь с высоты 10 по y на 100, потом опуститься на 15 и в полёте перейти в выживание. Урон получишь как если бы с 100 спрыгнул. По крайней мере так было раньше, и у меня с этого дико горело. В теории, если точка посадки будет выше точки взлёта, и дрон не будет подниматься на высоту больше, чем точка посадки +4 блока, свинка не должна получить урон.

    • В шоке 1
    • Грусть 1

  5. Актив, собственно как и обновления будут когда у меня будет время и силы. Это подразумевает что я не час в день, после 8 часов дистанционки, с кровью из глаз пытаюсь что-то накодить, а нормально сажусь, и спокойно могу целый день посвятить сетке. Скорее всего это будет ближе к лету, и то, если учебный год не продлят, лицей как никак. Если хочется актива вот прям здесь, сейчас, и много - если хотите, можете помочь с разработкой. А так, по крайней мере крупных апдейтов, скорее всего до лета не будет. Учёба, учёба и ещё раз учёба. А, ну и Genshin Impact ещё, конечно.

    • Спасибо 1

  6. 1 час назад, SenTony сказал:

    Сэр Разраб Браузера, AlexCatze ! Просим Вас, рассказать как идёт разработка(Желательно со скринами:D) И ГДЕ НАШИ КАРТИНКИ ВСТРАЕМЫЕ В САЙТЫ???

    Разработка идёт плохо. Каникулы закончились, а это значит что с понедельника по пятницу с 8:30 до 16:00 у меня пары. А так как учусь я дистанционно, смерть учащегося не является уважительной причиной для неявки. Плюс домашнее. Касательно сети, сейчас пытаюсь пофиксить баг из за которого (очень редко, но это всё же происходить) дублируются пакеты. Параллельно думаю, как можно реализовать шифрование.

    • Спасибо 1

  7. В 21.03.2021 в 11:59, SenTony сказал:

    Как там дела с Браузером? На последней версии не совсем понял как создавать сайты. И жаль нету встраивания картинок!

    Плохо. Сейчас не до майнкрафта. Когда есть время, потихоньку довожу до ума. Сайты создавать так же, как и раньше.

    • Спасибо 1

  8. В 17.03.2021 в 15:48, hohserg сказал:

    @AlexCatze а можешь сделать eeprom-версию либы?

    Сделаю обязательно, после того как сделаю разбиение больших пакетов на части. Сейчас на это особо нет времени. Учёба, плюс мне тут в руки попал HP HX4700, так что меня на время унесло.

    • Спасибо 3

  9. 3 часа назад, SenTony сказал:

    ЛЮДИ! Я Залил инсталлятор версии браузера 0.2 На Пастебин! https://pastebin.com/eN8xrumj или pastebin run eN8xrumj !!! Кто хотел поиграть скачивайте! (Инсталлер не мой, а создателя самого браузера, взял из другой темы!  )

     

    Так то я выкатил уже версию 0.3, можешь поменять в инсталляторе. Хоть мне и пришло письмо, что бан сняли, на деле ничего не поменялось. Сейчас залью инсталлятор на гитхаб, и кину ссылку.

    UPD: Залил на гитхаб, вот ссылка https://raw.githubusercontent.com/AlexCatze/RacoonNet/master/installer.lua . В шапке тоже поменял.

    • Одобряю 1
    • Спасибо 1

  10. Только что, nikitaaaaa сказал:

    я про вставку их в htmlку

     

    P.S: напишите браузер под mineos

    Я же сказал, пока не приоритетная цель. Есть задачи поважнее, наприпер обход ограничения на пакет в 8кБ, межсерверный мост, шифрование пакетов. И только потом собственный движок для браузера, и как следствие формы, картинки и шрифты. 

    • Спасибо 1

  11. 3 минуты назад, nikitaaaaa сказал:

    И да, что за "WAN" и как использовать?

    Это если ты строишь многоуровневую сеть, WAN это простым языком, связь с вышестоящим роутером.

     

    6 минут назад, nikitaaaaa сказал:

    А  картинки?

    Я не фотограф(

    • Спасибо 1

  12. Некоторое время инсталятор работать не будет. Какой-то умник кинул на pastebin на меня жалобу, и без разбирательств, я получил бан. Сейчас буду подавать апелляцию. А так, на гитхабе вышла версия 0.3.

    Небольшое обновление, посвящённое, в основном, фиксам багов и небольшим изменениям в браузере.
    Изменения:
    -- Из репозитория удалено всё, не относящееся непосредственно к проекту. Зависимости ставятся инсталятором.
    -- Исправления багов
    -- Web-сервер можно закрыть нажатием кнопки "Q"
    -- Изменения в интерфейсе браузера.
    -- Браузер теперь поддерживает загрузку файлов. 
    -- В браузер добавлена частичная поддержа атрибута "target" для тега "a". Установка его в значение download указывает браузеру, что файл нужно загрузить.
    -- В браузер добавлена возможность установить домашнюю страницу.
    -- Изменеия согласно рекомендациям товарища @AtomicScience

     

    • Спасибо 1

  13. Вроде разгрёб завал на учёбе, потихоньку возвращаюсь к OC. Вот очередная реализация, правда уже не очень простая. За то по скорости не уступает варианту с предварительно заданным списком файлов.

    Сам инсталятор:

    local internet = require("internet")
    local fs = require("filesystem")
    local shell = require("shell")
    local ser = require("serialization")
    
    local host = "alexcatze.pythonanywhere.com"
    local owner = "AlexCatze"
    local repo = "RacoonNet"
    local ref = "v0.2"
    local path = "/"
    local deploy_to = "/"
    
    function request(url)
      local data = ""
      local result, response = pcall(internet.request, url)
      if result then
        local result = pcall(function()
          for chunk in response do
            data = data .. chunk
          end
        end)
      end
      return data  
    end
    
    files = ser.unserialize(request("http://"..host.."/?owner="..owner.."&repo="..repo.."&path="..path.."&ref="..ref))
    
    for _,v in pairs(files) do
      local pth = deploy_to..v
      if not fs.exists(pth:match(".*/")) then fs.makeDirectory(pth:match(".*/")) end
      shell.execute("wget -f ".."https://raw.githubusercontent.com/"..owner.."/"..repo.."/"..ref.."/"..v.." "..pth)
    end

    Как видно, он стучится мне на pythonanywhere, откуда и берёт список файлов.

    Вот код с pythonanywhere:

    from flask import Flask
    from flask import request
    import requests
    import json
    
    def request_url(url, result):
        r = requests.get(url)
        j = json.loads(r.text)
        for x in j:
            if x["type"] == "file":
                result = result + "\"" + x["path"] + "\","
            else:
                result = request_url(x["url"],result)
        return result
    
    app = Flask(__name__)
    
    def main():
        uname = "AlexCatze"
        token = "тут мой токен, вам я его не скажу!!!"
        if uname != request.args["owner"]:#Проверка, что бы другие не использовали мой лимит
            return "{}"
        result = request_url("https://"+uname+":"+token+"@api.github.com/repos/"+request.args["owner"]+"/"+request.args["repo"]+"/contents"+request.args["path"]+"?ref="+request.args["ref"],"{")
        result = result + "}"
        return result
    
    app.add_url_rule("/", "main", main,methods=['GET'])

    Тут мы получаем запрос, из него извлекаем нужные данные. Потом используя api ключ(тогда лимит запросов 5000 в час), рекурсивно получаем список файлов, и отправляем его на клиент.

    Вечером подробно распишу, как это настроить.

    • Нравится 5
    • Спасибо 1
    • В шоке 2

  14. Вот два инсталятора:

    Первый парсит странички и получает список файлов:

    local owner = "AlexCatze"
    local repo = "RacoonNet"
    local branch = "v0.2"
    
    local internet = require("internet")
    local fs = require("filesystem")
    local shell = require("shell")
    
    function request(url)
      local html = ""
      local result, response = pcall(internet.request, url)
      if result then
        local result = pcall(function()
          for chunk in response do
            html = html .. chunk
          end
        end)
      end
      return html  
    end
    
    function parse( html,sHead, sTail, fnc)
      local pTail, pHead = 1
      while true do
        pHead = html:find( sHead, pTail, true )
        if not pHead then break end
        pTail = html:find( sTail, pHead+#sHead, true )
        if not pTail then break end
        fnc( html:sub(pHead+#sHead,pTail-1) )
        pTail = pTail+#sTail
      end
    end
    
    function get_files(url)
      local result = request(url)
      if result then
        parse(result, 'data-pjax="#repo-content-pjax-container" href="', '">', function(s)
    	  result = request("https://github.com"..s)
    	  os.sleep(0)
    	  if result then
    	    os.sleep(0)
    	    local raw
    	    parse(result, '/raw/', '" id="raw-url"', function(s) raw = s end)
    		if raw ~= "" and raw ~= nil then
    		  local path = "/"..raw:match("[^/]/(.*)")
    		  if not fs.exists(path:match(".*/")) then fs.makeDirectory(path:match(".*/")) end
              shell.execute("wget -f ".."https://raw.githubusercontent.com/"..owner.."/"..repo.."/"..raw.." "..path)
    		  os.sleep(0)
    		else
    		  os.sleep(0)
    		  get_files("https://github.com"..s)
    		end
    	  end
    	end)
      end
    end
    get_files("https://github.com/"..owner.."/"..repo.."/tree/"..branch)

    У второго же список файлов заранее задан(используя мою утилитку):

    local shell = require("shell")
    local fs = require("filesystem")
    local prefix = "https://raw.githubusercontent.com/AlexCatze/RacoonNet/v0.2"
    local files = {"/bin/chat.lua","/bin/chat_server.lua","/bin/loader.lua","/bin/mc.lua","/bin/ping.lua","/bin/rnconfig.lua","/bin/routconf.lua","/bin/router.lua","/bin/webserver.lua","/bin/wr.lua","/boot/05_config.lua","/etc/config/mc.cfg","/etc/config/sys.cfg","/etc/lang/en.mc.lang","/etc/lang/ru.mc.lang","/etc/lang/ru.router.lang","/etc/themes/monochrome.thm","/etc/themes/redstone.thm","/etc/themes/standart.thm","/lib/forms.lua","/lib/opennet.lua","/lib/racoon.lua","/lib/racoonnet.lua","/lib/rainbow.lua","/lib/rn_modem.lua","/lib/rn_stem.lua","/lib/rn_tunnel.lua","/lib/stem.lua","/www/index.html","/www/second.html",}
    
    
    for _,v in pairs(files) do
      if not fs.exists(v:match(".*/")) then fs.makeDirectory(v:match(".*/")) end
      shell.execute("wget -f "..prefix..v.." "..v)
    end

    Оба настроены на скачивание одинаковых файлов. Но первый делает это за семь минут, пятьдесят три секунды, а второй за ноль минут, двенадцать секунд. Результат на лицо. Вывод: первый вариант мало применим. Можно либо использовать второй вариант, либо выносить получение списка файлов за пределы майнкрафта.

    • В шоке 2

  15. 2 часа назад, eu_tomat сказал:

    Фраза id="raw-url" встречается на странице лишь один раз или не встречается вовсе.

    Как конечную точку я её и использую, а вот с начальной нужно возиться. В теории, можно получение списка файлов , возложить на плечи какого нибудь heroku и pythonanywhere.

    • В шоке 2

  16. Сейчас попробовал. TLWY нету, но работает это краааайне медленно. Сейчас воюю с парсингом raw ссылки, но что-то мне кажется, что это бессмысленно. Первый вариант, с предварительно заданным списком файлов хоть и требует потратить  минуту на задание этого самого списка, но в перспективе работает на пару порядков быстрее.

    • В шоке 2

  17. 10 часов назад, eu_tomat сказал:

    @AlexCatze Предлагаю вместо этой конструкции:

    
    html:gsub( 'data%-pjax="#repo%-content%-pjax%-container" href="(.-)">', function(s)os.sleep(0)print(s)end )

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

    
    for s in html:gmatch( 'data%-pjax="#repo%-content%-pjax%-container" href="(.-)">')do os.sleep(0)print(s)end

    Работает раза в два быстрее.

    Web-версия оцелота успешно отработала этот код.

    Попробовал, веб в  версии отрабатывает, а в локальной всё тот же TLWY.

    • В шоке 2
×
×
  • Создать...