I'm pretty sure I see your calls - have you logged into the account
and looked at your lists recently? I'd actually be surprised if that
page loads. You have 7076 of them, which would appear to be 7070 more
than you need. That's what's caused lists() to slow down - there's not
an automated way you can clean those up.
Since you are looking at this code, you absolutely need to make
several changes:
* stop using login all the time - cache your api key
* stop running lists all the time - cache the data, including list
ids, that you need
* don't make API calls when you don't need to - I see lots of login(),
then lists() calls which makes me guess you are using that to build a
form on every page load somewhere. don't do that.
* looks like campaignFolders is being run way too much as well - cache
that data, too
* you are using psuedo-transactional campaigns completely incorrectly,
so it's lucky you ran into this now. They are intended to be created
*once* and then sent repeatedly. It makes no sense to create one per
email - how would they be any different from regular campaigns in that
case? You should also go ahead and clean up old ones (there are 2662
trans campaigns created right now)
If you fix those things and provide the list_ids you want to keep
around, I'll be willing to look at automating cleaning up the extra
lists that got in there somehow. Once you've cached everything, you
also should make it clear to anyone manually accessing the account
that they should let you know before data related changes (new lists,
merge vars, interest groups, etc) are wanted to make sure it doesn't
break the API.
jesse