chronicle-app / chronicle-imessage Goto Github PK
View Code? Open in Web Editor NEWchronicle-etl plugin for accessing your iMessage messages and attachments using the command line
chronicle-etl plugin for accessing your iMessage messages and attachments using the command line
We use the sqlite databases in ~/Library/Application Support/AddressBook
to try and guess names of message senders.
Right now, we only use the first database we find in Sources/
but we should expand the search to include all available databases including the local database (~/Library/Application Support/AddressBook/AddressBook-v22.abcddb
).
The extractor uses the LocalContacts
module to try and infer information about a user's icloud account and phone number (via local Address Book sqlite dbs). If these details can't be found and no options are passed in manually (via my_phone_number
setting, etc), the extractor should raise an exception instead of crashing.
This was encountered by @wongjustin99 in #chronicle-etl/33:
Beginning job
/Users/goose/.rbenv/versions/3.1.1/lib/ruby/gems/3.1.0/gems/chronicle-imessage-0.2.3/lib/chronicle/imessage/imessage_extractor.rb:61:in `load_my_phone_contact': undefined method `fetch' for nil:NilClass (NoMethodError)
phone_number: @config.my_phone_number || local_contacts.my_phone_contact.fetch(:phone_number),
^^^^^^
from /Users/goose/.rbenv/versions/3.1.1/lib/ruby/gems/3.1.0/gems/chronicle-imessage-0.2.3/lib/chronicle/imessage/imessage_extractor.rb:51:in `prepare_data'
To bring it inline with other importers
Currently, ImessageTransformer
needs config passed in to build your own name/number. Ideally, we need a more automated way of determining this information.
For iCloud, we can use what we did with Safari to detect currently logged in iCloud account: https://github.com/chronicle-app/chronicle-safari/blob/0252fab1d882bd3b491059ccec61610721b33653/lib/chronicle/safari/safari_extractor.rb#L44.
For SMS, we still need would need an automated way to determine your own phone number. It should be possible to find in chat.db
but needs more sleuthing.
The name/phone settings should still exist as an override in case you're extracting from a chat db that's not associated with your logged in iCloud account.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.