All pastes #91507 Raw Edit

Anonymous

public text v1 · immutable
#91507 ·published 2006-07-18 17:56 UTC
rendered paste body
     def initItems
        artists = Array.new
        albums = Array.new
        genre = Array.new
        device_paths = Array.new

        collection = KDE::DCOPRef.new( 'amarok', 'collection' )
        [  { :dbresult=>collection.query( 'select * from album' ),  :indexed => albums }, 
           { :dbresult=>collection.query( 'select * from artist' ), :indexed => artists },
           { :dbresult=>collection.query( 'select * from genre' )  , :indexed => genre },
           { :dbresult=>collection.query( 'select id, lastmountpoint from devices' ), :indexed => device_paths } ].each { |h|
             0.step( h[ :dbresult ].size, 2 ) { |i|
                h[ :indexed ][ h[ :dbresult ][i].to_i ] = h[ :dbresult ][ i.to_i+1 ]
            }
        }
        columns =     [ "album, ", "artist, ", "genre, ", "url, ", "track, ", "title, ", "year, ", "length, ", "samplerate, ", "composer, ", "deviceid" ]
        @column_keys = [ :songalbum, :songartist, :songgenre, :url, :songtracknumber, :itemname, :songyear, :songtime, :songsamplerate,    :songcomposer, :deviceid ]
        bigquery = "SELECT #{columns.to_s} FROM tags"
        puts "here is the big query " + collection.inspect
        dbitems = collection.query( bigquery )
        @items = Array.new
        0.step( dbitems.size, columns.size ) { |overallIt|
            track = Hash.new
            0.step( 3, 1 ) { |columnIt|
                track[ @column_keys[columnIt] ] = collection[columnIt][:indexed][ dbitems[ overallIt + columnIt] ]
            }
            4.step( @column_keys.size, 1 ) { |columnIt|
               track[ @column_keys[columnIt] ] = dbitems[ overallIt + columnIt ]
            }
            @items.push(track)
        }
    end