Skip to content

Commit

Permalink
Merge pull request #2554 from musoke/python3-plugin-ipfs
Browse files Browse the repository at this point in the history
compatibility of IPFS plugin with Python 3
  • Loading branch information
sampsyo committed Jul 14, 2020
2 parents d9272fc + c531927 commit 8537d1e
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 6 deletions.
14 changes: 8 additions & 6 deletions beetsplug/ipfs.py
Original file line number Diff line number Diff line change
Expand Up @@ -151,6 +151,8 @@ def ipfs_add(self, album):
def ipfs_get(self, lib, query):
query = query[0]
# Check if query is a hash
# TODO: generalize to other hashes; probably use a multihash
# implementation
if query.startswith("Qm") and len(query) == 46:
self.ipfs_get_from_hash(lib, query)
else:
Expand Down Expand Up @@ -197,15 +199,15 @@ def ipfs_import(self, lib, args):
else:
lib_name = _hash
lib_root = os.path.dirname(lib.path)
remote_libs = lib_root + "/remotes"
remote_libs = os.path.join(lib_root, b"remotes")
if not os.path.exists(remote_libs):
try:
os.makedirs(remote_libs)
except OSError as e:
msg = "Could not create {0}. Error: {1}".format(remote_libs, e)
self._log.error(msg)
return False
path = remote_libs + "/" + lib_name + ".db"
path = os.path.join(remote_libs, lib_name.encode() + b".db")
if not os.path.exists(path):
cmd = "ipfs get {0} -o".format(_hash).split()
cmd.append(path)
Expand All @@ -216,7 +218,7 @@ def ipfs_import(self, lib, args):
return False

# add all albums from remotes into a combined library
jpath = remote_libs + "/joined.db"
jpath = os.path.join(remote_libs, b"joined.db")
jlib = library.Library(jpath)
nlib = library.Library(path)
for album in nlib.albums():
Expand Down Expand Up @@ -244,7 +246,7 @@ def ipfs_list(self, lib, args):
return

for album in albums:
ui.print_(format(album, fmt), " : ", album.ipfs)
ui.print_(format(album, fmt), " : ", album.ipfs.decode())

def query(self, lib, args):
rlib = self.get_remote_lib(lib)
Expand All @@ -253,8 +255,8 @@ def query(self, lib, args):

def get_remote_lib(self, lib):
lib_root = os.path.dirname(lib.path)
remote_libs = lib_root + "/remotes"
path = remote_libs + "/joined.db"
remote_libs = os.path.join(lib_root, b"remotes")
path = os.path.join(remote_libs, b"joined.db")
if not os.path.isfile(path):
raise IOError
return library.Library(path)
Expand Down
1 change: 1 addition & 0 deletions docs/changelog.rst
Original file line number Diff line number Diff line change
Expand Up @@ -229,6 +229,7 @@ Fixes:
the Cover Art Archive API.
Thanks to :user:`trolley`.
:bug:`3637`
* :doc:`/plugins/ipfs`: Fix Python 3 compatibility.

For plugin developers:

Expand Down

0 comments on commit 8537d1e

Please sign in to comment.