mdoupe

[Software] Brickficiency - Find the cheapest BL stores to buy parts

Recommended Posts

ciao!!

I have a question/problem with this software!

I have a wanted list in BL whit 175 items

when i import this wanted list, the software import only 22

why? How con I solve this problem?

2q01103.jpg

Share this post


Link to post
Share on other sites

At some point bricklink made grabbing your whole wanted list in one go impossible, so it's currently limited to the first thousand items from all wanted lists.

Share this post


Link to post
Share on other sites

This is a great program. I'm currently using it to create a list of pieces I've bought in bulk and it's the quickest way I've found compared to any program or website out there.

A couple of tweaks I'd like to see are:

On the add item window, if a part type is selected, a separate panel shows the image of that type, but still have the hover image display on moving the mouse around the list.

An information window would be great. It could show the number of parts, total pieces etc.

I would also love to know how to get every piece in the list showing its own lowest price, not combined with other pieces for an order, just wanting to see what my collection of random parts is worth!

Share this post


Link to post
Share on other sites

I've had a couple of cases where I've done some fairly long calculations and I've had to abort them because I've needed my computer for other tasks, or have needed to shutdown to move my laptop. Being able to run on only one or two cores in the background, or pause the job while I'm doing something else would be really helpful.

Share this post


Link to post
Share on other sites

Was the 'undetermined type' tile problem ever addressed? Is there a way to gt it to set them all to type with groove, since that's the type most commonly available? Other than that, this program has saved me lots of money and a few hours of manually looking through stores. :wub:

Share this post


Link to post
Share on other sites

Do you mean changing an existing item in a list to another type of item? Double click on the item name. It will let you pick a different one. You can double click on most of the fields to change them in various ways.

I'm currently using it to create a list of pieces I've bought in bulk

To be honest, I modeled Brickficiency after BrickStock, but Brickstock is a much better program for straight up inventory. As a bonus, both programs use the same file format, so you can switch between the two at your leisure.

Was the 'undetermined type' tile problem ever addressed? Is there a way to gt it to set them all to type with groove, since that's the type most commonly available? Other than that, this program has saved me lots of money and a few hours of manually looking through stores. :wub:

Do you mean changing an existing item in a list to another type of item? Double click on the item name. It will let you pick a different one. You can double click on most of the fields to change them in various ways.

Share this post


Link to post
Share on other sites

What you've got going here with that availability column is great! Any news on progress? Is there a file we can download to give it a go?

Alright, finally got back to taking another look at this.

This is what I've been working on:

AvailstoresAdded.png

It still has some stability issues but is this going to satisfy what you are after?

Share this post


Link to post
Share on other sites

Please advise what the latest release number is and where I can download it.

I have 0.95.4 and it returns

"

Getting Price Guide information for Black Technic, Axle and Pin Connector Angled #1

Retrying...

Retrying...

Retrying...

Retrying...

Error downloading price guide (got page, but there was nothing on it)

Some items were unavailable. Calculation cancelled.

"

Even if this is the only part in the list it fails - yet BrickLink reports it is available in several hundred stores.

If I down load a wanted list - which it does successfully.

It returns this for the first part in the list. Changing the status to 'X' skips the first part and then returns this error for the second item on the list.

Repeat this procedure and every item returns the same error

Edited by tsrplatelayer

Share this post


Link to post
Share on other sites

What you've got going here with that availability column is great! Any news on progress? Is there a file we can download to give it a go?

I was working on that and I got it to a kind of "proof of concept" stage which was when I posted the screenshot.

However, not long after that there was this post from mdoupe:

...but from what I hear Brickficiency is quite close to being obsolete.

So I just kind of gave up on the project.

There were a few issues with my 'alpha' to do with prompting for the users password and things so I wasn't intending to let it loose on the public and I just kind of let it slide when I saw the "impending obsolescence" comment. I do however have some spare time on my hands again now so I could take another swipe it it if it's worth doing. Unfortunately the code I attempted to commit doesn't seem to have made it to repository after all so I'll have to start a fresh, but I certainly can do it if theirs interest.

Share this post


Link to post
Share on other sites
"impending obsolescence"

To be fair, I've heard this feature was in the works exactly once, and that was a couple years ago (when they were talking about "Bricklink 2.0"). I have no official communication with Bricklink. I think it took me a month just to get approval to download their database every night for Brickficiency.

Share this post


Link to post
Share on other sites

Okay, here is a link to the 'alpha' build I mentioned above:

https://dl.dropboxus...storesAlpha.exe

You should be able to just copy this executable into the same directory as your regular "Brickficiency.exe" file and if you want to give the alpha a look just run the "Brickficiency - AvailstoresAlpha.exe" instead. Note, you should still be able to run the regular Brickficiency program in whatever way you have been previously.

Just be aware that looking up the number of available stores for each piece takes a little time. It's not much of a problem when you add pieces individually but if you import a whole list the program can bog down for quite a while as it fetches all the pages. Note that the 'alpha' program fetches the piece information in the same way the regular program does (which it does when you click the "Calculate" button) however it does this when the pieces are added rather than just before the optimisation is carried out.

Edited by S_Bartfast

Share this post


Link to post
Share on other sites

I downloaded the alpha, put it in the same folder as my released version, and tried it with the following results. I am using Win 10.

Opened program and updated the database, progress bas got about 90% across and then I got the '....has stopped working' crash message. I retried with the same result.

I then used my released version to download the database without problem.

I manually added 1 part 32013 in Black and got the following error

Getting Price Guide information for Black Technic, Axle and Pin Connector Angled #1

Retrying...

Retrying...

Retrying...

Retrying...

Error downloading price guide

Error downloading price guide (got page, but there was nothing on it)

I deleted this part and tried 32014 with the same result.

Allan

Share this post


Link to post
Share on other sites

Hmm, curious.

Is the original program working and performing the optimisations for you properly?

I did add a little fix to do with receiving blank pages from BrickLink as I was getting "Excpetions" while I was debugging. I have now removed the "little fix" to set it back to be the same as the regular program. Try downloading the 'exe' again and see if it's now behaving the same as the original.

If that still fails I'll swap it over to a "Debug" version (rather than "Release") which is what I believe the original executable was compiled as.

BTW, I'm using Win10 as well.

Share this post


Link to post
Share on other sites

I have downloaded and tried again - no change.

Original has same problem - see post 8 Feb 10:52 above

also see Posted 06 July 2015 - 10:38 AM

Allan

Edited by tsrplatelayer

Share this post


Link to post
Share on other sites

Original has same problem - see post 8 Feb 10:52 above

Arr, I see. I'd thought it was something I'd done.

Care to post us a parts list and I'll investergate.

Edited by S_Bartfast

Share this post


Link to post
Share on other sites

No parts list required - as I said I manually added the 32013 and 32014 parts and they generated the error.

Hmm, well, I'm afraid all I can say is "Works for me":

32013%2632014.jpg

Share this post


Link to post
Share on other sites

OK - so we need to work out where the differnces lie.

Could it be related to server response times?

Could it be related to the access rights on the folder where the file is stored, are any temporary files used that may have rights issues?

I it possible to add to the report/ the status area or store sperately additional information to help work out what is going wong?

I have tried completely removing both the released and alpha versions, then deleting the user folder - is there any other area that needs cleaning - registry, hidden folders or whatever?

I had a look in the roaming/brickficiency/debug/debug-priceguide.txt file - it is empty.

I will try - probably on Friday - on my other WIn 10 machine and also my old WIn 7 machine neither of which have had the program installed before. I will check both this part isue and the issue relating to downloading the database - where is the database stored?

I hope the image link works - I havn't used this method before. - but just in case https://www.dropbox....tl/bf1.jpg?dl=0

bf1.jpg?dl=0

Thanks

Edited by tsrplatelayer

Share this post


Link to post
Share on other sites

Curious...

It's a little hard to debug without being able to reproduce the problem, but it appears that the issue is that a page is received however the page does not contain the information expected. In particular the source for the page received does not contain the string:

<B>Currently Available</B>

What do you get when you click the "Show Bricklink Price Guide" option from the context menu:

ShowPeiceGuide.jpg

This should open the following page in your browser:

http://www.bricklink...2013&colorID=11

Does that page open properly?

BTW the "roaming/brickficiency/debug/debug-priceguide.txt" file is empty for me as well.

Share this post


Link to post
Share on other sites

As requested - right click opens the appropriate page with the string "Currently Available", it opens quickly without error.

Is it possible to add a debug string to save the page received.

As I said tomorrow I will try on another computer.

My file "Brickficiency - AvailstoresAlpha.exe"is located in "C:\Users\allans\Desktop"

I tried "Run as Administrator" - no difference.

ALso see https://www.dropbox.com/s/k5kn1cb8itl7dk1/bf2.jpg?dl=0

Edited by tsrplatelayer

Share this post


Link to post
Share on other sites

Well --

I installed Alpha and 0.95.4 on laptop - forgot the SQL CE, wondered what was wrong for a while - remembered and installedf SQLCE - interestingly both 2008 SQL server - full edition and SQLCE3.5 were already installed. Anyway - added 4.0 version.

Ran Apha - failed to download database - crash as on desktop.

Ran 0.95.4 and downloaded database - no problem

Exit and re-run Alpha - added technic connetors as before and it worked.

Tried again on my desktop and it worked

Explain that!!

Lets see what tomorrow brings - ...

A thought occurs but may be irrelevant - during the daytime my downloadspeed is 107Mbps, but in the evening it throttles back to 50Mbps do to local area loading.

Could the response be ...too quick .... naa thats silly.

I will try again tomorrow.

Allan

Share this post


Link to post
Share on other sites

OK - while it seems to be working - tried downloading a wanted list from Brickstok - got an error message

"Unhandles exception has occured - Table doesnt have a primary key. - details as follws

See the end of this message for details on invoking

just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************

System.Data.MissingPrimaryKeyException: Table doesn't have a primary key.

at System.Data.DataTable.FindByPrimaryKey(Object value)

at Brickficiency.Mainwindow.itemTimerNew_Tick(Object sender, EventArgs e)

at System.Windows.Forms.Timer.OnTick(EventArgs e)

at System.Windows.Forms.Timer.TimerNativewindow.WndProc(Message& m)

at System.Windows.Forms.Nativewindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

************** Loaded Assemblies **************

mscorlib

Assembly Version: 4.0.0.0

Win32 Version: 4.6.1063.1 built by: NETFXREL3STAGE

CodeBase: file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/mscorlib.dll

----------------------------------------

Brickficiency - AvailstoresAlpha

Assembly Version: 0.95.4.0

Win32 Version: 0.95.4.0

CodeBase: file:///C:/Users/allans/Desktop/Brickficiency%20-%20AvailstoresAlpha.exe

----------------------------------------

System.Windows.Forms

Assembly Version: 4.0.0.0

Win32 Version: 4.6.1038.0 built by: NETFXREL2

CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll

----------------------------------------

System

Assembly Version: 4.0.0.0

Win32 Version: 4.6.1038.0 built by: NETFXREL2

CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll

----------------------------------------

System.Drawing

Assembly Version: 4.0.0.0

Win32 Version: 4.6.1068.2 built by: NETFXREL3STAGE

CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll

----------------------------------------

System.Data

Assembly Version: 4.0.0.0

Win32 Version: 4.6.1038.0 built by: NETFXREL2

CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_64/System.Data/v4.0_4.0.0.0__b77a5c561934e089/System.Data.dll

----------------------------------------

System.Core

Assembly Version: 4.0.0.0

Win32 Version: 4.6.1038.0 built by: NETFXREL2

CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll

----------------------------------------

System.Xml

Assembly Version: 4.0.0.0

Win32 Version: 4.6.1064.2 built by: NETFXREL3STAGE

CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll

----------------------------------------

System.Configuration

Assembly Version: 4.0.0.0

Win32 Version: 4.6.1038.0 built by: NETFXREL2

CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll

----------------------------------------

Microsoft.GeneratedCode

Assembly Version: 1.0.0.0

Win32 Version: 4.6.1064.2 built by: NETFXREL3STAGE

CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll

----------------------------------------

System.Data.SqlServerCe

Assembly Version: 4.0.0.0

Win32 Version: 4.0.8482.1

CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Data.SqlServerCe/4.0.0.0__89845dcd8080cc91/System.Data.SqlServerCe.dll

----------------------------------------

System.Transactions

Assembly Version: 4.0.0.0

Win32 Version: 4.6.1038.0 built by: NETFXREL2

CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_64/System.Transactions/v4.0_4.0.0.0__b77a5c561934e089/System.Transactions.dll

----------------------------------------

System.EnterpriseServices

Assembly Version: 4.0.0.0

Win32 Version: 4.6.1038.0 built by: NETFXREL2

CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_64/System.EnterpriseServices/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.EnterpriseServices.dll

----------------------------------------

System.Numerics

Assembly Version: 4.0.0.0

Win32 Version: 4.6.1038.0 built by: NETFXREL2

CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Numerics/v4.0_4.0.0.0__b77a5c561934e089/System.Numerics.dll

----------------------------------------

System.Data.DataSetExtensions

Assembly Version: 4.0.0.0

Win32 Version: 4.6.1038.0 built by: NETFXREL2

CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Data.DataSetExtensions/v4.0_4.0.0.0__b77a5c561934e089/System.Data.DataSetExtensions.dll

----------------------------------------

************** JIT Debugging **************

To enable just-in-time (JIT) debugging, the .config file for this

application or computer (machine.config) must have the

jitDebugging value set in the system.windows.forms section.

The application must also be compiled with debugging

enabled.

For example:

<configuration>

<system.windows.forms jitDebugging="true" />

</configuration>

When JIT debugging is enabled, any unhandled exception

will be sent to the JIT debugger registered on the computer

rather than be handled by this dialog box.

Testing Alpha Availstores feature

https://www.dropbox....issing.bsx?dl=0

The above file used for testing.

Opened with Alpha -no problem.

Availstores populated - no problem. These seem to be worldwide counts.

Checked 'settings' file in the profile it has

<countries>

<string>All</string>

</countries>

There doesnt seem to be any way to configure this other than by clicking 'Calculate' and setting country filters here.

Changed filter to 'United Kingdom' and performed calculation, which failed - but thats OKit would as some parts were not available.

Closed Alpha.

Checked settings file again - it now has

<countries>

<string>United Kingdom</string>

</countries>

Re-opened Alpha and re-opened wanted file as before

Availstores column remains blank, even though the progress box shows all the parts data being downloaded

Allan

Edited by tsrplatelayer

Share this post


Link to post
Share on other sites
Is it possible to add a debug string to save the page received.

It is, and I've done it for you ;)

You should now find a file called "Debug-parsesource.html" in your 'debug' folder which will be filled with the last page that was parsed for pricing data.

I also corrected what I believe was a small typo in regard to extraction colour options for pieces.

There was a line that read:

foreach (Match colourmatch in Regex.Matches(page, "http://www\\.bricklink\\.com/catalogPG\\.asp\\?" + item.type + "=" + item.number + "&colorID=([0-9]+)")) {

However the page being parsed actually contains a capital 'C' for "ColorD=..." and seemed to be being missed by this search. Hopefully this will help with your issues. In particular I found the optimisation was getting tripped up by rck004 (Jet - Trans-Neon Green Visor), probably because it's colour is assigned as "(Not Applicable)". With the modification I was able to get the optimisation to run however no 1, 2 or 3 store solutions could be found to satisfy all your pieces. After 'excluding' all pieces that were available from fewer than 100 stores, but adding back all 4 pieces that had their colour set to "(Not Applicable)" Brickficiency was able to find 14 solutions.

Anyway, here's a link to the 'Alpha' again to save you hunting back to find it:

https://dl.dropboxus...storesAlpha.exe

Edited by S_Bartfast

Share this post


Link to post
Share on other sites

Thankyou. I downloaded this new version.

1. Import wanted list from BrickLink - fails with "Unhandled exception has occured - Table doesnt have a primary key." This doesnt happen with 95.4.

2. Open Wanted list (same one as previous) - Availstores is not populated, column is blank, despite progress window showing details are available.

Attached are screen grab and my BF folder from the roaming profile - zipped together - https://www.dropbox....0rw/BF.zip?dl=0

This is probably due to 'United Kingdom' being set in the settings file.

Also the settings in a users BL account may be significant - i.e. currency?

3. If I open the wanted file - available column is blank - click calculate and change 'Countried to Query' settings to 'All Countries'. Close BF and reopen BF, then reopen file availstores gets data - but active - highlighted row - shows 'unknown' in availstores until I move the focus to a new row when the 'unknown' gets replaced. This changes the <country' value in the settings file.

It might be useful to have a 'button' on the bar or drop down in a menu to clear the cache and repopulate the available column.

Thanks again

Allan

Edited by tsrplatelayer

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.