node-imessage

:mailbox_with_mail: Query iMessage from terminal and NodeJS

  • Owner: nicola/node-imessage
  • Platform:
  • License::
  • Category::
  • Topic:
  • Like:
    0
      Compare:

Github stars Tracking Chart

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
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

Main metrics

Overview
Name With Ownernicola/node-imessage
Primary LanguageJavaScript
Program languageJavaScript (Language Count: 1)
Platform
License:
所有者活动
Created At2014-11-10 21:07:13
Pushed At2022-04-08 23:10:04
Last Commit At2017-12-27 00:18:13
Release Count1
Last Release Namev0.1.6 (Posted on 2017-12-27 00:18:13)
First Release Namev0.1.6 (Posted on 2017-12-27 00:18:13)
用户参与
Stargazers Count432
Watchers Count18
Fork Count19
Commits Count30
Has Issues Enabled
Issues Count3
Issue Open Count1
Pull Requests Count0
Pull Requests Open Count3
Pull Requests Close Count1
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private