Compare commits

...

10 Commits

Author SHA1 Message Date
Kvan7
7c62289019 Merge pull request #675 from Kvan7:dev
v0.12.2
2025-09-10 22:01:14 -05:00
kvan7
7abeb85016 version bump 2025-09-10 22:00:53 -05:00
kvan7
a6f6eb1d4f mark price fixed items 2025-09-10 21:43:19 -05:00
kvan7
5a34b0f5f8 change gone 2025-09-10 20:36:06 -05:00
kvan7
72c3a1a857 Hide desecrated mods 2025-09-10 20:29:30 -05:00
kvan7
3732270de9 next attempt at fixing installer issues 2025-09-10 16:30:56 -05:00
Kvan7
1992e28636 Merge pull request #663 from Kvan7:dev
v0.12.1
2025-09-10 06:13:01 -05:00
kvan7
5fd444c04f also hide added runes 2025-09-10 06:11:37 -05:00
kvan7
f3e1c7fee6 version bump 2025-09-10 06:02:05 -05:00
kvan7
cba5ba0b55 Chaos resistance is counting toward #% Total Elemental Resistance when price checking
Fixes #660
2025-09-10 05:31:34 -05:00
19 changed files with 115 additions and 42 deletions

View File

@@ -59,12 +59,13 @@ body:
label: Version
description: What version of EE2 are you running? You can see this in Settings -> About
options:
- 0.12.2
- 0.12.1
- 0.12.0
- 0.11.x
- 0.10.x
- 0.9.x
- 0.8.x
- Other
- Change me
default: 5
validations:
required: true
- type: textarea

View File

@@ -1,6 +1,6 @@
# ![Perfect Jewelers Orb](./renderer/public/images/jeweler.png) Exiled Exchange 2
![GitHub Downloads (specific asset, latest release)](https://img.shields.io/github/downloads/kvan7/exiled-exchange-2/latest/Exiled-Exchange-2-Setup-0.12.0.exe?style=plastic&link=https%3A%2F%2Ftooomm.github.io%2Fgithub-release-stats%2F%3Fusername%3Dkvan7%26repository%3DExiled-Exchange-2)
![GitHub Downloads (specific asset, latest release)](https://img.shields.io/github/downloads/kvan7/exiled-exchange-2/latest/Exiled-Exchange-2-Setup-0.12.2.exe?style=plastic&link=https%3A%2F%2Ftooomm.github.io%2Fgithub-release-stats%2F%3Fusername%3Dkvan7%26repository%3DExiled-Exchange-2)
![GitHub Tag](https://img.shields.io/github/v/tag/kvan7/exiled-exchange-2?style=plastic&label=latest%20version)
![GitHub commits since latest release (branch)](https://img.shields.io/github/commits-since/kvan7/exiled-exchange-2/latest/dev?style=plastic)

View File

@@ -20,7 +20,7 @@ export default defineConfig({
},
themeConfig: {
// logo: 'TODO', https://github.com/vuejs/vitepress/issues/1401
appVersion: '0.12.0',
appVersion: '0.12.2',
github: {
releasesUrl: 'https://github.com/Kvan7/Exiled-Exchange-2/releases'
},

View File

@@ -12,8 +12,7 @@ files:
extraMetadata:
main: "main.js"
nsis:
oneClick: false
allowToChangeInstallationDirectory: true
oneClick: true
win:
target:
- "nsis"

View File

@@ -1,12 +1,12 @@
{
"name": "exiled-exchange-2",
"version": "0.12.0",
"version": "0.12.2",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "exiled-exchange-2",
"version": "0.12.0",
"version": "0.12.2",
"dependencies": {
"electron-overlay-window": "3.3.1",
"uiohook-napi": "1.5.x"

View File

@@ -1,6 +1,6 @@
{
"name": "exiled-exchange-2",
"version": "0.12.0",
"version": "0.12.2",
"private": true,
"scripts": {
"dev": "node build/script.mjs",

View File

@@ -321,7 +321,9 @@
"getting_price_from": "來自 poe.ninja \u2026",
"you_have": "您有",
"stack": "堆疊",
"fix_complex_query": "請在設定中禁用\"偽屬性\"選項,或通過內置瀏覽器登錄。"
"fix_complex_query": "請在設定中禁用\"偽屬性\"選項,或通過內置瀏覽器登錄。",
"likely_price_fixed": "Mostly non-standard currency: ",
"filter_exalt_divine": "Filter by Exalt/Divine"
},
"settings": {
"title": "設置 - 流亡交易所 2",
@@ -439,4 +441,4 @@
"tip_29": "你可以在設定中添加自定義聊天命令快捷鍵。",
"tip_30": "我們不談論 Exiled Exchange 1。"
}
}
}

View File

@@ -303,7 +303,9 @@
"results_warn_tooltip": "Aktivieren Sie nur 'Exalted' im Online-Filter. Sie können diese Warnung in den Einstellungen deaktivieren.",
"results_warn_title": "Preis wahrscheinlich zu hoch",
"results_warn_message": "Handelsseite blendet Ergebnisse zwischen {0} und {1} Ex aus",
"fix_complex_query": "Deaktiviere \"Pseudo-Mods verwenden\" in den Einstellungen oder melde dich mit dem integrierten Browser an"
"fix_complex_query": "Deaktiviere \"Pseudo-Mods verwenden\" in den Einstellungen oder melde dich mit dem integrierten Browser an",
"likely_price_fixed": "Mostly non-standard currency: ",
"filter_exalt_divine": "Filter by Exalt/Divine"
},
"settings": {
"title": "Einstellungen - Exiled Exchange 2",
@@ -428,4 +430,4 @@
"tip_29": "Du kannst in den Einstellungen benutzerdefinierte Chat-Befehl-Hotkeys hinzufügen.",
"tip_30": "Wir reden nicht über Exiled Exchange 1."
}
}
}

View File

@@ -330,7 +330,9 @@
"results_warn_tooltip": "Enable Exalted Only in Online Filter. You can disable this alert in settings.",
"results_warn_title": "Price likely too high",
"results_warn_message": "Trade site hiding results between {0} and {1} ex",
"fix_complex_query": "Disable \"Use pseudo mods\" in settings or log in with builtin browser"
"fix_complex_query": "Disable \"Use pseudo mods\" in settings or log in with builtin browser",
"likely_price_fixed": "Mostly non-standard currency: ",
"filter_exalt_divine": "Filter by Exalt/Divine"
},
"settings": {
"title": "Settings - Exiled Exchange 2",
@@ -455,4 +457,4 @@
"tip_29": "You can add custom chat command hotkeys in the settings",
"tip_30": "We don't talk about Exiled Exchange 1"
}
}
}

View File

@@ -330,7 +330,9 @@
"results_warn_tooltip": "Habilitar solo Exaltados en el Filtro en línea. Puedes desactivar esta alerta en configuración.",
"results_warn_title": "Precio probablemente demasiado alto",
"results_warn_message": "El sitio de comercio oculta resultados entre {0} y {1} ex",
"fix_complex_query": "Disable \"Use pseudo mods\" in settings or log in with builtin browser"
"fix_complex_query": "Disable \"Use pseudo mods\" in settings or log in with builtin browser",
"likely_price_fixed": "Mostly non-standard currency: ",
"filter_exalt_divine": "Filter by Exalt/Divine"
},
"settings": {
"title": "Configuración - Exiled Exchange 2",
@@ -451,4 +453,4 @@
"tip_29": "You can add custom chat command hotkeys in the settings",
"tip_30": "We don't talk about Exiled Exchange 1"
}
}
}

View File

@@ -321,7 +321,9 @@
"getting_price_from": "poe.ninjaから\u2026",
"you_have": "既に所持しています",
"stack": "スタック",
"fix_complex_query": "設定で\"Use pseudo mods\"を無効にするか、組み込みブラウザでログインしてください"
"fix_complex_query": "設定で\"Use pseudo mods\"を無効にするか、組み込みブラウザでログインしてください",
"likely_price_fixed": "Mostly non-standard currency: ",
"filter_exalt_divine": "Filter by Exalt/Divine"
},
"settings": {
"title": "設定 - Exiled Exchange 2",
@@ -439,4 +441,4 @@
"tip_29": "設定でカスタムチャットコマンドのホットキーを追加できます",
"tip_30": "Exiled Exchange 1のことは話しません"
}
}
}

View File

@@ -318,7 +318,9 @@
"getting_price_from": "from poe.ninja \u2026",
"you_have": "가진 갯수",
"stack": "스택",
"fix_complex_query": "Disable \"Use pseudo mods\" in settings or log in with builtin browser"
"fix_complex_query": "Disable \"Use pseudo mods\" in settings or log in with builtin browser",
"likely_price_fixed": "Mostly non-standard currency: ",
"filter_exalt_divine": "Filter by Exalt/Divine"
},
"settings": {
"title": "세팅 - Exiled Exchange 2",
@@ -431,4 +433,4 @@
"tip_29": "세팅에서 채팅 명령어를 추가할 수 있습니다.",
"tip_30": "Exiled Exchange 1과 관련된 내용이 아닙니다."
}
}
}

View File

@@ -318,7 +318,9 @@
"stack": "Pilha",
"results_warn_tooltip": "Habilitar apenas Exaltados no Filtro online. Você pode desativar este alerta nas configurações.",
"results_warn_title": "Preço provavelmente muito alto",
"results_warn_message": "O site de comércio oculta resultados entre {0} e {1} ex"
"results_warn_message": "O site de comércio oculta resultados entre {0} e {1} ex",
"likely_price_fixed": "Mostly non-standard currency: ",
"filter_exalt_divine": "Filter by Exalt/Divine"
},
"settings": {
"title": "Configurações - Exiled Exchange 2",
@@ -389,4 +391,4 @@
"parse_error3": "(Possivelmente um novo termo ou palavra modificada do poe1)",
"bulk_exchange": "As taxas de troca em lote ainda não foram implementadas"
}
}
}

View File

@@ -336,7 +336,9 @@
"getting_price_from": "с poe.ninja \u2026",
"you_have": "В наличии",
"stack": "Стак",
"fix_complex_query": "Отключите \"Use pseudo mods\" в настройках или залогиньтесь во встроенном браузере"
"fix_complex_query": "Отключите \"Use pseudo mods\" в настройках или залогиньтесь во встроенном браузере",
"likely_price_fixed": "Mostly non-standard currency: ",
"filter_exalt_divine": "Filter by Exalt/Divine"
},
"settings": {
"title": "Настройки - Exiled Exchange 2",
@@ -454,4 +456,4 @@
"tip_29": "Вы можете добавить горячие клавиши для пользовательских команд чата в настройках",
"tip_30": "Мы не говорим о Exiled Exchange 1"
}
}
}

View File

@@ -168,7 +168,8 @@ export function initUiModFilters(
item.rarity === ItemRarity.Normal ? 100 : opts.searchStatRange,
statsByType: item.statsByType.map((calc) => {
if (
calc.type === ModifierType.Fractured &&
(calc.type === ModifierType.Fractured ||
calc.type === ModifierType.Desecrated) &&
calc.stat.trade.ids[ModifierType.Explicit]
) {
return { ...calc, type: ModifierType.Explicit };
@@ -188,10 +189,16 @@ export function initUiModFilters(
if (itemIsModifiable(item)) {
ctx.statsByType = ctx.statsByType.filter(
(mod) => mod.type !== ModifierType.Fractured,
(mod) =>
mod.type !== ModifierType.Fractured &&
mod.type !== ModifierType.Desecrated,
);
ctx.statsByType.push(
...item.statsByType.filter((mod) => mod.type === ModifierType.Fractured),
...item.statsByType.filter(
(mod) =>
mod.type === ModifierType.Fractured ||
mod.type === ModifierType.Desecrated,
),
);
}
@@ -562,12 +569,15 @@ export function finalFilterTweaks(ctx: FiltersCreationContext) {
}
for (const filter of ctx.filters) {
if (filter.tag === FilterTag.Fractured) {
if (
filter.tag === FilterTag.Fractured ||
filter.tag === FilterTag.Desecrated
) {
const mod = ctx.item.statsByType.find(
(mod) => mod.stat.ref === filter.statRef,
)!;
if (mod.stat.trade.ids[ModifierType.Explicit]) {
// hide only if fractured mod has corresponding explicit variant
// hide only if fractured or desecrated mod has corresponding explicit variant
filter.hidden = "filters.hide_for_crafting";
}
}

View File

@@ -36,7 +36,7 @@ const RESISTANCES_INFO = [
// ref: stat("#% to Cold and Lightning Resistances"),
// elements: ["cold", "lightning"],
// },
{ ref: stat("#% to Chaos Resistance"), elements: [""], chaos: true },
{ ref: stat("#% to Chaos Resistance"), elements: [], chaos: true },
{
ref: stat("#% to Fire and Chaos Resistances"),
elements: ["fire"],
@@ -114,7 +114,8 @@ const PSEUDO_RULES: PseudoRule[] = [
mutate(filter) {
if (
filter.sources.length === 1 &&
filter.sources[0].modifier.info.type === ModifierType.Crafted
(filter.sources[0].modifier.info.type === ModifierType.Rune ||
filter.sources[0].modifier.info.type === ModifierType.AddedRune)
) {
filter.hidden = "filters.hide_crafted_chaos";
} else {

View File

@@ -79,6 +79,11 @@
class="rounded px-1 bg-yellow-500 text-black ml-1"
>{{ t("in demand") }}</span
>
<span
v-if="!showSeller && result.gone"
class="rounded border px-1 border-red-500 text-red-500 ml-1"
>{{ t("Gone") }}</span
>
</td>
<td v-if="showSeller" class="px-2 whitespace-nowrap">
<span
@@ -94,6 +99,11 @@
class="rounded px-1 bg-yellow-500 text-black ml-1"
>{{ t("in demand") }}</span
>
<span
v-if="!showSeller && result.gone"
class="rounded border-2 px-1 border-red-500 text-red-500 ml-1"
>{{ t("Gone") }}</span
>
</td>
</tr>
</template>

View File

@@ -6,12 +6,7 @@
<span v-if="!list" class="text-gray-600">...</span>
<span v-else>{{ list.total }}{{ list.inexact ? "+" : "" }}</span>
</div>
<online-filter
v-if="list"
:by-time="true"
:filters="filters"
:currency-ratio="true"
/>
<online-filter v-if="list" :by-time="true" :filters="filters" />
<div class="flex-1"></div>
<trade-links v-if="list" :get-link="makeTradeLink" />
</div>
@@ -82,6 +77,23 @@
</template>
</tbody>
</table>
<div
v-if="isLikelyPriceFixed"
class="p-2 border-2 border-gray-600 rounded mt-2"
>
<div class="flex text-gray-400 leading-none">
<div class="mt-1">
{{ t(":likely_price_fixed") }}
</div>
<div class="flex-1" />
<div class="pl-2">
<button class="btn" @click="execFilterExaltDivine">
{{ t(":filter_exalt_divine") }}
<i class="fas fa-history text-xs" />
</button>
</div>
</div>
</div>
</div>
</div>
<ui-error-box v-else>
@@ -208,6 +220,9 @@ export default defineComponent({
execSearch: () => {
search(props.filters, props.stats, props.item);
},
execFilterExaltDivine: () => {
props.filters.trade.currency = "exalted_divine";
},
error,
errorFix: computed(() => {
console.log(error.value);
@@ -225,6 +240,27 @@ export default defineComponent({
// Shift key state and methods
isShiftPressed,
ItemCategory,
isLikelyPriceFixed: computed(() => {
// if it isn't filling listings it probably is fine
if (groupedResults.value.length <= 15) {
return false;
}
const commonCurrencyPrices = groupedResults.value.filter((res) => {
return (
// is a common currency
/chaos|exalted|divine/i.test(res.priceCurrency) ||
// is a common very low value currency (but not enhanced versions)
res.priceCurrency === "aug" ||
res.priceCurrency === "regal" ||
res.priceCurrency === "transmute"
);
});
if (commonCurrencyPrices.length < 5) {
return true;
}
return false;
}),
};
},
});

View File

@@ -80,7 +80,7 @@ export function useTradeApi() {
_searchResult.result.slice(0, 10),
{ accountName: AppConfig().accountName },
).then((results) => {
_fetchResults.push(...results.filter((res) => !res.gone));
_fetchResults.push(...results);
})
: Promise.resolve();
const r2 =
@@ -91,7 +91,7 @@ export function useTradeApi() {
{ accountName: AppConfig().accountName },
).then(async (results) => {
await r1.then(() => {
_fetchResults.push(...results.filter((res) => !res.gone));
_fetchResults.push(...results);
});
})
: Promise.resolve();
@@ -116,7 +116,7 @@ export function useTradeApi() {
_searchResult.result.slice(fetched, fetched + 10),
{ accountName: AppConfig().accountName },
).then((results) => {
_fetchResults.push(...results.filter((res) => !res.gone));
_fetchResults.push(...results);
});
fetched += 10;
await fetchMore();