DVD Profiler Companion
What is it?
The DVD Profiler Companion is intended to be a collection of tools that utilise the information in your DVD Profiler database (via an XML export).
The companion is being built using the Mozilla Platform (via XULRunner), leveraging the same technologies as Mozilla Firefox. The source code of the Companion is included with the download and is available under the terms of the GPL.
So what does it actually do?
At the moment, the DVD Profiler Companion consists of 3 tools. A website generator, an image renamer, and a tool to help 'import' a DVD Profiler XML export back into it. You're probably here for the website generator.
Website Generator
The problem
As a user of DVD Profiler, you're entitled to free online storage of your
collection for others to view in MyProfiler
. Which is great, except
you have a choice of 2 'Look and Feels', both of which look like a drunken
monkey designed them.
A
Drunken Monkey(from http://ip2much.com/journal/?p=24)
In Blue
Plum Peachy
The world deserves better. You deserve better.
Why the DVD Profiler Companion's websites are better
System-native appearence
The navigation on the websites generated by the DVD Profiler Companion adopt the same styling used by actual applications on your system. And not just your system — these websites adapt to the system of the viewer.
Viewed
in Firefox using Windows XP's 'Silver' theme, the navigation uses muted greys
and whites
but
when viewed with Windows XP's 'Luna' theme, the navigation uses shades of beige
In
KDE, viewing in Konquerer uses bigger fonts and uses a blue highlight to fit
in with the system.
but
in this Gnome environment, orange-brown colours are a better fit.
On
a Mac, you can see the light blues and distinctive white-grey gradients.
Infinitely Customisable
Yes. Infinitely. Anything you can do with a DVD Profiler Skin, the DVD Profiler Companion can reproduce. If you're not an HTML wizard, then you can take advantage of the 350+ skins available for public download on intervocative.com. The DVD Profiler Companion will examine the skins, make some changes so that they work better in the wide world of the WWW and spit out a website.
Fast
Want a website in under 60 seconds? It can be done with the DVD Profiler Companion (depending on PC spec, collection size and options chosen). In tests performed on a 15-month old PC, the DVD Profiler Companion proved itself capable of processing a 1500 DVD collection in under a minute (without cross-links).
Boxset support
Do you take advantage of DVD Profiler's ability to handle boxsets? If you do, then you'd probably like to see the DVDs online grouped in the same way you placed them. The DVD Profiler Companion does just that. See the screenshots above.
Full International support
MyProfiler
has trouble handling characters that aren't part of the
standard English alphabet (e.g. accents, smart quotes, em-dashes, ™). The DVD
Profiler Companion doesn't.
Are you German? or French? or Danish? or Swedish? or Finnish? Then you can have a website that uses your own language.
Cross-linking
Do you ever browsed a collection and wondered I wonder what other movies
this person has been in?
. Or maybe you thought I wonder if this person
has any more movies from 1943?
. Websites generated by the DVD Profiler
Companion have full cross-referencing between actors, actresses, major film
crew, production years, production studios, regions, localities, genres and
languages (audio and subtitled).
Larger cover scans
Fed up of those tiny little thumbnails? The DVD Profiler Companion will happily take advantage of the same full-size scans that DVD Profiler uses.
Bookmarking/Adding to favorites
Such a simple thing, but have you ever tried to bookmark a specific DVD in
a MyProfiler
collection so that you can come back to it later? It simply
can't be done. The DVD Profiler Companion supports bookmarking.
Cover Renamer
This was coded in response to a plea for help in the DVD Profiler forums. All it does is make a copy of the DVD Profiler folder that contains the cover scans for your DVDs, but renames them according to the title of the DVD, and not the barcode. It's not something you're ever likely to use, but it's there if you do. It's brain-dead simple to use — so I won't bother explaining it here.
Recovery Tool
Sometimes people ignore DVD Profiler's built-in backup tool, and think that an XML export is a backup (despite 'Backup' being before 'Export' on the file menu). This tool will take that XML 'backup', and export 3 CSV files that can then be used with the 'UPC Tool', developed by Fred Whiteside to insert that data back into DVD Profiler.
Download (and revision history)
If you get an error message when trying to load the standalone version of the DVD Profiler Companion, then you probably need to install the Microsoft Visual C++ 2005 Redistributable.
The latest beta is listed here for those willing to try experimental software only - whilst beta versions often contain exciting new features and important bug fixes, they have not been as extensively tested as 'full versions', and may have unexpected regressions in functionality. But I do try to avoid that...
- 0.4 beta 3
- Added support for <DP NAME="DIRECTOR"> to website generator
- Changed website generator to output 1 link/person entry and not a seperate link for each of their names
- Reduced memory usage by 1/3rd when importing XML
- Added utility to extract cast and crew information from IMDb. Works for both films and TV series.
- Support for DVD Profiler's use of the 'Virtual Store' under Windows Vista
- 0.35 (standalone) (Firefox extension)
- Added a couple of names to the credits
- Added ability to use the original title in the navigation list (by itself, or with the DVD title)
- Fixed bug that meant child profiles never had descriptions added to them in the navigation list
- Removed a couple of run-time sanity checks that failed when DVD Profiler wasn't installed into with the installer, merely copied from a previous install
- Added mapping of 'Tjeckish' to 'Czech'
- Better adult/non-adult filtering of DVDs without a rating specified
- Added tool to help 'import' an XML export.
- Improved caching of last-used-XML (fixes issues with multiple XML files)
- Available languages are now sorted alphabetically
- Improved compatibility between non-English output, and skins designed to be English-only
- Bumped the internal version number associated with saved skins due to the language-compatibility work. This means you will need to recreate any saved skins
- Improved handling of linebreak->paragraph conversion in overviews/notes
- Fixed bug where filtering on the HTML removed all child profiles
- Fixed issues with back button in Firefox (and other Gecko browsers)
- 0.31 (standalone) (Firefox extension)
- Adjusted handling of whitespace in the processed XML, to enable better compatibility with XML previously processed by MSXML.
- Adjusted the data storage behind the cross-linking of cast/crew to reduce the number of files needed. This slightly increases the size of the data files, but massively reduces the wasted space caused by file system overheads. The reduced number of files needed has had the welcome side-effect of cutting down generation time by approx 80%.
- Allows updating of previously saved skins (i.e. it will delete the old version when you try create a new skin with the same name).
- Fixed bug that occurred when DVD Profiler lists boxset children, which don't exist in the collection - expand/collapse twistys are now only created for boxsets with children that are present.
- When mousing over a title in the title list, the text now uses the system text highlight colour, to provide better contrast with the 'highlighted' background.
- Bumped the internal version number associated with saved skins due to some of the above changes. This means you will need to recreate any saved skins
- 0.3 (standalone) (Firefox extension)
- XML is preprocessed before opening to correct a major bug in the way non-ASCII characters are represented within the XML by DVD Profiler (numeric entities refer to the local Windows code page, and not to ISO/IEC 10646).
- XML is preprocessed before opening to correct a major bug in the way DVD Profiler exports a large notes field (missing </Notes>, causing incorrect nesting of all following XML elements).
- Inclusion of Danish, Finnish, French, German and Swedish languages (both for GUI and output)
- Cross-link support for people, subtitles, audio languages, ratings, regions, localities, genres, production years and studios
- 81% faster (on a like-for-like basis - i.e. when cross-linking is disabled).
- Cross-platform support (Windows/Mac/*nix)
- 'About' box, with credits and access to the licence.
- Can include/exclude adult/non-adult profiles
- New and improved HTML title listing, with system-native appearance, dynamically sortable and with expanding/collapsing boxsets (collapsed by default)
- Automatic identification and extraction of inline JavaScript and CSS from skin HTML into a single external file (takes up less space, quicker to download).
- Can bookmark a specific page from the output
- Workaround for major bug in Safari preventing viewing of the output.
- Switched default output location to 'My Documents' (from <installfolder>\output)
- Removed 'purchase date' sort option
- Improved robustness of file handling
- Support for using cover scans from any URL
- Review-charts now match those used by IVS
- Better credit for skin authors in generated HTML
- User-proofing of many wizard pages
- Option to include/exclude descriptions from titles in the title list
- Support for 3 PHPDVDProfiler extensions to the skin system (<DP NAME="EVENTS">, <DP NAME="TAGS">,
- and the attribute 'showwishlistpriority' on <DP NAME="COLLNUM">)
- Improved compatibility with skins that try and locate other files based on an assumption they are running on a users local system.
- Support for true/false for yes/no attributes in tags.
- Changed location of stored files
- Attribute parser can now handle spaces between the name and value.
- Added shims to HTML output so that skins using browser specific code have a better chance of working cross-browser.
- Fixed reversed logic in output for <DP NAME="LOANDUE">
- Website-generation progress indicator now uses numbers as well.
- Alphabetical sort is now case-insensitive to match DVD Profiler behaviour.
- Added 'Image Not Available' image
- Modularised the code to make future maintainance easier
- Improved/added documentation to most of the code
- Switched from customizing the default wizard widget, to a custom widget.
- Many, many optimisations in logic
- Run-time sanity-checking
- Output is saved as UTF-8
- Support for use as a Firefox extension
- 0.2.2
- Sort by collection number no longer stops sort when encountering an empty collection number (for real this time)
- 0.2.1
- Sort by collection number no longer stops sort when encountering an empty collection number
- Better recovery when DVD Profiler's location can't be identified (looks for beta as well, defaults to empty location rather than "undefined")
- 0.2
- ~98% of the code rewritten
- Abandoned XSL transformations as the method of parsing the XML in favour of E4X.
- Completely replaced the old temporary GUI with something much more suitable (wizard)
- Fixed the UI 'hang' that occured after clicking 'Go' (all processing taking place on the UI thread)
- Removed need for previously-extracted skin to be saved in 'skin.html'
- Removed need for previously-extracted skin images to be copied to 'htmltest'
- All skins and associated images are stored for easy reuse
- Reads location of the last DVD Profiler XML export from the registry (can be overridden)
- Skins requesting the DVD Profiler version/build are now get the values from dvdpro.exe instead of hard-coded values (2.5.0/915).
- Skins requesting the DVD Profiler language are now fed the language used by DVD Profiler instead of the hard-coded 'English' (actually the filename of the translation without the .dpt, but effectively the same)
- The skin's title and author(s) are embedded into the HTML output
- Date format is very configurable at run-time (if you want
Saturday, Day 077 of 2006
you can have it) - Choice of local images or those from MyProfiler.
- If applicable, cover scans are now copied to output folder.
- Changed font/size of navigation list to make it slightly easier to read
- List of DVDs in navigation list can be sorted by title, date or collection number (not dynamic)
- Fixed algorithm used in review-chart generator
- Got rid of the memory leak
- Added 'cover renaming' functionality requested by astensgaard.
- 0.1.2
- Reduced aggressiveness when searching for skin-specified line breaks
- Disabled the ability of the preview window to invoke Java applets
- 0.1.1
- Better handling of missing = in ATTRIBUTE=VALUE pairings
- 0.1
- Got rid of the crashes :-)
- 250% speed increase (10000% if the skin used
<DP NAME="PROGRAM_VERSION">!) - Much more conservative with RAM use
- Several tweaks to the algorithms to match DVD Profiler quirks
- Added support for several older skin tags
- Removed 2 typos that were causing problems in otherwise-correct code
- 0.09
- Initial release to testers
Known Issues
-
On Windows XP SP2, Windows 2003 SP1 and Windows Vista systems, the default security settings of Internet Explorer prevent viewing of generated websites from your local hard drive. If you wish to view the website before uploading, you need to use an alternate browser or lower the security settings.
No, I can't tell you why Microsoft are willing to let 'any old website from a random computer on the internet' do things on your PC that a file already on your system is prohibited from doing...
-
All currently released versions of Apple WebKit suffer from a JavaScript bug that prevents user-sorting of the navigation list in generated websites. This bug is not present in Apple's development builds, but I don't know when they plan to release a version with the fix included. Safari, Shiira, Swift, OmniWeb and S60 phones all use WebKit.
-
All versions of Apple WebKit suffer from a JavaScript bug that may prevent usage of the 'enhanced' viewing mode that enables boxset expansion/collapse and cross-link support in generated websites. The bug has been reported to Apple.
The last bug I reported to Apple has yet to be fixed 10 months on...
Website Generator - roadmap
This will take the exported XML from DVD Profiler and generate a set of HTML pages from it.
Project Roadmap
0.1 - Basic functionality completeMinimal GUITakes skin HTML, DVD Profiler XML and generates a complete HTML page for each profileGenerates a list of profiles for navigationSaves output to disk- 0.2 - GUI + Core rewrite
Learn lessons from 0.1, and do the core again (E4X, not XSLT)Ask user for input/output locationsSave skins and images for future useCopy cover images to output folder if wantedOffer use of MyProfiler imagesLooks goodEasy to use (wizard?)- 0.3 - Navigation
Copy styling from the system, and apply it to the navigationExpanding/Collapsing BoxsetsDynamic sort of titles by alphabet, collection number, owned/ordered/wishlist2 navigation methods - AJAX with a framed fallbackGenerate pages for each cast/crew member, studio, rating, locality, region, genre, language...Option to hide 'adult' profiles- 0.5 - Size Reduction
- Try and reduce download size of the companion, by eliminating parts of XULRunner I'll never use
Extract inline JavaScript and CSS from profile pages, into a seperate file that can be cached for all profiles- Create thumbnails from cover images
- 0.6 - Incremental Generation
- Generate pages only where the underlying profile information has changed since last time
- 0.7 - Be Nice
- Incorporate HTML Tidy, so that all pages can be valid HTML, even where the original skin wasn't
- Ability to automatically upload generated pages
Cast/Crew Editor - roadmap
Building upon DVDFolks, the editor will be able to edit existing DVD Profiler cast and crew lists, as well as import from IMDb.
Project Roadmap
- 0.4 - IMDb import
- Port DVDFolks 0.8
- Include those bits that would have gone into DVDFolks 0.9
- Make it work with the new IMDb TV cast lists (now episode/page)
- 0.6 - Editing
- Editing of existing cast and crew
Sanity Checking - roadmap
I'm not sure exactly what I'll incorporate here. NameVariants-style functionality will certainly be a part.
Project Roadmap
- 0.8 - TBD
Graphing and Charting - roadmap
Expect something like DVD Profiler's built-in charting, but better.
Project Roadmap
- 0.9 - TBD
- Sort by number of films an actor appears in
