Beispiel #1
0
    def __init__(self, user):
        self.user = user

        #query user preferences.
        self._whatuser = prefs.readPref('what_user',user)
        self._whatpass = prefs.readPref('what_pass',user)


        #query plugin config.
        db = self.wrap()
        self._dbfile = db.config.filter_by(name = 'db_file').first().value
        self._htmlpath =db.config.filter_by( name = 'db_filepath').first().value
        self._path = db.config.filter_by(name = 'db_path').first().value
        self._whatcookiepath = os.path.join(self.whatPath(),self.user+'.cookie')
Beispiel #2
0
def register():

    print 'registering what.cd plugin'
    sb_dir = qc.query('scatterbrainz_dir')
    what_dir =os.path.join(sb_dir,'external/dbs/what')
    if not os.path.isdir(what_dir):
        os.mkdir(what_dir)
        
    print "Register what.cd for which SB user?"
    sb_user = raw_input('username: '******'what',sb_user):
        print "Plugin already registered for " + sb_user
        print "... exiting"
        exit(1)
    

    print "\nWhat.cd username?"
    what_user = raw_input('username: '******'password: '******'...configuring'
    wc.configure(what_user,what_pass,what_dir,sb_user)
    print '...initializing'
    wc.init(sb_user)
    
    import dbs.config.prefs as prefs
    w_user = prefs.readPref('what_user',sb_user)
    print 'Success! set up what.cd pluging for ' +sb_user+' with what.cd account: ' + w_user 
    pc.register('what',sb_user)
    exit(0)
Beispiel #3
0
 def wrap(self):
     from sqlalchemy.ext.sqlsoup import SqlSoup
     "A wrapper for a user's what db, at 'what_$user.sqlite'"
     dbfile = prefs.readPref('what_dbfile',self._plug.User())
     dbstr = 'sqlite:///'+dbfile
     print "Wrapping soup with dbfile: " + dbstr
     db = SqlSoup(dbstr)
     return db
Beispiel #4
0
    def _makeSoup(self):
        from sqlalchemy.ext.sqlsoup import SqlSoup
        
        "A wrapper for a user's what db, at 'what_$user.sqlite'"
        dbfile = prefs.readPref('what_dbfile',self._user)
        dbstr = 'sqlite:///'+dbfile
        print "Wrapping soup with dbfile: " + dbstr
        db._soup = SqlSoup(dbstr)#,session=scoped_session(sessionmaker(autoflush = True, expire_on_commit=False, autocommit=True)))
        print "Setting autoflush, autocommit = True for sqlite session"

        db._dbset = True
Beispiel #5
0
def insertPrefs(db,sb_user):
    """
Write preferences to the db database.
    """
    dbfile = prefs.readPref('what_dbfile',sb_user)
    dbpath = os.path.dirname(dbfile)
    db_filepath = os.path.join(dbpath,sb_user+'_files')
    if not os.path.isdir(db_filepath): os.mkdir(db_filepath)
    
    db.query("""
insert into config(name,value) values('db_path',:dbpath);
""",{'dbpath':dbpath})
    db.query("""
insert into config(name, value) values('db_file',:dbfile);
""",{'dbfile':dbfile})

    db.query("""
insert into config(name,value) values('db_filepath',:db_filepath);
""",{'db_filepath':db_filepath})
Beispiel #6
0
def getArtist(name):
    strname=name.lower()
    user = prefs.readPref('what_sb_user')
    wo= wh.openerForUser(user)
    o = wo.opener()
    f = o.open("http://what.cd/artist.php",urllib.urlencode({'artistname':strname}))
    artist_html = f.read()

    db = dbConnect(user)
    if db.exists("select * from artist where artist.name = :name",{'name':strname}):
        artid = db.queryToDict(
"""
select id 
from artist 
where artist.name = :name
"""
                               ,{'name':strname})
        
    else:
        arthtml

    return d
Beispiel #7
0
def init(sb_user):
    """
Initialize the plugin db.
    """
    dbfile = prefs.readPref('what_dbfile',sb_user)
    db = sqw.sqliteWrapper(dbfile)
    d = db.queryToDict('''select name from sqlite_master where type = 'table';''')
    for table in d:
        db.query("""drop table '""" + table['name'] + """';""")
    
    db.query("""
CREATE TABLE config(
id INTEGER PRIMARY KEY,
name TEXT UNIQUE,
value TEXT
)
""")

    insertPrefs(db,sb_user);

    db.query("""
CREATE TABLE artist(
id INTEGER PRIMARY KEY,
whatid INTEGER UNIQUE,
name TEXT
)""")
    db.query("""
CREATE TABLE release(
id INTEGER PRIMARY KEY,
whatid INTEGER UNIQUE,
name TEXT
)""")
    db.query("""
CREATE TABLE artist_gids(
id INTEGER PRIMARY KEY,
artist INTEGER,
gid TEXT,
FOREIGN KEY(artist) REFERENCES artist(id)
);""")
    db.query("""
CREATE TABLE release_gids(
id INTEGER PRIMARY KEY,
release INTEGER,
gid TEXT,
FOREIGN KEY(release) REFERENCES release(id)
);""")
    db.query("""
CREATE TABLE artist_html(
id INTEGER PRIMARY KEY,
artist INTEGER UNIQUE,
filename TEXT,
FOREIGN KEY(artist) REFERENCES artist(id)
)""")
    db.query("""
CREATE TABLE artist_release(
id INTEGER PRIMARY KEY,
artist INTEGER,
release INTEGER UNIQUE,
FOREIGN KEY(release) REFERENCES release(id),
FOREIGN KEY(artist) REFERENCES artist(id)
)""")
    db.query("""
CREATE TABLE release_html(
id INTEGER PRIMARY KEY,
release INTEGER UNIQUE,
filename TEXT,
FOREIGN KEY(release) REFERENCES release(id)
)""")
    db.commit()
    db.close()