From 347b40ed717292c57e335e07ab70dc4ac82f20fc Mon Sep 17 00:00:00 2001 From: Face <69168154+face-hh@users.noreply.github.com> Date: Wed, 27 Aug 2025 20:23:05 +0300 Subject: [PATCH] add search engine - ringle --- .gitignore | 6 +- dns/frontend/dashboard.lua | 2 +- dns/frontend/domain.lua | 2 +- dns/frontend/index.html | 4 +- dns/frontend/register.lua | 4 +- .../010_add_search_crawl_status.sql | 28 + docs/docusaurus.config.ts | 2 +- docs/sidebars.ts | 1 + flumi/Scenes/Tags/img.tscn | 2 +- flumi/Scripts/AutoSizingFlexContainer.gd | 7 +- flumi/Scripts/B9/CSSParser.gd | 21 +- flumi/Scripts/B9/HTMLParser.gd | 81 +- flumi/Scripts/B9/Lua.gd | 53 +- flumi/Scripts/Constants.gd | 3 +- flumi/Scripts/GurtProtocol.gd | 396 +- flumi/Scripts/Network.gd | 39 +- flumi/Scripts/StyleManager.gd | 2 + flumi/Scripts/Tags/img.gd | 3 - flumi/Scripts/Tags/input.gd | 16 +- flumi/Scripts/Tags/p.gd | 72 +- flumi/Scripts/Utils/BackgroundUtils.gd | 60 +- flumi/Scripts/Utils/FlexUtils.gd | 2 + flumi/Scripts/Utils/Lua/Class.gd | 4 +- flumi/Scripts/Utils/Lua/DOM.gd | 48 + flumi/Scripts/Utils/Lua/Regex.gd | 9 + flumi/Scripts/Utils/Lua/ThreadedVM.gd | 2 + flumi/Scripts/Utils/Lua/URL.gd | 21 + flumi/Scripts/Utils/Lua/URL.gd.uid | 1 + flumi/Scripts/main.gd | 123 +- .../gurt-protocol/bin/windows/gurt_godot.dll | Bin 4702720 -> 4746752 bytes .../gurt-protocol/bin/windows/~gurt_godot.dll | Bin 0 -> 4746752 bytes protocol/cli/src/request_handler.rs | 8 +- protocol/gdextension/src/lib.rs | 37 +- search-engine/Cargo.lock | 4407 +++++++++++++++++ search-engine/Cargo.toml | 31 + search-engine/README.md | 5 + search-engine/config.template.toml | 51 + search-engine/frontend/search.html | 96 + search-engine/frontend/search.lua | 150 + search-engine/src/config.rs | 121 + search-engine/src/crawler.rs | 706 +++ search-engine/src/indexer.rs | 405 ++ search-engine/src/main.rs | 124 + search-engine/src/models.rs | 185 + search-engine/src/scheduler.rs | 152 + search-engine/src/server.rs | 195 + tests/clanker.txt | 20 + 47 files changed, 7214 insertions(+), 493 deletions(-) create mode 100644 dns/migrations/010_add_search_crawl_status.sql create mode 100644 flumi/Scripts/Utils/Lua/URL.gd create mode 100644 flumi/Scripts/Utils/Lua/URL.gd.uid create mode 100644 flumi/addons/gurt-protocol/bin/windows/~gurt_godot.dll create mode 100644 search-engine/Cargo.lock create mode 100644 search-engine/Cargo.toml create mode 100644 search-engine/README.md create mode 100644 search-engine/config.template.toml create mode 100644 search-engine/frontend/search.html create mode 100644 search-engine/frontend/search.lua create mode 100644 search-engine/src/config.rs create mode 100644 search-engine/src/crawler.rs create mode 100644 search-engine/src/indexer.rs create mode 100644 search-engine/src/main.rs create mode 100644 search-engine/src/models.rs create mode 100644 search-engine/src/scheduler.rs create mode 100644 search-engine/src/server.rs create mode 100644 tests/clanker.txt diff --git a/.gitignore b/.gitignore index bb782b7..31284c2 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,6 @@ -*target* +target/ *.pem gurty.toml -certs \ No newline at end of file +certs +search_indexes +config.toml \ No newline at end of file diff --git a/dns/frontend/dashboard.lua b/dns/frontend/dashboard.lua index 43093e3..c6feba5 100644 --- a/dns/frontend/dashboard.lua +++ b/dns/frontend/dashboard.lua @@ -74,7 +74,7 @@ end local function loadDomains() print('Loading domains...') - local response = fetch('gurt://localhost:8877/auth/domains?page=1&size=100', { + local response = fetch('gurt://localhost:8877/auth/domains?page=1&limit=100', { headers = { Authorization = 'Bearer ' .. authToken } diff --git a/dns/frontend/domain.lua b/dns/frontend/domain.lua index 986cc9a..ab73ced 100644 --- a/dns/frontend/domain.lua +++ b/dns/frontend/domain.lua @@ -325,7 +325,7 @@ gurt.select('#add-record-btn'):on('click', function() local recordType = gurt.select('#record-type').value local recordName = gurt.select('#record-name').value local recordValue = gurt.select('#record-value').value - local recordTTL = tonumber(gurt.select('#record-ttl').value) or '' + local recordTTL = tonumber(gurt.select('#record-ttl').value) or 'none' if not recordValue or recordValue == '' then showError('record-error', 'Record value is required') diff --git a/dns/frontend/index.html b/dns/frontend/index.html index 3de60b0..c8f6168 100644 --- a/dns/frontend/index.html +++ b/dns/frontend/index.html @@ -20,7 +20,7 @@ } input { - w-full p-3 border border-gray-600 rounded-md bg-[#374151] text-white mb-4 placeholder:text-[#999999] outline-none active:border-red-500 + text-xs w-full p-3 border border-gray-600 rounded-md bg-[#374151] text-white mb-4 placeholder:text-[#999999] outline-none active:border-red-500 } button { @@ -51,4 +51,4 @@
-