Skip to content

Latest commit

 

History

History
40 lines (29 loc) · 3.21 KB

README.md

File metadata and controls

40 lines (29 loc) · 3.21 KB

WarframeModSeller

Script to check for the most profitbale augmentation mods of a syndicate in the game Warframe and automatically sell them via WarframeMarket

While I made this project mainly to sell syndicate mods and find the most profitable to sell at a given moment, this project can be used to evaluate and sell most Warframe items. For a more general library for the WarframeMarket API, check out the library from AyajiLin.

How to use

The example in main.py should give a good overview on how to use this project. To break it down:

mods = augment_mods.get_augment_mods('Red Veil')
uses the Warframe Wiki to read out all the augmentation mods from the given syndicate (here Red Veil). mods is just a list of mod names (as strings), so one can easily exchange this for other mods/items if needed.

market_items = MarketItems()
market_items.add_items_from_item_names(mods)
converts the mod/item names into MarketItems which allows to keep track of the WaframeMarket URL and ID of these mods/items.

items_to_sell = SellMostProfitable.propose_mods_to_sell(market_items, difference_to_highest=0, sell_below_current_cheapest= False)
uses the SalesStrategy SellMostProfitable to determine the current cheapest price of all given market items and determine the most profitable (i.e. most expensive) ones. difference_to_highest = 0 is the most greedy version that only sells the most expensive items. A larger value for difference_to_highest also sells items that are that much cheaper. sell_below_current_cheapest determines whether the item should be sold at the currently cheapest price or for one platinum less.

ManualSales().sell_items(items_to_sell)
uses the SalesAgent ManualSales. This agent just prints the identified items to sell together with their price to the console. This line is not needed if the AutomaticSales agent is used.

auth = WFMarketAuth()
load_dotenv()
wfm_mail = os.environ.get('WFM_MAIL')
wfm_password = os.environ.get('WFM_PASSWORD')
if wfm_mail and wfm_password:
auth.login_user(wfm_mail, wfm_password)
else:
print('Please set "WFM_MAIL" and "WFM_PASSWORD" in the .env file.')
exit()
logs into an existing WarframeMarket account, which is needed for automatically listing the sales on WarframeMarket. The user must provide a .env file (the full filename should be ".env" without anything in front of the dot) in the same folder to provide the login credentials to Warframe Market. The file should look like this:

WFM_MAIL=[email protected]

WFM_PASSWORD=password123

Assuming a successfull login

agent = AutomaticSales(auth)
agent.sell_items(items_to_sell)
creates an AutomaticSales agent and lists the items on WarframeMarket

agent.delete_other_orders(market_items)
can then be used at the end to clean up the user's listings on WarframeMarket. Each of the user's listing of an item that is in market_items but was not listed by the agent in the previous step is deleted. This is especially usefull when selling syndicate mods to cleanup previous listings that are not the most profitable ones anymore.