kenshaw / h5ailist

Package h5ailist lists files/directories from h5ai

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

About

Package h5ailist is a simple client for retrieving files/directories from a remote h5ai directory list frontend.

Using

package h5ailist_test

import (
	"context"
	"fmt"

	"github.com/kenshaw/h5ailist"
)

func Example() {
	var items []h5ailist.Item
	if err := h5ailist.Walk(context.Background(), "https://larsjung.de/h5ai/demo/file preview", func(n string, item *h5ailist.Item, err error) error {
		switch {
		case err != nil:
			return err
		}
		items = append(items, *item)
		return nil
	}); err != nil {
		panic(err)
	}
	var directories, files int64
	for i, item := range items {
		fmt.Printf("%d: %q\n", i, item.Href)
		if item.IsDir() {
			directories++
		} else {
			files++
		}
	}
	fmt.Printf("items: %d directories: %d files: %d\n", len(items), directories, files)
	// Output:
	// 0: "/h5ai/demo/file%20preview/"
	// 1: "/h5ai/demo/file preview/class_cli.py"
	// 2: "/h5ai/demo/file preview/image-1.jpg"
	// 3: "/h5ai/demo/file preview/image-2.jpg"
	// 4: "/h5ai/demo/file preview/image-3.jpg"
	// 5: "/h5ai/demo/file preview/modulejs-1.14.0.js"
	// 6: "/h5ai/demo/file preview/options.css"
	// 7: "/h5ai/demo/file preview/text.md"
	// items: 8 directories: 1 files: 7
}

About

Package h5ailist lists files/directories from h5ai

License:MIT License


Languages

Language:Go 100.0%