Code Monkey home page Code Monkey logo

paimontray's Introduction

banner.png

PaimonTray

Codacy Badge GitHub commit activity GitHub Crowdin

English (United Kingdom) | 中文(简体,**)

Now, Paimon is on your Windows "system tray"!

PaimonTray is a Windows desktop app that can present Genshin Impact's real-time notes for users. Thanks to real-time notes, it becomes more convenient for the game players to be able to track a list of things as follows.

Click to expand/collapse
  • Daily commissions: completed with bonus rewards claimed?
  • Enemies of Note: any remaining Original Resin cost-halving opportunity this week?
  • Expeditions: show me the game characters dispatched!
  • Original Resin: fully replenished?
  • Parametric Transformer: can be used?
  • Realm Currency: limit reached?

Paimon now makes real-time notes available on your Windows taskbar corner (aka the notification area or "system tray"). It can be absolutely a pain in the arse without this tool app. What do you reckon? 🤪

PaimonTray also has some other highlights that may interest you. These include but not limited to:

Click to expand/collapse
  • Web page login method: log in to your account on the specific web page just like in a browser1 to add/update an account.
  • Alternative login method: logging in to your account by entering cookies manually is another way to add/update an account.
  • Not only the CN server (aka a miHoYo account) but also the global (aka a HoYoLAB account).
  • Multiple accounts2 with nifty management: all your added accounts can be updated, checked and refreshed, or removed.
  • Only your selected characters: all characters (aka Genshin Impact accounts) linked with a miHoYo/HoYoLAB account are there for you to select whether to allow retrieving real-time notes.
  • Configurable real-time notes refresh interval.
  • Imperceptible security check mechanism3.
  • Real-time notes reminders (will be available in the future).
  • Date and time rather than duration: e.g., Paimon converts the duration required to complete/fully replenish/... to an estimated date and time to make it clear.
  • Hints for "not yet unlocked" if Paimon can tell you.
  • Dark mode support.
  • Acrylic/Mica support4.
  • I18n (Internationalisation). Supported languages as follows:
    • English (United Kingdom)
    • English (United States) - default if no matches
    • Indonesia (Indonesia) - primarily contributed by bimagusti.p
    • 中文(简体,**)

🍳 Why not give it a try?

You can get PaimonTray from:

Channel Latest version Stable releases Pre-releases Auto-update
Microsoft Store GitHub release
Releases GitHub release (latest by date including pre-releases)
Q & A
  • Which channel should I select to get the app?

    Please always get the app from Microsoft Store if possible. It may provide a stabler support to handle prerequisites (e.g. the app's framework dependency).

    Downloading the PaimonTray_<version>.msixbundle file from the releases is an alternative option. You may select this channel if:

    • You do not use Windows 10/11 in S mode.
    • You cannot/hate to use Microsoft Store.
    • You do not care auto-updating.
    • You desire to try pre-releases.
    • You can handle prerequisites yourself when necessary.

    You may have the app from both channels installed at the same time depending on your Windows version and some system settings. However, it is not recommended, even though I would not point out any significant downside.

  • I cannot get the latest version as stated above from Microsoft Store.

    It depends on the Microsoft's app certification process, which may result in delays.

  • How to use the downloaded .msixbundle file to install the app?

    You can double-click the file to install the app via the App Installer. If it fails for any reason, you can try the following command at a PowerShell prompt. You may need an elevated PowerShell prompt if any error like "access is denied" occurs.

    # NOTE: If you are using PowerShell 7+, please run the following command before using Add-AppxPackage.
    # Import-Module Appx -UseWindowsPowerShell
    
    Add-AppxPackage PaimonTray_<version>.msixbundle
  • Why does the provided .msixbundle file a little large?

    Framework-dependent deployment has already reduced the file size significantly. The file bundles the multiple architecture versions of the installer into one entity.

❗ ATTENTION

May I have your attention pls? 🔥

  1. By 1 January 2023, everything looks good with Visual Studio 2022 (Version: 17.4.3) + .NET 7.0. PaimonTray is built with Windows UI Library (WinUI) 3, which ships with the Windows App SDK. You may find this link useful to load the project. Additionally, I would like to thankfully acknowledge all translators and the following authors/projects.

  2. Due to the use of the Windows App SDK, PaimonTray is expected to work well on Windows 10, version 1809 (build 17763) and later (arm64, x64, and x86). It is awfully safe to permit the app behaviour for any system prompt regarding safety confirmation. The app is signed, is not malware, and will never ever collect and upload any user privacy. Should you report a problem encountered, you may find issues useful.

    Warning

    Due to the limitation of the Windows App SDK, the following OS servicing update is required if PaimonTray is started with elevated privilege:

    Note

    There may be prompts asking you to download runtime, including but not limited to .NET Desktop Runtime and Windows App SDK runtime. Please download and install the runtime because PaimonTray applies framework-dependent deployment to reduce the installer file size.

  3. PaimonTray is designed to be a lightweight tool app focusing on Genshin Impact's real-time notes only. Performance is the very 1st priority, and stability is also significant. Continuous optimisation will be provided (hopefully), but you need to be aware that PaimonTray relies on undocumented miHoYo/HoYoLAB APIs heavily. Currently, there is no plan to make it a fully-fledged app. Anyway, you are welcome to shout out your ideas.

  4. The NuGet packages of the project are listed in the following table.

    Name Version
    H.NotifyIcon.WinUI 2.0.74
    Microsoft.Toolkit.Uwp.Notifications 7.1.3
    Microsoft.Windows.SDK.BuildTools 10.0.22621.755
    Microsoft.WindowsAppSDK 1.2.221209.1
    Serilog.Sinks.Async 1.5.0
    Serilog.Sinks.File 5.0.0

💡 Contributors, my pleasure!

  1. Code: create a branch named dev or whatever based on the main branch → coding → make a pull request (PR) for reviewers to peruse. 😘
  2. Internationalisation: thanks much for your translations in Crowdin! 😘

💎 Useful links

  • Alternative on macOS: PaimonMenuBar

    It is the inspiration for PaimonTray, and we use the same app icon. However, you are not expected to consider PaimonTray as "PaimonMenuBar for Windows", or vice versa. We have various design ideas and patterns for the target platforms, and independent development road maps.

  • Alternative extension for your browsers: paimon-webext

  • Alternative script on the serverless service, Docker, or the local machine: Genshin Dailynote Reminder

  • Fully-fledged alternative on Windows: Snap.Hutao

Good luck! 💖


1. This feature relies on Microsoft Edge WebView2 Runtime. PaimonTray will guide you properly if the runtime cannot be detected. You can also download the runtime by clicking here.

2. Currently up to 5 accounts due to performance consideration. It may be tweaked, as PaimonTray sharpens itself.

3. Currently, only CN server accounts require this mechanism, which can significantly reduce the frequency of manually completing a security check in the specific section of the Miyoushe app.

4. This feature depends on your Windows version and some system settings. The actual visual effects can vary.

paimontray's People

Contributors

arvinzjc avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

paimontray's Issues

Crash on x86 and arm64

Due to invalid publish profiles leading to the improper prerequisite of .NET Desktop Runtime's architecture, PaimonTray can crash on x86 and arm64 platforms.

Versions from V1.1-beta.1 to V1.2-beta.1 are affected.

Improper visibility of the info bar for informing of applying always using the alternative login method later on the accounts settings page

  1. The user has enabled always using the alternative login method.
  2. The user is currently on the page for adding/updating an account in the main window.
  3. Then, open the settings window and switch to the accounts settings page.
  4. The accounts settings page shows an info bar for informing of applying always using the alternative login method later, even though no change occurs on the specific setting.

Display completed weekly boss discounts rather than remaining

Should we consider inverting the weekly boss counter? Currently the app displays remaining discounts (0/3 = completed), but it might make more sense to show completed discounts instead (3/3 = completed) to be consistent with the daily quest counter (4/4 being completed).

For reference, Paimon tray apps on other platforms display the two counters consistently:

Happy to send a PR if this sounds reasonable.

Incompatible with Windows 10/11 in the S mode

During submitting to the Microsoft Store, Microsoft reported an issue that the app could terminate unexpectedly in response to user input on Windows 10 S. Indeed, I did not test the app on that Windows family. I will need to investigate this issue further to decide if the app should support the S mode in the future.

Current real-time refresh strategy can trigger a CAPTCHA

By the time submitting this issue, only the CN server would be affected. Any CN server account added in PaimonTray can be in an error state after trying to refresh the real-time notes for some times. You will then need to validate yourself as a human in the official miHoYo mobile app (我的 → 我的角色). Currently, I suggest any PaimonTray user sets the refresh interval to 1 hour in the settings.

I have read about the workarounds provided by some other similar tools. However, they can at present have little or limited effects. When I am free, I will need time to think thoroughly and make a decision. What I desire is at least for a period of time:

  • A relatively perfect solution so that no or almost no security checks appear.
  • Compatible with both CN and global servers to reduce complexity.

If you have any advice, please let me know. All will be taken into consideration.

Failed to add a miHoYo account in some cases

Both the web page login method and the alternative one can fail to add a CN server account in noticeable cases. This issue is caused by 2 primary reasons:

  • miHoYo is promoting the use of www.miyoushe.com rather than bbs.mihoyo.com with some changes to its cookie management. In detail, it has been noticed that:
    • Sometimes, there are no cookies satisfying the names ltuid and ltoken, leading to no required cookies for making a request to the undocumented APIs.
    • Some other cookies named account_id and cookie_token, or ltmid_v2 and ltoken_v2, or account_mid_v2 and cookie_token_v2 are HTTP only and cannot be retrieved by document.cookie. (You can still see them in some tools provided by modern browsers.)
  • Due to the personal principle that all unused cookies will not be stored and the consideration of storage limits in several extreme circumstances, PaimonTray currently only accepts and stores ltuid and ltoken cookies.

I plan to have the methods related to cookie management partially refactored. Since I am busy with my work now, I will make it done when I am free. Currently, you can try to log in to your account here and use document.cookie to get cookies.

Checking accounts always fail

This is a defect in my app's design of sending requests to the miHoYo API. I used to reckon that it is unnecessary to add the referer header, but it has been proved that it was wrong for some APIs since miHoYo seems to restrict the call to getFullUserInfo.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.