I know, I know. It’s been over a year since I added anything to this blog. 2020 was a rough year for reasons above and beyond the COVID mess. So let’s get back into it.
I’ve introduced a new tool to expose hidden IMVU outfits. Here it is https://triggerless.com/expose-outfits. It’s in the Widgets menu too.
It’s not a completely new tool, though. It’s a bit of a clone of the tool created by IMVUOutfits.com, which does much of the same thing. You right-click in the IMVU chat window, select “View products in this scene”, copy the URL, and paste it into a text box and click “GO”. Mine works the same way. The issue is that the IMVUOutfits tool often crashes, and it can take minutes to complete. It’s a great idea, but it’s hit or miss in operation.
The original tool does everything at the server. I believe it was created before IMVU introduced their JSON APIs, so it probably involves a lot of web page scraping. The new APIs are faster and easier to work with. Another advantage of the APIs is that they are typically more stable than web page scrapes. Every time IMVU decides to change something that affects the web site, it can mess with your code that depends on certain assumptions. So that could become a maintenance nightmare. By comparison, APIs are more likely to not change, because their specific purpose is to deliver raw-ish data, not a user interface.
In contrast, my new tool does very little on the server. I’m using React, a JavaScript library that allows for component-based user interfaces. Most of the execution is done in the user’s browser, not on the server. React also takes advantage of asynchronous execution, so you can be downloading multiple streams of data, and progressively updating the user interface as more data becomes available. What used to take a couple minutes with IMVUOutfits can be accomplished in a couple seconds using my new Expose Hidden IMVU Outfits tool.
And interesting side effect of asynchronous execution is that the avatars who are wearing the fewest products will return results more quickly than avatars who are wearing lots of items. The gnarly URL has the logged-in user’s avatar ID first, and then the others in ID order from lowest to highest, which is also chronological order of when they joined. But the results in the Expose-Outfits tool will start populating more quickly, so there is nearly immediate feedback.
Another thing to note is that Expose-Outfits is using my custom Triggerless APIs. The Triggerless APIs act as a sort of proxy to the underlying IMVU APIs. This gives several advantages over calling the IMVU APIs directly. One is that calling the Triggerless APIs requires no authentication. And because the Triggerless APIs call the IMVU APIs using credentials that have Access Pass, even someone who lacks AP can learn a thing or two about what other AP avatars are wearing. Another advantage is that I can modify the intermediate behavior between a calling application and IMVU. At the time of this writing, products that are hidden in the catalog don’t show up in the results. In the near future, I plan on modifying this behavior so when a product can’t be probed using the IMVU APIs, we can fall back to the web scraping technique to gather as much information as possible. I have some novel ideas for this and plan to pursue this soon.
I hope you find this new widget useful. I’m sure people will start using it once they find out about it. And I plan on writing a more comprehensive post about the Triggerless APIs, so you can use and abuse them to your heart’s content. ~c~
Update [2021-02-09]
I modified Expose Outfits so now products that are hidden in the catalog are revealed. It only required a minor change to the front end, but the back end (Triggerless API) required quite a few additions. Now if a product cannot be found using the IMVU API, an attempt to find that product by scraping the IMVU product page will be made.