Skip to content

Commit 02c3d1e

Browse files
authored
Merge pull request #1190 from simulot:feature/fix-counters
feature: fix counters
2 parents 93cf533 + fae42b2 commit 02c3d1e

File tree

26 files changed

+380
-895
lines changed

26 files changed

+380
-895
lines changed

.github/copilot-instructions.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ When asked to generate release notes:
4646
- the commit title should prioritize features that affects the user experience
4747
- the commit details list other changes
4848
- maintain a provisional change log in the folder scratchpad
49+
- only changes in the command line options are concidered as breaking change. The project is not about publish an API or a library.
4950

5051
## prepare a pull-request to merge with the develop branch
5152

adapters/folder/run.go

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@ func (ifc *ImportFolderCmd) parseDir(ctx context.Context, fsys fs.FS, dir string
169169
if strings.HasSuffix(strings.ToLower(dir), "albums") {
170170
a, err := UseICloudAlbum(ifc.icloudMetas, fsys, name)
171171
if err != nil {
172-
ifc.processor.RecordNonAsset(ctx, fshelper.FSName(fsys, name), 0, fileevent.Error, "error", err.Error())
172+
ifc.processor.RecordNonAsset(ctx, fshelper.FSName(fsys, name), 0, fileevent.ErrorFileAccess, "error", err.Error())
173173
} else {
174174
ifc.processor.RecordNonAsset(ctx, fshelper.FSName(fsys, name), 0, fileevent.DiscoveredMetadata, "album", a)
175175
}
@@ -178,7 +178,7 @@ func (ifc *ImportFolderCmd) parseDir(ctx context.Context, fsys fs.FS, dir string
178178
if ifc.ICloudMemoriesAsAlbums && strings.HasSuffix(strings.ToLower(dir), "memories") {
179179
a, err := UseICloudMemory(ifc.icloudMetas, fsys, name)
180180
if err != nil {
181-
ifc.processor.RecordNonAsset(ctx, fshelper.FSName(fsys, name), 0, fileevent.Error, "error", err.Error())
181+
ifc.processor.RecordNonAsset(ctx, fshelper.FSName(fsys, name), 0, fileevent.ErrorFileAccess, "error", err.Error())
182182
} else {
183183
ifc.processor.RecordNonAsset(ctx, fshelper.FSName(fsys, name), 0, fileevent.DiscoveredMetadata, "album", a)
184184
}
@@ -188,7 +188,7 @@ func (ifc *ImportFolderCmd) parseDir(ctx context.Context, fsys fs.FS, dir string
188188
if strings.HasPrefix(strings.ToLower(base), "photo details") {
189189
err := UseICloudPhotoDetails(ifc.icloudMetas, fsys, name)
190190
if err != nil {
191-
ifc.processor.RecordNonAsset(ctx, fshelper.FSName(fsys, name), 0, fileevent.Error, "error", err.Error())
191+
ifc.processor.RecordNonAsset(ctx, fshelper.FSName(fsys, name), 0, fileevent.ErrorFileAccess, "error", err.Error())
192192
} else {
193193
ifc.processor.RecordNonAsset(ctx, fshelper.FSName(fsys, name), 0, fileevent.DiscoveredMetadata)
194194
}
@@ -207,19 +207,19 @@ func (ifc *ImportFolderCmd) parseDir(ctx context.Context, fsys fs.FS, dir string
207207
}
208208

209209
if ifc.BannedFiles.Match(name) {
210-
ifc.processor.RecordNonAsset(ctx, fshelper.FSName(fsys, entry.Name()), 0, fileevent.DiscoveredDiscarded, "reason", "banned file")
210+
ifc.processor.RecordNonAsset(ctx, fshelper.FSName(fsys, entry.Name()), 0, fileevent.DiscoveredBanned, "reason", "banned file")
211211
continue
212212
}
213213

214214
if ifc.supportedMedia.IsUseLess(name) {
215-
ifc.processor.RecordNonAsset(ctx, fshelper.FSName(fsys, entry.Name()), 0, fileevent.DiscoveredUseless)
215+
ifc.processor.RecordNonAsset(ctx, fshelper.FSName(fsys, entry.Name()), 0, fileevent.DiscoveredUnknown, "reason", "useless file")
216216
continue
217217
}
218218

219219
if ifc.PicasaAlbum && (strings.ToLower(base) == ".picasa.ini" || strings.ToLower(base) == "picasa.ini") {
220220
a, err := ReadPicasaIni(fsys, name)
221221
if err != nil {
222-
ifc.processor.RecordNonAsset(ctx, fshelper.FSName(fsys, name), 0, fileevent.Error, "error", err.Error())
222+
ifc.processor.RecordNonAsset(ctx, fshelper.FSName(fsys, name), 0, fileevent.ErrorFileAccess, "error", err.Error())
223223
} else {
224224
ifc.picasaAlbums.Store(dir, a)
225225
ifc.processor.RecordNonAsset(ctx, fshelper.FSName(fsys, name), 0, fileevent.DiscoveredMetadata, "album", a.Name)
@@ -236,13 +236,13 @@ func (ifc *ImportFolderCmd) parseDir(ctx context.Context, fsys fs.FS, dir string
236236

237237
switch mediaType {
238238
case filetypes.TypeUseless:
239-
ifc.processor.RecordNonAsset(ctx, fshelper.FSName(fsys, name), 0, fileevent.DiscoveredUseless)
239+
ifc.processor.RecordNonAsset(ctx, fshelper.FSName(fsys, name), 0, fileevent.DiscoveredUnknown)
240240
continue
241241
case filetypes.TypeImage, filetypes.TypeVideo:
242242
// Will be recorded as discovered asset after assetFromFile creates it
243243
case filetypes.TypeSidecar:
244244
if ifc.IgnoreSideCarFiles {
245-
ifc.processor.RecordNonAsset(ctx, fshelper.FSName(fsys, name), 0, fileevent.DiscoveredDiscarded, "reason", "sidecar file ignored")
245+
ifc.processor.RecordNonAsset(ctx, fshelper.FSName(fsys, name), 0, fileevent.DiscoveredSidecar, "reason", "sidecar file ignored")
246246
continue
247247
}
248248
ifc.processor.RecordNonAsset(ctx, fshelper.FSName(fsys, name), 0, fileevent.DiscoveredSidecar)
@@ -252,15 +252,15 @@ func (ifc *ImportFolderCmd) parseDir(ctx context.Context, fsys fs.FS, dir string
252252
if !ifc.InclusionFlags.IncludedExtensions.Include(ext) {
253253
// Get file size for discarded asset
254254
if info, err := fs.Stat(fsys, name); err == nil {
255-
ifc.processor.RecordAssetDiscardedImmediately(ctx, fshelper.FSName(fsys, name), info.Size(), fileevent.DiscoveredDiscarded, "extension not included")
255+
ifc.processor.RecordAssetDiscardedImmediately(ctx, fshelper.FSName(fsys, name), info.Size(), fileevent.DiscardedFiltered, "extension not included")
256256
}
257257
continue
258258
}
259259

260260
if ifc.InclusionFlags.ExcludedExtensions.Exclude(ext) {
261261
// Get file size for discarded asset
262262
if info, err := fs.Stat(fsys, name); err == nil {
263-
ifc.processor.RecordAssetDiscardedImmediately(ctx, fshelper.FSName(fsys, name), info.Size(), fileevent.DiscoveredDiscarded, "extension excluded")
263+
ifc.processor.RecordAssetDiscardedImmediately(ctx, fshelper.FSName(fsys, name), info.Size(), fileevent.DiscardedFiltered, "extension excluded")
264264
}
265265
continue
266266
}
@@ -272,7 +272,7 @@ func (ifc *ImportFolderCmd) parseDir(ctx context.Context, fsys fs.FS, dir string
272272
// we have a file to process - it's an asset (image or video)
273273
a, err := ifc.assetFromFile(ctx, fsys, name)
274274
if err != nil {
275-
ifc.processor.RecordAssetError(ctx, fshelper.FSName(fsys, name), fileevent.Error, err)
275+
ifc.processor.RecordAssetError(ctx, fshelper.FSName(fsys, name), 0, fileevent.ErrorFileAccess, err)
276276
return err
277277
}
278278
if a != nil {
@@ -293,7 +293,7 @@ func (ifc *ImportFolderCmd) parseDir(ctx context.Context, fsys fs.FS, dir string
293293
name := path.Join(dir, base)
294294
if entry.IsDir() {
295295
if ifc.BannedFiles.Match(name) {
296-
ifc.processor.RecordNonAsset(ctx, fshelper.FSName(fsys, name), 0, fileevent.DiscoveredDiscarded, "reason", "banned folder")
296+
ifc.processor.RecordNonAsset(ctx, fshelper.FSName(fsys, name), 0, fileevent.DiscoveredBanned, "reason", "banned folder")
297297
continue // Skip this folder, no error
298298
}
299299
if ifc.Recursive && entry.Name() != "." {
@@ -324,13 +324,13 @@ func (ifc *ImportFolderCmd) parseDir(ctx context.Context, fsys fs.FS, dir string
324324
if err == nil && jsonName != "" {
325325
buf, err := fs.ReadFile(fsys, jsonName)
326326
if err != nil {
327-
ifc.processor.RecordNonAsset(ctx, fshelper.FSName(fsys, jsonName), 0, fileevent.Error, "error", err.Error())
327+
ifc.processor.RecordNonAsset(ctx, fshelper.FSName(fsys, jsonName), 0, fileevent.ErrorFileAccess, "error", err.Error())
328328
} else {
329329
if bytes.Contains(buf, []byte("immich-go version")) {
330330
md := &assets.Metadata{}
331331
err = jsonsidecar.Read(bytes.NewReader(buf), md)
332332
if err != nil {
333-
ifc.processor.RecordNonAsset(ctx, fshelper.FSName(fsys, jsonName), 0, fileevent.Error, "error", err.Error())
333+
ifc.processor.RecordNonAsset(ctx, fshelper.FSName(fsys, jsonName), 0, fileevent.ErrorFileAccess, "error", err.Error())
334334
} else {
335335
ifc.processor.RecordNonAsset(ctx, fshelper.FSName(fsys, jsonName), 0, fileevent.DiscoveredSidecar)
336336
md.File = fshelper.FSName(fsys, jsonName)
@@ -348,12 +348,12 @@ func (ifc *ImportFolderCmd) parseDir(ctx context.Context, fsys fs.FS, dir string
348348
if err == nil && xmpName != "" {
349349
buf, err := fs.ReadFile(fsys, xmpName)
350350
if err != nil {
351-
ifc.processor.RecordNonAsset(ctx, fshelper.FSName(fsys, xmpName), 0, fileevent.Error, "error", err.Error())
351+
ifc.processor.RecordNonAsset(ctx, fshelper.FSName(fsys, xmpName), 0, fileevent.ErrorFileAccess, "error", err.Error())
352352
} else {
353353
md := &assets.Metadata{}
354354
err = xmpsidecar.ReadXMP(bytes.NewReader(buf), md)
355355
if err != nil {
356-
ifc.processor.RecordNonAsset(ctx, fshelper.FSName(fsys, xmpName), 0, fileevent.Error, "error", err.Error())
356+
ifc.processor.RecordNonAsset(ctx, fshelper.FSName(fsys, xmpName), 0, fileevent.ErrorFileAccess, "error", err.Error())
357357
} else {
358358
ifc.processor.RecordNonAsset(ctx, fshelper.FSName(fsys, xmpName), 0, fileevent.DiscoveredSidecar)
359359
md.File = fshelper.FSName(fsys, xmpName)
@@ -380,7 +380,7 @@ func (ifc *ImportFolderCmd) parseDir(ctx context.Context, fsys fs.FS, dir string
380380
if err == nil {
381381
md, err := exif.GetMetaData(f, a.Ext, ifc.tz)
382382
if err != nil {
383-
ifc.processor.RecordNonAsset(ctx, a.File, 0, fileevent.INFO, "warning", err.Error())
383+
// Metadata extraction failed, but continue processing
384384
} else {
385385
a.FromSourceFile = a.UseMetadata(md)
386386
}
@@ -398,7 +398,7 @@ func (ifc *ImportFolderCmd) parseDir(ctx context.Context, fsys fs.FS, dir string
398398

399399
if !ifc.InclusionFlags.DateRange.InRange(a.CaptureDate) {
400400
a.Close()
401-
ifc.processor.RecordAssetDiscardedImmediately(ctx, a.File, int64(a.FileSize), fileevent.DiscoveredDiscarded, "asset outside date range")
401+
ifc.processor.RecordAssetDiscardedImmediately(ctx, a.File, int64(a.FileSize), fileevent.DiscardedFiltered, "asset outside date range")
402402
continue
403403
}
404404

adapters/googlePhotos/googlephotos.go

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -111,28 +111,28 @@ func (toc *TakeoutCmd) passOneFsWalk(ctx context.Context, w fs.FS) error {
111111
ext := strings.ToLower(path.Ext(base))
112112
finfo, err := fs.Stat(w, name)
113113
if err != nil {
114-
toc.processor.RecordNonAsset(ctx, fshelper.FSName(w, name), 0, fileevent.Error, "error", err.Error())
114+
toc.processor.RecordNonAsset(ctx, fshelper.FSName(w, name), 0, fileevent.ErrorFileAccess, "error", err.Error())
115115
return nil
116116
}
117117

118118
// Exclude files to be ignored before processing
119119
if toc.BannedFiles.Match(name) {
120-
toc.processor.RecordNonAsset(ctx, fshelper.FSName(w, name), 0, fileevent.DiscoveredDiscarded, "reason", "banned file")
120+
toc.processor.RecordNonAsset(ctx, fshelper.FSName(w, name), 0, fileevent.DiscoveredBanned, "reason", "banned file")
121121
return nil
122122
}
123123

124124
if toc.supportedMedia.IsUseLess(name) {
125-
toc.processor.RecordNonAsset(ctx, fshelper.FSName(w, name), 0, fileevent.DiscoveredUseless)
125+
toc.processor.RecordNonAsset(ctx, fshelper.FSName(w, name), 0, fileevent.DiscoveredUnknown, "reason", "useless file")
126126
return nil
127127
}
128128

129129
if !toc.InclusionFlags.IncludedExtensions.Include(ext) {
130-
toc.processor.RecordAssetDiscardedImmediately(ctx, fshelper.FSName(w, name), finfo.Size(), fileevent.DiscoveredDiscarded, "extension not included")
130+
toc.processor.RecordAssetDiscardedImmediately(ctx, fshelper.FSName(w, name), finfo.Size(), fileevent.DiscardedFiltered, "extension not included")
131131

132132
return nil
133133
}
134134
if toc.InclusionFlags.ExcludedExtensions.Exclude(ext) {
135-
toc.processor.RecordAssetDiscardedImmediately(ctx, fshelper.FSName(w, name), finfo.Size(), fileevent.DiscoveredDiscarded, "extension excluded")
135+
toc.processor.RecordAssetDiscardedImmediately(ctx, fshelper.FSName(w, name), finfo.Size(), fileevent.DiscardedFiltered, "extension excluded")
136136

137137
return nil
138138
}
@@ -201,14 +201,14 @@ func (toc *TakeoutCmd) passOneFsWalk(ctx context.Context, w fs.FS) error {
201201
t := toc.supportedMedia.TypeFromExt(ext)
202202
switch t {
203203
case filetypes.TypeUseless:
204-
toc.processor.RecordNonAsset(ctx, fshelper.FSName(w, name), finfo.Size(), fileevent.DiscoveredUseless, "reason", "useless file")
204+
toc.processor.RecordNonAsset(ctx, fshelper.FSName(w, name), finfo.Size(), fileevent.DiscoveredUnknown, "reason", "useless file")
205205
return nil
206206
case filetypes.TypeUnknown:
207207
toc.processor.RecordNonAsset(ctx, fshelper.FSName(w, name), finfo.Size(), fileevent.DiscoveredUnsupported, "reason", "unsupported file type")
208208
return nil
209209
case filetypes.TypeVideo:
210210
if strings.Contains(name, "Failed Videos") {
211-
toc.processor.RecordAssetDiscardedImmediately(ctx, fshelper.FSName(w, name), finfo.Size(), fileevent.DiscoveredDiscarded, "can't upload failed videos")
211+
toc.processor.RecordAssetDiscardedImmediately(ctx, fshelper.FSName(w, name), finfo.Size(), fileevent.DiscardedFiltered, "can't upload failed videos")
212212
return nil
213213
} else {
214214
toc.processor.RecordAssetDiscovered(ctx, fshelper.FSName(w, name), finfo.Size(), fileevent.DiscoveredVideo)
@@ -229,7 +229,7 @@ func (toc *TakeoutCmd) passOneFsWalk(ctx context.Context, w fs.FS) error {
229229
toc.fileTracker.Store(key, tracking) // to.fileTracker[key] = tracking
230230

231231
if _, ok := dirCatalog.unMatchedFiles[base]; ok {
232-
toc.processor.RecordAssetDiscardedImmediately(ctx, fshelper.FSName(w, name), finfo.Size(), fileevent.AnalysisLocalDuplicate, "duplicated in the directory")
232+
toc.processor.RecordAssetDiscardedImmediately(ctx, fshelper.FSName(w, name), finfo.Size(), fileevent.DiscardedLocalDuplicate, "duplicated in the directory")
233233
return nil
234234
}
235235

@@ -306,7 +306,7 @@ func (toc *TakeoutCmd) solvePuzzle(ctx context.Context) error {
306306
i.md = md
307307
a := toc.makeAsset(ctx, dir, i, md)
308308
cat.matchedFiles[f] = a
309-
toc.processor.RecordNonAsset(ctx, fshelper.FSName(i.fsys, path.Join(dir, i.base)), 0, fileevent.AnalysisAssociatedMetadata, "json", json, "matcher", matcher.name)
309+
toc.processor.RecordNonAsset(ctx, fshelper.FSName(i.fsys, path.Join(dir, i.base)), 0, fileevent.ProcessedAssociatedMetadata, "json", json, "matcher", matcher.name)
310310
delete(cat.unMatchedFiles, f)
311311
}
312312
}
@@ -319,7 +319,7 @@ func (toc *TakeoutCmd) solvePuzzle(ctx context.Context) error {
319319
sort.Strings(files)
320320
for _, f := range files {
321321
i := cat.unMatchedFiles[f]
322-
toc.processor.RecordNonAsset(ctx, fshelper.FSName(i.fsys, path.Join(dir, i.base)), 0, fileevent.AnalysisMissingAssociatedMetadata)
322+
toc.processor.RecordNonAsset(ctx, fshelper.FSName(i.fsys, path.Join(dir, i.base)), 0, fileevent.ProcessedMissingMetadata)
323323
if toc.KeepJSONLess {
324324
a := toc.makeAsset(ctx, dir, i, nil)
325325
cat.matchedFiles[f] = a
@@ -365,9 +365,9 @@ func (toc *TakeoutCmd) handleDir(ctx context.Context, dir string, gOut chan *ass
365365
a := catalog.matchedFiles[name]
366366
key := fileKeyTracker{baseName: name, size: int64(a.FileSize)}
367367
track, _ := toc.fileTracker.Load(key) // track := to.fileTracker[key]
368-
if track.status == fileevent.Uploaded {
368+
if track.status == fileevent.ProcessedUploadSuccess {
369369
a.Close()
370-
toc.processor.RecordAssetDiscarded(ctx, a.File, fileevent.AnalysisLocalDuplicate, "local duplicate")
370+
toc.processor.RecordAssetDiscarded(ctx, a.File, int64(a.FileSize), fileevent.DiscardedLocalDuplicate, "local duplicate")
371371
continue
372372
}
373373

@@ -465,7 +465,7 @@ func (toc *TakeoutCmd) handleDir(ctx context.Context, dir string, gOut chan *ass
465465
size: int64(a.FileSize),
466466
}
467467
track, _ := toc.fileTracker.Load(key) // track := to.fileTracker[key]
468-
track.status = fileevent.Uploaded
468+
track.status = fileevent.ProcessedUploadSuccess
469469
toc.fileTracker.Store(key, track) // to.fileTracker[key] = track
470470
}
471471
case <-ctx.Done():
@@ -513,25 +513,25 @@ func (toc *TakeoutCmd) makeAsset(_ context.Context, dir string, f *assetFile, md
513513
// filterOnMetadata, log discared files and closes the asset
514514
func (toc *TakeoutCmd) filterOnMetadata(ctx context.Context, a *assets.Asset) fileevent.Code {
515515
if !toc.KeepArchived && a.Visibility == assets.VisibilityArchive {
516-
toc.processor.RecordAssetDiscarded(ctx, a.File, fileevent.DiscoveredDiscarded, "discarding archived file")
516+
toc.processor.RecordAssetDiscarded(ctx, a.File, int64(a.FileSize), fileevent.DiscardedFiltered, "discarding archived file")
517517
a.Close()
518-
return fileevent.DiscoveredDiscarded
518+
return fileevent.DiscardedFiltered
519519
}
520520
if !toc.KeepPartner && a.FromPartner {
521-
toc.processor.RecordAssetDiscarded(ctx, a.File, fileevent.DiscoveredDiscarded, "discarding partner file")
521+
toc.processor.RecordAssetDiscarded(ctx, a.File, int64(a.FileSize), fileevent.DiscardedFiltered, "discarding partner file")
522522
a.Close()
523-
return fileevent.DiscoveredDiscarded
523+
return fileevent.DiscardedFiltered
524524
}
525525
if !toc.KeepTrashed && a.Trashed {
526-
toc.processor.RecordAssetDiscarded(ctx, a.File, fileevent.DiscoveredDiscarded, "discarding trashed file")
526+
toc.processor.RecordAssetDiscarded(ctx, a.File, int64(a.FileSize), fileevent.DiscardedFiltered, "discarding trashed file")
527527
a.Close()
528-
return fileevent.DiscoveredDiscarded
528+
return fileevent.DiscardedFiltered
529529
}
530530

531531
if toc.InclusionFlags.DateRange.IsSet() && !toc.InclusionFlags.DateRange.InRange(a.CaptureDate) {
532-
toc.processor.RecordAssetDiscarded(ctx, a.File, fileevent.DiscoveredDiscarded, "discarding files out of date range")
532+
toc.processor.RecordAssetDiscarded(ctx, a.File, int64(a.FileSize), fileevent.DiscardedFiltered, "discarding files out of date range")
533533
a.Close()
534-
return fileevent.DiscoveredDiscarded
534+
return fileevent.DiscardedFiltered
535535
}
536536
if toc.ImportFromAlbum != "" {
537537
keep := false
@@ -543,9 +543,9 @@ func (toc *TakeoutCmd) filterOnMetadata(ctx context.Context, a *assets.Asset) fi
543543
keep = keep || album.Title == toc.ImportFromAlbum
544544
}
545545
if !keep {
546-
toc.processor.RecordAssetDiscarded(ctx, a.File, fileevent.DiscoveredDiscarded, "discarding files not in the specified album")
546+
toc.processor.RecordAssetDiscarded(ctx, a.File, int64(a.FileSize), fileevent.DiscardedFiltered, "discarding files not in the specified album")
547547
a.Close()
548-
return fileevent.DiscoveredDiscarded
548+
return fileevent.DiscardedFiltered
549549
}
550550
}
551551
return fileevent.Code(0)

adapters/googlePhotos/logs.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ func (toc *TakeoutCmd) DebugFileTracker(w io.Writer) {
2424
line[1] = strconv.Itoa(int(k.size)) // Size
2525
line[2] = strconv.Itoa(track.count) // Count
2626
line[3] = strconv.Itoa(track.count - 1) // Duplicated
27-
if track.status == fileevent.Uploaded {
27+
if track.status == fileevent.ProcessedUploadSuccess {
2828
line[4] = "1" // Uploaded
2929
} else {
3030
line[4] = "0"

app/app.go

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import (
99

1010
cliflags "github.com/simulot/immich-go/internal/cliFlags"
1111
"github.com/simulot/immich-go/internal/config"
12-
"github.com/simulot/immich-go/internal/fileevent"
1312
"github.com/simulot/immich-go/internal/fileprocessor"
1413
"github.com/simulot/immich-go/internal/filetypes"
1514
"github.com/spf13/cobra"
@@ -33,8 +32,7 @@ type Application struct {
3332

3433
// Internal state
3534
log *Log
36-
jnl *fileevent.Recorder
37-
processor *fileprocessor.FileProcessor // NEW: Unified file processing tracker
35+
processor *fileprocessor.FileProcessor // Unified file processing tracker
3836
tz *time.Location
3937
Config *config.ConfigurationManager
4038

@@ -76,14 +74,6 @@ func (app *Application) SetTZ(tz *time.Location) {
7674
app.tz = tz
7775
}
7876

79-
func (app *Application) Jnl() *fileevent.Recorder {
80-
return app.jnl
81-
}
82-
83-
func (app *Application) SetJnl(jnl *fileevent.Recorder) {
84-
app.jnl = jnl
85-
}
86-
8777
// FileProcessor returns the file processor for coordinated asset tracking and event logging
8878
func (app *Application) FileProcessor() *fileprocessor.FileProcessor {
8979
return app.processor

0 commit comments

Comments
 (0)