OK, well, I have a few more ideas: if you request the feed like this:
external.php?type=RSS2&&fulldesc=false&nohtml=true
then the size will be limited to whatever "Length of Thread Preview Text" in "Forum Display Options" is set to. You could force this by creating a plugin using "external_start" with the code:
Code:
$vbulletin->GPC['fulldesc'] = false;
$vbulletin->GPC['nohtml'] = true;
you might also be able to set $vbulletin->options['threadpreview'] to whatever you want at the same time.
Another thing you could do is disable caching by a plugin on the "external_complete" hook with the code
Code:
$insert_cache = false;
but of course that would affect your performance. But maybe you could do it conditionally with something like:
Code:
if (strlen($output) > some value)
{
$insert_cache = false;
}
Also, I don't think it would be very hard to modify the caching to allow it to use more than one database record, but that would require modifying the external.php file.
I haven't tried any of this.