1
0
Fork 0
Commit graph

400 commits

Author SHA1 Message Date
a6aae2d59a Dummy data source 2026-02-24 15:22:31 +00:00
91db4a1a6a Try add 4 new columns 2026-02-24 03:48:13 +00:00
3f1a4c57fd Readme 2026-02-20 03:17:55 +00:00
da6c49ba92 Add genericcsv datasource 2026-02-20 03:16:45 +00:00
Matthew Holt
01063cf709
python: Update dependencies
Some checks are pending
lint / lint (push) Waiting to run
Latest builds / publish (macos-15-intel) (push) Waiting to run
Latest builds / publish (macos-latest) (push) Waiting to run
Latest builds / publish (ubuntu-24.04-arm) (push) Waiting to run
Latest builds / publish (ubuntu-latest) (push) Waiting to run
Latest builds / publish (windows-latest) (push) Waiting to run
Tests / test (push) Waiting to run
2026-01-29 09:55:40 -07:00
Matt Holt
3afba02ac8
Fix CI (#185)
* I'm so tired of fix-ci branches

* Take 2

* If at first you don't succeed
2026-01-29 09:48:20 -07:00
Matthew Holt
9f2f69f2d3
Fix compilation
vips added an argument to Autorot().
2026-01-29 08:52:13 -07:00
Matthew Holt
dc89691088
go.mod: Upgrade dependencies 2026-01-28 21:54:55 -07:00
Matthew Holt
7146add325
contactlist: Fix support for non-comma CSVs 2026-01-28 21:53:14 -07:00
TherionAcribus
6bd8471a93
whatsapp: Manually parse message lines; support more inputs (#181)
* WhatsApp > change import rules

* better confidence if whatsapp in the file name

* WhatsApp > Inline helper + remove helpers.go

* Replace regex with manual parser

* WhatsApp: tests for splitter

* Datasource > Whatsapp > remove magic numbers in splitter

* Datasource > Whatsapp > satisfy staticcheck in splitter + remove unused LRO helper

* Datasource > Whatsapp > fix unconvert warnings in splitter tests + magic numbers
2026-01-20 10:58:54 -07:00
Matthew Holt
c8cfe5001f
Fix more lint errors 2026-01-16 23:32:10 -07:00
Matthew Holt
8884300d3c
Fix lint errors
The false positive got fixed, so now remove nolints
2026-01-16 15:08:48 -07:00
Matthew Holt
d0b8e3f940
Include one more file for previous commit 2026-01-16 15:08:16 -07:00
Matthew Holt
a46f42de15
Move oauth2client package to internal
This is a legacy package I wrote in the earlier days of Timeliner (and maybe even photobak?) that made it easier to access cloud services protected by individual OAuth accounts... I am not sure if we will use it in Timelinize but I'm holding onto it for now.
2026-01-16 14:59:37 -07:00
TherionAcribus
2063b9e308
frontend: Add svg for document (#182) 2026-01-12 14:39:05 -07:00
changeling
1fa223a95f
Fix table header->items alignment in entities.html. (#175) 2025-11-20 11:14:37 -07:00
Matthew Holt
ce601d5033
googlephotos: Ignore non-dir subfolders in Takeout albums
Also print data source in log messages when processing fails
2025-11-17 09:06:24 -07:00
Matthew Holt
3459478438
Let TLZ_ORIGIN override allowed_origins config
Also print allowed origins on server start for debugging.

See #171
2025-11-14 09:33:43 -07:00
Ralf Ebert
8218ab0a39
Don't use time_offset when searching items (#172)
Fix gallery photo prev/next for photos with time zone

When jumping between photos in the gallery with the prev/next button, the buttons were incorrectly enabled/disabled/wouldn't work even if enabled for me. This was caused by the photos having a time zone UTC+1 (time_offset = 3600). The js frontend uses formatted timestamps including the time zone (peekFromItem.timestamp in galleryFilterParams). These are converted to a unix timestamp via UTC().UnixMilli(), so the time zone is already taken care for and adding time_offset is not necessary. For the filtering in the gallery grid itself, a unix timestamp is generated client-side (something like &start=1762124400&end=1762210800) taking the system time zone into account, so this is correct without any extra logic as well.
2025-11-13 10:50:46 -07:00
changeling
2cddac7c2b
Add Select All checkbox to Entities page. (#174)
Add checkbox to table header in entities.html.
Add logic to handle `Select All` checkbox to entities.js.
2025-11-12 13:10:46 -07:00
Dulanic
cb14cffe25
Support comma-separated values in TLZ_ORIGIN environment variable (#168)
Allow TLZ_ORIGIN to accept multiple origins separated by commas for more
flexible CORS configuration. Whitespace around each origin is trimmed and
empty values are filtered out.

Example: TLZ_ORIGIN="http://localhost:3000,http://example.com:8080"

Co-authored-by: Dulanic <Dulanic@users.noreply.github.com>
Co-authored-by: Matt Holt <mholt@users.noreply.github.com>
2025-11-06 13:23:02 -07:00
Matthew Holt
59434bdde9
Why can't it just tell me all the lint errors, why leave off the last 2 2025-11-04 16:37:24 -07:00
Matthew Holt
2d9c8db9d7
ci: Fix lingering lint errors 2025-11-04 16:31:56 -07:00
Matthew Holt
ac807139fc
ci: Upgrade macos-13 to macos-15-intel
This will be the last Intel Mac image
2025-11-04 16:30:54 -07:00
Matthew Holt
962369382a
Hopefully appease new linter 2025-11-04 16:27:09 -07:00
Matthew Holt
f072765866
Import sidecar profile pictures from contact list, vcard data sources
Also fix a bug related to import planning which would divide by zero.
2025-11-04 16:20:31 -07:00
Matthew Holt
c04438c51a
frontend: Improve avatar initials; support wss:// 2025-11-04 13:43:33 -07:00
Matthew Holt
3176a94847
contactlist: Add support for name component fields
And fix the algorithm used to normalize the field names for mapping
2025-11-03 10:06:34 -07:00
Matthew Holt
0e8e0f8336
Fix XML decoding for non-UTF-8 in more places 2025-10-31 13:34:27 -06:00
Matthew Holt
d33a7a156f
imessage: Support older databases without certain columns 2025-10-29 13:59:14 -06:00
Matthew Holt
bf4ad1a9b6 email: Upgrade to enmime/v2 2025-10-27 15:49:29 -06:00
Michael Cordell
9984737ef5
vcard: fix opening directory of vCard files (#164)
When attempting an import of a zip containing a directory of vCard files
or simply a directory of vCard files, errors like the following occur:

```
error read /workspaces/timelinize/iCloud Contacts/iCloud Contacts/Groups: is a directory
```

Modifying the walk function to use the passed path and dirEntry File
System resolves this issue.
2025-10-25 21:34:58 -06:00
Matthew Holt
7f3c90b71a
Continue WIP interactive mode 2025-10-24 00:00:43 -06:00
Matthew Holt
56e8037863
schema: Create index on embeddings(item_id)
Should fix a slow query in the hot path, for updated items
2025-10-23 20:53:04 -06:00
Matthew Holt
19acc6cc11
Create WAL checkpoint after jobs 2025-10-23 13:20:20 -06:00
Matthew Holt
01d9ea43dd
frontend: Fix remaining issues in #158 2025-10-23 12:15:20 -06:00
Matthew Holt
073524ccb3
frontend: Upgrade to Echarts 6.0.0 2025-10-23 11:30:19 -06:00
Matthew Holt
03d126ed68
Use PRAGMA optimize instead of ANALYZE
This is supposedly a smarter way to do ANALYZE, as it only analyzes what sqlite thinks is needful. Should hopefully address some reports of too-frequent, long-running analyze queries.

There was one time I noticed that the pragma didn't improve query plans, until I ran analyze specifically which did improve it, but that was using the old DB connection model where I had a single pool of mixed readers/writers, so maybe it's possible that the new pooling style (separate r/w pools) also addresses that, I dunno.
2025-10-23 11:30:05 -06:00
Matthew Holt
716b63edde
frontend: Reset throughput chart on restarted job (fix #158) 2025-10-22 22:30:52 -06:00
Matthew Holt
e7650c784a
Some minor changes
- New config parameter "resume_jobs" which can disable auto-resuming jobs at timeline open. (closes #159)

- Renamed "a" to "app" in one method using "Rename symbol" (not "Change all occurrences"), which surprisingly updated the identifier in ALL methods. That must be new. Anyway, that's the huge diff.

- Minor fix to metadata merge that does a more proper nil check to avoid a panic.

- Changed some omitempty to omitzero
2025-10-22 15:13:32 -06:00
Matthew Holt
d4bd56e9b0
applephotos: Make recognition more rigorous (fix #157) 2025-10-21 22:25:12 -06:00
Matthew Holt
3bb6af98c1
Ensure meta map is not nil (fix #160) 2025-10-21 11:38:15 -06:00
Matthew Holt
219e543e3c
Try issue and PR templates
Mainly for AI disclosure
2025-10-16 23:43:13 -06:00
Matthew Holt
93d205f218
Fix lint error (false positive) 2025-10-16 23:07:53 -06:00
Matthew Holt
26e208aba5 applecontacts: Fix variable columns (!?) and birth dates
Apparently the schemas vary and not all ZABCDRECORD tables have ZTHUMBNAILIMAGEDATA for example. (#153)

So we have to dynamically build the query and the scan targets.

Then the birth date interpretation is complex too. A yearless birthdate is the number of seconds into a year, but the birthdayyear col will have a value of 1604 if it's unknown, instead of null.
2025-10-16 22:54:54 -06:00
Matthew Holt
e9ef6a02ac
facebook: Don't recognize HTML archive variants (fix #154) 2025-10-15 23:00:49 -06:00
Matthew Holt
85a0381320
vcard: Set local time zone for birthdays
No one records their birth date as UTC midnight, sheesh
2025-10-15 21:54:01 -06:00
Matthew Holt
766a304ec0 macaddrbook: Interpret birthdays with cocoa core data ts (fix #153) 2025-10-15 21:43:56 -06:00
Matthew Holt
59161e5e96 vcard: Add YYYY-MM-DD format (issue #153) 2025-10-15 21:24:14 -06:00
Sergio Rubio
e30a5cd46d
Dockerfile fixes (#151)
* Dockerfile fixes

Significantly improves running Timelinize in Docker.

* Modernize Debian (Trixie upgrade)
* Fix Python version to avoid pytorch compat issues
* Install uv required for semantic features
* Exposes cache volumes to avoid repeated large artifacts downloads

Recommended running as:

docker run -v timelinize-cache:/app/.cache \
           -v timelinize-local:/app/.local \
           -v timelinize-repo:/repo \
           -v timelinize-config:/app/.config/timelinize \
           -p 12001:12002 timelinize

* Add missing libheif plugins

Fixes thumbnail generation.

* Fix DNG thumbnail generation

* Replace / in ref names

Fixes release builds

* Fix also macos builds
2025-10-15 13:51:56 -06:00