fix: added some missing loggig code
This commit is contained in:
+27
-10
@@ -1,6 +1,10 @@
|
|||||||
package operation
|
package operation
|
||||||
|
|
||||||
import "github.com/aziis98/cabret"
|
import (
|
||||||
|
"log"
|
||||||
|
|
||||||
|
"github.com/aziis98/cabret"
|
||||||
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
registerType("chunk", &Chunk{})
|
registerType("chunk", &Chunk{})
|
||||||
@@ -8,13 +12,13 @@ func init() {
|
|||||||
|
|
||||||
// Chunk is a list operation that will group incoming items in groups of the given size
|
// Chunk is a list operation that will group incoming items in groups of the given size
|
||||||
type Chunk struct {
|
type Chunk struct {
|
||||||
Count int
|
Size int
|
||||||
SkipRemaining bool
|
SkipRemaining bool
|
||||||
}
|
}
|
||||||
|
|
||||||
func (op *Chunk) Configure(options map[string]any) error {
|
func (op *Chunk) Configure(options map[string]any) error {
|
||||||
var err error
|
var err error
|
||||||
op.Count, err = getKey[int](options, "size")
|
op.Size, err = getKey[int](options, "size")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@@ -27,16 +31,29 @@ func (op *Chunk) Configure(options map[string]any) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (op *Chunk) ProcessList(items []cabret.Content) ([]cabret.Content, error) {
|
func (op *Chunk) ProcessList(items []cabret.Content) ([]cabret.Content, error) {
|
||||||
totalPages := len(items) / op.Count
|
totalChunks := len(items) / op.Size
|
||||||
|
|
||||||
chunks := make([][]cabret.Content, totalPages, totalPages+1)
|
chunks := make([][]cabret.Content, totalChunks, totalChunks+1)
|
||||||
|
|
||||||
for i := 0; i < totalPages; i++ {
|
for i := 0; i < totalChunks; i++ {
|
||||||
chunks = append(chunks, items[i*op.Count:(i+1)*op.Count])
|
chunks = append(chunks, items[i*op.Size:(i+1)*op.Size])
|
||||||
}
|
}
|
||||||
|
|
||||||
if !op.SkipRemaining {
|
if !op.SkipRemaining {
|
||||||
chunks = append(chunks, items[totalPages*op.Count:])
|
if len(items)%op.Size != 0 {
|
||||||
|
lastExtraChunk := items[totalChunks*op.Size:]
|
||||||
|
chunks = append(chunks, lastExtraChunk)
|
||||||
|
|
||||||
|
if len(lastExtraChunk) != len(items)%op.Size {
|
||||||
|
panic("ehm last chunk and modulus should be equal")
|
||||||
|
}
|
||||||
|
|
||||||
|
log.Printf(`[operation.Chunk] chunked items in %d chunk(s), last with %d items`, totalChunks+1, len(lastExtraChunk))
|
||||||
|
} else {
|
||||||
|
log.Printf(`[operation.Chunk] chunked items in %d chunk(s)`, totalChunks)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
log.Printf(`[operation.Chunk] chunked items in %d chunk(s)`, totalChunks)
|
||||||
}
|
}
|
||||||
|
|
||||||
result := make([]cabret.Content, len(chunks))
|
result := make([]cabret.Content, len(chunks))
|
||||||
@@ -44,8 +61,8 @@ func (op *Chunk) ProcessList(items []cabret.Content) ([]cabret.Content, error) {
|
|||||||
result[i] = cabret.Content{
|
result[i] = cabret.Content{
|
||||||
Type: cabret.MetadataOnly,
|
Type: cabret.MetadataOnly,
|
||||||
Metadata: cabret.Map{
|
Metadata: cabret.Map{
|
||||||
"Page": i + 1,
|
"Index": i,
|
||||||
"TotalPages": totalPages,
|
"Total": totalChunks,
|
||||||
"Items": chunk,
|
"Items": chunk,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import (
|
|||||||
"encoding/json"
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
|
"log"
|
||||||
"os/exec"
|
"os/exec"
|
||||||
|
|
||||||
"github.com/aziis98/cabret"
|
"github.com/aziis98/cabret"
|
||||||
@@ -117,6 +118,8 @@ func (op *Program) ProcessItem(item cabret.Content) (*cabret.Content, error) {
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
log.Printf(`[operation.Program] running external program "%s" with "%s" input`, op.ShellCommand, op.IOFormat)
|
||||||
|
|
||||||
cmd := exec.Command("sh", "-c", op.ShellCommand)
|
cmd := exec.Command("sh", "-c", op.ShellCommand)
|
||||||
cmd.Stdin = r
|
cmd.Stdin = r
|
||||||
var buf bytes.Buffer
|
var buf bytes.Buffer
|
||||||
|
|||||||
+7
-1
@@ -1,6 +1,8 @@
|
|||||||
package operation
|
package operation
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"log"
|
||||||
|
|
||||||
"github.com/aziis98/cabret"
|
"github.com/aziis98/cabret"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -42,9 +44,13 @@ func (op *Slice) ProcessList(items []cabret.Content) ([]cabret.Content, error) {
|
|||||||
to = to + len(items) + 1
|
to = to + len(items) + 1
|
||||||
}
|
}
|
||||||
if from < 0 {
|
if from < 0 {
|
||||||
reverse(items)
|
|
||||||
from = from + len(items) + 1
|
from = from + len(items) + 1
|
||||||
from, to = to, from
|
from, to = to, from
|
||||||
|
reverse(items)
|
||||||
|
|
||||||
|
log.Printf(`[operation.Slice] slicing and reversing items from %d to %d`, from, to)
|
||||||
|
} else {
|
||||||
|
log.Printf(`[operation.Slice] slicing items from %d to %d`, from, to)
|
||||||
}
|
}
|
||||||
|
|
||||||
return items[from:to], nil
|
return items[from:to], nil
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"html/template"
|
"html/template"
|
||||||
"io"
|
"io"
|
||||||
|
"log"
|
||||||
|
|
||||||
"github.com/aziis98/cabret"
|
"github.com/aziis98/cabret"
|
||||||
)
|
)
|
||||||
@@ -41,6 +42,8 @@ func (op *Template) ProcessList(items []cabret.Content) ([]cabret.Content, error
|
|||||||
|
|
||||||
tmpl := t.String()
|
tmpl := t.String()
|
||||||
|
|
||||||
|
log.Printf(`[operation.Template] rendering template`)
|
||||||
|
|
||||||
var data bytes.Buffer
|
var data bytes.Buffer
|
||||||
switch op.Engine {
|
switch op.Engine {
|
||||||
case "html":
|
case "html":
|
||||||
|
|||||||
Reference in New Issue
Block a user