diff --git a/taguette-export_tags_to_csv.py b/taguette-export_tags_to_csv.py index 53a5c48..cf109db 100755 --- a/taguette-export_tags_to_csv.py +++ b/taguette-export_tags_to_csv.py @@ -3,40 +3,50 @@ import re import sqlite3 from configparser import ConfigParser +import csv +import os -config = ConfigParser() -config.read('.taguette_gdocs') +config_files = [f for f in os.listdir() if f.startswith('.taguette_gdocs_')] -## this is project ID from the configuration -project_id = int(config['General']['taguette_project_id']) -taguette_database_file = config['General']['taguette_database_file'] +for file_path in config_files: + + config = ConfigParser() + config.read(file_path) + + ## this is project ID from the configuration + project_id = int(config['General']['taguette_project_id']) + taguette_database_file = config['General']['taguette_database_file'] + + # set output file name + output_file_name = f'exported_tags/exported_tags_{project_id}.tsv' + + ## connect to sqlite3 + con = sqlite3.connect(taguette_database_file) + cur = con.cursor() + + # Run this if you just want tags and no highlights + sql_stmt_get = "SELECT id, path, description FROM tags WHERE project_id = ?" + + # Run this if you want tags AND highlights + #sql_stmt_get = "SELECT tags.id, tags.path, tags.description, highlights.snippet FROM highlight_tags INNER JOIN tags ON highlight_tags.tag_id = tags.id INNER JOIN highlights ON highlight_tags.highlight_id = highlights.id WHERE project_id = ?" + cur.execute(sql_stmt_get, (project_id,)) -## connect to sqlite3 -con = sqlite3.connect(taguette_database_file) -cur = con.cursor() + with open(output_file_name, 'w', newline='') as output_file: + writer = csv.writer(output_file, delimiter='\t') + while True: + row = cur.fetchone() + if row == None: + break -# Run this if you just want tags and no highlights -sql_stmt_get = "SELECT id, path, description FROM tags WHERE project_id = ?" + tag_id, path, description = row -# Run this if you want tags AND highlights -#sql_stmt_get = "SELECT tags.id, tags.path, tags.description, highlights.snippet FROM highlight_tags INNER JOIN tags ON highlight_tags.tag_id = tags.id INNER JOIN highlights ON highlight_tags.highlight_id = highlights.id WHERE project_id = ?" -cur.execute(sql_stmt_get, (project_id,)) - -while True: - row = cur.fetchone() - if row == None: - break - - tag_id, path, description = row - - m = re.match(r'^(.+)\_(.*)$', path) - if m: - axial = m.group(1) - tag = m.group(2) - else: - axial = "" - tag = path - - print("\t".join([str(tag_id), axial, tag, description])) + m = re.match(r'^(.+)\_(.*)$', path) + if m: + axial = m.group(1) + tag = m.group(2) + else: + axial = "" + tag = path + writer.writerow([str(tag_id), axial, tag, description]) \ No newline at end of file