Giter VIP home page Giter VIP logo

go-evepraisal's Introduction

This repo is not the code that is currently used by evepraisal.com. For that code, go to https://github.com/evepraisal/go-evepraisal

Evepraisal

This is a tool for Eve Online aimed at being able to quickly price check items. Shown here.

Requirements

  • Python > 2.7
  • Flask
  • Memcached

First Run

First, you need to install Memcache and libmemcache.

Next, download the source.

git clone https://github.com/evepraisal/evepraisal.git
cd evepraisal

Install requirements

pip install -r requirements.txt

Start the app

python wsgi.py

Deployment

I deploy with uWSGI, nginx and supervisor but Flask is very flexable. It will also easily work with fastcgi, mod_wsgi, gunicorn, etc etc. More details here.

License

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

CCP Copyright Notice

EVE Online and the EVE logo are the registered trademarks of CCP hf. All rights are reserved worldwide. All other trademarks are the property of their respective owners. EVE Online, the EVE logo, EVE and all associated logos and designs are the intellectual property of CCP hf. All artwork, screenshots, characters, vehicles, storylines, world facts or other recognizable features of the intellectual property relating to these trademarks are likewise the intellectual property of CCP hf. CCP hf. has granted permission to Evepraisal.com to use EVE Online and all associated logos and designs for promotional and information purposes on its website but does not endorse, and is not in any way affiliated with, Evepraisal.com. CCP is in no way responsible for the content on or functioning of this website, nor can it be liable for any damage arising from the use of this website.

Bitdeli Badge

go-evepraisal's People

Contributors

btbn avatar mgoeppner avatar sudorandom avatar unti1x avatar yonneh0 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

go-evepraisal's Issues

Unknown Format

Appraisal with the format: evepraisal.com/a/dbnxs

The format is AMOUNT whitespace ITEM. There may be leading or trailing whitespace.

The whitespace may be tabs or spaces.

quantity field thousand separator parsing issue (when not all columns are used)

with eve columns: name/quantity/volume/est price

Fullerite-C72 8 898 17 796 m3 65 797 506,72 ISK

is 'invalid format' for eve prisal

removing gap in 8898 becomes readable format e.g.:
Fullerite-C72 8898 17 796 m3 65 797 506,72 ISK

with eve columns: name/quantity/category/volume/est price
Fullerite-C72 8 898 Celestial 17 796 m3 65 797 506,72 ISK
it is parsed but with 'The heuristic parser was used to parse this result. ' message

Re-add chat parser

The format looks a little bit like this:
[01:23:45] User Name > <url=showinfo:typeid//1024725750801>Item Name</url>

appraisals-last-used not being cleaned up properly

When appraisals are deleted, the appraisals-last-used record is using the wrong key is being used to remove it. It should have the encoded dbID and the timestamp. Right now it just has the dbid. This is causing a heck of a lot of logging to happen when the appraisal reaper runs.

[Patch] Fix makefile to correctly work with default $GOPATH

Go 1.8 added an default $GOPATH. If the developer is using the default without explicitly setting the environment variable the makefile will throw an error. I've enclosed a patch to fetch the inferred value of the variable from the go tool and updated one command that assumed $GOPATH/bin was in $PATH to correctly use a relative path from $GOPATH.

diff --git a/Makefile b/Makefile
index 71f91ca..589df41 100644
--- a/Makefile
+++ b/Makefile
@@ -12,6 +12,7 @@ endif

 GOOS?=$(shell go env GOOS)
 GOARCH?=$(shell go env GOARCH)
+GOPATH?=$(shell go env GOPATH)

 .PHONY: setup build install generate clean test test-reload run run-reload dist deploy

@@ -49,7 +50,7 @@ run: install
 	${GOPATH}/bin/evepraisal

 run-reload:
-	reflex -c reflex.conf
+	${GOPATH}/bin/reflex -c reflex.conf

 dist:
 	ENV=PROD GOOS=linux GOARCH=amd64 make build

Incorrect results for some items at Rens

I think I'm getting incorrect results on some items at Rens.

Here's the evepraisal I was looking at: http://evepraisal.com/a/dg0yn

And here are market exports from Rens for those items:
Heimatar-Amarr TIL-1 Nexus Chip-2017.11.14 191226.txt
Heimatar-AML Compact Omnidirectional Tracking Link-2017.11.14 191834.txt
Heimatar-Blue Pill-2017.11.14 191839.txt
Heimatar-Data Sheets-2017.11.14 191844.txt
Heimatar-Faint Epsilon Scoped Warp Scrambler-2017.11.14 191848.txt
Heimatar-Freed Slaves-2017.11.14 191853.txt
Heimatar-Freedom Fighters-2017.11.14 191858.txt
Heimatar-High-Tech Small Arms-2017.11.14 191903.txt
Heimatar-Limited Light Neutron Blaster I-2017.11.14 191907.txt
Heimatar-Medium Asymmetric Enduring Remote Shield Booster-2017.11.14 191912.txt
Heimatar-Modal Light Ion Particle Accelerator I-2017.11.14 191917.txt
Heimatar-Suppressed Targeting System I-2017.11.14 191921.txt
Heimatar-Ta3 Compact Ship Scanner-2017.11.14 191926.txt
Heimatar-Type-D Restrained Overdrive Injector-2017.11.14 191930.txt
Heimatar-Ukomi Superconductors-2017.11.14 191934.txt
Heimatar-Upgraded Explosive Deflection Amplifier I-2017.11.14 191939.txt

Some examples:

Amarr TIL-1 Nexus Chip is selling for 8m and buying for 10k, but the evepraisal says it's 1.1m sell and 1.3m buy.

AML Compact Omnidirectional Tracking Link is selling for 5k at the Rens hub, but 3.5k at Balginia (3 jumps away). The evepraisal is showing the 3.5k value. I thought the evepraisal was supposed to target the specific hub station, but maybe I misunderstood? The only buyer is at 1.5k at 5 jumps away, but evepraisal says it's buying at 400k.

Not all of them are wrong though. For example, the Blue Pill evepraisal matches the market.

Evepraisal Ammo Parsing From zkill ETF

The new version of evepraisal wants there to be a space after the comma for ammo in EFT output. The following snippet should parse out "XL Torpedo Launcher I" and "Guristas Mjolnir XL Torpedo" as two items.

E.G.

[Phoenix, Fitting Name]

XL Torpedo Launcher I,Guristas Mjolnir XL Torpedo

Overly large numbers cause interesting results

Problem: Looks like integer overflow.

Issue: Overly large quantities of items that are placed within the pastebox are automatically assigned the lowest possible signed int64 value (-9,223,372,036,854,775,808), and then calculated out based on a negative item price. Leads to hilarious results and interesting calculations.

Link:
http://evepraisal.com/a/d04pt
https://i.imgur.com/OHEZsaP.png

Reproduction: Type in any item and add more than a 64-bit integer can handle. ( 1111111111111111111111111111111 Revelation is what I used.)

If I wanted to install this on my server..

How would I?

Here's what we need to use this wonderful service for - our loot buyback program. With that said, I'd make 95% of the Jita Buy price be our contract value for buyback orders. I'd put the contract how-to's below the read-out. Do I just use the API or is there an installation how to for a Ubuntu 16.4 LTS server? I'm a bit new to APIs and all this. :)

Unknown Format - Personal Assets Window

Appraisal with the format: evepraisal.com/a/ey22h

ctrl-c from in-game assets window
Format is:
Name
Quantity
Marketgroup
Size (possibly empty)
Slot (possibly empty)
Volume
Estimated price

Field separator is \t

Feature request: packaged volume on items

Some items change volume depending on their assembled/packaged state (the big three are ships, containers, and capital modules). Because the assembled volume is used by default, this can greatly skew the volume of a list of assets.

While I am unaware if the SDE also contains the packaged volume for each item, if it does, the two different volumes could be displayed in much the same way buy/sell price values are, with one above the other for each item type. Additionally, as with Total Sell and Total Buy Value listed at the bottom of the page, Total Assembled and Total Packaged Volume could be listed at the bottom of the page.

Add missing ship repackaged volumes

There are 3 missing ship groups from the repackaged volumes.

groupId: 1527
groupName: Logistics Frigate
volume: 2500

groupId: 1534
groupName: Command Destroyer
volume: 5000

groupId: 1538
groupName: Force Auxiliary
volume: 1300000

Incorrect packaged volume values

As best I can tell this is an exhaustive list of missing/outdated m3 values. Ship and capital module errors look like they were mostly caused by exceptions from the norm. Containers are still using the assembled volumes though this may actually be intentional.

Ships:
T3 cruisers are 5k m3 not 10k m3 - http://evepraisal.com/a/byf5b
Supercarriers are 1.3m m3 not 13m m3 - http://evepraisal.com/a/byf99
Titans are 10m m3 not 13m m3 - http://evepraisal.com/a/byf9d
Industrial ships are 20k m3 not 10k m3 - http://evepraisal.com/a/byfa5
The porpoise is 50k m3 not 500k m3 (orca to remain at 500k m3) - http://evepraisal.com/a/byfaa
Special edition industrial ships are 20k m3 not 10k m3 - http://evepraisal.com/a/byfb8

Containers:
Small audit/freight/secure/standard containers should be 10 m3 not 100/1k m3 -
http://evepraisal.com/a/byfcv
Medium audit/secure/standard containers should be 33.0 m3 not 325 m3 -
http://evepraisal.com/a/byfcc
Medium freight containers should be 50 m3 not 5k m3 - http://evepraisal.com/a/byfd5
Large audit/secure/standard containers should be 65 m3 not 650 m3 - http://evepraisal.com/a/byfce
Large freight containers should be 100 m3 not 1k m3 - http://evepraisal.com/a/byfd8
Huge secure containers should be 150 m3 not 1500 m3 - http://evepraisal.com/a/byfch
Huge freight containers should be 500 m3 not 50k m3 - http://evepraisal.com/a/byfdd
Giant secure containers should be 300 m3 not 3k m3 - http://evepraisal.com/a/byfck
Huge freight containers should be 1200 m3 not 120k m3 - http://evepraisal.com/a/byfdy
Enormous freight containers should be 2500 3m not 250k m3 - http://evepraisal.com/a/byfe2
Station containers should be 10k m3 not 2m m3 - http://evepraisal.com/a/byfec
Station vault containers should be 50k not 5m m3 - http://evepraisal.com/a/byfef
Station warehouse containers 100k m3 not 10m m3 - http://evepraisal.com/a/byfej

Capital modules:
Remote armor repairers should be 1k m3 not 4k m3 - http://evepraisal.com/a/byfi4
10000MN Y-S8 Compact Afterburner should be 1k m3 not 4k m3 - http://evepraisal.com/a/byfie
Sentient Fighter Support Unit should be 1k m3 not 2k m3 - http://evepraisal.com/a/byfjx
Siege modules should be 1k m3 not 4k m3 (except for t2 industrial cores, which are still 4k m3) - http://evepraisal.com/a/byfn4
Phenomena generators should be 8k m3 instead of 2k m3 (the rest of the DDs should remain at 2k m3) - http://evepraisal.com/a/byfo3

Using X doesnt work

compressed bistot X 65 doenst work
compressed bistot x 65 does work.

Also when something fails you shouldnt clear the text box. Just keep it there and allow the user to fix their mistake or Help fix the users mistake. Makes for better UI.

Time out appraisals

You added the option to create non-persistant appraisals and also to delete appraisals. Most of the appraisals I am doing are only interesting for a limited time but during that time they need to be persisted. I also don't want to delete each of them manually because this would be to much effort, so they are kept and will clutter my history and your db.

How about specifying a default timeout per user? After that configured time the appraisel then could be safely removed from the system.

Unknown Format

Appraisal with the format: evepraisal.com/a/bxm54

Loot history from fleet. Doesn't seem to work. I deleted other players loot to value this players only but did not edit anything from the text as copied from fleet loot history.

I have also tried pasting the entire fleets loot history and also received an invalid result.

Thanks,
TrueBlue22

Unknown Format: Compare Window

Appraisal with the format: evepraisal.com/a/dvofc

Format when copied from compare windows. Can have multiple columns, but the MetaGroup (Faction/Deadspace...) column is always there.

Unknown Format

Appraisal with the format: evepraisal.com/a/c5ymz

[Describe the format]

Legacy API URL's return 404

For example, http://evepraisal.com/e/17981203.json returns a 404.

I'm using scripts to parse evepraisal links put into courier contracts, and currently I have to follow a redirect from the non-api endpoint to get the new alphanumeric ID, then get the JSON page from the new URL.

Could a legacy API endpoint be added please? From my understanding the content of the JSON object is the same format with some additions.

Ads - Auto Playing MAX volume can't mute

WTF is up with the ads and not being able to mute them! nothing like an ad blaring at loud volume while showing you it is "muted" but its actually a video behind the ad that you can't manipulate; so either I have to keep your page open and "mute the tab" (only available in Chrome) or I have to remember to rush to mute the tab each time I open a link to your site.

Volume (m3) column ignores decimal values

As above; for particularly small items, the per-unit volume is rounded off. This appears to be during display only; ISK/m3 uses the appropriate decimal value for per-unit volume. This leads to things like isotopes (0.1m3) simply being displayed as 0m3.

Mining Ledger: 'Copy to clipboard'

Appraisal with the format: evepraisal.com/a/d6lax

[Describe the format]

Evepraisal couldn't parse out which tab delim column was quantity.

ISK/m3 calculated incorrectly

The ISK/m3 column is currently calculated by dividing total value by per-unit volume for each item type. This should be either per-unit value divided by per-unit volume or total value divided by total volume.

AAHHHH HEADERS

Use

w.Header().Add("Content-Type", "text/plain")

to set headers. For some reason I was setting headers on the request object.

Try 'universe' price before relying on CCP's

CCP has some weird prices sometimes. To avoid those weird prices showing when they don't need to, we should look at the prices using the (real) universal market orders before using CCP's guess.

Deduplicate all appraisal items

Not every parser has logic to de-dupe items. There should be logic to dedupe all items outside of the parsers (probably in appraisal.go).

Integration with Excel?

Thanks very much for the wonderful work with Evepraisal.com - it is an awesome idea!

Now, straight to the point. I would like to set up and use an Excel (Office 365) sheet to automatically look up a group of 68 items (all PI) on evepraisal. And I would like to do it three times, in both Jita, Amarr and Dodixie.

I can set this up, already have, but the problem is the 'persist' format. If I don't use 'persist appraisals' then Evepraisal can't remember the items to search for, and if I do use 'persist' it remembers the items but also the exact search and so it doesn't update the prices...

As far as I can tell, Excel can only understand this format "https://evepraisal.com/a/fcvbm" (for example), when making a web query.

Any suggestions or tips on how to make this work would be greatly appreciated :-)

Final note: I am only making this sheet for myself, not for public dissemination. I have it setup to update the query only when I first open the sheet, which won't be very often. I do understand that every time I do, I will be making 3x 68 requests on Evepraisal, but I am hoping/believing that this is within reason and not something that threatens to overload the service. I will also promise that before, if ever, I share the sheet with anyone, I will ask you first if it is alright!

Best regards,
Zyana Zeredin

Unknown Format

Appraisal with the format: evepraisal.com/a/ce49z

Copied from the Ship->View Contents window:

Compressed Concentrated Veldspar Veldspar Ore Hold 1288
Compressed Condensed Scordite Scordite Ore Hold 784
Compressed Dense Veldspar Veldspar Ore Hold 1625
Compressed Fiery Kernite Kernite Ore Hold 217
Compressed Golden Omber Omber Ore Hold 325
Compressed Hemorphite Hemorphite Ore Hold 64
Compressed Jaspet Jaspet Ore Hold 6
Compressed Kernite Kernite Ore Hold 225
Compressed Luminous Kernite Kernite Ore Hold 1099
Compressed Massive Scordite Scordite Ore Hold 1951
Compressed Omber Omber Ore Hold 627
Compressed Pristine Jaspet Jaspet Ore Hold 9
Compressed Pure Jaspet Jaspet Ore Hold 76
Compressed Pyroxeres Pyroxeres Ore Hold 266
Compressed Radiant Hemorphite Hemorphite Ore Hold 35
Compressed Scordite Scordite Ore Hold 368
Compressed Silvery Omber Omber Ore Hold 148
Compressed Solid Pyroxeres Pyroxeres Ore Hold 4615

Add capital module repackaged volumes

There are many capital modules with different repackaged volumes.

I believe these are all of them:

marketGroupId: 600, 771, 772, 773, 774, 775, 776, 777, 778, 910, 1052, 1063, 2240, 2241, 2242, 2243, 2244, 2245, 2246, 2247, 2250, 2251
volume: 1000

marketGroupId: 2249, 2267, 2268, 2269, 2270, 2276
volume: 2000

typeId: 41249, 41250, 41251, 41252, 41253, 41254, 41255, 41236, 41238, 41239, 41240, 41241, 41411, 24283, 41414, 41415
volume: 1000

typeId: 40715, 40716, 40717, 40718
volume: 2000

Hub comparison

A feature I'd love to see is the ability to check the evepraisal at different hubs.

My current workflow (for some items) is to open multiple tabs. In each tab, I do an evepraisal for an item list at a different hubs of interest. (The hubs I use vary. For example, sometimes Rens + Jita but other times maybe Rens + Hek + Jita + Amarr.) I use this to make decisions on where to sell items. I can elaborate more on what I'm doing if it's helpful.

I can think of two ways to implement this that would be helpful.

Idea 1: Currently when I do an evepraisal, it says at the top something like "assets priced in hek now". Next to that (or somewhere else), you could put an option that says "view prices at:" and then a dropdown box with the other hubs. Selecting another hub would update the appraisal for that hub.

Idea 2: When doing an evepraisal, allow us to select multiple hubs. The three hub-specific columns (Single, Total, ISK/m3) can then get grouped under a spanned heading that states the hub name, and then you can repeat those three columns for each hub. Allowing us to select as many hubs as we like would be ideal, but it'd still be very useful even if it were just restricted to a comparison between two hubs.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.