r2d290 Skrevet 20. desember 2007 Forfatter Rapporter Del Skrevet 20. desember 2007 kanskje noen andre har tid til å skrive en guide? har omtrent ikke NOE peiling på perl... bruker windows... Har ganske grei generell kunskap om data, men innen programmering er jeg ganske blank... Lenke til kommentar
cyclo Skrevet 20. desember 2007 Rapporter Del Skrevet 20. desember 2007 Skal prøve å skrive kjappt hva du må gjøre for å komme igang: -Installer perl (jeg anbefaler ActivePerl distribusjonen på windows) -Lagre scriptet i en fil. F. eks. c:\scripts\brafilmripper.pl -Lag en ny mappe som heter output i mappen hvor skriptet ligger. (f. eks. c:\scripts\output) -Bytt ut '/tmp/rippercookiejar' med 'c:\tmp\rippercookiejar' -Start kommandolinjen. (Velg start->kjør. Skriv inn cmd og trykk enter) -Skriv perl c:\scripts\brafilmripper.pl og trykk enter. Lenke til kommentar
r2d290 Skrevet 20. desember 2007 Forfatter Rapporter Del Skrevet 20. desember 2007 høres ut som jeg skal klare det nå... takk skal du ha... kommer tilbake hvis jeg sliter Lenke til kommentar
r2d290 Skrevet 20. desember 2007 Forfatter Rapporter Del Skrevet 20. desember 2007 (endret) litt problemer dukket opp kopierte det scriptet du hadde laget, inn i notepad, endret på adressen, og lagret det som en .pl fil i script-mappa i C:\ Deretter lagde jeg en output-mappe i denne mappa. deretter kjørte jeg .pl fila med cmd, og fikk da opp et vindu der det stod: "Enter a valid film ID". Når jeg skrev inn "click", skjedde det ikke noe annet enn at det kom en ny linje der det stod "enter a valid film ID". Av det jeg har gjort nå, tror jeg ikke jeg brukte activePerl (jeg startet programmet, men fikk ikke helt forståelse av hva jeg skulle med den). edit: output-mappa er tom... Endret 20. desember 2007 av r2d290 Lenke til kommentar
cyclo Skrevet 20. desember 2007 Rapporter Del Skrevet 20. desember 2007 (endret) FilmID er ID nummeret på filmen hos brafilm. Om du går inn på en film på siden deres og klikker på en film, og deretter ser på URLen, finner du ID. F. eks. http://www.brafilm.no/film/310825-Man+of+the+Year.do Tallet jeg markerte rødt er da IDen du skal skrive inn. (Jeg gjorde det slik fordi det rett og slett var mest praktisk for min egen del) ActivePerl trenger du ikke starte. ActivePerl er bare en distribusjon av perl (som du trenger for å kunne kjøre scriptet). Programmet som legger seg i menyen som heter activeperl er programmet du kan bruke for å installere nye perl-moduler. Endret 20. desember 2007 av cyclo Lenke til kommentar
r2d290 Skrevet 20. desember 2007 Forfatter Rapporter Del Skrevet 20. desember 2007 (endret) aha... hva er path da? hele url-en (f.eks http://www.brafilm.no/film/309379-James+Bo...asino+Royale.do ) ?? hvor blir resultatet plassert, og hva skal jeg gjøre med det? edit: du sa noe tidligere om at noe skulle bli lagret som en xml-fil? Endret 20. desember 2007 av r2d290 Lenke til kommentar
cyclo Skrevet 20. desember 2007 Rapporter Del Skrevet 20. desember 2007 Jupp. Den skal legge en xml fil i output mappen... Lenke til kommentar
r2d290 Skrevet 20. desember 2007 Forfatter Rapporter Del Skrevet 20. desember 2007 (endret) og hvis den ikke gjør det? du sa jeg skulle skrive: $cookies = HTTP::Cookies->new(file=>'c:\tmp\rippercookiejar',autosave => 1,); jeg opprettet derfor mappen tmp (?), er det riktig? du sa at hvis jeg hadde windows, måtte jeg endre på noen linjer; er det DEN linja du snakket om, eller er det mer jeg må forandre på`? edit: fikk det til (med takk fra en som kan detta ganske mye bedre enn meg). er likavel en del ting som ikke funket helt: - bildet ble helt rart (mange fargerike firkanter) - Regissør - Produsent - Kategori (sjanger) - language - skuespillere (RL and in film) - Filstørrelse - (oppløsning) - (kommentarer som folk har skrevet) syntes spesielt det var rart det med bildet... Han som hjalp meg, hadde også det samme problemet. Bildet som lagres i output ser like kornete og dårlig ut, men orginalbildet inne på linken som den henter fra er bra... Endret 20. desember 2007 av r2d290 Lenke til kommentar
cyclo Skrevet 21. desember 2007 Rapporter Del Skrevet 21. desember 2007 (endret) Gardermoen ble stengt på grunn av tåke i går (hvorfor i h** måtte de bygge på gardermoen, norges tåkehovedstad?). Så da er jeg visst fortsatt her. Ser visst at noen av tingene ikke blir lastet ned korrekt. Det skyldes at brafilm endret strukturen sin for en måned eller to siden. Jeg fikser det jeg kan nå etterpå. - Regissør - Produsent - Kategori (sjanger) - skuespillere Skal være med, jeg skal ordne det. - Land fungerer som det skal, men om du ser etter så er det en feil hos brafilm. Alle filmene får oppgitt land som null. Ikke noe jeg får gjort med det. - Oppløsning og filstørrelse er ikke noe som ligger hos brafilm. Det får du ordne selv etterpå i ANT programmet. - Kommentarer fra folk har jeg ikke lastet ned. Ser ingen poeng i det Du må gjerne endre scriptet selv. Hva angår bildene vet jeg ikke helt hva jeg skal si. Jeg kjører på linux her, og har ikke noe som helst problemer med bildene... PS! Du skriver skuespillere (RL and in film) Vell. Man kan ikke hente ut annet enn det brafilm fraktisk presenterer av data... Endret 21. desember 2007 av cyclo Lenke til kommentar
cyclo Skrevet 21. desember 2007 Rapporter Del Skrevet 21. desember 2007 (endret) Legger ut ny fungerende versjon: #!/usr/bin/perl use LWP::UserAgent; use HTTP::Request; use HTTP::Response; use HTTP::Cookies; $DEBUG = 0; $cookies = HTTP::Cookies->new(file=>'/tmp/rippercookiejar',autosave => 1,); $ua = new LWP::UserAgent; $ua->cookie_jar($cookies); while ($filmID !~ /\d+/) { print "Enter a valid film ID: "; $filmID = <>; } chop($filmID); $request = new HTTP::Request 'GET', 'http://www.brafilm.no/browse.do?show=movie&id='.$filmID; $ua->prepare_request($request); $response = $ua->request($request); if ($response->is_success) { $html = $response->content; ($garbage,$movie) = split(/<div id="browseMovieInfo">/,$html); if ($movie =~ /<h1>(.+)<\/h1>/i) { $title = $1; debug("TITLE: ".$title); } if ($movie =~ /\((\d{4})\)/i) { $filmyear = $1; debug("YEAR: ".$filmyear); } if ($movie =~ /stars_1_(\d{2})\.gif/i) { $rating = $1; $rating = $rating*2/10; debug("RATING: ".$rating); } if ($movie =~ /<p class="movieDescription">([^<]+)/i) { $description = $1; $description =~ s/[\t\n\r]//g; debug("DESCRIPTION: ".$description); } if ($movie =~/Originaltittel[\n\t]+<\/th>[\n\t]+<td>[\n\t]+(.+)[\n\t]+<\/td>/i) { $originaltitle = $1; debug("ORIGINALTITLE: ".$originaltitle); } ($garbage,$temp) = split(/Sjanger/,$movie); ($sjangersource,$garbage) = split(/kkelord/,$temp); while ($sjangersource =~ /href="\/category\/\d+.+\.do" title="Les mer: .+" >(.+)<\/a>/gi) { push (@s,$1); } foreach (@s) { $sjanger .= $_.", "; } chop($sjanger); chop($sjanger); debug("SJANGER: ".$sjanger); ($garbage,$temp) = split(/Manus/,$movie); ($manussource,$garbage) = split(/Skuespillere/,$temp); while ($manussource =~ /href="\/person\/\d+.+\.do" title="Les mer: .+" >(.+)<\/a>/gi) { push (@m,$1); } foreach (@m) { $manus .= $_.", "; } chop($manus); chop($manus); debug("MANUS: ".$manus); ($actorsource,$garbage) = split(/Regis/,$garbage); while ($actorsource =~ /href="\/person\/\d+.+\.do" title="Les mer: .+" >(.+)<\/a>/gi) { push (@a,$1); } foreach (@a) { $actor .= $_.", "; } chop($actor); chop($actor); debug("SKUESPILLERE: ".$actor); ($directorsource,$garbage) = split(/Premieredato/,$garbage); while ($directorsource =~ /href="\/person\/\d+.+\.do" title="Les mer: .+" >(.+)<\/a>/gi) { push (@d,$1); } foreach (@d) { $director .= $_.", "; } chop ($director); chop ($director); debug("DIRECTOR: ".$director); if ($movie =~/Spilletid:[\n\t]+<\/th>[\n\t]+<td>[\n\t]+(\d+) tim (\d+) min/gi) { $playtime = $1*60 + $2; debug("PLAYTIME: ".$playtime); } if ($movie =~/Land:[\n\t]+<\/th>[\n\t]+<td>[\n\t]+(.+)[\n\t]+<\/td>/gi) { $country = $1; $country =~ s/,/, /g; debug("COUNTRY: ".$country); } if ($movie =~/Tale\):[\n\t]+<\/th>[\n\t]+<td>[\n\t]+([^<]+)/gi) { $tale = $1; $tale =~ s/[\n\t]//g; chop($tale); $tale =~ s/,/, /g; debug("TALE: ".$tale); } if ($movie =~/Lydformat:[\n\t]+<\/th>[\n\t]+<td>[\n\t]+([^<]+)/gi) { $audio = $1; $audio =~ s/[\n\t]//g; chop($audio); $audio =~ s/,/, /g; debug("LYDFORMAT: ".$audio); } if ($movie =~/Undertekster\):[\n\t]+<\/th>[\n\t]+<td>[\n\t]+([^<]+)/gi) { $subtitle = $1; $subtitle =~ s/[\n\t]//g; chop($subtitle); $subtitle =~ s/,/, /g; debug("SUBTITLE: ".$subtitle); } if ($movie =~/Bild:[\n\t]+<\/th>[\n\t]+<td>[\n\t]+([^<]+)/gi) { $video = $1; $video =~ s/[\n\t]//g; chop($video); $video =~ s/,/, /g; debug("VIDEO: ".$video); } while ($path eq "") { print "Enter the movie path:"; $path = <>; chop($path); } $path =~ s/VIDEO_TS.IFO//i; if ($path !~ /\\$/) { $path .= "\\"; } $path .= "VIDEO_TS.IFO"; while ($type !~ /[123]/) { print "Enter type:\n\t1) DVD on Hard-drive\n\t2) DVD\n\t3) DivX\n"; $type = <>; } @moviestypes = ("DVD on Hard-drive","DVD","DivX"); chop($type); $request = new HTTP::Request 'GET', 'http://www.brafilm.no/img/cover/movie/huge/'.$filmID.'.jpg'; $ua->prepare_request($request); $response = $ua->request($request); if ($response->is_success) { open IMAGE , ">output/$filmID.jpg"; print IMAGE $response->content; close IMAGE; } else { die "Error retrieving picture"; } } else { die "Error retrieving movie with ID $filmID"; } open OUTPUTFILE, "output/dvddatabase.xml"; @outputfile = <OUTPUTFILE>; close OUTPUTFILE; foreach $line(@outputfile) { if ($line =~ /<Movie/) { push (@movies,$line); } } $noofmovies = @movies; ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time); open BF, ">output/dvddatabase.xml"; print BF "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n<AntMovieCatalog Format=\"35\" Version=\"3.5.0 (2005-05-29)\" Date=\"" .sprintf("%02d.%02d.%04d %02d:%02d:%02d",$mday,$mon+1,$year+1900,$hour,$min,$sec) ."\">\n\t<Catalog>\n\t\t<Properties/>\n\t\t<Contents>\n"; foreach $line(@movies) { print BF $line; } print BF "\t\t\t<Movie Number=\"".($noofmovies+1)."\" Checked=\"True\" MediaType=\"".$moviestypes[$type-1]."\" Date=\"" .sprintf("%02d.%02d.%04d",$mday,$mon+1,$year+1900)."\" Rating=\"$rating\" OriginalTitle=\"$originaltitle\"" ." TranslatedTitle=\"$title\" FormattedTitle=\"$title\" Director=\"$director\" Producer=\"$manus\" Country=\"$country\"" ." Category=\"$sjanger\" Year=\"$filmyear\" Length=\"$playtime\" Actors=\"$actor\" URL=\"$path\" Description=\"$description\"" ." VideoFormat=\"$video\" AudioFormat=\"$audio\" Languages=\"$tale\" Subtitles=\"$subtitle\" Size=\"0\" Disks=\"1\"" ." Picture=\"$filmID.jpg\"/>\n"; print BF "\t\t</Contents>\n\t</Catalog>\n</AntMovieCatalog>"; close BF; sub debug { local ($toprint) = @_; if ($DEBUG==1) { print $toprint."\n"; } } Så nå gjennstår det bare å legge inn de siste 30 filmene mine på ny. Sukk. Endret 21. desember 2007 av cyclo Lenke til kommentar
pertm Skrevet 21. desember 2007 Rapporter Del Skrevet 21. desember 2007 Jeg har brukt Readerware en del og det fungerer fint. Bruker ikke delen som har med DVDer men den med bøker. Det finne er at man kan bruke strekkoder til å lese inn det du skal lese inn. En kan om en har bruke strekkode leser også. Det jeg så som problem da jeg så på minne DVDer at ganske mange av dem ikke lest inn siden de var Norsk eller ikke Engelsk. Det går an å lese inn fra eksterne kilder selv om etter det jeg husker var det ikke fra så mange kilder på DVDer. For bøker var det langt flere og til og med et norskt sted. Hvis en vil og kan så kan en sette det opp til å hente fra nye steder. Lenke til kommentar
cyclo Skrevet 21. desember 2007 Rapporter Del Skrevet 21. desember 2007 Obs! Readerware koster penger... Lenke til kommentar
r2d290 Skrevet 21. desember 2007 Forfatter Rapporter Del Skrevet 21. desember 2007 (endret) hehe... kammeraten min kom fra egypt igår, og han var vel ett av de siste flyene som fikk lov til å lande der pga været... dette var omtrent i 21-22 tiden. Var det da du også skulle ta flyet? Jeg skjønner poengene dine i den første av de to siste poengene. Grunnen til at jeg skrev opp en del ting som "manglet" uten at det eksisterte på bra film, var egentlig fordi jeg var litt trøtt da jeg skrev det. Jeg snakket nemlig med en kammerat om de tingene, og laget en liste over hva som kanskje kunne forbedres (da gjort av han, og ikke deg), men så glemte jeg å fjerne det da jeg lagde lista til deg... Men tusen takk for at du endret på scriptet... skal teste det nå... edit: så vidt jeg har forstått (uten å ha prøvd) funker strekkodeleser i ant movie også... Endret 21. desember 2007 av r2d290 Lenke til kommentar
r2d290 Skrevet 21. desember 2007 Forfatter Rapporter Del Skrevet 21. desember 2007 (endret) bra jobba, nå funka det veldig mye bedre... men hadde det ikke vært en idè å få til en loop i det scriptet ditt, så du slipper å kjøre programmet hver gang du legger inn en ny film? edit: sånn å forstå at ant movie funker i linux? Endret 21. desember 2007 av r2d290 Lenke til kommentar
cyclo Skrevet 21. desember 2007 Rapporter Del Skrevet 21. desember 2007 hehe... kammeraten min kom fra egypt igår, og han var vel ett av de siste flyene som fikk lov til å lande der pga været... dette var omtrent i 21-22 tiden. Var det da du også skulle ta flyet? Jupp. 21:40 skulle flyet gå. Stod på Gardermoen i en og en halv time før de sa at ingen flere fly ville lette. Gøy å bruke 300 kr på flytoget til ingen nytte. Jeg skjønner poengene dine i den første av de to siste poengene. Grunnen til at jeg skrev opp en del ting som "manglet" uten at det eksisterte på bra film, var egentlig fordi jeg var litt trøtt da jeg skrev det. Jeg snakket nemlig med en kammerat om de tingene, og laget en liste over hva som kanskje kunne forbedres (da gjort av han, og ikke deg), men så glemte jeg å fjerne det da jeg lagde lista til deg... Om han gidder kan du jo få fikset det slik at det henter infoen som mangler fra imdb eller lignende. Selv bruker jeg bare infoen på TV-skjermen og der vil jeg for mye info heller. Blir fort uoversiktelig. Men tusen takk for at du endret på scriptet... skal teste det nå... Joda, ikke noe problem. (Jeg måtte jo uansett endre det for min egen del) edit: så vidt jeg har forstått (uten å ha prøvd) funker strekkodeleser i ant movie også... Jupp. Det skal fungere ja, men jeg har ikke testet det selv heller. Lenke til kommentar
r2d290 Skrevet 21. desember 2007 Forfatter Rapporter Del Skrevet 21. desember 2007 ahh, det betyr at mediaportal kan åpne xml-filer? Lenke til kommentar
cyclo Skrevet 21. desember 2007 Rapporter Del Skrevet 21. desember 2007 bra jobba, nå funka det veldig mye bedre... Hehe. Det tok hele 5 minutter å fikse men hadde det ikke vært en idè å få til en loop i det scriptet ditt, så du slipper å kjøre programmet hver gang du legger inn en ny film? Satt og tenkte på det selv mens jeg la inn alle filmene som manglet info her. Du kan egentlig gjøre det selv. Over linjen while ($filmID !~ /\d+/) { skriver du inn en ny linje: while ($filmID ne "exit") { og under linjen close BF; skriver du inn en } Da vil scriptet loope til du skriver exit når den ber om filmID. edit: sånn å forstå at ant movie funker i linux? Nope. Jeg bruker ikke ant movie i det hele tatt. Men min PVR (altså PC-en jeg kjører TV gjennom) støtter filmlister i ant movie databaseformatet. Så jeg bare genererer xml filen på linux og kopierer den rett over på PVR maskinen, uten å være innom ant movie i det hele tatt. Lenke til kommentar
cyclo Skrevet 21. desember 2007 Rapporter Del Skrevet 21. desember 2007 ahh, det betyr at mediaportal kan åpne xml-filer? Det er en plug-in som gjør at man kan ha filmlister i ant-movie formatet. Husker ikke hva plug-in heter, men den kommer opp som "Mine DVDer" på hovedmenyen... Lenke til kommentar
r2d290 Skrevet 21. desember 2007 Forfatter Rapporter Del Skrevet 21. desember 2007 men hva er det meningen å skrive i path? hvis det er meningen å skrive f.eks c;\filmer\casino royale, hva skal man da skrive hvis det er en kjøpt dvd? Lenke til kommentar
cyclo Skrevet 21. desember 2007 Rapporter Del Skrevet 21. desember 2007 (endret) Jeg har i det siste lagt inn alle mine nyanskaffede DVDer på filserveren. Path blir da sti til VIDEO_TS.IFO fila. F. eks. z:\DVD\LOTR\VIDEO_TS\VIDEO_TS.IFO Og om det er en DVD jeg ikke har kopiert inn på filserveren blir det da sti til samme fil på DVD-ROMEN. F. eks. e:\VIDEO_TS\VIDEO_TS.IFO OBS! For at dette funker trenger man et program som fjerner CSS realtime. Selv har jeg kjøpt DVDidle DVD Region+CSS Free Det kan også være sti til f. eks. .avi eller .mpeg filer Endret 21. desember 2007 av cyclo Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå