Paimon's now in your macOS menu bar

Overview
logo

PaimonMenuBar

Paimon's now in your menu bar!

Use Swift macOS 12.0+ GitHub Release

Demo

Screenshot

What's this?

Genshin Impact has got a complicated daily system, consisting of:

  • 4 Daily commisions.
  • 5 Expeditions.
  • 3~6 Weekly bosses.
  • and most importantly - Resin - capped at 160.

Keeping track of these things daily to decide whether it is time to log into Genshin Impact is a pain-in-the-ass. Hence, I present: PaimonMenuBar.

PaimonMenuBar is a native SwiftUI app living only in your macOS menu bar. Paimon will periodically pulls data from the Mihoyo API to update your latest in-game statistics - so you can decide whether it's time to continue the grind in that stupid artifact domain ;).

Download

GitHub Release

TO-DO

  • Menu bar of varying height.
  • Configurable data refresh rate.
  • Start at login.
  • i18n support for at least Simplified Chinese and English.
  • Manual refresh button.
  • Code-sign and publish as .dmg.
  • Backward-compatibility for macOS 11.0.
  • Auto-updates and check for update.
  • Support for multiple accounts.
  • Support for hoyolab? (Maybe)

Credits

License

MIT

made with ❤️ by spencer woo
Comments
  • Any plan to support macOS 11 ?

    Any plan to support macOS 11 ?

    or even 10.15 ?

    Swift concurrency support back-port to macOS 10.15/iOS 13.

    And I can even install Xcode 13.3 on macOS 11, with some tweak :)

    If you need help, maybe I can have a fork and PR in this weekend.

    enhancement 
    opened by dreampiggy 6
  • Add support for macOS 11

    Add support for macOS 11

    @spencerwooo Using Swift concurrency backward support Using Kingfisher instead of AsyncImage Using Compatibility API for the new API like formatted, localized, URLSession

    Screenshot:

    enhancement 
    opened by dreampiggy 5
  • Can't get cookie from miyoushe

    Can't get cookie from miyoushe

    Mihoyo seems to have updated the website and it seems the cookie is different from the previous version. Is there some other way to get the cookie and make the PaimonMenuBar work? Thx a lot.

    wontfix 
    opened by kiaia 3
  • fix macOS 13: cannot open preference

    fix macOS 13: cannot open preference

    Fix a catastrophic problem in macOS 13+: cannot open Preferences panel. This is caused by Apple renamed 'Preferences' to 'Settings', and renamed correspondingly the action sent by NSApp. I unfortunately don't have a environment to try on macOS 12-, thus haven't test that.

    bug 
    opened by wu-qing-157 3
  • Data fetching not working / 数据无法更新

    Data fetching not working / 数据无法更新

    it works fine before, but now it just stop refresh and even if the cookie is correct, it still sats that it is wrong, maybe something changes in the mihoyo's website i.e miyoushe and hoyo lab.

    bug 
    opened by mma345 2
  • Cookie issue

    Cookie issue

    i have been trying forever to fix this, but whenever i input my cookie, it always just shows image my server is asia, and the browser i used to get my cookie is Brave. regards.

    question 
    opened by voltaicspy 2
  • feat: Remove clear cache

    feat: Remove clear cache

    Currently the clear cache button is confusing. After click, the status bar changes from [Icon] xx/160 to [Icon] for a long time (as long as 8 minutes), until next request fetch. This makes it not very useful for users.

    This PR removes the clear cache button. Instead, the cache is cleared with "Test Config" is clicked -- User will observe the status text becomes [Icon] for a short-while, and then becomes [Icon] xx/160. Hope this provide enough perception that a data is "refreshed".

    Additionally, the update time is presented in the UI, looks like:

    image

    Note: this PR is based on https://github.com/spencerwooo/PaimonMenuBar/pull/8 so that it should be merged first.

    enhancement 
    opened by breezewish 2
  • Feature Request: Hide notifications of

    Feature Request: Hide notifications of "fetching error" when network unavailable

    When disconnected from network, Paimon still fetches game records then keeps bothering me with fetching errors. May just ignore those errors when network disconnected? 6f79a31eefa2ac77.jpg

    bug 
    opened by lx200916 1
  • refactor: use sindresorhus/defaults to simplify the code base

    refactor: use sindresorhus/defaults to simplify the code base

    Thanks to https://github.com/sindresorhus/Defaults now it is possible to only write default value once! (Example)

    There is also no more manual UserDefaults management. The change can be detected by using Defaults.observe (See GameRecordUpdater).

    As a refactoring work, this PR does not introduce user-visible changes.

    enhancement 
    opened by breezewish 1
  • Fetch is always failed if server is untouched

    Fetch is always failed if server is untouched

    Reproduce workflow:

    1. Clear all saved user defaults by using defaults delete spencerwoo.PaimonMenuBar
    2. Start App
    3. Enter UID
    4. Enter Cookie
    5. Click "Test config"

    A "Failed to fetch" will be shown. If I do this further, then the config test will be succeeded:

    1. Click "天空岛" (which is the default selected)
    2. Click "Test config" again
    bug 
    opened by breezewish 1
  • fix: use native view in NSStatusItem

    fix: use native view in NSStatusItem

    Changes:

    • Fix #2

      MenuBarResinView is removed. Now the StatusItem and MenuFrame height is updated in AppDelegate.updateStatusBar. Self-updates (like network active update and periodic update) are moved from MenuBarResinView to GameRecordViewModel.

      Due to the change of text template, now there is only one icon displayed, when cookie is not configured:

      image

      Feel free to leave ideas if it could be better (maybe displaying "Unknown")?

    • Resolve #3

      Replaced fragile resin images to be a bit larger, to better fit other OS icons. Applied isTemplate so that the icon displayed in the menu bar are automatically updated according to system theme.

      This is what it looks like now:

      image image

      The icon in the menu is unchanged, keeping colorful:

      image
    bug enhancement 
    opened by breezewish 1
Releases(v1.12.128)
  • v1.12.128(Dec 8, 2022)

    This is an incremental update from v1.12.126.

    🚀 Important update

    Due to how Mihoyo updated this API, our original method of updating every 8 minutes WILL trigger a captcha.

    To workaround this, PaimonMenuBar now updates your data locally as time passes, instead of waiting for an API request - this means Paimon would require only a data update (API request) every 1 to 3 hours only - to keep data fresh.

    MAKE SURE to reconfigure this inside preferences (update interval) after updating to this release, to update your local settings:

    We recommend 2 hours interval.

    🆕 New: How Paimon updates its data?

    Paimon will only fetch from the remote API when:

    • The interval timer (set inside preferences) of 1-6 hrs is triggered.
    • You click on the menubar icon to check stats manually.
    • Internal throttle of 8 minutes per request is not triggered.

    In all other cases, Paimon will either not update, or only self-update locally each minute (which is an estimate based on elapsed time from last update time), including resin counter and expedition progress.

    Others

    • You can now configure whether or not to show the resin counter beside the resin icon in your menubar (#18)

    • From this version on, Paimon will not send notifications each time the API fails to fetch (#21). Instead, a new status icon in the dropdown would indicate whether the last update was successful. If not, then you may need to check for captchas (in the official APP).

    Source code(tar.gz)
    Source code(zip)
    PaimonMenuBar.1.12.dmg(5.37 MB)
  • v1.12.126(Dec 7, 2022)

    This release should be superseded by v1.12.128.

    Original release notes.

    🚀 Important update

    Due to how Mihoyo updated this API, our original method of updating every 8 minutes WILL trigger a captcha.

    To workaround this, PaimonMenuBar now updates your data locally now as time passes, instead of waiting for an API request - this means Paimon would require only a data update (API request) every 1 to 3 hours only - to keep data fresh.

    MAKE SURE to reconfigure this inside preferences (update interval) after updating to this release, to update your local settings:

    CleanShot 2022-12-08 at 01 32 21

    We recommend 2 hours interval.

    Others

    • You can now configure whether or not to show the resin counter beside the resin icon in your menubar (#18)

      CleanShot 2022-12-08 at 01 33 02

    • From this version on, Paimon will not send notifications each time the API fails to fetch (#21). Instead, a new status icon in the dropdown would indicate whether the last update was successful. If not, then you may need to check for captchas (in the official APP).

      CleanShot 2022-12-08 at 01 38 57

    Source code(tar.gz)
    Source code(zip)
    PaimonMenuBar.1.12.dmg(5.37 MB)
  • v1.11.124(Oct 9, 2022)

  • v1.10.123(Aug 11, 2022)

  • v1.9.120(Jun 9, 2022)

    UI Menu changes

    • Monospaced font is replaced with Avenir Next.

      normal screenshot
    • Added a new UI for uninitialized apps.

      uninitialized screen

      In the meantime, use this to delete all UserDefaults to reconfigure the app (and check out the new view for yourself :)).

      defaults delete spencerwoo.PaimonMenuBar
      

    Notifications

    configure notification

    Paimon will now try to notify you on:

    • Fetch failure.
    • Parametric Transformer ready.

    You can control the latter behaviour under this toggle.

    Source code(tar.gz)
    Source code(zip)
    PaimonMenuBar.1.9.dmg(4.36 MB)
  • v1.8.114(Jun 7, 2022)

  • v1.7.113(May 13, 2022)

  • v1.7.111(May 9, 2022)

  • v1.6.110(May 1, 2022)

  • v1.5.108(Apr 30, 2022)

    Major bug-fix for PaimonMenuBar:

    • Resolve performance impact of PaimonMenuBar by rendering the NSStatusItem view natively #4
    • Fix an issue where the ProgressView() loading icon is always rendered #6
    • Fix an issue where upon clearing UserDefaults, the server config does not fallback to default cn_gf01

    Improvements:

    • Use monochrome resin icon so that the status icon feels more native
    Source code(tar.gz)
    Source code(zip)
    PaimonMenuBar.1.5.dmg(3.22 MB)
  • v1.4.106(Apr 28, 2022)

  • v1.4.104(Apr 26, 2022)

  • v1.3.103(Apr 25, 2022)

  • v1.2.102(Mar 31, 2022)

  • v1.1.102(Mar 31, 2022)

  • v1.1.101(Mar 30, 2022)

  • v1.0.103(Mar 29, 2022)

    1. This version does not have auto-updating yet.

    2. I did not sign the .app, so you may need to run:

      sudo xattr -r -d com.apple.quarantine /Applications/PaimonMenuBar.app
      
    3. You need to unlock the resin system, daily commissions, expeditions, and the serenitea teapot before using the app.

    Source code(tar.gz)
    Source code(zip)
    PaimonMenuBar.1.0.dmg(2.14 MB)
Owner
Spencer Woo
Cheers. 🍻
Spencer Woo
Control your display's brightness from the macOS menu bar. Simple and easy to use.

MonitorControl Lite Control your display's brightness from the macOS menu bar. Simple and easy to use. About MonitorControl Lite is a simplified versi

null 62 Dec 11, 2022
Let's put notification Messages icon on menu bar of your macOS

DockBar DockBar is just a simple app that show messages icon on your status bar when you have unread messages. This app is very useful for people who

Bastard.y 5 Aug 16, 2022
📷A simple and convenient way to manage your webcam's picture settings, right from your menu bar

Viewfinder A simple and convenient way to manage your webcam's picture settings, right from your menu bar. About • Download • Building from Source • C

Lukas Romsicki 31 Dec 25, 2022
a simple macOS menu bar application that shows you the lyrics of current playing spotify track.

lyricsify a simple macOS menu bar application that shows you the lyrics of current playing spotify track.

Krisna Pranav 4 Sep 16, 2021
A menu bar app to change input source swiftly using shortcuts on macOS Big Sur or later.

Source Switcher A menu bar app to change input sources swiftly using shortcuts on macOS Big Sur and later. View screenshots Introduction This app uses

null 34 Nov 9, 2022
macOS (>11.0) Menu Bar App for WLED

wledQuickControl functions Left click on the Menubar icon will toggle the WLED device On/Off Right click on the Menubar icon: will update the icon/sli

satrik 15 Nov 8, 2022
SwiftBar - Powerful macOS menu bar customization tool

SwiftBar - Powerful macOS menu bar customization tool

SwiftBar 2k Jan 8, 2023
adb-tools-mac is a macOS menu bar app written in SwiftUI for common adb tools.

adb-tools-mac is a macOS menu bar app written in SwiftUI for common adb tools.

Naman Dwivedi 930 Jan 2, 2023
Ambar is a macOS Menu Bar app built with SwiftUI.

Ambar Ambar is a macOS Menu Bar app built with SwiftUI. It is a template project which means that it can be used as a starting point for a new Menu Ba

null 16 Nov 14, 2022
macOS menu bar app that displays the current status of SIP (System Integrity Protection)

MenuBarSIPDetector This is a DEMO app for my Swift library TINURecovery and it is a macOS menu bar app that displays the current status of SIP (System

null 19 Dec 18, 2022
Weather Dock is a MacOS headless application that shows popover view under the menu bar with weather info.

Weather Dock Weather forecast in MacOS menu bar Weather Dock is a MacOS headless application that shows popover view under the menu bar with weather i

Alexander Stepanischev 8 Dec 15, 2022
Check load of each core of CPU on your Mac menu bar.

Gaufre Gaufre ?? is the app for checking load of each core of CPU on your Mac menu bar. The application name was decided to be Gaufre, derived from si

null 4 Jun 26, 2022
SwiftySideMenu is a lightweight and easy to use side menu controller to add left menu and center view controllers with scale animation based on Pop framework.

SwiftySideMenu SwiftySideMenu is a lightweight, fully customizable, and easy to use controller to add left menu and center view controllers with scale

Hossam Ghareeb 84 Feb 4, 2022
A Slide Menu, written in Swift, inspired by Slide Menu Material Design

Swift-Slide-Menu (Material Design Inspired) A Slide Menu, written in Swift 2, inspired by Navigation Drawer on Material Design (inspired by Google Mat

Boisney Philippe 90 Oct 17, 2020
Slide-Menu - A Simple Slide Menu With Swift

Slide Menu!! Весь интерфейс создан через код

Kirill 0 Jan 8, 2022
EasyMenu - SwiftUI Menu but not only button (similar to the native Menu)

EasyMenu SwiftUI Menu but not only button (similar to the native Menu) You can c

null 10 Oct 7, 2022
Swift-sidebar-menu-example - Create amazing sidebar menu with animation using swift

 SWIFT SIDEBAR MENU EXAMPLE In this project I create a awesome side bar menu fo

Paolo Prodossimo Lopes 4 Jul 25, 2022
Hamburger Menu Button - A hamburger menu button with full customization

Hamburger Menu Button A hamburger menu button with full customization. Inspired by VinhLe's idea on the Dribble How to use it You can config the looks

Toan Nguyen 114 Jun 12, 2022
The elegant yet functional dropdown menu, written in Swift, appears underneath the navigation bar to display a list of defined items when a user clicks on the navigation title.

Introduction The elegant yet functional dropdown menu, written in Swift, appears underneath the navigation bar to display a list of defined items when

Tho Pham 2.7k Dec 28, 2022