Airdroid

来自百合仙子's Wiki
跳转到导航 跳转到搜索

获取联系人列表

版本 1.1.0beta。

curl -sS --compressed 'http://192.168.1.52:8888/sdctl/contacts/group/has_phone?page=1&pcount=1000' -H 'Cookie: 7bb=xxx; keeplogin=00' | jshon -e content -u | base64 -d | ascii2uni -qaJ > contacts.json

导入联系人

版本 3.1.6。

#!/usr/bin/env python3

from json import dumps
import sys
from urllib.parse import quote
from base64 import b64encode
from subprocess import check_call

def main():
  for l in sys.stdin:
    name, phone = l.split()
    phones = phone.split(',')
    jsons = []
    name_d = {
      'mimetype': 'vnd.android.cursor.item/name',
      'data1': name,
      'data2': '',
      'data3': '',
      'data4': '',
      'data5': '',
      'data6': '',
    }
    note_d = {
      'mimetype': 'vnd.android.cursor.item/note',
      'data1': '通过 AirDroid 导入',
    }

    jsons.append(dumps(name_d))
    for p in phones:
      phone_d = {
        'mimetype': 'vnd.android.cursor.item/phone_v2',
        'data1': p,
        'data2': '2',
      }
      jsons.append(dumps(phone_d))
    jsons.append(dumps(note_d))

    data_d = []
    for j in jsons:
      j = dumps({
        'uri': 'content://com.android.contacts/data',
        'values': j,
      })
      data_d.append({
        'path': '/insert/',
        'data': j,
        'isEncode': 0,
      })
    data = dumps(data_d)
    data = quote(b64encode(quote(quote(data)).encode('ascii')).decode('ascii'))
    data = dumps({
      'content': data,
    })
    data = quote(data)

    cmd = ['curl', '-sS', '--compressed',
           'http://phone_z3c:8888/sdctl/insercontacttwithbatch/?7bb=2e01880e0601ee90c3606d69109e344e&params=' + data]
    check_call(cmd)
    print('\ndone with %s' % name)

if __name__ == '__main__':
  main()

外部链接