pyfa-org / Pyfa

Python fitting assistant, cross-platform fitting tool for EVE Online
GNU General Public License v3.0
1.61k stars 408 forks source link

Feature request: Import multiple/all ESI fittings in bulk #2417

Open ghost opened 2 years ago

ghost commented 2 years ago

Feature request: Import multiple/all ESI fittings in bulk

Currently I can import single selected ESI fittings after a fetch,I have to import via Eve fitting XML export file for a bulk import to PyFa

Expected behavior:

To be able to import all fittings via ESI

Actual behavior:

Can only import single selected ESI fits fetched then import

Detailed steps to reproduce:

SSO character to import from Browse ESI fittings Fetch fittings for SSO character Try to import multiple or all fittings via ESI in bulk

Release or development git branch? Please note the release version or commit hash:

2.40.0

Operating system and version (eg: Windows 10, OS X 10.9, OS X 10.11, Ubuntu 16.10):

Mint 20.3 LTS (Ubuntu 20.04 LTS)

blitzmann commented 2 years ago

There's some things that we would have to consider here, specifically what happens if you accidently import all multiple times. Ideally, we would keep a record of fits that were imported via ESI, so that we don't add them multiple times (have an eve_fit_id attribute on the pyfa fit... this could also enable a "sync" functionality that we could use to keep pyfa fits sync'd up with eve fits).

Also, we would need to make sure we respect ESI rate limitations when importing all

josephdouce commented 1 year ago

Sync should be easy, either match names or add a uuid to end of names, or just delete all from ESI and add from pyfa, or delete all from pyfa and fetch all from ESI, giving the user the option of sync direction. I will take a look at this if I have a chance.

"ESI does not have any rate limiting, only cache timers. The one thing to pay attention to is the error header. You are allowed 100 errors per minute, if you exceed that you get cut off for a bit"

josephdouce commented 1 year ago

The rate limit is 2/sec Pull Request