コード例 #1
0
ファイル: gmail.py プロジェクト: yodiyo/sync-engine
def remote_change_labels(account, message_id, db_session, removed_labels, added_labels):
    uids_for_message = uids_by_folder(message_id, db_session)
    with writable_connection_pool(account.id).get() as crispin_client:
        for folder_name, uids in uids_for_message.items():
            crispin_client.select_folder(folder_name, uidvalidity_cb)
            crispin_client.conn.add_gmail_labels(uids, _encode_labels(added_labels))
            crispin_client.conn.remove_gmail_labels(uids, _encode_labels(removed_labels))
コード例 #2
0
def remote_change_labels(account, message_id, db_session, removed_labels,
                         added_labels):
    uids_for_message = uids_by_folder(message_id, db_session)
    with writable_connection_pool(account.id).get() as crispin_client:
        for folder_name, uids in uids_for_message.items():
            crispin_client.select_folder(folder_name, uidvalidity_cb)
            crispin_client.conn.add_gmail_labels(uids, added_labels)
            crispin_client.conn.remove_gmail_labels(uids, removed_labels)
コード例 #3
0
def remote_change_labels(crispin_client, account_id, message_id,
                         removed_labels, added_labels):
    with session_scope(account_id) as db_session:
        uids_for_message = uids_by_folder(message_id, db_session)

    for folder_name, uids in uids_for_message.items():
        crispin_client.select_folder_if_necessary(folder_name, uidvalidity_cb)
        if len(added_labels) > 0:
            crispin_client.conn.add_gmail_labels(uids,
                                                 _encode_labels(added_labels))
        if len(removed_labels) > 0:
            crispin_client.conn.remove_gmail_labels(
                uids, _encode_labels(removed_labels))
コード例 #4
0
ファイル: gmail.py プロジェクト: aabde/sync-engine
def remote_change_labels(crispin_client, account_id, message_id,
                         removed_labels, added_labels):
    with session_scope(account_id) as db_session:
        uids_for_message = uids_by_folder(message_id, db_session)

    for folder_name, uids in uids_for_message.items():
        crispin_client.select_folder_if_necessary(folder_name, uidvalidity_cb)
        if len(added_labels) > 0:
            crispin_client.conn.add_gmail_labels(
                uids, _encode_labels(added_labels), silent=True)
        if len(removed_labels) > 0:
            crispin_client.conn.remove_gmail_labels(
                uids, _encode_labels(removed_labels), silent=True)
コード例 #5
0
ファイル: gmail.py プロジェクト: nylas/sync-engine
def remote_change_labels(crispin_client, account_id, message_ids,
                         removed_labels, added_labels):
    uids_for_message = {}
    with session_scope(account_id) as db_session:
        for message_id in message_ids:
            folder_uids_map = uids_by_folder(message_id, db_session)
            for folder_name, uids in folder_uids_map.items():
                if folder_name not in uids_for_message:
                    uids_for_message[folder_name] = []
                uids_for_message[folder_name].extend(uids)

    for folder_name, uids in uids_for_message.items():
        crispin_client.select_folder_if_necessary(folder_name, uidvalidity_cb)
        if len(added_labels) > 0:
            crispin_client.conn.add_gmail_labels(
                uids, _encode_labels(added_labels), silent=True)
        if len(removed_labels) > 0:
            crispin_client.conn.remove_gmail_labels(
                uids, _encode_labels(removed_labels), silent=True)
コード例 #6
0
ファイル: gmail.py プロジェクト: ivicac/sync-engine
def remote_change_labels(crispin_client, account_id, message_ids,
                         removed_labels, added_labels):
    uids_for_message = {}
    with session_scope(account_id) as db_session:
        for message_id in message_ids:
            folder_uids_map = uids_by_folder(message_id, db_session)
            for folder_name, uids in folder_uids_map.items():
                if folder_name not in uids_for_message:
                    uids_for_message[folder_name] = []
                uids_for_message[folder_name].extend(uids)

    for folder_name, uids in uids_for_message.items():
        crispin_client.select_folder_if_necessary(folder_name, uidvalidity_cb)
        if len(added_labels) > 0:
            crispin_client.conn.add_gmail_labels(uids,
                                                 _encode_labels(added_labels),
                                                 silent=True)
        if len(removed_labels) > 0:
            crispin_client.conn.remove_gmail_labels(
                uids, _encode_labels(removed_labels), silent=True)