Page 1 of 2
Pidgin/libpurple interface
Posted: Wed May 06, 2009 6:50 pm
by ggaspari
Hi, I have a suggestion...
Create a pidgin plugin or even incorporate libpurple itself as the plugin so we could control Deluge with simple text commands. absolutely zero fiddling with IPs, blocked ports and whatnot. Just create a MSN or Jabber/gtalk username for your program and IM it from work, your cell phone, the library, anything!
A mockup of the menus and commands:
-----------------------
DelugeIM Plugin V0.0001
3 transfers running, 732 connections, 102.4K down, 58.9K up
input command (type Help for command list)
you> add
http://www.foobar.org/foo/whatever.torrent
Adding
http://www.foobar.org/foo/whatever.torrent
Download successful, starting transfer
4 transfers running, 840 connections, 153K down, 60K up
you> status
Choose 0ne of the following transfers for detailed status report:
1) Ubuntu-9.04.iso
2) Fedora.iso
3) Mandriva.iso
4) whatever
you>4
Whatever size: 803Mb, downloaded 80.2Mb (9.9%), download speed XXX, hh:mm:ss time to complete
---------------------------------------------------
Other possible commands: Pause (number), pause all, reboot/shutdown the computer (default to disabled due to security reasons), delete torrents (not sure about this one either), set/override speed limits. Basically it would be a way to issue simple commands without having to deal with a full web server.
Re: Pidgin/libpurple interface
Posted: Thu May 07, 2009 1:35 am
by johnnyg
This has been discussed before (on IRC) and a
jabber ui would indeed be awesome.
That said, there has been no date set for implementing it (it's more on the wish list rather than the todo list).
Re: Pidgin/libpurple interface
Posted: Mon May 25, 2009 9:06 pm
by raul.gigea
Hi,
i was looking for something like that as well. Didn't find anything so i decided to code it myself.
I didn't use libpurple tough, since its a bit of an overkill. Insted I used a pythonian alternative - Twisted Words.
My focus was rather the "notification by IM" part, because controlling it can be done trough the WebUI, but having the Jabber Code there i said - "eeeh, what the hell, lets do it" . That said, the command set of the jabber bot is a little limited:
- status - Prints current status information about all downloading torrents
- add [URL of Torrent] - Gets Torrent File from URL and starts downloading
- del [Id of Torrent] - Deletes Torrent File with given Id
- help - This command
Features:
The status of all the downloads is updated every 10 seconds in the contact "away/status message bubble".
Only Buddies(Authorized JIDs) can send Deluge Commands to Bot.
It sends an Instant Message upon completion of any Download.
It also has Mail Notifications implemented as a Core Plugin, since the included Deluge Mail Notification works only with the GTK UI on.
Adding, Removing of Torrents by sending IM message commands.
Use Instructions:
- compile code ( python setup.py bdist_egg )
- copy plugin into deluge plugin directory ( usually ~/.config/deluge/plugins )
- Create a Jabber account for your Bot ( register.jabber.org )
- Log on with your favourite IM Chat Application on both your and the Bot's accounts and manually authorize the Bot and viceversa. ( This isn't done by the plugin! ). Both Accounts should see the other one as online. Only Buddies(Authorized JIDs) can send Deluge Commands to Bot
- Start deluged & deluge webUI
- Enable RemoteNotify plugin ( Using WebUI at http://yourdelugedomain/config/plugins <- the ajax theme doesn't have this )
- Enter The Account&Passwords for your Bots jabber and Email account & save. ( http://yourdelugedomain/config/remotenotify )
- Restart deluged. ( Sadly, this is necessary because of a weird Twisted Words bug )
- Have phun chatting with your Deluge Jabberbot
The Code was hacked in about two days, so its pretty dirty.
Greetz
Re: Pidgin/libpurple interface
Posted: Mon May 25, 2009 9:20 pm
by johnnyg
awesome, I'm assuming this is written for 1.1.8?
also, make sure you add it to:
http://dev.deluge-torrent.org/wiki/Plugins
Re: Pidgin/libpurple interface
Posted: Mon May 25, 2009 9:26 pm
by raul.gigea
oh, 1.1.8 is out ... i see. Next release of the plugin is coming sooner than i tought
No, it was for 1.1.7. I hope not much is changed, i'll go right at it and port it to the new api.
Re: Pidgin/libpurple interface
Posted: Mon May 25, 2009 10:44 pm
by raul.gigea
lucky. it worked ootb with 1.1.8. Also added to wiki
Re: Pidgin/libpurple interface
Posted: Tue May 26, 2009 2:54 am
by johnnyg
yes 1.1.7 and 1.1.8 have no differences in terms of plugin api.
the comment was more referring whether it was for 1.1.x or 1.2 which has a very different api.
Re: Pidgin/libpurple interface
Posted: Sat Aug 29, 2009 6:55 am
by goat
Hi,
I'm running 1.1.9r and running into the following problem when initially attempting to access the plugin to configure it via the webui:
Fault : <Fault 1: '<type \'exceptions.Exception\'>:method "remotenotify_get_config" is not supported'>
This is the traceback:
Code: Select all
--Deluge Error--
Fault : <Fault 1: '<type \'exceptions.Exception\'>:method "remotenotify_get_config" is not supported'>
path : /config/remotenotify
file : /var/lib/python-support/python2.6/deluge/xmlrpclib.py in close, line 786
--Input--
<Storage {}>
--Versions--
WebUi : 1.1.9r
Python 2.6.2 (release26-maint, Apr 19 2009, 01:58:18)
[GCC 4.3.3]:
--Traceback--
File "/var/lib/python-support/python2.6/deluge/ui/webui/lib/webpy022/webapi.py", line 310, in wsgifunc
result = func()
File "/var/lib/python-support/python2.6/deluge/ui/webui/lib/webpy022/request.py", line 131, in <lambda>
func = lambda: handle(inp, fvars)
File "/var/lib/python-support/python2.6/deluge/ui/webui/lib/webpy022/request.py", line 61, in handle
return tocall(*([x and urllib.unquote(x) for x in args] + fna))
File "/var/lib/python-support/python2.6/deluge/ui/webui/page_decorators.py", line 87, in deco
return func(self, name) #check_session:ok
File "/var/lib/python-support/python2.6/deluge/ui/webui/page_decorators.py", line 105, in deco
return func(self, name) #check_connected:ok
File "/var/lib/python-support/python2.6/deluge/ui/webui/page_decorators.py", line 60, in deco
res = func(self, name) #deluge_page_noauth
File "/var/lib/python-support/python2.6/deluge/ui/webui/config_forms.py", line 88, in GET
f = form_class()
File "/var/lib/python-support/python2.6/deluge/ui/webui/lib/newforms_plus.py", line 84, in __init__
data = self.initial_data()
File "build/bdist.linux-x86_64/egg/remotenotify/webui.py", line 53, in initial_data
data = sclient.remotenotify_get_config()
File "/var/lib/python-support/python2.6/deluge/xmlrpclib.py", line 1150, in __call__
return self.__send(self.__name, args)
File "/var/lib/python-support/python2.6/deluge/xmlrpclib.py", line 1440, in __request
verbose=self.__verbose
File "/var/lib/python-support/python2.6/deluge/ui/client.py", line 93, in request
return self._parse_response(h.getfile(), sock)
File "/var/lib/python-support/python2.6/deluge/xmlrpclib.py", line 1343, in _parse_response
return u.close()
File "/var/lib/python-support/python2.6/deluge/xmlrpclib.py", line 787, in close
raise Fault(**self._stack[0])
Any other information desired? Does the plugin need to be patched?
Regards,
-Tim
Re: Pidgin/libpurple interface
Posted: Tue Sep 29, 2009 2:25 pm
by pdoes
It needs a patch, don't know how, but I have a workaround
Create a directory in the root.
/config
Make sure it is writeable by the user that runs the deluged and deluge.
That will make it work.
Re: Pidgin/libpurple interface
Posted: Thu Oct 08, 2009 9:03 pm
by SadLittleGirl
I would really like a working version of this plugin!
Unfortunately it does not work with all versions I tested it. But even if it would work, some things are just ridiculous: Why do I _have to_ specify a mail address as well as a Jabber ID? I only want to be notified via Jabber - mail should be optional!
Why is it not possible to configure the plugin from within Deluge? The webui-configuration step is not possible with the new version of Deluge?
Windows support has to be improved immensely! It is not possible to get it running; I tried it with Ubuntu as well, but I was not once able to have "phun" with my Jabberbot!
Please improve it, thank you.