# -*- coding: utf-8 -*-

# Define the function to deal with each folder
def deal_with_folder(folder):
    if folder.num_unread_messages > 0:
        # Get actions for selecting all messages, and marking the selection as read
        action_group = clawsmail.get_mainwindow_action_group();
        select_all_action = action_group.get_action("Edit/SelectAll")
        mark_read_action = action_group.get_action("Message/Mark/MarkRead")
        
        # Select given folder
        clawsmail.folderview_select_folder(folder)
        
        # Search for messages with age greater than 28 days
        clawsmail.quicksearch_search("ag 28", clawsmail.QUICK_SEARCH_EXTENDED)
        
        # Mark all messages in the search result as read
        select_all_action.activate()
        mark_read_action.activate()


# Get selected folder
root = clawsmail.get_folderview_selected_folder()
if root is None:
    root = clawsmail.get_folderview_selected_mailbox()

if root is not None:
    # Get a tree of subfolders. The argument could also be a string of a mailbox name,
    # or left out for a list of mailbox trees.
    tree = clawsmail.get_folder_tree(root)
    
    # Call above function for all folders.
    tree.traverse(deal_with_folder)
    
    # Clear the quicksearch widget again
    clawsmail.quicksearch_clear()
    
    # Change back to original folder
    clawsmail.folderview_select(root)
