• 1
  • 75
  • 76
  • 77(current)
  • 78
  • 79
  • 197
[RELEASE] Texture Cache Maintenance utility
(2014-10-17, 21:39)Milhouse Wrote: Update: I can add a fix, but it's only going to work if texturecache.py has direct file system access to the Thumbnails folder as the JSON Textures API "lies" about thumbnail file existence - it responds with details from Textures13.db even though the underlying cached file is missing, so the fix is not going to be ideal. Those that are maintaining remote systems won't see any change, but those running the script on a local system (or that have mounted the remote Thumbnails folder locally) will have the benefit of automatic "fixing" of any missing thumbnails.

Thanks again Milhouse. I understand you simply can't cater for every possible failure. It's good that at least one has been added that will help others who used the backup feature unsuccessfully. I'll see if I can reproduce the issue to get the actual backup feature fixed as well.

I've skipped adding a log file created by the script because the cause was already determined and fixable and the file was too big to begin with, but let me know if you would still like to have it.
Reply
No need for the log file now. Smile
Texture Cache Maintenance Utility: Preload your texture cache for optimal UI performance. Remotely manage media libraries. Purge unused artwork to free up space. Find missing media. Configurable QA check to highlight metadata issues. Aid in diagnosis of library and cache related problems.
Reply
Does this work on the Fire TV? If yes, which is the correct path? I'm starting this from my MacBook, no issues with doing that on an AppleTV and an HTPC.

I tried:

userdata = /sdcard/Android/data/org.xbmc.xbmc/files/.xbmc/userdata/
and
userdata = /storage/emulated/0/data/org.xbmc.xbmc/files/.xbmc/userdata/

but no luck Sad
Reply
(2014-10-21, 18:27)Maetrik Wrote: Does this work on the Fire TV?

Should do.

(2014-10-21, 18:27)Maetrik Wrote: I tried:

userdata = /sdcard/Android/data/org.xbmc.xbmc/files/.xbmc/userdata/
and
userdata = /storage/emulated/0/data/org.xbmc.xbmc/files/.xbmc/userdata/

but no luck Sad

The script should be using the default Android userdata path (wiki entry) unless configured to use something else (it will also check the /sdcard version of the default path). If the FireTV is using some other path then you'll need to set that by specifying the correct path for the userdata property.

The userdata path should be referenced in your xbmc.log, look for "special://masterprofile/ is mapped to". If not obvious, upload the log to pastebin.
Texture Cache Maintenance Utility: Preload your texture cache for optimal UI performance. Remotely manage media libraries. Purge unused artwork to free up space. Find missing media. Configurable QA check to highlight metadata issues. Aid in diagnosis of library and cache related problems.
Reply
The log says:

special://masterprofile/ is mapped to: /storage/emulated/0/Android/data/org.xbmc.xbmc/files/.xbmc/userdata

which i tried already. This is my cfg:

sep = |
userdata = /storage/emulated/0/Android/data/org.xbmc.xbmc/files/.xbmc/userdata/
dbfile = Database/Textures13.db
thumbnails = Thumbnails/
xbmc.host = 192.168.100.39
webserver.port = 8083
rpc.port = 9090
download.threads = 2
extrajson.albums =
extrajson.artists =
extrajson.songs =
extrajson.movies =
extrajson.sets =
extrajson.tvshows.tvshow =
extrajson.tvshows.season =
extrajson.tvshows.episode=
qaperiod = 30
qa.file = no
cache.castthumb = no
logfile =
logfile.verbose = no
network.mac =

Ports are doublechecked, XBMC is set to allow programs to on other systems to control XBMC, and allowance to control of XBMC via HTTP is also set.

This is what Texture Cache's log says:

http://pastebin.com/YYPTtfnD

I guess it's a read/write error and my FireTV is not rootable to change file permissions Sad
Reply
1. That's a really old version of texturecache.py (v0.8.9) that you have - the current version is v1.7.9. Try running "texturecache.py update"

2. Change you texturecache.cfg file to be *just* the following - everything else you have is already the default and not required:
Code:
userdata = /storage/emulated/0/Android/data/org.xbmc.xbmc/files/.xbmc/userdata/
xbmc.host = 192.168.100.39
webserver.port = 8083

According to the log, your current client platform is "Darwin", which would suggest you're running this script on a Mac, so presumably 192.168.100.39 is your FireTV client but your Mac isn't going to be able to access the Android userdata folder. Not that you need access to the userdata folder to perform the "c" option using recent versions of the script as it will be done entirely using JSON. Trying "c" with the above configuration and v0.8.9 of the script probably explains why it is failing.

So upgrade to v1.7.9, then either run the script on the FireTV (and remove xbmc.host from your config so that it defaults to localhost) or run it on your Mac connecting to the FireTV (but remove the userdata entry from your config).

3. If v1.7.9 is still not working, submit a new log (add @logfile=/tmp/tc.log to temporarily enable logging), and also copy/paste whatever you see in the console so that I know the error you are experiencing
Texture Cache Maintenance Utility: Preload your texture cache for optimal UI performance. Remotely manage media libraries. Purge unused artwork to free up space. Find missing media. Configurable QA check to highlight metadata issues. Aid in diagnosis of library and cache related problems.
Reply
I love you so much right now :-* After updating, everything works like charm - thank you so much.
Didnt notice this was an old version as the other ones i use keeps updating themselves Big Grin
Reply
Version 1.8.0
  • Add: Kodi rebrand support (default userdata folder). Also added FireTV support, as it uses a non-standard Android location
  • Fix: Bug when scanning a specific directory - v1.7.7 introduced an error that meant the whole library would be scanned, and not the specified folder
Texture Cache Maintenance Utility: Preload your texture cache for optimal UI performance. Remotely manage media libraries. Purge unused artwork to free up space. Find missing media. Configurable QA check to highlight metadata issues. Aid in diagnosis of library and cache related problems.
Reply
Version 1.8.1
  • Chg: Enhance behaviour of X and Xd so that zero-byte thumbnail files are treated the same as non-existing files, and will be identified (X) or removed (Xd) along with any corresponding database row
Texture Cache Maintenance Utility: Preload your texture cache for optimal UI performance. Remotely manage media libraries. Purge unused artwork to free up space. Find missing media. Configurable QA check to highlight metadata issues. Aid in diagnosis of library and cache related problems.
Reply
Thank you for this script Milhouse, i've been getting used to it for a while now and it's great. I Use it on my Pi and it works flawless, but I have a Pi in another room with multiple profiles on it. Is there a way to direct it at a certain profile's artwork, not sure how to set that up over here.
Reply
(2014-10-28, 02:39)gardnerd4me Wrote: Thank you for this script Milhouse, i've been getting used to it for a while now and it's great. I Use it on my Pi and it works flawless, but I have a Pi in another room with multiple profiles on it. Is there a way to direct it at a certain profile's artwork, not sure how to set that up over here.

There is a JSON method to load a profile on demand - I could add see about adding support for that and then the JSON methods would act against the currently loaded profile, although this might cause mayhem if someone is using the device at the time you run the script.

Or you can just load the profile to be updated and run the script.

Right now the script isn't particularly profile aware, for instance the X/Xd/r/R/p/P commands will default to the userdata folder of the master profile, and you would need to specify the location of each profiles userdata folder (eg. /storage/.kodi/userdata/profiles/myprofile) so that the default master profile location isn't used. You could create a [section] in your config file for each profile and configure the userdata folder within each section which would go part of the way to making the script more tolerant of profiles, then run the script specifying @section=<section-name> to work with the relevant profile. The final step would be to automatically load the profile as part of an update or query action (c/C/jd etc.), assuming the required profile isn't already loaded. The profile name would be another property to be specified in the section.
Texture Cache Maintenance Utility: Preload your texture cache for optimal UI performance. Remotely manage media libraries. Purge unused artwork to free up space. Find missing media. Configurable QA check to highlight metadata issues. Aid in diagnosis of library and cache related problems.
Reply
(2014-10-28, 03:12)Milhouse Wrote: There is a JSON method to load a profile on demand - I could add see about adding support for that and then the JSON methods would act against the currently loaded profile, although this might cause mayhem if someone is using the device at the time you run the script.

Or you can just load the profile to be updated and run the script.

I'm not too comfortable running the JSON commands, still learning things. Are you saying that it currently runs on .xbmc-current? If so then no problem here. I just didn't know how it handled profiles. I'll give it a shot and post back if I have any problems. Thanks for the advice.
Reply
The options that use JSON will query or update the currently loaded profile - JSON options are those such as jd, s, x, c, C, p, P, purge, qa, qax, query etc.

The options that require direct file system access will by default use only the master profile unless you configure the userdata property with the path for a specific profile. Options that require direct file system access are f, F, r, R, S, X and Xd.

As of right now, the script can be made to work with profiles provided you configure the correct userdata path (for use by the direct file system options) and remember to load the correct profile before running the script when using the JSON options.

The missing functionality is for the script to automatically load the required profile (and possibly automatically adjust the default userdata path when a non-master profile is used) so that you don't have to remember to do so.
Texture Cache Maintenance Utility: Preload your texture cache for optimal UI performance. Remotely manage media libraries. Purge unused artwork to free up space. Find missing media. Configurable QA check to highlight metadata issues. Aid in diagnosis of library and cache related problems.
Reply
Ok, thanks for the clarification. I haven't used the JSON query yet (iirc, I thought you said it was much faster). I'll have to play around with that and get used to it. Thanks again for your help Milhouse.
Reply
Version v1.8.2
  • Add: Profile support with new properties: profile.name, profile.password, profile.password.encrypted, profile.directory, profile.autoload and profile.enabled.

    Specify profile.directory relative to the profiles folder, although this property is only required if the directory is not using the same name as the profile.name. If direct file system access is required, eg. for Thumbnails or Database folders, the path to be used will be constructed from userdata/profiles/profile.directory.

    profile.autoload will control whether profiles are automatically loaded when required - the default value is yes. If set to no the script will exit with an error message if the currently loaded profile is not the required profile (if the required profile is already loaded the script will complete successfully).

    If you wish to temporarily disable profile support, for instance to determine the current profile when using status or stats options (which may otherwise load a new profile before collecting the status/stats), use @profile.enabled=no so that all profile loading behaviour is disabled. This may cause unpredictable results depending on the JSON-based option being used, however (no different to previous versions of the script).

    Specify yes for profile.password.encrypted if your profile.password is the hashed lock code from profiles.xml, otherwise provide a cleartext password and no (default) for profile.password.encrypted.

  • Fix: Use a sane default when userdata is not known. Fixes #24.
Texture Cache Maintenance Utility: Preload your texture cache for optimal UI performance. Remotely manage media libraries. Purge unused artwork to free up space. Find missing media. Configurable QA check to highlight metadata issues. Aid in diagnosis of library and cache related problems.
Reply
  • 1
  • 75
  • 76
  • 77(current)
  • 78
  • 79
  • 197

Logout Mark Read Team Forum Stats Members Help
[RELEASE] Texture Cache Maintenance utility17