64 lines
1.8 KiB
Python
64 lines
1.8 KiB
Python
|
'''
|
||
|
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')
|