Skip to content

dropbox_adder

Add files received from Sámediggi as zipfiles to freecorpus.

main()

Add files from zip files

Source code in /home/anders/projects/CorpusTools/corpustools/dropbox_adder.py
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
def main():
    """Add files from zip files"""
    dropbox_adders = {
        lang: adder.AddToCorpus(
            os.getenv("GTFREE"), lang, os.path.join("admin", "sd", "dropbox")
        )
        for lang in ["nob"] + LANGUAGES.keys()
    }

    sami_zip = sys.argv[1]
    subdir = f'/tmp/{os.path.basename(sami_zip.replace(".zip", ""))}'
    zipfile.ZipFile(sami_zip).extractall(subdir)

    for (nob, smi, sami_lang) in pairs(
        {os.path.join(root, f) for root, _, files in os.walk(subdir) for f in files}
    ):
        try:
            nob_in_free = dropbox_adders["nob"].copy_file_to_corpus(
                origpath=nob, metadata_filename=os.path.basename(nob)
            )
            dropbox_adders[sami_lang].copy_file_to_corpus(
                origpath=smi,
                metadata_filename=os.path.basename(smi),
                parallelpath=nob_in_free,
            )
        except UserWarning:
            pass
        os.remove(nob)
        os.remove(smi)

    for dropbox_adder in dropbox_adders.values():
        dropbox_adder.add_files_to_working_copy()