Archived

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

Ultima

µTorrent MiniUI

Recommended Posts

utorrent-miniui.th.png

[h]Introduction[/h]

µTorrent MiniUI is a web interface for µTorrent's WebUI backend, designed with screens with limited horizontal real estate in mind. That means it is well suited for use in mobile web browsers (though that doesn't preclude any possible uses in desktop browsers).


[h]Supported Browsers[/h]

The following is a list of browsers µTorrent MiniUI has been tested against to some degree, at some point or other in its development, to ensure compatibility.

Desktop

* Google Chrome v4.0

* Microsoft Internet Explorer v8.0

* Mozilla Firefox v3.5

* Opera v10.0

Mobile

* Android Browser v2.0

* Apple Mobile Safari (iPhone, iPod Touch)

* BlackBerry Browser v4.6.0 (Javelin, Bold, Storm)

* Iris Browser v1.1

* kolbysoft Steel v0.1.7

* Microsoft Internet Explorer Mobile (Windows Mobile v5.0)

* Mozilla Fennec v1.0

* Opera Mini v5.0

* Opera Mobile v10.0

* Palm webOS Browser v1.2 (Pre)


[h]Download[/h]


[h]Installation[/h]

µTorrent MiniUI can be used as a standalone interface much like the official WebUI developed by Directrix (it can be placed in µTorrent's settings directory as webui.zip). I do suspect that users would prefer to run it side-by-side with the official WebUI though, which is also possible. You would simply need to add a new subdirectory in webui.zip (call it "mini" without the quotes, for example), and place the contents of the distributed MiniUI ZIP file in that directory. From there, MiniUI would be accessible via

http://[iP]:[PORT]/gui/mini/index.html

where index.html is required due to the way the µTorrent WebUI backend works.

For the uninitiated, µTorrent's settings directory is not necessarily the same directory as the µTorrent executable. It is the directory in which the µTorrent settings.dat file is located, which can normally be found at

Start > Run > %appdata%\uTorrent

webui.zip should be placed in that directory, whether it contains the official WebUI, the MiniUI, or any other interface.


[h]Notes[/h]

* Setting list items per page to 0 lists all items in one page. Beware that if you view large lists, this may cause browser hangs and such.

* Setting reload interval to 0 disables auto-refreshing of data. The Reload button can still be pressed at any time, whether or not auto-refreshing is enabled. Reload intervals are interpreted in seconds.

* Some browsers and proxy servers don't support GZIPped content. If you find that MiniUI is not loading properly, try extracting the *.gz files that come with the package, deleting the *.gz files, and replacing them with their respective un-GZIPped counterparts.


[h]History[/h]

2011-04-24

~ Change: Color-differentiated torrent statuses

~ Change: Decreased size of interface elements

~ Change: Hide progress bar for completed torrent jobs

~ Change: Slightly more robust handling of /gui/?action=getsettings

~ Change: Use decimal rather than percentage for ratio

* Fix: Labels containing certain HTML strings break label selection dropdowns

* Fix: MiniUI stops working if filtered torrent job label no longer exists

* Fix: Number rounding issues in various places

* Fix: Torrent jobs never shown as "Finished"

* Fix: uTorrent 3.0 compatibility

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

2009-09-04

+ Feature: Auto-refreshing

~ Change: Attempt to request a new token if previous request fails

~ Change: Implement proper guest account restrictions

~ Change: Use queue.slow_*_threshold to determine active/inactive torrents

* Fix: Torrent files don't load when torrent is clicked in some situations

* Fix: Torrent properties never get cached

2009-06-05

+ Feature: Allow pausing of torrents

+ Feature: Pause/resume all torrents

~ Change: Use HTML for confirmation rather than basic JavaScript confirms

~ Change: Visual feedback on action

~ Change: Visual indication of which tab is currently visible

2009-05-17

+ Feature: Add multiple torrents by URL

+ Feature: Paging in the Settings pane

~ Change: Enlarge click area for previous/next page changers

* Fix: Improper file priority setting

2009-02-06

* Fix: Broken support for token authentication when adding new torrent jobs

2008-12-08

+ Feature: Ability to set a torrent job's label

+ Feature: More complete Basic details pane

~ Change: Remove the "+" link (torrent job name now serves the same purpose)

~ Change: Streamline the torrent jobs list

~ Change: Tweak UI slightly on Internet Explorer for Windows Mobile

~ Change: Use delta torrent jobs lists (saves some bandwidth between reloads)

* Fix: Broken ETA parsing

2008-11-26

+ Feature: BlackBerry Browser support

* Fix: Reloading Files list forced the first page to be loaded

2008-11-16

+ Feature: Paging/sorting/filtering/searching on Files list

~ Change: Clicking "Options" while options are shown cancels changes and hides

~ Change: Mobile browsers should no longer require zooming

~ Change: Remove static page width configuration

~ Change: Slightly more reliable parsing of JSON

~ Change: Stop using fixed position for tabs/toolbar

* Fix: Guest logins can cause "Loading..." screen to block everything sometimes

2008-10-25

+ Feature: Calculate total download/upload rates

+ Feature: Configurable page width

+ Feature: Paging/sorting/filtering/searching on Torrents list

2008-10-03

^ Initial release

Share this post


Link to post
Share on other sites

That Looks Awesome Ultima! Good Work!

You might want to try this on mobile Safari (iphone)

Share this post


Link to post
Share on other sites

I'd already pondered that, but won't bother, as it works in Chrome (WebKit), and I haven't really needed to employ any browser-specific hack, so I'm reasonably certain that it'll work on iPhone Safari. Besides which, I don't have an iPhone to test with. Thanks for the suggestion though :)

Share this post


Link to post
Share on other sites

Just wanted to say thank you. I checked back here to follow up since you posted that non-token bit of code for a strict upload-only page that was mobile compatible (which has served me VERY well), and I come across this little jewel of wonderment. It works great, and it doesn't even break compatibility with my Vista sidebar gadget!

My only downer was that I couldn't get the method of using a subfolder to work right. I'll tinker with it later. I probably just had a typo if you say you've tested it.

Thanks Ultima!

Share this post


Link to post
Share on other sites

Here I combined it for you.

Replace your webui.zip with this one:

http://www.pandemonion.com/webui-shell/webui.zip

[ul][li]WebUI v0.362 WIP ver 2009122423072271 (also includes this fix)

[/li][li]miniui ver 2009111121543376

[/li][/ul]

Then browse to http://ip:port/gui/mini/index.html for the mini.

[edit]

I'll be keeping this webui.zip updated with both the latest webui WIP and MiniUI. Keep an eye on the version numbers to make sure it is the latest.

Share this post


Link to post
Share on other sites

Note that I never actually tested it -- it's just that there isn't any reason it shouldn't work that way :P Good to see that my theory hasn't failed me xD

Share this post


Link to post
Share on other sites

IMG_0001.png

This is the default look on an iPhone. The width is too large making everything appear really small in comparison with the your screenshots.

The MiniUI is still workable, but the amount of zooming and scrolling is a real nuisance.

Great application, thanks for the work. Once fixed I'll probably be using this non-stop :).

Share this post


Link to post
Share on other sites

Yup, the size is still tiny when in horizontal mode. It gets a little bit bigger, but it seems more like the size is being taken relative to the width. You can zoom in, but everything gets large leading you to be scrolling constantly.

The size of the authors screenshots seems like it should fit perfectly into the iPhone's display.

Also not sure what you meant by "stretch" things. If you view normal sites at first they fit into the screen so everything becomes condensed.

Share this post


Link to post
Share on other sites

Well I asked about stretch, because that's what I don't see in Safari/Firefox. When I tested IE6, it shows the same basic view except the "tabs" up top don't color (likely CSS)... and it was "stretched". I had 3 "columns" worth of whitespace between the sides. I honestly don't know what's up. I don't suppose there's a console/debugger in that browser? Does the iphone have any other browsers available?

Share this post


Link to post
Share on other sites

"The UI is still incomplete (no filtering, no categories/labels, etc), but it works for light uses."

Does this mean you will continue working on the MiniUI?

this is a must for me^^

ill install it as soon as i get home... but now i gotta make a small computer that consumes as little energy as possible so that it can stay on and download non-stop..

Share this post


Link to post
Share on other sites

Provided I have the time, yes, I intend on maintaining this.

@thelittlefire: Indeed, I don't bother to handle guest logins at the moment.

@alamarco:

On Opera Mobile, you need to view the page in Mobile view, since Opera Mobile 9.5 insists on stretching the page extremely wide to "emulate" a large screen (so that normal web pages work well with mobile devices). Nothing I can do about that either.

Seems the same issue is plaguing iPhone Safari. As far as I can tell, only way I can fix that would be to force a fixed width, but that won't be pretty on all devices either.

Share this post


Link to post
Share on other sites

Maybe can you detect the browser and/or device where your software is running and adjust the display ?

I dunno if it's possible, maybe there is a command to do that...

Share this post


Link to post
Share on other sites

Not easy, and I don't feel like doing that. That would mean that I'd have to special-case every single device out there and their possible resolutions -- not happening.

Share this post


Link to post
Share on other sites

Or maybe an option box for the user who can adjust the display and save its settings if the default ones are not optimal.

Share this post


Link to post
Share on other sites

Sounds possible, but I'd have nowhere to save it other than webui.cookie, and that's already being used by Directrix's WebUI. What probably needs to be done is for there to be some standardized way to share the cookie among UI developers (maybe make it a dictionary, and have a key reserved/"registered" for each interface?), but at this point, such a standard doesn't exist. Until it does, I'll have to leave it at that.

(And having a shared dictionary with reserved keys might be problematic if there are buggy UIs that corrupt the cookie -- it'll corrupt the entire key, screwing up settings for all UIs).

Share this post


Link to post
Share on other sites

Sorry for late reply, been busy.

Not sure about programming via the WebUI API, but for most websites made they do include special cases. When using AJAX for example, you have to be able to detect the browser. If I remember correctly it's 1-3 lines to detect the browser and apply the correct function that the browser uses.

Unfortunately for iPhone there is no Mobile View that Opera seems to have.

Share this post


Link to post
Share on other sites

Yes, the XMLHttpRequest is created differently from browser to browser, but there are only a few ways (2 for IE, 1 for all other W3C-compliant browsers). Compare that with the number of possible resolution/device combinations (along with all of the yet unseen devices), and you'll realize how much more daunting the latter is compared to the former.

Nevertheless, I don't do any browser detection. I simply use fallbacks when particular methods of creating the XHR object fail.

Having the width be configurable is the way to go, but as I mentioned, there would need to be coordination among WebUI developers about how webui.cookie is used. In the mean time, I might just expose the width in a way that would make it easy for users to modify on their own in the code... I don't know.

Share this post


Link to post
Share on other sites

I just wanted to say THANK YOU!

I've been looking for a good, simple web ui that works on my HTC Mogul (WM6.1) and I have to say that this one is hand's down the winner in my book!

Great Job and Thank you again! I've been going mobile only for the month of October and this has helped me get a few things done that I couldnt have otherwise!

You Rock!

Share this post


Link to post
Share on other sites

New build posted...

- Width is now configurable by editing config.js (not too completely helpful for Opera Mobile, but oh well!)

- Paging has been implemented for torrent lists (not files list yet)... Setting the items per page to 0 reverts to the old behavior (list all torrents in a single page)

- Sorting/filtering/searching has been implemented. Total upload and download speeds are now calculated

- Opera Mobile is still annoying and buggy as hell (Opera Mini FTW!)... It behaves crazily with fixed positioned elements (the tabbar and toolbar)

Share this post


Link to post
Share on other sites

Works great on the T-Mobile G1 (android) if you have the Auto-Fit Web Pages item checked.

Plus adding a torrent works great with Android's Copy-Paste URL feature!

Share this post


Link to post
Share on other sites