Hello community, here is the log from the commit of package cozy for openSUSE:Factory checked in at 2020-01-16 18:21:41 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/cozy (Old) and /work/SRC/openSUSE:Factory/.cozy.new.26092 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "cozy" Thu Jan 16 18:21:41 2020 rev:9 rq:764807 version:0.6.12 Changes: -------- --- /work/SRC/openSUSE:Factory/cozy/cozy.changes 2020-01-10 17:50:28.866124962 +0100 +++ /work/SRC/openSUSE:Factory/.cozy.new.26092/cozy.changes 2020-01-16 18:21:46.000992659 +0100 @@ -1,0 +2,8 @@ +Wed Jan 15 21:02:38 UTC 2020 - [email protected] + +- Update to 0.6.12 + * Support for opus files + * Support for diverse ogg cover art + * Swedish translation + +------------------------------------------------------------------- Old: ---- cozy-0.6.11.tar.gz New: ---- cozy-0.6.12.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ cozy.spec ++++++ --- /var/tmp/diff_new_pack.yXD6cX/_old 2020-01-16 18:21:47.360993428 +0100 +++ /var/tmp/diff_new_pack.yXD6cX/_new 2020-01-16 18:21:47.364993430 +0100 @@ -17,7 +17,7 @@ Name: cozy -Version: 0.6.11 +Version: 0.6.12 Release: 0 Summary: Audio Book Player License: GPL-3.0-only ++++++ cozy-0.6.11.tar.gz -> cozy-0.6.12.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cozy-0.6.11/.ci/flathub_wait_for_build.sh new/cozy-0.6.12/.ci/flathub_wait_for_build.sh --- old/cozy-0.6.11/.ci/flathub_wait_for_build.sh 1970-01-01 01:00:00.000000000 +0100 +++ new/cozy-0.6.12/.ci/flathub_wait_for_build.sh 2020-01-15 21:59:58.000000000 +0100 @@ -0,0 +1,49 @@ +#!/bin/bash + +URL_RUNNING_BUILDS="https://flathub.org/builds/api/v2/builders/32/builds?complete=false&flathub_name__eq=com.github.geigi.cozy&order=-number&property=owners&property=workername" +URL_LAST_BUILD="https://flathub.org/builds/api/v2/builders/32/builds?flathub_name__eq=com.github.geigi.cozy&flathub_repo_status__gt=1&limit=1&order=-number&property=owners&property=workername" + +function wait_for_build_triggered { + for i in {0..30} + do + sleep 1 + builds_in_progress=$(curl $URL_RUNNING_BUILDS | json meta.total) + if (( builds_in_progress > 0 )); then + echo "$builds_in_progress build(s) in progress." + return 0 + fi + done + + echo "No build in progress." + return 1 +} + +wait_for_build_triggered +build_triggered=$? +if (( $build_triggered > 0 )); then + exit 1 +fi + +builds_in_progress=$(curl $URL_RUNNING_BUILDS | json meta.total) +counter=0 + +while [[ $builds_in_progress != [0] ]] +do + echo "$builds_in_progress build(s) in progress." + sleep 5 + builds_in_progress=$(curl $URL_RUNNING_BUILDS | json meta.total) + counter=$((counter+5)) + if (( counter > 1800 )); then + echo "Build longer than 30min, failing!" + exit 1 + fi +done + +result=$(curl $URL_LAST_BUILD | json builds[0].results) +if (( builds_in_progress > 0 )); then + echo "Build failed." + exit 1 +fi + +echo "Build succeeded." +exit 0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cozy-0.6.11/.ci/obs_wait_for_build.sh new/cozy-0.6.12/.ci/obs_wait_for_build.sh --- old/cozy-0.6.11/.ci/obs_wait_for_build.sh 1970-01-01 01:00:00.000000000 +0100 +++ new/cozy-0.6.12/.ci/obs_wait_for_build.sh 2020-01-15 21:59:58.000000000 +0100 @@ -0,0 +1,31 @@ +#!/bin/bash + +echo $(osc r) +osc r | grep -E "building|blocked|scheduled" +builds_in_progress=$? +counter=0 + +while [[ $builds_in_progress != [1] ]] +do + echo "Build(s) in progress." + sleep 5 + echo $(osc r) + osc r | grep building + builds_in_progress=$? + counter=$((counter+5)) + if (( counter > 3600 )); then + echo "Build longer than 60min, failing!" + exit 1 + fi +done + +echo $(osc r) +osc r | grep -E "broken|failed" +build_successful=$? +if (( $build_successful != 1 )); then + echo "At least one build failed." + exit 1 +fi + +echo "Builds succeeded." +exit 0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cozy-0.6.11/.github/workflows/flathub.yml new/cozy-0.6.12/.github/workflows/flathub.yml --- old/cozy-0.6.11/.github/workflows/flathub.yml 1970-01-01 01:00:00.000000000 +0100 +++ new/cozy-0.6.12/.github/workflows/flathub.yml 2020-01-15 21:59:58.000000000 +0100 @@ -0,0 +1,52 @@ +name: Deploy on Flathub + +on: + release: + types: [published] + +#on: +# watch: +# types: [started] + +jobs: + deploy: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v1 + + - name: Install dependencies + run: | + sudo apt-get install npm + sudo npm install -g json + + - name: Download latest cozy release + run: | + curl -s https://api.github.com/repos/geigi/cozy/releases/latest | json tag_name > /tmp/VERSION + echo https://github.com/geigi/cozy/archive/$(cat /tmp/VERSION).tar.gz > /tmp/RELEASE_URL + wget -O /tmp/cozy.tar.gz $(cat /tmp/RELEASE_URL) + sha256sum /tmp/cozy.tar.gz | cut -d " " -f 1 > /tmp/SHA256SUM + + - name: Clone Flathub repository + run: git clone https://geigi:${{ secrets.FLATHUB_TOKEN }}@github.com/flathub/com.github.geigi.cozy.git /tmp/flathub + + - name: Update Flathub json + run: | + ls /tmp/flathub + json -I -f /tmp/flathub/com.github.geigi.cozy.json -e "this.modules[this.modules.length - 1].sources[0].url='https://github.com/geigi/cozy/archive/$(cat /tmp/VERSION).tar.gz'" + json -I -f /tmp/flathub/com.github.geigi.cozy.json -e "this.modules[this.modules.length - 1].sources[0].sha256='$(cat /tmp/SHA256SUM)'" + + - name: Push changes + run: | + git config --global user.email "[email protected]" + git config --global user.name "Github Actions" + cd /tmp/flathub + git commit -am "Bump version to $(cat /tmp/VERSION)" + git push + + - name: Wait for flathub build to complete + run: | + cd $GITHUB_WORKSPACE/.ci + chmod +x *.sh + ./flathub_wait_for_build.sh \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cozy-0.6.11/.github/workflows/opensuse.yml new/cozy-0.6.12/.github/workflows/opensuse.yml --- old/cozy-0.6.11/.github/workflows/opensuse.yml 1970-01-01 01:00:00.000000000 +0100 +++ new/cozy-0.6.12/.github/workflows/opensuse.yml 2020-01-15 21:59:58.000000000 +0100 @@ -0,0 +1,66 @@ +name: Deploy on OBS (OpenSuse) + +on: + release: + types: [published] + +#on: +# watch: +# types: [started] + +jobs: + build: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v1 + + - name: Install dependencies + run: | + mkdir -p ~/.config/osc + sudo apt-get install osc npm + sudo npm install -g json + + - name: Setup osc login + run: | + cat >~/.config/osc/oscrc <<EOL + ${{ secrets.OSCRC }} + EOL + + - name: Clone cozy repo + run: osc co X11:Pantheon:Apps/cozy + + - name: Download latest version of cozy + run: | + curl -s https://api.github.com/repos/geigi/cozy/releases/latest | json tag_name > /tmp/VERSION + curl -s https://api.github.com/repos/geigi/cozy/releases/latest | json body > /tmp/CHANGES + echo https://github.com/geigi/cozy/archive/$(cat /tmp/VERSION).tar.gz > /tmp/RELEASE_URL + cd X11:Pantheon:Apps/cozy + rm cozy-*.tar.gz + wget -O cozy-$(cat /tmp/VERSION).tar.gz $(cat /tmp/RELEASE_URL) + + - name: Update rpm info files + run: | + cd X11:Pantheon:Apps/cozy + sed -i -e 's/- / * /g' /tmp/CHANGES + sed -i "1s/^/Update to $(cat /tmp/VERSION)\n/" /tmp/CHANGES + osc vc -F /tmp/CHANGES + sed -i -e "s/Version:.*/Version: $(cat /tmp/VERSION)/g" cozy.spec + + - name: Osc check-in + run: | + cd X11:Pantheon:Apps/cozy + osc addremove + osc ci --noservice -m "Update to version $(cat /tmp/VERSION)." + + - name: Wait for obs build to complete + run: | + chmod +x $GITHUB_WORKSPACE/.ci/*.sh + cd X11:Pantheon:Apps/cozy + $GITHUB_WORKSPACE/.ci/obs_wait_for_build.sh + + - name: Submit package + run: | + cd X11:Pantheon:Apps/cozy + osc submitrequest -m "Update to version $(cat /tmp/VERSION)." \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cozy-0.6.11/README.md new/cozy-0.6.12/README.md --- old/cozy-0.6.11/README.md 2020-01-06 21:18:39.000000000 +0100 +++ new/cozy-0.6.12/README.md 2020-01-15 21:59:58.000000000 +0100 @@ -16,7 +16,7 @@ - **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 +- Support for DRM free **mp3, m4a (aac, ALAC, …), flac, ogg, opus, wav** files - Mpris integration (**Media keys** & playback info for desktop environment) - Developed on Fedora and tested under elementaryOS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cozy-0.6.11/cozy/control/db.py new/cozy-0.6.12/cozy/control/db.py --- old/cozy-0.6.11/cozy/control/db.py 2020-01-06 21:18:39.000000000 +0100 +++ new/cozy-0.6.12/cozy/control/db.py 2020-01-15 21:59:58.000000000 +0100 @@ -303,7 +303,7 @@ Remove track entries from db that no longer exist in the filesystem. """ # remove entries from the db that are no longer existent - for track in Track.select(Track.file): + for track in Track.select(): from cozy.control.filesystem_monitor import FilesystemMonitor if not os.path.isfile(track.file) and FilesystemMonitor().is_track_online( track): @@ -323,7 +323,7 @@ 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: + if Settings.get().last_played_book and Settings.get().last_played_book.id == book.id: Settings.update(last_played_book=None).execute() book.delete_instance() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cozy-0.6.11/cozy/control/importer.py new/cozy-0.6.12/cozy/control/importer.py --- old/cozy-0.6.11/cozy/control/importer.py 2020-01-06 21:18:39.000000000 +0100 +++ new/cozy-0.6.12/cozy/control/importer.py 2020-01-15 21:59:58.000000000 +0100 @@ -12,9 +12,10 @@ from mutagen.easyid3 import EasyID3 from mutagen.id3 import ID3 -from mutagen.flac import FLAC +from mutagen.flac import FLAC, Picture from mutagen.mp3 import MP3 from mutagen.mp4 import MP4 +from mutagen.oggopus import OggOpus from mutagen.oggvorbis import OggVorbis from peewee import __version__ as PeeweeVersion from gi.repository import Gdk, GLib, Gst @@ -103,7 +104,7 @@ for path in paths: for directory, subdirectories, files in os.walk(path): for file in files: - if file.lower().endswith(('.mp3', '.ogg', '.flac', '.m4a', '.wav')): + if file.lower().endswith(('.mp3', '.ogg', '.flac', '.m4a', '.wav', '.opus')): path = os.path.join(directory, file) imported = True @@ -225,6 +226,8 @@ track_number = None track_data = None + print(media_type) + # getting the some data is file specific ### MP3 ### if "audio/mpeg" in media_type: @@ -238,6 +241,10 @@ elif "audio/ogg" in media_type or "audio/x-ogg" in media_type: track_data = _get_ogg_tags(track, path) + ### OPUS ### + elif "audio/opus" in media_type or "audio/x-opus" in media_type or "codecs=opus" in media_type: + track_data = _get_opus_tags(track, path) + ### MP4 ### elif "audio/mp4" in media_type or "audio/x-m4a" in media_type: track_data = _get_mp4_tags(track, path) @@ -477,6 +484,32 @@ track.mutagen = OggVorbis(path) except Exception as e: log.warning("Track " + track.path + + " has no valid ogg tags. Trying opus…") + track_data = _get_opus_tags(track, path) + return track_data + + track_data.disk = int(__get_common_disk_number(track)) + track_data.length = float(__get_common_track_length(track)) + track_data.cover = __get_ogg_cover(track) + track_data.author = __get_common_tag(track, "composer") + track_data.reader = __get_common_tag(track, "artist") + track_data.book_name = __get_common_tag(track, "album") + track_data.name = __get_common_tag(track, "title") + + return track_data + + +def _get_opus_tags(track, path): + """ + Tries to load embedded tags from given file. + :return: TrackData object + """ + track_data = TrackData(path) + log.debug("Importing ogg " + track.path) + try: + track.mutagen = OggOpus(path) + except Exception as e: + log.warning("Track " + track.path + " has no valid tags. Now guessing from file and folder name…") return track_data @@ -554,14 +587,21 @@ :param track: Track object """ - disk = 0 try: disk = int(track.mutagen["disk"][0]) - except Exception as e: - log.debug("Could not find disk number for file " + track.path) - log.debug(e) + return disk + except: + pass + + try: + disk = int(track.mutagen["discnumber"][0]) + return disk + except: + pass + + log.debug("Could not find disk number for file " + track.path) - return disk + return 0 def __get_common_track_length(track): @@ -602,7 +642,10 @@ cover = None try: - cover = track.mutagen.get("metadata_block_picture", [])[0] + base64_string = track.mutagen.get("metadata_block_picture", [])[0] + decoded = b64tobinary(base64_string) + pic = Picture(decoded) + cover = pic.data except Exception as e: log.debug("Could not load cover for file " + track.path) log.debug(e) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cozy-0.6.11/cozy/ui/book_overview.py new/cozy-0.6.12/cozy/ui/book_overview.py --- old/cozy-0.6.11/cozy/ui/book_overview.py 2020-01-06 21:18:39.000000000 +0100 +++ new/cozy-0.6.12/cozy/ui/book_overview.py 2020-01-15 21:59:58.000000000 +0100 @@ -60,7 +60,7 @@ if self.book and self.book.id == book.id: self.update_time() return - self.book = Book[book.id] + self.book = Book.get(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) @@ -236,7 +236,7 @@ """ Mark the current track position. """ - book = Book[self.book.id] + book = Book.get(Book.id == self.book.id) if book.position == -1: self.deselect_track_element() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cozy-0.6.11/data/com.github.geigi.cozy.appdata.xml.in new/cozy-0.6.12/data/com.github.geigi.cozy.appdata.xml.in --- old/cozy-0.6.11/data/com.github.geigi.cozy.appdata.xml.in 2020-01-06 21:18:39.000000000 +0100 +++ new/cozy-0.6.12/data/com.github.geigi.cozy.appdata.xml.in 2020-01-15 21:59:58.000000000 +0100 @@ -49,6 +49,15 @@ <url type="donation">https://www.patreon.com/geigi</url> <update_contact>[email protected]</update_contact> <releases> + <release version="0.6.12" timestamp="1579121802"> + <description> + <ul> + <li>Support for opus files</li> + <li>Better support for ogg cover art</li> + <li>Swedish translation</li> + </ul> + </description> + </release> <release version="0.6.11" timestamp="1578341831"> <description> <ul> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cozy-0.6.11/docs/README.md new/cozy-0.6.12/docs/README.md --- old/cozy-0.6.11/docs/README.md 2020-01-06 21:18:39.000000000 +0100 +++ new/cozy-0.6.12/docs/README.md 2020-01-15 21:59:58.000000000 +0100 @@ -14,7 +14,7 @@ - **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 +- Support for DRM free **mp3, m4a (aac, ALAC, …), flac, ogg, opus, wav** files - Mpris integration (**Media keys** & playback info for desktop environment) # Install diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cozy-0.6.11/meson.build new/cozy-0.6.12/meson.build --- old/cozy-0.6.11/meson.build 2020-01-06 21:18:39.000000000 +0100 +++ new/cozy-0.6.12/meson.build 2020-01-15 21:59:58.000000000 +0100 @@ -1,4 +1,4 @@ -project('com.github.geigi.cozy', version: '0.6.11') +project('com.github.geigi.cozy', version: '0.6.12') python = import('python3') i18n = import('i18n') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cozy-0.6.11/po/sv.po new/cozy-0.6.12/po/sv.po --- old/cozy-0.6.11/po/sv.po 2020-01-06 21:18:39.000000000 +0100 +++ new/cozy-0.6.12/po/sv.po 2020-01-15 21:59:58.000000000 +0100 @@ -3,13 +3,17 @@ # This file is distributed under the same license as the com.github.geigi.cozy package. # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # +# Translators: +# Åke Engelbrektson, 2020 +# #, fuzzy msgid "" msgstr "" "Project-Id-Version: com.github.geigi.cozy\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-12-23 12:37+0100\n" +"POT-Creation-Date: 2020-01-06 20:44+0100\n" "PO-Revision-Date: 2019-09-08 09:31+0000\n" +"Last-Translator: Åke Engelbrektson, 2020\n" "Language-Team: Swedish (https://www.transifex.com/geigi/teams/78138/sv/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -17,437 +21,444 @@ "Language: sv\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: cozy/ui/book_element.py:67 cozy/ui/search_results.py:123 +#: cozy/ui/book_element.py:69 cozy/ui/search_results.py:123 msgid "Play this book" -msgstr "" +msgstr "Spela upp denna bok" -#: cozy/ui/book_element.py:212 +#: cozy/ui/book_element.py:214 msgid "Open book overview" -msgstr "" +msgstr "Öppna boköversikt" -#: cozy/ui/book_element.py:213 +#: cozy/ui/book_element.py:215 msgid "Currently offline" -msgstr "" +msgstr "Offline just nu" -#: cozy/ui/book_element.py:319 +#: cozy/ui/book_element.py:321 msgid "Mark as read" -msgstr "" +msgstr "Markera som läst" -#: cozy/ui/book_element.py:322 +#: cozy/ui/book_element.py:324 msgid "Open in file browser" -msgstr "" +msgstr "Öppna i filhanterare" -#: cozy/ui/book_element.py:325 +#: cozy/ui/book_element.py:327 msgid "Remove from library" -msgstr "" +msgstr "Ta bort från biblioteket" -#: cozy/ui/book_element.py:395 +#: cozy/ui/book_element.py:397 msgid "Play this part" -msgstr "" +msgstr "Spela upp denna del" -#: cozy/ui/book_overview.py:228 +#: cozy/ui/book_overview.py:230 msgid "Downloaded" -msgstr "" +msgstr "Nerladdat" -#: cozy/ui/book_overview.py:231 data/ui/main_window.ui:1328 +#: cozy/ui/book_overview.py:233 data/ui/main_window.ui:1328 msgid "Download" -msgstr "" +msgstr "Ladda ner" -#: cozy/ui/file_not_found_dialog.py:66 +#: cozy/ui/file_not_found_dialog.py:67 msgid "All files" -msgstr "" +msgstr "Alla filer" -#: cozy/control/offline_cache.py:176 +#: cozy/control/offline_cache.py:180 msgid "Copying" -msgstr "" +msgstr "Kopierar" #: cozy/ui/search_results.py:71 msgid "Jump to author " -msgstr "" +msgstr "Gå till författare " #: cozy/ui/search_results.py:74 msgid "Jump to reader " -msgstr "" +msgstr "Gå till uppläsare " -#: cozy/control/importer.py:281 +#: cozy/control/importer.py:275 msgid "Unknown Author" -msgstr "" +msgstr "Okänd författare" -#: cozy/control/importer.py:283 +#: cozy/control/importer.py:277 msgid "Unknown Reader" -msgstr "" +msgstr "Okänd uppläsare" -#: cozy/tools.py:143 +#: cozy/tools.py:133 msgid "hours" -msgstr "" +msgstr "timmar" -#: cozy/tools.py:145 +#: cozy/tools.py:135 msgid "hour" -msgstr "" +msgstr "timma" -#: cozy/tools.py:153 +#: cozy/tools.py:143 msgid "minutes" -msgstr "" +msgstr "minuter" -#: cozy/tools.py:155 +#: cozy/tools.py:145 msgid "minute" -msgstr "" +msgstr "minut" -#: cozy/tools.py:159 +#: cozy/tools.py:149 msgid "finished" -msgstr "" +msgstr "slutfört" -#: cozy/tools.py:163 +#: cozy/tools.py:153 msgid "seconds" -msgstr "" +msgstr "sekunder" -#: cozy/tools.py:165 +#: cozy/tools.py:155 msgid "second" -msgstr "" +msgstr "sekund" -#: cozy/tools.py:188 +#: cozy/tools.py:178 msgid "never" -msgstr "" +msgstr "aldrig" -#: cozy/tools.py:190 +#: cozy/tools.py:180 msgid "today" -msgstr "" +msgstr "idag" -#: cozy/tools.py:192 +#: cozy/tools.py:182 msgid "yesterday" -msgstr "" +msgstr "igår" -#: cozy/tools.py:194 +#: cozy/tools.py:184 #, python-format msgid "%s days ago" -msgstr "" +msgstr "%s dagar sedan" -#: cozy/tools.py:196 +#: cozy/tools.py:186 #, python-brace-format msgid "{weeks} week ago" msgid_plural "{weeks} weeks ago" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "{weeks} vecka sedan" +msgstr[1] "{weeks} veckor sedan" -#: cozy/tools.py:198 +#: cozy/tools.py:188 #, python-brace-format msgid "{months} month ago" msgid_plural "{months} months ago" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "{months} månad sedan" +msgstr[1] "{months} månader sedan" -#: cozy/tools.py:200 +#: cozy/tools.py:190 #, python-brace-format msgid "{years} year ago" msgid_plural "{years} years ago" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "{years} år sedan" +msgstr[1] "{years} år sedan" -#: cozy/ui/main_view.py:403 +#: cozy/ui/main_view.py:408 msgid "Audiobooks" -msgstr "" +msgstr "Ljudböcker" -#: cozy/ui/main_view.py:424 +#: cozy/ui/main_view.py:429 msgid "Importing Audiobooks" -msgstr "" +msgstr "Importerar ljudböcker" #. Add the special All element -#: cozy/ui/main_view.py:493 cozy/ui/main_view.py:499 cozy/ui/main_view.py:821 +#: cozy/ui/main_view.py:498 cozy/ui/main_view.py:504 cozy/ui/main_view.py:826 msgid "All" -msgstr "" +msgstr "Alla" -#: cozy/ui/main_view.py:494 cozy/ui/main_view.py:500 +#: cozy/ui/main_view.py:499 cozy/ui/main_view.py:505 msgid "Display all books" -msgstr "" +msgstr "Visa alla böcker" #: cozy/control/sleep_timer.py:120 data/ui/timer_popover.ui:105 msgid "min" -msgstr "" +msgstr "min" #: cozy/control/sleep_timer.py:128 msgid "Off" -msgstr "" +msgstr "Av" #: cozy/ui/settings.py:416 cozy/ui/settings.py:459 msgid "External drive" -msgstr "" +msgstr "Extern enhet" #: cozy/ui/settings.py:419 cozy/ui/settings.py:462 msgid "Internal drive" -msgstr "" +msgstr "Intern disk" #: cozy/ui/settings.py:446 msgid "Changing audio book location…" -msgstr "" +msgstr "Ändrar ljudboksplats…" #: cozy/ui/disk_element.py:26 msgid "Disc" -msgstr "" +msgstr "Skiva" #: data/ui/main_window.ui:71 msgid "Rewind 30 seconds" -msgstr "" +msgstr "Spola tillbaka 30 sekunder" #: data/ui/main_window.ui:79 msgid "Rewind button" -msgstr "" +msgstr "Spola tillbaka" #: data/ui/main_window.ui:80 msgid "Jump back 30 seconds" -msgstr "" +msgstr "Hoppa bakåt 30 sekunder" #: data/ui/main_window.ui:97 msgid "Start playback" -msgstr "" +msgstr "Starta uppspelning" #: data/ui/main_window.ui:105 msgid "Play/Pause Button" -msgstr "" +msgstr "Spela upp/Pausa" #: data/ui/main_window.ui:106 msgid "Start or pause the playback" -msgstr "" +msgstr "Starta eller pausa uppspelning" #: data/ui/main_window.ui:123 msgid "Volume control" -msgstr "" +msgstr "Volymkontroll" #: data/ui/main_window.ui:200 msgid "Currently playing" -msgstr "" +msgstr "Nu spelas" #: data/ui/main_window.ui:218 msgid "Booktitle" -msgstr "" +msgstr "Boktitel" #: data/ui/main_window.ui:219 msgid "Title of currently playing book" -msgstr "" +msgstr "Titel på aktuell ljudbok" #: data/ui/main_window.ui:244 msgid "Part name" -msgstr "" +msgstr "Delnamn" #: data/ui/main_window.ui:245 msgid "Title of the currently playing part" -msgstr "" +msgstr "Titel på aktuell ljudboksdel" #: data/ui/main_window.ui:287 msgid "Elapsed time" -msgstr "" +msgstr "Förfluten tid" #: data/ui/main_window.ui:295 msgid "Time elapsed" -msgstr "" +msgstr "Förfluten tid" #: data/ui/main_window.ui:296 msgid "Elapsed time of current part" -msgstr "" +msgstr "Förfluten tid för aktuell del" #: data/ui/main_window.ui:311 msgid "Jump to position in current chapter" -msgstr "" +msgstr "Hoppa till position i aktuellt kapitel" #: data/ui/main_window.ui:317 msgid "Position slider" -msgstr "" +msgstr "Positionsreglage" #: data/ui/main_window.ui:318 msgid "Position of the current part in seconds" -msgstr "" +msgstr "Position för aktuell del i sekunder" #: data/ui/main_window.ui:336 msgid "Remaining time" -msgstr "" +msgstr "Återstående tid" #: data/ui/main_window.ui:344 msgid "Time remaining" -msgstr "" +msgstr "Återstående tid" #: data/ui/main_window.ui:345 msgid "Remaining time of current part" -msgstr "" +msgstr "Återstående tid för aktuell del" #: data/ui/main_window.ui:421 msgid "Working…" -msgstr "" +msgstr "Arbetar…" #: data/ui/main_window.ui:426 msgid "Currently working" -msgstr "" +msgstr "Arbetar för närvarande" #: data/ui/main_window.ui:442 msgid "Playback speed" -msgstr "" +msgstr "Uppspelningshastighet" #: data/ui/main_window.ui:464 data/ui/settings.ui:566 msgid "Sleep timer" -msgstr "" +msgstr "Insomningsur" #: data/ui/main_window.ui:475 msgid "Timer menu button" -msgstr "" +msgstr "Tidmeny" #: data/ui/main_window.ui:476 msgid "Open the sleep timer popover" -msgstr "" +msgstr "Öppna insomningsfönstret" #: data/ui/main_window.ui:492 msgid "Search your library" -msgstr "" +msgstr "Sök i ditt bibliotek" #: data/ui/main_window.ui:503 msgid "Search menu button" -msgstr "" +msgstr "Sökmeny" #: data/ui/main_window.ui:504 msgid "Open the search popover" -msgstr "" +msgstr "Öppna sökfönstret" #: data/ui/main_window.ui:518 msgid "Options" -msgstr "" +msgstr "Alternativ" #: data/ui/main_window.ui:529 msgid "Options menu button" -msgstr "" +msgstr "Alternativmeny" #: data/ui/main_window.ui:530 msgid "Open the options popover" -msgstr "" +msgstr "Öppna inställningsfönstret" #: data/ui/main_window.ui:655 msgid "Recent" -msgstr "" +msgstr "Tidigare" #: data/ui/main_window.ui:674 msgid "List of authors" -msgstr "" +msgstr "Lista över författare" #: data/ui/main_window.ui:690 data/ui/main_window.ui:798 #: data/ui/search_popover.ui:107 msgid "Author" -msgstr "" +msgstr "Författare" #: data/ui/main_window.ui:709 msgid "List of readers" -msgstr "" +msgstr "Lista över uppläsare" #: data/ui/main_window.ui:725 data/ui/search_popover.ui:201 msgid "Reader" -msgstr "" +msgstr "Uppläsare" #: data/ui/main_window.ui:778 msgid "List of books" -msgstr "" +msgstr "Lista över böcker" #: data/ui/main_window.ui:814 msgid "Importing your audiobooks…" -msgstr "" +msgstr "Importerar dina ljudböcker…" #: data/ui/main_window.ui:866 msgid "Import your Audiobooks" -msgstr "" +msgstr "Importera dina ljudböcker" #: data/ui/main_window.ui:882 msgid "" "Cozy automatically imports your audiobooks in one directory - your library" msgstr "" +"Cosy importerar dina ljudböcker automatiskt i en mapp - ditt bibliotek" #: data/ui/main_window.ui:910 msgid "External or Network drive?" -msgstr "" +msgstr "Extern eller nätverksdisk?" #: data/ui/main_window.ui:927 msgid "Are your audiobooks stored on an external or network drive?" -msgstr "" +msgstr "Är dina ljudböcker lagrade på en extern eller nätverksdisk?" #: 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 "" +"Om dom är, kan du aktivera offline-läge för en bok i boköversikten.\n" +"Detta lagrar en lokal kopia av boken, som du kan lyssna på, på språng." #: data/ui/main_window.ui:968 data/ui/main_window.ui:1025 msgid "Auto scan switch" -msgstr "" +msgstr "Automatisk skanning av/på" #: data/ui/main_window.ui:969 data/ui/main_window.ui:1007 #: data/ui/main_window.ui:1026 msgid "Automatically import new audiobooks on startup" -msgstr "" +msgstr "Importera nya ljudböcker automatiskt vid programstart" #: data/ui/main_window.ui:1069 msgid "Drag & Drop" -msgstr "" +msgstr "Dra & släpp" #: data/ui/main_window.ui:1086 msgid "Drag your audiobooks into cozy and they will be automatically imported" -msgstr "" +msgstr "Dra och släpp dina ljudböcker i Cozy så importeras de automatiskt" #: data/ui/main_window.ui:1107 msgid "Location of your audiobooks" -msgstr "" +msgstr "Plats för dina ljudböcker" #: data/ui/main_window.ui:1128 msgid "Set Audiobooks Directory" -msgstr "" +msgstr "Ange ljudboksmapp" #: 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 "" +"Läs in ljudböcker från en mapp, nätverksdisk eller en extern disk.\n" +"Du kan lägga till fler lagringsplatser senare, i inställningarna." #: data/ui/main_window.ui:1376 msgid "Remaining" -msgstr "" +msgstr "Återstår" #: data/ui/main_window.ui:1432 msgid "Total" -msgstr "" +msgstr "Sammanlagt" #: data/ui/main_window.ui:1449 msgid "Last played" -msgstr "" +msgstr "Senast spelad" #: data/ui/main_window.ui:1466 msgid "Published" -msgstr "" +msgstr "Publicerad" #: data/ui/main_window.ui:1630 msgid "" "Start exploring your library by switching to the Author or Reader view " "above." msgstr "" +"Börja utforska ditt bibliotek genom att växla till Författare eller " +"Uppläsare ovan." #: data/ui/about.ui:14 msgid "GitHub" -msgstr "" +msgstr "GitHub" #: data/ui/file_not_found.ui:19 msgid "Cancel" -msgstr "" +msgstr "Avbryt" #: data/ui/file_not_found.ui:32 msgid "Locate" -msgstr "" +msgstr "Plats" #: data/ui/file_not_found.ui:86 msgid "File not found" -msgstr "" +msgstr "Filen hittades inte" #: data/ui/file_not_found.ui:119 msgid "This file could not be found. Do you want to locate it manually?" -msgstr "" +msgstr "Denna fil hittades inte. Vill du lokalisera den manuellt?" #: data/ui/import_failed.ui:27 msgid "Ok" -msgstr "" +msgstr "OK" #: data/ui/import_failed.ui:81 msgid "Some files could not be imported" -msgstr "" +msgstr "Vissa filer kunde inte importeras" #: data/ui/import_failed.ui:134 msgid "" @@ -457,200 +468,192 @@ "- The file(s) are no valid audio files\n" "- The file(s) are corrupt" msgstr "" +"Detta kan ha flera orsaker:\n" +"- Ljudformatet stöds inte\n" +"- Sökvägen eller filnamnet innehåller tecken som inte är UTF-8\n" +"- Filen/Filerna är inte giltiga ljudfiler\n" +"- Filen/Filerna är skadade" #: data/ui/settings.ui:92 data/ui/settings.ui:344 msgid "General" -msgstr "" +msgstr "Allmänt" #: data/ui/settings.ui:137 msgid "Dark Mode" -msgstr "" +msgstr "Mörk läge" #: data/ui/settings.ui:213 msgid "Titlebar" -msgstr "" +msgstr "Titelfält" #: data/ui/settings.ui:258 msgid "Display the whole book instead of the current chapter" -msgstr "" +msgstr "Visa hela boken istället för aktuellt kapitel" #: data/ui/settings.ui:321 msgid "Appearance" -msgstr "" +msgstr "Utseende" #: data/ui/settings.ui:387 msgid "Suspend system on timer" -msgstr "" +msgstr "Försätt systemet i vänteläge via tiduret" #: data/ui/settings.ui:447 msgid "Replay 30 seconds" -msgstr "" +msgstr "Repetera 30 sekunder" #: data/ui/settings.ui:507 msgid "Automatic media scan" -msgstr "" +msgstr "Automatisk mediaskanner" #: data/ui/settings.ui:611 msgid "Fadeout" -msgstr "" +msgstr "Tona ut" #: data/ui/settings.ui:672 msgid "Fadeout duration" -msgstr "" +msgstr "Uttoningens varaktighet" #: data/ui/settings.ui:745 msgid "Behaviour" -msgstr "" +msgstr "Beteende" #: data/ui/settings.ui:772 msgid "Artwork" -msgstr "" +msgstr "Bildkonst" #: data/ui/settings.ui:824 msgid "Prefer external images over embedded cover" -msgstr "" +msgstr "Föredra externa bilder framför inbäddade" #: data/ui/settings.ui:837 msgid "Use images (cover.jpg, *.png, …) when available" -msgstr "" +msgstr "Använd bilder (cover.jpg, *.png, …) om tillgängligt" #: data/ui/settings.ui:920 msgid "Audio books location" -msgstr "" +msgstr "Ljudboksplats" #: data/ui/settings.ui:936 msgid "Storage locations" -msgstr "" +msgstr "Lagringsplats" #: data/ui/settings.ui:994 msgid "Add location" -msgstr "" +msgstr "Lägg till plats" #: data/ui/settings.ui:1019 data/ui/settings.ui:1215 msgid "Remove location" -msgstr "" +msgstr "Ta bort platsen" #: data/ui/settings.ui:1055 msgid "Toggle this storage location to be internal/external." -msgstr "" +msgstr "Växla mellan intern och extern lagringsplats" #: data/ui/settings.ui:1081 msgid "Set as default storage location for new audiobooks" -msgstr "" +msgstr "Ange som standardlagringsplats för nya ljudböcker" #: data/ui/settings.ui:1134 msgid "Blacklist" -msgstr "" +msgstr "Svartlista" #: data/ui/settings.ui:1178 msgid "Path" -msgstr "" +msgstr "Sökväg" #: data/ui/settings.ui:1261 msgid "Follow symlinks" -msgstr "" +msgstr "Följ symboliska länkar" #: data/ui/settings.ui:1293 msgid "Storage" -msgstr "" +msgstr "Lagring" #: data/ui/settings.ui:1317 msgid "Database" -msgstr "" +msgstr "Databas" #: data/ui/settings.ui:1369 msgid "Force refresh the database" -msgstr "" +msgstr "Uppdatera databasen" #: data/ui/settings.ui:1382 msgid "This will force update the metadata of all imported books" -msgstr "" +msgstr "Detta uppdaterar metadata för alla importerade ljudböcker" #: data/ui/settings.ui:1402 msgid "Force refresh" -msgstr "" - -#: data/ui/settings.ui:1470 -msgid "By request" -msgstr "" - -#: data/ui/settings.ui:1523 -msgid "Use crc32 checksum for file modification detection" -msgstr "" - -#: data/ui/settings.ui:1536 -msgid "" -"Only recommended if cozy doesn't detect file modifications while scanning" -msgstr "" +msgstr "Uppdatera" -#: data/ui/settings.ui:1611 +#: data/ui/settings.ui:1458 msgid "Advanced" -msgstr "" +msgstr "Avancerat" #: data/ui/search_popover.ui:24 msgid "Search" -msgstr "" +msgstr "Sök" #: data/ui/search_popover.ui:36 msgid "Search box" -msgstr "" +msgstr "Sökruta" #: data/ui/search_popover.ui:37 msgid "Search your audiobook library" -msgstr "" +msgstr "Sök i ditt ljudboksbibliotek" #: data/ui/search_popover.ui:67 msgid "Which book are you looking for?" -msgstr "" +msgstr "Vilken bok söker du?" #: data/ui/search_popover.ui:154 msgid "Book" -msgstr "" +msgstr "Bok" #: data/ui/search_popover.ui:248 msgid "Part" -msgstr "" +msgstr "Del" #: data/ui/search_popover.ui:295 msgid "Nothing found :(" -msgstr "" +msgstr "Inget hittades :(" #: data/ui/timer_popover.ui:39 msgid "Stop after current chapter" -msgstr "" +msgstr "Stoppa efter aktuell kapitel" #: data/ui/timer_popover.ui:76 msgid "Timer duration" -msgstr "" +msgstr "Tidurets varaktighet" #: data/ui/timer_popover.ui:88 msgid "Timer duration slider" -msgstr "" +msgstr "Insomningstidens varaktighet" #: data/ui/timer_popover.ui:89 msgid "Set the sleep timer duration in minutes" -msgstr "" +msgstr "Ange varaktighet för insomningsuret i minuter" #: data/ui/titlebar_menu.ui:7 msgid "_Scan Directory" -msgstr "" +msgstr "_Skanna mappen" #: data/ui/titlebar_menu.ui:13 msgid "_Hide unavailable books" -msgstr "" +msgstr "_Dölj icke tillgängliga böcker" #: data/ui/titlebar_menu.ui:19 msgid "_Preferences" -msgstr "" +msgstr "_Inställningar" #: data/ui/titlebar_menu.ui:25 msgid "_Help" -msgstr "" +msgstr "_Hjälp" #: data/ui/titlebar_menu.ui:29 msgid "_About" -msgstr "" +msgstr "_Om" #: data/ui/titlebar_menu.ui:33 msgid "_Quit" -msgstr "" +msgstr "A_vsluta"
