Пример #1
0
def main(args):
    import json, config
    import data
    import hooks

    hooks.invoke('scan.pre')
    notmuch_dir = config.get_notmuch_dir()
    mail_query = config.get_mail_query()
    search_days = config.get_search_days()
    trees = config.get_trees()

    def sort_patch(a, b):
        return cmp(b['messages'][0]['full_date'], a['messages'][0]['full_date'])

    patches = build_patches(notmuch_dir, search_days, mail_query, trees)
    patches.sort(sort_patch)

    links = config.get_links()

    info = { 'version': data.VERSION,
             'patches': patches }

    if links:
        info['links'] = links

    replace_file(config.get_json_path(),
                 json.dumps(info, indent=2,
                            separators=(',', ': '),
                            encoding='iso-8859-1'))

    hooks.invoke('scan.post')

    return 0
Пример #2
0
def main(args):
    import json, config
    import data
    import hooks

    hooks.invoke('scan.pre')
    notmuch_dir = config.get_notmuch_dir()
    mail_query = config.get_mail_query()
    search_days = config.get_search_days()
    trees = config.get_trees()

    def sort_patch(a, b):
        return cmp(b['messages'][0]['full_date'],
                   a['messages'][0]['full_date'])

    patches = build_patches(notmuch_dir, search_days, mail_query, trees)
    patches.sort(sort_patch)

    links = config.get_links()

    info = {'version': data.VERSION, 'patches': patches}

    if links:
        info['links'] = links

    replace_file(
        config.get_json_path(),
        json.dumps(info,
                   indent=2,
                   separators=(',', ': '),
                   encoding='iso-8859-1'))

    hooks.invoke('scan.post')

    return 0
Пример #3
0
def refresh(args):
    maildir = config.get_notmuch_dir()

    with open('%s/.last' % maildir, 'r') as fp:
        last_msg = int(fp.read())

    mdir = mailbox.Maildir(maildir)
    db = notmuch.Database(maildir, mode=notmuch.Database.MODE.READ_WRITE)

    srv = nntplib.NNTP(config.get_nntp_server())
    _, _, first, last, _ = srv.group(config.get_nntp_group())

    last = int(last)

    clear = False
    for msgno in range(last_msg + 1, last + 1):
        msg = fetch_msg(srv, str(msgno))
        filename = maildir + '/new/' + mdir.add(msg)

        db.begin_atomic()
        try:
            msg, status = db.add_message(filename)
        finally:
            db.end_atomic()

        util.replace_file('%s/.last' % maildir, str(msgno))

        sys.stdout.write('\rFetching message %4d of %4d...    ' % (msgno - last_msg, last - last_msg))
        clear = True
        sys.stdout.flush()

    if clear:
        sys.stdout.write('\n')

    return 0
Пример #4
0
def setup(args):
    maildir = config.get_notmuch_dir()
    git_dir = config.get_git_dir()

    try:
        os.makedirs(git_dir.rsplit('/', 1)[0])
    except Exception, e:
        pass
Пример #5
0
def setup(args):
    maildir = config.get_notmuch_dir()
    git_dir = config.get_git_dir()

    try:
        os.makedirs(git_dir.rsplit('/', 1)[0])
    except Exception, e:
        pass
Пример #6
0
def dump_notmuch_query(patches, args):
    import notmuch

    sub_series = find_subseries(patches, args)
    if not sub_series:
        return

    def fn(series):
        return 'id:"%s"' % series['messages'][0]['message-id']

    query = ' or '.join(map(fn, sub_series))

    db = notmuch.Database(config.get_notmuch_dir())
    q = notmuch.Query(db, query)

    tids = []
    for thread in q.search_threads():
        tids.append('thread:%s' % thread.get_thread_id())

    out(' or '.join(tids))
Пример #7
0
def dump_notmuch_query(patches, args):
    import notmuch

    sub_series = find_subseries(patches, args)
    if not sub_series:
        return

    def fn(series):
        return 'id:"%s"' % series['messages'][0]['message-id']

    query = ' or '.join(map(fn, sub_series))

    db = notmuch.Database(config.get_notmuch_dir())
    q = notmuch.Query(db, query)

    tids = []
    for thread in q.search_threads():
        tids.append('thread:%s' % thread.get_thread_id())

    out(' or '.join(tids))
Пример #8
0
def refresh(args):
    maildir = config.get_notmuch_dir()

    with open('%s/.last' % maildir, 'r') as fp:
        last_msg = int(fp.read())

    mdir = mailbox.Maildir(maildir)
    db = notmuch.Database(maildir, mode=notmuch.Database.MODE.READ_WRITE)

    srv = nntplib.NNTP(config.get_nntp_server())
    _, _, first, last, _ = srv.group(config.get_nntp_group())

    last = int(last)

    clear = False
    for msgno in range(last_msg + 1, last + 1):
        msg = fetch_msg(srv, str(msgno))
        filename = maildir + '/new/' + mdir.add(msg)

        db.begin_atomic()
        try:
            msg, status = db.add_message(filename)
        finally:
            db.end_atomic()

        util.replace_file('%s/.last' % maildir, str(msgno))

        sys.stdout.write('\rFetching message %4d of %4d...    ' %
                         (msgno - last_msg, last - last_msg))
        clear = True
        sys.stdout.flush()

    if clear:
        sys.stdout.write('\n')

    return 0