query = f"""
    SELECT request_id,
           update_time,
           list.title as nom,
           requests.number,
           voting_title,
           [values].title as file_type,
           value as file
    FROM [values], requests, list
    WHERE   list.id = topic_id AND
            request_id = requests.id AND
            type IN ('file', 'image') AND
            list.default_duration > 0 AND
            status != 'disapproved'
    ORDER BY [values].title
"""


def preprocess(num, name, file_name):
    skip_files_with = config['not_scene_files']
    skip_by_field = any([s in file_name for s in skip_files_with])
    dir_name = f'№{num}. {name}'
    return skip_by_field, dir_name, file_name


d = Downloader(preprocess)

if d.get_lists(db_path, query):
    print('\nDownloading files...')
    d.download_files(folder_path, d.DOWNLOAD_UPDATED_REQUESTS, flat=False)
    query = f"""
        SELECT request_id,
               update_time,
               list.title as nom,
               requests.number,
               voting_title,
               [values].title,
               value as file
        FROM [values], requests, list
        {main_foto_join}
        WHERE   list.id = topic_id
            AND request_id = requests.id
            AND status != 'disapproved'
            AND type IN ('file', 'image')
            AND card_code IN ({not_scene_card_codes})
            {main_foto_where}
        ORDER BY request_id
    """

    def preprocess(num, dir_name, file_name):
        new_dir_name = ''  # No subdirectory for each file
        new_file_name = re.sub(r'[^\wа-яА-Я]+', '-', dir_name).strip('-')
        new_file_name = str(num) + '. ' + new_file_name
        return False, new_dir_name, new_file_name

    d = Downloader(preprocess)

    if d.get_lists(db_path, query):
        print('\nDownloading files...')
        d.download_files(folder_path, d.DOWNLOAD_UPDATED_REQUESTS)