I took default imdb.bundle and stuck =(
First of all, there is no year in search result (titleNoFormatting), for example for Avatar ([link](http://ajax.googleapis.com/ajax/services/search/web?v=1.0&rsz=large&q=avatar+site:kinopoisk.ru)) titleNoFormatting is "Аватар" and this is desired name in Russian (kinopoisk.ru google index and internal site search are really good, it can find movie by both eng and rus names). So I removed imdbYear from here (or it drops to "strange title"):
# Parse the name and year.<br />
kinopoiskName = self.parseTitle(title)<br />
if not kinopoiskName:<br />
# Doesn't match, let's skip it.<br />
Log("Skipping strange title: " + title)<br />
continue<br />
else:<br />
Log("Using [%s] from [%s]" % (kinopoiskName, title))<br />
Than search:
if len(splitUrl) == 7 and splitUrl[-2].startswith('fil'):<br />
id = splitUrl[-1]<br />
Log("Found id " + id) <br />
if id.count('+') > 0:<br />
# Penalizing for abnormal tt link.<br />
Log("SAME ID" + id) <br />
scorePenalty += 10<br />
try:<br />
# Don't process for the same ID more than once.<br />
if idMap.has_key(id):<br />
continue<br />
<br />
idMap[id] = True<br />
<br />
# Check to see if the item's release year is in the future, if so penalize.<br />
if kinopoiskYear > datetime.datetime.now().year:<br />
Log(kinopoiskName + ' penalizing for future release date')<br />
scorePenalty += 25<br />
Log("FUTURE") <br />
<br />
# Sanity check to make sure we have SOME common substring.<br />
longestCommonSubstring = len(Util.LongestCommonSubstring(media.name.lower(), kinopoiskName.lower()))<br />
Log("LCS!" + Util.LongestCommonSubstring(media.name.lower(), kinopoiskName.lower()))<br />
<br />
# If we don't have at least 10% in common, then penalize below the 80 point threshold<br />
if (float(longestCommonSubstring) / len(media.name)) < .15: <br />
scorePenalty += 25<br />
Log("LENGTH")<br />
<br />
# Finally, add the result.<br />
results.Append(MetadataSearchResult(id = id, name = kinopoiskName, year = year, lang = lang, score = score - (scorePenalty + subsequentSearchPenalty)))<br />
except:<br />
Log('Kinopoisk Result ' + id)<br />
pass<br />
<br />
# Each search entry is worth less, but we subtract even if we don't use the entry...might need some thought.<br />
score = score - 4
logfile talks about some results looks like:
2010-09-16 20:48:15,945 (-4faed000) : INFO (__init__) - Using [(None, None)] from [Аватар]<br />
2010-09-16 20:48:15,945 (-4faed000) : INFO (__init__) - Found id 251733<br />
2010-09-16 20:48:15,945 (-4faed000) : INFO (__init__) - Kinopoisk Result 251733
But when I try "Fix incorrect match", searchlist is empty =( What's wrong?