v-ko / rhythmbox-plugin-playlists-import-export Goto Github PK
View Code? Open in Web Editor NEWA plugin for the Rhythmbox music player to batch import or export playlists.
License: GNU General Public License v3.0
A plugin for the Rhythmbox music player to batch import or export playlists.
License: GNU General Public License v3.0
Hi,
to enable packaging, the following syntax use will not work:
builder.add_from_file( os.path.abspath("./playlists_ie_prefs.ui") )
I would suggest the alternative that works better:
builder.add_from_file( rb.find_plugin_file(self, "playlists_ie_prefs.ui") )
N.B. - the plugin folder name should be playlist_ie - the same name as the .plugin file. This perhaps needs a simple installer - look in coverart_browser ./install.sh or Donagh's installer - https://github.com/donaghhorgan/rhythmbox-plugin-installer
I was a little bamboozled with the two references of "Lyrics" in the UI and in the prefs module
Maybe suggest "playlist import/export" instead?
Hi,
I saw your mailing list email about your plugin. I'm interested in packaging this as a Debian package.
I need two bits of info though - the license that you will be releasing the plugin as, together with your public facing email address - email address should be added to the .plugin file.
You can use this to add a LICENSE file to your project as well.
If you are happy for me to do this, please let me know. Thanks in advance.
When I try to export playlists, the paths aren't composed properly, which results in an error. For example, using the plugin out of the box, the export feature tries to save a test playlist I create to:
/home/donagh/.local/share/rhythmbox/plugins/playlists_ieplaylists_import_export/New Playlist.m3u
which results in an error because there is no directory callled playlists_ieplaylists_import_export
. The correct path, I'm guessing, should be:
/home/donagh/.local/share/rhythmbox/plugins/playlists_ie/playlists_import_export/New Playlist.m3u
I think the offending line is:
conf.set_string(MY_GCONF_PREFIX+"folder",os.getcwd()+"playlists_import_export")
This should probably read something like:
conf.set_string(MY_GCONF_PREFIX+"folder", os.path.join(os.getcwd(), "playlists_import_export"))
The line seems to be in both the main plugin file and the preferences file, so it'll need to be changed in both.
Unfortunately, there's one more problem: when I edit the GConf setting manually, so that the plugin points at the correct path, the export still fails because the playlists_import_export
subdirectory doesn't exist. It would probably be best to check that the path setting is valid before saving it to GConf (you could just keep making the user pick a path until a valid one is specified). Something like
os.path.isdir(path)
would do the trick (either this, or create the directory if it doesn't exist - either would work).
Hi, after installation I was able to see the plugin in Rhythmbox 3.3 on Ubuntu 16.04.
After activation I got an error. It said the following when I started Rhythmbox from command line:
I was actually able to fix this problem by removing ', Gconf' from both .py files.
I don't know whether this broke anything. I'm seeing 2 times 'import playlists' and 'export playlists'.
(rhythmbox:6005): libpeas-WARNING **: Error importing plugin 'playlists_ie':
Traceback (most recent call last):
File "<frozen importlib._bootstrap>", line 890, in _find_spec
AttributeError: 'DynamicImporter' object has no attribute 'find_spec'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3.5/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 986, in _gcd_import
File "<frozen importlib._bootstrap>", line 969, in _find_and_load
File "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 673, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 662, in exec_module
File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed
File "/home/filixandra/.local/share/rhythmbox/plugins/playlists_ie/playlists_ie.py", line 17, in <module>
from playlists_ie_prefs import PlaylistsIOConfigureDialog
File "/home/filixandra/.local/share/rhythmbox/plugins/playlists_ie/playlists_ie_prefs.py", line 15, in <module>
from gi.repository import RB, Gtk, Gio, GObject, PeasGtk, GConf
File "/usr/lib/python3/dist-packages/gi/importer.py", line 127, in find_module
'introspection typelib not found' % namespace)
ImportError: cannot import name GConf, introspection typelib not found
```
`
Can I suggest an enhancement - instead of two separate menu options in the Tools menu I think it would look better to have both menu items as submenu's of "Playlist Import/Export"
I would also suggest that the export playlist menu option should be first so that you dont accidently click the import first (you need to physically move your mouse down to select the import option)
hello,
the plugin is not working in my computer,
this is the error message:
Traceback (most recent call last):
File "/home/labuser/.local/share/rhythmbox/plugins/playlists_ie/playlists_ie.py", line 29, in do_activate
app = shell.props.application
AttributeError: 'gi._gobject.GProps' object has no attribute 'application'
Traceback (most recent call last):
File "/home/labuser/.local/share/rhythmbox/plugins/playlists_ie/playlists_ie.py", line 48, in do_deactivate
app = shell.props.application
AttributeError: 'gi._gobject.GProps' object has no attribute 'application'
thanks
Could you please fix the plugin so that it works with Rhythmbox 3.4.1?
I'm just adding a menu option to update the currently view playlist.
Would you accept a pull after i'm done?
Hi there, I was looking for something similar for days, but it wasn't until I could come up with a partial solution when I found your plugin...
See: https://stackoverflow.com/questions/73184898/is-it-possible-to-automatically-save-playlists-to-files-in-rhythmbox/73252272#73252272
First, if I do export it does nothing... If I do import, it deletes all my playlists and nothing else...
Then, I could be possible to do the process for selected playlists only?
I could be possible to do a selected process (import or export) automatically?
If not, can these features be added to your plugin?
Thanks
would be nice if the generated m3u files contained relative paths to the export directory
Small gripe: The gir1.2-gconf-2.0 package wasn't installed by default on my system (Ubuntu GNOME 13.10), so the 'from gi.repository import GConf' line didn't work for me out of the box. Can you add a reference in the package in the README, so that this problem is easier to avoid for new users? I realised the problem after a quick Google, but this might be beyond some users...
When entering RB Preferences and going to Plugins tab, selecting Preferences for the Playlists import/export plugin crashes RB. Is there any alternative to this plugin? Or potential workarounds?
RB version: 3.4.4
Linux Mint 20.1 Cinnamon 4.8.6
I'm on ubuntu 14.04, RB 3.0.2.
I ran RB in debug mode and got this when trying to click the plugin checkbox from the menu.
Traceback (most recent call last):
File "", line 2158, in _find_spec
AttributeError: 'DynamicImporter' object has no attribute 'find_spec'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/ryan/.local/share/rhythmbox/plugins/playlists_ie/playlists_ie.py", line 15, in
from gi.repository import Gio, GObject, Peas, RB, GConf, Gtk
File "/usr/lib/python3/dist-packages/gi/importer.py", line 53, in find_module
'introspection typelib not found' % namespace)
ImportError: cannot import name GConf, introspection typelib not found
(rhythmbox:3227): libpeas-WARNING **: Error loading plugin 'playlists_ie'
Any ideas?
Thanks!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.