diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 47a92f41..90eb6ddf 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -7,6 +7,7 @@ on: tags-ignore: - '**' paths-ignore: + - 'docs/**' - README.md jobs: diff --git a/.github/workflows/pages.yml b/.github/workflows/pages.yml new file mode 100644 index 00000000..d7ad8a59 --- /dev/null +++ b/.github/workflows/pages.yml @@ -0,0 +1,35 @@ +name: Docs + +on: + push: + branches: + - '**' + tags-ignore: + - '**' + paths: + - 'docs/**' + +jobs: + deploy: + runs-on: ubuntu-latest + permissions: + pages: write + id-token: write + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-node@v3 + with: + cache: npm + - run: npm ci + working-directory: ./docs + - run: npx vitepress build + working-directory: ./docs + - uses: actions/configure-pages@v2 + - uses: actions/upload-pages-artifact@v1 + with: + path: ./docs/.vitepress/dist + - id: deployment + uses: actions/deploy-pages@v2 diff --git a/.gitignore b/.gitignore index e31fa577..4eba55e4 100644 --- a/.gitignore +++ b/.gitignore @@ -20,5 +20,9 @@ yarn-error.log* *.sln *.sw? -#Electron-builder output -/dist_electron \ No newline at end of file +# Electron-builder output +/dist_electron + +# vitepress +docs/.vitepress/dist +docs/.vitepress/cache diff --git a/docs/.vitepress/config.js b/docs/.vitepress/config.js new file mode 100644 index 00000000..0b605e02 --- /dev/null +++ b/docs/.vitepress/config.js @@ -0,0 +1,74 @@ +import { defineConfig } from 'vitepress' + +const BASE = '/awakened-poe-trade/' + +export default defineConfig({ + title: 'Awakened PoE Trade', + description: 'App for price-checking items in Path of Exile', + base: BASE, + mpa: true, + head: [ + ['link', { rel: 'shortcut icon', type: 'image/png', href: `${BASE}favicon.png` }], + ['meta', { name: 'google-site-verification', content: 'R0xdvBEYFTxfn0RxHhquiA6tBgvshYv3ODk-oNSuq4g' }] + ], + markdown: { + theme: 'light-plus', + attrs: { + leftDelimiter: '{:', + rightDelimiter: '}' + } + }, + themeConfig: { + // logo: 'TODO', https://github.com/vuejs/vitepress/issues/1401 + appVersion: '3.21.10001', + github: { + releasesUrl: 'https://github.com/SnosMe/awakened-poe-trade/releases' + }, + socialLinks: [ + { + text: 'Discord', + color: '#7289DA', + link: 'https://github.com/SnosMe/awakened-poe-trade/issues/22' + }, + { + text: 'Patreon', + color: '#FF424D', + link: 'https://patreon.com/awakened_poe_trade' + }, + { + text: 'GitHub', + color: '#181717', + link: 'https://github.com/SnosMe/awakened-poe-trade' + } + ], + sidebar: [ + { + items: [{ + text: 'Download', + link: '/download' + }, { + text: 'Quick Start', + link: '/quick-start' + }] + }, + { + items: [{ + text: 'Chat commands', + link: '/chat-commands' + }, { + text: 'OCR Guide', + link: '/ocr-guide' + }] + }, + { + items: [{ + text: 'Common issues', + link: '/issues' + }, { + text: 'FAQ', + link: '/faq' + }] + } + ] + } +}) diff --git a/docs/.vitepress/theme/Layout.vue b/docs/.vitepress/theme/Layout.vue new file mode 100644 index 00000000..bbcedf11 --- /dev/null +++ b/docs/.vitepress/theme/Layout.vue @@ -0,0 +1,51 @@ + + + + + diff --git a/docs/.vitepress/theme/index.js b/docs/.vitepress/theme/index.js new file mode 100644 index 00000000..f9c7b489 --- /dev/null +++ b/docs/.vitepress/theme/index.js @@ -0,0 +1,8 @@ +import Layout from './Layout.vue' + +export default { + Layout, + enhanceApp({ app, router, siteData }) { + // ... + } +} diff --git a/docs/.vitepress/theme/style.css b/docs/.vitepress/theme/style.css new file mode 100644 index 00000000..72d3adb0 --- /dev/null +++ b/docs/.vitepress/theme/style.css @@ -0,0 +1,156 @@ +.markdown-body { + p, blockquote, hr, + ul, ol, dl, + table, + pre, + details { + margin-top: 0; + margin-bottom: 1rem; + } +} + +.markdown-body { + table { + display: block; + width: 100%; + overflow: auto; + + th { + font-weight: 600; + } + + th, td { + padding: 6px 13px; + border-width: 1px; + } + + tr { + &:nth-child(2n) { + background-color: #f7fafc; + } + } + } +} + +.markdown-body { + a { + color: #0366d6; + } + + a:hover { + text-decoration: underline; + } + + b, strong { + font-weight: 600; + } +} + +.markdown-body { + ul { + list-style-type: disc; + } + + ol { + list-style-type: decimal; + } + + ul, ol { + padding-left: 2rem; + + &.no-list { + padding: 0; + list-style-type: none; + } + } + + ul ul, + ul ol, + ol ol, + ol ul { + margin-top: 0; + margin-bottom: 0; + } + + li { + word-wrap: break-all; + } + + li > p { + margin-top: 1rem; + } + + li + li { + margin-top: 0.25rem; + } + + dl { + padding: 0; + + dt { + padding: 0; + margin-top: 1rem; + font-size: 1rem; + font-style: italic; + font-weight: bold; + } + + dd { + padding: 0 1rem; + margin-bottom: 1rem; + } + } +} + +.markdown-body { + h1, h2, h3, h4, h5, h6 { + margin-top: 1.5rem; + margin-bottom: 1rem; + font-weight: 600; + line-height: 1.25; + } + + h3 { + font-size: 1.25rem; + } +} + +.markdown-body { + code, + tt { + padding: 0.2em 0.4em; + margin: 0; + font-size: 0.85em; + background-color: #edf2f7; + border-radius: 0.25em; + color: #4a5568; + } + + del code { text-decoration: inherit; } + + [class^="language-"] { + .copy, .lang { display: none; } + } + + pre { + margin-bottom: 1rem; + padding: 0.85em 0; + overflow: auto; + background-color: #edf2f7; + border-radius: 0.25rem; + word-break: normal; + + code { + padding: 0; + display: flex; + flex-direction: column; + min-width: fit-content; + } + + .line { + display: inline-block; + padding: 0 1em; + min-width: fit-content; + } + } +} diff --git a/docs/chat-commands.md b/docs/chat-commands.md new file mode 100644 index 00000000..582b8215 --- /dev/null +++ b/docs/chat-commands.md @@ -0,0 +1,30 @@ +--- +title: Chat commands +--- + +Allows you to send arbitrary text to the chat. + +#### List of available commands #### +[https://www.poewiki.net/wiki/Chat_console](https://www.poewiki.net/wiki/Chat_console) + +#### Special rules #### +- Text that starts with `@last`, will be sent to the character of the last whisper received/sent. + ``` + Last whisper received: @From UltraSkillPlayer: Thank you. + Command: @last Good luck! + Sent text: @UltraSkillPlayer Good luck! + ``` +- Text that ends with `@last`, `@last` will be replaced with the character name of the last whisper received/sent. + ``` + Last whisper received: @From UltraSkillPlayer: Can I visit your Toucan hideout? + Command: /invite @last + Sent text: /invite UltraSkillPlayer + ``` + +#### FAQ #### +1. - Q: Something doesn't work, what text was sent to the game? + - A: Open chat with `Enter`, and then press `ArrowUp` key two times. +2. - Q: How to leave party? + - A: Use `/kick MyCharacterName`, don't forget to update character name each time you create or change it. +3. - Q: I want to chain commands and send them by one hotkey. + - A: This is not allowed by PoE ToS. diff --git a/docs/download.md b/docs/download.md new file mode 100644 index 00000000..7dfadb8e --- /dev/null +++ b/docs/download.md @@ -0,0 +1,40 @@ +--- +title: Download +--- + + + +You can download Awakened Poe Trade here. Any other mirrors are not known +to the developer, downloading from them may be unsafe. + +| Download | Automatic update | Startup time | +|----------|------------------|--------------| +| Windows 11 (installer) | ✔ | Fast | +| Windows 11 (portable) | ❌ | Slow | +| Ubuntu 20.04 | ✔ | Fast | + +Latest version is {{ theme.appVersion }} +{:.text-sm} + +--- + +### Requirements + +- PoE display mode + - ✔ Windowed + - ✔ Windowed Fullscreen + - ❌ Fullscreen +- PoE language + - ✔ English + - ✔ Russian + - ❌ Portuguese, Thai, French, German, Spanish, Korean + +No Administrator rights required, but\ +⚠ **If you run PoE client as Admin, OS security boundaries take effect. +In order for Awakened PoE Trade to have access to the PoE window, it must be started with Administrator rights.** + +❌ **Not compatible with "GeForce Now" or any other cloud gaming service that do not forward clipboard data.** diff --git a/docs/faq.md b/docs/faq.md new file mode 100644 index 00000000..0b6780ec --- /dev/null +++ b/docs/faq.md @@ -0,0 +1,60 @@ +--- +title: FAQ +--- + +- **Where can I change settings, league?** + + Open Path of Exile and press overlay key `Shift + Space`. Click on the button with cog icon there. + ![](https://i.imgur.com/81L9Cp0.png) + +- **Where can I find log file?** + + Find app icon in the tray. + ![](https://i.imgur.com/zhi2iBH.png) + +- **Is this app approved by GGG? Can I get banned for using it?** + + There are no approved apps created by community. If app complies with the [game ToS](https://www.pathofexile.com/legal/terms-of-use-and-privacy-policy), does one server action per button press + and doesn't interact with the game client itself (injecting into the process, changing the process memory aka cheats) + it can be considered safe. + + If you get banned, the first action is to [Contact Support](https://www.pathofexile.com/support) + +- **I want to `Ctrl + Scroll` stash tabs without zooming my character.** + + You can disable "Mousewheel Zoom" in PoE settings (Options -> UI -> 3-rd check mark starting from the bottom) + ![](https://imgur.com/WJcChYb.png) + + Don't worry, you still can use keys + ![](https://imgur.com/F3GA0f0.png) + +- **Will my language be supported?** + + No plans to support other languages. Why is there Russian language? + Because: + 1 - this is the native language of developer; + 2 - helps to create cleaner abstractions in code and test it; + 3 - has the most active community, at least according to the numbers I can measure. + + 09/21/2020 + + ![](https://imgur.com/HujBLLR.png) + +- **I downloaded a zip with a bunch of files, but no .exe inside?** + + You have downloaded the source code, download [here](/download) + +- **I can't price check items in Divination Card stash tab.**\ + **I can't price check rewards in Curio Display room (Heist Blueprints).**\ + **I can't check modifiers of the maps proposed by Kirac.** + + Yes, you can't. The game doesn't copy anything to clipboard when pressing `Ctrl + C` in these places. + And as mentioned in the [Quick Start](/quick-start), the whole thing how + app works based on text of item in clipboard. + + Regarding Divination Card stash tab, you can use another 3rd-party apps that + price check your stash tabs (e.g. [Exilence Next](https://github.com/viktorgullmark/exilence-next/#readme)) + +- **What does the orange/red circle (next to the item's listed time) mean?** + + It shows player's status: AFK/Offline respectively. diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 00000000..ad0b54fa --- /dev/null +++ b/docs/index.md @@ -0,0 +1,4 @@ +--- +--- + +![](https://imgur.com/uH9xs4R.png){:.rounded} diff --git a/docs/issues.md b/docs/issues.md new file mode 100644 index 00000000..3c0061f8 --- /dev/null +++ b/docs/issues.md @@ -0,0 +1,53 @@ +--- +title: Common issues +--- + +1. Read the [requirements](/download) again. + + Please do it. Did you know that updating Geforce Experience can reset game + video settings to "optimized profile" and silently enable Fullscreen mode? + +2. [Check the log file](/faq). + +3. Are you playing with Vulkan renderer? Update GPU drivers. + + If Awakened works for you with DirectX11 renderer, + then problem is old Vulkan drivers for sure. + +4. Delete `%appdata%\awakened-poe-trade` + + If needed, backup `apt-data` folder with your configuration inside.\ + +5. **Close all applications** that you can in tray and task manager. + + Launch them later one at a time to identify **conflict**. + +6. Restart Awakened PoE Trade. + + *(don't forget to quit first, otherwise launching second instance will do nothing).* + +7. Enable detailed logs (Settings>Debug), restart tool, try to price check item, open the log file again. + +8. As last resort, go to Discord. But if you don't describe something specific about + your problem, **you will most likely be directed to this page**. + + If you've resolved your issue, feel free to share it on Discord and + I'll update these steps accordingly. + +--- + +- [How to remove the stopwatch in center of screen?](https://github.com/SnosMe/awakened-poe-trade/issues/219) +- [Sends a whisper when doing price-check](https://github.com/SnosMe/awakened-poe-trade/issues/178) + +## Windows + +- [Nothing happens when I try to price check](/nothing-happens) +- [Can't open settings via tray icon when game is active](https://github.com/SnosMe/awakened-poe-trade/issues/265) +- [Installation stuck at ~50%](https://github.com/SnosMe/awakened-poe-trade/issues/205) +- [Says the update will be installed after restart, but never does](https://github.com/SnosMe/awakened-poe-trade/issues/278) +- [Self-uninstalled after update](https://github.com/SnosMe/awakened-poe-trade/issues/36) + +## Linux + +- [Tray icon is not shown](https://github.com/SnosMe/awakened-poe-trade/issues/106) +- [Screen is black](https://github.com/SnosMe/awakened-poe-trade/issues/185) diff --git a/docs/nothing-happens.md b/docs/nothing-happens.md new file mode 100644 index 00000000..8160a634 --- /dev/null +++ b/docs/nothing-happens.md @@ -0,0 +1,30 @@ +--- +title: Nothing happens +--- + +To understand why nothing is happening, you need to open the logs. +Most problems are easy to fix once you read them. But there is one that doesn't have a quick fix: +``` +warn [ClipboardPoller] No item text found. +``` + +The diagram below shows what APT does when the hotkey is pressed. + +![](https://i.imgur.com/gujMSBG.png) + +As you may have noticed, compared to other third-party PoE tools APT uses "Advanced Descriptions" key. +![](https://i.imgur.com/fjLSIz9.png) + +`Ctrl + Alt + C` is a frequent victim of global keyboard shortcuts. The sad part, if you are reading this, is that they used a dirty way to implement global shortcuts. + +**Your goal is to make PoE copy the item to the clipboard when you press** `Ctrl + Highlight + C` (if it's already working, ignore this article, your problem is somewhere else). + + + +As a starting point, common programs reported by players were: +- ASUS GPU Tweak II +- Radeon™ Software +- Display Pilot (BenQ) +- AHK scripts diff --git a/docs/ocr-guide.md b/docs/ocr-guide.md new file mode 100644 index 00000000..fe26b697 --- /dev/null +++ b/docs/ocr-guide.md @@ -0,0 +1,47 @@ +--- +title: OCR Guide +--- + +This guide will help you to setup and perform OCR using Awakened PoE Trade. + +### OCR Setup ### + +1. Download a 6MB archive with OCR files from [here](https://github.com/SnosMe/awakened-poe-trade/releases/download/v3.20.10007/cv-ocr.zip). + +2. Open the folder with configuration file. + ![](https://i.imgur.com/z5WI9Fx.png) + +3. Extract "cv-ocr" folder, inside the archive, into it.\ + You should have the following structure: + + ``` + apt-data/ + ├── config.json + └── cv-ocr/ + ├── eng.traineddata + ├── ... more files ... + └── tesseract-core-simd.wasm + ``` + +4. Restart the application. + +### Widget configuration ### + +1. Open the widget by clicking near the Settings button. + ![](https://i.imgur.com/Y0RJune.png) + + I prefer to place it at the bottom. + ![](https://i.imgur.com/bkNDKYg.png) + +2. Edit the widget and assign a hotkey. + ![](https://i.imgur.com/GeOMcal.png) + +### Rules to follow before pressing the hotkey ### + +1. Both icons should be fully visible. + ![](https://i.imgur.com/Mu6B6it.png) + +2. The text should not be occluded by health bar or other elements. + ![](https://i.imgur.com/cM2i3Rk.png) + +Happy hunting! diff --git a/docs/package.json b/docs/package.json new file mode 100644 index 00000000..c6d88946 --- /dev/null +++ b/docs/package.json @@ -0,0 +1,24 @@ +{ + "scripts": { + "dev": "vitepress dev" + }, + "devDependencies": { + "postcss": "^8.2.14", + "tailwindcss": "3.x.x", + "vitepress": "^1.0.0-beta.1", + "vue": "^3.3.4" + }, + "postcss": { + "plugins": { + "tailwindcss/nesting": {}, + "tailwindcss": { + "config": { + "content": [ + "./.vitepress/**/*.{js,vue}", + "./**/*.md" + ] + } + } + } + } +} diff --git a/docs/public/favicon.png b/docs/public/favicon.png new file mode 100644 index 00000000..8bbb2d2b Binary files /dev/null and b/docs/public/favicon.png differ diff --git a/docs/quick-start.md b/docs/quick-start.md new file mode 100644 index 00000000..1fd73185 --- /dev/null +++ b/docs/quick-start.md @@ -0,0 +1,29 @@ +--- +title: Quick Start +--- + +#### First of all, how does it work? {:style="margin-top: 0;"} + +When you press `Ctrl + C` Path of Exile copies the item's text (under cursor, if any) to the clipboard. +All that remains is to parse text in Awakened PoE Trade and show to you in a fancy way. + +### Usage + +- Default hotkeys +{:.no-list} + - Press `Ctrl + D` to check the price of the item\ + *Hold CTRL if you do not want the window to close. As soon as the cursor is within the window, you can release CTRL.*{:.text-sm} + - Press `Ctrl + Alt + D` to check the price of the item\ + *Opens a window, but does not hide it automatically when moving the mouse*{:.text-sm} + - `Alt + W` to open the item on Wiki + - `Shift + Space` to access overlay with widgets +- Default chat commands + - Press `F5` to go to hideout + - Press `F9` to exit to Character selection screen +- Other + - `Ctrl + MouseWheel` to scroll through stash tabs + +--- + +Some functions don't have hotkeys assigned by default to avoid conflicts on your system. +You can set them and change default hotkeys in the [Settings](/faq). diff --git a/repo.code-workspace b/repo.code-workspace index ffef8be8..381ab04b 100644 --- a/repo.code-workspace +++ b/repo.code-workspace @@ -8,6 +8,10 @@ "name": "main", "path": "main" }, + { + "name": "docs", + "path": "docs" + }, { "name": "root", "path": "." @@ -17,6 +21,7 @@ "files.exclude": { "main/": true, "renderer/": true, + "docs/": true, "dist/": true } }