Last active
October 4, 2017 03:27
-
-
Save FlintSable/1e8426dac1e888ef899dec7a3a370bd6 to your computer and use it in GitHub Desktop.
sqlite
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import os | |
| clear = lambda: os.system('clear') #on Linux System | |
| clear() | |
| import os | |
| clear = lambda: os.system('cls') #on Windows System | |
| clear() |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import os | |
| import sys | |
| import sqlite3 | |
| __version__ = 'this is version 1.0.2' | |
| USAGE = 'To reorganize photos in Photo Shop Elements Database. Must enter in the location of the Photos and the location of the Database' | |
| DEBUG = False | |
| NEW_RES = 2048 | |
| def zero(meta_id, tag_id, conn): | |
| m = (meta_id,) | |
| t = (tag_id, meta_id) | |
| conn.execute('INSERT INTO metadata_string_table VALUES(?, 46, "")', m) | |
| conn.execute('INSERT INTO tag_to_metadata_table VALUES(?,?)', t) | |
| def one(meta_id, tag_id, conn): | |
| m = (meta_id,) | |
| t = (tag_id, meta_id) | |
| conn.execute('INSERT INTO metadata_string_table VALUES(?, 51, "")', m) | |
| conn.execute('INSERT INTO tag_to_metadata_table VALUES(?,?)', t) | |
| def two(meta_id, tag_id, conn): | |
| m = (meta_id,) | |
| t = (tag_id, meta_id) | |
| conn.execute('INSERT INTO metadata_decimal_table VALUES(?,53,-181)', m) | |
| conn.execute('INSERT INTO tag_to_metadata_table VALUES(?,?)', t) | |
| def three(meta_id, tag_id, conn): | |
| m = (meta_id,) | |
| t = (tag_id, meta_id) | |
| conn.execute('INSERT INTO metadata_decimal_table VALUES(?,52,-91)', m) | |
| conn.execute('INSERT INTO tag_to_metadata_table VALUES(?,?)', t) | |
| def four(meta_id, tag_id, conn): | |
| m = (meta_id,) | |
| t = (tag_id, meta_id) | |
| conn.execute('INSERT INTO metadata_decimal_table VALUES(?,54,0)', m) | |
| conn.execute('INSERT INTO tag_to_metadata_table VALUES(?,?)', t) | |
| def five(meta_id, tag_id, conn): | |
| t = (tag_id, meta_id) | |
| conn.execute('INSERT INTO tag_to_metadata_table VALUES(?,?)', t) | |
| def six(meta_id, tag_id, conn): | |
| m = (meta_id,) | |
| t = (tag_id, meta_id) | |
| conn.execute('INSERT INTO metadata_string_table VALUES(?, 1214, "")', m) | |
| conn.execute('INSERT INTO tag_to_metadata_table VALUES(?,?)', t) | |
| def seven(meta_id, tag_id, conn): | |
| m = (meta_id,) | |
| t = (tag_id, meta_id) | |
| conn.execute('INSERT INTO metadata_string_table VALUES(?, 1216, "deny_download deny_order_prints")', m) | |
| conn.execute('INSERT INTO tag_to_metadata_table VALUES(?,?)', t) | |
| def eight(meta_id, tag_id, conn): | |
| m = (meta_id,) | |
| t = (tag_id, meta_id) | |
| conn.execute('INSERT INTO metadata_string_table VALUES(?, 1218, "")', m) | |
| conn.execute('INSERT INTO tag_to_metadata_table VALUES(?,?)', t) | |
| def nine(meta_id, tag_id, conn): | |
| m = (meta_id,) | |
| t = (tag_id, meta_id) | |
| conn.execute('INSERT INTO metadata_string_table VALUES(?, 1220, "")', m) | |
| conn.execute('INSERT INTO tag_to_metadata_table VALUES(?,?)', t) | |
| def ten(meta_id, tag_id, conn): | |
| m = (meta_id,) | |
| t = (tag_id, meta_id) | |
| conn.execute('INSERT INTO metadata_string_table VALUES(?, 1222, "gtlmemories")', m) | |
| conn.execute('INSERT INTO tag_to_metadata_table VALUES(?,?)', t) | |
| def eleven(meta_id, tag_id, conn): | |
| m = (meta_id,) | |
| t = (tag_id, meta_id) | |
| conn.execute('INSERT INTO metadata_string_table VALUES(?, 1224, "gtlmemories")', m) | |
| conn.execute('INSERT INTO tag_to_metadata_table VALUES(?,?)', t) | |
| def twelve(meta_id, tag_id, conn): | |
| tag_id_xml = "%d.xml" % tag_id | |
| s = (meta_id,) | |
| m = (meta_id, tag_id_xml) | |
| t = (tag_id, meta_id) | |
| conn.execute('INSERT INTO metadata_string_table VALUES(?, 1226, ?)', m) | |
| conn.execute('INSERT INTO tag_to_metadata_table VALUES(?,?)', t) | |
| conn.execute('UPDATE _dbl_auto_id_table SET last_assigned_id = ?', s) | |
| options = {0 : zero, 1 : one, 2 : two, 3 : three, 4 : four, 5 : five, 6 : six, 7 : seven, 8 : eight, 9 : nine, 10 : ten, 11 : eleven, 12 : twelve,} | |
| def dbconnect(db): | |
| conn = sqlite3.connect(db) | |
| c = conn.cursor() | |
| def createalbums(fold, db): | |
| #try to create pse albums based on the directory entered in the command. | |
| conn = sqlite3.connect(db) | |
| parent_id = conn.execute('SELECT id FROM tag_table WHERE name="collection_ns"').fetchone()[0] | |
| foldlower = fold.split(':')[1].replace('\\','/').lower() | |
| tagname = os.path.basename(fold) | |
| print(fold) | |
| print(tagname) | |
| c = conn.cursor() | |
| t = (tagname, parent_id) | |
| c.execute('SELECT id FROM tag_table WHERE name = ? AND parent_id = ?', t) | |
| tag_data = c.fetchone() | |
| if tag_data == None : | |
| print('%s does not exist...Adding Folder' % tagname) | |
| tag_id = conn.execute("SELECT last_assigned_id FROM _dbl_auto_id_table").fetchone()[0] + 1 | |
| next_assigned_id = tag_id + 1 | |
| #adds a new row to the tag_table using the | |
| t = (tag_id,tagname,parent_id) | |
| c.execute('INSERT INTO tag_table VALUES(?,102,?,?,100,"collection",1,1,0,0,0)', t) | |
| count = 0 | |
| while count < 13: | |
| print('Inserting metadata %d' % count) | |
| options[count](tag_id + count + 1, tag_id, conn) | |
| count = count + 1 | |
| conn.commit() | |
| def albumorder(db): | |
| conn = sqlite3.connect(db) | |
| c = conn.cursor() | |
| parent_id = c.execute('SELECT id FROM tag_table WHERE name="collection_ns"').fetchone()[0] | |
| albumoriginal = [] | |
| neworder = [] | |
| t = (parent_id,) | |
| c.execute('SELECT id,name FROM tag_table WHERE parent_id=? ORDER BY name COLLATE NOCASE ASC', t) | |
| for row in c: | |
| albumoriginal.append(row) | |
| neworder.append(row[0]) | |
| neworder.sort() | |
| count = 0 | |
| for album in albumoriginal: | |
| albumoriginal[count] = albumoriginal[count] + (neworder[count],) | |
| count = count + 1 | |
| count = 0 | |
| proper_data = [] | |
| for album in albumoriginal: | |
| if albumoriginal[count][0] != albumoriginal[count][2]: | |
| t = (albumoriginal[count][0],) | |
| c.execute('SELECT media_id,media_index FROM tag_to_media_table WHERE tag_id =?', t) | |
| for row in c: | |
| row = row + (albumoriginal[count][2],albumoriginal[count][0]) | |
| proper_data.append(row) | |
| t = (albumoriginal[count][1],count,albumoriginal[count][2],) | |
| c.execute('UPDATE tag_table SET name=?,sibling_index=? WHERE id=?', t) | |
| print('Updating tag table') | |
| count = count + 1 | |
| conn.commit() | |
| x = 0 | |
| if proper_data != []: | |
| for prop in proper_data: | |
| t = (proper_data[x][2],proper_data[x][0],proper_data[x][3],) | |
| c.execute('UPDATE tag_to_media_table SET tag_id=? WHERE media_id=? AND tag_id=?', t ) | |
| x = x + 1 | |
| print('Updating tag_to_media_table') | |
| conn.commit() | |
| conn.close() | |
| def pseorder(fold,db,count = 0): | |
| foldlower = fold.split(':')[1].replace('\\','/').lower() + "/" | |
| tagname = os.path.basename(fold) | |
| print(tagname) | |
| conn = sqlite3.connect(db) | |
| c = conn.cursor() | |
| t = (tagname,) | |
| c.execute('SELECT id FROM tag_table WHERE name = ?', t) | |
| tag_id = c.fetchone() | |
| tag_id = tag_id[0] | |
| t = (foldlower,) | |
| c.execute('SELECT id,filename_search_index FROM media_table WHERE filepath_search_index = ? ORDER BY filename_search_index COLLATE NOCASE ASC', t) | |
| for row in c: | |
| media_id = row[0] | |
| l = conn.cursor() | |
| t = (media_id, tag_id,) | |
| l.execute('SELECT media_index FROM tag_to_media_table WHERE media_id = ? AND tag_id = ?', t) | |
| data = l.fetchone() | |
| if data == None: | |
| print('Does Not Exist...Adding') | |
| t = (media_id, tag_id, count,) | |
| l.execute('REPLACE INTO tag_to_media_table(media_id,tag_id,media_index) VALUES(?,?,?)', t) | |
| else: | |
| if data[0] != count: | |
| print('Not in order...Changing') | |
| t = (media_id, tag_id, count,) | |
| l.execute('REPLACE INTO tag_to_media_table(media_id,tag_id,media_index) VALUES(?,?,?)', t) | |
| count = count + 1 | |
| conn.commit() | |
| conn.close() | |
| def main(fdir): | |
| for root, dires, files in os.walk(fdir): | |
| if root != fdir: | |
| if root.count(os.path.sep) == 4: # 4 For Foga, 2 For MLGA | |
| print(root.count(os.path.sep)) | |
| print(fdir.count(os.path.sep)) | |
| pseorder(root, DB_PATH) | |
| # you are here | |
| def mainer(fdir): | |
| for root, dires, files in os.walk(fdir): | |
| if root != fdir: | |
| if root.count(os.path.sep) == 4: # this one too | |
| print(root.count(os.path.sep)) | |
| print(fdir.count(os.path.sep)) | |
| createalbums(root, DB_PATH) | |
| if '--version' in sys.argv: | |
| print(__version__) | |
| else: | |
| if __name__ == '__main__': | |
| if '--help' in sys.argv: | |
| print(USAGE) | |
| elif '--organize' in sys.argv: | |
| albumorder(sys.argv[2]) | |
| print(sys.argv[2]) | |
| elif '--createalbums' in sys.argv: | |
| print('creating albums') | |
| ROOT_PATH = sys.argv[1] | |
| DB_PATH = sys.argv[2] | |
| mainer(ROOT_PATH) | |
| else: | |
| print(sys.argv[2]) | |
| ROOT_PATH = sys.argv[1] | |
| DB_PATH = sys.argv[2] | |
| mainer(ROOT_PATH) | |
| albumorder(DB_PATH) | |
| main(ROOT_PATH) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment