mirror of
				https://github.com/Kvan7/Exiled-Exchange-2.git
				synced 2025-10-30 22:28:11 +00:00 
			
		
		
		
	Compare commits
	
		
			10 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | 7c62289019 | ||
|   | 7abeb85016 | ||
|   | a6f6eb1d4f | ||
|   | 5a34b0f5f8 | ||
|   | 72c3a1a857 | ||
|   | 3732270de9 | ||
|   | 1992e28636 | ||
|   | 5fd444c04f | ||
|   | f3e1c7fee6 | ||
|   | cba5ba0b55 | 
							
								
								
									
										7
									
								
								.github/ISSUE_TEMPLATE/bug-report.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										7
									
								
								.github/ISSUE_TEMPLATE/bug-report.yml
									
									
									
									
										vendored
									
									
								
							| @@ -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 | ||||
|   | ||||
| @@ -1,6 +1,6 @@ | ||||
| #  Exiled Exchange 2 | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|   | ||||
| @@ -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' | ||||
|     }, | ||||
|   | ||||
| @@ -12,8 +12,7 @@ files: | ||||
| extraMetadata: | ||||
|   main: "main.js" | ||||
| nsis: | ||||
|   oneClick: false | ||||
|   allowToChangeInstallationDirectory: true | ||||
|   oneClick: true | ||||
| win: | ||||
|   target: | ||||
|     - "nsis" | ||||
|   | ||||
							
								
								
									
										4
									
								
								main/package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										4
									
								
								main/package-lock.json
									
									
									
										generated
									
									
									
								
							| @@ -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" | ||||
|   | ||||
| @@ -1,6 +1,6 @@ | ||||
| { | ||||
|   "name": "exiled-exchange-2", | ||||
|   "version": "0.12.0", | ||||
|   "version": "0.12.2", | ||||
|   "private": true, | ||||
|   "scripts": { | ||||
|     "dev": "node build/script.mjs", | ||||
|   | ||||
| @@ -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。" | ||||
|   } | ||||
| } | ||||
| } | ||||
|   | ||||
| @@ -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." | ||||
|   } | ||||
| } | ||||
| } | ||||
|   | ||||
| @@ -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" | ||||
|   } | ||||
| } | ||||
| } | ||||
|   | ||||
| @@ -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" | ||||
|   } | ||||
| } | ||||
| } | ||||
|   | ||||
| @@ -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のことは話しません" | ||||
|   } | ||||
| } | ||||
| } | ||||
|   | ||||
| @@ -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과 관련된 내용이 아닙니다." | ||||
|   } | ||||
| } | ||||
| } | ||||
|   | ||||
| @@ -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" | ||||
|   } | ||||
| } | ||||
| } | ||||
|   | ||||
| @@ -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" | ||||
|   } | ||||
| } | ||||
| } | ||||
|   | ||||
| @@ -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"; | ||||
|       } | ||||
|     } | ||||
|   | ||||
| @@ -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 { | ||||
|   | ||||
| @@ -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> | ||||
|   | ||||
| @@ -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; | ||||
|       }), | ||||
|     }; | ||||
|   }, | ||||
| }); | ||||
|   | ||||
| @@ -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(); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user