Hello community, here is the log from the commit of package cozy for openSUSE:Factory checked in at 2019-01-21 10:59:22 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/cozy (Old) and /work/SRC/openSUSE:Factory/.cozy.new.28833 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "cozy" Mon Jan 21 10:59:22 2019 rev:5 rq:666794 version:0.6.7 Changes: -------- --- /work/SRC/openSUSE:Factory/cozy/cozy.changes 2018-10-29 14:59:00.742027518 +0100 +++ /work/SRC/openSUSE:Factory/.cozy.new.28833/cozy.changes 2019-01-21 11:01:10.991210761 +0100 @@ -1,0 +2,12 @@ +Sat Jan 12 23:06:42 UTC 2019 - [email protected] + +- Update to 0.6.7: + * Fix: Cozy crashed on startup when prefering cover image files over embedded album art + +------------------------------------------------------------------- +Sat Jan 12 21:35:42 UTC 2019 - [email protected] + +- Update to 0.6.6: + * Fix: Cozy crashed on startup when prefering cover image files over embedded album art + +------------------------------------------------------------------- Old: ---- cozy-0.6.1b.tar.gz New: ---- cozy-0.6.7.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ cozy.spec ++++++ --- /var/tmp/diff_new_pack.yFo248/_old 2019-01-21 11:01:11.799209717 +0100 +++ /var/tmp/diff_new_pack.yFo248/_new 2019-01-21 11:01:11.803209712 +0100 @@ -17,7 +17,7 @@ Name: cozy -Version: 0.6.1b +Version: 0.6.7 Release: 0 Summary: Audio Book Player License: GPL-3.0-only ++++++ cozy-0.6.1b.tar.gz -> cozy-0.6.7.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cozy-0.6.1b/.travis.yml new/cozy-0.6.7/.travis.yml --- old/cozy-0.6.1b/.travis.yml 2018-10-10 23:29:43.000000000 +0200 +++ new/cozy-0.6.7/.travis.yml 2019-01-12 23:00:28.000000000 +0100 @@ -27,7 +27,7 @@ - env: DIST=juno install: - - npm install @elementaryos/houston + - npm i -g @elementaryos/houston script: - houston ci diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cozy-0.6.1b/README.md new/cozy-0.6.7/README.md --- old/cozy-0.6.1b/README.md 2018-10-10 23:29:43.000000000 +0200 +++ new/cozy-0.6.7/README.md 2019-01-12 23:00:28.000000000 +0100 @@ -1,54 +1,38 @@ # It's getting Cozy [](https://travis-ci.org/geigi/cozy) <span class="badge-patreon"><a href="https://patreon.com/geigi" title="Donate to this project using Patreon"><img src="https://img.shields.io/badge/patreon-donate-yellow.svg" alt="Patreon donate button" /></a></span> -[](https://aur.archlinux.org/packages/cozy-audiobooks/) -Cozy is a modern audio book player for Linux. +Cozy is a modern audiobook player for Linux and macOS.  -<p align="center"> - <a href="https://appcenter.elementary.io/com.github.geigi.cozy"> - <img src="https://appcenter.elementary.io/badge.svg" alt="Get it on AppCenter"> - </a> -</p> - -### Here are some of the current features: -- Import all your audiobooks into cozy to browse them comfortably -- Listen to your DRM free mp3, m4a (aac, ALAC, ...), flac, ogg and wav audio books -- Remembers your playback position -- Sleep timer! -- Playback speed control for each book individually -- Search your library -- Sort your audio books by author, reader & name -- Drag & Drop to import new audiobooks -- Add mulitple storage locations -- Offline Mode! This allows you to keep an audiobook on your internal storage if you store your audiobooks on an external or network drive. Perfect to listen to on the go! -- Mpris integration (Media keys & playback info for desktop environment) +## Here are some of the current features: +- **Import** your audiobooks into Cozy to browse them comfortably +- **Sort** your audio books by author, reader & name +- **Remembers** your **playback position** +- **Sleep timer** +- **Playback speed control** +- **Search** your library +- **Offline Mode!** This allows you to keep an audio book on your internal storage if you store your audiobooks on an external or network drive. Perfect for listening on the go! +- Add **mulitple storage locations** +- **Drag & Drop** to import new audio books +- Support for DRM free **mp3, m4a (aac, ALAC, ...), flac, ogg, wav** files +- Mpris integration (**Media keys** & playback info for desktop environment) - Developed on Fedora and tested under elementaryOS -## How can I get it? -### Flatpak -For most distributions you can use Flatpak to install and run cozy: <a href="https://flathub.org/repo/appstream/com.github.geigi.cozy.flatpakref">Flathub</a> -Or use the following commands: -``` -flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo -flatpak install --user flathub com.github.geigi.cozy -``` - -### elementaryOS -If you're running elementaryOS, you can get cozy from the <a href="https://appcenter.elementary.io/com.github.geigi.cozy">App Center</a>. - -### Arch Linux -Arch Linux users can find cozy under the name `cozy-audiobooks` in the AUR: -``` -$ pacaur -S cozy-audiobooks -``` - -### Ubuntu, Debian, openSUSE, Fedora repositories -If you prefer a custom repository - for Ubuntu, Debian, openSUSE and Fedora there are package repositories on the <a href="https://software.opensuse.org//download.html?project=home%3Ageigi&package=com.github.geigi.cozy">openSUSE Build Service</a>. +# Install +| elementaryOS | openSUSE | Arch Linux | Flatpak (other) | macOS | +|--------------|:----------:|:------------:|-----------------|:-------:| +| <a href="https://appcenter.elementary.io/com.github.geigi.cozy"><img src="https://appcenter.elementary.io/badge.svg" alt="Get it on AppCenter"></a> | <center><a href="https://software.opensuse.org/package/cozy">cozy</a> | <a href="https://aur.archlinux.org/packages/cozy-audiobooks/">cozy-audiobooks</a></center> | <a href='https://flathub.org/apps/details/com.github.geigi.cozy'><img width='150' alt='Download on Flathub' src='https://flathub.org/assets/badges/flathub-badge-en.png'/></a> | <center><a href="https://github.com/geigi/cozy/releases/download/0.6.4/cozy_macos_0.6.4_beta2.dmg">Beta 2</a></center> | + +## macOS +Cozy for macOS is currently in beta. It's tested on 10.14 Mojave so far. Known bugs: +- no integration in notification center or any other desktop integration really +- media keys are not working +- dark mode requires 2x switching in settings + is not loading automatically at startup +- large Cozy.app -If you like this project, consider supporting me on <a href="https://www.patreon.com/bePatron?u=8147127"> Patreon</a> :) +You can download it here: <a href="https://github.com/geigi/cozy/releases/download/0.6.4/cozy_macos_0.6.4_beta2.dmg">Cozy 0.6.4 beta2 for macOS</a> ## Requirements - `python3` @@ -94,7 +78,6 @@ ### I can't uninstall the Flatpak: - Try ``` flatpak uninstall com.github.geigi.cozy/x86_64/stable @@ -105,7 +88,7 @@ ``` Thanks to @Meresmata -### I have my audiobooks in a location that is not accessible in the Flatpak sandbox: +### I store my audiobooks in a location that is not accessible in the Flatpak sandbox: You can override the flatpak settings and allow access to a path (e.g. /media) like this: ``` flatpak --user override --filesystem=/media com.github.geigi.cozy @@ -142,6 +125,7 @@ ## Help me translate cozy! Cozy is on <a href="https://www.transifex.com/geigi/cozy/"> Transifex</a>, where anyone can contribute and translate. Can't find your language in the list? Let me know! +If you like this project, consider supporting me on <a href="https://www.patreon.com/bePatron?u=8147127"> Patreon</a> :) ---- [](https://codeclimate.com/github/geigi/cozy/maintainability) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cozy-0.6.1b/cozy/book_element.py new/cozy-0.6.7/cozy/book_element.py --- old/cozy-0.6.1b/cozy/book_element.py 2018-10-10 23:29:43.000000000 +0200 +++ new/cozy-0.6.7/cozy/book_element.py 2019-01-12 23:00:28.000000000 +0100 @@ -282,7 +282,7 @@ Refresh the internal book object from the database. """ try: - self.book = db.Book.get_by_id(self.book.id) + self.book = db.Book.get(db.Book.id == self.book.id) except: pass diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cozy-0.6.1b/cozy/book_overview.py new/cozy-0.6.7/cozy/book_overview.py --- old/cozy-0.6.1b/cozy/book_overview.py 2018-10-10 23:29:43.000000000 +0200 +++ new/cozy-0.6.7/cozy/book_overview.py 2019-01-12 23:00:28.000000000 +0100 @@ -58,7 +58,7 @@ if self.book and self.book.id == book.id: self.update_time() return - self.book = db.Book.get_by_id(book.id) + self.book = db.Book.get(db.Book.id == book.id) if self.ui.is_playing and self.ui.titlebar.current_book and self.book.id == self.ui.titlebar.current_book.id: self.play_book_button.set_image(self.pause_img) @@ -135,7 +135,7 @@ """ Hide/Show download elements depending on whether the book is on an external storage. """ - self.book = db.Book.get_by_id(self.book.id) + self.book = db.Book.get(db.Book.id == self.book.id) if self.switch_signal: self.download_switch.disconnect(self.switch_signal) if db.is_external(self.book): @@ -336,4 +336,4 @@ if event == "book-offline": self._set_book_download_status(True) elif event == "book-offline-removed": - self._set_book_download_status(False) \ No newline at end of file + self._set_book_download_status(False) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cozy-0.6.1b/cozy/db.py new/cozy-0.6.7/cozy/db.py --- old/cozy-0.6.1b/cozy/db.py 2018-10-10 23:29:43.000000000 +0200 +++ new/cozy-0.6.7/cozy/db.py 2019-01-12 23:00:28.000000000 +0100 @@ -130,16 +130,19 @@ else: tmp_db = SqliteDatabase(os.path.join(data_dir, "cozy.db")) if PeeweeVersion[0] == '2': - with tmp_db.connection_context(): - tmp_db.create_tables([Track, Book, Settings, ArtworkCache, Storage, StorageBlackList, OfflineCache], True) + tmp_db.create_tables([Track, Book, Settings, ArtworkCache, Storage, StorageBlackList, OfflineCache], True) else: with tmp_db.connection_context(): tmp_db.create_tables([Track, Book, Settings, ArtworkCache, Storage, StorageBlackList, OfflineCache]) # this is necessary to ensure that the tables have indeed been created if tmp_db: - while not tmp_db.table_exists("settings"): - time.sleep(0.01) + if PeeweeVersion[0] == '2': + while not Settings.table_exists(): + time.sleep(0.01) + else: + while not tmp_db.table_exists("settings"): + time.sleep(0.01) try: db.connect() @@ -385,7 +388,12 @@ # First test for version 1 try: next(c for c in db.get_columns("settings") if c.name == "version") - except StopIteration as e: + except Exception as e: + if len(db.get_tables()) == 0: + if os.path.exists(os.path.join(data_dir, "cozy.db")): + os.remove(os.path.join(data_dir, "cozy.db")) + os.remove(os.path.join(data_dir, "cozy.db-shm")) + os.remove(os.path.join(data_dir, "cozy.db-wal")) update_db_1() version = Settings.get().version @@ -573,4 +581,4 @@ global db log.info("Closing.") - db.close() \ No newline at end of file + db.close() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cozy-0.6.1b/cozy/importer.py new/cozy-0.6.7/cozy/importer.py --- old/cozy-0.6.1b/cozy/importer.py 2018-10-10 23:29:43.000000000 +0200 +++ new/cozy-0.6.7/cozy/importer.py 2019-01-12 23:00:28.000000000 +0100 @@ -18,6 +18,7 @@ from mutagen.mp3 import MP3 from mutagen.mp4 import MP4 from mutagen.oggvorbis import OggVorbis +from peewee import __version__ as PeeweeVersion from gi.repository import Gdk, GLib, Gst import cozy.db @@ -179,9 +180,13 @@ if tracks is None or len(tracks) < 1: return - fields = [cozy.db.Track.name, cozy.db.Track.number, cozy.db.Track.disk, cozy.db.Track.position, cozy.db.Track.book, cozy.db.Track.file, cozy.db.Track.length, cozy.db.Track.modified, cozy.db.Track.crc32] - data = list((t.name, t.track_number, t.disk, t.position, t.book, t.file, t.length, t.modified, t.crc32) for t in tracks) - cozy.db.Track.insert_many(data, fields=fields).execute() + if PeeweeVersion[0] == '2': + data = list({"name": t.name, "number": t.track_number, "disk": t.disk, "position": t.position, "book": t.book, "file": t.file, "length": t.length, "modified": t.modified, "crc32": t.crc32} for t in tracks) + cozy.db.Track.insert_many(data).execute() + else: + fields = [cozy.db.Track.name, cozy.db.Track.number, cozy.db.Track.disk, cozy.db.Track.position, cozy.db.Track.book, cozy.db.Track.file, cozy.db.Track.length, cozy.db.Track.modified, cozy.db.Track.crc32] + data = list((t.name, t.track_number, t.disk, t.position, t.book, t.file, t.length, t.modified, t.crc32) for t in tracks) + cozy.db.Track.insert_many(data, fields=fields).execute() def rebase_location(ui, oldPath, newPath): """ @@ -705,4 +710,4 @@ except Exception as e: log.warning(e) - return crc_file \ No newline at end of file + return crc_file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cozy-0.6.1b/cozy/offline_cache.py new/cozy-0.6.7/cozy/offline_cache.py --- old/cozy-0.6.1b/cozy/offline_cache.py 2018-10-10 23:29:43.000000000 +0200 +++ new/cozy-0.6.7/cozy/offline_cache.py 2019-01-12 23:00:28.000000000 +0100 @@ -164,10 +164,10 @@ if self.thread.stopped(): break - new_item = cozy.db.OfflineCache.get_by_id(item.id) + new_item = cozy.db.OfflineCache.get(cozy.db.OfflineCache.id == item.id) if self.current_book_processing != new_item.track.book.id: - self.update_book_download_status(cozy.db.Book.get_by_id(self.current_book_processing)) + self.update_book_download_status(cozy.db.Book.get(cozy.db.Book.id == self.current_book_processing)) self.current_book_processing = new_item.track.book.id if not new_item.copied and os.path.exists(new_item.track.file): @@ -196,7 +196,7 @@ self.queue.remove(item) if self.current_book_processing: - self.update_book_download_status(cozy.db.Book.get_by_id(self.current_book_processing)) + self.update_book_download_status(cozy.db.Book.get(cozy.db.Book.id == self.current_book_processing)) self.current = None Gdk.threads_add_idle(GLib.PRIORITY_DEFAULT_IDLE, self.ui.switch_to_playing) @@ -258,4 +258,4 @@ This method reacts to storage settings changes. """ if event == "storage-removed" or event == "external-storage-removed": - self.remove_all_for_storage(message) \ No newline at end of file + self.remove_all_for_storage(message) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cozy-0.6.1b/cozy/playback_speed.py new/cozy-0.6.7/cozy/playback_speed.py --- old/cozy-0.6.1b/cozy/playback_speed.py 2018-10-10 23:29:43.000000000 +0200 +++ new/cozy-0.6.7/cozy/playback_speed.py 2019-01-12 23:00:28.000000000 +0100 @@ -60,4 +60,4 @@ track = message speed = db.Book.select().where(db.Book.id == track.book.id).get().playback_speed self.speed_scale.set_value(speed) - self.__set_playback_speed(None) \ No newline at end of file + self.__set_playback_speed(None) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cozy-0.6.1b/cozy/player.py new/cozy-0.6.7/cozy/player.py --- old/cozy-0.6.1b/cozy/player.py 2018-10-10 23:29:43.000000000 +0200 +++ new/cozy-0.6.7/cozy/player.py 2019-01-12 23:00:28.000000000 +0100 @@ -148,7 +148,7 @@ """ global __current_track if __current_track: - return cozy.db.Track.get_by_id(__current_track.id) + return cozy.db.Track.get(cozy.db.Track.id == __current_track.id) else: return None @@ -208,11 +208,11 @@ save_current_track_position() else: __player.set_state(Gst.State.PLAYING) - emit_event("play", cozy.db.Track.get_by_id(__current_track.id)) + emit_event("play", cozy.db.Track.get(cozy.db.Track.id == __current_track.id)) else: load_file(track) __player.set_state(Gst.State.PLAYING) - emit_event("play", cozy.db.Track.get_by_id(__current_track.id)) + emit_event("play", cozy.db.Track.get(cozy.db.Track.id == __current_track.id)) __set_speed = True diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cozy-0.6.1b/cozy/settings.py new/cozy-0.6.7/cozy/settings.py --- old/cozy-0.6.1b/cozy/settings.py 2018-10-10 23:29:43.000000000 +0200 +++ new/cozy-0.6.7/cozy/settings.py 2019-01-12 23:00:28.000000000 +0100 @@ -296,9 +296,12 @@ This is needed because the binding gets called after this function. Then refresh the artwork cache. """ - tools.get_glib_settings().set_boolean("prefer-external-cover", state) - artwork_cache.delete_artwork_cache() - self.ui.refresh_content() + # We have to test if everything is initialized before triggering the refresh + # otherwise this might be just the initial call when starting up + if self.ui.is_initialized: + tools.get_glib_settings().set_boolean("prefer-external-cover", state) + artwork_cache.delete_artwork_cache() + self.ui.refresh_content() def __on_force_refresh_clicked(self, widget): """ @@ -460,4 +463,4 @@ type_image.set_from_icon_name(icon_name, Gtk.IconSize.LARGE_TOOLBAR) type_image.set_margin_right(5) - return type_image \ No newline at end of file + return type_image diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cozy-0.6.1b/cozy/ui.py new/cozy-0.6.7/cozy/ui.py --- old/cozy-0.6.1b/cozy/ui.py 2018-10-10 23:29:43.000000000 +0200 +++ new/cozy-0.6.7/cozy/ui.py 2019-01-12 23:00:28.000000000 +0100 @@ -43,6 +43,7 @@ dialog_open = False # Are we currently playing? is_playing = False + is_initialized = False first_play = True __inhibit_cookie = None @@ -63,6 +64,8 @@ self.check_for_tracks() self.__load_last_book() + self.is_initialized = True + def startup(self): self.__init_resources() self.__init_css() @@ -395,9 +398,20 @@ If there aren't display a welcome screen. """ if db.books().count() < 1: + path = "" if db.Storage.select().count() > 0: path = db.Storage.select().where(db.Storage.default == True).get().path - self.no_media_file_chooser.set_current_folder(path) + + + if not path: + path = os.path.join(os.path.expanduser("~"), _("Audiobooks")) + + if not os.path.exists(path): + os.mkdir(path) + + db.Storage.create(path=path, default=True) + + self.no_media_file_chooser.set_current_folder(path) self.main_stack.props.visible_child_name = "no_media" self.block_ui_buttons(True) self.titlebar.stop() @@ -790,7 +804,7 @@ selected_stack = self.sort_stack.props.visible_child_name if tools.get_glib_settings().get_boolean("hide-offline"): if not self.fs_monitor.is_book_online(book.book): - offline_available = db.Book.get_by_id(book.book.id).downloaded + offline_available = db.Book.get(db.Book.id == book.book.id).downloaded else: offline_available = True else: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cozy-0.6.1b/data/com.github.geigi.cozy.appdata.xml new/cozy-0.6.7/data/com.github.geigi.cozy.appdata.xml --- old/cozy-0.6.1b/data/com.github.geigi.cozy.appdata.xml 2018-10-10 23:29:43.000000000 +0200 +++ new/cozy-0.6.7/data/com.github.geigi.cozy.appdata.xml 2019-01-12 23:00:28.000000000 +0100 @@ -53,6 +53,36 @@ <url type="donation">https://www.patreon.com/geigi</url> <update_contact>[email protected]</update_contact> <releases> + <release version="0.6.7" timestamp="1547330415"> + <description> + <ul> + <li>Fix: Cozy crashed on startup when prefering cover image files over embedded album art</li> + </ul> + </description> + </release> + <release version="0.6.6" timestamp="1547324279"> + <description> + <ul> + <li>Fix: Cozy crashed on startup when prefering cover image files over embedded album art</li> + </ul> + </description> + </release> + <release version="0.6.5" timestamp="1543573312"> + <description> + <ul> + <li>Fixed startup crash on elementaryOS 5.0 Juno</li> + </ul> + </description> + </release> + <release version="0.6.4" timestamp="1540414183"> + <description> + <ul> + <li>Support for elementaryOS 5.0 Juno</li> + <li>Fixed a bug which prevented cozy from automatically playing the next chapter</li> + <li>Updated translations</li> + </ul> + </description> + </release> <release version="0.6.1b" timestamp="1539206841"> <description> <ul> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cozy-0.6.1b/data/ui/application.css new/cozy-0.6.7/data/ui/application.css --- old/cozy-0.6.1b/data/ui/application.css 2018-10-10 23:29:43.000000000 +0200 +++ new/cozy-0.6.7/data/ui/application.css 2019-01-12 23:00:28.000000000 +0100 @@ -19,6 +19,10 @@ font-size: 110%; } +.sort_switcher_element > .radio { + min-width: 100px; +} + .no_padding { padding: 0px; -} \ No newline at end of file +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cozy-0.6.1b/docs/README.md new/cozy-0.6.7/docs/README.md --- old/cozy-0.6.1b/docs/README.md 2018-10-10 23:29:43.000000000 +0200 +++ new/cozy-0.6.7/docs/README.md 2019-01-12 23:00:28.000000000 +0100 @@ -1,81 +1,48 @@ -All your audio books in one place! Cozy is an audio book player which let's you manage and play back your collection. +# It's getting Cozy + +Cozy is a modern audiobook player for Linux and macOS.  -# Features: -- **Import** all your audio books into Cozy to browse them comfortably +## Here are some of the current features: +- **Import** your audiobooks into Cozy to browse them comfortably - **Sort** your audio books by author, reader & name - **Remembers** your **playback position** - **Sleep timer** - **Playback speed control** - **Search** your library -- **Offline Mode!** This allows you to keep an audio book on your internal storage if you store your audiobooks on an external or network drive. Perfect to listen on the go! +- **Offline Mode!** This allows you to keep an audio book on your internal storage if you store your audiobooks on an external or network drive. Perfect for listening on the go! - Add **mulitple storage locations** - **Drag & Drop** to import new audio books - Support for DRM free **mp3, m4a (aac, ALAC, ...), flac, ogg, wav** files - Mpris integration (**Media keys** & playback info for desktop environment) - Developed on Fedora and tested under elementaryOS -# How can I get it? -## Flatpak -For most distributions you can use Flatpak to install and run Cozy: <a href="https://flathub.org/repo/appstream/com.github.geigi.cozy.flatpakref">Flathub</a> - -Or use the following commands: -``` -flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo -flatpak install --user flathub com.github.geigi.cozy -``` - -## elementaryOS -If you're running elementaryOS, you can get Cozy from the <a href="https://appcenter.elementary.io/com.github.geigi.cozy">App Center</a>. - -## Arch Linux -Arch Linux users can find Cozy under the name `cozy-audiobooks` in the AUR: -``` -$ pacaur -S cozy-audiobooks -``` - -## Ubuntu, Debian, openSUSE, Fedora repositories -If you prefer a custom repository - for Ubuntu, Debian, openSUSE and Fedora there are package repositories on the <a href="https://software.opensuse.org//download.html?project=home%3Ageigi&package=com.github.geigi.cozy">openSUSE Build Service</a>. - -If you like this project, consider supporting me on <a href="https://www.patreon.com/bePatron?u=8147127"> Patreon</a> :) +# Install -# Changelog -## 0.6.1 -- Improved artwork image quality -- The book overview now supports multiple disks in audiobooks -- The file not found window will only open when the file is on the internal drive -- Fixed a typo -- Support for elementaryOS 5.0 -- Updated translations - -## 0.6.0 -- **Offline Mode!** If your audiobooks are on an external or network drive, you can switch the download button to keep a local cached copy of the book to listen to on the go. To enable this feature you have to set your storage location to external in the settings. -- Detect online/offline storage devices -- Option to hide unavailable books -- Support for **wav** files -- Support for audio files that have no tags at all -- You can mark books as read using the right click menu -- New setting: Prefer cover image file over embedded covers -- Redesigned Sleep Timer -- More Sleep Timer: You can now stop the playback after the current chapter -- And even more: Fadeout on timer end (in settings) -- Redesigned hello screen and settings -- Fixed bug where cozy would not start on GTK < 3.22 -- If no author field is present, the reader field will be used as author. This requires a force reimport (settings) on already imported books. -- Optimizations under the hood +| elementaryOS | openSUSE | Arch Linux | Flatpak (other) | macOS | +|--------------|:----------:|:------------:|-----------------|:-------:| +| {::nomarkdown}<a href="https://appcenter.elementary.io/com.github.geigi.cozy"><img src="https://appcenter.elementary.io/badge.svg" alt="Get it on AppCenter"></a>{:/} | {::nomarkdown}<center><a href="https://software.opensuse.org/package/cozy">cozy</a>{:/} | {::nomarkdown}<a href="https://aur.archlinux.org/packages/cozy-audiobooks/">cozy-audiobooks</a></center>{:/} | {::nomarkdown}<a href='https://flathub.org/apps/details/com.github.geigi.cozy'><img width='150' alt='Download on Flathub' src='https://flathub.org/assets/badges/flathub-badge-en.png'/></a>{:/} | {::nomarkdown}<center><a href="https://github.com/geigi/cozy/releases/download/0.6.4/cozy_macos_0.6.4_beta2.dmg">Beta 2</a></center>{:/} | + +## macOS +Cozy for macOS is currently in beta. It's tested on 10.14 Mojave so far. Known bugs: +- no integration in notification center or any other desktop integration really +- media keys are not working +- dark mode requires 2x switching in settings + is not loading automatically at startup +- large Cozy.app +You can download it here: <a href="https://github.com/geigi/cozy/releases/download/0.6.4/cozy_macos_0.6.4_beta2.dmg">Cozy 0.6.4 beta2 for macOS</a> -# Q&A -## I have imported wrong files and cannot get rid of them: +## Q&A +### I have imported wrong files and cannot get rid of them: Delete the following folders to reset cozy (this will loose all saved progress): ``` ~/.local/share/cozy ~/.cache/cozy ``` -## I can't uninstall the Flatpak: +### I can't uninstall the Flatpak: Try ``` flatpak uninstall com.github.geigi.cozy/x86_64/stable @@ -86,12 +53,13 @@ ``` Thanks to @Meresmata -# Help me translate cozy! -Cozy is on <a href="https://www.transifex.com/geigi/cozy/"> Transifex</a>, where anyone can contribute and translate. Can't find your language in the list? Let me know! - -# A big thanks -To the creators from <a href="https://wiki.gnome.org/Apps/Lollypop">Lollypop</a>. Their code helped a lot to learn Python and GTK development. +### I store my audiobooks in a location that is not accessible in the Flatpak sandbox: +You can override the flatpak settings and allow access to a path (e.g. /media) like this: +``` +flatpak --user override --filesystem=/media com.github.geigi.cozy +``` +## A big thanks To the contributors on GitHub: - oleg-krv - AsavarTzeth @@ -118,3 +86,11 @@ - trampover To nedrichards for the Flatpak. + +## Help me translate cozy! +Cozy is on <a href="https://www.transifex.com/geigi/cozy/"> Transifex</a>, where anyone can contribute and translate. Can't find your language in the list? Let me know! + +If you like this project, consider supporting me on <a href="https://www.patreon.com/bePatron?u=8147127"> Patreon</a> :) + +---- +[](https://codeclimate.com/github/geigi/cozy/maintainability) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cozy-0.6.1b/docs/_config.yml new/cozy-0.6.7/docs/_config.yml --- old/cozy-0.6.1b/docs/_config.yml 2018-10-10 23:29:43.000000000 +0200 +++ new/cozy-0.6.7/docs/_config.yml 2019-01-12 23:00:28.000000000 +0100 @@ -1,4 +1,4 @@ theme: jekyll-theme-cayman title: Cozy description: Audiobooks on Linux -show_downloads: "true" +show_downloads: "true" \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cozy-0.6.1b/docs/_layouts/default.html new/cozy-0.6.7/docs/_layouts/default.html --- old/cozy-0.6.1b/docs/_layouts/default.html 2018-10-10 23:29:43.000000000 +0200 +++ new/cozy-0.6.7/docs/_layouts/default.html 2019-01-12 23:00:28.000000000 +0100 @@ -24,6 +24,7 @@ {% if site.github.is_project_page %} <p align="center"> <a style="margin-bottom: 35px;" href="{{ site.github.repository_url }}" class="btn">View on GitHub</a> + <a style="margin-bottom: 35px; margin-left: 10px" href="https://github.com/geigi/cozy/releases/download/0.6.4/cozy_macos_0.6.4_beta2.dmg" class="btn">Download for macOS</a> </p> {% endif %} {% if site.show_downloads %} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cozy-0.6.1b/meson.build new/cozy-0.6.7/meson.build --- old/cozy-0.6.1b/meson.build 2018-10-10 23:29:43.000000000 +0200 +++ new/cozy-0.6.7/meson.build 2019-01-12 23:00:28.000000000 +0100 @@ -1,5 +1,5 @@ project('cozy', - version: '0.6.1b', + version: '0.6.7', meson_version: '>= 0.40.0') project_name = 'cozy' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cozy-0.6.1b/po/fi.po new/cozy-0.6.7/po/fi.po --- old/cozy-0.6.1b/po/fi.po 2018-10-10 23:29:43.000000000 +0200 +++ new/cozy-0.6.7/po/fi.po 2019-01-12 23:00:28.000000000 +0100 @@ -27,15 +27,15 @@ #: cozy/book_element.py:213 msgid "Currently offline" -msgstr "" +msgstr "Yhteydetön" #: cozy/book_element.py:319 msgid "Mark as read" -msgstr "" +msgstr "Merkitse luetuksi" #: cozy/book_element.py:322 msgid "Open in file browser" -msgstr "" +msgstr "Avaa tiedostoselaimessa" #: cozy/book_element.py:325 msgid "Remove from library" @@ -47,11 +47,11 @@ #: cozy/book_overview.py:222 msgid "Downloaded" -msgstr "" +msgstr "Ladattu" #: cozy/book_overview.py:225 data/ui/main_window.ui:1328 msgid "Download" -msgstr "" +msgstr "Lataa" #: cozy/file_not_found_dialog.py:66 msgid "All files" @@ -59,7 +59,7 @@ #: cozy/offline_cache.py:175 msgid "Copying" -msgstr "" +msgstr "Kopioidaan" #: cozy/search_results.py:72 msgid "Jump to author " @@ -168,15 +168,15 @@ #: cozy/sleep_timer.py:129 msgid "Off" -msgstr "" +msgstr "Pois" #: cozy/settings.py:413 cozy/settings.py:456 msgid "External drive" -msgstr "" +msgstr "Ulkoinen asema" #: cozy/settings.py:416 cozy/settings.py:459 msgid "Internal drive" -msgstr "" +msgstr "Sisäinen asema" #: cozy/settings.py:443 msgid "Changing audio book location..." @@ -184,7 +184,7 @@ #: cozy/disk_element.py:26 msgid "Disc" -msgstr "" +msgstr "Levy" #: data/ui/main_window.ui:71 msgid "Rewind 30 seconds" @@ -359,17 +359,19 @@ #: data/ui/main_window.ui:910 msgid "External or Network drive?" -msgstr "" +msgstr "Ulkoinen tai verkkoasema?" #: data/ui/main_window.ui:927 msgid "Are your audiobooks stored on an external or network drive?" -msgstr "" +msgstr "Ovatko äänikirjat ulkoisella tai verkkoasemalla?" #: data/ui/main_window.ui:942 msgid "" "If they are you can enable offline mode for a book in the book overview\n" "This keeps a local copy of the book that you can listen to on the go" msgstr "" +"Jos ne ovat, voit kytkeä yhteydettömän tilan kirjan esittelyssä\n" +"Tämä säilyttää kopion kirjasta paikallisesti matkakuuntelua varten" #: data/ui/main_window.ui:968 data/ui/main_window.ui:1025 msgid "Auto scan switch" @@ -386,7 +388,7 @@ #: data/ui/main_window.ui:1086 msgid "Drag your audiobooks into cozy and they will be automatically imported" -msgstr "" +msgstr "Vedä äänikirjasi Cozyyn ja ne tuodaan automaattisesti" #: data/ui/main_window.ui:1107 msgid "Location of your audiobooks" @@ -394,13 +396,15 @@ #: data/ui/main_window.ui:1128 msgid "Set Audiobooks Directory" -msgstr "" +msgstr "Aseta äänikirjahakemisto" #: data/ui/main_window.ui:1145 msgid "" "Load audiobooks from a directory, network drive or an external disk\n" "You can add more storage locations later in the settings" msgstr "" +"Lataa äänikirjoja hakemistosta, verkkoasemalta tai ulkoiselta asemalta\n" +"Voit myöhemmin lisätä tallennussijainteja asetuksissa" #: data/ui/main_window.ui:1376 msgid "Remaining" @@ -502,7 +506,7 @@ #: data/ui/settings.ui:258 msgid "Display the whole book instead of the current chapter" -msgstr "" +msgstr "Näytä koko kirja tämänhetkisen kappaleen sijaan" #: data/ui/settings.ui:321 msgid "Appearance" @@ -522,11 +526,11 @@ #: data/ui/settings.ui:611 msgid "Fadeout" -msgstr "" +msgstr "Häivitys" #: data/ui/settings.ui:672 msgid "Fadeout duration" -msgstr "" +msgstr "Häivytyksen kesto" #: data/ui/settings.ui:745 msgid "Behaviour" @@ -534,15 +538,15 @@ #: data/ui/settings.ui:772 msgid "Artwork" -msgstr "" +msgstr "Kansitaide" #: data/ui/settings.ui:824 msgid "Prefer external images over embedded cover" -msgstr "" +msgstr "Suosi ulkoisia kuvia upotetun kannen sijaan" #: data/ui/settings.ui:837 msgid "Use images (cover.jpg, *.png, ...) when available" -msgstr "" +msgstr "Käytä kuvia (cover.jpg, *.png, ...) jos saatavilla" #: data/ui/settings.ui:920 msgid "Audio books location" @@ -562,7 +566,7 @@ #: data/ui/settings.ui:1055 msgid "Toggle this storage location to be internal/external." -msgstr "" +msgstr "Aseta tallennussijainti sisäiseksi tai ulkoiseksi." #: data/ui/settings.ui:1081 msgid "Set as default storage location for new audiobooks" @@ -586,32 +590,34 @@ #: data/ui/settings.ui:1317 msgid "Database" -msgstr "" +msgstr "Tietokanta" #: data/ui/settings.ui:1369 msgid "Force refresh the database" -msgstr "" +msgstr "Pakota tietokannan päivitys" #: data/ui/settings.ui:1382 msgid "This will force update the metadata of all imported books" -msgstr "" +msgstr "Tämä pakottaa metatiedon päivityksen kaikille tuoduille kirjoille" #: data/ui/settings.ui:1402 msgid "Force refresh" -msgstr "" +msgstr "Pakota päivitys" #: data/ui/settings.ui:1470 msgid "By request" -msgstr "" +msgstr "Pyynnöstä" #: data/ui/settings.ui:1523 msgid "Use crc32 checksum for file modification detection" -msgstr "" +msgstr "Käytä CRC32-tarkistussummaa tiedostonmuokkauksen tunnistamiseen" #: data/ui/settings.ui:1536 msgid "" "Only recommended if cozy doesn't detect file modifications while scanning" msgstr "" +"Suositellaan vain jos Cozy ei tunnista tiedostonmuokkauksia skannauksen " +"aikana" #: data/ui/settings.ui:1611 msgid "Advanced" @@ -647,7 +653,7 @@ #: data/ui/timer_popover.ui:39 msgid "Stop after current chapter" -msgstr "" +msgstr "Pysäytä tämänhtekisen kappaleen jälkeen" #: data/ui/timer_popover.ui:76 msgid "Timer duration" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cozy-0.6.1b/po/fr.po new/cozy-0.6.7/po/fr.po --- old/cozy-0.6.1b/po/fr.po 2018-10-10 23:29:43.000000000 +0200 +++ new/cozy-0.6.7/po/fr.po 2019-01-12 23:00:28.000000000 +0100 @@ -27,15 +27,15 @@ #: cozy/book_element.py:213 msgid "Currently offline" -msgstr "" +msgstr "Hors-ligne" #: cozy/book_element.py:319 msgid "Mark as read" -msgstr "" +msgstr "Marquer comme lu" #: cozy/book_element.py:322 msgid "Open in file browser" -msgstr "" +msgstr "Ouvrir dans le navigateur" #: cozy/book_element.py:325 msgid "Remove from library" @@ -47,11 +47,11 @@ #: cozy/book_overview.py:222 msgid "Downloaded" -msgstr "" +msgstr "Téléchargement terminé" #: cozy/book_overview.py:225 data/ui/main_window.ui:1328 msgid "Download" -msgstr "" +msgstr "Téléchargement" #: cozy/file_not_found_dialog.py:66 msgid "All files" @@ -59,7 +59,7 @@ #: cozy/offline_cache.py:175 msgid "Copying" -msgstr "" +msgstr "Copie" #: cozy/search_results.py:72 msgid "Jump to author " @@ -168,15 +168,15 @@ #: cozy/sleep_timer.py:129 msgid "Off" -msgstr "" +msgstr "Off" #: cozy/settings.py:413 cozy/settings.py:456 msgid "External drive" -msgstr "" +msgstr "Stockage externe" #: cozy/settings.py:416 cozy/settings.py:459 msgid "Internal drive" -msgstr "" +msgstr "Stockage interne" #: cozy/settings.py:443 msgid "Changing audio book location..." @@ -184,7 +184,7 @@ #: cozy/disk_element.py:26 msgid "Disc" -msgstr "" +msgstr "Disque" #: data/ui/main_window.ui:71 msgid "Rewind 30 seconds" @@ -256,7 +256,7 @@ #: data/ui/main_window.ui:318 msgid "Position of the current part in seconds" -msgstr "Position dans le chapitre courant (sec)" +msgstr "Position dans le chapitre courant en secondes" #: data/ui/main_window.ui:336 msgid "Remaining time" @@ -360,17 +360,20 @@ #: data/ui/main_window.ui:910 msgid "External or Network drive?" -msgstr "" +msgstr "Stockage externe ou via le réseau" #: data/ui/main_window.ui:927 msgid "Are your audiobooks stored on an external or network drive?" msgstr "" +"Vos livres audio sont-ils stockés sur un support externe ou sur le réseau ?" #: data/ui/main_window.ui:942 msgid "" "If they are you can enable offline mode for a book in the book overview\n" "This keeps a local copy of the book that you can listen to on the go" msgstr "" +"Si il le sont vous pouvez activer le mode hors-ligne dans l'aperçu de votre livre\n" +"Cette action conservera une copie locale de votre livre audio" #: data/ui/main_window.ui:968 data/ui/main_window.ui:1025 msgid "Auto scan switch" @@ -388,6 +391,7 @@ #: data/ui/main_window.ui:1086 msgid "Drag your audiobooks into cozy and they will be automatically imported" msgstr "" +"Faite glisser vos livres audio directement dans cozy pour les importer" #: data/ui/main_window.ui:1107 msgid "Location of your audiobooks" @@ -395,13 +399,15 @@ #: data/ui/main_window.ui:1128 msgid "Set Audiobooks Directory" -msgstr "" +msgstr "Sélectionner un dossier pour vos livres audio." #: data/ui/main_window.ui:1145 msgid "" "Load audiobooks from a directory, network drive or an external disk\n" "You can add more storage locations later in the settings" msgstr "" +"Charger vos livres audio depuis un dossier local, depuis le réseau ou un stockage externe\n" +"Vous pourrez ajouter d'autres emplacement plus tard dans les paramètres" #: data/ui/main_window.ui:1376 msgid "Remaining" @@ -505,7 +511,7 @@ #: data/ui/settings.ui:258 msgid "Display the whole book instead of the current chapter" -msgstr "" +msgstr "Afficher l'intégralité du livre au lieu d'afficher le chapitre actuel" #: data/ui/settings.ui:321 msgid "Appearance" @@ -525,11 +531,11 @@ #: data/ui/settings.ui:611 msgid "Fadeout" -msgstr "" +msgstr "Fondu de transition" #: data/ui/settings.ui:672 msgid "Fadeout duration" -msgstr "" +msgstr "Durée du fondu de transition" #: data/ui/settings.ui:745 msgid "Behaviour" @@ -537,15 +543,17 @@ #: data/ui/settings.ui:772 msgid "Artwork" -msgstr "" +msgstr "Artwork" #: data/ui/settings.ui:824 msgid "Prefer external images over embedded cover" -msgstr "" +msgstr "Prendre une image externe au lieu de la couverture intégrée" #: data/ui/settings.ui:837 msgid "Use images (cover.jpg, *.png, ...) when available" msgstr "" +"Utiliser des images (cover.jpg, *.png, ...) lorsque celles-ci sont " +"disponibles" #: data/ui/settings.ui:920 msgid "Audio books location" @@ -565,7 +573,7 @@ #: data/ui/settings.ui:1055 msgid "Toggle this storage location to be internal/external." -msgstr "" +msgstr "Basculer d'état interne / externe pour cet emplacement" #: data/ui/settings.ui:1081 msgid "Set as default storage location for new audiobooks" @@ -589,32 +597,36 @@ #: data/ui/settings.ui:1317 msgid "Database" -msgstr "" +msgstr "Base de donnée" #: data/ui/settings.ui:1369 msgid "Force refresh the database" -msgstr "" +msgstr "Rafraîchir la base de donnée" #: data/ui/settings.ui:1382 msgid "This will force update the metadata of all imported books" msgstr "" +"Cela va forcer la mise à jours de toutes les informations complémentaires de" +" tous les livres importés" #: data/ui/settings.ui:1402 msgid "Force refresh" -msgstr "" +msgstr "Forcer le rafraîchissement" #: data/ui/settings.ui:1470 msgid "By request" -msgstr "" +msgstr "Par requête" #: data/ui/settings.ui:1523 msgid "Use crc32 checksum for file modification detection" -msgstr "" +msgstr "Utiliser crc32 checksum for détecter la modification de fichier" #: data/ui/settings.ui:1536 msgid "" "Only recommended if cozy doesn't detect file modifications while scanning" msgstr "" +"Recommandé uniquement dans le cas où Cozy ne détecterais pas une " +"modification de fichier pendant le scan" #: data/ui/settings.ui:1611 msgid "Advanced" @@ -650,7 +662,7 @@ #: data/ui/timer_popover.ui:39 msgid "Stop after current chapter" -msgstr "" +msgstr "Arrêter la lecture à la fin de ce chapitre" #: data/ui/timer_popover.ui:76 msgid "Timer duration" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cozy-0.6.1b/po/it.po new/cozy-0.6.7/po/it.po --- old/cozy-0.6.1b/po/it.po 2018-10-10 23:29:43.000000000 +0200 +++ new/cozy-0.6.7/po/it.po 2019-01-12 23:00:28.000000000 +0100 @@ -184,7 +184,7 @@ #: cozy/disk_element.py:26 msgid "Disc" -msgstr "" +msgstr "DIsc" #: data/ui/main_window.ui:71 msgid "Rewind 30 seconds" @@ -509,7 +509,7 @@ #: data/ui/settings.ui:258 msgid "Display the whole book instead of the current chapter" -msgstr "" +msgstr "Mostra l'intero libro invece che il capitolo corrente" #: data/ui/settings.ui:321 msgid "Appearance" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cozy-0.6.1b/po/nl.po new/cozy-0.6.7/po/nl.po --- old/cozy-0.6.1b/po/nl.po 2018-10-10 23:29:43.000000000 +0200 +++ new/cozy-0.6.7/po/nl.po 2019-01-12 23:00:28.000000000 +0100 @@ -184,7 +184,7 @@ #: cozy/disk_element.py:26 msgid "Disc" -msgstr "" +msgstr "Schijf" #: data/ui/main_window.ui:71 msgid "Rewind 30 seconds" @@ -511,7 +511,7 @@ #: data/ui/settings.ui:258 msgid "Display the whole book instead of the current chapter" -msgstr "" +msgstr "Gehele boek tonen in plaats van huidige hoofdstuk" #: data/ui/settings.ui:321 msgid "Appearance"
