diff --git a/meltingnotes.py b/meltingnotes.py new file mode 100644 index 0000000..c0a5ded --- /dev/null +++ b/meltingnotes.py @@ -0,0 +1,63 @@ +''' + The goal of this application is to convert a mno database into mno's web site compatible database (drupal) +''' + +import sqlite3 + + +import os +import re +import sys +from SimpaDbUtil import SqlFile, SqlDatabaseReader +from _sqlite3 import Row + +class OrchestraSqlDb( object ): + def __init__(self, sql_reader): + """ + :param SqlDatabaseReader sql_reader: the inventory database + """ + super(OrchestraSqlDb, self).__init__() + self._sql_reader = sql_reader + + def query(self, sql_query): + return self._sql_reader.query(sql_query) + + +class Concert(object): + pass + +class Recording(object): + pass + +class OrchestraDb(object): + + def __init__(self, mno_drupal_db_sql_file_path): + self.concerts = {} + + sql_source = SqlFile(mno_drupal_db_sql_file_path) + sql_reader = SqlDatabaseReader(sql_source) + orchestra_sql_db = OrchestraSqlDb(sql_reader) + + self._parse_from_orchestra_drupal_db(orchestra_sql_db) + + def _parse_from_orchestra_drupal_db(self, orchestra_sql_db): + """ + :param OrchestraSqlDb orchestra_sql_db: + """ + + concert_rows = orchestra_sql_db.query("SELECT nid,title FROM node WHERE type is 'concert'") + + for concert_row in concert_rows: + (nid, title)=concert_row + print(title) + nid = int(nid) + track_id_rows = orchestra_sql_db.query("SELECT field_tracks_target_id FROM field_revision_field_tracks WHERE entity_id=%d" % nid ) + for track_id_row in track_id_rows: + (field_tracks_target_id, ) = track_id_row + #print(field_tracks_target_id) + + track_rows = orchestra_sql_db.query("SELECT title FROM node WHERE nid=%d" % field_tracks_target_id) + (recording_title, ) = track_rows[0] + print("\t%s" % recording_title) + +mno_db = OrchestraDb('/Users/graffy/data/Perso/MeltingNotes_work.git/website/v2_drupal/melting_drupal.sql')