These forums have been archived and are now read-only.

The new forums are live and can be found at https://forums.eveonline.com/

EVE Technology Lab

 
  • Topic is locked indefinitely.
 

Eve Market Scanner v1.6/1.7.2beta - Regional comparison of exported/autodumped marketlogs

Author
Eraggan Sadarr
Caldari Provisions
#1 - 2011-09-10 16:52:58 UTC  |  Edited by: Eraggan Sadarr
Original forum post

Compare Exported Marketlogs by Region

Stable version: 1.6.0
Beta version: 1.7.2 - Mirror (thx to Lee Anderson)

Eve Market Scanner (EMS) is a tool to compare regional exports of marketlogs. Developed by Eraggan Sadarr of the Comply Or Die corporation. Any gratuity donations should be sent to this character.

EMS basically loads all your marketlogs (either from the default folder or from a folder you specify). Then you can select two or more regions for comparison of buy and sell orders. You can filter by quantity, system security status and export date. There are shortcuts to finding the cheapest station to buy an item in, among others.

Note: The key thing to understand is that EMS in itself only compares manually exported marketlogs. That is, there is no scraping of the cache or monitoring of the client.
Attention Update: For those who want to run EMS in conjunction with the python cache scraper - reverence, there is an excellent script created by Mazen Alane found here and more details in the following posts. Also summarized here.

Screenshot 1
Screenshot 2
Screenshot 3
Screenshot 4

Requirements: .NET 4.0 framework

Developer requirements: Needs Microsoft Visual Studio 2008 and library http://msbuildtasks.tigris.org/.

Eve Market Scanner is open source and released under the GNU GENERAL PUBLIC LICENSE version 3.

Download:
Eve Market Scanner download
Eve Market Scanner Source

You can join the in-game mailinglist EveMarketScanner for info on updates and new features.

Run the downloaded setup and the app will upgrade itself, if you already have it installed.

Changelog:
v1.7.2 Beta
- Fixed: Added error handling for empty log files and tweaked the market items view.
- Added: Expand/Collapse all buttons for market browser.
- Change: Redid filter boxes.
- Update: Incarna 1.0 data incorporated.
v1.7.1 Beta
- Fixed: Marketlog API change on 'issueDate'. [Autodumper users must change the script themselves in main.py from 'issued' to 'issueDate'.]
- Change: Added multiple columns and removed old dropdown view.
- Change: Major code restructuring.
- Update: Incarna 1.0 data incorporated.
v1.6.0
- Fixed: Context menus (i.e. column in grid) was incorrectly sharing the same variable. Reported by Circus Bob.
- Fixed: Time zone error in expiry date, it was using local time, but is now strictly Eve time. Reported by Circus Bob.
- Conversion: Based on the .NET 4.0 framework].NET 4.0 framework now. Remember to upgrade.
v1.5.9
- Fixed: Path monitoring not working when changing marketlogs path.
- Update: Incursion 1.1.0 data incorporated.
v1.5.8
- Update: Tyrannis 1.0.1 data incorporated.
v1.5.7
- Added: "Second best region" in bargain finder.
- Added: Ignore expired orders in options.
- Change: Various optimizations.
v1.5.6
- Change: Icons redesigned.
- Improvement: Smaller setup file size.
Eraggan Sadarr
Caldari Provisions
#2 - 2011-09-10 16:53:23 UTC
/* Reserved */
Eraggan Sadarr
Caldari Provisions
#3 - 2011-09-10 16:53:30 UTC
/* Reserved */
Andyriel
Quando Omni Flunkus Moritatus
#4 - 2011-09-15 12:57:30 UTC
Notice:
Eraggan Sadarr is taking a break from the game (maybe permanent).
This will also pause the development of the Marketscanner. I will try to get hold of the latest Beta Source code, if anyone is interested in continuing work on it.

Eraggan says "Fly safe"...
Allen Phoenix
This Is Not Canada
#5 - 2011-09-28 19:54:08 UTC
Andyriel wrote:
Notice:
Eraggan Sadarr is taking a break from the game (maybe permanent).
This will also pause the development of the Marketscanner. I will try to get hold of the latest Beta Source code, if anyone is interested in continuing work on it.

Eraggan says "Fly safe"...


I would also be interested in the latest source code =) Thanks~
Andyriel
Quando Omni Flunkus Moritatus
#6 - 2011-10-01 10:49:43 UTC
Here is the Source code for latest beta version (1.7.2).
Good luck with it.
Sashi Serakhoi
Native Freshfood
Minmatar Republic
#7 - 2011-12-07 12:58:20 UTC
Hey folks, getting the following error pretty often now with 1.7.2

Appreciate any help or advice on trying to get it fixed

Quote:
System.FormatException: String was not recognized as a valid DateTime.
at System.DateTimeParse.Parse(String s, DateTimeFormatInfo dtfi, DateTimeStyles styles)
at System.Convert.ToDateTime(String value, IFormatProvider provider)
at System.String.System.IConvertible.ToDateTime(IFormatProvider provider)
at System.Convert.ChangeType(Object value, Type conversionType, IFormatProvider provider)
at MarketScanner.DataHandler.AddMarketLogEntryDataRowToTable(String CSVLine, DataTable dt, SortedList`2& slStationNames)
at MarketScanner.DataHandler.PopulateDataTableFromMarketLogDataFile(Stream strm, String sDataTableName, SortedList`2& slStationNames)
at MarketScanner.MarketLog.ToDataTable()
at MarketScanner.MarketLog.get_MarketTable()
at MarketScanner.MarketLog.ToGridView(BgPaintedDataGridView& dgvSellers, BgPaintedDataGridView& dgvBuyers, ContextMenuStrip& cmsMainSellers, ContextMenuStrip& cmsMainBuyers)
at MarketScanner.Common.RegionColumn.RegionDropDown_SelectedIndexChanged(Object sender, EventArgs e)
at System.EventHandler.Invoke(Object sender, EventArgs e)
at System.Windows.Forms.ComboBox.OnSelectedIndexChanged(EventArgs e)
at System.Windows.Forms.ComboBox.WmReflectCommand(Message& m)
at System.Windows.Forms.ComboBox.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
Locust L
Vovkulaki
UA. Space
#8 - 2011-12-13 16:04:24 UTC
Sashi Serakhoi wrote:
Hey folks, getting the following error pretty often now with 1.7.2

Appreciate any help or advice on trying to get it fixed

Quote:
System.FormatException: String was not recognized as a valid DateTime.
at System.DateTimeParse.Parse(String s, DateTimeFormatInfo dtfi, DateTimeStyles styles)
at System.Convert.ToDateTime(String value, IFormatProvider provider)
at System.String.System.IConvertible.ToDateTime(IFormatProvider provider)
at System.Convert.ChangeType(Object value, Type conversionType, IFormatProvider provider)
at MarketScanner.DataHandler.AddMarketLogEntryDataRowToTable(String CSVLine, DataTable dt, SortedList`2& slStationNames)
at MarketScanner.DataHandler.PopulateDataTableFromMarketLogDataFile(Stream strm, String sDataTableName, SortedList`2& slStationNames)
at MarketScanner.MarketLog.ToDataTable()
at MarketScanner.MarketLog.get_MarketTable()
at MarketScanner.MarketLog.ToGridView(BgPaintedDataGridView& dgvSellers, BgPaintedDataGridView& dgvBuyers, ContextMenuStrip& cmsMainSellers, ContextMenuStrip& cmsMainBuyers)
at MarketScanner.Common.RegionColumn.RegionDropDown_SelectedIndexChanged(Object sender, EventArgs e)
at System.EventHandler.Invoke(Object sender, EventArgs e)
at System.Windows.Forms.ComboBox.OnSelectedIndexChanged(EventArgs e)
at System.Windows.Forms.ComboBox.WmReflectCommand(Message& m)
at System.Windows.Forms.ComboBox.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


I have same problem.

------ 12/13/2011 5:58:28 PM --------

OS : Microsoft Windows NT 6.1.7601 Service Pack 1
Platform: Win32NT



System.FormatException: String was not recognized as a valid DateTime.
at System.DateTime.Parse(String s, IFormatProvider provider)
at System.Convert.ToDateTime(String value, IFormatProvider provider)
at System.Convert.ChangeType(Object value, Type conversionType, IFormatProvider provider)
at MarketScanner.DataHandler.AddMarketLogEntryDataRowToTable(String CSVLine, DataTable dt, SortedList`2& slStationNames)
at MarketScanner.DataHandler.PopulateDataTableFromMarketLogDataFile(Stream strm, String sDataTableName, SortedList`2& slStationNames)
at MarketScanner.MarketLog.ToDataTable()
at MarketScanner.MarketLog.get_MarketTable()
at MarketScanner.MarketLog.ToGridView(BgPaintedDataGridView& dgvSellers, BgPaintedDataGridView& dgvBuyers, ContextMenuStrip& cmsMainSellers, ContextMenuStrip& cmsMainBuyers)
at MarketScanner.Common.RegionColumn.RegionDropDown_SelectedIndexChanged(Object sender, EventArgs e)
at System.EventHandler.Invoke(Object sender, EventArgs e)
at System.Windows.Forms.ComboBox.OnSelectedIndexChanged(EventArgs e)
at System.Windows.Forms.ComboBox.WmReflectCommand(Message& m)
at System.Windows.Forms.ComboBox.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)



It is happens when i select any data in a tree browser of EMS. So i cant see anything in EMS, only this error when trying do it.
Locust L
Vovkulaki
UA. Space
#9 - 2011-12-13 16:08:09 UTC
In 1.6.0 EMS i have another error:

System.OverflowException: Value was either too large or too small for an Int32.
at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)
at System.Convert.ChangeType(Object value, Type conversionType, IFormatProvider provider)
at MarketScanner.DataHandler.AddMarketLogEntryDataRowToTable(String CSVLine, DataTable dt, SortedList`2& slStationNames)
at MarketScanner.DataHandler.PopulateDataTableFromMarketLogDataFile(Stream strm, String sDataTableName, SortedList`2& slStationNames)
at MarketScanner.MarketLog.ToDataTable()
at MarketScanner.MarketLog.get_MarketTable()
at MarketScanner.MarketLog.ToGridView(BgPaintedDataGridView& dgvSellers, BgPaintedDataGridView& dgvBuyers, ContextMenuStrip& cmsMainSellers, ContextMenuStrip& cmsMainBuyers)
at MarketScanner.Main.cbRegionsL_SelectedIndexChanged(Object sender, EventArgs e)
at System.EventHandler.Invoke(Object sender, EventArgs e)
at System.Windows.Forms.ComboBox.OnSelectedIndexChanged(EventArgs e)
at System.Windows.Forms.ComboBox.WmReflectCommand(Message& m)
at System.Windows.Forms.ComboBox.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
Trade 102
Doomheim
#10 - 2011-12-20 19:12:15 UTC
i have same error with both 1.6 and 1.7
Lusitan Gamara
University of Caille
Gallente Federation
#11 - 2011-12-21 16:55:06 UTC  |  Edited by: Lusitan Gamara
The Int32 Bug is caused by a change in the parameters by CCP from 32 bits to 64bits. To fix it is just a matter of changing the variable in the source code to a 64bit integer.

The one about the date String is more complicated. Since Crucible was introduced the date and time has a bug in the way it's formated.

The format was 2011-12-21 but now it shows as 2NULL0NULL1NULL1NULL and so on. Open the TXT market log files and check it.

I've posted here twice about it and reported it as a bug to CCP from within EVE but so far it hasn't be fixed. Maybe if more people complaint about it they will finaly take notice.
Major Thrasher
Native Freshfood
Minmatar Republic
#12 - 2011-12-29 00:34:10 UTC
yeah would love to see a fix

.

Jaqa
Royale Strategic Imperative
#13 - 2012-03-01 02:45:36 UTC
System.OverflowException: Value was either too large or too small for an Int32.
at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)
at System.Convert.ChangeType(Object value, Type conversionType, IFormatProvider provider)
at MarketScanner.DataHandler.AddMarketLogEntryDataRowToTable(String CSVLine, DataTable dt, SortedList`2& slStationNames)
at MarketScanner.DataHandler.PopulateDataTableFromMarketLogDataFile(Stream strm, String sDataTableName, SortedList`2& slStationNames)
at MarketScanner.MarketLog.ToDataTable()
at MarketScanner.MarketLog.get_MarketTable()
at MarketScanner.MarketLog.ToGridView(BgPaintedDataGridView& dgvSellers, BgPaintedDataGridView& dgvBuyers, ContextMenuStrip& cmsMainSellers, ContextMenuStrip& cmsMainBuyers)
at MarketScanner.Main.cbRegionsL_SelectedIndexChanged(Object sender, EventArgs e)
at System.EventHandler.Invoke(Object sender, EventArgs e)
at System.Windows.Forms.ComboBox.OnSelectedIndexChanged(EventArgs e)
at System.Windows.Forms.ComboBox.WmReflectCommand(Message& m)
at System.Windows.Forms.ComboBox.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

The Original Jaqalope Pilot of the Transportosaurus Rex 100% Free Range