En tisdag kväll lata hacka.!
Så igår natt på runt 10 PM efter en tröttsam dag på jobbet, jag insåg att det bara tisdag endast och också där är ingen Arsenal Champions league match idag. Jag bestämde mig för att titta på en film. En bra sport baserat film.
Positivt var att jag har några bra hollywood filmer i min hårddisk (som mestadels har jag kopierat från min vänner hårddisk), och jag har inte sett de flesta av dem.
Men vilken film tillhör genre sport!!. Ahh. Jag kommer inte att göra en manuell sökning för varje film på google/imdb att hitta sin genre.
Jag ville ha en snabb lösning. En liten python-skript kommer att göra susen för mig här. Skriften tar namnet på varje fil i min film mapp och ge mig den genre som imdb rating som filmen.
Inte så lätt bro. Så först av allt, är filnamnet inte filmens namn. Filnamnen är som, We.Are.Marshall[2006]DvDrip[Eng]-aXXo eller Vita huset ner 2013 BRRip 720 p x264 AAC - orörda [P2PDL] eller The Sting.avi etc.
Att direkt söka efter dessa namn var inte att ge mig något resultat i IMDB. så jag behövde att extrahera film namn från dessa filnamn. Låt mig skriva en snabb regex för detta. Inte så tuffa. Efter att ha gjort några hit och prova jag kom med "^(.+?) \s[\ (\ [\d]. + " som ger verkliga resultat för de flesta fall. Resten var hanteras av re.
Nu kommer den hektiska delen. hämtar utdata med urllib och använda BeautifulSoup för att tolka den. Ahh.! Parsning är tröttsamt. Särskilt på tisdag kväll: P. Google hjälpte mig i detta. Det är denna IMDbPY paketet redan där. Om det har vissa problem, som det inte fungerar med python3 och det är lite långsam. Men det var fortfarande att lösa min användningsfall.
Efter att jag skrev en snabb script som finner namnet på filmen från filnamnet från min film mapp och fick mig resultatet. Ahha. Problemet löst.
< p > __author__ = 'hård' < br > Importera imdb
importera os
importera re
IA = imdb. IMDb()
INP = raw_input ("anger katalogplatsen film:")
Print(INP)
för i i os.listdir(inp):
i=i.replace ("." "")
i=i.Strip("AVI")
i=i.Strip("MKV")
m=re.search("^(.+?) \s[\(\[\d].+",i)
om m:
Name=m.Group(1)
s_result = ia.search_movie(name)
IF(len(s_result) > 0):
x = s_result [0]
IA.Update(x)
IF(x.has_key('genres') och x.has_key('rating')):
Print(Name+"-"+Str(x['rating']) + "" +str(x['genres'])) < /p >
Det tog cirka 10 minuter för att få mig resultatet. Och ja jag har valt Hoosiers, det första resultatet med genre sport (jag alltid trott giriga är bra: P). det var verkligen en snygg klocka.
Jag kan göra en massa andra saker också. Som sortera filmer av fallande ordning av imdb betyg och etc. Ja säker. Kommer att göra det senare. : P