Movie duration in hours-minutes through variables.xml
#1
I really loved the idea of seeing the movie duration in hours-minutes, and I wondered if that would be possible through variables.xml and finally I got it! The code is this...

Code:
<variable name="Durat_min">
        <value condition="[SubString(ListItem.Duration,1,Right)]">1 [LOWERCASE]$LOCALIZE[12391][/LOWERCASE]</value>
        <value condition="[SubString(ListItem.Duration,2,Right)]">2 [LOWERCASE]$LOCALIZE[12391][/LOWERCASE]</value>
        <value condition="[SubString(ListItem.Duration,3,Right)]">3 [LOWERCASE]$LOCALIZE[12391][/LOWERCASE]</value>
        <value condition="[SubString(ListItem.Duration,4,Right)]">4 [LOWERCASE]$LOCALIZE[12391][/LOWERCASE]</value>
        <value condition="[SubString(ListItem.Duration,5,Right)]">5 [LOWERCASE]$LOCALIZE[12391][/LOWERCASE]</value>
        <value condition="[SubString(ListItem.Duration,6,Right)]">6 [LOWERCASE]$LOCALIZE[12391][/LOWERCASE]</value>
        <value condition="[SubString(ListItem.Duration,7,Right)]">7 [LOWERCASE]$LOCALIZE[12391][/LOWERCASE]</value>
        <value condition="[SubString(ListItem.Duration,8,Right)]">8 [LOWERCASE]$LOCALIZE[12391][/LOWERCASE]</value>
        <value condition="[SubString(ListItem.Duration,9,Right)]">9 [LOWERCASE]$LOCALIZE[12391][/LOWERCASE]</value>
        <value condition="[SubString(ListItem.Duration,0,Right)    + !StringCompare(ListItem.Duration,60) + !StringCompare(ListItem.Duration,120) + !StringCompare(ListItem.Duration,180) + !StringCompare(ListItem.Duration,240)]">0 [LOWERCASE]$LOCALIZE[12391][/LOWERCASE]</value>
        <value> </value>
    </variable>
    <variable name="Durat_mov">
        <value condition="[!IntegerGreaterThan(ListItem.Duration,59)]">$INFO[ListItem.Duration,, $LOCALIZE[12391]]</value>
        <value condition="[!IntegerGreaterThan(ListItem.Duration,99) + SubString(ListItem.Duration,6,Left)]">1 h $VAR[Durat_min]</value>
        <value condition="[!IntegerGreaterThan(ListItem.Duration,99) + SubString(ListItem.Duration,7,Left)]">1 h 1$VAR[Durat_min]</value>
        <value condition="[!IntegerGreaterThan(ListItem.Duration,99) + SubString(ListItem.Duration,8,Left)]">1 h 2$VAR[Durat_min]</value>
        <value condition="[!IntegerGreaterThan(ListItem.Duration,99) + SubString(ListItem.Duration,9,Left)]">1 h 3$VAR[Durat_min]</value>
        <value condition="[SubString(ListItem.Duration,10,Left)]">1 h 4$VAR[Durat_min]</value>
        <value condition="[SubString(ListItem.Duration,11,Left)]">1 h 5$VAR[Durat_min]</value>
        <value condition="[SubString(ListItem.Duration,12,Left)]">2 h $VAR[Durat_min]</value>
        <value condition="[SubString(ListItem.Duration,13,Left)]">2 h 1$VAR[Durat_min]</value>
        <value condition="[SubString(ListItem.Duration,14,Left)]">2 h 2$VAR[Durat_min]</value>
        <value condition="[SubString(ListItem.Duration,15,Left)]">2 h 3$VAR[Durat_min]</value>
        <value condition="[SubString(ListItem.Duration,16,Left)]">2 h 4$VAR[Durat_min]</value>
        <value condition="[SubString(ListItem.Duration,17,Left)]">2 h 5$VAR[Durat_min]</value>
        <value condition="[SubString(ListItem.Duration,18,Left)]">3 h $VAR[Durat_min]</value>
        <value condition="[SubString(ListItem.Duration,19,Left)]">3 h 1$VAR[Durat_min]</value>
        <value condition="[SubString(ListItem.Duration,20,Left)]">3 h 2$VAR[Durat_min]</value>
        <value condition="[SubString(ListItem.Duration,21,Left)]">3 h 3$VAR[Durat_min]</value>
        <value condition="[SubString(ListItem.Duration,22,Left)]">3 h 4$VAR[Durat_min]</value>
        <value condition="[SubString(ListItem.Duration,23,Left)]">3 h 5$VAR[Durat_min]</value>
        <value condition="[SubString(ListItem.Duration,24,Left)]">4 h $VAR[Durat_min]</value>
        <value condition="[SubString(ListItem.Duration,25,Left)]">4 h 1$VAR[Durat_min]</value>
        <value condition="[SubString(ListItem.Duration,26,Left)]">4 h 2$VAR[Durat_min]</value>
        <value condition="[SubString(ListItem.Duration,27,Left)]">4 h 3$VAR[Durat_min]</value>
        <value condition="[SubString(ListItem.Duration,28,Left)]">4 h 4$VAR[Durat_min]</value>
        <value condition="[SubString(ListItem.Duration,29,Left)]">4 h 5$VAR[Durat_min]</value>
        <value>$INFO[ListItem.Duration] [LOWERCASE]$LOCALIZE[12391][/LOWERCASE]</value>
    </variable>

...it returns the movie duration in the variable "Durat_mov" in the format "1 h 53 minutes" and it works up to a duration of 5 hours (more than enough, I thinkWink) I have checked it in my skin and it works flawlessly... I'm sharing it in case it could be of any use for anyone's skin ...

Regards
If I have helped you or increased your knowledge, please click the 'thumbs up' button to give thanks :)
Reply
#2
duration is stored as a text-string in the database, so this might not work for everyone.

i stlll remember the old imdb scraper returning stuff like '140 Minutes (Editors cut)' for movie duration.
not sure if that's still the case... maybe things have improved.
Do not PM or e-mail Team-Kodi members directly asking for support.
Always read the Forum rules, Kodi online-manual, FAQ, Help and Search the forum before posting.
Reply
#3
script.duration does exactly that - although it needs skin support.

http://forum.kodi.tv/showthread.php?tid=220753
Reply
#4
I personally would prefer to not use an addon when it can be done in a different way. I tried this out and it works flawlessly for me and with only 41 lines I thought it was a notable achievement, IMHO anyway... I hope it works for a lot of use cases though cause ronie got me thinking that there might be issues down the line Huh

Thanks manfeed
Reply

Logout Mark Read Team Forum Stats Members Help
Movie duration in hours-minutes through variables.xml0