Skip to content

Latest commit

 

History

History
136 lines (96 loc) · 2.59 KB

README.md

File metadata and controls

136 lines (96 loc) · 2.59 KB

node-imessage

Build Status

Binds iMessage to NodeJS (read-only)

ATTENTION: only available to brave coders, heavy development going on.

Discuss on HN or star the project to be updated.

Install

npm install imessage --save

To use the command line tool

npm install -g imessage

Usage

Command line

Usage: imessagejs <command>

command     
  search         Search messages with particular text
  recipients     Search messages with particular recipient

Search

Usage: imessagejs search "text to search" [options]

Options:
   --count       Just return the count
   --recipient   ID of the recipient
   --json        Print in json format
   --path    iMessage path to the chat.db

Recipients

Usage: imessagejs recipients ["recipient name to filter"] [options]

Options:
   --count   Just return the count
   --json    Print in json format
   --path    iMessage path to the chat.db

NodeJS Library

Recipients

var iMessage = require('imessage');
var im = new iMessage();

// Get all recipients
im.getRecipients(cb)

// Get recipients with "nicola"
im.getRecipients("nicola", cb)

// Get recipient Id
im.getRecipientById(1, cb)
// Get recipient and all of his messages
im.getRecipientById(1, true, cb)

Messages

// Get all messages
im.getMessages(cb)

// Get messages with text
im.getMessages("hello you", cb);

// Get messages from recipient Id
im.getMessagesFromId(1, cb)
// Get messages from recipient with specific text
im.getMessagesFromId(1, "with text", cb)

Attachments

// Get all attachments
im.getAttachments(cb)

// Get attachements from recipient Id
im.getAttachmentsFromId(1, cb)

Use raw SQL queries

var iMessage = require('imessage');

var im = new iMessage();
im.getDb(function(err, db) {
  db.get("SELECT * FROM `messages`");
})

Ideally

var iMessage = require('imessage');

var im = new iMessage();
im
  .getAll()
  .keyword(["love", "happy"], ["sad", "hate"])
  .from(["+1231231231", "+89898989898"])
  .limit(10)
  .exec(function(err, rows) {
    console.log(rows);
  })

Examples