Archived

This topic is now archived and is closed to further replies.

Ultima

µTorrent MiniUI

Recommended Posts

Here's another interesting piece to the BlackBerry OS 5.0 puzzle. If I navigate to the normal webui page, I can add a .torrent file with no problems. Now, using the normal webui on the BlackBerry still doesn't display any of the graphics and it's pretty jumbled mess, but it will work. Here's the log:

[2009-11-06 08:19:54] HTTP: IP 206.53.153.60: GET /gui/

[2009-11-06 08:20:00] HTTP: IP 206.53.153.60: GET /gui/stable.css

[2009-11-06 08:20:00] HTTP: IP 206.53.153.60: GET /gui/stable.css

[2009-11-06 08:20:06] HTTP: IP 206.53.153.60: GET /gui/main.css

[2009-11-06 08:20:07] HTTP: IP 206.53.153.60: GET /gui/main.css

[2009-11-06 08:20:18] HTTP: IP 206.53.153.60: GET /gui/images/snake.gif

[2009-11-06 08:20:19] HTTP: IP 206.53.153.60: GET /gui/images/mootools.png

[2009-11-06 08:20:20] HTTP: IP 206.53.153.60: GET /gui/lang/en.js

[2009-11-06 08:20:20] HTTP: IP 206.53.153.60: GET /gui/lang/en.js

[2009-11-06 08:20:25] HTTP: IP 206.53.153.60: GET /gui/?action=add-file

Share this post


Link to post
Share on other sites

WebUI seems to behave identically to MiniUI here on BlackBerry OS v5.0 -- it simply doesn't work, and packet sniffs seems to indicate that the .torrent file either isn't sent, or it is stripped before it reaches µTorrent.

What model are you using, and what is the exact OS version? For example, I'm testing this on a BlackBerry 9500 simulator, using v5.0.0.252 (Platform 2.13.0.54).

Share this post


Link to post
Share on other sites

Right, so I was just testing image uploading at imageshack.us with BlackBerry OS v5.0, and curiously, it worked. After a bit of digging around in the code to check the fundamental differences between ImageShack's form upload and MiniUI's form upload, I think I've determined the cause of the problem. What MiniUI does when it submits a form is that it targets a hidden iframe element in the page so that the page doesn't change. Apparently, BlackBerry OS v5.0's browser doesn't like doing this for forms using the POST method, so it isn't submitting the form data to the iframe to be sent to the server. The result is that nothing gets sent at all except the request itself.

(Aside: ImageShack doesn't have to worry about using hidden iframes because the URL they're submitting the data to does return relevant HTML to be shown in the browser, so it's okay to let the browser load the resulting page. µTorrent doesn't return relevant HTML after a call to /gui/?action=add-file, and honestly, it shouldn't need to either).

If my hunch is correct, then this is definitely a bug in BlackBerry OS v5.0's browser, as usage of hidden iframe elements is a very common AJAX technique used to submit form data with files, without reloading the page. I would bother BlackBerry about it if I were you.


Edit: Here's how you can test for yourself:

<html>

<head>

<title>µTorrent Uploader</title>

</head>

<body>

<div id="token" style="display: none;">##TOKEN##</div>

<iframe name="dummy" src="about:blank" style="display: none; width: 0; height: 0;"></iframe>

<div class="cont">

<form action="./?action=add-file" onsubmit="return (!!this.torrent_file.value);" method="post" enctype="multipart/form-data" id="add_file">

<label for="torrent_file">Torrent file:</label> <input type="file" name="torrent_file" /> <input type="submit" value="Add File" />

</form>

<hr />

<form action="./?action=add-url" onsubmit="return (!!this.s.value);" method="get" target="dummy" id="add_url">

<input type="hidden" name="token" value="##TOKEN##" />

<input type="hidden" name="action" value="add-url" />

<label for="s">Torrent URL:</label> <input type="text" name="s" /> <input type="submit" value="Add URL" />

</form>

</div>

<script type="text/javascript">

var token = document.getElementById("token").innerHTML;

document.getElementById("add_file").action = "./?token="+token+"&action=add-file";

document.getElementById("add_url").token.value = token;

</script>

</body>

</html>

Make a backup of your webui.zip somewhere, copy the code into a new file called "index.html", then place that file at the root of webui.zip.

Afterwards, if you try visiting http://[HOST]:[PORT]/gui/ and uploading a .torrent file, it will work. If you try using this snippet instead, you'll find that file upload won't work. The only difference between the two is that I removed target="dummy" from the add file form.

(You'll also notice that the "fixed" form ends up redirecting you to a page that looks like {"build":17188}, which is what targeting to an iframe would prevent)

Share this post


Link to post
Share on other sites

Thanks for the information Ultima.

Ultima, would there be any way to run both the normal webui index.html as well as one with the code you posted above? That way I could use point the BlackBerry browser to the code above and my normal Firefox browser to the normal index.html.

Share this post


Link to post
Share on other sites

It depends. If webui.token_auth is disabled, then the above code does not need to be named index.html, and it'll work fine with whatever name you choose. But if webui.token_auth is enabled, then the above code won't work without additional (not so trivial) modification if you wish to rename it to something other than index.html. Leaving webui.token_auth disabled is generally not a good idea.

You really should report the bug to BlackBerry, as this is a pretty big bug on their part. Working around it only gives them less incentive to fix the problem.

Edit: Eh, reported on the BlackBerry forum here.

Share this post


Link to post
Share on other sites
2009-11-11

+ Feature: Palm webOS support

+ Feature: Set torrent job label from a list of existing labels

* Fix: Active/Inactive torrent jobs categories not filtered properly

* Fix: Auto-refreshing makes it difficult to modify settings

* Fix: Double token request when logging in as guest

* Fix: Improper guest account detection on Palm webOS Browser

* Fix: Newly set torrent job label not shown after Properties refresh

* Fix: Palm webOS reloading MiniUI when switching Details view

* Fix: Refresh button not working when viewing torrent job Files and Properties

* Fix: Use new values for queue.slow_*_threshold if modified in MiniUI

For Palm webOS users, there is a bug with the browser that prevents users from logging into sites that use basic HTTP authentication (like µTorrent's WebUI backend). The only way you can log in is to visit http://username:password@ip:port/gui/mini/index.html (or wherever you installed MiniUI).

So as a recap, I'm tracking a few bugs in various mobile browsers:

[ul][li]Opera Mini: (Thread) Broken regular expressions engine that can't handle non-ASCII characters. This causes the browser to not properly load the torrent jobs lists if any torrent job has a non-ASCII character in its name.

Edit: This has been fixed as of 2010-01-29 with the Opera Mini server upgrade to 4.15.2444. Nothing needs to be done on the user's part -- everything should automatically work now.

[/li][li]BlackBery OS Browser: (Thread) Submitting a form to an iframe using the POST method fails on BlackBerry OS v5.0. This causes .torrent file uploading to fail.

[/li][li]Palm webOS Browser: (Thread) Unable to log into sites using basic HTTP auth via the browser prompt because of a(n apparent) bug in the browser's Base64 encoding routine. This causes an endless username/password entering loop when attempting to visit µTorrent's WebUI.

[/li][/ul]

If any of you are using those browsers and are experiencing one of these problems, please join me in the respective thread to complain. Maybe it'll help get them to stop sitting on their hands and start fixing the bugs. Do provide some details for them though, like what device you're using, the software version, etc (don't just join and say "yeah, me too").

Share this post


Link to post
Share on other sites

Add Opera v10.0 beta on Symbian to the compatibility list: It works, supporting all viewing and management features. I haven't tried adding torrents but I expect it to work fine. The MiniUI also works on (the now obsolete) Opera v8.65 for Symbian though i don't know why anyone would use that

Share this post


Link to post
Share on other sites

Indeed, I tested it on Opera Mobile v10.0 for Mobile IE when it came out a little over a week ago, and it works fine. Didn't feel like updating the first post because it would bump the thread for such a minor change, but oh well, might as well, since this thread is already bumped by these posts :P

Share this post


Link to post
Share on other sites

I've noticed something a bit wrong with how this shows how much you've downloaded from a torrent where you're only downloading a few files from the torrent. I'm currently downloading a torrent of 5.7GB but I'm only downloading 1 file of 350MB. Currently I'm 50% finished so I've downloaded 175MB, which is what uTorrent itself says. But the MiniUI says I've downloaded 2.85GB, ie 50% of the FULL torrent. Doesn't take into account that I'm only downloading 1 file. Using an iPhone with Safari if that makes any difference

Share this post


Link to post
Share on other sites

Ah right OK, so it's a uTorrent problem rather than the MiniUI. So maybe fixed in 2.0. Thanks again, this is such a useful wee tool when you're away from home

Share this post


Link to post
Share on other sites

Just a news flash: the bug with Opera Mini's regular expressions engine not properly supporting Unicode has been fixed as of 2010-01-29 with the Opera Mini server upgrade to 4.15.2444. Nothing needs to be done on the user's part -- everything should automatically work now for Opera Mini users.

Edit: Mirror in case anyone's having trouble accessing Google Sites...

http://www.mediafire.com/?g2uwddimztw

Share this post


Link to post
Share on other sites

Hey, just wanted to thank you for this really nice UI ! it's so clean and simple, really what I was looking for ;)

I want to create a very simple way for my brother to pause and resume torrents running on another computer but without the ability to access other options... I looked around in the forums, found this thread : http://forum.utorrent.com/viewtopic.php?id=54664 but but the suggested solutions haven't been updated and aren't working anymore.

Your UI is so nice and clean I thought the best way to do what I want would be to modify it so that it displays only the "pause all" and "resume all" commands. I tried to look around in the files but I have a hard time modifying it because the spacing has been removed... Would it be really complicated to clean the index.html of everything except the two commands mentioned ?

Thanks a lot for any help you can give me :)

Share this post


Link to post
Share on other sites
BlackBery OS Browser: (Thread) Submitting a form to an iframe using the POST method fails on BlackBerry OS v5.0. This causes .torrent file uploading to fail.

Maybe that will be fixed in the next BlackBerry OS 6.0 because the new OS has a new web browser, which is based on the same WebKit core that Apple uses on the iPhone. Wait & see.

Share this post


Link to post
Share on other sites

Works for me across all browsers I've tested. What field are you sorting by?

@moogly: Yeah, that happened after RIM they bought out Torch Mobile, but nevertheless, I think it should still be fixed in the 5.x browser because well... not everyone's going to be upgrading (or will be able to upgrade) to 6.0.

Share this post


Link to post
Share on other sites

Yeah, sorting by status is actually pretty unnatural because I was being lazy about it. Will need to get around to it some other time.

Is it failing when sorting on any other field though?

Share this post


Link to post
Share on other sites

Just want to compliment this MiniUI, in my opinion the best way to check your torrents when on away from home and normal pc.

Sure there is the uTorrent mobile jar client wich is also great but I prefer a website above a separate application. Why install extra app when you can get the same via your browser?

I've been using Mini for a long time now!

Good to see it's still being tested for many platforms.

Share this post


Link to post
Share on other sites

Hah, glad to see that people continue to find value in MiniUI. With things being hectic on my end lately, I haven't been able to do much with any of my projects... Good to see that there haven't (yet?) been any new glaring bugs reported :P

Share this post


Link to post
Share on other sites

Man this UI is beautiful. It's so clean cut and small. Plus it works on my Android browser + Opera Mini. Exactly what I needed! Thank you so much!

One thing to recommend for future updates though, is an option to easily toggle the scheduler on and off. That's my primary use for something like this, and it would be an incredible option.

Even so, this is terrific, and I'm so glad someone finally made something for the format and browser on my Droid Incredible.

Share this post


Link to post
Share on other sites

Yah, the scheduler is somewhere on my todo list. Toggling on and off is simple enough, but there's no simple way (that I can think of right now) to allow users to actually edit the times that would make it easy to use on the supported browsers.

Share this post


Link to post
Share on other sites

Hi, I've activated WebUI on OSX by copying the settings.dat file from windows. I've got MiniUI running but the Settings and Add tabs do not load (they briefly appear on loading but then disappear) Is the mac version of utorrent missing some functionality for these tabs to work? I've tried loading on several browsers with no luck.

Tommy.

Share this post


Link to post
Share on other sites