EVEMon 4.0.20 - ESI Edition

It really isn’t hard to set up, I did it without instructions in a matter of minutes, and no, I do not work in an IT related field.

Really tired of the incessant whining about this aspect of the new EVEMon. Does it work like the old EVEMon? No, but you can thank CCP for that.

Be grateful that people like @peter_han are willing to donate their time to the community. No one is making you use EVEMon.

2 Likes

OK maybe my post came over a bit bitch, time of the month and all, but ive used evemon for many years and I dont blame the evemon devs that ccp killed off a good way to share data to corp mates etc

I was merely asking why evemon has to work in a dev mode, with dev account access at ccp etc and why it can not work like any of of several other apps, eve droid for example that can connect to your data using SSO only

Apologies for your hurt feeling from my poorly worded query

1 Like

No worries, just not seeing much appreciation for the guys saving the app which was dead when ESI was implemented. Many EVE apps and sites died that day such as EVEBoard.

Peter had explained repeatedly that his method of implementation is necessary to prevent nefarious shenanigans.

1 Like

@Peter_Han small thing I noticed… the forums option in the evemon help menu leads to a really old version of the forum post. Maybe small update to have your version point to this thread instead. Didn’t check the other parts of the help menu but I suspect they also lead to old twitter and RTM sites from previous developers.

For those who are having trouble qualifying for a developer account try to someone who has an account that is verified by CCP by means of a payment. For members of my corp that I trust I have given them access to my key/secret. But bear in mind if you do this that any abuse that other person causes will be counted against the person who made and shared their developer secret info. So take care if you help anyone out this way. Although evemon generally behaves well on ESI as far as I can tell so the risk of having your app banned is probably minimal.

Here is hoping that CCP implements a somewhat better method of handing apps like evemon on an individual basis.

Summary

I am using only public citadels for that but also still don’t see any industry jobs on any char doing them.

Edit: Today i have Industry jobs showing up, maybe it was yesterdays update or the the previous crash had something to do with them not showing up earlier.

@Peter_Han EVEMon crashes every 1-2 days. Not sure if it makes sense to post those ridiculous long crash reports or which part of it is actually useful for research. The log has some german translations, not sure if that’s a problem.

At every start up i get the same evemon windows notification:
“An error occured while querying the ID to Name conversion.”

So here is my crashlog from just before todays patch:

TrustFailure on one computer but not the other. I have uninstalled and reset evemon 4.0.2 twice.

EVEMon.Common.Net.HttpWebClientServiceException: A request to esi.evetech.net failed with status: TrustFailure. —> System.Net.WebException: The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel. —> System.Security.Authentication.AuthenticationException: The remote certificate is invalid according to the validation procedure.
at System.Net.TlsStream.EndWrite(IAsyncResult asyncResult)
at System.Net.ConnectStream.WriteHeadersCallback(IAsyncResult ar)
— End of inner exception stack trace —
at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
at System.Net.Http.HttpClientHandler.GetResponseCallback(IAsyncResult ar)
— End of inner exception stack trace —
at EVEMon.Common.Net.HttpClientServiceRequest.d__23.MoveNext() in U:\Users\Stephen\Documents\PRGM\EVEMon\src\EVEMon.Common\Net\HttpClientServiceRequest.cs:line 109
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at EVEMon.Common.Net.HttpWebClientService.d__11`1.MoveNext() in U:\Users\Stephen\Documents\PRGM\EVEMon\src\EVEMon.Common\Net\HttpWebClientService.StreamDownload.cs:line 45

As far as I know jEve Assets actually has the app secret embedded (which is not really recommended) and does not use a webhelper app if you use local server it just redirects you there at the end.

Because your android app is probably either including their client secret (it is called secret for a reason) so people could steal it OR it is using a webproxy that is relaying tokens that could steal your tokens.

I think this happens when SkillQueue.IsPaused is true and no skill is in the queue anymore.
To fix this it would probably need to set IsPaused to false if the skillqueue gets emptied during the update in SkillQueue.UpdateOnTimerTick. Since the SkillQueue.Import does have it to false too, if there is no skill in the import.

Otherwise there could just be a check happening in OverviewItem.UpdateContent for an empty queue. (I submitted a PR for this, lets see what Peter Han says)

This is a problem with the certificate store on your OS on that specific pc. It can for what ever reason not validate CCPs certificate they use for es.evetech.net. Nothing the app author can do anything about.

Is it possible to change the URLs in the application under Help / About and Help / Forums to the recent forum and github?

Will there be support for other (non-Windows) OS’s?

Means you’ve never given CCP any real money and therefore can’t create a dev app.

Yesterday, my work notebook EveMon updated and I lost all characters loaded in. Any idea where this comes from? Running on W10 and not running as administrator if that helps. With ESI loading 10+ characters is quite a beetch, thus I’d like to understand and avoid the issue at all costs.

I had this at first after I added all my character the first time without deleting old evemon settings file.

Well it doesn’t actually explain why. It says that “nefarious spies to potentially see your top-secret information”. This sounds bad, of course, but what is the exact scenario that can allow this? What threat does it actually pose that can’t be done by other vectors?

Yes, if client secret is embedded in anything that is accessible to an attacker, it should be considered compromised. And if an attacker has the secret they can potentially create a client that impersonate the original app. But how does it compromise the end user’s information?

Client ID/Secret is used to authenticate a client to an authorization server. It’s needed when knowing which client makes the request is important to the auth server. Stolen client secret can fool the auth server but not the end user (because the user’s consent is required, they know which app they run and see which permissions they give). This is no different than any other public API used by mobile or desktop app, these are considered “public clients” and no assumptions are made about their authenticity.

This is by no means a criticism of EVEMon’s dev’s choice (many thanks for picking it up and keeping it live!). I understand the concern of sharing anything that is considered “secret” and this is, of course, the choice the developer whether to include this “secret” in their app (and there is the question of liability), but I don’t think there is a real risk to the end user.

And it is rather shortsighted by CCP to insist on “client secret” and introducing this unnecessary dilemma to app devs.

No, jEveAssets is using a webhelper for the ESI authentication. Which would also makes it unnecessary to “embedd the secret”.

So it looks like you have no idea what you are talking about and are just making things up.

So ran into a bug this morning:

Looking at a skillplan I have skills showing as red indicating I have not injected the skillbook on that character

When I look at the characters skills not only are the skillbooks injected, the skills are actually in queue for learning

This skillplan is brand new just created this morning. When I upgraded I blew away my entire evemon install and installed everything from scratch. I did not even save old skillplans.

Next crash:
2018-06-07_EVEMon_Error

Hereby reported. I was just clicking through the characters when this hapened (not the first time).
The german part translates to: “The object reference has not been set to an object instance”

The last trace.txt entry is this:

1d 10h 21m 41s > EveMonClient.OnServerStatusUpdated

1d 10h 24m 15s > ExceptionHandler.LogException - Handled exception
    EVEMon.Common.Exceptions.APIException: Character does not have required role(s)
   bei EVEMon.Common.Util.ParseJSONObject[T](Stream stream, Int32 responseCode) in EVEMon.Common\Util.cs:Zeile 1100.
   bei EVEMon.Common.Net.HttpWebClientService.GetResult[T](Uri requestBaseUrl, Stream stream, ParseDataDelegate`1 parser, HttpResponseMessage response) in EVEMon.Common\Net\HttpWebClientService.StreamDownload.cs:Zeile 79.
   bei EVEMon.Common.Net.HttpWebClientService.<DownloadStreamAsync>d__11`1.MoveNext() in EVEMon.Common\Net\HttpWebClientService.StreamDownload.cs:Zeile 0.
--- Ende der Stapelüberwachung vom vorhergehenden Ort, an dem die Ausnahme ausgelöst wurde ---
Translated: End of stack trace from the previous location where the exception was thrown
   bei System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   bei System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   bei EVEMon.Common.Util.<DownloadJsonAsync>d__10`1.MoveNext() in EVEMon.Common\Util.cs:Zeile 0.
    
1d 10h 26m 42s > EveMonClient.OnServerStatusUpdated

Found bug:
steps to reproduce:

  1. plans → New Plan
  2. Add some skills to your skill planner (titan 4 example)
  3. add “toggle remap point”
  4. press delete to remove that
  5. you get error:
Error Log

EVEMon Version: 4.0.2.4769
.NET Runtime Version: 4.0.30319.42000
Operating System: Microsoft Windows NT 6.1.7601 Service Pack 1
Executable Path: “C:\Program Files (x86)\EVEMon\EVEMon.exe”

System.ArgumentException: This window doesn’t support empty operations.
Parameter name: operation
at EVEMon.SkillPlanner.PlanToOperationWindow…ctor(IPlanOperation operation) in EVEMon\SkillPlanner\PlanToOperationWindow.cs:line 42
at EVEMon.SkillPlanner.PlanEditorControl.RemoveSelectedEntries() in EVEMon\SkillPlanner\PlanEditorControl.cs:line 1216
at System.Windows.Forms.Control.OnKeyDown(KeyEventArgs e)
at System.Windows.Forms.Control.ProcessKeyEventArgs(Message& m)
at System.Windows.Forms.Control.WmKeyChar(Message& m)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ListView.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

Datafile report:
eve-blueprints-en-US.xml.gzip (201KiB - 219eb76e35e9c1df32d2b7f21268582c)
eve-certificates-en-US.xml.gzip (45KiB - 540000f7c111354769a54fa31e57d411)
eve-geography-en-US.xml.gzip (534KiB - 7125925bbed1a5288ab5692a79d70476)
eve-items-en-US.xml.gzip (2403KiB - 00ce5d7ad1efce9283e08b2c4249ecbe)
eve-masteries-en-US.xml.gzip (21KiB - 3668b50996fc40a0c0853fec427b5712)
eve-properties-en-US.xml.gzip (61KiB - 1f047494a5dbcd31d9675257dc49098a)
eve-reprocessing-en-US.xml.gzip (110KiB - e66052e6ad68555d0e14479a2b352280)
eve-skills-en-US.xml.gzip (24KiB - 8684157679e5345a8b91d5ce15e0dd4f)

Diagnostic Log:
0d 0h 00m 00s > Starting up
0d 0h 00m 00s > EveMonClient.Initialize - begin
0d 0h 00m 00s > Program.StartupAsync - done
0d 0h 00m 00s > Settings.TryDeserializeFromFile - begin
0d 0h 00m 00s > Settings.TryDeserializeFromFile - done
0d 0h 00m 00s > Settings.Import - begin
0d 0h 00m 00s > EveMonClient.OnSchedulerChanged
0d 0h 00m 00s > Settings.Import - done
0d 0h 00m 00s > EveMonClient.OnSettingsChanged
0d 0h 00m 00s > Main loop - start
0d 0h 00m 00s > MainWindow.OnLoad
0d 0h 00m 00s > TimeCheck.ScheduleCheck - in 00:00:01
0d 0h 00m 00s > UpdateManager.ScheduleCheck - in 00:00:10
0d 0h 00m 00s > Main window - loaded
0d 0h 00m 00s > Datafiles.Load - begin
0d 0h 00m 01s > TimeCheck.BeginCheckAsync
0d 0h 00m 01s > TimeCheck.OnCheckCompleted - Synchronised
0d 0h 00m 01s > TimeCheck.ScheduleCheck - in 1.00:00:00
0d 0h 00m 01s > EveMonClient.OnServerStatusUpdated
0d 0h 00m 02s > Datafiles.Load - done
0d 0h 00m 02s > Settings.ImportData - begin

0d 0h 00m 03s > EveMonClient.OnMonitoredCharactersChanged
0d 0h 00m 03s > EveMonClient.OnCharacterCollectionChanged
0d 0h 00m 03s > EveMonClient.OnCharacterImplantSetCollectionChanged - Vallutaja122
0d 0h 00m 03s > EveMonClient.OnCharacterSkillQueueUpdated - Vallutaja122
0d 0h 00m 03s > EveMonClient.OnCharacterUpdated - Vallutaja122
0d 0h 00m 03s > EveMonClient.OnMonitoredCharactersChanged
0d 0h 00m 03s > EveMonClient.OnCharacterCollectionChanged

0d 0h 00m 03s > EveMonClient.OnMonitoredCharactersChanged
0d 0h 00m 04s > EveMonClient.OnCharacterCollectionChanged

0d 0h 00m 04s > EveMonClient.OnMonitoredCharactersChanged
0d 0h 00m 04s > EveMonClient.OnCharacterCollectionChanged
0d 0h 00m 04s > EveMonClient.OnMonitoredCharactersChanged
0d 0h 00m 04s > EveMonClient.OnCharacterCollectionChanged
0d 0h 00m 04s > EveMonClient.OnMonitoredCharactersChanged
0d 0h 00m 05s > EveMonClient.OnCharacterCollectionChanged
0d 0h 00m 05s > EveMonClient.OnCharacterCollectionChanged
0d 0h 00m 05s > EveMonClient.OnESIKeyCollectionChanged

0d 0h 00m 05s > EveMonClient.OnMonitoredCharactersChanged
0d 0h 00m 05s > EveMonClient.OnMonitoredCharactersChanged
0d 0h 00m 05s > EveMonClient.OnMonitoredCharactersChanged
0d 0h 00m 05s > EveMonClient.OnMonitoredCharactersChanged
0d 0h 00m 05s > EveMonClient.OnMonitoredCharactersChanged
0d 0h 00m 06s > EveMonClient.OnMonitoredCharactersChanged

0d 0h 00m 06s > Settings.ImportData - done
0d 0h 00m 06s > EveMonClient.OnSettingsChanged
0d 0h 00m 06s > EveMonClient.OnCharacterListUpdated - 131718744805237129 (Vallutaja122)
0d 0h 00m 06s > EveMonClient.OnESIKeyCollectionChanged
0d 0h 00m 06s > EveMonClient.OnESIKeyInfoUpdated - 131718744805237129 (Vallutaja122)

0d 0h 00m 06s > EveMonClient.OnESIKeyCollectionChanged
0d 0h 00m 06s > ExceptionHandler.LogException - Handled exception
EVEMon.Common.Exceptions.APIException: Character does not have required role(s)
at EVEMon.Common.Util.ParseJSONObject[T](Stream stream, Int32 responseCode) in EVEMon.Common\Util.cs:line 1100
at EVEMon.Common.Net.HttpWebClientService.GetResult[T](Uri requestBaseUrl, Stream stream, ParseDataDelegate1 parser, HttpResponseMessage response) in EVEMon.Common\Net\HttpWebClientService.StreamDownload.cs:line 79 at EVEMon.Common.Net.HttpWebClientService.<DownloadStreamAsync>d__111.MoveNext() in EVEMon.Common\Net\HttpWebClientService.StreamDownload.cs:line 0
— End of stack trace from previous location where exception was thrown —
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at EVEMon.Common.Util.d__10`1.MoveNext() in EVEMon.Common\Util.cs:line 0

0d 0h 00m 07s > EveMonClient.OnCharacterIndustryJobsUpdated - Neptuun Aaron
0d 0h 00m 07s > EveMonClient.OnIndustryJobsUpdated - Neptuun Aaron
0d 0h 00m 07s > EveMonClient.OnConquerableStationListUpdated
0d 0h 00m 10s > UpdateManager.BeginCheckAsync
0d 0h 00m 10s > UpdateManager.OnCheckCompleted
0d 0h 00m 10s > UpdateManager.ScheduleCheck - in 12:00:00
0d 0h 00m 23s > EveMonClient.OnCharacterPlanCollectionChanged - Vallutaja122
0d 0h 00m 31s > EveMonClient.OnPlanChanged - test
0d 0h 00m 33s > EveMonClient.OnPlanChanged - test
0d 0h 00m 39s > EveMonClient.OnPlanChanged - test
0d 0h 00m 40s > EveMonClient.OnPlanChanged - test

current workaround:
remove remap point with mouse, right click and delete