INTERACT FORUM

Please login or register.

Login with username, password and session length
Advanced search  
Pages: [1]   Go Down

Author Topic: Progress Visualization  (Read 2279 times)

Buldarged

  • Recent member
  • *
  • Posts: 36
Progress Visualization
« on: September 28, 2019, 01:02:29 pm »

I liked the idea of seeing which episodes I already watched by using an alternative font color.  Sadly, this approach only worked for files, not for TV shows are albums. Furthermore, having only a boolean indicator for a whole TV show seemed like a poor idea. So I did a bit of research and came up with a method to visualize progression that works on any kind of file groups.

The result is shown below:


How to do it:

1. Edit the view in which you want to display the progress.
2. Edit the rules for file display.
3. Add 2 new rules and set them to "Custom".
4. Add these 2 lines into the rules respectively:
   
Code: [Select]
[=save(0, v_nfilesShow[series])save(0, v_nWatchedFilesShow[series])1]=1   
Code: [Select]
[=save(math(1+load(v_nfilesShow[series])), v_nfilesShow[series])if(compare([Number Plays],>,0), save(math(1+load(v_nWatchedFilesShow[series])), v_nWatchedFilesShow[series]),)1]=1
5. Edit the thumbnail text and replace it with this:
Code: [Select]
save(Math(Math(load(v_nWatchedFilesShow[series]) * 100.0) / load(v_nfilesShow[series])), ratio, 0) <font face="Consolas">If(isrange(load(ratio), 0-0), <font color="B61E1B">[<//font> ,)If(isrange(load(ratio), 0.0001-4), <font color="B61E1B">[■<//font> ,)If(isrange(load(ratio), 4.0001-8), <font color="B6281B">[■■<//font> ,)If(isrange(load(ratio), 8.0001-12), <font color="B6321B">[■■■<//font> ,)If(isrange(load(ratio), 12.0001-16), <font color="B63F1B">[■■■■<//font> ,)If(isrange(load(ratio), 16.0001-20), <font color="B64A1B">[■■■■■<//font> ,)If(isrange(load(ratio), 20.0001-24), <font color="B6541B">[■■■■■■<//font> ,)If(isrange(load(ratio), 24.0001-28), <font color="B65E1B">[■■■■■■■<//font> ,)If(isrange(load(ratio), 28.0001-32), <font color="B66B1B">[■■■■■■■■<//font> ,)If(isrange(load(ratio), 32.0001-36), <font color="B6751B">[■■■■■■■■■<//font> ,)If(isrange(load(ratio), 36.0001-40), <font color="B6801B">[■■■■■■■■■■<//font> ,)If(isrange(load(ratio), 40.0001-44), <font color="B68A1B">[■■■■■■■■■■■<//font> ,)If(isrange(load(ratio), 44.0001-48), <font color="B6941B">[■■■■■■■■■■■■<//font> ,)If(isrange(load(ratio), 48.0001-52), <font color="B6A11B">[■■■■■■■■■■■■■<//font> ,)If(isrange(load(ratio), 52.0001-56), <font color="B6AB1B">[■■■■■■■■■■■■■■<//font> ,)If(isrange(load(ratio), 56.0001-60), <font color="B3B61B">[■■■■■■■■■■■■■■■<//font> ,)If(isrange(load(ratio), 60.0001-64), <font color="A9B61B">[■■■■■■■■■■■■■■■■<//font> ,)If(isrange(load(ratio), 64.0001-68), <font color="9FB61B">[■■■■■■■■■■■■■■■■■<//font> ,)If(isrange(load(ratio), 68.0001-72), <font color="94B61B">[■■■■■■■■■■■■■■■■■■<//font> ,)If(isrange(load(ratio), 72.0001-76), <font color="87B61B">[■■■■■■■■■■■■■■■■■■■<//font> ,)If(isrange(load(ratio), 76.0001-80), <font color="7DB61B">[■■■■■■■■■■■■■■■■■■■■<//font> ,)If(isrange(load(ratio), 80.0001-84), <font color="73B61B">[■■■■■■■■■■■■■■■■■■■■■<//font> ,)If(isrange(load(ratio), 84.0001-88), <font color="66B61B">[■■■■■■■■■■■■■■■■■■■■■■<//font> ,)If(isrange(load(ratio), 88.0001-92), <font color="59B61B">[■■■■■■■■■■■■■■■■■■■■■■■<//font> ,)If(isrange(load(ratio), 92.0001-96), <font color="4CB61B">[■■■■■■■■■■■■■■■■■■■■■■■■<//font> ,)If(isrange(load(ratio), 96.0001-99.9999), <font color="3FB61B">[■■■■■■■■■■■■■■■■■■■■■■■■■<//font> ,)If(isrange(load(ratio), 100-100), <font color="32B61B">[■■■■■■■■■■■■■■■■■■■■■■■■■■]<//font> ,)<//font>
[Name]

6. Congratulations, you are now finished!

Remarks:
- If you want to use this method for albums instead of TV shows just replace "series" with "album" in all three code blocks. You might also want to rename the variables.
- The performance impact seems to be no problem for my TV shows, but is too high for my large audio book library which contains a ton of short files.
- For TV shows there is an alternative method, which uses the Watched() function in conjunction with regular expressions. I think this is faster, but it only works for TV shows and only in the thumbnail text, but not in the status bar.
- Currently this uses the Consolas Font. But images are now supported too. Maybe a designer wants to improve this by adding proper graphics.

@JRiver
Writing this was way too cumbersome. I would like to just write:
Code: [Select]
Progress(Math(Played(Series)/GroupCount(Series)))which should use skin dependend graphics. Maybe you want to add this to your list of things to implement. Would be a nice showcase/usage for the "graphics embedded in text"-feature.
Logged

Moe

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 718
  • Hi
Re: Progress Visualization
« Reply #1 on: September 28, 2019, 01:31:07 pm »

Very clever, thank you for sharing.

Edit:

I tweaked the progress bar to my liking.  Just a personal preference thing.

Code: [Select]
save(Math(Math(load(v_nWatchedFilesShow[series]) * 100.0) / load(v_nfilesShow[series])), ratio, 0) <font face="Consolas">If(isrange(load(ratio), 0-0), <font color="B61E1B">Not Started<//font> ,)If(isrange(load(ratio), 0.0001-4), <font color="B61E1B">[■                         ]<//font> ,)If(isrange(load(ratio), 4.0001-8), <font color="B6281B">[■■                        ]<//font> ,)If(isrange(load(ratio), 8.0001-12), <font color="B6321B">[■■■                       ]<//font> ,)If(isrange(load(ratio), 12.0001-16), <font color="B63F1B">[■■■■                      ]<//font> ,)If(isrange(load(ratio), 16.0001-20), <font color="B64A1B">[■■■■■                     ]<//font> ,)If(isrange(load(ratio), 20.0001-24), <font color="B6541B">[■■■■■■                    ]<//font> ,)If(isrange(load(ratio), 24.0001-28), <font color="B65E1B">[■■■■■■■                   ]<//font> ,)If(isrange(load(ratio), 28.0001-32), <font color="B66B1B">[■■■■■■■■                  ]<//font> ,)If(isrange(load(ratio), 32.0001-36), <font color="B6751B">[■■■■■■■■■                 ]<//font> ,)If(isrange(load(ratio), 36.0001-40), <font color="B6801B">[■■■■■■■■■■                ]<//font> ,)If(isrange(load(ratio), 40.0001-44), <font color="B68A1B">[■■■■■■■■■■■               ]<//font> ,)If(isrange(load(ratio), 44.0001-48), <font color="B6941B">[■■■■■■■■■■■■              ]<//font> ,)If(isrange(load(ratio), 48.0001-52), <font color="B6A11B">[■■■■■■■■■■■■■             ]<//font> ,)If(isrange(load(ratio), 52.0001-56), <font color="B6AB1B">[■■■■■■■■■■■■■■            ]<//font> ,)If(isrange(load(ratio), 56.0001-60), <font color="B3B61B">[■■■■■■■■■■■■■■■           ]<//font> ,)If(isrange(load(ratio), 60.0001-64), <font color="A9B61B">[■■■■■■■■■■■■■■■■          ]<//font> ,)If(isrange(load(ratio), 64.0001-68), <font color="9FB61B">[■■■■■■■■■■■■■■■■■         ]<//font> ,)If(isrange(load(ratio), 68.0001-72), <font color="94B61B">[■■■■■■■■■■■■■■■■■■        ]<//font> ,)If(isrange(load(ratio), 72.0001-76), <font color="87B61B">[■■■■■■■■■■■■■■■■■■■       ]<//font> ,)If(isrange(load(ratio), 76.0001-80), <font color="7DB61B">[■■■■■■■■■■■■■■■■■■■■      ]<//font> ,)If(isrange(load(ratio), 80.0001-84), <font color="73B61B">[■■■■■■■■■■■■■■■■■■■■■     ]<//font> ,)If(isrange(load(ratio), 84.0001-88), <font color="66B61B">[■■■■■■■■■■■■■■■■■■■■■■    ]<//font> ,)If(isrange(load(ratio), 88.0001-92), <font color="59B61B">[■■■■■■■■■■■■■■■■■■■■■■■   ]<//font> ,)If(isrange(load(ratio), 92.0001-96), <font color="4CB61B">[■■■■■■■■■■■■■■■■■■■■■■■■  ]<//font> ,)If(isrange(load(ratio), 96.0001-99.9999), <font color="3FB61B">[■■■■■■■■■■■■■■■■■■■■■■■■■ ]<//font> ,)If(isrange(load(ratio), 100-100), <font color="32B61B">[■■■■■■■■■■■■■■■■■■■■■■■■■■]<//font> ,)<//font>
[Name]
Logged

lepa

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 2033
Re: Progress Visualization
« Reply #2 on: September 28, 2019, 03:25:25 pm »

Smart. Thanks for sharing.
Logged

lepa

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 2033
Re: Progress Visualization
« Reply #3 on: September 28, 2019, 04:21:51 pm »

I guess you can calculate percentage of watched episodes also like this:

Math(Replace(RemoveCharacters(Watched(2),/ watched),of,//)*100)

Using above would make steps 2-4 not necessary and modify step 5 calculation a little

Code: [Select]
[Series]
Save(Math(Replace(RemoveCharacters(Watched(2),/ watched),of,//)*100),ratio, 0) <font face="Consolas" size="90" alpha="40">If(IsRange(Load(ratio), 0-0), Not Started,)If(IsRange(Load(ratio), 0.0001-4), <font color="B61E1B">[■                         ]<//font> ,)If(IsRange(Load(ratio), 4.0001-8), <font color="B6281B">[■■                        ]<//font> ,)If(IsRange(Load(ratio), 8.0001-12), <font color="B6321B">[■■■                       ]<//font> ,)If(IsRange(Load(ratio), 12.0001-16), <font color="B63F1B">[■■■■                      ]<//font> ,)If(IsRange(Load(ratio), 16.0001-20), <font color="B64A1B">[■■■■■                     ]<//font> ,)If(IsRange(Load(ratio), 20.0001-24), <font color="B6541B">[■■■■■■                    ]<//font> ,)If(IsRange(Load(ratio), 24.0001-28), <font color="B65E1B">[■■■■■■■                   ]<//font> ,)If(IsRange(Load(ratio), 28.0001-32), <font color="B66B1B">[■■■■■■■■                  ]<//font> ,)If(IsRange(Load(ratio), 32.0001-36), <font color="B6751B">[■■■■■■■■■                 ]<//font> ,)If(IsRange(Load(ratio), 36.0001-40), <font color="B6801B">[■■■■■■■■■■                ]<//font> ,)If(IsRange(Load(ratio), 40.0001-44), <font color="B68A1B">[■■■■■■■■■■■               ]<//font> ,)If(IsRange(Load(ratio), 44.0001-48), <font color="B6941B">[■■■■■■■■■■■■              ]<//font> ,)If(IsRange(Load(ratio), 48.0001-52), <font color="B6A11B">[■■■■■■■■■■■■■             ]<//font> ,)If(IsRange(Load(ratio), 52.0001-56), <font color="B6AB1B">[■■■■■■■■■■■■■■            ]<//font> ,)If(IsRange(Load(ratio), 56.0001-60), <font color="B3B61B">[■■■■■■■■■■■■■■■           ]<//font> ,)If(IsRange(Load(ratio), 60.0001-64), <font color="A9B61B">[■■■■■■■■■■■■■■■■          ]<//font> ,)If(IsRange(Load(ratio), 64.0001-68), <font color="9FB61B">[■■■■■■■■■■■■■■■■■         ]<//font> ,)If(IsRange(Load(ratio), 68.0001-72), <font color="94B61B">[■■■■■■■■■■■■■■■■■■        ]<//font> ,)If(IsRange(Load(ratio), 72.0001-76), <font color="87B61B">[■■■■■■■■■■■■■■■■■■■       ]<//font> ,)If(IsRange(Load(ratio), 76.0001-80), <font color="7DB61B">[■■■■■■■■■■■■■■■■■■■■      ]<//font> ,)If(IsRange(Load(ratio), 80.0001-84), <font color="73B61B">[■■■■■■■■■■■■■■■■■■■■■     ]<//font> ,)If(IsRange(Load(ratio), 84.0001-88), <font color="66B61B">[■■■■■■■■■■■■■■■■■■■■■■    ]<//font> ,)If(IsRange(Load(ratio), 88.0001-92), <font color="59B61B">[■■■■■■■■■■■■■■■■■■■■■■■   ]<//font> ,)If(IsRange(Load(ratio), 92.0001-96), <font color="4CB61B">[■■■■■■■■■■■■■■■■■■■■■■■■  ]<//font> ,)If(IsRange(Load(ratio), 96.0001-99.9999), <font color="3FB61B">[■■■■■■■■■■■■■■■■■■■■■■■■■ ]<//font> ,)If(IsRange(Load(ratio), 100-100), <font color="32B61B">[■■■■■■■■■■■■■■■■■■■■■■■■■■]<//font> ,)<//font>
Logged

Buldarged

  • Recent member
  • *
  • Posts: 36
Re: Progress Visualization
« Reply #4 on: September 28, 2019, 05:32:41 pm »

Yeah, I had a similar version running for quite some time:
Code: [Select]
save(Math(Math( regex(Watched(), /#^([0-9]*) of ([0-9]*) watched#/, 1,1) * 100.0) / regex(Watched(), /#^([0-9]*) of ([0-9]*) watched#/, 2,1)), ratio, 0)
However, the Watched function does only work on series, but on albums. So I couldn't use it for audiobooks. The other drawback is that it can only be used in thumbnail text, but not in other places like the status bar. But I think it is faster though.
Logged

lepa

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 2033
Re: Progress Visualization
« Reply #5 on: September 28, 2019, 06:13:44 pm »

That's true. It might be faster to use ifelse() function as I guess it would break out when first condition is met.

Code: [Select]
Save(Replace(Math(Replace(RemoveCharacters(Watched(2),/ watched),of,//)*100),/,,.),ratio,0)<font face="Consolas">ListItem(Not Watched;<font color="B61E1B">[■                         ]<//font>;<font color="B6281B">[■■                        ];<font color="B6321B">[■■■                       ]<//font>;<font color="B63F1B">[■■■■                      ]<//font>;<font color="B64A1B">[■■■■■                     ]<//font>;<font color="B6541B">[■■■■■■                    ]<//font>;<font color="B65E1B">[■■■■■■■                   ]<//font>;<font color="B66B1B">[■■■■■■■■                  ]<//font>;<font color="B6751B">[■■■■■■■■■                 ]<//font>;<font color="B6801B">[■■■■■■■■■■                ]<//font>;<font color="B68A1B">[■■■■■■■■■■■               ]<//font>;<font color="B6941B">[■■■■■■■■■■■■              ]<//font>;<font color="B6A11B">[■■■■■■■■■■■■■             ]<//font>;<font color="B6AB1B">[■■■■■■■■■■■■■■            ]<//font>;<font color="B3B61B">[■■■■■■■■■■■■■■■           ]<//font>;<font color="A9B61B">[■■■■■■■■■■■■■■■■          ]<//font>;<font color="9FB61B">[■■■■■■■■■■■■■■■■■         ]<//font>;<font color="94B61B">[■■■■■■■■■■■■■■■■■■        ]<//font>;<font color="87B61B">[■■■■■■■■■■■■■■■■■■■       ]<//font>;<font color="7DB61B">[■■■■■■■■■■■■■■■■■■■■      ]<//font>;<font color="73B61B">[■■■■■■■■■■■■■■■■■■■■■     ]<//font>;<font color="66B61B">[■■■■■■■■■■■■■■■■■■■■■■    ]<//font>;<font color="59B61B">[■■■■■■■■■■■■■■■■■■■■■■■   ]<//font>;<font color="4CB61B">[■■■■■■■■■■■■■■■■■■■■■■■■  ]<//font>;<font color="3FB61B">[■■■■■■■■■■■■■■■■■■■■■■■■■ ]<//font>;<font color="32B61B">[■■■■■■■■■■■■■■■■■■■■■■■■■■]<//font>,IfElse(Math(equal(Load(ratio),0)),0,Math(below(Load(ratio),4)),1,Math(below(Load(ratio),8)),2,Math(below(Load(ratio),12)),3,Math(below(Load(ratio),16)),4,Math(below(Load(ratio),20)),5,Math(below(Load(ratio),24)),6,Math(below(Load(ratio),28)),7,Math(below(Load(ratio),32)),8,Math(below(Load(ratio),36)),9,Math(below(Load(ratio),40)),10,Math(below(Load(ratio),44)),11,Math(below(Load(ratio),48)),12,Math(below(Load(ratio)52)),13,Math(below(Load(ratio),56)),14,Math(below(Load(ratio),60)),15,Math(below(Load(ratio),64)),16,Math(below(Load(ratio),68)),17,Math(below(Load(ratio),72)),18,Math(below(Load(ratio),76)),19,Math(below(Load(ratio),80)),20,Math(below(Load(ratio),84)),21,Math(below(Load(ratio),88)),22,Math(below(Load(ratio),92)),23,Math(below(Load(ratio),96)),24,Math(below(Load(ratio),99.999)),25,Math(equal(Load(ratio),100)),26),;)<//font>I also experimented with listitem function. not really sure if it made expression any more readable though  ;D
Logged

RoderickGI

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 8186
Re: Progress Visualization
« Reply #6 on: September 29, 2019, 12:01:15 am »

Minor tweak for TV Series.

In step five, instead of having [Name] in the second line of thumbnail text, put TVInfo(SeriesDisplay). That will then display the Series name correctly. I was seeing Episode names in the thumbnail text.

Very good of you to share.


PS: I might reduce the font size of the progress bar when I put this on my Live system. The bar looks a bit tall on my test system. Plus I like your "Not Started" text in your version Moe, so I'm using that.
Logged
What specific version of MC you are running:MC27.0.27 @ Oct 27, 2020 and updating regularly Jim!                        MC Release Notes: https://wiki.jriver.com/index.php/Release_Notes
What OS(s) and Version you are running:     Windows 10 Pro 64bit Version 2004 (OS Build 19041.572).
The JRMark score of the PC with an issue:    JRMark (version 26.0.52 64 bit): 3419
Important relevant info about your environment:     
  Using the HTPC as a MC Server & a Workstation as a MC Client plus some DLNA clients.
  Running JRiver for Android, JRemote2, Gizmo, & MO 4Media on a Sony Xperia XZ Premium Android 9.
  Playing video out to a Sony 65" TV connected via HDMI, playing digital audio out via motherboard sound card, PCIe TV tuner

arcspin

  • Galactic Citizen
  • ****
  • Posts: 391
Re: Progress Visualization
« Reply #7 on: September 29, 2019, 02:59:17 am »

Hi all,
This is a great contribution!
I do not however quite get it right.

I have taken the 5 step approach as Buldarged posted with the change that Moe suggested.

I attach three screen shots that show the finished result and where I copied in the thumb nail text and the two lines of code.
As you can se in the finished result I have three dots on the right hand side of the progress bar that i do not think is supposed to be there.

Where did I go wrong?


Thank you for any input!
Logged
Hardware: Intel Core i5-8600K 16GB RAM, ASUS GeForce RTX 2080 8GB DUAL OC
Software: Windows 10 Home 64-bit, version 2004, JRiver MC 29, MadVr 0.92.17 (Beta 113), NVIDIA driver 457.09
Projector: JVC DLA-I X5500 (RS420, X570R) -
Screen: DNP Supernova 08-85
Processor: Anthem AVM 70
Power amp: XTZ A2-400 for Front & Center - XTZ A2-300 for Surround & Height channels
Speakers: Arendal 1723 S Monitor for Front & Center, Linn Unik for Front Height, Rear Height, Surround & Surround back. Elipson Planet M for Top Middle.
Sub: Arendal 1723 1S

RoderickGI

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 8186
Re: Progress Visualization
« Reply #8 on: September 29, 2019, 03:02:44 am »

I get the three dots as well. Possibly Moe put something in there to make the bar always start from the left, rather than centered as Buldarged's expression does. I haven't checked that out yet.

EDIT: Just spaces by the look of it. I haven't worked out why the dots show though. Ah, there is no left right bracket. So the dots are there to show that there is more text to the right that isn't shown. Just take out a couple of spaces and see if the dots disappear. The bar plus space is currently 26 characters wide, plus the left and right brackets[]. I'll get to that later.
Logged
What specific version of MC you are running:MC27.0.27 @ Oct 27, 2020 and updating regularly Jim!                        MC Release Notes: https://wiki.jriver.com/index.php/Release_Notes
What OS(s) and Version you are running:     Windows 10 Pro 64bit Version 2004 (OS Build 19041.572).
The JRMark score of the PC with an issue:    JRMark (version 26.0.52 64 bit): 3419
Important relevant info about your environment:     
  Using the HTPC as a MC Server & a Workstation as a MC Client plus some DLNA clients.
  Running JRiver for Android, JRemote2, Gizmo, & MO 4Media on a Sony Xperia XZ Premium Android 9.
  Playing video out to a Sony 65" TV connected via HDMI, playing digital audio out via motherboard sound card, PCIe TV tuner

lepa

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 2033
Re: Progress Visualization
« Reply #9 on: September 29, 2019, 03:48:32 am »

I'd guess using smaller font should help for progress bar. Three dots are just indicating that all the "text" couldn't be shown in that amount of space

e.g.
<font face="Consolas" size="50" alpha="40">

alpha property is just to make bar a little transparent so it doesn't shine so much. It's not needed if you like shiny things.
Logged

arcspin

  • Galactic Citizen
  • ****
  • Posts: 391
Re: Progress Visualization
« Reply #10 on: September 29, 2019, 04:45:42 am »

Yup, that did the trick.
The progress bar is somewhat small as I had to set the font size to 40 to make room for the entire progress bar.

edit:
i did try to remove the: alpha="40" and that made the progress bar much more visible as per lepa suggestion.

Greatly appreciate the help.

Logged
Hardware: Intel Core i5-8600K 16GB RAM, ASUS GeForce RTX 2080 8GB DUAL OC
Software: Windows 10 Home 64-bit, version 2004, JRiver MC 29, MadVr 0.92.17 (Beta 113), NVIDIA driver 457.09
Projector: JVC DLA-I X5500 (RS420, X570R) -
Screen: DNP Supernova 08-85
Processor: Anthem AVM 70
Power amp: XTZ A2-400 for Front & Center - XTZ A2-300 for Surround & Height channels
Speakers: Arendal 1723 S Monitor for Front & Center, Linn Unik for Front Height, Rear Height, Surround & Surround back. Elipson Planet M for Top Middle.
Sub: Arendal 1723 1S

lepa

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 2033
Re: Progress Visualization
« Reply #11 on: September 29, 2019, 06:33:45 am »

Using images you can squeeze expression length a little

For this I have created progress-xx.png images in the tooltip folder (5% resolution).

STANDARD VIEW
Code: [Select]
If(Math(Equal(Left(Watched(2),1),0)),<img src="tooltip:progress-Not Started">,If(Math(Equal(Replace(RemoveCharacters(Watched(2),/ watched),of,/,))),<img src="tooltip:progress-Finished">,<img src="tooltip:progress-Math(Math(round(Replace(Math(Replace(RemoveCharacters(Watched(2),/ watched),of,//)*100/5),/,,.)))*5)">))
Above works only for video and only in standard view as Wathed(2) function behaves differently on theater view. However <img src="tooltip:progress-Load(ratio)"> could be also used to show progress in theaterview when Buldarged's custom rules are used.

THEATER VIEW:

Code: [Select]
[Series, 1]
If(Math(Equal(0,Load(v_nWatchedFilesShow[Series,1]))),<img src="tooltip:progress-Not Started">,If(Math(Equal(Load(v_nWatchedFilesShow[Series,1]),Load(v_nfilesShow[Series,1]))),<img src="tooltip:progress-Finished">,<img src="tooltip:progress-Math(Round(Replace(Math(Load(v_nWatchedFilesShow[Series,1])//Load(v_nfilesShow[Series,1]) * 100 // 5),/,,.)) * 5)">))

Thanks Buldarged for sharing his idea
Logged

Moe

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 718
  • Hi
Re: Progress Visualization
« Reply #12 on: September 29, 2019, 09:34:26 am »

This will also work in standard view.  Put the thumbnail text into an expression column and you get this.

Logged

Absinthe

  • Guest
Re: Progress Visualization
« Reply #13 on: September 29, 2019, 12:59:40 pm »

Using images you can squeeze expression length a little

For this I have created progress-xx.png images in the tooltip folder (5% resolution).

STANDARD VIEW
Code: [Select]
If(Math(Equal(Left(Watched(2),1),0)),<img src="tooltip:progress-Not Started">,If(Math(Equal(Replace(RemoveCharacters(Watched(2),/ watched),of,/,))),<img src="tooltip:progress-Finished">,<img src="tooltip:progress-Math(Math(round(Replace(Math(Replace(RemoveCharacters(Watched(2),/ watched),of,//)*100/5),/,,.)))*5)">))
Above works only for video and only in standard view as Wathed(2) function behaves differently on theater view. However <img src="tooltip:progress-Load(ratio)"> could be also used to show progress in theaterview when Buldarged's custom rules are used.

THEATER VIEW:

Code: [Select]
[Series, 1]
If(Math(Equal(0,Load(v_nWatchedFilesShow[Series,1]))),<img src="tooltip:progress-Not Started">,If(Math(Equal(Load(v_nWatchedFilesShow[Series,1]),Load(v_nfilesShow[Series,1]))),<img src="tooltip:progress-Finished">,<img src="tooltip:progress-Math(Round(Replace(Math(Load(v_nWatchedFilesShow[Series,1])//Load(v_nfilesShow[Series,1]) * 100 // 5),/,,.)) * 5)">))

Thanks for Buldarged for sharing his idea

Thanks for posting the PNG files, lepa :) 
Logged

Absinthe

  • Guest
Re: Progress Visualization
« Reply #14 on: September 29, 2019, 02:25:12 pm »

Quote
After playing around with Buldarged original version, Moe's modified progress bar and lepa's image based progress bar, I have the following observation

When there are multiple seasons in a TV Series
AND
Only some of the episodes are watched (whether in the same season or across multiple seasons)
None of the episodes are visible in the Theater View

If all, or none of the episodes are watched, all episodes are visible (There are no items to displ. 

I've tracked it down to adding the progress bar to the theater view (circled below)  The lines after TVInfo(SeriesDisplay) are the offending ones. 

Is anyone else experiencing this?
OK, more fiddling.  I found that by moving the progress display from the "Expression to group by:" field to the "Expression to display" field all is good
Logged

lepa

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 2033
Re: Progress Visualization
« Reply #15 on: September 29, 2019, 02:54:49 pm »

That's right. Because Group By is just what it says it is. It is rule to group items like [Series] or seasons.
Then there is "expression to display" which will override whatever group by would be printing as a caption for this group. It can literally be anything and doesn't affect actual grouping at all.

In this case we want group by simple [Series] and then by [Season] and then display something extra which will not affect grouping
Logged

arcspin

  • Galactic Citizen
  • ****
  • Posts: 391
Re: Progress Visualization
« Reply #16 on: September 29, 2019, 03:18:52 pm »

I ended up with a variant of all of the above and my last progress bar is as follow:
[■■■■ NO MORE EPISODES ■■■■]

That way it is clear that there are no more episodes to watch


Great to be a part of this community and I truly love all the small tweaks to get JRiver and Theater view better and better !

Cheers,
//arcspin
Logged
Hardware: Intel Core i5-8600K 16GB RAM, ASUS GeForce RTX 2080 8GB DUAL OC
Software: Windows 10 Home 64-bit, version 2004, JRiver MC 29, MadVr 0.92.17 (Beta 113), NVIDIA driver 457.09
Projector: JVC DLA-I X5500 (RS420, X570R) -
Screen: DNP Supernova 08-85
Processor: Anthem AVM 70
Power amp: XTZ A2-400 for Front & Center - XTZ A2-300 for Surround & Height channels
Speakers: Arendal 1723 S Monitor for Front & Center, Linn Unik for Front Height, Rear Height, Surround & Surround back. Elipson Planet M for Top Middle.
Sub: Arendal 1723 1S
Pages: [1]   Go Up