import sys, os, MySQLdb, stat db = MySQLdb.connect(host = "localhost", user = "sse_web", passwd = "ece6Yoli", db = "sse") cursor = db.cursor(); def commit(): cursor.execute('COMMIT') def rollback(): cursor.execute('ROLLBACK') def start_transaction(): cursor.execute('START TRANSACTION') def last_insert_id(): cursor.execute('SELECT LAST_INSERT_ID()') return int(cursor.fetchone()[0]) def new_package(archive, root, meta): cursor.execute('INSERT INTO package (path, timestamp, md) VALUES (%s, NOW(), %s)', (root + '/%s', meta["md"])) return last_insert_id(); def find_package(md): cursor.execute('SELECT id FROM package WHERE md=%s', md) if cursor.rowcount <= 0: return None return int(cursor.fetchone()[0]) def new_provider_record(recid, package_id, provider_id, meta): try: name = meta["name"] except KeyError: name = "noname" try: url = meta["project-url"] except KeyError: url = "" try: download_url = meta["archive-url"] except KeyError: download_url = "" try: l = meta["license"] except KeyError: l = "" cursor.execute('REPLACE provider_record (id, package_id, provider_id, name, url, download_url, license) VALUES (%s, %s, %s, %s, %s, %s, %s)', (recid, package_id, provider_id, name, url, download_url, l)) def new_file(package_id, path, language_id = 0): cursor.execute('INSERT INTO file (package_id, path, language_id) VALUES (%s, %s, %s)', (package_id, path, language_id)); return last_insert_id() def new_word(file_id, text, is_subword): if is_subword: t = "subword" else: t = "word" cursor.execute('INSERT IGNORE INTO word (text, type, file_id, cnt) VALUES (%s, %s, %s, 0)', (text, t, file_id)) cursor.execute('UPDATE word SET cnt=cnt+1 WHERE text=%s AND type=%s AND file_id=%s', (text, t, file_id))