fileproc

package
v4.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 26, 2026 License: AGPL-3.0 Imports: 13 Imported by: 0

Documentation

Overview

Package fileproc is the file processor that can be used in conjunction with the transformer. It downloads files to the local filesystem using the provided downloader. Probably it's a good idea to use the downloader.Client for this.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AvatarPath

func AvatarPath(u *slack.User) string

func ExportTokenUpdateFn

func ExportTokenUpdateFn(token string) func(_ *slack.Channel, msg *slack.Message) error

ExportTokenUpdateFn returns a function that appends the token to every file URL in the given message.

func IsValid

func IsValid(f *slack.File) bool

IsValid returns true if the file can be downloaded and is valid.

func IsValidWithReason

func IsValidWithReason(f *slack.File) error

func New

func New(dl Downloader) processor.Filer

New creates a new file processor that uses mattermost file naming pattern.

func NewExport

func NewExport(typ source.StorageType, dl Downloader) processor.Filer

NewExport initialises an export file subprocessor based on the given export type. This subprocessor can be later plugged into the [expproc.Conversations] processor.

Types

type AvatarProc

type AvatarProc struct {
	// contains filtered or unexported fields
}

func NewAvatarProc

func NewAvatarProc(dl Downloader) AvatarProc

func (AvatarProc) Close

func (a AvatarProc) Close() error

func (AvatarProc) Users

func (a AvatarProc) Users(ctx context.Context, users []slack.User) error

type Downloader

type Downloader interface {
	// Download should download the file at the given URL and save it to the
	// given path.
	Download(fullpath string, url string) error
	Stop()
}

Downloader is the interface that wraps the Download method.

func NewDownloader

func NewDownloader(ctx context.Context, enabled bool, cl FileGetter, fsa fsadapter.FS, lg *slog.Logger) (sdl Downloader)

NewDownloader initializes the downloader and returns it, along with a function that should be called to stop it.

type FileGetter

type FileGetter interface {
	// GetFile retrieves a given file from its private download URL
	GetFileContext(ctx context.Context, downloadURL string, writer io.Writer) error
}

type FileProcessor

type FileProcessor struct {
	// contains filtered or unexported fields
}

FileProcessor is the file processor, that downloads files to the path returned by the filepath function. Zero value of this type is not usable.

func NewDump

func NewDump(dl Downloader) FileProcessor

NewDump returns a new Dump File FileProcessor.

func NewWithPathFn

func NewWithPathFn(dl Downloader, fp func(ci *slack.Channel, f *slack.File) string) FileProcessor

NewWithPathFn initialises the file processor.

func (FileProcessor) Close

func (b FileProcessor) Close() error

func (FileProcessor) Files

func (b FileProcessor) Files(_ context.Context, channel *slack.Channel, _ slack.Message, ff []slack.File) error

func (FileProcessor) PathUpdateFunc

func (b FileProcessor) PathUpdateFunc(channelID, threadTS string, mm []slack.Message) error

PathUpdateFunc updates the path in URLDownload and URLPrivateDownload of every file in the given message slice to point to the physical downloaded file location. It can be plugged in the pipeline of Dump.

type NoopDownloader

type NoopDownloader struct{}

func (NoopDownloader) Download

func (NoopDownloader) Download(fullpath string, url string) error

func (NoopDownloader) Stop

func (NoopDownloader) Stop()

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL