diff options
| author | Mitja Felicijan <mitja.felicijan@gmail.com> | 2024-03-10 14:59:14 +0100 |
|---|---|---|
| committer | Mitja Felicijan <mitja.felicijan@gmail.com> | 2024-03-10 14:59:14 +0100 |
| commit | 1100562e29f6476448b656dbddd4cf22505523f6 (patch) | |
| tree | 442eec492199104bd49dfd74474ce89ade8fcac9 /bin/vault.rb | |
| parent | a40d80be378e46a6c490e1b99b0d8f4acd968503 (diff) | |
| download | mitjafelicijan.com-1100562e29f6476448b656dbddd4cf22505523f6.tar.gz | |
Move back to JBMAFP
Diffstat (limited to 'bin/vault.rb')
| -rw-r--r-- | bin/vault.rb | 60 |
1 files changed, 0 insertions, 60 deletions
diff --git a/bin/vault.rb b/bin/vault.rb deleted file mode 100644 index 1a664ea..0000000 --- a/bin/vault.rb +++ /dev/null | |||
| @@ -1,60 +0,0 @@ | |||
| 1 | require 'nokogiri' | ||
| 2 | require 'net/http' | ||
| 3 | require 'uri' | ||
| 4 | |||
| 5 | url = "https://mitjafelicijan.fra1.digitaloceanspaces.com/" | ||
| 6 | |||
| 7 | def truncate_filename(filename, max_length) | ||
| 8 | return filename if filename.length <= max_length | ||
| 9 | |||
| 10 | file_extension = filename.split('.').last | ||
| 11 | "#{filename[0...max_length - file_extension.length - 5]}….#{file_extension}" | ||
| 12 | end | ||
| 13 | |||
| 14 | uri = URI(url) | ||
| 15 | response = Net::HTTP.get_response(uri) | ||
| 16 | |||
| 17 | if response.is_a?(Net::HTTPSuccess) | ||
| 18 | xml_data = response.body | ||
| 19 | root = Nokogiri::XML(xml_data) | ||
| 20 | |||
| 21 | root.remove_namespaces! | ||
| 22 | tree = {} | ||
| 23 | |||
| 24 | root.xpath("//Contents").each do |content| | ||
| 25 | key = content.xpath("Key").text | ||
| 26 | parts = key.split("/") | ||
| 27 | node = tree | ||
| 28 | parts.each do |part| | ||
| 29 | next if part.empty? | ||
| 30 | node[part] ||= {} | ||
| 31 | node = node[part] | ||
| 32 | end | ||
| 33 | end | ||
| 34 | |||
| 35 | def tree_to_md(tree, url, indent = 0, path = "") | ||
| 36 | md = "" | ||
| 37 | tree.each do |k, v| | ||
| 38 | if v.empty? # If the node is empty, it's a file | ||
| 39 | file_url = "#{url}#{path}#{k}" | ||
| 40 | file_name = truncate_filename(k, 500) | ||
| 41 | md += "#{" " * indent}- [#{file_name}](#{file_url})\n" | ||
| 42 | else # If the node has children, it's a directory | ||
| 43 | md += "#{" " * indent}- #{k}\n" | ||
| 44 | md += tree_to_md(v, url, indent + 1, "#{path}#{k}/") | ||
| 45 | end | ||
| 46 | end | ||
| 47 | md | ||
| 48 | end | ||
| 49 | |||
| 50 | md = tree_to_md(tree, url) | ||
| 51 | puts md | ||
| 52 | |||
| 53 | File.open("_layouts/vault.md", "r") do |file| | ||
| 54 | content = file.read | ||
| 55 | new_content = content.gsub("{CONTENT}", md) | ||
| 56 | File.open("vault.md", "w") { |f| f.write(new_content) } | ||
| 57 | end | ||
| 58 | else | ||
| 59 | puts "Failed to fetch XML data. Status code: #{response.code}" | ||
| 60 | end | ||
