From 96ace35cbae2e3f812aeb065a6f16d341a6d37dd Mon Sep 17 00:00:00 2001 From: Alexander Drozdov Date: Sat, 17 Apr 2021 13:44:26 +0300 Subject: [PATCH] item text format change (initial support) --- src/assets/data/en/client_strings.ts | 1 + src/assets/data/ru/client_strings.ts | 1 + src/main/poll-clipboard.ts | 14 +++++++------- src/parser/Parser.ts | 17 ++++++++++------- src/parser/constants.ts | 1 + 5 files changed, 20 insertions(+), 14 deletions(-) diff --git a/src/assets/data/en/client_strings.ts b/src/assets/data/en/client_strings.ts index f70cecc0..36122918 100644 --- a/src/assets/data/en/client_strings.ts +++ b/src/assets/data/en/client_strings.ts @@ -8,6 +8,7 @@ const dict = { 'Divination Card': 'Divination Card', 'Map Tier: ': 'Map Tier: ', 'Rarity: ': 'Rarity: ', + 'Item Class: ': 'Item Class: ', 'Item Level: ': 'Item Level: ', 'Talisman Tier: ': 'Talisman Tier: ', 'Level: ': 'Level: ', diff --git a/src/assets/data/ru/client_strings.ts b/src/assets/data/ru/client_strings.ts index 437684c4..83a09951 100644 --- a/src/assets/data/ru/client_strings.ts +++ b/src/assets/data/ru/client_strings.ts @@ -10,6 +10,7 @@ const dict: TranslationDict = { 'Divination Card': 'Гадальная карта', 'Map Tier: ': 'Уровень карты: ', 'Rarity: ': 'Редкость: ', + 'Item Class: ': 'Класс предмета: ', 'Item Level: ': 'Уровень предмета: ', 'Talisman Tier: ': 'Уровень талисмана: ', 'Level: ': 'Уровень: ', diff --git a/src/main/poll-clipboard.ts b/src/main/poll-clipboard.ts index 4154dd4f..28ef4e93 100644 --- a/src/main/poll-clipboard.ts +++ b/src/main/poll-clipboard.ts @@ -17,7 +17,7 @@ export async function pollClipboard (): Promise { } let textBefore = clipboard.readText() - if (textBefore.startsWith(getTranslatedRarity())) { + if (textBefore.startsWith(getTranslatedFirstLine())) { textBefore = '' clipboard.writeText('') } @@ -26,7 +26,7 @@ export async function pollClipboard (): Promise { function poll () { const textAfter = clipboard.readText() - if (textAfter.startsWith(getTranslatedRarity())) { + if (textAfter.startsWith(getTranslatedFirstLine())) { clipboard.writeText(textBefore) isPollingClipboard = false clipboardPromise = undefined @@ -50,11 +50,11 @@ export async function pollClipboard (): Promise { return clipboardPromise } -function getTranslatedRarity () { - return TAG_RARITY[config.get('language')] +function getTranslatedFirstLine () { + return TAG_ITEM_CLASS[config.get('language')] } -const TAG_RARITY = { - en: 'Rarity: ', - ru: 'Редкость: ' +const TAG_ITEM_CLASS = { + en: 'Item Class: ', + ru: 'Класс предмета: ' } diff --git a/src/parser/Parser.ts b/src/parser/Parser.ts index 5948d8e0..287c3be5 100644 --- a/src/parser/Parser.ts +++ b/src/parser/Parser.ts @@ -66,9 +66,10 @@ export function parseClipboard (clipboard: string) { }, sections[0]) sections = sections.filter(section => section.length) - if (sections[0][1] === _$[C.CANNOT_USE_ITEM]) { - sections[1].unshift(sections[0][0]) // `Rarity: xxx` - sections.shift() + if (sections[0][2] === _$[C.CANNOT_USE_ITEM]) { + sections[0].pop() // remove CANNOT_USE_ITEM line + sections[1].unshift(...sections[0]) // prepend item class & rarity into second section + sections.shift() // remove first section where CANNOT_USE_ITEM line was } const parsed = parseNamePlate(sections[0]) if (!parsed) { @@ -153,11 +154,13 @@ function parseMap (section: string[], item: ParsedItem) { } function parseNamePlate (section: string[]) { - if (!section[0].startsWith(_$[C.TAG_RARITY])) { + if (section.length < 3 || + !section[0].startsWith(_$[C.TAG_ITEM_CLASS]) || + !section[1].startsWith(_$[C.TAG_RARITY])) { return null } - const rarityText = section[0].substr(_$[C.TAG_RARITY].length) + const rarityText = section[1].substr(_$[C.TAG_RARITY].length) let rarity: ItemRarity switch (rarityText) { case _$[ItemRarity.Currency]: @@ -187,8 +190,8 @@ function parseNamePlate (section: string[]) { const item: ParsedItem = { rarity, - name: markupConditionParser(section[1]), - baseType: (section.length >= 3) ? markupConditionParser(section[2]) : undefined, + name: markupConditionParser(section[2]), + baseType: (section.length >= 4) ? markupConditionParser(section[3]) : undefined, props: {}, isUnidentified: false, isCorrupted: false, diff --git a/src/parser/constants.ts b/src/parser/constants.ts index 53d6d269..0d5b63d9 100644 --- a/src/parser/constants.ts +++ b/src/parser/constants.ts @@ -26,6 +26,7 @@ export const WARLORD_ITEM = 'Warlord Item' export const TAG_MAP_TIER = 'Map Tier: ' export const TAG_RARITY = 'Rarity: ' +export const TAG_ITEM_CLASS = 'Item Class: ' export const TAG_ITEM_LEVEL = 'Item Level: ' export const TAG_TALISMAN_TIER = 'Talisman Tier: ' export const TAG_GEM_LEVEL = 'Level: '