Coder Social home page Coder Social logo

worthbak / inventory-checker-app Goto Github PK

View Code? Open in Web Editor NEW
115.0 4.0 24.0 10.94 MB

A macOS app for checking Apple Store inventory

Home Page: https://worthbak.github.io/inventory-checker-app/

License: GNU General Public License v3.0

Swift 99.55% Rich Text Format 0.45%

inventory-checker-app's Introduction

inventory-checker-app

InventoryWatch 2.0 has been released! This repository will remain available for any who are curious, but is no longer actively maintained. Please check out the link below to learn more about our updates and advancements in InventoryWatch 2.0 (including web access!), and to download our new app.

Read more here: https://worthbak.github.io/inventory-checker-app/

inventory-checker-app's People

Contributors

andrebriggs avatar bdbergeron avatar pedro-teixeira avatar worthbak 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  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

inventory-checker-app's Issues

iPhone 14 SKUs

Placeholder issue for adding the iPhone 14 / Pro SKUs

Improve app-update experience

Possible solution: query Github API and compare latest version with app version. If they don't match, prompt user to download the latest version.

Auto-updating functionality is currently not in the roadmap.

Track multiple items at once

It would be awesome to be able to track multiple items at once - for instance, a Mac Studio AND a Studio Display.

Great work on this project!

Support for the Netherlands

Love the product 👌 Would be great if stores in the Netherlands would be supported. The stores are there, seems only the country is missing. I was able to make it work for some products (tested the Studio & Studio Display) with just these changes:

diff --git a/InventoryWatch/Countries.swift b/InventoryWatch/Countries.swift
index 2f7b59b..986e730 100644
--- a/InventoryWatch/Countries.swift
+++ b/InventoryWatch/Countries.swift
@@ -63,7 +63,8 @@ let Countries: [String: Country] = [
     "FR": Country(name: "France", storePathComponent: "/fr", skuCode: "FN"),
     "IT": Country(name: "Italy", storePathComponent: "/it", skuCode: "T"),
     "JP": Country(name: "Japan", storePathComponent: "/jp", skuCode: "J"),
-    "AT": Country(name: "Austria", storePathComponent: "/at", skuCode: "D")
+    "AT": Country(name: "Austria", storePathComponent: "/at", skuCode: "D"),
+    "NL": Country(name: "Netherlands", storePathComponent: "/nl", skuCode: "FN")
 ];
 
 let OrderedCountries = [
@@ -77,5 +78,6 @@ let OrderedCountries = [
     "FR",
     "IT",
     "JP",
-    "AT"
+    "AT",
+    "NL"
 ]

It doesn't work for MacBooks, and I am not certain what needs to be changed for them.

Request county for taiwan

Thank for your hard work!
If could ,Can you add Taiwan in the support list?
Sorry for my bad English.
Thank you!

Zurich cant be selected

Apple Store Switzerland Zurich Renneweg is in the list but cant be seleced do to country Switzerland missing from the country list.

Canada support appears to be broken for Mac Studio and Studio Display product types.

In the Settings, I set Canada and select any of the Canadian stores with Mac Studio or Studio Display product type...Inventory Checker reports "Unexpected inventory data found. Please confirm that the selected store is valid for the selected country."

If I step through the code using Xcode, errorMessage in ModelError is reporting .noStoresFound.

If I switch to any other product type, Inventory Checker works correctly.

iPhone 14 pro

Could you please add the new iPhone 14 pro Models. thanks

Please add iPad to list of products

Since these are hard to find in stock, this would be a nice to have. The custom SKU field works for finding a specific model but would be nice to see inventory of all or multiple models.

Support for Thailand

Hello,

Great work for creating this app.

It would be great if support for Thailand could be added. I've looked at your source code but do not have the bandwidth nor known Swift enough to be able to test my changes.

However I was able to pinpoint places that need to be added.

(InventoryWatch/Countries.swift)

Country Code: TH
Country(
        name: "Thailand",
        storePathComponent: "/th",
        skuCode: "TH",
        altSkuCode: nil
),

Need a Mac to buy a Mac…,

Can this be made in to a simple api call that doesn’t need a mac to run the app?

I want to but a Mac ;) I don’t have one

Support for Japan

Hey! I read your reddit posts and wanted to see if support for Japans stores could be added (or at least Tokyo).

I think this was such a great idea for a script. I have been so frustrated trying to put in an order for the last few weeks that I thought of writing a script like this myself, but you beat me to it!

Thank you for contributing such a neat little program, and I really hope it could be up and running here in Japan!

M2 MacBook Air SKU

Hi, I think the SKU for the M2 Air 16GB/1TB in Silver is missing. Great project, BTW.

Screen Shot 2022-07-17 at 10 25 53 AM

.

Sweden Support

It would be great if we could get support for Sweden. Thank you.

Additional SKU's request

Hi, I know this is probably an over used request. Would it be possible to update with some of the newer product SKU's?
In particular the new Studio hardware (Display and Mac). Several different permutations even for the Monitor and it's going to be tough to get by the looks of it.
Thanks!

New iPhone Color

Hey,

hopp this will be a quick fix, could you please add Alpine Green as color option to the list of iPhone 13 models (valid for all models)?

Thanks,
Marcus

M2 (8c CPU, 10c GPU) 16GB/1TB Silver

I would like to submit a PR to add the M2 (8c CPU, 10c GPU) 16GB/1TB Silver config for the m2 Macbook Air but how do I go about finding the SKU number for this config?

Thank you!

Incorrect SKUs for 16-inch M1 Pro MBPs

Just discovered this tool (thanks for putting it together and maintaining it!) and discovered that a few SKUs appear to be flipped for the baseline 16" machines

Specifically these 4 lines are swapped between the 512GB and the 1TB models. For example, MK183(country)/A is the model with the 512 GB SSD, not the 1TB as the file indicates. This is confirmed by looking up the individual model numbers as well as cross-checking what the tool reports as in stock against Apple's inventory on the store pages.

The problem appears to have been introduced in this commit, and affects MK183, MK193, MK1E3, and MK1F3.

Custom notification options

It would be great if there were some custom notification options for when our preferred inventory becomes available, e.g. send an email, run a script, etc. Thanks!

Setting "update every" to "never" results in constant refreshing

When I changed the "update every" part of settings from "1 minute" to "never", the main window refreshed constantly and alerts popped up quickly (my search had matches).

I don't know if my particular settings are necessary to trigger this, but I had "notify only for preferred models" and "only show results for preferred models" checked.

Notifications don't show location

The notifications don't indicate where the location of the available devices are. It's not very useful omitting the location as you'd need to be staring at the app itself or switch to it every time a notification pops up to see if your closest location has the device. Another solution might be to allow only a specified location to show notifications if preferred perhaps.

Updated Model #s for MacBook M2 Air

I did not get all of them, but added Silver back and also the 24GB SKUs. Not sure why the SKU pattern changes so I had to include extra bits after the (country.skuCode) in some cases

func M2MBAirDataForCountry(_ country: Country) -> SKUData {

let orderedSkus = [
    // 8GB/256GB
    "MLY33\(country.skuCode)/A",
    "MLXW3\(country.skuCode)/A",
    "MLY13\(country.skuCode)/A",
    "MLXY3\(country.skuCode)/A",
    
    // 8GB/512GB
    "MLY43\(country.skuCode)/A",
    "MLXX3\(country.skuCode)/A",
    "MLY23\(country.skuCode)/A",
    "MLY03\(country.skuCode)/A",
    
    // 16GB/1TB
    "MN703\(country.skuCode)A13/A",
    "MNQP3\(country.skuCode)A4/A",
    "MN6Y3\(country.skuCode)A4/A",
    "MLY03\(country.skuCode)A4/A",
    
    // 24GB/1TB
    "MLY43\(country.skuCode)A7/A",
    "MLXX3\(country.skuCode)A16/A",
    "MLY23\(country.skuCode)A7/A",
    "MLY03\(country.skuCode)A16/A",
    
    // 24GB/2TB
    "MLY43\(country.skuCode)A17/A",
    "MLXX3\(country.skuCode)A8/A",
    "MLY23\(country.skuCode)A8/A",
    "MLY03\(country.skuCode)A17/A"
]

let skusToName = [
    // 8GB/256GB
    "MLY33\(country.skuCode)/A": "M2 (8c CPU, 8c GPU) 8GB/256GB Midnight",
    "MLXW3\(country.skuCode)/A": "M2 (8c CPU, 8c GPU) 8GB/256GB Space Gray",
    "MLY13\(country.skuCode)/A": "M2 (8c CPU, 8c GPU) 8GB/256GB Starlight",
    "MLXY3\(country.skuCode)/A": "M2 (8c CPU, 8c GPU) 8GB/256GB Silver",

    // 8GB/512GB
    "MLY43\(country.skuCode)/A": "M2 (8c CPU, 10c GPU) 8GB/512GB Midnight",
    "MLXX3\(country.skuCode)/A": "M2 (8c CPU, 10c GPU) 8GB/512GB Space Gray",
    "MLY23\(country.skuCode)/A": "M2 (8c CPU, 10c GPU) 8GB/512GB Starlight",
    "MLY03\(country.skuCode)/A": "M2 (8c CPU, 10c GPU) 8GB/512GB Silver",
    
    // 16GB/1TB
    "MN703\(country.skuCode)A13/A": "M2 (8c CPU, 10c GPU) 16GB/1TB Midnight",
    "MNQP3\(country.skuCode)A4/A": "M2 (8c CPU, 10c GPU) 16GB/1TB Space Gray",
    "MN6Y3\(country.skuCode)A4/A": "M2 (8c CPU, 10c GPU) 16GB/1TB Starlight",
    "MLY03\(country.skuCode)A4/A": "M2 (8c CPU, 10c GPU) 16GB/1TB Silver",
    
    // 24GB/1TB
    "MLY43\(country.skuCode)A7/A": "M2 (8c CPU, 10c GPU) 24GB/1TB Midnight",
    "MLXX3\(country.skuCode)A16/A": "M2 (8c CPU, 10c GPU) 24GB/1TB Space Gray",
    "MLY23\(country.skuCode)A7/A": "M2 (8c CPU, 10c GPU) 24GB/1TB Starlight",
    "MLY03\(country.skuCode)A16/A": "M2 (8c CPU, 10c GPU) 24GB/1TB Silver",
    
    // 24GB/2TB
    "MLY43\(country.skuCode)A17/A": "M2 (8c CPU, 10c GPU) 24GB/2TB Midnight",
    "MLXX3\(country.skuCode)A8/A": "M2 (8c CPU, 10c GPU) 24GB/2TB Space Gray",
    "MLY23\(country.skuCode)A8/A": "M2 (8c CPU, 10c GPU) 24GB/2TB Starlight",
    "MLY03\(country.skuCode)A17/A": "M2 (8c CPU, 10c GPU) 24GB/2TB Silver"
]

return SKUData(orderedSKUs: orderedSkus, lookup: skusToName)

Button for Preferences/Settings doesn't work in macOS 13.0 and beyond

In macOS 13.0 and beyond, with the change from Preferences to Settings, the Button to the settings window no longer works.

NSApp .sendAction(Selector(("showPreferencesWindow:")), to: nil, from: nil) } has been deprecated and replaced with:
NSApp .sendAction(Selector(("showSettingsWindow:")), to: nil, from: nil) }

I am unsure if it's backwards compatible, though.

Reference:
https://stackoverflow.com/questions/65355696/how-to-programatically-open-settings-window-in-a-macos-swiftui-app

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.