Giter Site home page Giter Site logo

benjaminjackman / looty Goto Github PK

View Code? Open in Web Editor NEW
60.0 11.0 21.0 14.51 MB

Looty! A tool for Path of Exile that makes inventory searching fun!

License: GNU General Public License v2.0

Scala 31.71% Shell 0.42% CSS 0.22% JavaScript 52.87% HTML 0.28% Batchfile 0.17% Less 9.99% SCSS 4.35%

looty's Introduction

Looty

A browser extension for Path of Exile that makes inventory searching fun!

Chrome Web Store

Built using ScalaJs based on GPLv2

How to build for firefox reviewers:

Prequisites

  1. Have nvs (https://github.com/jasongin/nvs) installed for node (This version of ScalaJS needs node version 8 installed)
  2. Have java8 installed (This version of Scala doesn't support later jvms)

run bin/deploy

build/build.zip will have the packaged file

Statement of Inspiration

Quoted from Steve Yegge's Excellent Blog Post About Borderlands 2, which is another loot game

Here's the thing, though. It's not just about capacity. If Gearbox wants to do this Right, by which I mean pull their heads out and do something that nobody in the game industry has ever done before, what they really need to do is give players a database.

That's what we want, really. You make 87 bazillion guns, and let us collect them? Well then we're going to want hundreds and hundreds, maybe thousands of guns in our collections. Not twenty, or whatever stupidly low number you've given us. That just spawns modding and mule characters and leaving the game altogether -- any outlet from the collection pressure; players will use them all.

What BL1 needed was a way for you to effectively manage a collection of a thousand guns. What if you want to look at all your Mashers? Or all your weapons by type, or by elemental damage, or by manufacturer? I'm not asking for a data warehouse here, or for some fancy text-based console-query UI. I mean, -I- would use it, but obviously we want to keep this mainstream.

If you start by formulating the basic problem as: "How do I manage a collection of a thousand guns," then your UX guys should be able to come up with something acceptable. No — you know what? Fuck acceptable. They should be able to come up with something awesome, something in keeping with the innovation and forward-looking badassery that we've all come to associate with Gearbox and Borderlands.

If you would like to improve Looty, here are Development Instructions

Feel free to post bugs, questions, or feature requests here.

PathofExile forum post

Developer Log

# Version History
## 0.2.1.83 (2021-10-27)
Features
  - added Scourge items
    - new column scourged - to quickly check which items are scourged (works same as corrupted etc.)
    - updated item tooltip with scourge affixes and Tier info
  - added changes to flasks
    - new column in Flask Action: faHinderMaim for flasks giving immunity to Hinder and Maim
    - new column in Flask Action: fapois for flasks giving immunity to poison
    - new column in Flask Mods: fimmunetime  to check how long immunity will last when you use flask - works with magic flasks
  - added new base armor types from 3.15
  - added operator ! for filtering column rows. You can now exclude some string of letters/numbers. 
  It should be only entry in filter box  
  example: you are looking for ring, but you would like to see all rings except breach ones, type in "!breach" in column "tpeln" 
  example: you are looking for all not crafted items, type in "!1" in column "crafted"
  
## 0.2.1.82 (2021-07-12)
Features
  - added Recover # of Energy Shield on Kill
  - added Recover # Life on Kill
  - added Recover # Mana on Kill
  - added # increased maximum Mana
  - value of affix "#% increased Attack and Cast speed" is now added to mods "attack speed" and "cast speed"
  - flasks removing bleeding has new modifier, old one is still used on previous ones
  - re enabled 2 custom score mods per user request
  
Fixes
   - duplicate requests problem solved -> faster item data download

Dev
  - added to readme various useful dev docs
  - added boolean variable to turn off console parsing messages (by default they are shown, as before)

## 0.2.1.81 (2021-04-25) (Traf contributed this update)

Features
- Added input field to filter mod buttons (above mod list on the left) to help you choose desired ones faster.
(this feature uses something called fuzzy search, it searches all letter occurrences, so if you type "life" it would select also "the type line of an item", it is as good as it gets :) )

Added columns for affixes :
  - #% Increased Attributes
  - #% Increased Dexterity
  - #% Increased Intellect
  - #% Increased Strength
  - #% increased Damage
  - #% increased Area Damage
  - #% increased Melee Damage
  - #% increased Attack Damage
  - #% increased Area of Effects
  
Turned on score column, as some of you liked it. Although its a bit outdated, i'll try to add there stats from time to time.
All suggestions welcomed!

Added columns for cluster jewels affixes:
  - Adds # Passive Skills
  - # Added Passives is/are Jewel Socket - number of sockets
  - # Added Small Passive (also) grants # - what stats you gain with small passives
  - # Added Passive Skill is # - what skill(s) cluster jewel adds

Added "Damage over Time" mod group, which supports following mods:
  - #% to Cold Damage over Time Multiplier
  - #% to Fire Damage over Time Multiplier
  - #% to Chaos Damage over Time Multiplier
  - #% to Non-Ailment Chaos Damage over Time Multiplier
  - #% to Physical Damage over Time Multiplier
  - #% to Damage over Time Multiplier for Bleeding
  - #% to Damage over Time Multiplier

Gave some love to minion, totem, traps and mines builds:
  - Minions deal #% increased Damage
  - Minions have #% increased Area of Effect
  - Minions have #% increased Attack Speed
  - Minions have #% increased Cast Speed
  - Minions have #% increased maximum Life
  - Minions have #% increased Movement Speed
  - Minions have +#% to all Elemental Resistance
  - Minions have #% chance to deal Double Damage"
  - Minions Accuracy Rating
  - Minions Reduced Reflected Damage
  - Increased Minion Duration
  - #% increased Mine Damage
  - #% increased Mine Throwing Speed
  - #% increased Trap Damage
  - #% increased Trap Throwing Speed
  - #% increased Totem Damage
  - #% increased Totem Life
  - Totems gain +#% to all Elemental Resistances

Changes to gem mods:
  - renamed previous mod group "Gems"  to "Socketed Gems Level" 
  - added column for mod "Socketed Gems are Supported by Level x #" - in this column you will get name of that spell
  - added mod groups for "Spell Gems Level" and "Gems Level" so it shows now:
    - # to Level of all # Skill Gem
    - # to Level of all # Spell Skill Gem

Fixes
  - heist items for hirelings, contracts and blueprints are correctly recognized
  - resonators are recognized as separate type
  - crafted mod, showing if item has crafted mod is fixed

## 0.2.1.79 (2021-01-15)
Special thanks, again, to Traf27 for keeping Looty going!

Design
- Added dark theme! to easy strain on your eyes at night - switch is on the right side
- item tooltips in dark theme now closer resemble those on official site/in game
- added Incubators to item tooltips - fancy progressbar with current/total kills and what it's incubating into
- added improvements to XP page and its gem experience tables

Features
- Added option to Settings panel to show tooltip when CTRL key is pressed, solving issue with tooltip obscuring vision.
  note: When pressing ctrl being on some row, you have to reenter this row with mouse pointer to show tooltip - thats best I can do right now
- Added option to Settings panel to align text in tooltip to the left - in dark theme is centered - so you can override it here.

- Added following columns
	- IncubatorReward - what incubator on item is going to drop
	- % Armor local to item
	- % Evasion Rating local to item
	- % Energy Shield local to item
	- % Armor global to character stats - now recognize "% increased Armor" on talismans, rings, belts, jewels
	- % Evasion Rating global to character stats - now recognize "% increased Evasion Rating" on talismans, rings, belts, jewels
	- % chance to Dodge Spell Hits
	- % chance to Block Spells Damage
	- Added columns for checking if items are: Identified, Crafted, Corrupted, Veiled, Synthesised (has fractured modes), Mirrored to new group Miscellaneous, moved also influences there which shows list of influences on item
	note: Enchanted items has own columns enchc (enchants count) and ench (enchants list)

- Bug fixes
	- flasks display now their real values instead of "{0}" and "{1}"
	- enchants are not duplicated anymore in column "unparsed"
	- changed behavior of Evasion Rating and Armor increased mods, added their local variations, and added local Energy Shield increase
	- armor and evasion rating are correctly calculated and now are global - it recognize "% increased Armor" and "% increased Evasion Rating" on talismans, rings, belts, jewels
	- items with dexterity include "global Evasion Rating" column (as every 5 dexterity increases Evasion Rating by 1 %)
Even more history


## 0.2.1.78 (2020-09-17)
- Added types
	- "Organs" (from Metamorph league)
	- Timeless Jewel
- Added columns for affixes like :
	- "Regenerate (amount) Life/Mana per Second"
	- "Regenerate (amount)% of Life/Mana per Second"
	- "Grants LeveL (skillLevel) (skillName) Skill" - skillLevel
	- "Grants LeveL (skillLevel) (skillName) Skill" - skillName
	- added +% maximum life affix
	- influences (elder, shaper, crusader, redeemer, hunter, warlord)
	- enchantments for gloves, boots, helmets from Labirynth,
	  rings and amulets (from Cassia - Blight league), cluster jewels (Delirium)
- Added properties (mostly used by jewels)
	- "Limited to"
	- "Radius"
- You can now see names and quantity for enchantments
	- for gloves, boots, helmets from Labirynth
	- rings and amulets (from Cassia - Blight league)
	- cluster jewels, "Adds x Passive Skills", "Added Small Passive Skills grant: xxx" (Delirium)
- Added column mod "unparsed"
	It gathers mods without its own proper column, it looks like "a| b| c| ..."
	You can search them via matching text.
	For example: when want to find all "zombie" items you have,
	type "zombies" into "unparsed" column field and it should show all items, with word "zombie"
	in affixes. I don't have any other solution for now. :)

- UI background readability improvements on Home, Xp, Wealth, Maps, Settings pages
  - table columns can be resized again
  - switched off Maps and Poebuilder subpages
	- adjusted mod button position
  - increased font size from 14px to 16px
	- changed color of disabled column to light grey

## 0.2.1.77 (2019-11-18)
Special thanks to Traf27 for contributing several fixes that keep looty going!
Chrome extension works again, hurray
Silence some console warnings with localStorage.setItem("SQUELCH_WARNINGS", "true") inside the console

## 0.2.1.76 (2019-10-30)
firefox review placation

## 0.2.1.75 (2019-05-01)
Jewel Support

## 0.2.1.74 (2019-04-26)
Realm can be set under settings, set it to sony in order for looty to
work with the ps4 version of PoE, other realms may work as well.

## 0.2.1.73 (2019-04-20)
The Computer Speaking Gibberish, in Llama Mode had to be removed to placate Firefox Add-on Validation.
jQuery upgraded to version produced this decade, again at the behest of Firefox Add-on Validation.
Looty now available in Firefox.

## 0.2.1.72 (2019-04-20)
Holy Saturday, I must be high, Looty Lives! It's a miracle!
Updating Affixes

## 0.2.1.71 (2018-03-15)
Remove google analytics code

## 0.2.1.70 (2017-12-12)
Thanks to PetePete1984 for updating Looty to work with the
latest changes to the APIs from the abyssal leagues.

## 0.2.1.69 (2017-08-19)
# adding more parsers

## 0.2.1.68 (2017-08-05)
# 20% Less ornery commit message

## 0.2.1.67 (2017-08-05)
# fix for GGG change of API

## 0.2.1.66 (2017-04-18)A
  Thanks to PetePete1984 for uploading several fixes and patches to enhance looty
  as well as getting to compile on windows!
  @PetePete1984 Moves windows build script to bin folder      49f56c6
  @PetePete1984 Enables parsing Full Dragonscale Armour  …      7636cf3
  @PetePete1984 Improves handling for map fragments  …      267b11d
  @PetePete1984 Adds a unique custom2 column for the new scoring system

## 0.2.1.65 (2016-12-06)
# Quote commas in csv

## 0.2.1.64 (2016-05-27)
# Fix for affix

## 0.2.1.63 (2016-05-27)
# Use poe website passive tree instead of poebuilder

## 0.2.1.61 (2016-03-19)
#  Accepted PR from PetePete1984 that fixes upgrade panes to work with Ascendancy Classes

## 0.2.1.61 (2016-03-19)
# Fixed some affixes

## 0.2.1.60 (2016-02-27)
# Added item level

## 0.2.1.58 (2015-11-21)
# Attempting to dynamically add leagues ... try again ... again

## 0.2.1.57 (2015-10-05)
# Attempting to dynamically add leagues ... try again

## 0.2.1.56 (2015-10-05)
# Attempting to dynamically add leagues

## 0.2.1.55 (2015-08-20)
# Bug fix for issues from from RNJoy's video (-mana cost of skills / life leech don't sort/filter properly)

## 0.2.1.54 (2015-08-20)
# <<M:Thanks>><<S:A Lot>><<MS:GGG>>Fix for GGG breaking all community tools without notice.

## 0.2.1.53 (2015-07-11)
# Added Basic Jewel Support

## 0.2.1.52 (2015-07-10)
# Fixed parsers to work with POE 2.0 Affix strings

## 0.2.1.51 (2015-07-10)
# Added Support for Tempest / Warbands Leagues

## 0.2.1.50 (2015-06-28)
# Fix for changed ajax api

## 0.2.1.49 (2015-05-08)
# Added flashback league support

## 0.2.1.48 (2015-04-28)
# Trying to get account name to work for all users

## 0.2.1.47 (2015-04-24)
# Added account name to get-character skill tree call

## 0.2.1.46 (2015-04-21)
# Added account name to get-character inventories call since it is required there now

## 0.2.1.45 (2015-04-06)
# Added temp leagues

## 0.2.1.44 (2015-02-10)
# Added type line for finding items by their base types (Jalish)

## 0.2.1.43 (2015-02-01)
# Added eDps (thanks 1BLOOBERRY)
# Added Dire Cloak, Dire Jack, Pain Veil types (thanks 1BLOOBERRY)

## 0.2.1.42 (2014-12-15)
* Fixed stash tab buttons not turning red during reloads
* Tweaks to map view

## 0.2.1.41 (2014-12-12)
* Updated description

## 0.2.1.40 (2014-12-12)
* Patch 1.3.0 Parsing updates

## 0.2.1.39 (2014-12-11)
* fabric
* poebuilder pop out

## 0.2.1.38 (2014-12-10)
* styling

## 0.2.1.37 (2014-12-10)
* Fixed Bug, Less/CSS files not copied to deploy

## 0.2.1.36 (2014-12-10)
* Material Design
* Added Coinbase tip
* Split strings on | instead of ' '

## 0.2.1.35 (2014-12-09)
* Fixed properties in tooltips that got broke by flask interpolation

## 0.2.1.34 (2014-12-09)
* Added Increased Elemental Damage With Weapons (thanks jalish/toup/sundrino!)
* Added css classes for controls

## 0.2.1.33 (2014-11-30)
* Added upcoming leagues
* Flasks are interpolated

## 0.2.1.32 (2014-09-20)
* Block Chance Column

## 0.2.1.31 (2014-09-19)
* Moar columns

## 0.2.1.30 (2014-09-18)
* Added Skill Gem Keywords Column
* Added +%Phys Column
* Added Explicit Mod Count Column
* Added Crafted Mod Count Column
* Show Crafted (from masters) Mods on Item Cards + Use their stats in columns
* Only show a few columns by default

## 0.2.1.29 (2014-09-12)
* added stash idx to loc

## 0.2.1.28 (2014-09-12)
* Fix for borked netcode logic (thanks to sundrino for pointing it out)

## 0.2.1.27 (2014-09-12)
* Removed ojs / Start using the CGTA/open libraries
* Flat Accuracy increase column - for sundrino

## 0.2.1.26 (2014-09-09)
* Added WealthView

## 0.2.1.25 (2014-09-08)
* Added columns for CookieVortex

## 0.2.1.24 (2014-09-06)
* fixed bug with inventory ids in RefreshPane
* unknown items are just warnings
* fixed bug with unused forumLocationName

 ## 0.2.1.23 (2014-09-06)
* Finally fixed a bug in the RPC layer that was causing tabs to randomly not refresh. Just because js is single threaded doesn't mean it's simple!

## 0.2.1.22 (2014-09-04)
* Fixed bugs that were causing passive skill trees not to load in PoeBuilder.
* Don't complete futures for queueitems. which have already been completed. Fixes a bug where random stash tabs weren't loading.

## 0.2.1.21 (2014-09-03)
* Silly Looty! Mitts aren't Helmets. (Thanks to Sundrino for the bug report)

## 0.2.1.20 (2014-09-03)
* Export Csv
* Added "for Path of Exile" to the name of looty so hopefully it shows up in the chrome store when searching for Path of Exile

## 0.2.1.19 (2014-09-01)
* Refresh character levels

## 0.2.1.18 (2014-08-30)
* Added a Link to the [main forum thread](http://www.pathofexile.com/forum/view-thread/832233) in the alert messages. Please stop by and let me know what you think of Looty!
* Shift-clicking an item will refresh it container from the server. Use this as you find items in looty that you end up using to keep things in sync.

## 0.2.1.17 (2014-08-27)
* Fixed: really this time, refreshing stash tabs was messed up on new installs.

## 0.2.1.16 (2014-08-27)
* Fixed: refreshing stash tabs was messed up on new installs.

## 0.2.1.15 (2014-08-27)
* Significantly improved Y layout location logic for item-detail hover.

## 0.2.1.14 (2014-08-26)
* Fixed: Refresh player data automatically on PoeBuilder view and LootGrids.

## 0.2.1.13 (2014-08-26)
* Fixed: Secondary Item wasn't being hidden.
* Fixed: Upgrade view didn't show deltas when changing between items of the same type (e.g. Ring/Ring2)

## 0.2.1.12 (2014-08-26)
* New: Upgrades pane. Select a character and click on a slot and Looty will show how every item across all your stash tabs compares to the item you have equipped at that slot. This should make finding gear upgrades a snap when leveling!
* Enhancement: Images in item detail hovers
* Enhancement: font-face = Helvetica, Arial, Sans Serif, bask in the glorious the xheight.
* Change: Numeric column width back to 50px to fit more stuff on the screen.
* Enhancement: Added 1H/2H prefix to all weapons types (Except bows) for easier searching

## 0.2.1.11 (2014-08-25)
* Added messages linking to feature page on reddit

## 0.2.1.10 (2014-08-24)
* Rewrote Gem XP Tracker. Try it out and let me know what you guys think!
* Using select2 menus on the datagrids for user defined views (saveable sets of columns / filters)
* Added ACE / vm.js (for custom scores, not yet implemented)
* Added dexerity bonus to accuracy rating column.
* Added socket color of gems into the sockets column.

## 0.2.1.9 (2014-08-23)
* Numeric columns don't require operators (e.g. < <= etc) anymore. Those operators can still be used however they should filter as a min or max automatically. For example typing 50 in the pDps column will only show items with a pDps greater than or equal to 50. while typing it into the rLvl column (RequiredLevel) will show items that require at most level 50.
* Strength and Int Bonuses are now applied to life / mana  (thanks to sundrino for the suggestion)
* Increased cast speed, accuracy and max energy shield all have columns

## 0.2.1.8 (2014-08-22)
* shift click on a character / tab in [tabs] to refresh that character or tab from pathofexile.com
* more descriptive types
* larger column headers / smaller fonts

## 0.2.1.7 (2014-08-22)
* Show empty cells instead of zeros

## 0.2.1.6 (2014-08-22)
* Fixed sizing issue with PoeBuilder Page

## 0.2.1.5 (2014-08-22)
* Add / Remove / Save Columns + Filters
* Add / Remove / Refresh Tabs
* Open a characters build in PoeBuilder (Poe Builder is awesome check it out sometime!)
* rarity column (thanks to sundrino for the suggestion)

## 0.2.1.4 (2014-08-21)
* Fixed bug with Block % not parsing correctly

## 0.2.1.3 (2014-08-21)
* Fixed bug with max level gems causing parse errors
* Upgrade to ScalaJs 0.5.3

## 0.2.1.2 (2014-08-20)
* Fixed google analytics script errors

## 0.2.1.1 (2014-08-20)
* Added a misc column that shows count of items in stack / mapLevel / gemLevel / Total #Sockets  (thanks to hih0, Sirais, and tokyotapes for the suggestions)

## 0.2.1 (2014-08-20)
* Fixed DPS Bug (thanks to SoulProxy for reporting to the issue)

## 0.2.0 (2014-08-19)
* Chrome Web Store Release

## 0.1.2 (2014-03-13)
* [DEMO] Working on abstracting on chrome specific parts and made a demo page http://blog.jackman.biz/looty/demo/looty.html#/home

## (2014-03-12)
* [DOCS] Worked on updating documentation, probably should have done that before the alpha post

## (2014-03-11)
* [RELEASE] Released Alpha 0.1.1 and published link to it on reddit.

Public trello board for tracking progress on tasks I am actively working on.

Todo

Authors original todo's

Newer todos:

  • Card Views
    • allows seeing gems / uniques etc as items in a 2d grid of cells
      • each cell is like a card
    • beefs up the map view
      • though replace the map view with an atlas view

For pure love of the loot

  • Collectors view for Uniques (grayed out pictures for Uniques not obtained)
  • Trophy room that allows for displaying epic items. With categories (Best DPS Item, Highest Score By Slot)

Loot Management

  • Odd / even row colors (fph)
  • Allow users to save filter sets
  • Load StashTab on click
  • Add / Remove Columns (prioritized for fph)
  • Require ctrl to show tooltips (fph suggestion)
  • Custom and better default item scoring options reddit post
  • Show reason for score in the item detail.
  • Ability to click on a row and label the item in that row
  • Column for recipes for an item (chromatics mostly)
  • Recipes view
  • Custom Calculated Columns
  • Multi-Select Rows with Ctrl (useful for other features)
  • Label items with colors (how can this persist across item moves?)
  • Create an inventory view that shows item by color for help organizing / garbage collecting items
  • Recipes (Chaos for set etc, not sure if GGG frowns on this or not)
  • Give the players a playing mode (via the leveling screen) and let them mark certain stash tabs as auto-refresh then auto-watch those tabs and make sounds when an item is looted and identified that passes certain filters.
  • Custom Filter sets (can be tied to store pages)
  • Decode an item's affixes and show how it matches up to best ones available in the item detail display
  • Show how good an item is compared to the best in slot for the level compared to other items the player has

Extensibility and compatability with other sites

  • Act as a secure API that can get data up to other sites and act as a Pseudo API until GGG makes one (if they do, cough item level ahem item uuids ATAZIRIQUADSWTFCHOO last mod time get-stash-items/{tabs:1} hack)
  • Provide CSV / Google Document export of items table
  • Upload builds / equipment to the http://poebuilds.com
  • Get stats for current character's build from http://poebuilds.com and use it to calculate actual dps and so on for a character with an item and for a skill

Trading help

  • Templating to automatically create shop posts, via custom filters.
  • Search for similar items on http://poe.xy.is reddit post
  • User online tracking that can be sent to third party sites, to indicate that the user is able to trade
  • Integrate with instant messaging platforms / chat rooms and provide those hooks up to trading sites (web-rtc?) to allow users to trade with each other

Improved Program Logic

  • Smart detection of moved items
  • User can mark an item as moved and inventory as dirty
  • Handle when stash tabs are re-ordered
  • Allow users to upload items whose affixes failed to parse
  • Or maybe make affix parsers configurable
  • Better refresh logic, remove only stash tabs might be left behind after a refresh

User Help

  • Messaging Area To Help players understand what is going on as it loads
  • Turn guide in this format, progress meter at top is neat gitbookio
  • Simplify Demo Home Page to be a lot more like http://haste-lang.org/
  • Tutorial video on searches operators within the boxes
  • Add feedback / suggestion options inside of the extension itself

Development instructions

Offline development

You can switch data source for Looty
https://github.com/benjaminjackman/looty/blob/master/looty/src/main/scala/looty/LootyMain.scala#L40

With class PoeCacherDemo you have ability to load data from .json file when you place it in build directory /data/ To check it out just switch it in place of

 implicit val pc: PoeCacher = {
    if (extensionMode) {
      // load data from /data/sample-items.json instead of GGG servers
      //new PoeCacherJSON()
      // fetch data from GGG API
      new PoeCacherChrome()
    } else {
      new PoeCacherExileTools()
    }
  }

Now you are free to use whatever item data you wish, and test it to your heart content without worrying for download API limits.

If you would like to prepare your own sample-item.json file. Here's how-to.

Useful links:

Dev docs

Tools

How to build for iterative development

Prequisites

  1. Have nvs (https://github.com/jasongin/nvs) installed for node (This version of ScalaJS needs node version 8 installed)
  2. Have java8 installed (https://github.com/frekele/oracle-java/releases) (This version of Scala doesn't support later jvms)
  3. Have SBT (Simple Build Tool) for compiling Scala into js. This is already included in looty project (sbt-launch-0.13.0.jar). And is run via sbt or sbt-win.cmd commands.

in the project root at command line:

Linux:

bin/sbt

Windows:

bin\sbt-win.cmd

Build a development version with:

fastOptJS

To generate .js on the fly, while you save any changes in code use:

~fastOptJS

A javascript fill will be built at:

looty/target/web/public/main/looty-fastopt.js

This folder has the manifest and can be used with firefox for debugging:

looty/target/web/public/main/

Load it in firefox with about:debugging use looty-dev.html

How to build for firefox reviewers and release:

Note: Firefox Add-on's come in form of .ixr files. Which are simply zip files with different extension.

Bump version number in:

./looty/src/main/public/manifest.json
./looty/src/main/scala/looty/views/HomeView.scala

Linux:

bin/deploy

/build/build.zip will have the packaged file
/build/buildffsrc.zip will have firefox release package file

Windows:

bin\sbt-win.cmd

in sbt, optional

clean

and

compile
fullOptJS    

Because windows does not come with default zip command line tool, which could automate this part, we have to zip files ourselves. 😿
Zip following files and directories into choose-some-name.zip (for installation in ff change extension to irx)

jslib/
images/
less/
looty.html
popup.html
looty-opt.js
manifest.json

Additionaly for release version:

looty/
project/
bin/
README.md

looty's People

Contributors

arkahr avatar benjaminjackman avatar litsunglin avatar petepete1984 avatar piotrszymaniec 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

looty's Issues

Respect Rate Limit Headers

There are a few headers that get returned to help ease load on the API server. I noticed there was "probably throttling" when getting tabs, and looked through the requests and noticed the following headers are sent back after each request:

X-Rate-Limit-Account
X-Rate-Limit-Account-State
X-Rate-Limit-Policy
X-Rate-Limit-Rules

It would pay to look into these more and make the app not request more than is allowed.

oauth support request

given recent recommendations from ggg re tools that use session cookies, would someone be prepared to look at oauth login options?

Feature Request - Add Scoring to Stats

Looking for a way to set a score on a state for item evaluation..

For example lets say I want Life to equal 1 point. 100 Life = 100pts and fire resist to equal 2 points 30 Fire Resist = 60pts.

Then when im Looking for upgrades If I have an item that is 100 Life ( 100pts ) and a item with 75 Life + 30 Fire Resists ( 135pts ) I can quickly find upgrades bases on some point value I assign to stats.

Chance to Dodge Attacks / Spells should be added

Change to dodge is both an implicit and explicit modifier for shields. This stat is important in builds which stack dodge and should be added to looty.

Example rare item with implicit and explicit mods:

image

Corpse Mark
Compound Spiked Shield
--------
Chance to Block: 25%
Evasion Rating: 122
Energy Shield: 24
--------
Requirements:
Level: 45
Dex: 58
Int: 58
--------
Sockets: G-G-G 
--------
Item Level: 46
--------
2% chance to Dodge Spell Hits (implicit)
--------
+32 to Intelligence
+45 to maximum Life
+26% to Lightning Resistance
2% chance to Dodge Attack Hits

Socket Search

Cant figure out how to search for a item socket colors with or with out links.

For example I have an item G B-G-R

How would you enter this in the column field to find any item with 2G , 1R, 1B sockets.

Show Strength, Dexterity, and Intelligence

While I was looking through the code, I noticed that you already have the str, int, and dex for items. Can you show them on the list? It'll help when looking for things that to fulfill requirements. Also, it'd be nice if you could add required str, dex, and int as well.

[Discussion] Minor upgrades and new item scoring

Hey, I've made some experimental changes on the fork I started all these months ago; nothing too wild, but here's a list:

  1. building under windows is possible (and hopefully won't brick under Linux - I don't have access to a Linux machine anymore); a better solution would pull the directory path separator from the environment
  2. fixed some of the renamed affixes like stun and block recovery, flask charges used etc.
  3. (have not added poison immune flasks yet, don't know how I'd have to add them to the table view)
  4. added all of the new map fragments that were introduced since prophecy (pale council keys, shaper fragments, reliquary key)
  5. added relics and sealed prophecies as possible rarities / frame types so they don't show up as UNKNOWN
  6. added rudimentary support to find leaguestones by type, but without parsing their properties
  7. and the big ticket: there's a relatively recent reddit post here https://www.reddit.com/r/pathofexile/comments/56rtmk/the_is_this_item_worth_something_guide/ that had some useful rules of thumb for item valuation and I tried to implement most of them.
    • The "custom" score column will now apply scoring based on these rules. It's selfishly still unfinished for items I rarely use (melee dps gear) but should be useful for most of the other stuff. It also showed me that I have very few rares with more than 2 good affixes, at best..
    • PetePete1984@1826779

The problem I have with the scoring is that I don't exactly understand how Scala does things; I'd love to bracket the item rules by item type etc. (ie simple if-conditions) but the item scorer's structure is confusing to me, heh. Feels like there's some functional programming magic happening with implied parameters.

Also, moving the scoring rules to a data-based format would be highly preferable but that's probably beyond my current capabilities. Path of Building does some clever things with auto-updating Lua files for its item data and DPS algorithms, but those still need to be maintained by somebody.

Anyway, if anything of that seems useful feel free to review and merge it as you see fit! My stash would be unusable without Looty, so I just wanted to give something back :)

column separator in exported file (... messed up for "support gems")

GGG has changed the names on support gems and added comma(s) in the description. This corrupts the exported file.
Example: Chaos, Support,Added Chaos Damage Support (in GemKeyWords/TypeLine)

Is it possible to delimit text strings w quotes (or maybe let the user choose a column separator in Looty)?

Building on ubuntu 20.04

have you built looty on Ubuntu 20.04? I worked around a number of issues and then ran into an problem with bin/sbt still using http instead of https. Do you have a supported build solution for ubuntu 20.04?

I could build in a VM or on top of windows10 as an alternate. What would you suggest for the most trouble free development environment?

`[bjbeare@bjbeare-desktop looty]$ bin/sbt
Using node v8
Getting org.scala-sbt sbt 0.13.6 ...

:: problems summary ::
:::: WARNINGS
module not found: org.scala-sbt#sbt;0.13.6

==== local: tried

  /home/bjbeare/.ivy2/local/org.scala-sbt/sbt/0.13.6/ivys/ivy.xml

==== typesafe-ivy-releases: tried

  http://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/sbt/0.13.6/ivys/ivy.xml

==== Maven Central: tried

  http://repo1.maven.org/maven2/org/scala-sbt/sbt/0.13.6/sbt-0.13.6.pom

	::::::::::::::::::::::::::::::::::::::::::::::

	::          UNRESOLVED DEPENDENCIES         ::

	::::::::::::::::::::::::::::::::::::::::::::::

	:: org.scala-sbt#sbt;0.13.6: not found

	::::::::::::::::::::::::::::::::::::::::::::::

:::: ERRORS
Server access Error: Connection timed out (Connection timed out) url=http://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/sbt/0.13.6/ivys/ivy.xml

SERVER ERROR: HTTPS Required url=http://repo1.maven.org/maven2/org/scala-sbt/sbt/0.13.6/sbt-0.13.6.pom

:: USE VERBOSE OR DEBUG MESSAGE LEVEL FOR MORE DETAILS
unresolved dependency: org.scala-sbt#sbt;0.13.6: not found
Error during sbt execution: Error retrieving required libraries
(see /home/bjbeare/.sbt/boot/update.log for complete log)
Error: Could not retrieve sbt 0.13.6
`

Ability to search by number of open prefixes/suffixes

This is the same as #29 but that one was closed due to the exitance of emc which is useful but can't differentiate between prefix and suffix and has some issues with two mod affixes.

I looked at the data returned from the API and agree that it's not straightforward but I wonder if it's worth using the raw mod data to make an estimate:
https://github.com/brather1ng/RePoE

Probably the json could be processed for easier run time checks but not sure if there's interest here.

Update xpi for firefox

please update xpi on /dists directory so we can add it to firefox.

as we don't have looty on firefox store, xpi is the only way to use it and is quite outdated: looty_stash_search_for_path_of_exile-0.2.1.73-fx.xpi

i think that one is from 2019

thanks for your time

Handling changing order of tabs

When you change the order of your tabs on the POE client, Looty incorrectly displays the wrong tab name for items when items are searched for. (Workaround has been to remove Looty and reinstall, so that fresh data can be loaded.)

jewel search

It'd be helpful if there was a good way to search for jewels in Looty!

The set of possible mods is quite large for jewels. One way to support them would be to add all the mods to the column selection panel, but this might be unwieldy.

Another approach would be to add, say 10, custom columns. When someone enables a custom column, they'll have a combobox above the filter textbox. That combo box would act like poe.trade's mod selection combobox.

Various column bugs because jquery

column_bug

It seems that jQuery upgrade in 2.1.73 introduced this bugs for SlickGrid:

  • lack of column resizing
  • disappearing columns - once you try to resize column and then click on any of them, columns up to the clicked one vanish

Reverting to old one worked for me, yet im not sure if it will produce other issues, i will see and report

"Upgrade" doesn't work

I remember long time ago it did work, but now its just not doing anything. Once i select my character on dropdown, there's no extra option to select specific item, and click/double click on exact item to upgrade does nothing except of constant spam on top of page about API throttling. Even if I wait over to see "Downloaded data", its still not doing doing anything after.

Cluster Jewels as a separate type

Is it possible to assign Cluster Jewels its own type? In the same fashion as Abyss Jewels have their own.
Currently, the only way to browse Cluster Jewels is to filter to a "Jewel" type, so Cluster Jewels are mixed with normal Jewels

Thanks,

Jewel support

Any plans to support jewels? Since their mods are so different from other items', it might make sense to have them in a separate tab with different search and filter criteria.

Column with custom search

Hey, thanks for wonderfull tool :) I'd be burried long time ago under the stash of my items, if not you. 👍

Back to subject, I'd like to be able to use text field (can be additional column/filter) where I could type regular expression in search for specific (because of unique item or not) affixes. Looty filters all of common defense/attack stats, but lack this kind of filter.
For example to see which items has "+1 to Minimum Power Charges" (its new master crafting affix), we could write "power charges".

Would it be lot of work ?
Thanks!

Looty! should remember the last selected league

Currently, I have to re-select "Standard" from the league drop-down every time I change tabs.

image

Ideally this would be a stored user preference that would hold the last selected league as the default value of the select field.

Wed

Weapon Elemental damage is missing in the Column list.

Addition of damage conversion, additional damage, and critical strikes.

Per suni3mo's request, https://www.pathofexile.com/forum/view-thread/832233/page/46#p23141554 , and with apologies for the two month delay...

Addition of critical strike damage in DPS calculations:

Per-weapon critical strike damage can be included fairly simply as a modifier based on critical strike damage * critical strike chance that you multiply the base damage values by.

If you're looking at the average DPS of a weapon then the base damage is (Minimum Damage + Maximum Damage) / 2 * Attacks per Second . The critical strike multiplier would be 1 + (((150 + Critical Strike Damage) / 100) * (Critical Strike Chance / 100))

Most weapons don't have a critical damage modifier so their critical strikes will just do 150% base damage. Likewise most base weapon types have a default critical strike chance of 5% IIRC. This means that on average they do 7.5% more damage than the base value. 1 + (((150 + 0) / 100) * (5 / 100)) = 1 + (1.5 * .05) = 1.075

If you had a dagger that had 30% increased critical strike chance and 40% increased critical strike damage then you'd ignore the chance portion because it'll show up in the item's base critical strike chance (unless the API pulls different info than the paste to clipboard method does) while you'd add the critical strike damage bonus to that 150 for 1 + (1.9 * .065) or a 1.1235 modifier to the weapon's total damage.

Damage Conversion:

Damage conversion is the second simplest. Either check for the affix if you want to make it (more) future-resistant or check by the item name since most, if not all, damage conversions are used with unique items, and then follow this example.

If affix contains "converted to" then determine percentage and damage type. Moonbender's Wing converts 25% of physical damage to cold and 25% to lightning so:
Cold Damage = Physical Damage * Cold Conversion%
Lightning Damage = Physical Damage * Lightning Conversion%
Physical Damage *= 1 - (Cold Conversion% + Lightning Conversion%)

Additional Damage:

This one's the simplest factor. Find the affix, determine the additional damage type and percentage and fill in from there. Doomfletch's Prism adds 100% of the weapon damage as elemental damage of each type so:
Fire Damage = Physical Damage
Cold Damage = Physical Damage
Lightning Damage = Physical Damage

Doomsower is a little more difficult since it offers 5% of physical damage added as fire damage per socketed red gem. In this case my response was
Fire Damage = Physical Damage * (.05 * Total Red Sockets of item)


Finally, I'd like to address a valid concern suni3mo brought up when I mentioned situational modifiers.

I have three simple text boxes for character level and core stats which allows for items like Pillar of the Caged God and Edge of Madness to have their variable damage values included. Anything at or below the minimum threshold of the item is ignored while everything over it is included.

For the Edge of Madness this means that since the minimum level to equip is 22 that's the lowest level considered for character level. A level 22 character using Edge of Madness will see 284 DPS, 137 physical and 147 chaos, while a level 80 character would see 591 DPS, 375 physical and 217 chaos.

For items like the Dyadus and Wings of Entropy I add fake items to show the damage values.

Wings of Entropy shows up with just the physical and fire main hand damage while a fake "Wings of Entropy (off-hand) is created to show the physical and chaos off-hand damage.

Similarly the Dyadus gets the default "Dyadus" that shows the base physical and fire damage and a "Dyadus (off-hand)" to show its physical and cold damage values.

I'll freely admit that these aren't the easiest things to consider and that they could confuse users, but at the same time I can't see that seeing one instance of, for example, Dyadus showing physical + cold + fire damage or just physical damage as being any less confusing than seeing a "real" Dyadus and "fake" "Dyadus (off-hand)" to properly show the weapon's actual damage values.

Cost request

I was wondering if you could add a column that shows how much the item costs in the store and/or the lowest price in poe.trade (maybe a switch in settings so users could choose which source). It would be useful for people who want to sell stuff and don't want to go look up each item individually to make their decision on what to price it at.

Btw, I absolutely love looty! Great job 🥇 👍

Not working

Keep getting only "Throttled by pathofexile.com, while you wait stop by here and help other players discover the tool!"

[Discussion] Documentation - tutorial

Hey!

I found about wiki feature. And seeing that it does not have writing permision, I added few words about what Looty is/does, and how it looks like.

Some time ago I went to conclusion that Readme.md just dont have much info about how to use Looty, except how to add to source code. So I tried to fill that void here.

Although wiki link is not visible to newcommers, heck i didnt even think that some projects have it because its not visible enough in GitHub UI.

If you'd like you could include image and other parts of this doc in Readme.md here and in forum post. Because how they say, "Image is worth thousands of words", or somehing like that.
Images are safe and linked from my repository, so they will not perish at least.

What do you think?

I hope you'll find it useful :)

Remember prices in Wealth tab

I think it may not be remember the users enter between visits to the page. It should store the values (ideally per league) so that they don't have to re-enter them over and over.

UI Issue?

In both Chrome and Firefox, Looty! no longer works for me. I tried clearing cache, checking other extensions, firewall etc. Essentially, when I click any of the links such as "Home" or "Settings" it changes the url, but no new page loads.

Map quality not showing

Hi! Map quality isn't shown. Currently stored in column G, Misc if I export all items instead of under H, Quality. In JSON it's under var 2 I believe

Darkshrine tab doesnt work

Hi,

Thank you so much for the amazing work.
Just wanted to let you know that the DarkShrine tab doesn't work.
You can click on it but it does not open anything, the only thing it does is modify the url path, but thats it.

Possible to add export only dataview?

Maybe not an issue per se, but could we get an export dataview feature? In case I use your tool to narrow down and then export to some other program through .csv

Would save the sorting out all items in the .csv-file for everytime I add an item.

Unique stash missing

The special unique stash is missing from the item data.

On the character viewer on the website you cannot view items, but items are shown in the 'Stashes' section of the user profile, and you can share them like this.

Not sure if this is a known issue, or if someone is already working on it. If someone points me towards the parts of the code which deals with this I'll have a look at implementing it.

It's listed as a bug here (2nd post) so maybe the plan is to ignore it until it's fixed? In which case a statement should be added to the readme, 'Known Bugs' or something.

(edit: though, that bug is from 2016... )

Attributes treated inconsistently

The way the program treats the three primary stats is weird. Here is an example:

image

Looty lists this as giving +15% Evasion (IncreasedEvasion). Compare that to this:

image

Which shows up as 6.6% increased maximum energy shield (IncreasedMaxEnergyShield).

The second item integrates the effect of Intelligence into the global ES modifier (2% + 4.6%) while the first item does not integrate Dexterity. So, what happens when you have a piece of equipment with a local % modifier and an Intelligence bonus?

image

This item Looty will show as having: 24% increased evasion and 7% increased ES.

So increased ES will always be global increased ES including intelligence.
Increased Evasion will either be local increase, or it will be global increase ignoring dexterity.

I'm not sure what the best way to fix this is but it would be nice if there was a consistent treatment of local and global modifiers. There's currently no way of retrieving a local ES modifier, or seeing the full global evasion modifier on an item.

Possible to search for empty affix/preffix

Would it be possible to add functionality to search for empty affixes/preffix/suffixes of an item ?
Sometimes I'd like to find good item which could be bench crafted or ex slammed.

Custom Stats?

Maybe I'm missing it, but there doesn't seem to be a place to define custom statistics for the two included custom columns.

GEM XP

I have another request today.

Is it possible to add a up-down sort column for the Gem Xp Tracker? Or have it arranged based on highest XP first or closest to level (100%). Also, I think the remaining xp in ( ), should have its own column.

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.