Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update for Deluge 2.0 #51

Open
wants to merge 7 commits into
base: master
Choose a base branch
from

Conversation

maximberezin97
Copy link

This pull request updates the plugin for Deluge 2.0, supporting Python 3 and GTK3.

I followed the steps for updating plugins on this guide.

I have also attached a compiled Python egg of this pull request.
AutoRemovePlus-0.6.2-py3.7.zip

Thank you Omar for your work on this very useful Deluge plugin!

@1n5aN1aC
Copy link

1n5aN1aC commented Jun 21, 2019

Appears to be working.

I do not have many torrents to do a full test on it right now, but it appears to be good to go!

Will update this or the pull request if I encounter any issues.

@sgabe
Copy link

sgabe commented Jun 22, 2019

The egg seems to be working fine even for Python 3.6.

@1n5aN1aC
Copy link

Unfortunately, it does not appear to be working for me.

The web interface appears to work correctly, but no torrents are removed. I receive the following error:

17:50:54 [CRITICAL][deluge.log                       :93  ] twisted.internet.defer 
[Failure instance: Traceback: <class 'NameError'>: name 'a_b' is not defined
/usr/lib/python3.7/site-packages/deluge/core/rpcserver.py:326:dispatch
/config/plugins/AutoRemovePlus-0.6.2-py3.7.egg/autoremoveplus/core.py:144:set_config
/usr/lib/python3.7/site-packages/twisted/internet/task.py:194:start
/usr/lib/python3.7/site-packages/twisted/internet/task.py:239:__call__
--- <exception caught here> ---
/usr/lib/python3.7/site-packages/twisted/internet/defer.py:151:maybeDeferred
/config/plugins/AutoRemovePlus-0.6.2-py3.7.egg/autoremoveplus/core.py:433:do_remove
/config/plugins/AutoRemovePlus-0.6.2-py3.7.egg/autoremoveplus/core.py:95:<lambda>
]

I have kept my old config file, I will attempt removing it and make sure the behaviour continues.

@1n5aN1aC
Copy link

Unfortunately, same behaviour:

18:45:54 [CRITICAL][deluge.log                       :93  ] twisted.internet.defer 
[Failure instance: Traceback: <class 'NameError'>: name 'a_b' is not defined
/usr/lib/python3.7/site-packages/deluge/core/rpcserver.py:326:dispatch
/config/plugins/AutoRemovePlus-0.6.2-py3.7.egg/autoremoveplus/core.py:144:set_config
/usr/lib/python3.7/site-packages/twisted/internet/task.py:194:start
/usr/lib/python3.7/site-packages/twisted/internet/task.py:239:__call__
--- <exception caught here> ---
/usr/lib/python3.7/site-packages/twisted/internet/defer.py:151:maybeDeferred
/config/plugins/AutoRemovePlus-0.6.2-py3.7.egg/autoremoveplus/core.py:433:do_remove
/config/plugins/AutoRemovePlus-0.6.2-py3.7.egg/autoremoveplus/core.py:95:<lambda>
]

@maximberezin97
Copy link
Author

Unfortunately, same behaviour:

18:45:54 [CRITICAL][deluge.log                       :93  ] twisted.internet.defer 
[Failure instance: Traceback: <class 'NameError'>: name 'a_b' is not defined
/usr/lib/python3.7/site-packages/deluge/core/rpcserver.py:326:dispatch
/config/plugins/AutoRemovePlus-0.6.2-py3.7.egg/autoremoveplus/core.py:144:set_config
/usr/lib/python3.7/site-packages/twisted/internet/task.py:194:start
/usr/lib/python3.7/site-packages/twisted/internet/task.py:239:__call__
--- <exception caught here> ---
/usr/lib/python3.7/site-packages/twisted/internet/defer.py:151:maybeDeferred
/config/plugins/AutoRemovePlus-0.6.2-py3.7.egg/autoremoveplus/core.py:433:do_remove
/config/plugins/AutoRemovePlus-0.6.2-py3.7.egg/autoremoveplus/core.py:95:<lambda>
]

Fixed in most recent commit. Missed a variable when refactoring. Try it now with this egg.
AutoRemovePlus-0.6.2-py3.7.zip

@1n5aN1aC
Copy link

I can confirm basic removals are working correctly now.

I can not yet confirm if excemptions and specific rules work yet, but both are part of my workflow, so if I have any problems, I'll report back.

Thanks for the update!

@alculete
Copy link

alculete commented Jun 28, 2019

Fixed in most recent commit. Missed a variable when refactoring. Try it now with this egg.
AutoRemovePlus-0.6.2-py3.7.zip

I'm Still not able to add the plugin. I'm using an ubuntu server with updated python version with web interface

@maximberezin97
Copy link
Author

Fixed in most recent commit. Missed a variable when refactoring. Try it now with this egg.
AutoRemovePlus-0.6.2-py3.7.zip

Atill not able to add the plugin. I'm using an ubuntu server with updated python version with web interface

What platform are you on? Version of Deluge? Ad-blockers in your browser? Have you tried both uploading the egg in the web UI and manually putting it into the plugins directory?

@1n5aN1aC 1n5aN1aC mentioned this pull request Jun 30, 2019
@alculete
Copy link

alculete commented Jul 1, 2019

What platform are you on? Version of Deluge? Ad-blockers in your browser? Have you tried both uploading the egg in the web UI and manually putting it into the plugins directory?

Yes tried both and didn't work. I've even installed docker version to test.
This is my system

image

@deakster
Copy link

deakster commented Jul 6, 2019

Same for me, it doesn't work in either Web UI or dropping it in for me either. I use the linuxserver/deluge docker image.

@maximberezin97
Copy link
Author

What platform are you on? Version of Deluge? Ad-blockers in your browser? Have you tried both uploading the egg in the web UI and manually putting it into the plugins directory?

Yes tried both and didn't work. I've even installed docker version to test.
This is my system

image

You haven't told me what version of Deluge you are using nor whether you tried disabling your ad-blocker. I can't isolate the problem unless you give me more information. An error in the Deluge logs would be most helpful.

Same for me, it doesn't work in either Web UI or dropping it in for me either. I use the linuxserver/deluge docker image.

I have tested the plugin both by manually placing the egg and uploading it via web UI on a clean linuxserver/deluge image and config, and it works just fine. Please try using a clean config, as sometimes Deluge's plugin UI doesn't tell you when something goes wrong with a plugin. You may also try manually adding the AutoRemovePlus plugin to the enabled plugins setting in your core.conf.

Since I have not yet received any reports of errors that have proven to be related to my changes, I am reopening this PR.

@luciusbono
Copy link

For those having installation issues: I was able to get this version working: https://github.com/omaralvarez/deluge-autoremoveplus/files/3322062/AutoRemovePlus-0.6.2-py3.7.zip

I manually installed the .egg into the plugin directory in Deluge. There were some old copies of the plugin and a weird directory that I cleared out beforehand. Restarted deluge and it seems to work.

@clifford64
Copy link

clifford64 commented Jul 26, 2019

For those having installation issues: I was able to get this version working: https://github.com/omaralvarez/deluge-autoremoveplus/files/3322062/AutoRemovePlus-0.6.2-py3.7.zip

I manually installed the .egg into the plugin directory in Deluge. There were some old copies of the plugin and a weird directory that I cleared out beforehand. Restarted deluge and it seems to work.

I have placed the .egg within the plugins directory for my deluge docker container, but it still does not show up within the webui. I have restarted the container.

Using latest Deluge Docker Container.

Version: Deluge 2.0.3-2-201906121747-ubuntu18.04.1

I tried using Chrome and internet explorer and neither worked. Also tried incognito in Chrome.

@wogam
Copy link

wogam commented Jul 30, 2019

For those having installation issues: I was able to get this version working: https://github.com/omaralvarez/deluge-autoremoveplus/files/3322062/AutoRemovePlus-0.6.2-py3.7.zip
I manually installed the .egg into the plugin directory in Deluge. There were some old copies of the plugin and a weird directory that I cleared out beforehand. Restarted deluge and it seems to work.

I have placed the .egg within the plugins directory for my deluge docker container, but it still does not show up within the webui. I have restarted the container.

Using latest Deluge Docker Container.

Version: Deluge 2.0.3-2-201906121747-ubuntu18.04.1

I tried using Chrome and internet explorer and neither worked. Also tried incognito in Chrome.

Try

python3 -V

If it's 3.6.8, rename the file to 3.6 instead of 3.7 and it should work.

@clifford64
Copy link

For those having installation issues: I was able to get this version working: https://github.com/omaralvarez/deluge-autoremoveplus/files/3322062/AutoRemovePlus-0.6.2-py3.7.zip
I manually installed the .egg into the plugin directory in Deluge. There were some old copies of the plugin and a weird directory that I cleared out beforehand. Restarted deluge and it seems to work.

I have placed the .egg within the plugins directory for my deluge docker container, but it still does not show up within the webui. I have restarted the container.
Using latest Deluge Docker Container.
Version: Deluge 2.0.3-2-201906121747-ubuntu18.04.1
I tried using Chrome and internet explorer and neither worked. Also tried incognito in Chrome.

Try

python3 -V

If it's 3.6.8, rename the file to 3.6 instead of 3.7 and it should work.

That worked. Thank you.

@ghost
Copy link

ghost commented Aug 2, 2019

Thanks a lot! It's working. If you have time then please take a look at this plugin too.
https://dev.deluge-torrent.org/wiki/Plugins/YaRSS2

@wogam wogam mentioned this pull request Aug 16, 2019
@kevindd992002
Copy link

I tried installing this egg in the webUI of Deluge 2.0.3 but nothing happened. When I installed it using the GTK client, it immediately appeared in the list of available plugins.

Does this mean installing egg's is only supported in the GTK client? Sorry, I'm fairly new to Deluge.

@ghost
Copy link

ghost commented Aug 22, 2019

I tried installing this egg in the webUI of Deluge 2.0.3 but nothing happened. When I installed it using the GTK client, it immediately appeared in the list of available plugins.

Does this mean installing egg's is only supported in the GTK client? Sorry, I'm fairly new to Deluge.

Try installing the egg manually by copying it to /.config/deluge/plugins folder.

@kevindd992002
Copy link

If you re-read my post, I was able to install it already. My question was more out of curiosity as to why the GTK client installation worked but not the WebUI client method.

@ghost
Copy link

ghost commented Aug 22, 2019

If you re-read my post, I was able to install it already. My question was more out of curiosity as to why the GTK client installation worked but not the WebUI client method.

Web-ui doesn’t upload the egg properly. The uploaded file has an invalid name.

@kevindd992002
Copy link

Yes, that I figured as much and I thought that was fine. But that makes sense now. Thanks for the answer.

@Buster14
Copy link

Buster14 commented Oct 2, 2019

Hi, trying to install this on windows deluge v2,
i managed to do so by placing the egg manually on plugin folder and rename it to 3.6
But it doesnt show config page, any thoughts?

@rkuykendall
Copy link

Just commenting to say I downloaded the egg, renamed to 3.6, restarted Deluge, and everything worked as expected. Thank you!

@IsThisNameGoodEnough
Copy link

Hi, trying to install this on windows deluge v2,
i managed to do so by placing the egg manually on plugin folder and rename it to 3.6
But it doesnt show config page, any thoughts?

Having the same issue here. Can see the plugin listed and can check to enable, but no config page. Logs do list the following, so it looks like the plugin is running.

02:33:46 [WARNING ][deluge.plugin.autoremoveplus.core:133 ] check interval loop starting

@antipiot
Copy link

antipiot commented Dec 23, 2019

Hello!
Sorry to bother you but i'm getting stuck:
I have installed the plugin and i can see it showing in deluge WEBUI but i cant activate it:
i tick the plugin to activate it, then apply an close, but nothing get activated neither listed in the side menu of the settings and once i come back to the settings, the plugin is back to unticked.

Does any of you already had to deal with this?

EDIT: nevermind: got it working:
got: https://github.com/omaralvarez/deluge-autoremoveplus/files/3322062/AutoRemovePlus-0.6.2-py3.7.zip
renamed to 3.6 instead of 3.7

@superdonpan
Copy link

Sooo much back and forth with this before I found this pull request.
FINALLY got it working by renaming the egg to 3.6 instead of 3.7.

Thanks everyone for spreading the knowledge and a great plugin!
Seems like a common issue this. Perhaps worth mentioning on the index page?

@jwheeler-work
Copy link

Thanks for this. I also got this working by renaming to 3.6, even though python3 -V reports 3.7.0 which is weird.

@wgstarks
Copy link

I can't seem to get this plugin to install. Tried naming it to AutoRemovePlus-0.6.9-py3.6 and AutoRemovePlus-0.6.9-py3.7 but neither worked.

@wogam
Copy link

wogam commented Sep 26, 2020

I can't seem to get this plugin to install. Tried naming it to AutoRemovePlus-0.6.9-py3.6 and AutoRemovePlus-0.6.9-py3.7 but neither worked.

Remove the python moniker (I.e. label it AutoRemovePlus-0.6.9) and it should work.

@wgstarks
Copy link

I can't seem to get this plugin to install. Tried naming it to AutoRemovePlus-0.6.9-py3.6 and AutoRemovePlus-0.6.9-py3.7 but neither worked.

Remove the python moniker (I.e. label it AutoRemovePlus-0.6.9) and it should work.

Outstanding. Worked perfectly.

@ctag
Copy link

ctag commented Mar 18, 2022

Attempting to use this on Linux with python 3.10 and deluge-gtk 2.0.5 as a thin client. Installed the egg manually to the server and thin-client plugins folder.

When starting deluge-gtk with the plugin (sans py filename ending) installed I kept getting an error:

07:05:13 [DEBUG   ][deluge.plugins.pluginbase         :53  ] Gtk3Plugin initialized..
07:05:13 [ERROR   ][deluge.pluginmanagerbase          :155 ] Unable to instantiate plugin 'AutoRemovePlus' from '/home/me/.config/deluge/plugins/AutoRemovePlus-0.6.2-py3.
10.egg'!
07:05:13 [ERROR   ][deluge.pluginmanagerbase          :1512] No module named 'deluge_autoremoveplus'
Traceback (most recent call last):
  File "/usr/lib/python3.10/site-packages/deluge/pluginmanagerbase.py", line 149, in enable_plugin
    cls = egg.load_entry_point(self.entry_name, name)
  File "/usr/lib/python3.10/site-packages/pkg_resources/__init__.py", line 2860, in load_entry_point
    return ep.load()
  File "/usr/lib/python3.10/site-packages/pkg_resources/__init__.py", line 2464, in load
    return self.resolve()
  File "/usr/lib/python3.10/site-packages/pkg_resources/__init__.py", line 2470, in resolve
    module = __import__(self.module_name, fromlist=['__name__'], level=0)
ModuleNotFoundError: No module named 'deluge_autoremoveplus'

So I tried building from source to get the 3.10 egg, and that didn't change anything.
Eventually I edited setup.py to remove the 'deluge_' prefix from the GTK3 section:

    entry_points="""
    [deluge.plugin.core]
    %s = %s:CorePlugin
    [deluge.plugin.gtkui]
    %s = %s:GtkUIPlugin
    [deluge.plugin.gtk3ui]
    %s = %s:Gtk3UIPlugin
    [deluge.plugin.web]
    %s = %s:WebUIPlugin
    """ % ((__plugin_name__, __plugin_name__.lower())*4)

And now the plugin will appear in the Preferences pane!
But I now receive errors when interacting with the AutoRemovePlus settings:

Traceback (most recent call last):
  File "/usr/lib/python3.10/site-packages/deluge/ui/gtk3/preferences.py", line 1067, in on_button_ok_clicked
    self.set_config(hide=True)
  File "/usr/lib/python3.10/site-packages/deluge/ui/gtk3/preferences.py", line 869, in set_config
    component.get('PluginManager').run_on_apply_prefs()
  File "/usr/lib/python3.10/site-packages/deluge/ui/gtk3/pluginmanager.py", line 98, in run_on_apply_prefs
    function()
  File "/home/me/.config/deluge/plugins/AutoRemovePlus-0.6.2-py3.10.egg/autoremoveplus/gtk3ui.py", line 292, in on_apply_prefs
AttributeError: 'ComboBox' object has no attribute 'get_active_text'. Did you mean: 'get_active_iter'?
Traceback (most recent call last):
  File "/usr/lib/python3.10/site-packages/deluge/ui/gtk3/preferences.py", line 1067, in on_button_ok_clicked
    self.set_config(hide=True)
  File "/usr/lib/python3.10/site-packages/deluge/ui/gtk3/preferences.py", line 869, in set_config
    component.get('PluginManager').run_on_apply_prefs()
  File "/usr/lib/python3.10/site-packages/deluge/ui/gtk3/pluginmanager.py", line 98, in run_on_apply_prefs
    function()
  File "/home/me/.config/deluge/plugins/AutoRemovePlus-0.6.2-py3.10.egg/autoremoveplus/gtk3ui.py", line 292, in on_apply_prefs
AttributeError: 'ComboBox' object has no attribute 'get_active_text'. Did you mean: 'get_active_iter'?

And that's about the limit of my troubleshooting ability.


Edit: I lied, I can troubleshoot a trifle better than that.

The AttributeError appears to be from a deprecation issue. Recommendation to use ComboBoxText now:
https://bugs.launchpad.net/terminator/+bug/1603422

So I edited the UI files to change "GtkComboBox" to "GtkComboBoxText" in these two files:

autoremoveplus/data/config.ui:362:                              <object class="GtkComboBox" id="cbo_sel_func">
autoremoveplus/data/config.glade:323:                              <widget class="GtkComboBox" id="cbo_sel_func">

Becomes:

autoremoveplus/data/config.ui:362:                              <object class="GtkComboBoxText" id="cbo_sel_func">
autoremoveplus/data/config.glade:323:                              <widget class="GtkComboBoxText" id="cbo_sel_func">

Regenerate the egg, and now the plugin appears to function.

@manuel-rw
Copy link

manuel-rw commented Jul 6, 2022

@ctag

I wasn't able to get it to work using your instructions.
The Plugin still doesn't show up in Deluge at all.

I compiled both this and maximberzin97's repo.
The latter doesn't yield any errors and compiles successfully, but it still doesn't appear in Deluge.

Am I missing something? I am running binhex-delugevpn with Python 3.10.5. Could you maybe share the compiled file or make a fork?

Egg file: AutoRemovePlus-0.6.2-py3.10.zip

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.