{% extends "base.html" %} {% block main_content %}

{{page_title}}

 duplicates at a time  
{# pass this through so that the back-end can delete this message when it rm_dups #} {% set auto=namespace(str="") %} {% set page=namespace(cnt=0) %} {% set pref=namespace(have="") %} {% set count=namespace( del=0, keep=0 ) %} {% set all_count=namespace( d_files=0, k_files=0, md_files=0, mk_files=0, manual=0 ) %} {% set kfid=namespace( count=0 ) %} {# for each hash in ip_to_sp_dups_*, auto keep the _keep, auto delete the _del, only need hidden input #} {% for h in DD.ip_to_sp_dups_keep %} {% set kfid.count = kfid.count+1 %} {% set count.keep = count.keep+1 %} {% set count.del = count.del + DD.ip_to_sp_dups_del[h]|length %} {% endfor %} {% if count.keep %} {% set auto.str = auto.str + "
  • Keeping {} files in storage path and deleting {} from import path
  • ".format(count.keep, count.del) %} {% set all_count.k_files = all_count.k_files + count.keep %} {% set all_count.d_files = all_count.d_files + count.del %} {% endif %}
    Choose between these files:
    {% set count=namespace( del=0, keep=0, man_del=0, man_keep=0 ) %} {% for dups in DD.per_file_dups %} {% set outer_loop=loop.index %} {% set pref.have="" %} {% for dup in dups %} {# for each hash in preferred_file, auto keep it, only need hidden input, dont process further #} {% if DD.preferred_file[dup.h] %} {% set pref.have = "True" %} {% if DD.preferred_file[dup.h] == dup.id %} {% set kfid.count = kfid.count+1 %} {% set count.keep = count.keep + 1 %} {% else %} {% set count.del = count.del + 1 %} {% endif %} {% else %} {# okay, show an alert / make it choosable for each of these manually processed dups #} {% if loop.index == 1 %} {% set all_count.manual = all_count.manual + 1 %} {# we arent necessarily keeping this one, but we count the first as manual keep, the rest as manual del #} {# sometimes we are both in an import dir and have multiple copies in storage dir, dont double count keep, we will keep 1 from earlier code for this hash #} {% if dup.h not in DD.ip_to_sp_dups_keep %} {% set count.man_keep = count.man_keep + 1 %} {% endif %} {% set count.man_del = count.man_del + dups|length-1 %} {% endif %} {% if page.cnt <= pagesize %} {% if loop.index == 1 %}
    {% set kfid.count = kfid.count+1 %} {% endif %} {{dup.d}}/{{dup.f}} {% if DD.preferred_file[dup.h] == dup.id %} {% set pref.have="kf{}-f{}".format(outer_loop,loop.index) %} {% endif %} {% if loop.index < dups|length %} or {% endif %} {% if loop.index == dups|length %}
    {% endif %} {% endif %} {% endif %} {% endfor %} {% if pref.have == "" %} {% set page.cnt = page.cnt + 1 %} {% endif %} {% endfor %} {% if count.keep %} {% set auto.str = auto.str + "
  • Keeping {} files inside storage path, Deleting {} duplicates files from storage path
  • ".format(count.keep, count.del) %} {% set all_count.k_files = all_count.k_files + count.keep %} {% set all_count.d_files = all_count.d_files + count.del %} {% set all_count.mk_files = count.man_keep %} {% set all_count.md_files = count.man_del %} {% endif %} {% set count=namespace( keep_d=0, keep_f=0, m_files=0, m_dirs=0 ) %} {% for dup in DD.per_path_dups %} {% if DD.preferred_path[dup.did1] or DD.preferred_path[dup.did2] %} {% if DD.preferred_path[dup.did1] %} {% else %} {% endif %} {% set count.keep_d = count.keep_d + 1 %} {% set count.keep_f = count.keep_f + dup.hashes|wordcount %} {% else %} {% set all_count.manual = all_count.manual + 1 %} {% set count.m_files = count.m_files + dup.hashes|wordcount %} {% set count.m_dirs = count.m_dirs +1 %} {% if page.cnt <= pagesize %}
    Choose path to KEEP (same file names in 2 different directories):
    {{dup.count}} duplicates in: {% if dup.d1 == "" %} {% set d1="/" %} {% else %} {% set d1=dup.d1 %} {% endif %} {% if dup.d2 == "" %} {% set d2="/" %} {% else %} {% set d2=dup.d2 %} {% endif %} {{d1}} or {{d2}}
    {% set page.cnt = page.cnt + 1 %} {% endif %} {% endif %} {% endfor %} {% if count.keep_d %}
    {% set auto.str = auto.str + "
  • Keeping {} files in {} paths, Deleting={} file in {} paths
  • ".format( count.keep_f, count.keep_d, count.keep_f, count.keep_d) %} {% set all_count.k_files = all_count.k_files + count.keep_f %} {% set all_count.d_files = all_count.d_files + count.keep_f %} {% set all_count.mk_files = all_count.mk_files + count.m_files %} {% set all_count.md_files = all_count.md_files + count.m_files %}
    {% endif %} {% if auto.str|length %} AUTOMATICALLY matched naming conventions resulting in:
      {{auto.str|safe}}
    Automatically Keeping {{all_count.k_files}} files and deleting {{all_count.d_files}} files
    Leaving {{all_count.manual}} manual choices to make (to keep {{all_count.mk_files}} files and delete {{all_count.md_files}} files) {# So by counting/double-check, uniq files kept = {{all_count.k_files+all_count.mk_files}}, overall dups = {{all_count.k_files+all_count.d_files+all_count.mk_files+all_count.md_files}} #}
    {% endif %}
    {% endblock main_content %} {% block script_content %} {% endblock script_content %}