1
0
Fork 0
Commit graph

137 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
da6c49ba92 Add genericcsv datasource 2026-02-20 03:16:45 +00: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
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
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
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
d4bd56e9b0
applephotos: Make recognition more rigorous (fix #157) 2025-10-21 22:25:12 -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
Matthew Holt
1aadee917f
instagram: D'oh, actually make stories optional 2025-10-15 08:37:17 -06:00
Matthew Holt
c9accf2b4a
instagram: Allow stories to not exist (fix #149) 2025-10-14 08:22:29 -06:00
Matthew Holt
1b4b95c65c
instagram: Support 2025 export layout (fix #141) 2025-10-13 13:40:35 -06:00
Dominik Roszkowski
d0cd6f3ce9
googlelocation: add Polish translation for 'Timeline' when recognizing on-device export (#143)
Small change to handle Google Location export when using Polish langauge
2025-10-13 10:22:27 -06:00
Matthew Holt
d290f06951
twitter: Finish supporting archives from 2022
Apparently it's not only tweets.js that is tweet.js, it's also tweets_media that is tweet_media, sigh.
2025-10-12 23:19:35 -06:00
Matthew Holt
b77238f86d
twitter: Try tweet.js if tweets.js isn't found
Thanks for the report. Apparently this occurs in archives made in 2022, possibly earlier.
2025-10-12 14:35:26 -06:00
Matthew Holt
1763b05279 strava: Permit missing activity files (close #137)
Strava bug causes missing files sometimes, indicated by filename of "#error#"
2025-10-11 16:33:49 -06:00
Matthew Holt
67798d070b
strava: Permit missing activity files (close #137)
Strava bug causes missing files sometimes, indicated by filename of "#error#"
2025-10-11 12:40:48 -06:00
Matthew Holt
0bf014cac0
kml: More rigorous filetype detection 2025-10-11 12:40:19 -06:00
Matthew Holt
ed21032526 email: Checkpoints 2025-10-09 22:33:09 -06:00
Matthew Holt
6354e9740f
googlelocation: Improve locale support for on-device export names
This is far from a complete list, but for now let's try to get most of the user base covered and see how that goes.

Close #111
2025-10-09 17:06:40 -06:00
Matthew Holt
f7f1bcc99c
smsbackuprestore: Fix non-UTF-8 file errors 2025-10-07 13:36:48 -06:00
Matthew Holt
9fc0c3e5c1
Work around Google Photos bug with missing ext on sidecar video files
Also fix motion picture transcoding for data files that don't have an extension, by looking up the media type of the image
2025-10-02 18:16:24 -06:00
Matthew Holt
3b9acbb363
googlevoice: Preserve newlines in texts 2025-09-25 22:44:03 -06:00
Matthew Holt
44d199bbb9
googlephotos: Add support for newer 2025 Takeout archives
The archive filename format changed slightly
2025-09-23 12:48:11 -06:00
Matthew Holt
3d64fbcfce
Fix iCloud image; reorder data sources in import plan
- iCloud logo was just a rasterized SVG, derp. Now it's a true SVG. Much smaller.
- Contact lists and vcards are pretty slow to import due to downloading profile pictures, so move those last
2025-09-22 14:37:35 -06:00
Matthew Holt
06912cf9e6
Add Google Voice data source
I love parsing HTML, yay
2025-09-22 14:36:30 -06:00
Matthew Holt
e44daa85df
Refactor location processing options
Add clustering strength parameter
2025-09-20 22:18:40 -06:00
Matthew Holt
b386f14ecb
facebook: "They told me they fixed it!" 2025-09-20 15:17:51 -06:00
Matthew Holt
35cecb9601
facebook: A few more fixes based on feedback 2025-09-20 13:25:36 -06:00
Matthew Holt
b5ec76b9a7
Super duper minor fixes 2025-09-18 18:18:35 -06:00
Matthew Holt
68aff57517
facebook: Support missing profile info, require username 2025-09-18 14:17:57 -06:00
Matthew Holt
81050c3237
facebook: Relate attached media; fix Description strings 2025-09-17 06:48:56 -06:00
Matthew Holt
faac1fcb60
facebook: Import check-ins and tagged places; fix post attachments
We now import check-ins and tagged places, so, mainly location-related data.

Some of the concepts still need a good mapping to the project, e.g. whether to put the coordinates as the item (i.e. "I was here") or with the entity (i.e. "this place is here").

The code that imported post attachments is some of the oldest code in the base, about 10 years ago. Back then, an item could have both text and file contents, and we just combined all the various attachment data for an attachment into one related item. Now, we properly treat them as separate.

Still need to add posts in groups and FB stories.
2025-09-16 23:26:11 -06:00
Matthew Holt
4a7458d048
facebook: Import photo albums 2025-09-16 16:47:11 -06:00
Matthew Holt
31dd7fd6f5 Try to support multi-archive Facebook exports; fix conversation loading
Conversations with more than ~6 participants should now load properly, also faster thanks to a simplified query
2025-09-16 11:26:23 -06:00
Matthew Holt
dd8c6e05cb Cocoa epoch dates are UTC
Also minor fix for map path coloring; should start from end of timespan'ed item, not beginning, otherwise gradient is skewed
2025-09-12 21:48:35 -06:00
Matthew Holt
2b5fd57259
Proper support for mixed timestamps and time zones
This will be a long-time WIP, but we now support full timestamps with local time offsets, absolute ones with UTC times only, and wall times only.

Several other fixes/enhancements. Making an effort to display time zone in time displays throughout the app.

Can now try to infer time zones during import, which is the default setting.

This will take a while to fully implement but it's a good start. Just have to be really careful about date crafting/manipulation/parsing.
2025-09-12 11:17:49 -06:00