greent refactoring

This commit is contained in:
Manuel Simon Hirsig
2016-11-07 12:09:40 +01:00
parent 38d3c6c607
commit 3ef4597018
31 changed files with 267 additions and 252 deletions
+11 -11
View File
@@ -1,6 +1,6 @@
module 'aux.core.cache'
include 'green_t'
include 'green_T'
include 'aux'
local info = require 'aux.util.info'
@@ -12,12 +12,12 @@ local MAX_ITEM_ID = 30000
local items_schema = {'tuple', '#', {name='string'}, {quality='number'}, {level='number'}, {class='string'}, {subclass='string'}, {slot='string'}, {max_stack='number'}, {texture='string'}}
local merchant_buy_schema = {'tuple', '#', {unit_price='number'}, {limited='boolean'}}
_G.aux_items = t
_G.aux_item_ids = t
_G.aux_auctionable_items = t
_G.aux_merchant_buy = t
_G.aux_merchant_sell = t
_G.aux_characters = t
_G.aux_items = T
_G.aux_item_ids = T
_G.aux_auctionable_items = T
_G.aux_merchant_buy = T
_G.aux_merchant_sell = T
_G.aux_characters = T
function LOAD()
scan_wdb()
@@ -87,7 +87,7 @@ function M.item_info(item_id)
local data_string = aux_items[item_id]
if data_string then
local cached_data = temp-persistence.read(items_schema, data_string)
return T(
return O(
'name', cached_data.name,
'itemstring', 'item:' .. item_id .. ':0:0:0',
'quality', cached_data.quality,
@@ -125,12 +125,12 @@ function merchant_buy_scan()
unit_price = min(buy_info.unit_price, new_unit_price)
end
aux_merchant_buy[item_id] = persistence.write(merchant_buy_schema, T(
aux_merchant_buy[item_id] = persistence.write(merchant_buy_schema, O(
'unit_price', unit_price,
'limited', buy_info.limited and new_limited
))
else
aux_merchant_buy[item_id] = persistence.write(merchant_buy_schema, T(
aux_merchant_buy[item_id] = persistence.write(merchant_buy_schema, O(
'unit_price', new_unit_price,
'limited', new_limited
))
@@ -161,7 +161,7 @@ function scan_wdb(item_id)
local name, _, quality, level, class, subclass, max_stack, slot, texture = GetItemInfo(itemstring)
if name and not aux_item_ids[strlower(name)] then
aux_item_ids[strlower(name)] = item_id
aux_items[item_id] = persistence.write(items_schema, T(
aux_items[item_id] = persistence.write(items_schema, O(
'name', name,
'quality', quality,
'level', level,
+50 -50
View File
@@ -1,6 +1,6 @@
module 'aux.core.disenchant'
include 'green_t'
include 'green_T'
include 'aux'
local history = require 'aux.core.history'
@@ -8,7 +8,7 @@ local history = require 'aux.core.history'
local UNCOMMON, RARE, EPIC = 2, 3, 4
do
local data = T(
local data = O(
10940, A('DUST', '1-20'),
11083, A('DUST', '21-30'),
11137, A('DUST', '31-40'),
@@ -86,7 +86,7 @@ end
function M.distribution(slot, quality, level)
if not ARMOR[slot] and not WEAPON[slot] or level == 0 then
return t
return T
end
local function p(probability_armor, probability_weapon)
@@ -100,102 +100,102 @@ function M.distribution(slot, quality, level)
if quality == UNCOMMON then
if level <= 10 then
return A(
weak-T('item_id', 10940, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.8, .2)),
weak-T('item_id', 10938, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.2, .8))
weak-O('item_id', 10940, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.8, .2)),
weak-O('item_id', 10938, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.2, .8))
)
elseif level <= 15 then
return A(
weak-T('item_id', 10940, 'min_quantity', 2, 'max_quantity', 3, 'probability', p(.75, .2)),
weak-T('item_id', 10939, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.2, .75)),
weak-T('item_id', 10978, 'min_quantity', 1, 'max_quantity', 1, 'probability', .05)
weak-O('item_id', 10940, 'min_quantity', 2, 'max_quantity', 3, 'probability', p(.75, .2)),
weak-O('item_id', 10939, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.2, .75)),
weak-O('item_id', 10978, 'min_quantity', 1, 'max_quantity', 1, 'probability', .05)
)
elseif level <= 20 then
return A(
weak-T('item_id', 10940, 'min_quantity', 4, 'max_quantity', 6, 'probability', p(.75, .15)),
weak-T('item_id', 10998, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.15, .75)),
weak-T('item_id', 10978, 'min_quantity', 1, 'max_quantity', 1, 'probability', .10)
weak-O('item_id', 10940, 'min_quantity', 4, 'max_quantity', 6, 'probability', p(.75, .15)),
weak-O('item_id', 10998, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.15, .75)),
weak-O('item_id', 10978, 'min_quantity', 1, 'max_quantity', 1, 'probability', .10)
)
elseif level <= 25 then
return A(
weak-T('item_id', 11083, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.75, .2)),
weak-T('item_id', 11082, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.2, .75)),
weak-T('item_id', 11084, 'min_quantity', 1, 'max_quantity', 1, 'probability', .05)
weak-O('item_id', 11083, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.75, .2)),
weak-O('item_id', 11082, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.2, .75)),
weak-O('item_id', 11084, 'min_quantity', 1, 'max_quantity', 1, 'probability', .05)
)
elseif level <= 30 then
return A(
weak-T('item_id', 11083, 'min_quantity', 2, 'max_quantity', 5, 'probability', p(.75, .2)),
weak-T('item_id', 11134, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.2, .75)),
weak-T('item_id', 11138, 'min_quantity', 1, 'max_quantity', 1, 'probability', .05)
weak-O('item_id', 11083, 'min_quantity', 2, 'max_quantity', 5, 'probability', p(.75, .2)),
weak-O('item_id', 11134, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.2, .75)),
weak-O('item_id', 11138, 'min_quantity', 1, 'max_quantity', 1, 'probability', .05)
)
elseif level <= 35 then
return A(
weak-T('item_id', 11137, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.75, .2)),
weak-T('item_id', 11135, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.2, .75)),
weak-T('item_id', 11139, 'min_quantity', 1, 'max_quantity', 1, 'probability', .05)
weak-O('item_id', 11137, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.75, .2)),
weak-O('item_id', 11135, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.2, .75)),
weak-O('item_id', 11139, 'min_quantity', 1, 'max_quantity', 1, 'probability', .05)
)
elseif level <= 40 then
return A(
weak-T('item_id', 11137, 'min_quantity', 2, 'max_quantity', 5, 'probability', p(.75, .2)),
weak-T('item_id', 11174, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.2, .75)),
weak-T('item_id', 11177, 'min_quantity', 1, 'max_quantity', 1, 'probability', .05)
weak-O('item_id', 11137, 'min_quantity', 2, 'max_quantity', 5, 'probability', p(.75, .2)),
weak-O('item_id', 11174, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.2, .75)),
weak-O('item_id', 11177, 'min_quantity', 1, 'max_quantity', 1, 'probability', .05)
)
elseif level <= 45 then
return A(
weak-T('item_id', 11176, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.75, .2)),
weak-T('item_id', 11175, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.2, .75)),
weak-T('item_id', 11178, 'min_quantity', 1, 'max_quantity', 1, 'probability', .05)
weak-O('item_id', 11176, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.75, .2)),
weak-O('item_id', 11175, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.2, .75)),
weak-O('item_id', 11178, 'min_quantity', 1, 'max_quantity', 1, 'probability', .05)
)
elseif level <= 50 then
return A(
weak-T('item_id', 11176, 'min_quantity', 2, 'max_quantity', 5, 'probability', p(.75, .22)),
weak-T('item_id', 16202, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.2, .75)),
weak-T('item_id', 14343, 'min_quantity', 1, 'max_quantity', 1, 'probability', p(.05, .03))
weak-O('item_id', 11176, 'min_quantity', 2, 'max_quantity', 5, 'probability', p(.75, .22)),
weak-O('item_id', 16202, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.2, .75)),
weak-O('item_id', 14343, 'min_quantity', 1, 'max_quantity', 1, 'probability', p(.05, .03))
)
elseif level <= 55 then
return A(
weak-T('item_id', 16204, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.75, .22)),
weak-T('item_id', 16203, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.2, .75)),
weak-T('item_id', 14344, 'min_quantity', 1, 'max_quantity', 1, 'probability', p(.05, .03))
weak-O('item_id', 16204, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.75, .22)),
weak-O('item_id', 16203, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.2, .75)),
weak-O('item_id', 14344, 'min_quantity', 1, 'max_quantity', 1, 'probability', p(.05, .03))
)
elseif level <= 60 then
return A(
weak-T('item_id', 16204, 'min_quantity', 2, 'max_quantity', 5, 'probability', p(.75, .22)),
weak-T('item_id', 16203, 'min_quantity', 2, 'max_quantity', 3, 'probability', p(.2, .75)),
weak-T('item_id', 14344, 'min_quantity', 1, 'max_quantity', 1, 'probability', p(.05, .03))
weak-O('item_id', 16204, 'min_quantity', 2, 'max_quantity', 5, 'probability', p(.75, .22)),
weak-O('item_id', 16203, 'min_quantity', 2, 'max_quantity', 3, 'probability', p(.2, .75)),
weak-O('item_id', 14344, 'min_quantity', 1, 'max_quantity', 1, 'probability', p(.05, .03))
)
end
elseif quality == RARE then
if level <= 20 then
return A(weak-T('item_id', 10978, 'min_quantity', 1, 'max_quantity', 1, 'probability', 1))
return A(weak-O('item_id', 10978, 'min_quantity', 1, 'max_quantity', 1, 'probability', 1))
elseif level <= 25 then
return A(weak-T('item_id', 11084, 'min_quantity', 1, 'max_quantity', 1, 'probability', 1))
return A(weak-O('item_id', 11084, 'min_quantity', 1, 'max_quantity', 1, 'probability', 1))
elseif level <= 30 then
return A(weak-T('item_id', 11138, 'min_quantity', 1, 'max_quantity', 1, 'probability', 1))
return A(weak-O('item_id', 11138, 'min_quantity', 1, 'max_quantity', 1, 'probability', 1))
elseif level <= 35 then
return A(weak-T('item_id', 11139, 'min_quantity', 1, 'max_quantity', 1, 'probability', 1))
return A(weak-O('item_id', 11139, 'min_quantity', 1, 'max_quantity', 1, 'probability', 1))
elseif level <= 40 then
return A(weak-T('item_id', 11177, 'min_quantity', 1, 'max_quantity', 1, 'probability', 1))
return A(weak-O('item_id', 11177, 'min_quantity', 1, 'max_quantity', 1, 'probability', 1))
elseif level <= 45 then
return A(weak-T('item_id', 11178, 'min_quantity', 1, 'max_quantity', 1, 'probability', 1))
return A(weak-O('item_id', 11178, 'min_quantity', 1, 'max_quantity', 1, 'probability', 1))
elseif level <= 50 then
return A(weak-T('item_id', 14343, 'min_quantity', 1, 'max_quantity', 1, 'probability', 1))
return A(weak-O('item_id', 14343, 'min_quantity', 1, 'max_quantity', 1, 'probability', 1))
elseif level <= 55 then
return A(weak-T('item_id', 14344, 'min_quantity', 1, 'max_quantity', 1, 'probability', .995), T('item_id', 20725, 'min_quantity', 1, 'max_quantity', 1, 'probability', .005))
return A(weak-O('item_id', 14344, 'min_quantity', 1, 'max_quantity', 1, 'probability', .995), O('item_id', 20725, 'min_quantity', 1, 'max_quantity', 1, 'probability', .005))
elseif level <= 60 then
return A(weak-T('item_id', 14344, 'min_quantity', 1, 'max_quantity', 1, 'probability', .995), T('item_id', 20725, 'min_quantity', 1, 'max_quantity', 1, 'probability', .005))
return A(weak-O('item_id', 14344, 'min_quantity', 1, 'max_quantity', 1, 'probability', .995), O('item_id', 20725, 'min_quantity', 1, 'max_quantity', 1, 'probability', .005))
end
elseif quality == EPIC then
if level <= 40 then
return A(weak-T('item_id', 11177, 'min_quantity', 2, 'max_quantity', 4, 'probability', 1))
return A(weak-O('item_id', 11177, 'min_quantity', 2, 'max_quantity', 4, 'probability', 1))
elseif level <= 45 then
return A(weak-T('item_id', 11178, 'min_quantity', 2, 'max_quantity', 4, 'probability', 1))
return A(weak-O('item_id', 11178, 'min_quantity', 2, 'max_quantity', 4, 'probability', 1))
elseif level <= 50 then
return A(weak-T('item_id', 14343, 'min_quantity', 2, 'max_quantity', 4, 'probability', 1))
return A(weak-O('item_id', 14343, 'min_quantity', 2, 'max_quantity', 4, 'probability', 1))
elseif level <= 55 then
return A(weak-T('item_id', 20725, 'min_quantity', 1, 'max_quantity', 1, 'probability', 1))
return A(weak-O('item_id', 20725, 'min_quantity', 1, 'max_quantity', 1, 'probability', 1))
elseif level <= 60 then
return A(weak-T('item_id', 20725, 'min_quantity', 1, 'max_quantity', 2, 'probability', 1))
return A(weak-O('item_id', 20725, 'min_quantity', 1, 'max_quantity', 2, 'probability', 1))
end
end
return t
return T
end
+8 -8
View File
@@ -1,20 +1,20 @@
module 'aux.core.history'
include 'green_t'
include 'green_T'
include 'aux'
local persistence = require 'aux.util.persistence'
local history_schema = {'tuple', '#', {next_push='number'}, {daily_min_buyout='number'}, {daily_max_price='number'}, {data_points={'list', ';', {'tuple', '@', {market_value='number'}, {time='number'}}}}}
local value_cache = t
local value_cache = T
do
local cache
function get_data()
if not cache then
local dataset = persistence.dataset
cache = dataset.history or t
cache = dataset.history or T
dataset.history = cache
end
return cache
@@ -34,7 +34,7 @@ do
end
function get_new_record()
return T('next_push', next_push, 'data_points', t)
return O('next_push', next_push, 'data_points', T)
end
function read_record(item_key)
@@ -79,11 +79,11 @@ function M.value(item_key)
local item_record, value
item_record = read_record(item_key)
if getn(item_record.data_points) > 0 then
local total_weight, weighted_values = 0, tt
local total_weight, weighted_values = 0, temp-T
for _, data_point in item_record.data_points do
local weight = .99 ^ round((item_record.data_points[1].time - data_point.time) / (60 * 60 * 24))
total_weight = total_weight + weight
tinsert(weighted_values, T('value', data_point.market_value, 'weight', weight))
tinsert(weighted_values, O('value', data_point.market_value, 'weight', weight))
end
for _, weighted_value in weighted_values do
weighted_value.weight = weighted_value.weight / total_weight
@@ -92,7 +92,7 @@ function M.value(item_key)
else
value = calculate_market_value(item_record)
end
value_cache[item_key] = T('value', value, 'next_push', item_record.next_push)
value_cache[item_key] = O('value', value, 'next_push', item_record.next_push)
end
return value_cache[item_key].value
end
@@ -118,7 +118,7 @@ end
function push_record(item_record)
for market_value in present(calculate_market_value(item_record)) do
tinsert(item_record.data_points, 1, weak-T('market_value', market_value, 'time', item_record.next_push))
tinsert(item_record.data_points, 1, weak-O('market_value', market_value, 'time', item_record.next_push))
while getn(item_record.data_points) > 11 do
release(item_record.data_points[getn(item_record.data_points)])
tremove(item_record.data_points)
+1 -1
View File
@@ -1,6 +1,6 @@
module 'aux.core.post'
include 'green_t'
include 'green_T'
include 'aux'
local info = require 'aux.util.info'
+4 -4
View File
@@ -1,6 +1,6 @@
module 'aux.core.scan'
include 'green_t'
include 'green_T'
include 'aux'
local info = require 'aux.util.info'
@@ -9,7 +9,7 @@ local history = require 'aux.core.history'
local PAGE_SIZE = 50
do
local scan_states = t
local scan_states = T
function M.start(params)
for old_state in present(scan_states[params.type]) do
@@ -25,7 +25,7 @@ do
end
function M.abort(scan_id)
local aborted = t
local aborted = T
for type, state in scan_states do
if not scan_id or state.id == scan_id then
kill_thread(state.id)
@@ -96,7 +96,7 @@ do
elseif state.params.type == 'owner' then
GetOwnerAuctionItems(state.page)
else
local blizzard_query = query.blizzard_query or t
local blizzard_query = query.blizzard_query or T
QueryAuctionItems(
blizzard_query.name,
blizzard_query.min_level,
+10 -10
View File
@@ -1,6 +1,6 @@
module 'aux.core.slash'
include 'green_t'
include 'green_T'
include 'aux'
local persistence = require 'aux.util.persistence'
@@ -19,18 +19,18 @@ function SlashCmdList.AUX(command)
persistence.dataset.post = nil
print('Post settings cleared.')
elseif arguments[1] == 'clear' and arguments[2] == 'datasets' then
_G.aux_datasets = t
_G.aux_datasets = T
print('Datasets cleared.')
elseif arguments[1] == 'clear' and arguments[2] == 'merchant' and arguments[3] == 'buy' then
_G.aux_merchant_buy = t
_G.aux_merchant_buy = T
print('Merchant buy prices cleared.')
elseif arguments[1] == 'clear' and arguments[2] == 'merchant' and arguments[3] == 'sell' then
_G.aux_merchant_sell = t
_G.aux_merchant_sell = T
print('Merchant sell prices cleared.')
elseif arguments[1] == 'clear' and arguments[2] == 'item' and arguments[3] == 'cache' then
_G.aux_items = t
_G.aux_item_ids = t
_G.aux_auctionable_items = t
_G.aux_items = T
_G.aux_item_ids = T
_G.aux_auctionable_items = T
print('Item cache cleared.')
elseif arguments[1] == 'populate' and arguments[2] == 'wdb' then
cache.populate_wdb()
@@ -60,7 +60,7 @@ function SlashCmdList.AUX(command)
print('Ignoring of owner ' .. (aux_ignore_owner and 'enabled' or 'disabled') .. '.')
elseif arguments[1] == 'chars' and arguments[2] == 'add' then
local realm = GetCVar'realmName'
aux_characters[realm] = aux_characters[realm] or t
aux_characters[realm] = aux_characters[realm] or T
for i = 3, getn(arguments) do
local name = gsub(strlower(arguments[i]), '^%l', strupper)
if not aux_characters[realm][name] then
@@ -82,8 +82,8 @@ function SlashCmdList.AUX(command)
end
elseif arguments[1] == 'chars' then
local realm = GetCVar'realmName'
local chars = t
for name in aux_characters[realm] or t do
local chars = T
for name in aux_characters[realm] or T do
tinsert(chars, name)
end
if getn(chars) > 0 then
+1 -1
View File
@@ -1,6 +1,6 @@
module 'aux.core.stack'
include 'green_t'
include 'green_T'
include 'aux'
local info = require 'aux.util.info'
+2 -2
View File
@@ -1,6 +1,6 @@
module 'aux.core.tooltip'
include 'green_t'
include 'green_T'
include 'aux'
local info = require 'aux.util.info'
@@ -20,7 +20,7 @@ local color = {
_G.aux_tooltip_value = true
local game_tooltip_hooks, game_tooltip_money = t, 0
local game_tooltip_hooks, game_tooltip_money = T, 0
function LOAD()
do