Icons van folders aanpassen op basis van de xml inhoud van een .nfo file.

Status
Niet open voor verdere reacties.

Withaar

Verenigingslid
Lid geworden
8 apr 2001
Berichten
3.551
Ik heb m'n film files (met zo als de meeste mensen vermoed ik) netjes in mappen staan waarbij de map naam de naam van de film en het jaar heeft.
Als je de Media Companion of XBMC gebruikt, maak je ook gebruik van de scrape movie information optie.
Alle relevante info van een film worden daarbij in xml formaat in een .nfo file geplaatst in de film folder naast de film en wat ander bestanden.

Nu was ik op zoek naar een methode op de folders te taggen zodat je in het windows overzicht de attributen al zou kunnen zien en hier ook op kan sorteren.
Helaas lijkt dit niet niet te gaan, er waren vroeger wat programma's die hele basale tags konden toevoegen aan een folder maar er lijken er nu niet meer te zijn.

Om toch aan de map al te kunnen zien wat voor een soort film het betreft (ik denk dan aan genre en 'kijkwijzer') bedacht ik me dat het toch mogelijk moest zijn om dit via de folder image te doen.
Dit werkt met de volgende code ook prima (in de bijlage staat de code in een batch file + een ico file). [bron]

Code:
MKDIR "TEST FOLDER"
ATTRIB +s "TEST FOLDER"
COPY "image.ico" "TEST FOLDER/image.ico"
CD "TEST FOLDER"
COPY "./image.ico" "image.ico"  
ECHO [.ShellClassInfo] >> desktop.txt
ECHO ConfirmFileOp=0 >> desktop.txt
ECHO NoSharing=1 >> desktop.txt
ECHO IconFile=image.ico >> desktop.txt
ECHO IconIndex=0 >> desktop.txt
ECHO InfoTip= >> desktop.txt
CHCP 1252 >NUL
CMD.EXE /D /A /C (SET/P=ÿþ)<NUL > desktop.ini 2>NUL
CMD.EXE /D /U /C TYPE desktop.txt >> desktop.ini
DEL /F /Q desktop.txt
ATTRIB +S +H desktop.ini image.ico

nb De CHCP 1252 >NUL zorgt er voor dat het bestand in de noodzakelijke UTF-8 encoding wordt weggeschreven.
Zelf was ik die nog niet eerder tegen gekomen in een batch file...

Voor het testen prima, maar doel is natuurlijk dat een bestaande map aangepast wordt en dan niet 1 map maar alle (film) mappen in een root map.
Nu gaat me dat ook nog wel lukken. Waar het wat lastiger wordt is om de inhoud van de .nfo te gebruiken.
In de xml staan wat gegevens die ik graag zou willen gebruiken; Genre en 'kijkwijzer' (mpaa).
Nu kunnen er meerder genre waarden in de xml staan, mijn idee was (om te beginnen) eerst maar eens de eerste die gevonden wordt te gebruiken.

De xlm die gemaakt wordt door beide programma's ziet er als volgt uit;
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<movie>
<fileinfo>
<streamdetails>
<video>
<width>640</width>
<height>272</height>
<aspect>2,353</aspect>
<codec>XVID</codec>
<format>XVID</format>
<duration>1h 35mn</duration>
<bitrate>912 Kbps</bitrate>
<container>.avi</container>
</video>
<audio>
<codec>MP3</codec>
<channels>2</channels>
<bitrate>92.4 Kbps</bitrate>
</audio>
</streamdetails>
</fileinfo>
<title>A Fistful of Dollars</title>
<alternativetitle>Per un pugno di dollari</alternativetitle>
<sorttitle>A Fistful of Dollars</sorttitle>
<year>1964</year>
<rating>8.0</rating>
<votes>39,874</votes>
<top250>0</top250>
<outline>A wandering gunfighter plays two rival families against each other in a town torn apart by greed, pride, and revenge.</outline>
<plot>A drifter gunman arrives in the Mexican village of San Miguel at the border of United States of America, and befriends the owner of the local bar Silvanito. The stranger discovers that the town is dominated by two gangster lords: John Baxter and the cruel Ramón Rojo. When the stranger kills four men of the Baxter's gang, he is hired by Ramón's brother Esteban Rojo to join their gang. However, the stranger decides to work for both sides, playing one side off against the other.</plot>
<tagline>This short cigar belongs to a man with no name. This long gun belongs to a man with no name. This poncho belongs to a man with no name. He's going to trigger a whole new style in adventure.</tagline>
<runtime>95 min</runtime>
<mpaa>15</mpaa>
<genre>Action / Western</genre>
<credits>A. Bonzzoni</credits>
<director>Sergio Leone</director>
<studio>Constantin Film Produktion</studio>
<trailer>
</trailer>
<playcount>0</playcount>
<id>tt0058461</id>
<createdate>20100913183444</createdate>
<actor>
<name>Clint Eastwood</name>
<role>Joe</role>
<thumb>http://ia.media-imdb.com/images/M/MV5BMTk4NDcyNTEzOF5BMl5BanBnXkFtZTYwMjMzNDQz._V._V1._SY400_SX300_.jpg</thumb>
</actor>
<actor>
<name>Marianne Koch</name>
<role>Marisol</role>
</actor>
<actor>
<name>Gian Maria Volonté</name>
<role>Ramón Rojo</role>
</actor>
</movie>​


Om de gewenste waarde uit de xml (nfo file) te halen kwam ik dit tegen;

Code:
@echo off
call :check_lines < %1 > "%~N1.txt"
exit /b

REM Seek for the start of Data tag
:check_lines
    set /P line=
if not "%line%" == "<DATA>" goto check_lines

REM Copy until the end of Data tag
set /P line=
:put_lines
    if "%line%" == "</DATA>" goto end_lines
    set /P line=%line% 
goto put_lines
:end_lines
echo/

<Data> moet uiteraard vervangen worden, maar zelfs dan lijkt deze code niet goed te werken. Dwz het probleem is vermoedelijk dat beide tag's op de zelfde regel staan.
N.b. deze run je vanaf de dos prompt waarbij je de bestandsnaam met de te doorzoeken inhoud als parameter op geeft.
Resultaat zou dan een file (.txt) moeten zijn met de waarde gevonden tussen de tags.

Een laatste stap zou dan nog zijn dat de juiste, op basis van de gevonden genre mpaa waarde een .ico naar de film map wordt gekopieerd.
Hiervoor moet dan nog een collectie .ico's worden aangemaakt. Basis kan het genre zijn met in letters de mpaa waarde er over heen (links in de onder hoek of zo) leek me.

Iemand die me kan helpen. Uiteraard hoeft dit niet in dos, ik kan me voorstellen dat dit bijna in elke programmeer taal wel te bouwen moet zijn.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan