Please Note - this example is specifically written for Australian users only. I myself am Australian, and use eBay Australia. The preset categories, postcode lookup CSV, and other defaults, are based on the eBay Australia site. Because this is an example only, you can either pretend to live in Australia (to test this example), or modify the code to support a different country. If there's enough demand, I might make it more universal.
The reason I wrote this application is that I've been curious for some time about what the list of auctions might be in eBay that are about to end at any point in time. I noticed as an eBay user that I couldn't easily obtain this information through the eBay website. eBay seemed to allow searching across one category of auctions at a time, or on keywords. But nothing to search across multiple categories at a time.
Once I discovered the eBay API I began writing the eBay UDF to support this app. I found that the eBay API function for searching a category was particularly slow when executing sequentially. It also only supports the searching of 3 categories in one call, so my plans of using it to search across a host of categories in eBay were not looking good. I looked at ways that I could run multiple searches in parallel using the API via parallel processing in AutoIT, and found Piccaso's CoProc UDF. The UDF worked great, and I refined it somewhat as the ChildProc UDF. The result was that I could fire multiple searches concurrently and have them run in parallel and complete in a fraction of the time that they would sequentially.
After getting parallel searching working, I added a few other filters and sorts, and I think the result is quite good at the moment. I've found a few bargains so far, and I think it makes the process of finding bargains much easier.
Note also that the main application window is 1280 x 800 pixels in size. This may be larger than most users desktops. A large sized window does help in viewing as many search results as possible at one time, which is why I chose this setting.
Note also that the application is internally configured for a maximum concurrent number of 100 processes during searching. I haven't done any performance tuning yet, and though 100 concurrent processes sounds excessive, I haven't had any issues with this so far on my dual core laptop. I will be making this setting configurable in the Preferences window soon. In one case, I had 157 concurrent category searches finish in just 58 seconds!
AutoIt3 3.2 or higher
At the moment the application doesn't have any built-in help. I might get around to writing a CHM help file one day. Will see how much people want it. For now I'm documenting the instructions here.
The Bargain Hunter window is composed of 4 major sections:
- Persistent Settings
- Temporary Settings
- Buttons and Progress and Status bars
The Persistent Settings group / box allows the user to select the categories they want included in the Search, as well as apply a number of filters. It's called "persistent" because any changes are saved when the application is closed, and reloaded automatically when next started. The user may check/uncheck any number of categories to then later search on. The Category Presets allow the user to select a number of preconfigured search categories in one go, and also immediately initiate a search across them. The "first XXX auctions" field lets the user specify a maximum number of auctions to pull back in the Search. The "PricePlusShippingLowest sort" field is currently fixed, and specifies that the Search will always return a list of auctions from lowest cost (price + shipping/postage) to highest. The "ending within XXX mins" field lets the user specify a cut-off time for auction ending times. This filters the "first XXX auctions" and "PricePlusShippingLowest sort" fields further, to only list auctions ending in this number of minutes. The "auctions from XXX" field further filters the results to only include items from the specified country. The "pickup items from XXX" field filters the results further, to only include the "free pickup" items from the specified state (or those that don't have a state defined).
The Temporary Settings group / box currently only stores a category filter. It's called "temporary" because the settings are lost when the application is closed. This is populated when the user pushes F7, or clicks the Filter (F7) button, whilst a record is selected within the Results listview. The results this is then refreshed (re-searched) to only display auctions for that single category.
The Results listview displays all the auctions found from a previous Search. A number of useful fields are included. The
The Search button will execute a multi-category search based on the criteria specified in the Persistent Settings group / box. The results go into the Results listview, and are automatically sorted ascendingly on the Cost (price + shipping / postage) column. The Prefs button displays a Preferences window, where general settings can be stored. Close (Esc) (self explanatory). Uncheck All Categories button unchecks all the categories in the Persistent Settings group / box.
The Preferences window lets you define your eBay Developer App ID and Auth. Token. These fields seem to be optional. I previously thought the user would have to supply these, however the app. seems to work without them.
Latest Version - v0.1 (30/05/10)
Source: eBay Bargain Hunter source.zip
Installer: eBay Bargain Hunter setup.exe
Edited by seangriffin, 31 May 2010 - 06:16 AM.