Z poziomu interfejsu XBMC znalezienie takich nieprawidłowości było niemożliwe.
Większość moich filmów ma poprawne nazwy katalogów więc pomyślełem że mogę użyć nazwy katalogu do weryfikcaji tego co XBMC przypisał do danego pliku na dysku.
XBMC składuje swoje dane w sqlite i ma ładny opis co gdzie leży. W związku z tym napisałem króciutki programik do weryfikacji mapowań XBMC:
require 'rubygems'
require 'sqlite3'
STOPWORDS = [ "the", "ii", "iii", "iv", "v", "vi", "3d"]
WHITELIST = YAML.load_file(ENV['HOME'] + '/bin/xbmc-verify.yml')
def detect_movie(title, path)
words = title.downcase.gsub(/[^a-z0-9]+/, " ").gsub(/ +/, " ").split(" ")
words.delete_if { |w| STOPWORDS.include? w }
dir = path.downcase
included = words.collect { |w| dir.include?(w) ? true : nil }.compact
included.length == words.length
end
db = SQLite3::Database.new ENV['HOME'] + "/.xbmc/userdata/Database/MyVideos34.db"
db.execute("select c00, c16, strPath from movieview" ) do |row|
next if WHITELIST.include? File.basename(row[2])
unless detect_movie(row[0], row[2]) or detect_movie(row[1], row[2])
movie_title = row[1]
movie_title << " (#{row[0]})" if row[0] != row[1]
puts "!!! #{movie_title} - #{row[2]}"
end
end

Od wersji 10.04 Ubuntu zaczęło być dla mnie na tyle dopracowane, że nie śpieszyłem sie z kolejnymi upgrejdami do nowszych wersji. Natomiast zawsze z niecierpliwościa obserwowałem co tym razem zostanie dodane/zmienione w tej wyśmienitej dystrybucji. Tym razem miał być to nowy interfejs więc zaraz po pojawieniu się wersji 'stabilnej' zrobiłem 2 upgrejdy - na kompuerze domowym i na laptopie. Pierwsze wrażenie - WOW, jak to teraz wygląda, nowy luncher ala osx, i ... zwis. Wróciłem do starego kernela na desktopie (Asus P5K Pro) i zniknęły problemy ze stabilnością. Przynajmniej tak mi się wtedy wydawało ;-) Co do samego nowego lunchera - jest świetny, uwielbiam jak ikonka epiphany (chat klient) podskakuje sobie po otrzymaniu nowej wiadomości - coś czego zawsze zazdrościłem osxowi (Adium) teraz mam w ubuntu.