def __update_db_3(db): current_path = Settings.get().path db.create_tables([Storage]) Storage.create(path=current_path, default=True) Settings.update(path="NOT_USED").execute() Settings.update(version=3).execute()
def load_file(track): """ Loads a given track into the player. :param track: track to be loaded """ global __current_track global __player if get_gst_player_state() == Gst.State.PLAYING: save_current_track_position() save_current_book_position(__current_track) __current_track = track emit_event("stop") __player.set_state(Gst.State.NULL) init() if cozy.control.filesystem_monitor.FilesystemMonitor().is_track_online( track): path = track.file else: path = OfflineCache().get_cached_path(track) if not path: path = track.file __player.set_property("uri", "file://" + path) __player.set_state(Gst.State.PAUSED) save_current_book_position(__current_track) Settings.update(last_played_book=__current_track.book).execute() Book.update(last_played=int(time.time())).where( Book.id == __current_track.book.id).execute() emit_event("track-changed", track)
def next_track(): """ Play the next track of the current book. Stops playback if there isn't any. """ global __current_track global __play_next album_tracks = get_tracks(get_current_track().book) current = get_current_track() index = list(album_tracks).index(current) next_track = None if index + 1 < len(album_tracks): next_track = album_tracks[index + 1] play_pause(None) save_current_track_position(0) if next_track: save_current_book_position(next_track) save_current_track_position(0, next_track) if __play_next: play_pause(next_track) else: load_file(next_track) __play_next = True else: stop() save_current_book_position(current, -1) unload() Settings.update(last_played_book=None).execute() emit_event("stop")
def __update_db_8(db): db.execute_sql('UPDATE track SET modified=0 WHERE crc32=1') migrator: SqliteMigrator = SqliteMigrator(db) migrate( migrator.drop_column("track", "crc32") ) Settings.update(version=8).execute()
def __update_db_4(db): migrator = SqliteMigrator(db) last_played = IntegerField(default=0) migrate( migrator.add_column('book', 'last_played', last_played), ) Settings.update(version=4).execute()
def __update_db_2(db): migrator = SqliteMigrator(db) playback_speed = FloatField(default=1.0) migrate( migrator.add_column('book', 'playback_speed', playback_speed), ) Settings.update(version=2).execute()
def clean_books(): """ Remove all books that have no tracks """ for book in Book.select(): if not get_track_for_playback(book): Book.update(position=0).where(Book.id == book.id).execute() if Track.select().where(Track.book == book).count() < 1: if Settings.get().last_played_book.id == book.id: Settings.update(last_played_book=None).execute() book.delete_instance()
def __update_db_6(db): migrator = SqliteMigrator(db) db.create_tables([OfflineCache]) external = BooleanField(default=False) offline = BooleanField(default=False) downloaded = BooleanField(default=False) migrate( migrator.add_column('storage', 'external', external), migrator.add_column('book', 'offline', offline), migrator.add_column('book', 'downloaded', downloaded) ) Settings.update(version=6).execute() import shutil shutil.rmtree(get_cache_dir())
def __update_db_7(db): import cozy.control.artwork_cache as artwork_cache artwork_cache.delete_artwork_cache() Settings.update(version=7).execute()
def __update_db_5(db): db.create_tables([StorageBlackList]) Settings.update(version=5).execute()