ID:1737315
 
(See the best response by Nadrew.)
Is there a way to loop through the subscriber list or grab a list of all subscribers with a certain time left (such as lifetime)?

Is there a way to alter someone's subscription via code?

The reason why I ask is because I'd like to convert lifetime subscriber, after a time period is over, to just have an item and/or perk instead. As courtesy for their support. However, if I did it the easy way, which is that when they log in they are added to a list and saved, then that would be the unsafe way. If there were ever a crash or corruption of the save file then what? All those people lose their stuff. Instead, I'd like to have it written directly in to the game so that way it's forever available and easily accessible.

Edit:

Only thing I can think of is to parse through all the users in the subscription page and stripping it while also checking Lifetime is present as a text...

<tr>
<td class="hub_sub_name" user="Xirre"><a href="http://www.byond.com/members/Xirre" target="_blank">Xirre</a></td>
<td class="hub_sub_date">Lifetime</td>
<td class="hub_sub_button" id="hub_sub_status_Xirre"><a href="#" onclick="sendRequest('command=hub_sub_ajax&amp;hub=107774&amp;key=Xirre','hub_sub_status_Xirre','subscribers'); return false">[+]</a></td>
</tr>
Best response
There's no direct way to do either of the things you asked, and even looping over the web-page's content wouldn't work because it would require the user to be logged in as you to view the secure list of subscribers.

Summary: You can only access subscription information on a user-by-user basis using CheckPassport(), and there's no viable way to alter subscriptions via code. There's also no secure way to loop over the entire list.
I guess... this sucks then. There's always some wall that's hit.