My original intention was to create a tool that would provide convenience for avid microblog users; however, due to technical constraints, it is currently only sufficient for my own personal use. The source code is open-source.
The primary objective of this web application was to download every single entry from a user’s Tencent Weibo “Favorites” list to their local machine, and subsequently convert them into formats such as PDF. For instance, speaking personally, whenever I come across famous quotes, aphorisms, or particularly brilliant remarks made by others, I feel compelled to repost them. However, excessive reposting can become a nuisance for one’s audience (I have two colleagues whom I practically coerced into following me; they complain daily, joking that whenever they open their own Weibo feeds, they feel as though they’ve accidentally landed on my homepage). Furthermore, Tencent Weibo imposes a numerical limit on favorites, currently capped at 1,000 entries. Additionally, manually browsing through pages of favorites on the website’s interface is simply too cumbersome. Hence, the idea of localizing my favorites was born; after all, these entries constitute a form of knowledge worth preserving.
I began by studying Tencent’s API (open.t.qq.com), familiarized myself with the OAuth authentication flow, and brushed up on my Django skills, after which I was able to write the code. However, a problem soon emerged. The API endpoint for accessing favorites is limited to retrieving only 20 entries per request; consequently, downloading a full set of 1,000 favorites requires 50 separate requests. Such a high volume of frequent requests quickly hits the API’s rate limits (specifically regarding total request count and request frequency). Therefore, I concluded that the application lacks significant practical utility for the general public, though it remains perfectly adequate for my own personal use.
I named this application “favoman”, a name I spent quite some time deliberating over. favoman is built using the open-source OAuth library (oauth.googlecode.com) and the Django web development framework. I would also like to mention one other observation: while reviewing the various SDKs uploaded by users to open.t.qq.com, specifically the PHP version, I discovered that its core code was an exact duplicate of the key code found in the PHP SDK hosted at oauth.googlecode.com. However, the code file in question contained absolutely no attribution to the original author, nor did it include the associated MIT License.
Application Dependencies:
Python (>= 2.6.6) + OAuth (oauth.googlecode.com) + Django (>= 1.2.3)
Note: Please ensure that you insert your own Consumer Key and Consumer Secret (obtained through your API application) into the oauthy.py file.


Leave a Reply