omaralvarez / deluge-autoremoveplus

Auto removing of deluge torrents
152 stars 61 forks source link

Update for Deluge 2.0 #51

Open maximberezin97 opened 5 years ago

maximberezin97 commented 5 years ago

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 commented 5 years ago

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 commented 5 years ago

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

1n5aN1aC commented 5 years ago

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 commented 5 years ago

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 commented 5 years ago

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 commented 5 years ago

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 commented 5 years ago

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 commented 5 years ago

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?

alculete commented 5 years ago

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 commented 5 years ago

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 commented 5 years ago

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 commented 5 years ago

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 commented 5 years ago

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 commented 5 years ago

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 commented 5 years ago

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 commented 5 years ago

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

kevindd992002 commented 5 years ago

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 commented 5 years ago

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 commented 5 years ago

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 commented 5 years ago

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 commented 5 years ago

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

Buster14 commented 4 years ago

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 commented 4 years ago

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

IsThisNameGoodEnough commented 4 years ago

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 commented 4 years ago

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 commented 4 years ago

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 commented 4 years ago

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 commented 3 years ago

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 commented 3 years ago

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 commented 3 years ago

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 commented 2 years ago

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 commented 2 years ago

@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